@jxsuite/schema 0.28.2 → 0.28.4
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/class-schema.json +341 -341
- package/defs/cem.schema.ts +11 -11
- package/defs/children-value.schema.ts +6 -6
- package/defs/class-def.schema.ts +131 -131
- package/defs/content-type-def.schema.ts +18 -18
- package/defs/element-def.schema.ts +36 -36
- package/defs/expression-node.schema.ts +37 -37
- package/defs/external-class-def.schema.ts +41 -41
- package/defs/function-def.schema.ts +31 -31
- package/defs/head-entry.schema.ts +6 -6
- package/defs/image-config.schema.ts +16 -16
- package/defs/json-schema-type.schema.ts +1 -1
- package/defs/project-config.schema.ts +122 -122
- package/defs/pure-type-def.schema.ts +12 -12
- package/defs/ref-object.schema.ts +19 -19
- package/defs/state-entry.schema.ts +3 -3
- package/defs/style-object.schema.ts +7 -7
- package/defs/tag-name.schema.ts +1 -1
- package/defs/typed-state-def.schema.ts +14 -14
- package/package.json +3 -1
- package/project-schema.json +284 -284
- package/schema.json +987 -987
- package/src/format-registry.ts +28 -13
- package/src/guards.ts +195 -0
- package/src/parse.ts +57 -0
- package/src/schema.ts +229 -225
- package/types.ts +340 -51
package/schema.json
CHANGED
|
@@ -1,153 +1,11 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"$id": "https://jxsuite.com/schema/v1",
|
|
4
|
-
"title": "Jx Document",
|
|
5
|
-
"description": "Schema for Jx component files. A Jx document is a JSON object that declaratively describes a reactive web component: its structure (DOM tree), styling, type definitions ($defs), runtime state, and inline or external functions. Reactivity is powered by @vue/reactivity.",
|
|
6
|
-
"type": "object",
|
|
7
|
-
"properties": {
|
|
8
|
-
"$schema": {
|
|
9
|
-
"description": "URI identifying the Jx dialect version. Enables schema-aware IDE tooling.",
|
|
10
|
-
"type": "string",
|
|
11
|
-
"examples": [
|
|
12
|
-
"https://jxsuite.com/schema/v1"
|
|
13
|
-
]
|
|
14
|
-
},
|
|
15
|
-
"$id": {
|
|
16
|
-
"description": "Component identifier string. Used by tooling and the builder.",
|
|
17
|
-
"type": "string",
|
|
18
|
-
"examples": [
|
|
19
|
-
"Counter",
|
|
20
|
-
"TodoApp",
|
|
21
|
-
"UserCard"
|
|
22
|
-
]
|
|
23
|
-
},
|
|
24
|
-
"$defs": {
|
|
25
|
-
"description": "Pure JSON Schema type definitions for this component. All entries are reusable type schemas — no runtime artifacts are produced. Referenced from state entries via $ref. Naming convention: PascalCase.",
|
|
26
|
-
"$ref": "#/$defs/DefsMap"
|
|
27
|
-
},
|
|
28
|
-
"state": {
|
|
29
|
-
"description": "Runtime variables for this component. All entries are reactive by default. Entry shape is determined by value type: scalar/array → reactive property, string with ${} → computed, object with $prototype → function or data source, object with type and default → typed reactive property.",
|
|
30
|
-
"$ref": "#/$defs/StateMap"
|
|
31
|
-
},
|
|
32
|
-
"$media": {
|
|
33
|
-
"description": "Named media breakpoints following CSS @custom-media convention. Keys use the CSS custom property -- prefix.",
|
|
34
|
-
"type": "object",
|
|
35
|
-
"additionalProperties": {
|
|
36
|
-
"type": "string"
|
|
37
|
-
},
|
|
38
|
-
"examples": [
|
|
39
|
-
{
|
|
40
|
-
"--sm": "(min-width: 640px)",
|
|
41
|
-
"--md": "(min-width: 768px)",
|
|
42
|
-
"--dark": "(prefers-color-scheme: dark)"
|
|
43
|
-
}
|
|
44
|
-
]
|
|
45
|
-
},
|
|
46
|
-
"$elements": {
|
|
47
|
-
"description": "Custom element dependencies. Items are either $ref objects pointing to JX element definitions, or bare npm package name strings for web component libraries.",
|
|
48
|
-
"type": "array",
|
|
49
|
-
"items": {
|
|
50
|
-
"oneOf": [
|
|
51
|
-
{
|
|
52
|
-
"type": "object",
|
|
53
|
-
"required": [
|
|
54
|
-
"$ref"
|
|
55
|
-
],
|
|
56
|
-
"properties": {
|
|
57
|
-
"$ref": {
|
|
58
|
-
"type": "string"
|
|
59
|
-
}
|
|
60
|
-
},
|
|
61
|
-
"additionalProperties": false
|
|
62
|
-
},
|
|
63
|
-
{
|
|
64
|
-
"type": "string",
|
|
65
|
-
"description": "npm package specifier (must declare customElements in package.json)"
|
|
66
|
-
}
|
|
67
|
-
]
|
|
68
|
-
}
|
|
69
|
-
},
|
|
70
|
-
"$head": {
|
|
71
|
-
"description": "Page-level <head> entries. Array of element definitions for meta tags, link tags, script tags, etc. Merged with layout and site-level $head entries.",
|
|
72
|
-
"type": "array",
|
|
73
|
-
"items": {
|
|
74
|
-
"$ref": "#/$defs/ElementDef"
|
|
75
|
-
}
|
|
76
|
-
},
|
|
77
|
-
"$layout": {
|
|
78
|
-
"description": "Layout reference for pages. String path to a layout JSON file, or false to opt out of the default layout.",
|
|
79
|
-
"oneOf": [
|
|
80
|
-
{
|
|
81
|
-
"type": "string"
|
|
82
|
-
},
|
|
83
|
-
{
|
|
84
|
-
"type": "boolean",
|
|
85
|
-
"const": false
|
|
86
|
-
}
|
|
87
|
-
],
|
|
88
|
-
"examples": [
|
|
89
|
-
"./layouts/base.json"
|
|
90
|
-
]
|
|
91
|
-
},
|
|
92
|
-
"$paths": {
|
|
93
|
-
"description": "Dynamic route parameters. Maps parameter names to data sources for generating one page per entry at build time.",
|
|
94
|
-
"type": "object"
|
|
95
|
-
},
|
|
96
|
-
"title": {
|
|
97
|
-
"description": "Page title. Can be a static string or a template string with ${} expressions.",
|
|
98
|
-
"$ref": "#/$defs/StringOrRef"
|
|
99
|
-
},
|
|
100
|
-
"imports": {
|
|
101
|
-
"description": "Import map: $prototype names to .class.json file paths. Allows state entries to reference external classes by name without $src.",
|
|
102
|
-
"type": "object",
|
|
103
|
-
"additionalProperties": {
|
|
104
|
-
"type": "string"
|
|
105
|
-
}
|
|
106
|
-
},
|
|
107
|
-
"observedAttributes": {
|
|
108
|
-
"description": "HTML attributes the custom element watches for changes. Follows the Web Components observedAttributes convention.",
|
|
109
|
-
"type": "array",
|
|
110
|
-
"items": {
|
|
111
|
-
"type": "string"
|
|
112
|
-
}
|
|
113
|
-
},
|
|
114
|
-
"cases": {
|
|
115
|
-
"description": "Switch cases object. Maps case values to element definitions or external component refs. Used alongside $switch for dynamic component rendering.",
|
|
116
|
-
"type": "object",
|
|
117
|
-
"additionalProperties": {
|
|
118
|
-
"oneOf": [
|
|
119
|
-
{
|
|
120
|
-
"$ref": "#/$defs/ElementDef"
|
|
121
|
-
},
|
|
122
|
-
{
|
|
123
|
-
"$ref": "#/$defs/ExternalComponentRef"
|
|
124
|
-
}
|
|
125
|
-
]
|
|
126
|
-
}
|
|
127
|
-
},
|
|
128
|
-
"tagName": {
|
|
129
|
-
"$ref": "#/$defs/TagName"
|
|
130
|
-
},
|
|
131
|
-
"children": {
|
|
132
|
-
"$ref": "#/$defs/ChildrenValue"
|
|
133
|
-
},
|
|
134
|
-
"style": {
|
|
135
|
-
"$ref": "#/$defs/StyleObject"
|
|
136
|
-
},
|
|
137
|
-
"attributes": {
|
|
138
|
-
"$ref": "#/$defs/AttributesObject"
|
|
139
|
-
}
|
|
140
|
-
},
|
|
141
|
-
"additionalProperties": {
|
|
142
|
-
"$ref": "#/$defs/ElementPropertyValue"
|
|
143
|
-
},
|
|
144
2
|
"$defs": {
|
|
145
3
|
"DefsMap": {
|
|
146
|
-
"description": "Map of reusable JSON Schema type definitions. Keys are PascalCase type names. No runtime artifacts are produced.",
|
|
147
|
-
"type": "object",
|
|
148
4
|
"additionalProperties": {
|
|
149
5
|
"$ref": "#/$defs/TypeDefEntry"
|
|
150
|
-
}
|
|
6
|
+
},
|
|
7
|
+
"description": "Map of reusable JSON Schema type definitions. Keys are PascalCase type names. No runtime artifacts are produced.",
|
|
8
|
+
"type": "object"
|
|
151
9
|
},
|
|
152
10
|
"TypeDefEntry": {
|
|
153
11
|
"description": "A $defs type definition entry. Must be a pure JSON Schema type definition or a class definition (.class.json format).",
|
|
@@ -161,11 +19,11 @@
|
|
|
161
19
|
]
|
|
162
20
|
},
|
|
163
21
|
"StateMap": {
|
|
164
|
-
"description": "Map of runtime variables. Keys are camelCase (public) or #-prefixed (private). All entries are reactive by default.",
|
|
165
|
-
"type": "object",
|
|
166
22
|
"additionalProperties": {
|
|
167
23
|
"$ref": "#/$defs/StateEntry"
|
|
168
|
-
}
|
|
24
|
+
},
|
|
25
|
+
"description": "Map of runtime variables. Keys are camelCase (public) or #-prefixed (private). All entries are reactive by default.",
|
|
26
|
+
"type": "object"
|
|
169
27
|
},
|
|
170
28
|
"StateEntry": {
|
|
171
29
|
"description": "A single state entry. Shape is determined by value type: scalar/array → naked reactive property, string with ${} → computed, object with $prototype: \"Function\" → function, object with $prototype: <other> → data source, object with type and default → typed reactive property, plain object → naked object reactive property.",
|
|
@@ -198,7 +56,6 @@
|
|
|
198
56
|
"$ref": "#/$defs/ExpressionEntry"
|
|
199
57
|
},
|
|
200
58
|
{
|
|
201
|
-
"type": "object",
|
|
202
59
|
"not": {
|
|
203
60
|
"anyOf": [
|
|
204
61
|
{
|
|
@@ -222,162 +79,175 @@
|
|
|
222
79
|
]
|
|
223
80
|
}
|
|
224
81
|
]
|
|
225
|
-
}
|
|
82
|
+
},
|
|
83
|
+
"type": "object"
|
|
226
84
|
}
|
|
227
85
|
]
|
|
228
86
|
},
|
|
229
87
|
"TypedStateDef": {
|
|
230
88
|
"description": "A typed reactive state variable with explicit type and default value. The type property is a JSON Schema or $ref to a $defs type definition. The default property is the initial runtime value.",
|
|
231
|
-
"
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
89
|
+
"not": {
|
|
90
|
+
"required": [
|
|
91
|
+
"$prototype"
|
|
92
|
+
]
|
|
93
|
+
},
|
|
235
94
|
"properties": {
|
|
95
|
+
"$ref": {
|
|
96
|
+
"description": "Reference to a shared type definition.",
|
|
97
|
+
"type": "string"
|
|
98
|
+
},
|
|
99
|
+
"attribute": {
|
|
100
|
+
"description": "Linked HTML attribute name for CEM extraction.",
|
|
101
|
+
"type": "string"
|
|
102
|
+
},
|
|
236
103
|
"default": {
|
|
237
104
|
"description": "Initial state value."
|
|
238
105
|
},
|
|
239
|
-
"
|
|
240
|
-
"description": "
|
|
106
|
+
"deprecated": {
|
|
107
|
+
"description": "Deprecation notice for CEM extraction.",
|
|
241
108
|
"oneOf": [
|
|
242
109
|
{
|
|
243
|
-
"type": "
|
|
110
|
+
"type": "boolean"
|
|
244
111
|
},
|
|
245
112
|
{
|
|
246
|
-
"type": "
|
|
113
|
+
"type": "string"
|
|
247
114
|
}
|
|
248
115
|
]
|
|
249
116
|
},
|
|
250
117
|
"description": {
|
|
251
118
|
"type": "string"
|
|
252
119
|
},
|
|
253
|
-
"
|
|
254
|
-
"
|
|
255
|
-
"type": "string"
|
|
120
|
+
"examples": {
|
|
121
|
+
"type": "array"
|
|
256
122
|
},
|
|
257
123
|
"reflects": {
|
|
258
124
|
"description": "Whether property changes reflect back to the HTML attribute.",
|
|
259
125
|
"type": "boolean"
|
|
260
126
|
},
|
|
261
|
-
"
|
|
262
|
-
"description": "
|
|
127
|
+
"type": {
|
|
128
|
+
"description": "JSON Schema type definition, $ref to a $defs type, or JSON Schema type string.",
|
|
263
129
|
"oneOf": [
|
|
264
130
|
{
|
|
265
|
-
"type": "
|
|
131
|
+
"type": "string"
|
|
266
132
|
},
|
|
267
133
|
{
|
|
268
|
-
"type": "
|
|
134
|
+
"type": "object"
|
|
269
135
|
}
|
|
270
136
|
]
|
|
271
|
-
},
|
|
272
|
-
"examples": {
|
|
273
|
-
"type": "array"
|
|
274
|
-
},
|
|
275
|
-
"$ref": {
|
|
276
|
-
"description": "Reference to a shared type definition.",
|
|
277
|
-
"type": "string"
|
|
278
137
|
}
|
|
279
138
|
},
|
|
280
|
-
"
|
|
281
|
-
"
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
}
|
|
139
|
+
"required": [
|
|
140
|
+
"default"
|
|
141
|
+
],
|
|
142
|
+
"type": "object"
|
|
285
143
|
},
|
|
286
144
|
"PureTypeDef": {
|
|
287
145
|
"description": "A reusable JSON Schema type definition for tooling only. No function, no runtime artifact. Referenced from state entries via $ref. Naming convention: PascalCase.",
|
|
288
|
-
"
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
146
|
+
"not": {
|
|
147
|
+
"anyOf": [
|
|
148
|
+
{
|
|
149
|
+
"required": [
|
|
150
|
+
"default"
|
|
151
|
+
]
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
"required": [
|
|
155
|
+
"$prototype"
|
|
156
|
+
]
|
|
157
|
+
}
|
|
158
|
+
]
|
|
159
|
+
},
|
|
292
160
|
"properties": {
|
|
293
|
-
"type": {
|
|
294
|
-
"$ref": "#/$defs/JsonSchemaType"
|
|
295
|
-
},
|
|
296
161
|
"description": {
|
|
297
162
|
"type": "string"
|
|
298
163
|
},
|
|
299
164
|
"enum": {
|
|
300
165
|
"type": "array"
|
|
301
166
|
},
|
|
302
|
-
"
|
|
303
|
-
"type": "
|
|
167
|
+
"examples": {
|
|
168
|
+
"type": "array"
|
|
169
|
+
},
|
|
170
|
+
"items": {},
|
|
171
|
+
"maxLength": {
|
|
172
|
+
"minimum": 0,
|
|
173
|
+
"type": "integer"
|
|
304
174
|
},
|
|
305
175
|
"maximum": {
|
|
306
176
|
"type": "number"
|
|
307
177
|
},
|
|
308
178
|
"minLength": {
|
|
309
|
-
"
|
|
310
|
-
"
|
|
179
|
+
"minimum": 0,
|
|
180
|
+
"type": "integer"
|
|
311
181
|
},
|
|
312
|
-
"
|
|
313
|
-
"type": "
|
|
314
|
-
"minimum": 0
|
|
182
|
+
"minimum": {
|
|
183
|
+
"type": "number"
|
|
315
184
|
},
|
|
316
185
|
"pattern": {
|
|
317
186
|
"type": "string"
|
|
318
187
|
},
|
|
319
|
-
"items": {},
|
|
320
188
|
"properties": {
|
|
321
189
|
"type": "object"
|
|
322
190
|
},
|
|
323
191
|
"required": {
|
|
324
|
-
"type": "array",
|
|
325
192
|
"items": {
|
|
326
193
|
"type": "string"
|
|
327
|
-
}
|
|
328
|
-
},
|
|
329
|
-
"examples": {
|
|
194
|
+
},
|
|
330
195
|
"type": "array"
|
|
196
|
+
},
|
|
197
|
+
"type": {
|
|
198
|
+
"$ref": "#/$defs/JsonSchemaType"
|
|
331
199
|
}
|
|
332
200
|
},
|
|
333
|
-
"
|
|
334
|
-
"
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
"default"
|
|
338
|
-
]
|
|
339
|
-
},
|
|
340
|
-
{
|
|
341
|
-
"required": [
|
|
342
|
-
"$prototype"
|
|
343
|
-
]
|
|
344
|
-
}
|
|
345
|
-
]
|
|
346
|
-
}
|
|
201
|
+
"required": [
|
|
202
|
+
"type"
|
|
203
|
+
],
|
|
204
|
+
"type": "object"
|
|
347
205
|
},
|
|
348
206
|
"FunctionDef": {
|
|
207
|
+
"additionalProperties": false,
|
|
349
208
|
"description": "A function declaration. $prototype must be \"Function\". body (inline) and $src (external) are mutually exclusive. First parameter is always state (the reactive scope).",
|
|
350
|
-
"type": "object",
|
|
351
|
-
"required": [
|
|
352
|
-
"$prototype"
|
|
353
|
-
],
|
|
354
209
|
"properties": {
|
|
210
|
+
"$export": {
|
|
211
|
+
"description": "Named export in $src module. Defaults to the state key name.",
|
|
212
|
+
"type": "string"
|
|
213
|
+
},
|
|
355
214
|
"$prototype": {
|
|
356
|
-
"
|
|
357
|
-
"
|
|
215
|
+
"const": "Function",
|
|
216
|
+
"type": "string"
|
|
217
|
+
},
|
|
218
|
+
"$src": {
|
|
219
|
+
"description": "External module specifier. Mutually exclusive with body.",
|
|
220
|
+
"examples": [
|
|
221
|
+
"./counter.js",
|
|
222
|
+
"npm:@myorg/validators"
|
|
223
|
+
],
|
|
224
|
+
"type": "string"
|
|
358
225
|
},
|
|
359
226
|
"body": {
|
|
360
227
|
"description": "Inline function body string. First implicit parameter is state.",
|
|
361
|
-
"type": "string",
|
|
362
228
|
"examples": [
|
|
363
229
|
"state.count++",
|
|
364
230
|
"state.items.push({ id: Date.now(), text: \"\", done: false })",
|
|
365
231
|
"return state.score >= 90 ? \"gold\" : \"silver\""
|
|
366
|
-
]
|
|
232
|
+
],
|
|
233
|
+
"type": "string"
|
|
367
234
|
},
|
|
368
|
-
"
|
|
369
|
-
"
|
|
370
|
-
|
|
235
|
+
"description": {
|
|
236
|
+
"type": "string"
|
|
237
|
+
},
|
|
238
|
+
"emits": {
|
|
239
|
+
"description": "Array of CEM-compatible Event objects this function dispatches. Used for CEM extraction and studio event discovery.",
|
|
371
240
|
"items": {
|
|
372
|
-
"
|
|
373
|
-
{
|
|
374
|
-
"type": "string"
|
|
375
|
-
},
|
|
376
|
-
{
|
|
377
|
-
"$ref": "#/$defs/CemParameter"
|
|
378
|
-
}
|
|
379
|
-
]
|
|
241
|
+
"$ref": "#/$defs/CemEvent"
|
|
380
242
|
},
|
|
243
|
+
"type": "array"
|
|
244
|
+
},
|
|
245
|
+
"name": {
|
|
246
|
+
"description": "Explicit function name. Defaults to the state key name.",
|
|
247
|
+
"type": "string"
|
|
248
|
+
},
|
|
249
|
+
"parameters": {
|
|
250
|
+
"description": "Function parameters (after the implicit state parameter). Accepts CEM-compatible parameter objects or bare string names for backward compatibility.",
|
|
381
251
|
"examples": [
|
|
382
252
|
[
|
|
383
253
|
"event"
|
|
@@ -392,78 +262,96 @@
|
|
|
392
262
|
],
|
|
393
263
|
[
|
|
394
264
|
{
|
|
265
|
+
"description": "Item identifier",
|
|
395
266
|
"name": "id",
|
|
396
267
|
"type": {
|
|
397
268
|
"text": "number"
|
|
398
|
-
}
|
|
399
|
-
"description": "Item identifier"
|
|
269
|
+
}
|
|
400
270
|
}
|
|
401
271
|
]
|
|
402
|
-
]
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
]
|
|
415
|
-
},
|
|
416
|
-
"$export": {
|
|
417
|
-
"description": "Named export in $src module. Defaults to the state key name.",
|
|
418
|
-
"type": "string"
|
|
272
|
+
],
|
|
273
|
+
"items": {
|
|
274
|
+
"oneOf": [
|
|
275
|
+
{
|
|
276
|
+
"type": "string"
|
|
277
|
+
},
|
|
278
|
+
{
|
|
279
|
+
"$ref": "#/$defs/CemParameter"
|
|
280
|
+
}
|
|
281
|
+
]
|
|
282
|
+
},
|
|
283
|
+
"type": "array"
|
|
419
284
|
},
|
|
420
285
|
"type": {
|
|
421
286
|
"description": "Return type for tooling (JSON Schema or CEM { text } format)."
|
|
422
|
-
},
|
|
423
|
-
"emits": {
|
|
424
|
-
"description": "Array of CEM-compatible Event objects this function dispatches. Used for CEM extraction and studio event discovery.",
|
|
425
|
-
"type": "array",
|
|
426
|
-
"items": {
|
|
427
|
-
"$ref": "#/$defs/CemEvent"
|
|
428
|
-
}
|
|
429
|
-
},
|
|
430
|
-
"description": {
|
|
431
|
-
"type": "string"
|
|
432
287
|
}
|
|
433
288
|
},
|
|
434
|
-
"
|
|
289
|
+
"required": [
|
|
290
|
+
"$prototype"
|
|
291
|
+
],
|
|
292
|
+
"type": "object"
|
|
435
293
|
},
|
|
436
294
|
"ClassDef": {
|
|
295
|
+
"additionalProperties": false,
|
|
437
296
|
"description": "A .class.json schema-defined class. $prototype must be \"Class\". Defines fields, constructor, methods, and type parameters via $defs. Optionally points to a JS module via $implementation for hybrid execution.",
|
|
438
|
-
"type": "object",
|
|
439
|
-
"required": [
|
|
440
|
-
"$prototype",
|
|
441
|
-
"title"
|
|
442
|
-
],
|
|
443
297
|
"properties": {
|
|
444
|
-
"$
|
|
445
|
-
"
|
|
298
|
+
"$defs": {
|
|
299
|
+
"description": "Class members: parameters, returnTypes, fields, constructor, methods.",
|
|
300
|
+
"properties": {
|
|
301
|
+
"constructor": {
|
|
302
|
+
"$ref": "#/$defs/ClassConstructorDef"
|
|
303
|
+
},
|
|
304
|
+
"fields": {
|
|
305
|
+
"additionalProperties": {
|
|
306
|
+
"$ref": "#/$defs/ClassFieldDef"
|
|
307
|
+
},
|
|
308
|
+
"description": "Class fields with role, access, scope, and type information.",
|
|
309
|
+
"type": "object"
|
|
310
|
+
},
|
|
311
|
+
"methods": {
|
|
312
|
+
"additionalProperties": {
|
|
313
|
+
"$ref": "#/$defs/ClassMethodDef"
|
|
314
|
+
},
|
|
315
|
+
"description": "Class methods and accessors.",
|
|
316
|
+
"type": "object"
|
|
317
|
+
},
|
|
318
|
+
"parameters": {
|
|
319
|
+
"additionalProperties": {
|
|
320
|
+
"$ref": "#/$defs/ClassParameterDef"
|
|
321
|
+
},
|
|
322
|
+
"description": "Reusable typed parameter schemas, keyed by name.",
|
|
323
|
+
"type": "object"
|
|
324
|
+
},
|
|
325
|
+
"returnTypes": {
|
|
326
|
+
"additionalProperties": {
|
|
327
|
+
"type": "object"
|
|
328
|
+
},
|
|
329
|
+
"description": "Output type schemas, keyed by name.",
|
|
330
|
+
"type": "object"
|
|
331
|
+
}
|
|
332
|
+
},
|
|
333
|
+
"type": "object"
|
|
446
334
|
},
|
|
447
335
|
"$id": {
|
|
448
336
|
"type": "string"
|
|
449
337
|
},
|
|
450
|
-
"$
|
|
451
|
-
"
|
|
452
|
-
"const": "Class"
|
|
453
|
-
},
|
|
454
|
-
"title": {
|
|
455
|
-
"description": "PascalCase class name, used as the export name.",
|
|
338
|
+
"$implementation": {
|
|
339
|
+
"description": "Relative path to a JS module containing the actual class implementation.",
|
|
456
340
|
"type": "string"
|
|
457
341
|
},
|
|
458
|
-
"
|
|
342
|
+
"$prototype": {
|
|
343
|
+
"const": "Class",
|
|
459
344
|
"type": "string"
|
|
460
345
|
},
|
|
461
|
-
"
|
|
462
|
-
"
|
|
346
|
+
"$schema": {
|
|
347
|
+
"type": "string"
|
|
463
348
|
},
|
|
464
349
|
"$studio": {
|
|
465
350
|
"$ref": "#/$defs/StudioHints"
|
|
466
351
|
},
|
|
352
|
+
"description": {
|
|
353
|
+
"type": "string"
|
|
354
|
+
},
|
|
467
355
|
"extends": {
|
|
468
356
|
"description": "Base class — string name or $ref to another .class.json.",
|
|
469
357
|
"oneOf": [
|
|
@@ -471,171 +359,174 @@
|
|
|
471
359
|
"type": "string"
|
|
472
360
|
},
|
|
473
361
|
{
|
|
474
|
-
"type": "object",
|
|
475
|
-
"required": [
|
|
476
|
-
"$ref"
|
|
477
|
-
],
|
|
478
362
|
"properties": {
|
|
479
363
|
"$ref": {
|
|
480
364
|
"type": "string"
|
|
481
365
|
}
|
|
482
|
-
}
|
|
366
|
+
},
|
|
367
|
+
"required": [
|
|
368
|
+
"$ref"
|
|
369
|
+
],
|
|
370
|
+
"type": "object"
|
|
483
371
|
}
|
|
484
372
|
]
|
|
485
373
|
},
|
|
486
|
-
"
|
|
487
|
-
"
|
|
488
|
-
"type": "string"
|
|
374
|
+
"format": {
|
|
375
|
+
"$ref": "#/$defs/FormatDef"
|
|
489
376
|
},
|
|
490
|
-
"
|
|
491
|
-
"description": "
|
|
492
|
-
"type": "
|
|
493
|
-
"properties": {
|
|
494
|
-
"parameters": {
|
|
495
|
-
"description": "Reusable typed parameter schemas, keyed by name.",
|
|
496
|
-
"type": "object",
|
|
497
|
-
"additionalProperties": {
|
|
498
|
-
"$ref": "#/$defs/ClassParameterDef"
|
|
499
|
-
}
|
|
500
|
-
},
|
|
501
|
-
"returnTypes": {
|
|
502
|
-
"description": "Output type schemas, keyed by name.",
|
|
503
|
-
"type": "object",
|
|
504
|
-
"additionalProperties": {
|
|
505
|
-
"type": "object"
|
|
506
|
-
}
|
|
507
|
-
},
|
|
508
|
-
"fields": {
|
|
509
|
-
"description": "Class fields with role, access, scope, and type information.",
|
|
510
|
-
"type": "object",
|
|
511
|
-
"additionalProperties": {
|
|
512
|
-
"$ref": "#/$defs/ClassFieldDef"
|
|
513
|
-
}
|
|
514
|
-
},
|
|
515
|
-
"constructor": {
|
|
516
|
-
"$ref": "#/$defs/ClassConstructorDef"
|
|
517
|
-
},
|
|
518
|
-
"methods": {
|
|
519
|
-
"description": "Class methods and accessors.",
|
|
520
|
-
"type": "object",
|
|
521
|
-
"additionalProperties": {
|
|
522
|
-
"$ref": "#/$defs/ClassMethodDef"
|
|
523
|
-
}
|
|
524
|
-
}
|
|
525
|
-
}
|
|
377
|
+
"title": {
|
|
378
|
+
"description": "PascalCase class name, used as the export name.",
|
|
379
|
+
"type": "string"
|
|
526
380
|
}
|
|
527
381
|
},
|
|
528
|
-
"
|
|
382
|
+
"required": [
|
|
383
|
+
"$prototype",
|
|
384
|
+
"title"
|
|
385
|
+
],
|
|
386
|
+
"type": "object"
|
|
529
387
|
},
|
|
530
388
|
"ClassParameterDef": {
|
|
531
389
|
"description": "A typed parameter definition for a class.",
|
|
532
|
-
"type": "object",
|
|
533
|
-
"required": [
|
|
534
|
-
"identifier"
|
|
535
|
-
],
|
|
536
390
|
"properties": {
|
|
537
|
-
"
|
|
391
|
+
"default": {},
|
|
392
|
+
"description": {
|
|
538
393
|
"type": "string"
|
|
539
394
|
},
|
|
540
|
-
"
|
|
395
|
+
"examples": {
|
|
396
|
+
"type": "array"
|
|
397
|
+
},
|
|
541
398
|
"format": {
|
|
542
399
|
"description": "When \"json-schema\", this parameter's value is itself a JSON Schema.",
|
|
543
400
|
"type": "string"
|
|
544
401
|
},
|
|
545
|
-
"
|
|
402
|
+
"identifier": {
|
|
546
403
|
"type": "string"
|
|
547
404
|
},
|
|
548
|
-
"
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
405
|
+
"type": {}
|
|
406
|
+
},
|
|
407
|
+
"required": [
|
|
408
|
+
"identifier"
|
|
409
|
+
],
|
|
410
|
+
"type": "object"
|
|
553
411
|
},
|
|
554
412
|
"ClassFieldDef": {
|
|
555
413
|
"description": "A class field definition with access control and scope.",
|
|
556
|
-
"type": "object",
|
|
557
414
|
"properties": {
|
|
558
|
-
"
|
|
559
|
-
"
|
|
560
|
-
"
|
|
415
|
+
"$prototype": {
|
|
416
|
+
"description": "Data source prototype for this field (e.g., \"Request\").",
|
|
417
|
+
"type": "string"
|
|
561
418
|
},
|
|
562
419
|
"access": {
|
|
563
|
-
"type": "string",
|
|
564
420
|
"enum": [
|
|
565
421
|
"public",
|
|
566
422
|
"private",
|
|
567
423
|
"protected"
|
|
568
|
-
]
|
|
424
|
+
],
|
|
425
|
+
"type": "string"
|
|
569
426
|
},
|
|
570
|
-
"
|
|
571
|
-
|
|
572
|
-
"
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
427
|
+
"default": {},
|
|
428
|
+
"description": {
|
|
429
|
+
"type": "string"
|
|
430
|
+
},
|
|
431
|
+
"examples": {
|
|
432
|
+
"type": "array"
|
|
576
433
|
},
|
|
577
434
|
"identifier": {
|
|
578
435
|
"type": "string"
|
|
579
436
|
},
|
|
580
|
-
"
|
|
581
|
-
"
|
|
582
|
-
"
|
|
437
|
+
"initializer": {},
|
|
438
|
+
"role": {
|
|
439
|
+
"const": "field",
|
|
583
440
|
"type": "string"
|
|
584
441
|
},
|
|
585
|
-
"
|
|
586
|
-
|
|
587
|
-
|
|
442
|
+
"scope": {
|
|
443
|
+
"enum": [
|
|
444
|
+
"instance",
|
|
445
|
+
"static"
|
|
446
|
+
],
|
|
588
447
|
"type": "string"
|
|
589
448
|
},
|
|
590
|
-
"
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
}
|
|
449
|
+
"type": {}
|
|
450
|
+
},
|
|
451
|
+
"type": "object"
|
|
594
452
|
},
|
|
595
453
|
"ClassConstructorDef": {
|
|
596
454
|
"description": "Class constructor definition.",
|
|
597
|
-
"type": "object",
|
|
598
455
|
"properties": {
|
|
599
|
-
"role": {
|
|
600
|
-
"type": "string",
|
|
601
|
-
"const": "constructor"
|
|
602
|
-
},
|
|
603
456
|
"$prototype": {
|
|
604
|
-
"
|
|
605
|
-
"
|
|
457
|
+
"const": "Function",
|
|
458
|
+
"type": "string"
|
|
459
|
+
},
|
|
460
|
+
"body": {
|
|
461
|
+
"oneOf": [
|
|
462
|
+
{
|
|
463
|
+
"type": "string"
|
|
464
|
+
},
|
|
465
|
+
{
|
|
466
|
+
"items": {
|
|
467
|
+
"type": "string"
|
|
468
|
+
},
|
|
469
|
+
"type": "array"
|
|
470
|
+
}
|
|
471
|
+
]
|
|
472
|
+
},
|
|
473
|
+
"description": {
|
|
474
|
+
"type": "string"
|
|
606
475
|
},
|
|
607
476
|
"parameters": {
|
|
608
|
-
"type": "array",
|
|
609
477
|
"items": {
|
|
610
478
|
"oneOf": [
|
|
611
479
|
{
|
|
612
|
-
"
|
|
613
|
-
"required": [
|
|
614
|
-
"$ref"
|
|
615
|
-
],
|
|
480
|
+
"additionalProperties": false,
|
|
616
481
|
"properties": {
|
|
617
482
|
"$ref": {
|
|
618
483
|
"type": "string"
|
|
619
484
|
}
|
|
620
485
|
},
|
|
621
|
-
"
|
|
486
|
+
"required": [
|
|
487
|
+
"$ref"
|
|
488
|
+
],
|
|
489
|
+
"type": "object"
|
|
622
490
|
},
|
|
623
491
|
{
|
|
624
492
|
"$ref": "#/$defs/ClassParameterDef"
|
|
625
493
|
}
|
|
626
494
|
]
|
|
627
|
-
}
|
|
495
|
+
},
|
|
496
|
+
"type": "array"
|
|
497
|
+
},
|
|
498
|
+
"role": {
|
|
499
|
+
"const": "constructor",
|
|
500
|
+
"type": "string"
|
|
628
501
|
},
|
|
629
502
|
"superCall": {
|
|
630
|
-
"type": "object",
|
|
631
503
|
"properties": {
|
|
632
504
|
"arguments": {
|
|
633
|
-
"type": "array",
|
|
634
505
|
"items": {
|
|
635
506
|
"type": "string"
|
|
636
|
-
}
|
|
507
|
+
},
|
|
508
|
+
"type": "array"
|
|
637
509
|
}
|
|
638
|
-
}
|
|
510
|
+
},
|
|
511
|
+
"type": "object"
|
|
512
|
+
}
|
|
513
|
+
},
|
|
514
|
+
"type": "object"
|
|
515
|
+
},
|
|
516
|
+
"ClassMethodDef": {
|
|
517
|
+
"description": "A class method or accessor definition. Capability roles (parse, serialize, discover, load) mark static methods that hosts (compiler, server, studio) invoke for format dispatch.",
|
|
518
|
+
"properties": {
|
|
519
|
+
"$prototype": {
|
|
520
|
+
"const": "Function",
|
|
521
|
+
"type": "string"
|
|
522
|
+
},
|
|
523
|
+
"access": {
|
|
524
|
+
"enum": [
|
|
525
|
+
"public",
|
|
526
|
+
"private",
|
|
527
|
+
"protected"
|
|
528
|
+
],
|
|
529
|
+
"type": "string"
|
|
639
530
|
},
|
|
640
531
|
"body": {
|
|
641
532
|
"oneOf": [
|
|
@@ -643,196 +534,143 @@
|
|
|
643
534
|
"type": "string"
|
|
644
535
|
},
|
|
645
536
|
{
|
|
646
|
-
"type": "array",
|
|
647
537
|
"items": {
|
|
648
538
|
"type": "string"
|
|
649
|
-
}
|
|
539
|
+
},
|
|
540
|
+
"type": "array"
|
|
650
541
|
}
|
|
651
542
|
]
|
|
652
543
|
},
|
|
653
544
|
"description": {
|
|
654
545
|
"type": "string"
|
|
655
|
-
}
|
|
656
|
-
}
|
|
657
|
-
},
|
|
658
|
-
"ClassMethodDef": {
|
|
659
|
-
"description": "A class method or accessor definition. Capability roles (parse, serialize, discover, load) mark static methods that hosts (compiler, server, studio) invoke for format dispatch.",
|
|
660
|
-
"type": "object",
|
|
661
|
-
"properties": {
|
|
662
|
-
"role": {
|
|
663
|
-
"type": "string",
|
|
664
|
-
"enum": [
|
|
665
|
-
"method",
|
|
666
|
-
"accessor",
|
|
667
|
-
"parse",
|
|
668
|
-
"serialize",
|
|
669
|
-
"discover",
|
|
670
|
-
"load"
|
|
671
|
-
]
|
|
672
|
-
},
|
|
673
|
-
"$prototype": {
|
|
674
|
-
"type": "string",
|
|
675
|
-
"const": "Function"
|
|
676
546
|
},
|
|
677
|
-
"
|
|
678
|
-
"
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
},
|
|
685
|
-
"scope": {
|
|
686
|
-
"type": "string",
|
|
687
|
-
"enum": [
|
|
688
|
-
"instance",
|
|
689
|
-
"static"
|
|
690
|
-
]
|
|
547
|
+
"getter": {
|
|
548
|
+
"properties": {
|
|
549
|
+
"body": {
|
|
550
|
+
"type": "string"
|
|
551
|
+
}
|
|
552
|
+
},
|
|
553
|
+
"type": "object"
|
|
691
554
|
},
|
|
692
555
|
"identifier": {
|
|
693
556
|
"type": "string"
|
|
694
557
|
},
|
|
695
|
-
"timing": {
|
|
696
|
-
"description": "Execution environments allowed to call this capability directly. Hosts outside the list round-trip through the dev server.",
|
|
697
|
-
"type": "array",
|
|
698
|
-
"items": {
|
|
699
|
-
"type": "string",
|
|
700
|
-
"enum": [
|
|
701
|
-
"compiler",
|
|
702
|
-
"server",
|
|
703
|
-
"client"
|
|
704
|
-
]
|
|
705
|
-
}
|
|
706
|
-
},
|
|
707
558
|
"parameters": {
|
|
708
|
-
"type": "array",
|
|
709
559
|
"items": {
|
|
710
560
|
"oneOf": [
|
|
711
561
|
{
|
|
712
|
-
"
|
|
713
|
-
"required": [
|
|
714
|
-
"$ref"
|
|
715
|
-
],
|
|
562
|
+
"additionalProperties": false,
|
|
716
563
|
"properties": {
|
|
717
564
|
"$ref": {
|
|
718
565
|
"type": "string"
|
|
719
566
|
}
|
|
720
567
|
},
|
|
721
|
-
"
|
|
568
|
+
"required": [
|
|
569
|
+
"$ref"
|
|
570
|
+
],
|
|
571
|
+
"type": "object"
|
|
722
572
|
},
|
|
723
573
|
{
|
|
724
574
|
"$ref": "#/$defs/ClassParameterDef"
|
|
725
575
|
}
|
|
726
576
|
]
|
|
727
|
-
}
|
|
577
|
+
},
|
|
578
|
+
"type": "array"
|
|
728
579
|
},
|
|
729
580
|
"returnType": {},
|
|
730
|
-
"
|
|
731
|
-
"
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
}
|
|
741
|
-
]
|
|
581
|
+
"role": {
|
|
582
|
+
"enum": [
|
|
583
|
+
"method",
|
|
584
|
+
"accessor",
|
|
585
|
+
"parse",
|
|
586
|
+
"serialize",
|
|
587
|
+
"discover",
|
|
588
|
+
"load"
|
|
589
|
+
],
|
|
590
|
+
"type": "string"
|
|
742
591
|
},
|
|
743
|
-
"
|
|
744
|
-
"
|
|
745
|
-
|
|
746
|
-
"
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
}
|
|
592
|
+
"scope": {
|
|
593
|
+
"enum": [
|
|
594
|
+
"instance",
|
|
595
|
+
"static"
|
|
596
|
+
],
|
|
597
|
+
"type": "string"
|
|
750
598
|
},
|
|
751
599
|
"setter": {
|
|
752
|
-
"type": "object",
|
|
753
600
|
"properties": {
|
|
754
|
-
"parameters": {
|
|
755
|
-
"type": "array"
|
|
756
|
-
},
|
|
757
601
|
"body": {
|
|
758
602
|
"type": "string"
|
|
603
|
+
},
|
|
604
|
+
"parameters": {
|
|
605
|
+
"type": "array"
|
|
759
606
|
}
|
|
760
|
-
}
|
|
607
|
+
},
|
|
608
|
+
"type": "object"
|
|
761
609
|
},
|
|
762
|
-
"
|
|
763
|
-
"
|
|
610
|
+
"timing": {
|
|
611
|
+
"description": "Execution environments allowed to call this capability directly. Hosts outside the list round-trip through the dev server.",
|
|
612
|
+
"items": {
|
|
613
|
+
"enum": [
|
|
614
|
+
"compiler",
|
|
615
|
+
"server",
|
|
616
|
+
"client"
|
|
617
|
+
],
|
|
618
|
+
"type": "string"
|
|
619
|
+
},
|
|
620
|
+
"type": "array"
|
|
764
621
|
}
|
|
765
|
-
}
|
|
622
|
+
},
|
|
623
|
+
"type": "object"
|
|
766
624
|
},
|
|
767
625
|
"FormatDef": {
|
|
768
626
|
"description": "Format participation marker. A class carrying this block is auto-discovered from the project imports map and used for file-extension dispatch by the compiler, server, and studio.",
|
|
769
|
-
"type": "object",
|
|
770
|
-
"required": [
|
|
771
|
-
"extensions"
|
|
772
|
-
],
|
|
773
627
|
"properties": {
|
|
774
|
-
"extensions": {
|
|
775
|
-
"description": "File extensions this format claims, with leading dot (e.g. [\".md\"]).",
|
|
776
|
-
"type": "array",
|
|
777
|
-
"items": {
|
|
778
|
-
"type": "string",
|
|
779
|
-
"pattern": "^\\."
|
|
780
|
-
},
|
|
781
|
-
"minItems": 1
|
|
782
|
-
},
|
|
783
|
-
"mediaType": {
|
|
784
|
-
"description": "MIME type for the format (icons, labels, HTTP).",
|
|
785
|
-
"type": "string"
|
|
786
|
-
},
|
|
787
628
|
"documentKinds": {
|
|
788
629
|
"description": "\"page\"/\"component\" allow the extension in pages/components discovery; \"content\" allows it as a content-type source.",
|
|
789
|
-
"type": "array",
|
|
790
630
|
"items": {
|
|
791
|
-
"type": "string",
|
|
792
631
|
"enum": [
|
|
793
632
|
"page",
|
|
794
633
|
"component",
|
|
795
634
|
"content"
|
|
796
|
-
]
|
|
797
|
-
|
|
635
|
+
],
|
|
636
|
+
"type": "string"
|
|
637
|
+
},
|
|
638
|
+
"type": "array"
|
|
639
|
+
},
|
|
640
|
+
"exportTarget": {
|
|
641
|
+
"description": "When true, site builds emit a serialized sidecar per page in this format.",
|
|
642
|
+
"type": "boolean"
|
|
643
|
+
},
|
|
644
|
+
"extensions": {
|
|
645
|
+
"description": "File extensions this format claims, with leading dot (e.g. [\".md\"]).",
|
|
646
|
+
"items": {
|
|
647
|
+
"pattern": "^\\.",
|
|
648
|
+
"type": "string"
|
|
649
|
+
},
|
|
650
|
+
"minItems": 1,
|
|
651
|
+
"type": "array"
|
|
798
652
|
},
|
|
799
|
-
"
|
|
800
|
-
"description": "
|
|
801
|
-
"type": "
|
|
653
|
+
"mediaType": {
|
|
654
|
+
"description": "MIME type for the format (icons, labels, HTTP).",
|
|
655
|
+
"type": "string"
|
|
802
656
|
},
|
|
803
657
|
"remote": {
|
|
804
658
|
"description": "When true, the load capability accepts http(s) URLs as sources.",
|
|
805
659
|
"type": "boolean"
|
|
806
660
|
}
|
|
807
|
-
}
|
|
661
|
+
},
|
|
662
|
+
"required": [
|
|
663
|
+
"extensions"
|
|
664
|
+
],
|
|
665
|
+
"type": "object"
|
|
808
666
|
},
|
|
809
667
|
"StudioHints": {
|
|
810
668
|
"description": "Studio control-surface hints for a format class: editor modes, document-mode rules, templates, and the element/nesting constraints that gate structural editing.",
|
|
811
|
-
"type": "object",
|
|
812
669
|
"properties": {
|
|
813
|
-
"icon": {
|
|
814
|
-
"type": "string"
|
|
815
|
-
},
|
|
816
|
-
"modes": {
|
|
817
|
-
"description": "Editor modes the studio offers for documents of this format.",
|
|
818
|
-
"type": "array",
|
|
819
|
-
"items": {
|
|
820
|
-
"type": "string"
|
|
821
|
-
}
|
|
822
|
-
},
|
|
823
670
|
"documentMode": {
|
|
824
|
-
"type": "object",
|
|
825
671
|
"properties": {
|
|
826
|
-
"default": {
|
|
827
|
-
"type": "string",
|
|
828
|
-
"enum": [
|
|
829
|
-
"content",
|
|
830
|
-
"component"
|
|
831
|
-
]
|
|
832
|
-
},
|
|
833
672
|
"componentWhen": {
|
|
834
673
|
"description": "Treat the document as a component when this top-level/frontmatter key matches the regex.",
|
|
835
|
-
"type": "object",
|
|
836
674
|
"properties": {
|
|
837
675
|
"frontmatterKey": {
|
|
838
676
|
"type": "string"
|
|
@@ -840,83 +678,99 @@
|
|
|
840
678
|
"matches": {
|
|
841
679
|
"type": "string"
|
|
842
680
|
}
|
|
843
|
-
}
|
|
681
|
+
},
|
|
682
|
+
"type": "object"
|
|
683
|
+
},
|
|
684
|
+
"default": {
|
|
685
|
+
"enum": [
|
|
686
|
+
"content",
|
|
687
|
+
"component"
|
|
688
|
+
],
|
|
689
|
+
"type": "string"
|
|
844
690
|
}
|
|
845
|
-
}
|
|
846
|
-
|
|
847
|
-
"newFileTemplate": {
|
|
848
|
-
"description": "Initial source text for newly created files of this format.",
|
|
849
|
-
"type": "string"
|
|
691
|
+
},
|
|
692
|
+
"type": "object"
|
|
850
693
|
},
|
|
851
694
|
"elements": {
|
|
852
695
|
"description": "Element allowlist and nesting constraints for structural editing.",
|
|
853
|
-
"type": "object",
|
|
854
696
|
"properties": {
|
|
855
697
|
"block": {
|
|
856
|
-
"type": "array",
|
|
857
698
|
"items": {
|
|
858
699
|
"type": "string"
|
|
859
|
-
}
|
|
700
|
+
},
|
|
701
|
+
"type": "array"
|
|
860
702
|
},
|
|
861
703
|
"inline": {
|
|
862
|
-
"type": "array",
|
|
863
|
-
"items": {
|
|
864
|
-
"type": "string"
|
|
865
|
-
}
|
|
866
|
-
},
|
|
867
|
-
"void": {
|
|
868
|
-
"type": "array",
|
|
869
|
-
"items": {
|
|
870
|
-
"type": "string"
|
|
871
|
-
}
|
|
872
|
-
},
|
|
873
|
-
"textOnly": {
|
|
874
|
-
"type": "array",
|
|
875
704
|
"items": {
|
|
876
705
|
"type": "string"
|
|
877
|
-
}
|
|
706
|
+
},
|
|
707
|
+
"type": "array"
|
|
878
708
|
},
|
|
879
709
|
"nesting": {
|
|
880
|
-
"description": "Per-parent child rules keyed by tag (or \"_root\"): { block, inline, directive } booleans or { only: [tags] }.",
|
|
881
|
-
"type": "object",
|
|
882
710
|
"additionalProperties": {
|
|
883
|
-
"type": "object",
|
|
884
711
|
"properties": {
|
|
885
712
|
"block": {
|
|
886
713
|
"type": "boolean"
|
|
887
714
|
},
|
|
888
|
-
"
|
|
715
|
+
"directive": {
|
|
889
716
|
"type": "boolean"
|
|
890
717
|
},
|
|
891
|
-
"
|
|
718
|
+
"inline": {
|
|
892
719
|
"type": "boolean"
|
|
893
720
|
},
|
|
894
721
|
"only": {
|
|
895
|
-
"type": "array",
|
|
896
722
|
"items": {
|
|
897
723
|
"type": "string"
|
|
898
|
-
}
|
|
724
|
+
},
|
|
725
|
+
"type": "array"
|
|
899
726
|
}
|
|
900
|
-
}
|
|
901
|
-
|
|
727
|
+
},
|
|
728
|
+
"type": "object"
|
|
729
|
+
},
|
|
730
|
+
"description": "Per-parent child rules keyed by tag (or \"_root\"): { block, inline, directive } booleans or { only: [tags] }.",
|
|
731
|
+
"type": "object"
|
|
732
|
+
},
|
|
733
|
+
"textOnly": {
|
|
734
|
+
"items": {
|
|
735
|
+
"type": "string"
|
|
736
|
+
},
|
|
737
|
+
"type": "array"
|
|
738
|
+
},
|
|
739
|
+
"void": {
|
|
740
|
+
"items": {
|
|
741
|
+
"type": "string"
|
|
742
|
+
},
|
|
743
|
+
"type": "array"
|
|
902
744
|
}
|
|
903
|
-
}
|
|
745
|
+
},
|
|
746
|
+
"type": "object"
|
|
747
|
+
},
|
|
748
|
+
"icon": {
|
|
749
|
+
"type": "string"
|
|
750
|
+
},
|
|
751
|
+
"modes": {
|
|
752
|
+
"description": "Editor modes the studio offers for documents of this format.",
|
|
753
|
+
"items": {
|
|
754
|
+
"type": "string"
|
|
755
|
+
},
|
|
756
|
+
"type": "array"
|
|
757
|
+
},
|
|
758
|
+
"newFileTemplate": {
|
|
759
|
+
"description": "Initial source text for newly created files of this format.",
|
|
760
|
+
"type": "string"
|
|
904
761
|
}
|
|
905
|
-
}
|
|
762
|
+
},
|
|
763
|
+
"type": "object"
|
|
906
764
|
},
|
|
907
765
|
"ExternalClassDef": {
|
|
908
766
|
"description": "An external class / data source. $prototype is a constructor name (not \"Function\"). When $prototype is not in the built-in registry, $src is required. All state entries are reactive by default.",
|
|
909
|
-
"type": "object",
|
|
910
|
-
"required": [
|
|
911
|
-
"$prototype"
|
|
912
|
-
],
|
|
913
767
|
"properties": {
|
|
768
|
+
"$export": {
|
|
769
|
+
"description": "Named export in $src module. Defaults to the $prototype value.",
|
|
770
|
+
"type": "string"
|
|
771
|
+
},
|
|
914
772
|
"$prototype": {
|
|
915
773
|
"description": "Constructor name — built-in Web API class or external class name.",
|
|
916
|
-
"type": "string",
|
|
917
|
-
"not": {
|
|
918
|
-
"const": "Function"
|
|
919
|
-
},
|
|
920
774
|
"examples": [
|
|
921
775
|
"Request",
|
|
922
776
|
"URLSearchParams",
|
|
@@ -932,155 +786,137 @@
|
|
|
932
786
|
"ReadableStream",
|
|
933
787
|
"MarkdownCollection",
|
|
934
788
|
"MyParser"
|
|
935
|
-
]
|
|
789
|
+
],
|
|
790
|
+
"not": {
|
|
791
|
+
"const": "Function"
|
|
792
|
+
},
|
|
793
|
+
"type": "string"
|
|
936
794
|
},
|
|
937
795
|
"$src": {
|
|
938
796
|
"description": "External module specifier. Required when $prototype is not a built-in.",
|
|
939
|
-
"type": "string",
|
|
940
797
|
"examples": [
|
|
941
798
|
"@jxsuite/md",
|
|
942
799
|
"./lib/my-parser.js",
|
|
943
800
|
"npm:@myorg/data"
|
|
944
|
-
]
|
|
945
|
-
},
|
|
946
|
-
"$export": {
|
|
947
|
-
"description": "Named export in $src module. Defaults to the $prototype value.",
|
|
801
|
+
],
|
|
948
802
|
"type": "string"
|
|
949
803
|
},
|
|
950
|
-
"
|
|
951
|
-
"type": "string",
|
|
952
|
-
"enum": [
|
|
953
|
-
"compiler",
|
|
954
|
-
"server",
|
|
955
|
-
"client"
|
|
956
|
-
]
|
|
957
|
-
},
|
|
958
|
-
"manual": {
|
|
804
|
+
"autoIncrement": {
|
|
959
805
|
"type": "boolean"
|
|
960
806
|
},
|
|
961
|
-
"debounce": {
|
|
962
|
-
"type": "integer",
|
|
963
|
-
"minimum": 0
|
|
964
|
-
},
|
|
965
|
-
"url": {
|
|
966
|
-
"$ref": "#/$defs/StringOrRef"
|
|
967
|
-
},
|
|
968
|
-
"method": {
|
|
969
|
-
"type": "string",
|
|
970
|
-
"enum": [
|
|
971
|
-
"GET",
|
|
972
|
-
"POST",
|
|
973
|
-
"PUT",
|
|
974
|
-
"PATCH",
|
|
975
|
-
"DELETE",
|
|
976
|
-
"HEAD",
|
|
977
|
-
"OPTIONS"
|
|
978
|
-
]
|
|
979
|
-
},
|
|
980
|
-
"headers": {
|
|
981
|
-
"type": "object",
|
|
982
|
-
"additionalProperties": {
|
|
983
|
-
"type": "string"
|
|
984
|
-
}
|
|
985
|
-
},
|
|
986
807
|
"body": {},
|
|
987
|
-
"
|
|
988
|
-
"type": "string",
|
|
989
|
-
"enum": [
|
|
990
|
-
"json",
|
|
991
|
-
"text",
|
|
992
|
-
"blob",
|
|
993
|
-
"arraybuffer",
|
|
994
|
-
"document",
|
|
995
|
-
""
|
|
996
|
-
]
|
|
997
|
-
},
|
|
998
|
-
"key": {
|
|
999
|
-
"type": "string"
|
|
1000
|
-
},
|
|
1001
|
-
"name": {
|
|
808
|
+
"database": {
|
|
1002
809
|
"type": "string"
|
|
1003
810
|
},
|
|
1004
|
-
"
|
|
811
|
+
"debounce": {
|
|
812
|
+
"minimum": 0,
|
|
1005
813
|
"type": "integer"
|
|
1006
814
|
},
|
|
1007
|
-
"
|
|
1008
|
-
|
|
1009
|
-
},
|
|
1010
|
-
"path": {
|
|
815
|
+
"default": {},
|
|
816
|
+
"description": {
|
|
1011
817
|
"type": "string"
|
|
1012
818
|
},
|
|
1013
819
|
"domain": {
|
|
1014
820
|
"type": "string"
|
|
1015
821
|
},
|
|
1016
|
-
"
|
|
1017
|
-
"type": "boolean"
|
|
1018
|
-
},
|
|
1019
|
-
"sameSite": {
|
|
1020
|
-
"type": "string",
|
|
1021
|
-
"enum": [
|
|
1022
|
-
"strict",
|
|
1023
|
-
"lax",
|
|
1024
|
-
"none"
|
|
1025
|
-
]
|
|
1026
|
-
},
|
|
1027
|
-
"database": {
|
|
1028
|
-
"type": "string"
|
|
1029
|
-
},
|
|
1030
|
-
"store": {
|
|
822
|
+
"expires": {
|
|
1031
823
|
"type": "string"
|
|
1032
824
|
},
|
|
1033
|
-
"
|
|
1034
|
-
"
|
|
1035
|
-
"minimum": 1
|
|
1036
|
-
},
|
|
1037
|
-
"keyPath": {
|
|
1038
|
-
"type": "string"
|
|
825
|
+
"filter": {
|
|
826
|
+
"$ref": "#/$defs/RefObject"
|
|
1039
827
|
},
|
|
1040
|
-
"
|
|
1041
|
-
"
|
|
828
|
+
"headers": {
|
|
829
|
+
"additionalProperties": {
|
|
830
|
+
"type": "string"
|
|
831
|
+
},
|
|
832
|
+
"type": "object"
|
|
1042
833
|
},
|
|
1043
834
|
"indexes": {
|
|
1044
|
-
"type": "array",
|
|
1045
835
|
"items": {
|
|
1046
|
-
"type": "object",
|
|
1047
|
-
"required": [
|
|
1048
|
-
"name",
|
|
1049
|
-
"keyPath"
|
|
1050
|
-
],
|
|
1051
836
|
"properties": {
|
|
1052
|
-
"name": {
|
|
1053
|
-
"type": "string"
|
|
1054
|
-
},
|
|
1055
837
|
"keyPath": {
|
|
1056
838
|
"oneOf": [
|
|
1057
839
|
{
|
|
1058
840
|
"type": "string"
|
|
1059
841
|
},
|
|
1060
842
|
{
|
|
1061
|
-
"type": "array",
|
|
1062
843
|
"items": {
|
|
1063
844
|
"type": "string"
|
|
1064
|
-
}
|
|
845
|
+
},
|
|
846
|
+
"type": "array"
|
|
1065
847
|
}
|
|
1066
848
|
]
|
|
1067
849
|
},
|
|
850
|
+
"name": {
|
|
851
|
+
"type": "string"
|
|
852
|
+
},
|
|
1068
853
|
"unique": {
|
|
1069
854
|
"type": "boolean"
|
|
1070
855
|
}
|
|
1071
|
-
}
|
|
1072
|
-
|
|
856
|
+
},
|
|
857
|
+
"required": [
|
|
858
|
+
"name",
|
|
859
|
+
"keyPath"
|
|
860
|
+
],
|
|
861
|
+
"type": "object"
|
|
862
|
+
},
|
|
863
|
+
"type": "array"
|
|
864
|
+
},
|
|
865
|
+
"items": {},
|
|
866
|
+
"key": {
|
|
867
|
+
"type": "string"
|
|
868
|
+
},
|
|
869
|
+
"keyPath": {
|
|
870
|
+
"type": "string"
|
|
871
|
+
},
|
|
872
|
+
"manual": {
|
|
873
|
+
"type": "boolean"
|
|
874
|
+
},
|
|
875
|
+
"map": {
|
|
876
|
+
"$ref": "#/$defs/ElementDef"
|
|
877
|
+
},
|
|
878
|
+
"maxAge": {
|
|
879
|
+
"type": "integer"
|
|
880
|
+
},
|
|
881
|
+
"method": {
|
|
882
|
+
"enum": [
|
|
883
|
+
"GET",
|
|
884
|
+
"POST",
|
|
885
|
+
"PUT",
|
|
886
|
+
"PATCH",
|
|
887
|
+
"DELETE",
|
|
888
|
+
"HEAD",
|
|
889
|
+
"OPTIONS"
|
|
890
|
+
],
|
|
891
|
+
"type": "string"
|
|
892
|
+
},
|
|
893
|
+
"name": {
|
|
894
|
+
"type": "string"
|
|
895
|
+
},
|
|
896
|
+
"path": {
|
|
897
|
+
"type": "string"
|
|
1073
898
|
},
|
|
1074
|
-
"
|
|
1075
|
-
|
|
899
|
+
"responseType": {
|
|
900
|
+
"enum": [
|
|
901
|
+
"json",
|
|
902
|
+
"text",
|
|
903
|
+
"blob",
|
|
904
|
+
"arraybuffer",
|
|
905
|
+
"document",
|
|
906
|
+
""
|
|
907
|
+
],
|
|
1076
908
|
"type": "string"
|
|
1077
909
|
},
|
|
1078
|
-
"
|
|
1079
|
-
|
|
1080
|
-
|
|
910
|
+
"sameSite": {
|
|
911
|
+
"enum": [
|
|
912
|
+
"strict",
|
|
913
|
+
"lax",
|
|
914
|
+
"none"
|
|
915
|
+
],
|
|
916
|
+
"type": "string"
|
|
1081
917
|
},
|
|
1082
|
-
"
|
|
1083
|
-
"
|
|
918
|
+
"secure": {
|
|
919
|
+
"type": "boolean"
|
|
1084
920
|
},
|
|
1085
921
|
"sort": {
|
|
1086
922
|
"$ref": "#/$defs/RefObject"
|
|
@@ -1088,31 +924,52 @@
|
|
|
1088
924
|
"src": {
|
|
1089
925
|
"description": "Configuration property passed to external class constructor.",
|
|
1090
926
|
"type": "string"
|
|
927
|
+
},
|
|
928
|
+
"store": {
|
|
929
|
+
"type": "string"
|
|
930
|
+
},
|
|
931
|
+
"timing": {
|
|
932
|
+
"enum": [
|
|
933
|
+
"compiler",
|
|
934
|
+
"server",
|
|
935
|
+
"client"
|
|
936
|
+
],
|
|
937
|
+
"type": "string"
|
|
938
|
+
},
|
|
939
|
+
"url": {
|
|
940
|
+
"$ref": "#/$defs/StringOrRef"
|
|
941
|
+
},
|
|
942
|
+
"version": {
|
|
943
|
+
"minimum": 1,
|
|
944
|
+
"type": "integer"
|
|
1091
945
|
}
|
|
1092
|
-
}
|
|
946
|
+
},
|
|
947
|
+
"required": [
|
|
948
|
+
"$prototype"
|
|
949
|
+
],
|
|
950
|
+
"type": "object"
|
|
1093
951
|
},
|
|
1094
952
|
"ExpressionPointer": {
|
|
953
|
+
"additionalProperties": false,
|
|
1095
954
|
"description": "A JSON Pointer $ref operand within an expression node.",
|
|
1096
|
-
"type": "object",
|
|
1097
955
|
"properties": {
|
|
1098
956
|
"$ref": {
|
|
1099
|
-
"
|
|
1100
|
-
"
|
|
957
|
+
"pattern": "^(\\$map/|\\$reduce/|event#/|#/|parent#/|window#/|document#/)",
|
|
958
|
+
"type": "string"
|
|
1101
959
|
}
|
|
1102
960
|
},
|
|
1103
961
|
"required": [
|
|
1104
962
|
"$ref"
|
|
1105
963
|
],
|
|
1106
|
-
"
|
|
964
|
+
"type": "object"
|
|
1107
965
|
},
|
|
1108
966
|
"ExpressionLiteral": {
|
|
1109
|
-
"description": "A non-reactive operand: scalar or array of operands.",
|
|
1110
967
|
"anyOf": [
|
|
1111
968
|
{
|
|
1112
|
-
"type": "string",
|
|
1113
969
|
"not": {
|
|
1114
970
|
"pattern": "\\$\\{"
|
|
1115
|
-
}
|
|
971
|
+
},
|
|
972
|
+
"type": "string"
|
|
1116
973
|
},
|
|
1117
974
|
{
|
|
1118
975
|
"type": "number"
|
|
@@ -1124,15 +981,15 @@
|
|
|
1124
981
|
"type": "null"
|
|
1125
982
|
},
|
|
1126
983
|
{
|
|
1127
|
-
"type": "array",
|
|
1128
984
|
"items": {
|
|
1129
985
|
"$ref": "#/$defs/ExpressionOperand"
|
|
1130
|
-
}
|
|
986
|
+
},
|
|
987
|
+
"type": "array"
|
|
1131
988
|
}
|
|
1132
|
-
]
|
|
989
|
+
],
|
|
990
|
+
"description": "A non-reactive operand: scalar or array of operands."
|
|
1133
991
|
},
|
|
1134
992
|
"ExpressionOperand": {
|
|
1135
|
-
"description": "Anything that may appear in target or value: a pointer, a literal, or a nested expression node.",
|
|
1136
993
|
"anyOf": [
|
|
1137
994
|
{
|
|
1138
995
|
"$ref": "#/$defs/ExpressionPointer"
|
|
@@ -1143,7 +1000,8 @@
|
|
|
1143
1000
|
{
|
|
1144
1001
|
"$ref": "#/$defs/ExpressionLiteral"
|
|
1145
1002
|
}
|
|
1146
|
-
]
|
|
1003
|
+
],
|
|
1004
|
+
"description": "Anything that may appear in target or value: a pointer, a literal, or a nested expression node."
|
|
1147
1005
|
},
|
|
1148
1006
|
"UnaryOperator": {
|
|
1149
1007
|
"enum": [
|
|
@@ -1202,38 +1060,10 @@
|
|
|
1202
1060
|
]
|
|
1203
1061
|
},
|
|
1204
1062
|
"ExpressionNode": {
|
|
1205
|
-
"description": "The core expression node. operator + target, with value gated by arity.",
|
|
1206
|
-
"type": "object",
|
|
1207
|
-
"required": [
|
|
1208
|
-
"operator",
|
|
1209
|
-
"target"
|
|
1210
|
-
],
|
|
1211
1063
|
"additionalProperties": false,
|
|
1212
|
-
"
|
|
1213
|
-
"operator": {
|
|
1214
|
-
"type": "string"
|
|
1215
|
-
},
|
|
1216
|
-
"target": {
|
|
1217
|
-
"$ref": "#/$defs/ExpressionOperand"
|
|
1218
|
-
},
|
|
1219
|
-
"value": {
|
|
1220
|
-
"$ref": "#/$defs/ExpressionOperand"
|
|
1221
|
-
},
|
|
1222
|
-
"initial": {
|
|
1223
|
-
"$ref": "#/$defs/ExpressionOperand"
|
|
1224
|
-
}
|
|
1225
|
-
},
|
|
1064
|
+
"description": "The core expression node. operator + target, with value gated by arity.",
|
|
1226
1065
|
"oneOf": [
|
|
1227
1066
|
{
|
|
1228
|
-
"title": "Unary — target only, no value",
|
|
1229
|
-
"properties": {
|
|
1230
|
-
"operator": {
|
|
1231
|
-
"$ref": "#/$defs/UnaryOperator"
|
|
1232
|
-
}
|
|
1233
|
-
},
|
|
1234
|
-
"required": [
|
|
1235
|
-
"operator"
|
|
1236
|
-
],
|
|
1237
1067
|
"not": {
|
|
1238
1068
|
"anyOf": [
|
|
1239
1069
|
{
|
|
@@ -1247,58 +1077,55 @@
|
|
|
1247
1077
|
]
|
|
1248
1078
|
}
|
|
1249
1079
|
]
|
|
1250
|
-
}
|
|
1251
|
-
},
|
|
1252
|
-
{
|
|
1253
|
-
"title": "Binary — left in target, right in value",
|
|
1080
|
+
},
|
|
1254
1081
|
"properties": {
|
|
1255
1082
|
"operator": {
|
|
1256
|
-
"$ref": "#/$defs/
|
|
1083
|
+
"$ref": "#/$defs/UnaryOperator"
|
|
1257
1084
|
}
|
|
1258
1085
|
},
|
|
1259
1086
|
"required": [
|
|
1260
|
-
"operator"
|
|
1261
|
-
"value"
|
|
1087
|
+
"operator"
|
|
1262
1088
|
],
|
|
1089
|
+
"title": "Unary — target only, no value"
|
|
1090
|
+
},
|
|
1091
|
+
{
|
|
1263
1092
|
"not": {
|
|
1264
1093
|
"required": [
|
|
1265
1094
|
"initial"
|
|
1266
1095
|
]
|
|
1267
|
-
}
|
|
1268
|
-
},
|
|
1269
|
-
{
|
|
1270
|
-
"title": "Assignment — writable target, value required",
|
|
1096
|
+
},
|
|
1271
1097
|
"properties": {
|
|
1272
1098
|
"operator": {
|
|
1273
|
-
"$ref": "#/$defs/
|
|
1274
|
-
},
|
|
1275
|
-
"target": {
|
|
1276
|
-
"$ref": "#/$defs/ExpressionPointer"
|
|
1099
|
+
"$ref": "#/$defs/BinaryOperator"
|
|
1277
1100
|
}
|
|
1278
1101
|
},
|
|
1279
1102
|
"required": [
|
|
1280
1103
|
"operator",
|
|
1281
1104
|
"value"
|
|
1282
1105
|
],
|
|
1106
|
+
"title": "Binary — left in target, right in value"
|
|
1107
|
+
},
|
|
1108
|
+
{
|
|
1283
1109
|
"not": {
|
|
1284
1110
|
"required": [
|
|
1285
1111
|
"initial"
|
|
1286
1112
|
]
|
|
1287
|
-
}
|
|
1288
|
-
},
|
|
1289
|
-
{
|
|
1290
|
-
"title": "pop / shift — array receiver, no value",
|
|
1113
|
+
},
|
|
1291
1114
|
"properties": {
|
|
1292
1115
|
"operator": {
|
|
1293
|
-
"$ref": "#/$defs/
|
|
1116
|
+
"$ref": "#/$defs/AssignmentOperator"
|
|
1294
1117
|
},
|
|
1295
1118
|
"target": {
|
|
1296
1119
|
"$ref": "#/$defs/ExpressionPointer"
|
|
1297
1120
|
}
|
|
1298
1121
|
},
|
|
1299
1122
|
"required": [
|
|
1300
|
-
"operator"
|
|
1123
|
+
"operator",
|
|
1124
|
+
"value"
|
|
1301
1125
|
],
|
|
1126
|
+
"title": "Assignment — writable target, value required"
|
|
1127
|
+
},
|
|
1128
|
+
{
|
|
1302
1129
|
"not": {
|
|
1303
1130
|
"anyOf": [
|
|
1304
1131
|
{
|
|
@@ -1312,10 +1139,26 @@
|
|
|
1312
1139
|
]
|
|
1313
1140
|
}
|
|
1314
1141
|
]
|
|
1315
|
-
}
|
|
1142
|
+
},
|
|
1143
|
+
"properties": {
|
|
1144
|
+
"operator": {
|
|
1145
|
+
"$ref": "#/$defs/NoArgMethod"
|
|
1146
|
+
},
|
|
1147
|
+
"target": {
|
|
1148
|
+
"$ref": "#/$defs/ExpressionPointer"
|
|
1149
|
+
}
|
|
1150
|
+
},
|
|
1151
|
+
"required": [
|
|
1152
|
+
"operator"
|
|
1153
|
+
],
|
|
1154
|
+
"title": "pop / shift — array receiver, no value"
|
|
1316
1155
|
},
|
|
1317
1156
|
{
|
|
1318
|
-
"
|
|
1157
|
+
"not": {
|
|
1158
|
+
"required": [
|
|
1159
|
+
"initial"
|
|
1160
|
+
]
|
|
1161
|
+
},
|
|
1319
1162
|
"properties": {
|
|
1320
1163
|
"operator": {
|
|
1321
1164
|
"$ref": "#/$defs/OneArgMethod"
|
|
@@ -1328,14 +1171,14 @@
|
|
|
1328
1171
|
"operator",
|
|
1329
1172
|
"value"
|
|
1330
1173
|
],
|
|
1174
|
+
"title": "push / unshift — array receiver, single value argument"
|
|
1175
|
+
},
|
|
1176
|
+
{
|
|
1331
1177
|
"not": {
|
|
1332
1178
|
"required": [
|
|
1333
1179
|
"initial"
|
|
1334
1180
|
]
|
|
1335
|
-
}
|
|
1336
|
-
},
|
|
1337
|
-
{
|
|
1338
|
-
"title": "splice — array receiver, [start, deleteCount, ...items]",
|
|
1181
|
+
},
|
|
1339
1182
|
"properties": {
|
|
1340
1183
|
"operator": {
|
|
1341
1184
|
"$ref": "#/$defs/SpliceMethod"
|
|
@@ -1344,25 +1187,20 @@
|
|
|
1344
1187
|
"$ref": "#/$defs/ExpressionPointer"
|
|
1345
1188
|
},
|
|
1346
1189
|
"value": {
|
|
1347
|
-
"type": "array",
|
|
1348
1190
|
"items": {
|
|
1349
1191
|
"$ref": "#/$defs/ExpressionOperand"
|
|
1350
1192
|
},
|
|
1351
|
-
"minItems": 1
|
|
1193
|
+
"minItems": 1,
|
|
1194
|
+
"type": "array"
|
|
1352
1195
|
}
|
|
1353
1196
|
},
|
|
1354
1197
|
"required": [
|
|
1355
1198
|
"operator",
|
|
1356
1199
|
"value"
|
|
1357
1200
|
],
|
|
1358
|
-
"
|
|
1359
|
-
"required": [
|
|
1360
|
-
"initial"
|
|
1361
|
-
]
|
|
1362
|
-
}
|
|
1201
|
+
"title": "splice — array receiver, [start, deleteCount, ...items]"
|
|
1363
1202
|
},
|
|
1364
1203
|
{
|
|
1365
|
-
"title": "reduce — pure fold; per-item expression in value, seed in initial",
|
|
1366
1204
|
"properties": {
|
|
1367
1205
|
"operator": {
|
|
1368
1206
|
"$ref": "#/$defs/ReduceMethod"
|
|
@@ -1378,10 +1216,15 @@
|
|
|
1378
1216
|
"operator",
|
|
1379
1217
|
"value",
|
|
1380
1218
|
"initial"
|
|
1381
|
-
]
|
|
1219
|
+
],
|
|
1220
|
+
"title": "reduce — pure fold; per-item expression in value, seed in initial"
|
|
1382
1221
|
},
|
|
1383
1222
|
{
|
|
1384
|
-
"
|
|
1223
|
+
"not": {
|
|
1224
|
+
"required": [
|
|
1225
|
+
"initial"
|
|
1226
|
+
]
|
|
1227
|
+
},
|
|
1385
1228
|
"properties": {
|
|
1386
1229
|
"operator": {
|
|
1387
1230
|
"$ref": "#/$defs/MapFilterMethod"
|
|
@@ -1397,100 +1240,111 @@
|
|
|
1397
1240
|
"operator",
|
|
1398
1241
|
"value"
|
|
1399
1242
|
],
|
|
1400
|
-
"
|
|
1401
|
-
"required": [
|
|
1402
|
-
"initial"
|
|
1403
|
-
]
|
|
1404
|
-
}
|
|
1243
|
+
"title": "map / filter — pure; per-item expression in value, no initial"
|
|
1405
1244
|
}
|
|
1406
|
-
]
|
|
1245
|
+
],
|
|
1246
|
+
"properties": {
|
|
1247
|
+
"initial": {
|
|
1248
|
+
"$ref": "#/$defs/ExpressionOperand"
|
|
1249
|
+
},
|
|
1250
|
+
"operator": {
|
|
1251
|
+
"type": "string"
|
|
1252
|
+
},
|
|
1253
|
+
"target": {
|
|
1254
|
+
"$ref": "#/$defs/ExpressionOperand"
|
|
1255
|
+
},
|
|
1256
|
+
"value": {
|
|
1257
|
+
"$ref": "#/$defs/ExpressionOperand"
|
|
1258
|
+
}
|
|
1259
|
+
},
|
|
1260
|
+
"required": [
|
|
1261
|
+
"operator",
|
|
1262
|
+
"target"
|
|
1263
|
+
],
|
|
1264
|
+
"type": "object"
|
|
1407
1265
|
},
|
|
1408
1266
|
"ExpressionEntry": {
|
|
1267
|
+
"additionalProperties": false,
|
|
1409
1268
|
"description": "A declarative expression entry (Shape 5). Used as a state entry or inline event handler.",
|
|
1410
|
-
"type": "object",
|
|
1411
|
-
"required": [
|
|
1412
|
-
"$expression"
|
|
1413
|
-
],
|
|
1414
1269
|
"properties": {
|
|
1270
|
+
"$description": {
|
|
1271
|
+
"type": "string"
|
|
1272
|
+
},
|
|
1415
1273
|
"$expression": {
|
|
1416
1274
|
"$ref": "#/$defs/ExpressionNode"
|
|
1417
1275
|
},
|
|
1418
1276
|
"$title": {
|
|
1419
1277
|
"type": "string"
|
|
1420
|
-
},
|
|
1421
|
-
"$description": {
|
|
1422
|
-
"type": "string"
|
|
1423
1278
|
}
|
|
1424
1279
|
},
|
|
1425
|
-
"
|
|
1280
|
+
"required": [
|
|
1281
|
+
"$expression"
|
|
1282
|
+
],
|
|
1283
|
+
"type": "object"
|
|
1426
1284
|
},
|
|
1427
1285
|
"ElementDef": {
|
|
1286
|
+
"additionalProperties": {
|
|
1287
|
+
"$ref": "#/$defs/ElementPropertyValue"
|
|
1288
|
+
},
|
|
1428
1289
|
"description": "A Jx element definition. Maps directly to a DOM element.",
|
|
1429
|
-
"type": "object",
|
|
1430
|
-
"required": [
|
|
1431
|
-
"tagName"
|
|
1432
|
-
],
|
|
1433
1290
|
"properties": {
|
|
1434
|
-
"
|
|
1435
|
-
"$ref": "#/$defs/
|
|
1291
|
+
"$map/index": {
|
|
1292
|
+
"$ref": "#/$defs/RefObject"
|
|
1436
1293
|
},
|
|
1437
|
-
"
|
|
1438
|
-
"
|
|
1294
|
+
"$map/item": {
|
|
1295
|
+
"$ref": "#/$defs/RefObject"
|
|
1439
1296
|
},
|
|
1440
|
-
"
|
|
1441
|
-
"$ref": "#/$defs/
|
|
1297
|
+
"$props": {
|
|
1298
|
+
"$ref": "#/$defs/PropsObject"
|
|
1442
1299
|
},
|
|
1443
|
-
"
|
|
1444
|
-
"$ref": "#/$defs/
|
|
1300
|
+
"$ref": {
|
|
1301
|
+
"$ref": "#/$defs/ExternalRef"
|
|
1445
1302
|
},
|
|
1446
|
-
"
|
|
1447
|
-
"$ref": "#/$defs/
|
|
1303
|
+
"$switch": {
|
|
1304
|
+
"$ref": "#/$defs/SwitchDef"
|
|
1448
1305
|
},
|
|
1449
|
-
"
|
|
1306
|
+
"alt": {
|
|
1450
1307
|
"$ref": "#/$defs/StringOrRef"
|
|
1451
1308
|
},
|
|
1452
|
-
"
|
|
1453
|
-
"$ref": "#/$defs/
|
|
1309
|
+
"attributes": {
|
|
1310
|
+
"$ref": "#/$defs/AttributesObject"
|
|
1454
1311
|
},
|
|
1455
|
-
"
|
|
1456
|
-
"$ref": "#/$defs/
|
|
1312
|
+
"checked": {
|
|
1313
|
+
"$ref": "#/$defs/BoolOrRef"
|
|
1457
1314
|
},
|
|
1458
|
-
"
|
|
1459
|
-
"$ref": "#/$defs/
|
|
1315
|
+
"children": {
|
|
1316
|
+
"$ref": "#/$defs/ChildrenValue"
|
|
1460
1317
|
},
|
|
1461
|
-
"
|
|
1318
|
+
"className": {
|
|
1462
1319
|
"$ref": "#/$defs/StringOrRef"
|
|
1463
1320
|
},
|
|
1464
1321
|
"dir": {
|
|
1465
|
-
"type": "string",
|
|
1466
1322
|
"enum": [
|
|
1467
1323
|
"ltr",
|
|
1468
1324
|
"rtl",
|
|
1469
1325
|
"auto"
|
|
1470
|
-
]
|
|
1471
|
-
|
|
1472
|
-
"value": {
|
|
1473
|
-
"$ref": "#/$defs/StringOrRef"
|
|
1474
|
-
},
|
|
1475
|
-
"checked": {
|
|
1476
|
-
"$ref": "#/$defs/BoolOrRef"
|
|
1326
|
+
],
|
|
1327
|
+
"type": "string"
|
|
1477
1328
|
},
|
|
1478
1329
|
"disabled": {
|
|
1479
1330
|
"$ref": "#/$defs/BoolOrRef"
|
|
1480
1331
|
},
|
|
1481
|
-
"
|
|
1332
|
+
"hidden": {
|
|
1482
1333
|
"$ref": "#/$defs/BoolOrRef"
|
|
1483
1334
|
},
|
|
1484
|
-
"src": {
|
|
1485
|
-
"$ref": "#/$defs/StringOrRef"
|
|
1486
|
-
},
|
|
1487
1335
|
"href": {
|
|
1488
1336
|
"$ref": "#/$defs/StringOrRef"
|
|
1489
1337
|
},
|
|
1490
|
-
"
|
|
1338
|
+
"id": {
|
|
1339
|
+
"type": "string"
|
|
1340
|
+
},
|
|
1341
|
+
"innerHTML": {
|
|
1491
1342
|
"$ref": "#/$defs/StringOrRef"
|
|
1492
1343
|
},
|
|
1493
|
-
"
|
|
1344
|
+
"innerText": {
|
|
1345
|
+
"$ref": "#/$defs/StringOrRef"
|
|
1346
|
+
},
|
|
1347
|
+
"lang": {
|
|
1494
1348
|
"$ref": "#/$defs/StringOrRef"
|
|
1495
1349
|
},
|
|
1496
1350
|
"name": {
|
|
@@ -1499,29 +1353,32 @@
|
|
|
1499
1353
|
"placeholder": {
|
|
1500
1354
|
"$ref": "#/$defs/StringOrRef"
|
|
1501
1355
|
},
|
|
1502
|
-
"
|
|
1503
|
-
"$ref": "#/$defs/
|
|
1356
|
+
"selected": {
|
|
1357
|
+
"$ref": "#/$defs/BoolOrRef"
|
|
1358
|
+
},
|
|
1359
|
+
"src": {
|
|
1360
|
+
"$ref": "#/$defs/StringOrRef"
|
|
1504
1361
|
},
|
|
1505
1362
|
"style": {
|
|
1506
1363
|
"$ref": "#/$defs/StyleObject"
|
|
1507
1364
|
},
|
|
1508
|
-
"
|
|
1509
|
-
"$ref": "#/$defs/
|
|
1365
|
+
"tabIndex": {
|
|
1366
|
+
"$ref": "#/$defs/NumberOrRef"
|
|
1510
1367
|
},
|
|
1511
|
-
"
|
|
1512
|
-
"$ref": "#/$defs/
|
|
1368
|
+
"tagName": {
|
|
1369
|
+
"$ref": "#/$defs/TagName"
|
|
1513
1370
|
},
|
|
1514
|
-
"
|
|
1515
|
-
"$ref": "#/$defs/
|
|
1371
|
+
"textContent": {
|
|
1372
|
+
"$ref": "#/$defs/StringOrRef"
|
|
1516
1373
|
},
|
|
1517
|
-
"
|
|
1518
|
-
"$ref": "#/$defs/
|
|
1374
|
+
"title": {
|
|
1375
|
+
"$ref": "#/$defs/StringOrRef"
|
|
1519
1376
|
},
|
|
1520
|
-
"
|
|
1521
|
-
"$ref": "#/$defs/
|
|
1377
|
+
"type": {
|
|
1378
|
+
"$ref": "#/$defs/StringOrRef"
|
|
1522
1379
|
},
|
|
1523
|
-
"
|
|
1524
|
-
"$ref": "#/$defs/
|
|
1380
|
+
"value": {
|
|
1381
|
+
"$ref": "#/$defs/StringOrRef"
|
|
1525
1382
|
},
|
|
1526
1383
|
"onabort": {
|
|
1527
1384
|
"description": "Event handler for the \"abort\" event.",
|
|
@@ -4802,15 +4659,15 @@
|
|
|
4802
4659
|
]
|
|
4803
4660
|
}
|
|
4804
4661
|
},
|
|
4805
|
-
"
|
|
4806
|
-
"
|
|
4807
|
-
|
|
4662
|
+
"required": [
|
|
4663
|
+
"tagName"
|
|
4664
|
+
],
|
|
4665
|
+
"type": "object"
|
|
4808
4666
|
},
|
|
4809
4667
|
"ChildrenValue": {
|
|
4810
4668
|
"description": "Static array of child definitions, or an Array namespace for dynamic lists.",
|
|
4811
4669
|
"oneOf": [
|
|
4812
4670
|
{
|
|
4813
|
-
"type": "array",
|
|
4814
4671
|
"items": {
|
|
4815
4672
|
"oneOf": [
|
|
4816
4673
|
{
|
|
@@ -4823,7 +4680,8 @@
|
|
|
4823
4680
|
"type": "number"
|
|
4824
4681
|
}
|
|
4825
4682
|
]
|
|
4826
|
-
}
|
|
4683
|
+
},
|
|
4684
|
+
"type": "array"
|
|
4827
4685
|
},
|
|
4828
4686
|
{
|
|
4829
4687
|
"$ref": "#/$defs/ArrayNamespace"
|
|
@@ -4831,17 +4689,15 @@
|
|
|
4831
4689
|
]
|
|
4832
4690
|
},
|
|
4833
4691
|
"ArrayNamespace": {
|
|
4692
|
+
"additionalProperties": false,
|
|
4834
4693
|
"description": "Dynamic mapped list. Re-renders when the items state entry changes.",
|
|
4835
|
-
"type": "object",
|
|
4836
|
-
"required": [
|
|
4837
|
-
"$prototype",
|
|
4838
|
-
"items",
|
|
4839
|
-
"map"
|
|
4840
|
-
],
|
|
4841
4694
|
"properties": {
|
|
4842
4695
|
"$prototype": {
|
|
4843
|
-
"
|
|
4844
|
-
"
|
|
4696
|
+
"const": "Array",
|
|
4697
|
+
"type": "string"
|
|
4698
|
+
},
|
|
4699
|
+
"filter": {
|
|
4700
|
+
"$ref": "#/$defs/RefObject"
|
|
4845
4701
|
},
|
|
4846
4702
|
"items": {
|
|
4847
4703
|
"oneOf": [
|
|
@@ -4856,43 +4712,36 @@
|
|
|
4856
4712
|
"map": {
|
|
4857
4713
|
"$ref": "#/$defs/ElementDef"
|
|
4858
4714
|
},
|
|
4859
|
-
"filter": {
|
|
4860
|
-
"$ref": "#/$defs/RefObject"
|
|
4861
|
-
},
|
|
4862
4715
|
"sort": {
|
|
4863
4716
|
"$ref": "#/$defs/RefObject"
|
|
4864
4717
|
}
|
|
4865
4718
|
},
|
|
4866
|
-
"
|
|
4719
|
+
"required": [
|
|
4720
|
+
"$prototype",
|
|
4721
|
+
"items",
|
|
4722
|
+
"map"
|
|
4723
|
+
],
|
|
4724
|
+
"type": "object"
|
|
4867
4725
|
},
|
|
4868
4726
|
"SwitchDef": {
|
|
4727
|
+
"additionalProperties": false,
|
|
4869
4728
|
"description": "Reactive $ref that drives which case to render.",
|
|
4870
|
-
"type": "object",
|
|
4871
|
-
"required": [
|
|
4872
|
-
"$ref"
|
|
4873
|
-
],
|
|
4874
4729
|
"properties": {
|
|
4875
4730
|
"$ref": {
|
|
4876
4731
|
"$ref": "#/$defs/InternalRef"
|
|
4877
4732
|
}
|
|
4878
4733
|
},
|
|
4879
|
-
"additionalProperties": false
|
|
4880
|
-
},
|
|
4881
|
-
"SwitchNode": {
|
|
4882
|
-
"type": "object",
|
|
4883
4734
|
"required": [
|
|
4884
|
-
"$
|
|
4885
|
-
"cases"
|
|
4735
|
+
"$ref"
|
|
4886
4736
|
],
|
|
4737
|
+
"type": "object"
|
|
4738
|
+
},
|
|
4739
|
+
"SwitchNode": {
|
|
4887
4740
|
"properties": {
|
|
4888
|
-
"tagName": {
|
|
4889
|
-
"$ref": "#/$defs/TagName"
|
|
4890
|
-
},
|
|
4891
4741
|
"$switch": {
|
|
4892
4742
|
"$ref": "#/$defs/SwitchDef"
|
|
4893
4743
|
},
|
|
4894
4744
|
"cases": {
|
|
4895
|
-
"type": "object",
|
|
4896
4745
|
"additionalProperties": {
|
|
4897
4746
|
"oneOf": [
|
|
4898
4747
|
{
|
|
@@ -4902,13 +4751,45 @@
|
|
|
4902
4751
|
"$ref": "#/$defs/ExternalComponentRef"
|
|
4903
4752
|
}
|
|
4904
4753
|
]
|
|
4905
|
-
}
|
|
4754
|
+
},
|
|
4755
|
+
"type": "object"
|
|
4756
|
+
},
|
|
4757
|
+
"tagName": {
|
|
4758
|
+
"$ref": "#/$defs/TagName"
|
|
4906
4759
|
}
|
|
4907
|
-
}
|
|
4760
|
+
},
|
|
4761
|
+
"required": [
|
|
4762
|
+
"$switch",
|
|
4763
|
+
"cases"
|
|
4764
|
+
],
|
|
4765
|
+
"type": "object"
|
|
4908
4766
|
},
|
|
4909
4767
|
"StyleObject": {
|
|
4768
|
+
"additionalProperties": {
|
|
4769
|
+
"oneOf": [
|
|
4770
|
+
{
|
|
4771
|
+
"type": "string"
|
|
4772
|
+
},
|
|
4773
|
+
{
|
|
4774
|
+
"type": "number"
|
|
4775
|
+
},
|
|
4776
|
+
{
|
|
4777
|
+
"additionalProperties": {
|
|
4778
|
+
"oneOf": [
|
|
4779
|
+
{
|
|
4780
|
+
"type": "string"
|
|
4781
|
+
},
|
|
4782
|
+
{
|
|
4783
|
+
"type": "number"
|
|
4784
|
+
}
|
|
4785
|
+
]
|
|
4786
|
+
},
|
|
4787
|
+
"description": "Nested CSS selector or media breakpoint rules.",
|
|
4788
|
+
"type": "object"
|
|
4789
|
+
}
|
|
4790
|
+
]
|
|
4791
|
+
},
|
|
4910
4792
|
"description": "CSS style definition. camelCase property names follow CSSOM convention. Keys starting with :, ., &, or [ are treated as nested CSS selectors. Keys matching $media breakpoint names are treated as responsive rules.",
|
|
4911
|
-
"type": "object",
|
|
4912
4793
|
"properties": {
|
|
4913
4794
|
"-webkit-align-content": {
|
|
4914
4795
|
"oneOf": [
|
|
@@ -21181,34 +21062,9 @@
|
|
|
21181
21062
|
]
|
|
21182
21063
|
}
|
|
21183
21064
|
},
|
|
21184
|
-
"
|
|
21185
|
-
"oneOf": [
|
|
21186
|
-
{
|
|
21187
|
-
"type": "string"
|
|
21188
|
-
},
|
|
21189
|
-
{
|
|
21190
|
-
"type": "number"
|
|
21191
|
-
},
|
|
21192
|
-
{
|
|
21193
|
-
"description": "Nested CSS selector or media breakpoint rules.",
|
|
21194
|
-
"type": "object",
|
|
21195
|
-
"additionalProperties": {
|
|
21196
|
-
"oneOf": [
|
|
21197
|
-
{
|
|
21198
|
-
"type": "string"
|
|
21199
|
-
},
|
|
21200
|
-
{
|
|
21201
|
-
"type": "number"
|
|
21202
|
-
}
|
|
21203
|
-
]
|
|
21204
|
-
}
|
|
21205
|
-
}
|
|
21206
|
-
]
|
|
21207
|
-
}
|
|
21065
|
+
"type": "object"
|
|
21208
21066
|
},
|
|
21209
21067
|
"AttributesObject": {
|
|
21210
|
-
"description": "HTML attributes and ARIA attributes set via element.setAttribute().",
|
|
21211
|
-
"type": "object",
|
|
21212
21068
|
"additionalProperties": {
|
|
21213
21069
|
"oneOf": [
|
|
21214
21070
|
{
|
|
@@ -21224,11 +21080,11 @@
|
|
|
21224
21080
|
"$ref": "#/$defs/RefObject"
|
|
21225
21081
|
}
|
|
21226
21082
|
]
|
|
21227
|
-
}
|
|
21083
|
+
},
|
|
21084
|
+
"description": "HTML attributes and ARIA attributes set via element.setAttribute().",
|
|
21085
|
+
"type": "object"
|
|
21228
21086
|
},
|
|
21229
21087
|
"PropsObject": {
|
|
21230
|
-
"description": "Explicit prop passing at a component boundary.",
|
|
21231
|
-
"type": "object",
|
|
21232
21088
|
"additionalProperties": {
|
|
21233
21089
|
"oneOf": [
|
|
21234
21090
|
{
|
|
@@ -21250,23 +21106,24 @@
|
|
|
21250
21106
|
"$ref": "#/$defs/RefObject"
|
|
21251
21107
|
}
|
|
21252
21108
|
]
|
|
21253
|
-
}
|
|
21109
|
+
},
|
|
21110
|
+
"description": "Explicit prop passing at a component boundary.",
|
|
21111
|
+
"type": "object"
|
|
21254
21112
|
},
|
|
21255
21113
|
"RefObject": {
|
|
21114
|
+
"additionalProperties": false,
|
|
21256
21115
|
"description": "A $ref binding. Resolves to a state entry (reactive) or plain value (static).",
|
|
21257
|
-
"type": "object",
|
|
21258
|
-
"required": [
|
|
21259
|
-
"$ref"
|
|
21260
|
-
],
|
|
21261
21116
|
"properties": {
|
|
21262
21117
|
"$ref": {
|
|
21263
21118
|
"$ref": "#/$defs/AnyRef"
|
|
21264
21119
|
}
|
|
21265
21120
|
},
|
|
21266
|
-
"
|
|
21121
|
+
"required": [
|
|
21122
|
+
"$ref"
|
|
21123
|
+
],
|
|
21124
|
+
"type": "object"
|
|
21267
21125
|
},
|
|
21268
21126
|
"AnyRef": {
|
|
21269
|
-
"type": "string",
|
|
21270
21127
|
"oneOf": [
|
|
21271
21128
|
{
|
|
21272
21129
|
"$ref": "#/$defs/InternalRef"
|
|
@@ -21286,79 +21143,80 @@
|
|
|
21286
21143
|
{
|
|
21287
21144
|
"$ref": "#/$defs/MapRef"
|
|
21288
21145
|
}
|
|
21289
|
-
]
|
|
21146
|
+
],
|
|
21147
|
+
"type": "string"
|
|
21290
21148
|
},
|
|
21291
21149
|
"InternalRef": {
|
|
21292
21150
|
"description": "Reference to a $defs type definition in the current component.",
|
|
21293
|
-
"type": "string",
|
|
21294
|
-
"pattern": "^#/\\$defs/",
|
|
21295
21151
|
"examples": [
|
|
21296
21152
|
"#/$defs/Count",
|
|
21297
21153
|
"#/$defs/TodoItem",
|
|
21298
21154
|
"#/$defs/Status"
|
|
21299
|
-
]
|
|
21155
|
+
],
|
|
21156
|
+
"pattern": "^#/\\$defs/",
|
|
21157
|
+
"type": "string"
|
|
21300
21158
|
},
|
|
21301
21159
|
"StateRef": {
|
|
21302
21160
|
"description": "Reference to a state entry (runtime variable) in the current component.",
|
|
21303
|
-
"type": "string",
|
|
21304
|
-
"pattern": "^#/state/",
|
|
21305
21161
|
"examples": [
|
|
21306
21162
|
"#/state/count",
|
|
21307
21163
|
"#/state/addTask",
|
|
21308
21164
|
"#/state/items"
|
|
21309
|
-
]
|
|
21165
|
+
],
|
|
21166
|
+
"pattern": "^#/state/",
|
|
21167
|
+
"type": "string"
|
|
21310
21168
|
},
|
|
21311
21169
|
"ExternalRef": {
|
|
21312
21170
|
"description": "Reference to an external Jx component file.",
|
|
21313
|
-
"type": "string",
|
|
21314
|
-
"pattern": "^(\\./|\\.\\./).*\\.json$|^https?://",
|
|
21315
21171
|
"examples": [
|
|
21316
21172
|
"./card.json",
|
|
21317
21173
|
"https://cdn.example.com/button.json"
|
|
21318
|
-
]
|
|
21174
|
+
],
|
|
21175
|
+
"pattern": "^(\\./|\\.\\./).*\\.json$|^https?://",
|
|
21176
|
+
"type": "string"
|
|
21319
21177
|
},
|
|
21320
21178
|
"ExternalComponentRef": {
|
|
21321
|
-
"type": "object",
|
|
21322
|
-
"required": [
|
|
21323
|
-
"$ref"
|
|
21324
|
-
],
|
|
21325
21179
|
"properties": {
|
|
21326
|
-
"$ref": {
|
|
21327
|
-
"$ref": "#/$defs/ExternalRef"
|
|
21328
|
-
},
|
|
21329
21180
|
"$props": {
|
|
21330
21181
|
"$ref": "#/$defs/PropsObject"
|
|
21182
|
+
},
|
|
21183
|
+
"$ref": {
|
|
21184
|
+
"$ref": "#/$defs/ExternalRef"
|
|
21331
21185
|
}
|
|
21332
|
-
}
|
|
21186
|
+
},
|
|
21187
|
+
"required": [
|
|
21188
|
+
"$ref"
|
|
21189
|
+
],
|
|
21190
|
+
"type": "object"
|
|
21333
21191
|
},
|
|
21334
21192
|
"GlobalRef": {
|
|
21335
21193
|
"description": "Reference to a window or document global.",
|
|
21336
|
-
"type": "string",
|
|
21337
|
-
"pattern": "^(window|document)#/",
|
|
21338
21194
|
"examples": [
|
|
21339
21195
|
"window#/currentUser",
|
|
21340
21196
|
"document#/appConfig"
|
|
21341
|
-
]
|
|
21197
|
+
],
|
|
21198
|
+
"pattern": "^(window|document)#/",
|
|
21199
|
+
"type": "string"
|
|
21342
21200
|
},
|
|
21343
21201
|
"ParentRef": {
|
|
21344
21202
|
"description": "Reference to a named state entry passed via $props from a parent component.",
|
|
21345
|
-
"type": "string",
|
|
21346
|
-
"pattern": "^parent#/",
|
|
21347
21203
|
"examples": [
|
|
21348
21204
|
"parent#/sharedState",
|
|
21349
21205
|
"parent#/theme"
|
|
21350
|
-
]
|
|
21206
|
+
],
|
|
21207
|
+
"pattern": "^parent#/",
|
|
21208
|
+
"type": "string"
|
|
21351
21209
|
},
|
|
21352
21210
|
"MapRef": {
|
|
21353
21211
|
"description": "Reference to the current Array map iteration context.",
|
|
21354
|
-
"type": "string",
|
|
21355
|
-
"pattern": "^\\$map/(item|index)(/.*)?$",
|
|
21356
21212
|
"examples": [
|
|
21357
21213
|
"$map/item",
|
|
21358
21214
|
"$map/index",
|
|
21359
21215
|
"$map/item/text",
|
|
21360
21216
|
"$map/item/done"
|
|
21361
|
-
]
|
|
21217
|
+
],
|
|
21218
|
+
"pattern": "^\\$map/(item|index)(/.*)?$",
|
|
21219
|
+
"type": "string"
|
|
21362
21220
|
},
|
|
21363
21221
|
"ElementPropertyValue": {
|
|
21364
21222
|
"oneOf": [
|
|
@@ -21411,49 +21269,34 @@
|
|
|
21411
21269
|
},
|
|
21412
21270
|
"CemParameter": {
|
|
21413
21271
|
"description": "A CEM-compatible parameter definition for a function. Follows the Custom Elements Manifest Parameter shape.",
|
|
21414
|
-
"type": "object",
|
|
21415
|
-
"required": [
|
|
21416
|
-
"name"
|
|
21417
|
-
],
|
|
21418
21272
|
"properties": {
|
|
21419
|
-
"
|
|
21420
|
-
"description": "
|
|
21421
|
-
"type": "string"
|
|
21422
|
-
},
|
|
21423
|
-
"type": {
|
|
21424
|
-
"description": "Parameter type (JSON Schema or CEM { text } format)."
|
|
21273
|
+
"default": {
|
|
21274
|
+
"description": "Default value for the parameter."
|
|
21425
21275
|
},
|
|
21426
21276
|
"description": {
|
|
21427
21277
|
"description": "Parameter documentation.",
|
|
21428
21278
|
"type": "string"
|
|
21429
21279
|
},
|
|
21280
|
+
"name": {
|
|
21281
|
+
"description": "Parameter name.",
|
|
21282
|
+
"type": "string"
|
|
21283
|
+
},
|
|
21430
21284
|
"optional": {
|
|
21431
21285
|
"description": "Whether the parameter is optional.",
|
|
21432
21286
|
"type": "boolean"
|
|
21433
21287
|
},
|
|
21434
|
-
"
|
|
21435
|
-
"description": "
|
|
21288
|
+
"type": {
|
|
21289
|
+
"description": "Parameter type (JSON Schema or CEM { text } format)."
|
|
21436
21290
|
}
|
|
21437
|
-
}
|
|
21438
|
-
},
|
|
21439
|
-
"CemEvent": {
|
|
21440
|
-
"description": "A CEM-compatible event definition. Describes a CustomEvent the function dispatches.",
|
|
21441
|
-
"type": "object",
|
|
21291
|
+
},
|
|
21442
21292
|
"required": [
|
|
21443
21293
|
"name"
|
|
21444
21294
|
],
|
|
21295
|
+
"type": "object"
|
|
21296
|
+
},
|
|
21297
|
+
"CemEvent": {
|
|
21298
|
+
"description": "A CEM-compatible event definition. Describes a CustomEvent the function dispatches.",
|
|
21445
21299
|
"properties": {
|
|
21446
|
-
"name": {
|
|
21447
|
-
"description": "Event name (e.g. 'task-toggled').",
|
|
21448
|
-
"type": "string"
|
|
21449
|
-
},
|
|
21450
|
-
"type": {
|
|
21451
|
-
"description": "Event type (e.g. { text: 'CustomEvent' })."
|
|
21452
|
-
},
|
|
21453
|
-
"description": {
|
|
21454
|
-
"description": "Event documentation.",
|
|
21455
|
-
"type": "string"
|
|
21456
|
-
},
|
|
21457
21300
|
"deprecated": {
|
|
21458
21301
|
"description": "Deprecation notice.",
|
|
21459
21302
|
"oneOf": [
|
|
@@ -21464,13 +21307,28 @@
|
|
|
21464
21307
|
"type": "string"
|
|
21465
21308
|
}
|
|
21466
21309
|
]
|
|
21310
|
+
},
|
|
21311
|
+
"description": {
|
|
21312
|
+
"description": "Event documentation.",
|
|
21313
|
+
"type": "string"
|
|
21314
|
+
},
|
|
21315
|
+
"name": {
|
|
21316
|
+
"description": "Event name (e.g. 'task-toggled').",
|
|
21317
|
+
"type": "string"
|
|
21318
|
+
},
|
|
21319
|
+
"type": {
|
|
21320
|
+
"description": "Event type (e.g. { text: 'CustomEvent' })."
|
|
21467
21321
|
}
|
|
21468
|
-
}
|
|
21322
|
+
},
|
|
21323
|
+
"required": [
|
|
21324
|
+
"name"
|
|
21325
|
+
],
|
|
21326
|
+
"type": "object"
|
|
21469
21327
|
},
|
|
21470
21328
|
"TagName": {
|
|
21471
21329
|
"description": "HTML element tag name or custom element name (must contain a hyphen per Web Components spec).",
|
|
21472
|
-
"type": "string",
|
|
21473
21330
|
"minLength": 1,
|
|
21331
|
+
"type": "string",
|
|
21474
21332
|
"examples": [
|
|
21475
21333
|
"a",
|
|
21476
21334
|
"abbr",
|
|
@@ -21686,7 +21544,6 @@
|
|
|
21686
21544
|
]
|
|
21687
21545
|
},
|
|
21688
21546
|
"JsonSchemaType": {
|
|
21689
|
-
"type": "string",
|
|
21690
21547
|
"enum": [
|
|
21691
21548
|
"string",
|
|
21692
21549
|
"number",
|
|
@@ -21695,20 +21552,14 @@
|
|
|
21695
21552
|
"array",
|
|
21696
21553
|
"object",
|
|
21697
21554
|
"null"
|
|
21698
|
-
]
|
|
21555
|
+
],
|
|
21556
|
+
"type": "string"
|
|
21699
21557
|
},
|
|
21700
21558
|
"HeadEntry": {
|
|
21559
|
+
"additionalProperties": true,
|
|
21701
21560
|
"description": "A page-level <head> entry. Defines meta tags, link tags, script tags, etc.",
|
|
21702
|
-
"type": "object",
|
|
21703
|
-
"required": [
|
|
21704
|
-
"tagName"
|
|
21705
|
-
],
|
|
21706
21561
|
"properties": {
|
|
21707
|
-
"tagName": {
|
|
21708
|
-
"type": "string"
|
|
21709
|
-
},
|
|
21710
21562
|
"attributes": {
|
|
21711
|
-
"type": "object",
|
|
21712
21563
|
"additionalProperties": {
|
|
21713
21564
|
"oneOf": [
|
|
21714
21565
|
{
|
|
@@ -21718,45 +21569,44 @@
|
|
|
21718
21569
|
"type": "boolean"
|
|
21719
21570
|
}
|
|
21720
21571
|
]
|
|
21721
|
-
}
|
|
21722
|
-
|
|
21723
|
-
"textContent": {
|
|
21724
|
-
"type": "string"
|
|
21572
|
+
},
|
|
21573
|
+
"type": "object"
|
|
21725
21574
|
},
|
|
21726
21575
|
"children": {
|
|
21727
|
-
"type": "array",
|
|
21728
21576
|
"items": {
|
|
21729
21577
|
"$ref": "#/$defs/HeadEntry"
|
|
21730
|
-
}
|
|
21578
|
+
},
|
|
21579
|
+
"type": "array"
|
|
21580
|
+
},
|
|
21581
|
+
"tagName": {
|
|
21582
|
+
"type": "string"
|
|
21583
|
+
},
|
|
21584
|
+
"textContent": {
|
|
21585
|
+
"type": "string"
|
|
21731
21586
|
}
|
|
21732
21587
|
},
|
|
21733
|
-
"
|
|
21588
|
+
"required": [
|
|
21589
|
+
"tagName"
|
|
21590
|
+
],
|
|
21591
|
+
"type": "object"
|
|
21734
21592
|
},
|
|
21735
21593
|
"ImageConfig": {
|
|
21736
21594
|
"description": "Image optimization configuration for the project.",
|
|
21737
|
-
"type": "object",
|
|
21738
21595
|
"properties": {
|
|
21739
|
-
"optimize": {
|
|
21740
|
-
"type": "boolean"
|
|
21741
|
-
},
|
|
21742
|
-
"widths": {
|
|
21743
|
-
"type": "array",
|
|
21744
|
-
"items": {
|
|
21745
|
-
"type": "number"
|
|
21746
|
-
}
|
|
21747
|
-
},
|
|
21748
21596
|
"formats": {
|
|
21749
|
-
"type": "array",
|
|
21750
21597
|
"items": {
|
|
21751
21598
|
"type": "string"
|
|
21752
|
-
}
|
|
21599
|
+
},
|
|
21600
|
+
"type": "array"
|
|
21601
|
+
},
|
|
21602
|
+
"lazyLoad": {
|
|
21603
|
+
"type": "boolean"
|
|
21604
|
+
},
|
|
21605
|
+
"optimize": {
|
|
21606
|
+
"type": "boolean"
|
|
21753
21607
|
},
|
|
21754
21608
|
"quality": {
|
|
21755
|
-
"type": "object",
|
|
21756
21609
|
"properties": {
|
|
21757
|
-
"webp": {
|
|
21758
|
-
"type": "number"
|
|
21759
|
-
},
|
|
21760
21610
|
"avif": {
|
|
21761
21611
|
"type": "number"
|
|
21762
21612
|
},
|
|
@@ -21765,75 +21615,225 @@
|
|
|
21765
21615
|
},
|
|
21766
21616
|
"png": {
|
|
21767
21617
|
"type": "number"
|
|
21618
|
+
},
|
|
21619
|
+
"webp": {
|
|
21620
|
+
"type": "number"
|
|
21768
21621
|
}
|
|
21769
|
-
}
|
|
21770
|
-
|
|
21771
|
-
"sizes": {
|
|
21772
|
-
"type": "string"
|
|
21622
|
+
},
|
|
21623
|
+
"type": "object"
|
|
21773
21624
|
},
|
|
21774
|
-
"
|
|
21775
|
-
"
|
|
21625
|
+
"remoteDomains": {
|
|
21626
|
+
"description": "Hostnames whose remote (https) images are optimized through /cdn-cgi/image transform URLs (cloudflare service only), e.g. [\"drive.usercontent.google.com\"]. Remote sources from other hosts are left untouched.",
|
|
21627
|
+
"items": {
|
|
21628
|
+
"type": "string"
|
|
21629
|
+
},
|
|
21630
|
+
"type": "array"
|
|
21776
21631
|
},
|
|
21777
21632
|
"service": {
|
|
21778
21633
|
"description": "How images are optimized: \"build\" runs Sharp at build time; \"cloudflare\" emits /cdn-cgi/image transform URLs served by Cloudflare Image Transformations (requires the feature to be enabled on the serving zone).",
|
|
21779
|
-
"type": "string",
|
|
21780
21634
|
"enum": [
|
|
21781
21635
|
"build",
|
|
21782
21636
|
"cloudflare"
|
|
21783
|
-
]
|
|
21637
|
+
],
|
|
21638
|
+
"type": "string"
|
|
21784
21639
|
},
|
|
21785
|
-
"
|
|
21786
|
-
"
|
|
21787
|
-
|
|
21640
|
+
"sizes": {
|
|
21641
|
+
"type": "string"
|
|
21642
|
+
},
|
|
21643
|
+
"widths": {
|
|
21788
21644
|
"items": {
|
|
21789
|
-
"type": "
|
|
21790
|
-
}
|
|
21645
|
+
"type": "number"
|
|
21646
|
+
},
|
|
21647
|
+
"type": "array"
|
|
21791
21648
|
}
|
|
21792
|
-
}
|
|
21649
|
+
},
|
|
21650
|
+
"type": "object"
|
|
21793
21651
|
},
|
|
21794
21652
|
"ContentTypeDef": {
|
|
21795
21653
|
"description": "Content type definition. Defines the source directory, frontmatter schema, and element dependencies.",
|
|
21796
|
-
"type": "object",
|
|
21797
21654
|
"properties": {
|
|
21798
|
-
"source": {
|
|
21799
|
-
"description": "Path to the content directory relative to the project root.",
|
|
21800
|
-
"type": "string",
|
|
21801
|
-
"examples": [
|
|
21802
|
-
"./content/blog/",
|
|
21803
|
-
"./content/docs/"
|
|
21804
|
-
]
|
|
21805
|
-
},
|
|
21806
|
-
"format": {
|
|
21807
|
-
"description": "Import name of a format class declared in the project imports map (e.g. \"Markdown\", \"Csv\"). When omitted, the format is derived from the source file extension via the format registry. \"json\" is the only built-in.",
|
|
21808
|
-
"type": "string"
|
|
21809
|
-
},
|
|
21810
|
-
"schema": {
|
|
21811
|
-
"description": "JSON Schema for validating frontmatter of content type entries.",
|
|
21812
|
-
"type": "object"
|
|
21813
|
-
},
|
|
21814
21655
|
"$elements": {
|
|
21815
21656
|
"description": "Custom elements available in markdown directives for this content type.",
|
|
21816
|
-
"type": "array",
|
|
21817
21657
|
"items": {
|
|
21818
21658
|
"oneOf": [
|
|
21819
21659
|
{
|
|
21820
|
-
"type": "object",
|
|
21821
|
-
"required": [
|
|
21822
|
-
"$ref"
|
|
21823
|
-
],
|
|
21824
21660
|
"properties": {
|
|
21825
21661
|
"$ref": {
|
|
21826
21662
|
"type": "string"
|
|
21827
21663
|
}
|
|
21828
|
-
}
|
|
21664
|
+
},
|
|
21665
|
+
"required": [
|
|
21666
|
+
"$ref"
|
|
21667
|
+
],
|
|
21668
|
+
"type": "object"
|
|
21829
21669
|
},
|
|
21830
21670
|
{
|
|
21831
21671
|
"type": "string"
|
|
21832
21672
|
}
|
|
21833
21673
|
]
|
|
21674
|
+
},
|
|
21675
|
+
"type": "array"
|
|
21676
|
+
},
|
|
21677
|
+
"format": {
|
|
21678
|
+
"description": "Import name of a format class declared in the project imports map (e.g. \"Markdown\", \"Csv\"). When omitted, the format is derived from the source file extension via the format registry. \"json\" is the only built-in.",
|
|
21679
|
+
"type": "string"
|
|
21680
|
+
},
|
|
21681
|
+
"schema": {
|
|
21682
|
+
"description": "JSON Schema for validating frontmatter of content type entries.",
|
|
21683
|
+
"type": "object"
|
|
21684
|
+
},
|
|
21685
|
+
"source": {
|
|
21686
|
+
"description": "Path to the content directory relative to the project root.",
|
|
21687
|
+
"examples": [
|
|
21688
|
+
"./content/blog/",
|
|
21689
|
+
"./content/docs/"
|
|
21690
|
+
],
|
|
21691
|
+
"type": "string"
|
|
21692
|
+
}
|
|
21693
|
+
},
|
|
21694
|
+
"type": "object"
|
|
21695
|
+
}
|
|
21696
|
+
},
|
|
21697
|
+
"$id": "https://jxsuite.com/schema/v1",
|
|
21698
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
21699
|
+
"additionalProperties": {
|
|
21700
|
+
"$ref": "#/$defs/ElementPropertyValue"
|
|
21701
|
+
},
|
|
21702
|
+
"description": "Schema for Jx component files. A Jx document is a JSON object that declaratively describes a reactive web component: its structure (DOM tree), styling, type definitions ($defs), runtime state, and inline or external functions. Reactivity is powered by @vue/reactivity.",
|
|
21703
|
+
"properties": {
|
|
21704
|
+
"$defs": {
|
|
21705
|
+
"$ref": "#/$defs/DefsMap",
|
|
21706
|
+
"description": "Pure JSON Schema type definitions for this component. All entries are reusable type schemas — no runtime artifacts are produced. Referenced from state entries via $ref. Naming convention: PascalCase."
|
|
21707
|
+
},
|
|
21708
|
+
"$elements": {
|
|
21709
|
+
"description": "Custom element dependencies. Items are either $ref objects pointing to JX element definitions, or bare npm package name strings for web component libraries.",
|
|
21710
|
+
"items": {
|
|
21711
|
+
"oneOf": [
|
|
21712
|
+
{
|
|
21713
|
+
"additionalProperties": false,
|
|
21714
|
+
"properties": {
|
|
21715
|
+
"$ref": {
|
|
21716
|
+
"type": "string"
|
|
21717
|
+
}
|
|
21718
|
+
},
|
|
21719
|
+
"required": [
|
|
21720
|
+
"$ref"
|
|
21721
|
+
],
|
|
21722
|
+
"type": "object"
|
|
21723
|
+
},
|
|
21724
|
+
{
|
|
21725
|
+
"description": "npm package specifier (must declare customElements in package.json)",
|
|
21726
|
+
"type": "string"
|
|
21834
21727
|
}
|
|
21728
|
+
]
|
|
21729
|
+
},
|
|
21730
|
+
"type": "array"
|
|
21731
|
+
},
|
|
21732
|
+
"$head": {
|
|
21733
|
+
"description": "Page-level <head> entries. Array of element definitions for meta tags, link tags, script tags, etc. Merged with layout and site-level $head entries.",
|
|
21734
|
+
"items": {
|
|
21735
|
+
"$ref": "#/$defs/ElementDef"
|
|
21736
|
+
},
|
|
21737
|
+
"type": "array"
|
|
21738
|
+
},
|
|
21739
|
+
"$id": {
|
|
21740
|
+
"description": "Component identifier string. Used by tooling and the builder.",
|
|
21741
|
+
"examples": [
|
|
21742
|
+
"Counter",
|
|
21743
|
+
"TodoApp",
|
|
21744
|
+
"UserCard"
|
|
21745
|
+
],
|
|
21746
|
+
"type": "string"
|
|
21747
|
+
},
|
|
21748
|
+
"$layout": {
|
|
21749
|
+
"description": "Layout reference for pages. String path to a layout JSON file, or false to opt out of the default layout.",
|
|
21750
|
+
"examples": [
|
|
21751
|
+
"./layouts/base.json"
|
|
21752
|
+
],
|
|
21753
|
+
"oneOf": [
|
|
21754
|
+
{
|
|
21755
|
+
"type": "string"
|
|
21756
|
+
},
|
|
21757
|
+
{
|
|
21758
|
+
"const": false,
|
|
21759
|
+
"type": "boolean"
|
|
21760
|
+
}
|
|
21761
|
+
]
|
|
21762
|
+
},
|
|
21763
|
+
"$media": {
|
|
21764
|
+
"additionalProperties": {
|
|
21765
|
+
"type": "string"
|
|
21766
|
+
},
|
|
21767
|
+
"description": "Named media breakpoints following CSS @custom-media convention. Keys use the CSS custom property -- prefix.",
|
|
21768
|
+
"examples": [
|
|
21769
|
+
{
|
|
21770
|
+
"--dark": "(prefers-color-scheme: dark)",
|
|
21771
|
+
"--md": "(min-width: 768px)",
|
|
21772
|
+
"--sm": "(min-width: 640px)"
|
|
21835
21773
|
}
|
|
21836
|
-
|
|
21774
|
+
],
|
|
21775
|
+
"type": "object"
|
|
21776
|
+
},
|
|
21777
|
+
"$paths": {
|
|
21778
|
+
"description": "Dynamic route parameters. Maps parameter names to data sources for generating one page per entry at build time.",
|
|
21779
|
+
"type": "object"
|
|
21780
|
+
},
|
|
21781
|
+
"$schema": {
|
|
21782
|
+
"description": "URI identifying the Jx dialect version. Enables schema-aware IDE tooling.",
|
|
21783
|
+
"examples": [
|
|
21784
|
+
"https://jxsuite.com/schema/v1"
|
|
21785
|
+
],
|
|
21786
|
+
"type": "string"
|
|
21787
|
+
},
|
|
21788
|
+
"attributes": {
|
|
21789
|
+
"$ref": "#/$defs/AttributesObject"
|
|
21790
|
+
},
|
|
21791
|
+
"cases": {
|
|
21792
|
+
"additionalProperties": {
|
|
21793
|
+
"oneOf": [
|
|
21794
|
+
{
|
|
21795
|
+
"$ref": "#/$defs/ElementDef"
|
|
21796
|
+
},
|
|
21797
|
+
{
|
|
21798
|
+
"$ref": "#/$defs/ExternalComponentRef"
|
|
21799
|
+
}
|
|
21800
|
+
]
|
|
21801
|
+
},
|
|
21802
|
+
"description": "Switch cases object. Maps case values to element definitions or external component refs. Used alongside $switch for dynamic component rendering.",
|
|
21803
|
+
"type": "object"
|
|
21804
|
+
},
|
|
21805
|
+
"children": {
|
|
21806
|
+
"$ref": "#/$defs/ChildrenValue"
|
|
21807
|
+
},
|
|
21808
|
+
"imports": {
|
|
21809
|
+
"additionalProperties": {
|
|
21810
|
+
"type": "string"
|
|
21811
|
+
},
|
|
21812
|
+
"description": "Import map: $prototype names to .class.json file paths. Allows state entries to reference external classes by name without $src.",
|
|
21813
|
+
"type": "object"
|
|
21814
|
+
},
|
|
21815
|
+
"observedAttributes": {
|
|
21816
|
+
"description": "HTML attributes the custom element watches for changes. Follows the Web Components observedAttributes convention.",
|
|
21817
|
+
"items": {
|
|
21818
|
+
"type": "string"
|
|
21819
|
+
},
|
|
21820
|
+
"type": "array"
|
|
21821
|
+
},
|
|
21822
|
+
"state": {
|
|
21823
|
+
"$ref": "#/$defs/StateMap",
|
|
21824
|
+
"description": "Runtime variables for this component. All entries are reactive by default. Entry shape is determined by value type: scalar/array → reactive property, string with ${} → computed, object with $prototype → function or data source, object with type and default → typed reactive property."
|
|
21825
|
+
},
|
|
21826
|
+
"style": {
|
|
21827
|
+
"$ref": "#/$defs/StyleObject"
|
|
21828
|
+
},
|
|
21829
|
+
"tagName": {
|
|
21830
|
+
"$ref": "#/$defs/TagName"
|
|
21831
|
+
},
|
|
21832
|
+
"title": {
|
|
21833
|
+
"$ref": "#/$defs/StringOrRef",
|
|
21834
|
+
"description": "Page title. Can be a static string or a template string with ${} expressions."
|
|
21837
21835
|
}
|
|
21838
|
-
}
|
|
21836
|
+
},
|
|
21837
|
+
"title": "Jx Document",
|
|
21838
|
+
"type": "object"
|
|
21839
21839
|
}
|