@asterdoc/schemas 0.0.0-stage → 0.10.0
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/LICENSE +25 -0
- package/README.md +76 -2
- package/dist/index.d.ts +3040 -0
- package/dist/index.js +2096 -0
- package/package.json +82 -3
- package/schemas/2026-10-28/address.json +53 -0
- package/schemas/2026-10-28/attachment.json +31 -0
- package/schemas/2026-10-28/bbox.json +22 -0
- package/schemas/2026-10-28/bundle-content-item.json +122 -0
- package/schemas/2026-10-28/bundle.json +267 -0
- package/schemas/2026-10-28/checklist-item.json +113 -0
- package/schemas/2026-10-28/checklist.json +300 -0
- package/schemas/2026-10-28/cond-expr.json +18 -0
- package/schemas/2026-10-28/content-ref.json +76 -0
- package/schemas/2026-10-28/coordinate.json +26 -0
- package/schemas/2026-10-28/defs-section.json +862 -0
- package/schemas/2026-10-28/document.json +292 -0
- package/schemas/2026-10-28/duration.json +8 -0
- package/schemas/2026-10-28/fieldset-field.json +49 -0
- package/schemas/2026-10-28/form-annex.json +33 -0
- package/schemas/2026-10-28/form-field.json +1037 -0
- package/schemas/2026-10-28/form-party.json +150 -0
- package/schemas/2026-10-28/form.json +369 -0
- package/schemas/2026-10-28/identification.json +44 -0
- package/schemas/2026-10-28/layer.json +556 -0
- package/schemas/2026-10-28/list-field.json +51 -0
- package/schemas/2026-10-28/metadata.json +35 -0
- package/schemas/2026-10-28/money.json +25 -0
- package/schemas/2026-10-28/organization.json +49 -0
- package/schemas/2026-10-28/person.json +49 -0
- package/schemas/2026-10-28/phone.json +32 -0
- package/schemas/2026-10-28/rule-severity.json +11 -0
- package/schemas/2026-10-28/rules-section.json +46 -0
- package/schemas/2026-10-28/signature.json +68 -0
- package/schemas/2026-10-28/validation-rule.json +34 -0
- package/schemas/2026-10-28.json +4636 -0
- package/schemas/config.json +174 -0
- package/schemas/lock.json +151 -0
- package/schemas/manifest.json +184 -0
- package/schemas/registry-item.json +488 -0
- package/schemas/registry.json +281 -0
- package/schemas/schema.json +4636 -0
|
@@ -0,0 +1,556 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://schema.asterdoc.com/2026-10-28/layer.json",
|
|
4
|
+
"oneOf": [
|
|
5
|
+
{
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"mimeType": {
|
|
9
|
+
"type": "string",
|
|
10
|
+
"minLength": 1,
|
|
11
|
+
"maxLength": 100,
|
|
12
|
+
"description": "MIME type of the layer content (e.g., text/markdown). Never a React composition type",
|
|
13
|
+
"not": {
|
|
14
|
+
"pattern": "^(?:[tT][eE][xX][tT]/[tT][sS][xX]|[tT][eE][xX][tT]/[jJ][sS][xX])$"
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
"title": {
|
|
18
|
+
"type": "string",
|
|
19
|
+
"minLength": 1,
|
|
20
|
+
"maxLength": 200,
|
|
21
|
+
"description": "Human-readable title for this layer"
|
|
22
|
+
},
|
|
23
|
+
"description": {
|
|
24
|
+
"type": "string",
|
|
25
|
+
"minLength": 1,
|
|
26
|
+
"maxLength": 2000,
|
|
27
|
+
"description": "Description of what this layer represents"
|
|
28
|
+
},
|
|
29
|
+
"signatures": {
|
|
30
|
+
"type": "object",
|
|
31
|
+
"propertyNames": {
|
|
32
|
+
"type": "string",
|
|
33
|
+
"minLength": 1,
|
|
34
|
+
"maxLength": 100,
|
|
35
|
+
"description": "Slot ID"
|
|
36
|
+
},
|
|
37
|
+
"additionalProperties": {
|
|
38
|
+
"type": "object",
|
|
39
|
+
"properties": {
|
|
40
|
+
"party": {
|
|
41
|
+
"type": "object",
|
|
42
|
+
"properties": {
|
|
43
|
+
"role": {
|
|
44
|
+
"type": "string",
|
|
45
|
+
"minLength": 1,
|
|
46
|
+
"maxLength": 100,
|
|
47
|
+
"description": "Party role this slot binds to"
|
|
48
|
+
},
|
|
49
|
+
"index": {
|
|
50
|
+
"type": "integer",
|
|
51
|
+
"minimum": 0,
|
|
52
|
+
"maximum": 9007199254740991,
|
|
53
|
+
"description": "0-based index for multi-party roles; defaults to 0"
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
"required": [
|
|
57
|
+
"role"
|
|
58
|
+
],
|
|
59
|
+
"additionalProperties": false
|
|
60
|
+
},
|
|
61
|
+
"type": {
|
|
62
|
+
"type": "string",
|
|
63
|
+
"enum": [
|
|
64
|
+
"signature",
|
|
65
|
+
"initials",
|
|
66
|
+
"date_signed",
|
|
67
|
+
"capacity",
|
|
68
|
+
"printed_name"
|
|
69
|
+
],
|
|
70
|
+
"description": "Type of signing field: signature/initials (glyph), date_signed, capacity (signer role/title), or printed_name"
|
|
71
|
+
},
|
|
72
|
+
"required": {
|
|
73
|
+
"type": "boolean",
|
|
74
|
+
"description": "Whether this slot must be signed. Defaults to true"
|
|
75
|
+
},
|
|
76
|
+
"label": {
|
|
77
|
+
"type": "string",
|
|
78
|
+
"minLength": 1,
|
|
79
|
+
"maxLength": 200,
|
|
80
|
+
"description": "Human-readable label"
|
|
81
|
+
},
|
|
82
|
+
"placement": {
|
|
83
|
+
"anyOf": [
|
|
84
|
+
{
|
|
85
|
+
"type": "string",
|
|
86
|
+
"const": "flow",
|
|
87
|
+
"description": "In-flow: the field sits where the template content places it; located after conversion via an injected marker"
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"type": "object",
|
|
91
|
+
"properties": {
|
|
92
|
+
"page": {
|
|
93
|
+
"type": "integer",
|
|
94
|
+
"minimum": 1,
|
|
95
|
+
"maximum": 9007199254740991,
|
|
96
|
+
"description": "1-based page number"
|
|
97
|
+
},
|
|
98
|
+
"x": {
|
|
99
|
+
"type": "number",
|
|
100
|
+
"minimum": 0,
|
|
101
|
+
"description": "X in points from the left page edge"
|
|
102
|
+
},
|
|
103
|
+
"y": {
|
|
104
|
+
"type": "number",
|
|
105
|
+
"minimum": 0,
|
|
106
|
+
"description": "Y in points from the top page edge"
|
|
107
|
+
},
|
|
108
|
+
"width": {
|
|
109
|
+
"type": "number",
|
|
110
|
+
"minimum": 1,
|
|
111
|
+
"description": "Width in points"
|
|
112
|
+
},
|
|
113
|
+
"height": {
|
|
114
|
+
"type": "number",
|
|
115
|
+
"minimum": 1,
|
|
116
|
+
"description": "Height in points"
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
"required": [
|
|
120
|
+
"page",
|
|
121
|
+
"x",
|
|
122
|
+
"y",
|
|
123
|
+
"width",
|
|
124
|
+
"height"
|
|
125
|
+
],
|
|
126
|
+
"additionalProperties": false,
|
|
127
|
+
"title": "AbsolutePlacement"
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
"type": "object",
|
|
131
|
+
"properties": {
|
|
132
|
+
"anchor": {
|
|
133
|
+
"type": "object",
|
|
134
|
+
"properties": {
|
|
135
|
+
"text": {
|
|
136
|
+
"type": "string",
|
|
137
|
+
"minLength": 1,
|
|
138
|
+
"maxLength": 500,
|
|
139
|
+
"description": "Literal document text to find; must be unique unless occurrence is set"
|
|
140
|
+
},
|
|
141
|
+
"offsetX": {
|
|
142
|
+
"type": "number",
|
|
143
|
+
"description": "Horizontal offset in points from the left of the found text"
|
|
144
|
+
},
|
|
145
|
+
"offsetY": {
|
|
146
|
+
"type": "number",
|
|
147
|
+
"description": "Vertical offset in points from the top of the found text"
|
|
148
|
+
},
|
|
149
|
+
"occurrence": {
|
|
150
|
+
"type": "integer",
|
|
151
|
+
"minimum": 1,
|
|
152
|
+
"maximum": 9007199254740991,
|
|
153
|
+
"description": "1-based match index in reading order when the text repeats"
|
|
154
|
+
}
|
|
155
|
+
},
|
|
156
|
+
"required": [
|
|
157
|
+
"text"
|
|
158
|
+
],
|
|
159
|
+
"additionalProperties": false
|
|
160
|
+
},
|
|
161
|
+
"width": {
|
|
162
|
+
"type": "number",
|
|
163
|
+
"minimum": 1,
|
|
164
|
+
"description": "Width in points"
|
|
165
|
+
},
|
|
166
|
+
"height": {
|
|
167
|
+
"type": "number",
|
|
168
|
+
"minimum": 1,
|
|
169
|
+
"description": "Height in points"
|
|
170
|
+
}
|
|
171
|
+
},
|
|
172
|
+
"required": [
|
|
173
|
+
"anchor",
|
|
174
|
+
"width",
|
|
175
|
+
"height"
|
|
176
|
+
],
|
|
177
|
+
"additionalProperties": false,
|
|
178
|
+
"title": "AnchorPlacement"
|
|
179
|
+
}
|
|
180
|
+
],
|
|
181
|
+
"description": "Placement: 'flow', absolute coordinates, or a text anchor"
|
|
182
|
+
}
|
|
183
|
+
},
|
|
184
|
+
"required": [
|
|
185
|
+
"party",
|
|
186
|
+
"type",
|
|
187
|
+
"placement"
|
|
188
|
+
],
|
|
189
|
+
"additionalProperties": false,
|
|
190
|
+
"title": "SignatureSlot",
|
|
191
|
+
"description": "Signature slot binding a party to a placement on this layer"
|
|
192
|
+
},
|
|
193
|
+
"description": "Signature slots keyed by slot id"
|
|
194
|
+
},
|
|
195
|
+
"kind": {
|
|
196
|
+
"type": "string",
|
|
197
|
+
"const": "inline"
|
|
198
|
+
},
|
|
199
|
+
"text": {
|
|
200
|
+
"type": "string",
|
|
201
|
+
"minLength": 1,
|
|
202
|
+
"maxLength": 1000000,
|
|
203
|
+
"description": "Layer content with interpolation placeholders (e.g., {{fields.fieldName}})"
|
|
204
|
+
}
|
|
205
|
+
},
|
|
206
|
+
"required": [
|
|
207
|
+
"mimeType",
|
|
208
|
+
"kind",
|
|
209
|
+
"text"
|
|
210
|
+
],
|
|
211
|
+
"additionalProperties": false,
|
|
212
|
+
"title": "InlineLayer",
|
|
213
|
+
"description": "Inline layer with embedded content"
|
|
214
|
+
},
|
|
215
|
+
{
|
|
216
|
+
"type": "object",
|
|
217
|
+
"properties": {
|
|
218
|
+
"mimeType": {
|
|
219
|
+
"type": "string",
|
|
220
|
+
"minLength": 1,
|
|
221
|
+
"maxLength": 100,
|
|
222
|
+
"description": "MIME type of the layer content (e.g., text/markdown, application/pdf)"
|
|
223
|
+
},
|
|
224
|
+
"title": {
|
|
225
|
+
"type": "string",
|
|
226
|
+
"minLength": 1,
|
|
227
|
+
"maxLength": 200,
|
|
228
|
+
"description": "Human-readable title for this layer"
|
|
229
|
+
},
|
|
230
|
+
"description": {
|
|
231
|
+
"type": "string",
|
|
232
|
+
"minLength": 1,
|
|
233
|
+
"maxLength": 2000,
|
|
234
|
+
"description": "Description of what this layer represents"
|
|
235
|
+
},
|
|
236
|
+
"signatures": {
|
|
237
|
+
"type": "object",
|
|
238
|
+
"propertyNames": {
|
|
239
|
+
"type": "string",
|
|
240
|
+
"minLength": 1,
|
|
241
|
+
"maxLength": 100,
|
|
242
|
+
"description": "Slot ID"
|
|
243
|
+
},
|
|
244
|
+
"additionalProperties": {
|
|
245
|
+
"type": "object",
|
|
246
|
+
"properties": {
|
|
247
|
+
"party": {
|
|
248
|
+
"type": "object",
|
|
249
|
+
"properties": {
|
|
250
|
+
"role": {
|
|
251
|
+
"type": "string",
|
|
252
|
+
"minLength": 1,
|
|
253
|
+
"maxLength": 100,
|
|
254
|
+
"description": "Party role this slot binds to"
|
|
255
|
+
},
|
|
256
|
+
"index": {
|
|
257
|
+
"type": "integer",
|
|
258
|
+
"minimum": 0,
|
|
259
|
+
"maximum": 9007199254740991,
|
|
260
|
+
"description": "0-based index for multi-party roles; defaults to 0"
|
|
261
|
+
}
|
|
262
|
+
},
|
|
263
|
+
"required": [
|
|
264
|
+
"role"
|
|
265
|
+
],
|
|
266
|
+
"additionalProperties": false
|
|
267
|
+
},
|
|
268
|
+
"type": {
|
|
269
|
+
"type": "string",
|
|
270
|
+
"enum": [
|
|
271
|
+
"signature",
|
|
272
|
+
"initials",
|
|
273
|
+
"date_signed",
|
|
274
|
+
"capacity",
|
|
275
|
+
"printed_name"
|
|
276
|
+
],
|
|
277
|
+
"description": "Type of signing field: signature/initials (glyph), date_signed, capacity (signer role/title), or printed_name"
|
|
278
|
+
},
|
|
279
|
+
"required": {
|
|
280
|
+
"type": "boolean",
|
|
281
|
+
"description": "Whether this slot must be signed. Defaults to true"
|
|
282
|
+
},
|
|
283
|
+
"label": {
|
|
284
|
+
"type": "string",
|
|
285
|
+
"minLength": 1,
|
|
286
|
+
"maxLength": 200,
|
|
287
|
+
"description": "Human-readable label"
|
|
288
|
+
},
|
|
289
|
+
"placement": {
|
|
290
|
+
"anyOf": [
|
|
291
|
+
{
|
|
292
|
+
"type": "string",
|
|
293
|
+
"const": "flow",
|
|
294
|
+
"description": "In-flow: the field sits where the template content places it; located after conversion via an injected marker"
|
|
295
|
+
},
|
|
296
|
+
{
|
|
297
|
+
"type": "object",
|
|
298
|
+
"properties": {
|
|
299
|
+
"page": {
|
|
300
|
+
"type": "integer",
|
|
301
|
+
"minimum": 1,
|
|
302
|
+
"maximum": 9007199254740991,
|
|
303
|
+
"description": "1-based page number"
|
|
304
|
+
},
|
|
305
|
+
"x": {
|
|
306
|
+
"type": "number",
|
|
307
|
+
"minimum": 0,
|
|
308
|
+
"description": "X in points from the left page edge"
|
|
309
|
+
},
|
|
310
|
+
"y": {
|
|
311
|
+
"type": "number",
|
|
312
|
+
"minimum": 0,
|
|
313
|
+
"description": "Y in points from the top page edge"
|
|
314
|
+
},
|
|
315
|
+
"width": {
|
|
316
|
+
"type": "number",
|
|
317
|
+
"minimum": 1,
|
|
318
|
+
"description": "Width in points"
|
|
319
|
+
},
|
|
320
|
+
"height": {
|
|
321
|
+
"type": "number",
|
|
322
|
+
"minimum": 1,
|
|
323
|
+
"description": "Height in points"
|
|
324
|
+
}
|
|
325
|
+
},
|
|
326
|
+
"required": [
|
|
327
|
+
"page",
|
|
328
|
+
"x",
|
|
329
|
+
"y",
|
|
330
|
+
"width",
|
|
331
|
+
"height"
|
|
332
|
+
],
|
|
333
|
+
"additionalProperties": false,
|
|
334
|
+
"title": "AbsolutePlacement"
|
|
335
|
+
},
|
|
336
|
+
{
|
|
337
|
+
"type": "object",
|
|
338
|
+
"properties": {
|
|
339
|
+
"anchor": {
|
|
340
|
+
"type": "object",
|
|
341
|
+
"properties": {
|
|
342
|
+
"text": {
|
|
343
|
+
"type": "string",
|
|
344
|
+
"minLength": 1,
|
|
345
|
+
"maxLength": 500,
|
|
346
|
+
"description": "Literal document text to find; must be unique unless occurrence is set"
|
|
347
|
+
},
|
|
348
|
+
"offsetX": {
|
|
349
|
+
"type": "number",
|
|
350
|
+
"description": "Horizontal offset in points from the left of the found text"
|
|
351
|
+
},
|
|
352
|
+
"offsetY": {
|
|
353
|
+
"type": "number",
|
|
354
|
+
"description": "Vertical offset in points from the top of the found text"
|
|
355
|
+
},
|
|
356
|
+
"occurrence": {
|
|
357
|
+
"type": "integer",
|
|
358
|
+
"minimum": 1,
|
|
359
|
+
"maximum": 9007199254740991,
|
|
360
|
+
"description": "1-based match index in reading order when the text repeats"
|
|
361
|
+
}
|
|
362
|
+
},
|
|
363
|
+
"required": [
|
|
364
|
+
"text"
|
|
365
|
+
],
|
|
366
|
+
"additionalProperties": false
|
|
367
|
+
},
|
|
368
|
+
"width": {
|
|
369
|
+
"type": "number",
|
|
370
|
+
"minimum": 1,
|
|
371
|
+
"description": "Width in points"
|
|
372
|
+
},
|
|
373
|
+
"height": {
|
|
374
|
+
"type": "number",
|
|
375
|
+
"minimum": 1,
|
|
376
|
+
"description": "Height in points"
|
|
377
|
+
}
|
|
378
|
+
},
|
|
379
|
+
"required": [
|
|
380
|
+
"anchor",
|
|
381
|
+
"width",
|
|
382
|
+
"height"
|
|
383
|
+
],
|
|
384
|
+
"additionalProperties": false,
|
|
385
|
+
"title": "AnchorPlacement"
|
|
386
|
+
}
|
|
387
|
+
],
|
|
388
|
+
"description": "Placement: 'flow', absolute coordinates, or a text anchor"
|
|
389
|
+
}
|
|
390
|
+
},
|
|
391
|
+
"required": [
|
|
392
|
+
"party",
|
|
393
|
+
"type",
|
|
394
|
+
"placement"
|
|
395
|
+
],
|
|
396
|
+
"additionalProperties": false,
|
|
397
|
+
"title": "SignatureSlot",
|
|
398
|
+
"description": "Signature slot binding a party to a placement on this layer"
|
|
399
|
+
},
|
|
400
|
+
"description": "Signature slots keyed by slot id"
|
|
401
|
+
},
|
|
402
|
+
"kind": {
|
|
403
|
+
"type": "string",
|
|
404
|
+
"const": "file"
|
|
405
|
+
},
|
|
406
|
+
"path": {
|
|
407
|
+
"type": "string",
|
|
408
|
+
"minLength": 1,
|
|
409
|
+
"maxLength": 1000,
|
|
410
|
+
"description": "Logical resolver path; the CLI resolves file-backed artifacts from their directory and stdin artifacts from cwd"
|
|
411
|
+
},
|
|
412
|
+
"checksum": {
|
|
413
|
+
"type": "string",
|
|
414
|
+
"pattern": "^sha256:[a-f0-9]{64}$",
|
|
415
|
+
"description": "SHA-256 checksum for integrity verification"
|
|
416
|
+
},
|
|
417
|
+
"font": {
|
|
418
|
+
"type": "object",
|
|
419
|
+
"properties": {
|
|
420
|
+
"path": {
|
|
421
|
+
"type": "string",
|
|
422
|
+
"minLength": 1,
|
|
423
|
+
"maxLength": 1000,
|
|
424
|
+
"description": "Logical resolver path of a TrueType-outline font program (.ttf), resolved like the layer path"
|
|
425
|
+
},
|
|
426
|
+
"checksum": {
|
|
427
|
+
"type": "string",
|
|
428
|
+
"pattern": "^sha256:[a-f0-9]{64}$",
|
|
429
|
+
"description": "SHA-256 checksum for integrity verification"
|
|
430
|
+
}
|
|
431
|
+
},
|
|
432
|
+
"required": [
|
|
433
|
+
"path"
|
|
434
|
+
],
|
|
435
|
+
"additionalProperties": false,
|
|
436
|
+
"title": "LayerFont",
|
|
437
|
+
"description": "Font for filled values and overlay text; PDF layers only. It is tried after a font supplied at render time and before the form's own fonts"
|
|
438
|
+
},
|
|
439
|
+
"format": {
|
|
440
|
+
"type": "object",
|
|
441
|
+
"properties": {
|
|
442
|
+
"money": {
|
|
443
|
+
"type": "object",
|
|
444
|
+
"properties": {
|
|
445
|
+
"currencyDisplay": {
|
|
446
|
+
"type": "string",
|
|
447
|
+
"const": "none",
|
|
448
|
+
"description": "`none` prints the amount without a currency symbol or code, for a template that pre-prints the symbol beside each money box"
|
|
449
|
+
}
|
|
450
|
+
},
|
|
451
|
+
"required": [
|
|
452
|
+
"currencyDisplay"
|
|
453
|
+
],
|
|
454
|
+
"additionalProperties": false,
|
|
455
|
+
"title": "LayerMoneyFormat",
|
|
456
|
+
"description": "How a PDF layer presents money values"
|
|
457
|
+
}
|
|
458
|
+
},
|
|
459
|
+
"additionalProperties": false,
|
|
460
|
+
"title": "LayerFormat",
|
|
461
|
+
"description": "Presentation the template requires of filled values; PDF layers only. It applies to this layer alone, not to a layer that reuses its bindings"
|
|
462
|
+
},
|
|
463
|
+
"bindings": {
|
|
464
|
+
"type": "object",
|
|
465
|
+
"propertyNames": {
|
|
466
|
+
"type": "string",
|
|
467
|
+
"minLength": 1,
|
|
468
|
+
"maxLength": 500,
|
|
469
|
+
"description": "AcroForm field name in the PDF template, fully qualified (e.g., topmostSubform[0].Page1[0].f1_01[0])"
|
|
470
|
+
},
|
|
471
|
+
"additionalProperties": {
|
|
472
|
+
"type": "string",
|
|
473
|
+
"minLength": 1,
|
|
474
|
+
"maxLength": 500,
|
|
475
|
+
"description": "Asterdoc path whose value fills the field (e.g., fields.name, parties.buyer.name)"
|
|
476
|
+
},
|
|
477
|
+
"description": "PDF layers only. Maps each AcroForm field name (key) to the Asterdoc path (value) that fills it"
|
|
478
|
+
},
|
|
479
|
+
"bindingsFrom": {
|
|
480
|
+
"type": "string",
|
|
481
|
+
"minLength": 1,
|
|
482
|
+
"maxLength": 128,
|
|
483
|
+
"description": "PDF layers only. Key of a sibling PDF layer whose bindings this layer reuses"
|
|
484
|
+
}
|
|
485
|
+
},
|
|
486
|
+
"required": [
|
|
487
|
+
"mimeType",
|
|
488
|
+
"kind",
|
|
489
|
+
"path"
|
|
490
|
+
],
|
|
491
|
+
"additionalProperties": false,
|
|
492
|
+
"title": "FileLayer",
|
|
493
|
+
"description": "File-backed layer with path reference"
|
|
494
|
+
}
|
|
495
|
+
],
|
|
496
|
+
"description": "Layer specification — inline content or file reference",
|
|
497
|
+
"allOf": [
|
|
498
|
+
{
|
|
499
|
+
"if": {
|
|
500
|
+
"required": [
|
|
501
|
+
"font"
|
|
502
|
+
]
|
|
503
|
+
},
|
|
504
|
+
"then": {
|
|
505
|
+
"properties": {
|
|
506
|
+
"mimeType": {
|
|
507
|
+
"pattern": "^[aA][pP][pP][lL][iI][cC][aA][tT][iI][oO][nN]/[pP][dD][fF]$"
|
|
508
|
+
}
|
|
509
|
+
}
|
|
510
|
+
}
|
|
511
|
+
},
|
|
512
|
+
{
|
|
513
|
+
"if": {
|
|
514
|
+
"required": [
|
|
515
|
+
"format"
|
|
516
|
+
]
|
|
517
|
+
},
|
|
518
|
+
"then": {
|
|
519
|
+
"properties": {
|
|
520
|
+
"mimeType": {
|
|
521
|
+
"pattern": "^[aA][pP][pP][lL][iI][cC][aA][tT][iI][oO][nN]/[pP][dD][fF]$"
|
|
522
|
+
}
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
},
|
|
526
|
+
{
|
|
527
|
+
"if": {
|
|
528
|
+
"required": [
|
|
529
|
+
"bindings"
|
|
530
|
+
]
|
|
531
|
+
},
|
|
532
|
+
"then": {
|
|
533
|
+
"properties": {
|
|
534
|
+
"mimeType": {
|
|
535
|
+
"pattern": "^[aA][pP][pP][lL][iI][cC][aA][tT][iI][oO][nN]/[pP][dD][fF]$"
|
|
536
|
+
}
|
|
537
|
+
}
|
|
538
|
+
}
|
|
539
|
+
},
|
|
540
|
+
{
|
|
541
|
+
"if": {
|
|
542
|
+
"required": [
|
|
543
|
+
"bindingsFrom"
|
|
544
|
+
]
|
|
545
|
+
},
|
|
546
|
+
"then": {
|
|
547
|
+
"properties": {
|
|
548
|
+
"mimeType": {
|
|
549
|
+
"pattern": "^[aA][pP][pP][lL][iI][cC][aA][tT][iI][oO][nN]/[pP][dD][fF]$"
|
|
550
|
+
}
|
|
551
|
+
}
|
|
552
|
+
}
|
|
553
|
+
}
|
|
554
|
+
],
|
|
555
|
+
"title": "Layer"
|
|
556
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://schema.asterdoc.com/2026-10-28/list-field.json",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"properties": {
|
|
6
|
+
"label": {
|
|
7
|
+
"type": "string",
|
|
8
|
+
"minLength": 1,
|
|
9
|
+
"maxLength": 200,
|
|
10
|
+
"description": "Display label for the field"
|
|
11
|
+
},
|
|
12
|
+
"description": {
|
|
13
|
+
"type": "string",
|
|
14
|
+
"minLength": 1,
|
|
15
|
+
"maxLength": 1000,
|
|
16
|
+
"description": "Description or help text for the field"
|
|
17
|
+
},
|
|
18
|
+
"required": {
|
|
19
|
+
"$ref": "https://schema.asterdoc.com/2026-10-28.json#/$defs/CondExpr"
|
|
20
|
+
},
|
|
21
|
+
"visible": {
|
|
22
|
+
"$ref": "https://schema.asterdoc.com/2026-10-28.json#/$defs/CondExpr"
|
|
23
|
+
},
|
|
24
|
+
"type": {
|
|
25
|
+
"type": "string",
|
|
26
|
+
"const": "list"
|
|
27
|
+
},
|
|
28
|
+
"item": {
|
|
29
|
+
"$ref": "https://schema.asterdoc.com/2026-10-28.json#/$defs/FormField"
|
|
30
|
+
},
|
|
31
|
+
"minItems": {
|
|
32
|
+
"type": "integer",
|
|
33
|
+
"minimum": 0,
|
|
34
|
+
"maximum": 9007199254740991,
|
|
35
|
+
"description": "Minimum number of items"
|
|
36
|
+
},
|
|
37
|
+
"maxItems": {
|
|
38
|
+
"type": "integer",
|
|
39
|
+
"minimum": 0,
|
|
40
|
+
"maximum": 9007199254740991,
|
|
41
|
+
"description": "Maximum number of items"
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
"required": [
|
|
45
|
+
"type",
|
|
46
|
+
"item"
|
|
47
|
+
],
|
|
48
|
+
"additionalProperties": false,
|
|
49
|
+
"description": "Field that holds a list of items, each shaped by the item field",
|
|
50
|
+
"title": "ListField"
|
|
51
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://schema.asterdoc.com/2026-10-28/metadata.json",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"propertyNames": {
|
|
6
|
+
"type": "string",
|
|
7
|
+
"minLength": 1,
|
|
8
|
+
"maxLength": 100,
|
|
9
|
+
"pattern": "^[A-Za-z0-9]([A-Za-z0-9]|-[A-Za-z0-9])*$",
|
|
10
|
+
"description": "Metadata key identifier. Must start with alphanumeric character and can contain alphanumeric characters and hyphens"
|
|
11
|
+
},
|
|
12
|
+
"additionalProperties": {
|
|
13
|
+
"anyOf": [
|
|
14
|
+
{
|
|
15
|
+
"type": "string",
|
|
16
|
+
"maxLength": 500,
|
|
17
|
+
"description": "Metadata value as a string (max 500 characters)"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"type": "number",
|
|
21
|
+
"description": "Metadata value as a number"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"type": "boolean",
|
|
25
|
+
"description": "Metadata value as a boolean"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"type": "null",
|
|
29
|
+
"description": "Metadata value as null"
|
|
30
|
+
}
|
|
31
|
+
]
|
|
32
|
+
},
|
|
33
|
+
"description": "Custom key-value pairs for storing domain-specific or organizational metadata. Keys must be alphanumeric with hyphens, values can be strings, numbers, booleans, or null",
|
|
34
|
+
"title": "Metadata"
|
|
35
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://schema.asterdoc.com/2026-10-28/money.json",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"properties": {
|
|
6
|
+
"amount": {
|
|
7
|
+
"type": "number",
|
|
8
|
+
"description": "Monetary amount expressed in decimal form (e.g., 99.99 for USD). Negative values allowed for debts/credits"
|
|
9
|
+
},
|
|
10
|
+
"currency": {
|
|
11
|
+
"type": "string",
|
|
12
|
+
"minLength": 3,
|
|
13
|
+
"maxLength": 3,
|
|
14
|
+
"pattern": "^[A-Z]{3}$",
|
|
15
|
+
"description": "ISO 4217 alpha-3 currency code (e.g., USD, EUR, GBP)"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"required": [
|
|
19
|
+
"amount",
|
|
20
|
+
"currency"
|
|
21
|
+
],
|
|
22
|
+
"additionalProperties": false,
|
|
23
|
+
"description": "Monetary value with currency code. Represents an amount in a specific currency, supporting both positive and negative values",
|
|
24
|
+
"title": "Money"
|
|
25
|
+
}
|