-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathlibraries.schema.json
More file actions
141 lines (141 loc) · 4.31 KB
/
libraries.schema.json
File metadata and controls
141 lines (141 loc) · 4.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"description": "Schema for libraries configuration file",
"$defs": {
"versionPattern": {
"oneOf": [
{
"type": "string",
"description": "Single version pattern"
},
{
"type": "array",
"description": "Array of version patterns (any match passes)",
"items": {
"type": "string"
},
"minItems": 1
}
]
},
"platformConfig": {
"type": "object",
"properties": {
"versionMatcher": {
"$ref": "#/$defs/versionPattern"
},
"reactNativeVersion": {
"$ref": "#/$defs/versionPattern"
},
"publishedAfterDate": {
"type": "string",
"description": "Only consider package versions published after this date (ISO 8601 format: YYYY-MM-DD)",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"withWorkletsVersion": {
"description": "react-native-worklets versions that should be included as a required dependency",
"$ref": "#/$defs/versionPattern"
},
"weeklyDownloadsThreshold": {
"type": "integer",
"description": "Minimum number of downloads from the last week to schedule a build.",
"minimum": 0
}
},
"additionalProperties": false
},
"platformConfigsList": {
"type": "array",
"description": "List of platform configurations",
"items": {
"$ref": "#/$defs/platformConfig"
},
"minItems": 1
}
},
"additionalProperties": {
"type": "object",
"description": "Library configuration",
"properties": {
"versionMatcher": {
"$ref": "#/$defs/versionPattern",
"description": "Default version matcher for all platforms"
},
"reactNativeVersion": {
"$ref": "#/$defs/versionPattern",
"description": "Default React Native version requirement for all platforms"
},
"publishedAfterDate": {
"type": "string",
"description": "Only consider package versions published after this date (ISO 8601 format: YYYY-MM-DD). Can be overridden per platform.",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"weeklyDownloadsThreshold": {
"type": "integer",
"description": "Minimum number of downloads from the last week to schedule a build. Can be overridden per platform.",
"minimum": 0
},
"description": {
"type": "string",
"description": "Short description of the library"
},
"postInstallScriptPath": {
"type": "string",
"description": "Path to post-install script"
},
"preInstallScriptPath": {
"type": "string",
"description": "Path to pre-install script"
},
"license": {
"type": "object",
"description": "Custom license configuration for non-standard licenses",
"properties": {
"filePath": {
"type": "string",
"description": "Path to the license file within the package (relative to package root)"
},
"type": {
"type": "string",
"description": "An SPDX license identifier (e.g., MIT, Apache-2.0)"
},
"fileMD5": {
"type": "string",
"description": "MD5 hash of the license file for verification",
"pattern": "^[a-f0-9]{32}$"
}
},
"required": ["filePath", "type", "fileMD5"],
"additionalProperties": false
},
"android": {
"anyOf": [
{
"type": "boolean",
"const": false,
"description": "Disable Android builds"
},
{
"$ref": "#/$defs/platformConfigsList",
"description": "Android platform configurations list (overrides library-level defaults)"
}
]
},
"ios": {
"anyOf": [
{
"type": "boolean",
"const": false,
"description": "Disable iOS builds"
},
{
"$ref": "#/$defs/platformConfigsList",
"description": "iOS platform configurations list (overrides library-level defaults)"
}
]
}
},
"additionalProperties": false
}
}