@openpkg-ts/spec 0.1.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -46
- package/dist/index.d.ts +117 -68
- package/dist/index.js +382 -241
- package/package.json +4 -3
- package/schemas/v0.1.0/openpkg.schema.json +68 -42
- package/schemas/v0.2.0/openpkg.schema.json +412 -0
package/package.json
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openpkg-ts/spec",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "Shared schema, validation, and diff utilities for OpenPkg specs",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"openpkg",
|
|
7
|
+
"doccov",
|
|
7
8
|
"json-schema",
|
|
8
9
|
"validation",
|
|
9
10
|
"typescript",
|
|
10
11
|
"spec"
|
|
11
12
|
],
|
|
12
|
-
"homepage": "https://github.com/
|
|
13
|
+
"homepage": "https://github.com/doccov/doccov#readme",
|
|
13
14
|
"repository": {
|
|
14
15
|
"type": "git",
|
|
15
|
-
"url": "git+https://github.com/
|
|
16
|
+
"url": "git+https://github.com/doccov/doccov.git",
|
|
16
17
|
"directory": "packages/spec"
|
|
17
18
|
},
|
|
18
19
|
"license": "MIT",
|
|
@@ -50,14 +50,7 @@
|
|
|
50
50
|
},
|
|
51
51
|
"ecosystem": {
|
|
52
52
|
"type": "string",
|
|
53
|
-
"description": "Package ecosystem"
|
|
54
|
-
"enum": [
|
|
55
|
-
"js/ts",
|
|
56
|
-
"python",
|
|
57
|
-
"rust",
|
|
58
|
-
"go",
|
|
59
|
-
"java"
|
|
60
|
-
]
|
|
53
|
+
"description": "Package ecosystem"
|
|
61
54
|
}
|
|
62
55
|
}
|
|
63
56
|
},
|
|
@@ -93,6 +86,22 @@
|
|
|
93
86
|
"type": "string",
|
|
94
87
|
"description": "Export name"
|
|
95
88
|
},
|
|
89
|
+
"slug": {
|
|
90
|
+
"type": "string",
|
|
91
|
+
"description": "Stable slug for linking"
|
|
92
|
+
},
|
|
93
|
+
"displayName": {
|
|
94
|
+
"type": "string",
|
|
95
|
+
"description": "UI-friendly label"
|
|
96
|
+
},
|
|
97
|
+
"category": {
|
|
98
|
+
"type": "string",
|
|
99
|
+
"description": "Grouping hint for navigation"
|
|
100
|
+
},
|
|
101
|
+
"importPath": {
|
|
102
|
+
"type": "string",
|
|
103
|
+
"description": "Recommended import path"
|
|
104
|
+
},
|
|
96
105
|
"kind": {
|
|
97
106
|
"type": "string",
|
|
98
107
|
"description": "Kind of export",
|
|
@@ -123,11 +132,29 @@
|
|
|
123
132
|
"$ref": "#/$defs/signature"
|
|
124
133
|
}
|
|
125
134
|
},
|
|
126
|
-
"
|
|
135
|
+
"type": {
|
|
136
|
+
"description": "Type reference or inline schema for variables",
|
|
137
|
+
"oneOf": [
|
|
138
|
+
{ "type": "string" },
|
|
139
|
+
{ "$ref": "#/$defs/schema" }
|
|
140
|
+
]
|
|
141
|
+
},
|
|
142
|
+
"members": {
|
|
143
|
+
"type": "array",
|
|
144
|
+
"description": "Class/interface/enum members",
|
|
145
|
+
"items": { "type": "object" }
|
|
146
|
+
},
|
|
147
|
+
"tags": {
|
|
127
148
|
"type": "array",
|
|
128
|
-
"description": "
|
|
149
|
+
"description": "JSDoc/TSDoc tags",
|
|
129
150
|
"items": {
|
|
130
|
-
"
|
|
151
|
+
"type": "object",
|
|
152
|
+
"required": ["name", "text"],
|
|
153
|
+
"properties": {
|
|
154
|
+
"name": { "type": "string" },
|
|
155
|
+
"text": { "type": "string" }
|
|
156
|
+
},
|
|
157
|
+
"additionalProperties": false
|
|
131
158
|
}
|
|
132
159
|
},
|
|
133
160
|
"source": {
|
|
@@ -151,6 +178,22 @@
|
|
|
151
178
|
"type": "string",
|
|
152
179
|
"description": "Type name"
|
|
153
180
|
},
|
|
181
|
+
"slug": {
|
|
182
|
+
"type": "string",
|
|
183
|
+
"description": "Stable slug for linking"
|
|
184
|
+
},
|
|
185
|
+
"displayName": {
|
|
186
|
+
"type": "string",
|
|
187
|
+
"description": "UI-friendly label"
|
|
188
|
+
},
|
|
189
|
+
"category": {
|
|
190
|
+
"type": "string",
|
|
191
|
+
"description": "Grouping hint for navigation"
|
|
192
|
+
},
|
|
193
|
+
"importPath": {
|
|
194
|
+
"type": "string",
|
|
195
|
+
"description": "Recommended import path"
|
|
196
|
+
},
|
|
154
197
|
"kind": {
|
|
155
198
|
"type": "string",
|
|
156
199
|
"description": "Kind of type definition",
|
|
@@ -172,11 +215,22 @@
|
|
|
172
215
|
"type": "string",
|
|
173
216
|
"description": "Type expression for type aliases"
|
|
174
217
|
},
|
|
175
|
-
"
|
|
218
|
+
"members": {
|
|
219
|
+
"type": "array",
|
|
220
|
+
"description": "Members for classes/interfaces/enums",
|
|
221
|
+
"items": { "type": "object" }
|
|
222
|
+
},
|
|
223
|
+
"tags": {
|
|
176
224
|
"type": "array",
|
|
177
|
-
"description": "
|
|
225
|
+
"description": "JSDoc/TSDoc tags",
|
|
178
226
|
"items": {
|
|
179
|
-
"
|
|
227
|
+
"type": "object",
|
|
228
|
+
"required": ["name", "text"],
|
|
229
|
+
"properties": {
|
|
230
|
+
"name": { "type": "string" },
|
|
231
|
+
"text": { "type": "string" }
|
|
232
|
+
},
|
|
233
|
+
"additionalProperties": false
|
|
180
234
|
}
|
|
181
235
|
},
|
|
182
236
|
"source": {
|
|
@@ -217,10 +271,6 @@
|
|
|
217
271
|
"type": "boolean",
|
|
218
272
|
"description": "Whether the parameter is required"
|
|
219
273
|
},
|
|
220
|
-
"description": {
|
|
221
|
-
"type": "string",
|
|
222
|
-
"description": "Parameter description"
|
|
223
|
-
},
|
|
224
274
|
"schema": {
|
|
225
275
|
"$ref": "#/$defs/schema"
|
|
226
276
|
}
|
|
@@ -238,30 +288,6 @@
|
|
|
238
288
|
}
|
|
239
289
|
}
|
|
240
290
|
},
|
|
241
|
-
"property": {
|
|
242
|
-
"type": "object",
|
|
243
|
-
"required": [
|
|
244
|
-
"name",
|
|
245
|
-
"required"
|
|
246
|
-
],
|
|
247
|
-
"properties": {
|
|
248
|
-
"name": {
|
|
249
|
-
"type": "string",
|
|
250
|
-
"description": "Property name"
|
|
251
|
-
},
|
|
252
|
-
"required": {
|
|
253
|
-
"type": "boolean",
|
|
254
|
-
"description": "Whether the property is required"
|
|
255
|
-
},
|
|
256
|
-
"description": {
|
|
257
|
-
"type": "string",
|
|
258
|
-
"description": "Property description"
|
|
259
|
-
},
|
|
260
|
-
"schema": {
|
|
261
|
-
"$ref": "#/$defs/schema"
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
},
|
|
265
291
|
"schema": {
|
|
266
292
|
"anyOf": [
|
|
267
293
|
{
|
|
@@ -0,0 +1,412 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://unpkg.com/@openpkg-ts/spec/schemas/v0.2.0/openpkg.schema.json",
|
|
4
|
+
"title": "OpenPkg Specification",
|
|
5
|
+
"description": "Schema for OpenPkg specification files",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": [
|
|
8
|
+
"openpkg",
|
|
9
|
+
"meta",
|
|
10
|
+
"exports"
|
|
11
|
+
],
|
|
12
|
+
"properties": {
|
|
13
|
+
"$schema": {
|
|
14
|
+
"type": "string",
|
|
15
|
+
"description": "Reference to the OpenPkg schema version",
|
|
16
|
+
"pattern": "^(https://raw\\.githubusercontent\\.com/ryanwaits/openpkg/main/schemas/v[0-9]+\\.[0-9]+\\.[0-9]+/openpkg\\.schema\\.json|https://unpkg\\.com/@openpkg-ts/spec/schemas/v[0-9]+\\.[0-9]+\\.[0-9]+/openpkg\\.schema\\.json)$"
|
|
17
|
+
},
|
|
18
|
+
"openpkg": {
|
|
19
|
+
"type": "string",
|
|
20
|
+
"description": "OpenPkg specification version",
|
|
21
|
+
"pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+$",
|
|
22
|
+
"const": "0.2.0"
|
|
23
|
+
},
|
|
24
|
+
"meta": {
|
|
25
|
+
"type": "object",
|
|
26
|
+
"description": "Package metadata",
|
|
27
|
+
"required": [
|
|
28
|
+
"name"
|
|
29
|
+
],
|
|
30
|
+
"properties": {
|
|
31
|
+
"name": {
|
|
32
|
+
"type": "string",
|
|
33
|
+
"description": "Package name"
|
|
34
|
+
},
|
|
35
|
+
"version": {
|
|
36
|
+
"type": "string",
|
|
37
|
+
"description": "Package version"
|
|
38
|
+
},
|
|
39
|
+
"description": {
|
|
40
|
+
"type": "string",
|
|
41
|
+
"description": "Package description"
|
|
42
|
+
},
|
|
43
|
+
"license": {
|
|
44
|
+
"type": "string",
|
|
45
|
+
"description": "Package license"
|
|
46
|
+
},
|
|
47
|
+
"repository": {
|
|
48
|
+
"type": "string",
|
|
49
|
+
"description": "Repository URL"
|
|
50
|
+
},
|
|
51
|
+
"ecosystem": {
|
|
52
|
+
"type": "string",
|
|
53
|
+
"description": "Package ecosystem"
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
"exports": {
|
|
58
|
+
"type": "array",
|
|
59
|
+
"description": "List of exported items",
|
|
60
|
+
"items": {
|
|
61
|
+
"$ref": "#/$defs/export"
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
"types": {
|
|
65
|
+
"type": "array",
|
|
66
|
+
"description": "List of type definitions",
|
|
67
|
+
"items": {
|
|
68
|
+
"$ref": "#/$defs/typeDef"
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
"docs": {
|
|
72
|
+
"$ref": "#/$defs/docsMetadata",
|
|
73
|
+
"description": "Aggregate documentation coverage metadata"
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
"$defs": {
|
|
77
|
+
"docSignal": {
|
|
78
|
+
"type": "string",
|
|
79
|
+
"enum": [
|
|
80
|
+
"description",
|
|
81
|
+
"params",
|
|
82
|
+
"returns",
|
|
83
|
+
"examples"
|
|
84
|
+
]
|
|
85
|
+
},
|
|
86
|
+
"docDrift": {
|
|
87
|
+
"type": "object",
|
|
88
|
+
"required": ["type", "issue"],
|
|
89
|
+
"properties": {
|
|
90
|
+
"type": {
|
|
91
|
+
"type": "string",
|
|
92
|
+
"enum": ["param-mismatch", "param-type-mismatch", "return-type-mismatch", "generic-constraint-mismatch", "optionality-mismatch", "deprecated-mismatch", "visibility-mismatch", "example-drift", "broken-link"]
|
|
93
|
+
},
|
|
94
|
+
"target": {
|
|
95
|
+
"type": "string",
|
|
96
|
+
"description": "Relevant identifier (e.g., parameter name)"
|
|
97
|
+
},
|
|
98
|
+
"issue": {
|
|
99
|
+
"type": "string",
|
|
100
|
+
"description": "Human-friendly drift explanation"
|
|
101
|
+
},
|
|
102
|
+
"suggestion": {
|
|
103
|
+
"type": "string",
|
|
104
|
+
"description": "Optional remediation hint"
|
|
105
|
+
}
|
|
106
|
+
},
|
|
107
|
+
"additionalProperties": false
|
|
108
|
+
},
|
|
109
|
+
"docsMetadata": {
|
|
110
|
+
"type": "object",
|
|
111
|
+
"description": "Documentation coverage metadata",
|
|
112
|
+
"additionalProperties": false,
|
|
113
|
+
"properties": {
|
|
114
|
+
"coverageScore": {
|
|
115
|
+
"type": "number",
|
|
116
|
+
"minimum": 0,
|
|
117
|
+
"maximum": 100,
|
|
118
|
+
"description": "Documentation coverage value from 0-100."
|
|
119
|
+
},
|
|
120
|
+
"missing": {
|
|
121
|
+
"type": "array",
|
|
122
|
+
"description": "Doc components missing for this entity",
|
|
123
|
+
"items": {
|
|
124
|
+
"$ref": "#/$defs/docSignal"
|
|
125
|
+
},
|
|
126
|
+
"uniqueItems": true
|
|
127
|
+
},
|
|
128
|
+
"drift": {
|
|
129
|
+
"type": "array",
|
|
130
|
+
"description": "Detected documentation drift signals",
|
|
131
|
+
"items": {
|
|
132
|
+
"$ref": "#/$defs/docDrift"
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
},
|
|
137
|
+
"export": {
|
|
138
|
+
"type": "object",
|
|
139
|
+
"required": [
|
|
140
|
+
"id",
|
|
141
|
+
"name",
|
|
142
|
+
"kind"
|
|
143
|
+
],
|
|
144
|
+
"properties": {
|
|
145
|
+
"id": {
|
|
146
|
+
"type": "string",
|
|
147
|
+
"description": "Unique identifier for the export"
|
|
148
|
+
},
|
|
149
|
+
"name": {
|
|
150
|
+
"type": "string",
|
|
151
|
+
"description": "Export name"
|
|
152
|
+
},
|
|
153
|
+
"slug": {
|
|
154
|
+
"type": "string",
|
|
155
|
+
"description": "Stable slug for linking"
|
|
156
|
+
},
|
|
157
|
+
"displayName": {
|
|
158
|
+
"type": "string",
|
|
159
|
+
"description": "UI-friendly label"
|
|
160
|
+
},
|
|
161
|
+
"category": {
|
|
162
|
+
"type": "string",
|
|
163
|
+
"description": "Grouping hint for navigation"
|
|
164
|
+
},
|
|
165
|
+
"importPath": {
|
|
166
|
+
"type": "string",
|
|
167
|
+
"description": "Recommended import path"
|
|
168
|
+
},
|
|
169
|
+
"kind": {
|
|
170
|
+
"type": "string",
|
|
171
|
+
"description": "Kind of export",
|
|
172
|
+
"enum": [
|
|
173
|
+
"function",
|
|
174
|
+
"class",
|
|
175
|
+
"variable",
|
|
176
|
+
"interface",
|
|
177
|
+
"type",
|
|
178
|
+
"enum"
|
|
179
|
+
]
|
|
180
|
+
},
|
|
181
|
+
"description": {
|
|
182
|
+
"type": "string",
|
|
183
|
+
"description": "JSDoc/TSDoc description"
|
|
184
|
+
},
|
|
185
|
+
"examples": {
|
|
186
|
+
"type": "array",
|
|
187
|
+
"description": "Usage examples from documentation",
|
|
188
|
+
"items": {
|
|
189
|
+
"type": "string"
|
|
190
|
+
}
|
|
191
|
+
},
|
|
192
|
+
"signatures": {
|
|
193
|
+
"type": "array",
|
|
194
|
+
"description": "Function/method signatures",
|
|
195
|
+
"items": {
|
|
196
|
+
"$ref": "#/$defs/signature"
|
|
197
|
+
}
|
|
198
|
+
},
|
|
199
|
+
"type": {
|
|
200
|
+
"description": "Type reference or inline schema for variables",
|
|
201
|
+
"oneOf": [
|
|
202
|
+
{ "type": "string" },
|
|
203
|
+
{ "$ref": "#/$defs/schema" }
|
|
204
|
+
]
|
|
205
|
+
},
|
|
206
|
+
"members": {
|
|
207
|
+
"type": "array",
|
|
208
|
+
"description": "Class/interface/enum members",
|
|
209
|
+
"items": { "type": "object" }
|
|
210
|
+
},
|
|
211
|
+
"tags": {
|
|
212
|
+
"type": "array",
|
|
213
|
+
"description": "JSDoc/TSDoc tags",
|
|
214
|
+
"items": {
|
|
215
|
+
"type": "object",
|
|
216
|
+
"required": ["name", "text"],
|
|
217
|
+
"properties": {
|
|
218
|
+
"name": { "type": "string" },
|
|
219
|
+
"text": { "type": "string" }
|
|
220
|
+
},
|
|
221
|
+
"additionalProperties": false
|
|
222
|
+
}
|
|
223
|
+
},
|
|
224
|
+
"source": {
|
|
225
|
+
"$ref": "#/$defs/sourceLocation"
|
|
226
|
+
},
|
|
227
|
+
"docs": {
|
|
228
|
+
"$ref": "#/$defs/docsMetadata",
|
|
229
|
+
"description": "Documentation coverage metadata for this export"
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
},
|
|
233
|
+
"typeDef": {
|
|
234
|
+
"type": "object",
|
|
235
|
+
"required": [
|
|
236
|
+
"id",
|
|
237
|
+
"name",
|
|
238
|
+
"kind"
|
|
239
|
+
],
|
|
240
|
+
"properties": {
|
|
241
|
+
"id": {
|
|
242
|
+
"type": "string",
|
|
243
|
+
"description": "Unique identifier for the type"
|
|
244
|
+
},
|
|
245
|
+
"name": {
|
|
246
|
+
"type": "string",
|
|
247
|
+
"description": "Type name"
|
|
248
|
+
},
|
|
249
|
+
"slug": {
|
|
250
|
+
"type": "string",
|
|
251
|
+
"description": "Stable slug for linking"
|
|
252
|
+
},
|
|
253
|
+
"displayName": {
|
|
254
|
+
"type": "string",
|
|
255
|
+
"description": "UI-friendly label"
|
|
256
|
+
},
|
|
257
|
+
"category": {
|
|
258
|
+
"type": "string",
|
|
259
|
+
"description": "Grouping hint for navigation"
|
|
260
|
+
},
|
|
261
|
+
"importPath": {
|
|
262
|
+
"type": "string",
|
|
263
|
+
"description": "Recommended import path"
|
|
264
|
+
},
|
|
265
|
+
"kind": {
|
|
266
|
+
"type": "string",
|
|
267
|
+
"description": "Kind of type definition",
|
|
268
|
+
"enum": [
|
|
269
|
+
"interface",
|
|
270
|
+
"type",
|
|
271
|
+
"enum",
|
|
272
|
+
"class"
|
|
273
|
+
]
|
|
274
|
+
},
|
|
275
|
+
"description": {
|
|
276
|
+
"type": "string",
|
|
277
|
+
"description": "JSDoc/TSDoc description"
|
|
278
|
+
},
|
|
279
|
+
"schema": {
|
|
280
|
+
"$ref": "#/$defs/schema"
|
|
281
|
+
},
|
|
282
|
+
"type": {
|
|
283
|
+
"type": "string",
|
|
284
|
+
"description": "Type expression for type aliases"
|
|
285
|
+
},
|
|
286
|
+
"members": {
|
|
287
|
+
"type": "array",
|
|
288
|
+
"description": "Members for classes/interfaces/enums",
|
|
289
|
+
"items": { "type": "object" }
|
|
290
|
+
},
|
|
291
|
+
"tags": {
|
|
292
|
+
"type": "array",
|
|
293
|
+
"description": "JSDoc/TSDoc tags",
|
|
294
|
+
"items": {
|
|
295
|
+
"type": "object",
|
|
296
|
+
"required": ["name", "text"],
|
|
297
|
+
"properties": {
|
|
298
|
+
"name": { "type": "string" },
|
|
299
|
+
"text": { "type": "string" }
|
|
300
|
+
},
|
|
301
|
+
"additionalProperties": false
|
|
302
|
+
}
|
|
303
|
+
},
|
|
304
|
+
"source": {
|
|
305
|
+
"$ref": "#/$defs/sourceLocation"
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
},
|
|
309
|
+
"signature": {
|
|
310
|
+
"type": "object",
|
|
311
|
+
"properties": {
|
|
312
|
+
"parameters": {
|
|
313
|
+
"type": "array",
|
|
314
|
+
"items": {
|
|
315
|
+
"$ref": "#/$defs/parameter"
|
|
316
|
+
}
|
|
317
|
+
},
|
|
318
|
+
"returns": {
|
|
319
|
+
"$ref": "#/$defs/returns"
|
|
320
|
+
},
|
|
321
|
+
"description": {
|
|
322
|
+
"type": "string",
|
|
323
|
+
"description": "Signature-level description"
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
},
|
|
327
|
+
"parameter": {
|
|
328
|
+
"type": "object",
|
|
329
|
+
"required": [
|
|
330
|
+
"name",
|
|
331
|
+
"required"
|
|
332
|
+
],
|
|
333
|
+
"properties": {
|
|
334
|
+
"name": {
|
|
335
|
+
"type": "string",
|
|
336
|
+
"description": "Parameter name"
|
|
337
|
+
},
|
|
338
|
+
"required": {
|
|
339
|
+
"type": "boolean",
|
|
340
|
+
"description": "Whether the parameter is required"
|
|
341
|
+
},
|
|
342
|
+
"schema": {
|
|
343
|
+
"$ref": "#/$defs/schema"
|
|
344
|
+
},
|
|
345
|
+
"description": {
|
|
346
|
+
"type": "string",
|
|
347
|
+
"description": "Parameter description"
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
},
|
|
351
|
+
"returns": {
|
|
352
|
+
"type": "object",
|
|
353
|
+
"properties": {
|
|
354
|
+
"schema": {
|
|
355
|
+
"$ref": "#/$defs/schema"
|
|
356
|
+
},
|
|
357
|
+
"description": {
|
|
358
|
+
"type": "string",
|
|
359
|
+
"description": "Return value description"
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
},
|
|
363
|
+
"schema": {
|
|
364
|
+
"anyOf": [
|
|
365
|
+
{
|
|
366
|
+
"type": "boolean"
|
|
367
|
+
},
|
|
368
|
+
{
|
|
369
|
+
"type": "object",
|
|
370
|
+
"properties": {
|
|
371
|
+
"$ref": {
|
|
372
|
+
"type": "string",
|
|
373
|
+
"description": "Reference to another type",
|
|
374
|
+
"pattern": "^#/types/[A-Za-z0-9_.-]+$"
|
|
375
|
+
}
|
|
376
|
+
},
|
|
377
|
+
"required": [
|
|
378
|
+
"$ref"
|
|
379
|
+
],
|
|
380
|
+
"additionalProperties": false
|
|
381
|
+
},
|
|
382
|
+
{
|
|
383
|
+
"type": "object",
|
|
384
|
+
"not": {
|
|
385
|
+
"required": [
|
|
386
|
+
"$ref"
|
|
387
|
+
]
|
|
388
|
+
},
|
|
389
|
+
"additionalProperties": true
|
|
390
|
+
}
|
|
391
|
+
]
|
|
392
|
+
},
|
|
393
|
+
"sourceLocation": {
|
|
394
|
+
"type": "object",
|
|
395
|
+
"required": [
|
|
396
|
+
"file",
|
|
397
|
+
"line"
|
|
398
|
+
],
|
|
399
|
+
"properties": {
|
|
400
|
+
"file": {
|
|
401
|
+
"type": "string",
|
|
402
|
+
"description": "Source file path"
|
|
403
|
+
},
|
|
404
|
+
"line": {
|
|
405
|
+
"type": "integer",
|
|
406
|
+
"description": "Line number in source file",
|
|
407
|
+
"minimum": 1
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
}
|