@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
package/package.json
CHANGED
|
@@ -1,6 +1,85 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@asterdoc/schemas",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
3
|
+
"version": "0.10.0",
|
|
4
|
+
"description": "JSON Schema definitions for Asterdoc framework artifacts, blocks, and primitives",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"module": "./dist/index.js",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"types": "./dist/index.d.ts",
|
|
12
|
+
"import": "./dist/index.js",
|
|
13
|
+
"default": "./dist/index.js"
|
|
14
|
+
},
|
|
15
|
+
"./schema.json": "./schemas/schema.json"
|
|
16
|
+
},
|
|
17
|
+
"sideEffects": false,
|
|
18
|
+
"files": [
|
|
19
|
+
"dist",
|
|
20
|
+
"schemas",
|
|
21
|
+
"README.md",
|
|
22
|
+
"LICENSE"
|
|
23
|
+
],
|
|
24
|
+
"keywords": [
|
|
25
|
+
"asterdoc",
|
|
26
|
+
"forms",
|
|
27
|
+
"json-schema",
|
|
28
|
+
"schemas",
|
|
29
|
+
"zod",
|
|
30
|
+
"validation"
|
|
31
|
+
],
|
|
32
|
+
"license": "MIT",
|
|
33
|
+
"author": {
|
|
34
|
+
"name": "Asterdoc",
|
|
35
|
+
"url": "https://asterdoc.com"
|
|
36
|
+
},
|
|
37
|
+
"engines": {
|
|
38
|
+
"node": ">=18"
|
|
39
|
+
},
|
|
40
|
+
"repository": {
|
|
41
|
+
"type": "git",
|
|
42
|
+
"url": "https://github.com/asterdoc/asterdoc.git",
|
|
43
|
+
"directory": "packages/schemas"
|
|
44
|
+
},
|
|
45
|
+
"homepage": "https://asterdoc.com",
|
|
46
|
+
"bugs": {
|
|
47
|
+
"url": "https://github.com/asterdoc/asterdoc/issues"
|
|
48
|
+
},
|
|
49
|
+
"publishConfig": {
|
|
50
|
+
"access": "public"
|
|
51
|
+
},
|
|
52
|
+
"dependencies": {
|
|
53
|
+
"safe-regex": "^2.1.1",
|
|
54
|
+
"zod": "^4.1.12",
|
|
55
|
+
"@asterdoc/types": "0.10.0"
|
|
56
|
+
},
|
|
57
|
+
"devDependencies": {
|
|
58
|
+
"@types/node": "^22.15.3",
|
|
59
|
+
"@types/safe-regex": "^1.1.6",
|
|
60
|
+
"@vitest/coverage-v8": "^2.1.8",
|
|
61
|
+
"eslint": "^9.34.0",
|
|
62
|
+
"tsup": "^8.4.0",
|
|
63
|
+
"tsx": "^4.20.6",
|
|
64
|
+
"typescript": "5.9.2",
|
|
65
|
+
"vitest": "^2.1.8",
|
|
66
|
+
"@asterdoc/eslint-config": "0.1.0",
|
|
67
|
+
"@asterdoc/typescript-config": "0.1.0"
|
|
68
|
+
},
|
|
69
|
+
"scripts": {
|
|
70
|
+
"build": "tsx scripts/prepare-schema-output.ts && tsup && pnpm export:all",
|
|
71
|
+
"dev": "tsup --watch",
|
|
72
|
+
"clean": "rm -rf dist schemas",
|
|
73
|
+
"pack:dry": "npm pack --dry-run",
|
|
74
|
+
"lint": "eslint .",
|
|
75
|
+
"check-types": "tsc --noEmit",
|
|
76
|
+
"check": "pnpm lint && pnpm check-types",
|
|
77
|
+
"test": "vitest run",
|
|
78
|
+
"test:watch": "vitest",
|
|
79
|
+
"export:bundled-schema": "tsx scripts/export-root-schema-zod.ts",
|
|
80
|
+
"export:individual-schemas": "tsx scripts/export-all-schemas-zod.ts",
|
|
81
|
+
"export:manifest": "tsx scripts/export-manifest-schema-zod.ts",
|
|
82
|
+
"export:registry": "tsx scripts/export-registry-schemas-zod.ts",
|
|
83
|
+
"export:all": "pnpm export:bundled-schema && pnpm export:individual-schemas && pnpm export:manifest && pnpm export:registry"
|
|
84
|
+
}
|
|
6
85
|
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://schema.asterdoc.com/2026-10-28/address.json",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"properties": {
|
|
6
|
+
"line1": {
|
|
7
|
+
"type": "string",
|
|
8
|
+
"minLength": 1,
|
|
9
|
+
"maxLength": 200,
|
|
10
|
+
"description": "Primary address line"
|
|
11
|
+
},
|
|
12
|
+
"line2": {
|
|
13
|
+
"type": "string",
|
|
14
|
+
"maxLength": 200,
|
|
15
|
+
"description": "Secondary address line"
|
|
16
|
+
},
|
|
17
|
+
"locality": {
|
|
18
|
+
"type": "string",
|
|
19
|
+
"minLength": 1,
|
|
20
|
+
"maxLength": 200,
|
|
21
|
+
"description": "City or locality name"
|
|
22
|
+
},
|
|
23
|
+
"region": {
|
|
24
|
+
"type": "string",
|
|
25
|
+
"minLength": 1,
|
|
26
|
+
"maxLength": 100,
|
|
27
|
+
"description": "State, province, or region name"
|
|
28
|
+
},
|
|
29
|
+
"postalCode": {
|
|
30
|
+
"type": "string",
|
|
31
|
+
"minLength": 3,
|
|
32
|
+
"maxLength": 20,
|
|
33
|
+
"pattern": "^[A-Z0-9\\s-]+$",
|
|
34
|
+
"description": "Postal or ZIP code"
|
|
35
|
+
},
|
|
36
|
+
"country": {
|
|
37
|
+
"type": "string",
|
|
38
|
+
"minLength": 2,
|
|
39
|
+
"maxLength": 100,
|
|
40
|
+
"description": "ISO 3166-1 country code (e.g., \"US\", \"GB\", \"FRA\") or full country name"
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
"required": [
|
|
44
|
+
"line1",
|
|
45
|
+
"locality",
|
|
46
|
+
"region",
|
|
47
|
+
"postalCode",
|
|
48
|
+
"country"
|
|
49
|
+
],
|
|
50
|
+
"additionalProperties": false,
|
|
51
|
+
"description": "Physical address with street, locality, region, postal code, and country",
|
|
52
|
+
"title": "Address"
|
|
53
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://schema.asterdoc.com/2026-10-28/attachment.json",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"properties": {
|
|
6
|
+
"name": {
|
|
7
|
+
"type": "string",
|
|
8
|
+
"minLength": 1,
|
|
9
|
+
"maxLength": 255,
|
|
10
|
+
"description": "Original file name"
|
|
11
|
+
},
|
|
12
|
+
"mimeType": {
|
|
13
|
+
"type": "string",
|
|
14
|
+
"minLength": 1,
|
|
15
|
+
"maxLength": 100,
|
|
16
|
+
"description": "MIME type of the attached file"
|
|
17
|
+
},
|
|
18
|
+
"checksum": {
|
|
19
|
+
"type": "string",
|
|
20
|
+
"pattern": "^sha256:[a-f0-9]{64}$",
|
|
21
|
+
"description": "SHA-256 checksum for integrity verification"
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
"required": [
|
|
25
|
+
"name",
|
|
26
|
+
"mimeType"
|
|
27
|
+
],
|
|
28
|
+
"additionalProperties": false,
|
|
29
|
+
"description": "Attachment data representing an attached document. The key in the record is the annex identifier (the key from form.annexes).",
|
|
30
|
+
"title": "Attachment"
|
|
31
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://schema.asterdoc.com/2026-10-28/bbox.json",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"properties": {
|
|
6
|
+
"southWest": {
|
|
7
|
+
"description": "Southwest corner coordinate (minimum latitude and longitude)",
|
|
8
|
+
"$ref": "https://schema.asterdoc.com/2026-10-28.json#/$defs/Coordinate"
|
|
9
|
+
},
|
|
10
|
+
"northEast": {
|
|
11
|
+
"description": "Northeast corner coordinate (maximum latitude and longitude)",
|
|
12
|
+
"$ref": "https://schema.asterdoc.com/2026-10-28.json#/$defs/Coordinate"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"required": [
|
|
16
|
+
"southWest",
|
|
17
|
+
"northEast"
|
|
18
|
+
],
|
|
19
|
+
"additionalProperties": false,
|
|
20
|
+
"description": "Geographic bounding box defined by southwest (minimum) and northeast (maximum) corner coordinates",
|
|
21
|
+
"title": "Bbox"
|
|
22
|
+
}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://schema.asterdoc.com/2026-10-28/bundle-content-item.json",
|
|
4
|
+
"oneOf": [
|
|
5
|
+
{
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"key": {
|
|
9
|
+
"type": "string",
|
|
10
|
+
"minLength": 1,
|
|
11
|
+
"maxLength": 100,
|
|
12
|
+
"pattern": "^[a-zA-Z][a-zA-Z0-9_-]*$",
|
|
13
|
+
"description": "Unique identifier for this content item, used to reference it in defs expressions"
|
|
14
|
+
},
|
|
15
|
+
"include": {
|
|
16
|
+
"$ref": "https://schema.asterdoc.com/2026-10-28.json#/$defs/CondExpr"
|
|
17
|
+
},
|
|
18
|
+
"type": {
|
|
19
|
+
"type": "string",
|
|
20
|
+
"const": "inline"
|
|
21
|
+
},
|
|
22
|
+
"artifact": {
|
|
23
|
+
"description": "Inline artifact definition (document, form, checklist, or nested bundle)",
|
|
24
|
+
"anyOf": [
|
|
25
|
+
{
|
|
26
|
+
"$ref": "https://schema.asterdoc.com/2026-10-28.json#/$defs/Document"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"$ref": "https://schema.asterdoc.com/2026-10-28.json#/$defs/Form"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"$ref": "https://schema.asterdoc.com/2026-10-28.json#/$defs/Checklist"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"$ref": "https://schema.asterdoc.com/2026-10-28.json#/$defs/Bundle"
|
|
36
|
+
}
|
|
37
|
+
]
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
"required": [
|
|
41
|
+
"key",
|
|
42
|
+
"type",
|
|
43
|
+
"artifact"
|
|
44
|
+
],
|
|
45
|
+
"additionalProperties": false
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"type": "object",
|
|
49
|
+
"properties": {
|
|
50
|
+
"key": {
|
|
51
|
+
"type": "string",
|
|
52
|
+
"minLength": 1,
|
|
53
|
+
"maxLength": 100,
|
|
54
|
+
"pattern": "^[a-zA-Z][a-zA-Z0-9_-]*$",
|
|
55
|
+
"description": "Unique identifier for this content item, used to reference it in defs expressions"
|
|
56
|
+
},
|
|
57
|
+
"include": {
|
|
58
|
+
"$ref": "https://schema.asterdoc.com/2026-10-28.json#/$defs/CondExpr"
|
|
59
|
+
},
|
|
60
|
+
"type": {
|
|
61
|
+
"type": "string",
|
|
62
|
+
"const": "path"
|
|
63
|
+
},
|
|
64
|
+
"path": {
|
|
65
|
+
"type": "string",
|
|
66
|
+
"minLength": 1,
|
|
67
|
+
"description": "Path to the artifact file, relative to the bundle file's directory"
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
"required": [
|
|
71
|
+
"key",
|
|
72
|
+
"type",
|
|
73
|
+
"path"
|
|
74
|
+
],
|
|
75
|
+
"additionalProperties": false
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"type": "object",
|
|
79
|
+
"properties": {
|
|
80
|
+
"key": {
|
|
81
|
+
"type": "string",
|
|
82
|
+
"minLength": 1,
|
|
83
|
+
"maxLength": 100,
|
|
84
|
+
"pattern": "^[a-zA-Z][a-zA-Z0-9_-]*$",
|
|
85
|
+
"description": "Unique identifier for this content item, used to reference it in defs expressions"
|
|
86
|
+
},
|
|
87
|
+
"include": {
|
|
88
|
+
"$ref": "https://schema.asterdoc.com/2026-10-28.json#/$defs/CondExpr"
|
|
89
|
+
},
|
|
90
|
+
"type": {
|
|
91
|
+
"type": "string",
|
|
92
|
+
"const": "registry"
|
|
93
|
+
},
|
|
94
|
+
"slug": {
|
|
95
|
+
"type": "string",
|
|
96
|
+
"pattern": "^@?[a-z0-9](?:[a-z0-9]|-[a-z0-9])*\\/[a-z0-9](?:[a-z0-9]|-[a-z0-9])*\\/[a-z0-9](?:[a-z0-9]|-[a-z0-9])*$",
|
|
97
|
+
"description": "Artifact address @org/repo/name, with no edition or version"
|
|
98
|
+
},
|
|
99
|
+
"edition": {
|
|
100
|
+
"type": "string",
|
|
101
|
+
"minLength": 1,
|
|
102
|
+
"maxLength": 64,
|
|
103
|
+
"pattern": "^(?!(?:current|latest|editions|tags|diff)$)[a-z0-9]([a-z0-9]|-[a-z0-9])*$",
|
|
104
|
+
"description": "Edition key. When omitted, the registry's current edition is used."
|
|
105
|
+
},
|
|
106
|
+
"version": {
|
|
107
|
+
"type": "string",
|
|
108
|
+
"pattern": "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$",
|
|
109
|
+
"description": "Exact version. When omitted, the latest version of the edition is used."
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
"required": [
|
|
113
|
+
"key",
|
|
114
|
+
"type",
|
|
115
|
+
"slug"
|
|
116
|
+
],
|
|
117
|
+
"additionalProperties": false
|
|
118
|
+
}
|
|
119
|
+
],
|
|
120
|
+
"description": "Bundle content item: an inline artifact, path reference, or registry reference with optional include condition",
|
|
121
|
+
"title": "BundleContentItem"
|
|
122
|
+
}
|
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://schema.asterdoc.com/2026-10-28/bundle.json",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"properties": {
|
|
6
|
+
"$schema": {
|
|
7
|
+
"type": "string",
|
|
8
|
+
"format": "uri",
|
|
9
|
+
"description": "JSON Schema URI for this artifact instance."
|
|
10
|
+
},
|
|
11
|
+
"name": {
|
|
12
|
+
"type": "string",
|
|
13
|
+
"minLength": 1,
|
|
14
|
+
"maxLength": 128,
|
|
15
|
+
"pattern": "^[A-Za-z0-9]([A-Za-z0-9]|-[A-Za-z0-9])*$",
|
|
16
|
+
"description": "Artifact identifier. Must start with a letter or digit, can contain letters, numbers, and hyphens (no leading/trailing/consecutive hyphens). Every edition of one artifact shares the same name."
|
|
17
|
+
},
|
|
18
|
+
"version": {
|
|
19
|
+
"type": "string",
|
|
20
|
+
"minLength": 1,
|
|
21
|
+
"maxLength": 200,
|
|
22
|
+
"pattern": "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$",
|
|
23
|
+
"description": "Artifact version (SemVer 2.0.0, such as 1.2.3 or 1.3.0-beta.1). It counts the publisher's own changes, never the issuer's edition; each edition has its own version line. Required for publishing to registry."
|
|
24
|
+
},
|
|
25
|
+
"title": {
|
|
26
|
+
"type": "string",
|
|
27
|
+
"minLength": 1,
|
|
28
|
+
"maxLength": 200,
|
|
29
|
+
"description": "Human-readable title. Recommended for published/shared artifacts and directory browsing."
|
|
30
|
+
},
|
|
31
|
+
"description": {
|
|
32
|
+
"type": "string",
|
|
33
|
+
"minLength": 0,
|
|
34
|
+
"maxLength": 2000,
|
|
35
|
+
"description": "Detailed description or context for the artifact."
|
|
36
|
+
},
|
|
37
|
+
"code": {
|
|
38
|
+
"type": "string",
|
|
39
|
+
"minLength": 1,
|
|
40
|
+
"maxLength": 200,
|
|
41
|
+
"description": "The form number as printed by its issuer, such as W-9 or ACORD 25, or a self-issued form's own number."
|
|
42
|
+
},
|
|
43
|
+
"issuer": {
|
|
44
|
+
"type": "string",
|
|
45
|
+
"minLength": 1,
|
|
46
|
+
"maxLength": 200,
|
|
47
|
+
"description": "The organization that issues the form, such as U.S. Internal Revenue Service."
|
|
48
|
+
},
|
|
49
|
+
"edition": {
|
|
50
|
+
"type": "object",
|
|
51
|
+
"properties": {
|
|
52
|
+
"key": {
|
|
53
|
+
"type": "string",
|
|
54
|
+
"minLength": 1,
|
|
55
|
+
"maxLength": 64,
|
|
56
|
+
"pattern": "^(?!(?:current|latest|editions|tags|diff)$)[a-z0-9]([a-z0-9]|-[a-z0-9])*$",
|
|
57
|
+
"description": "Stable edition identifier, unique among the editions of one artifact (for example 2024-03 or 3b). Lowercase letters and digits with single hyphens, and not current, latest, editions, tags or diff. It is the edition segment of a coordinate such as @org/repo/w-9/2024-03 and never changes once published."
|
|
58
|
+
},
|
|
59
|
+
"label": {
|
|
60
|
+
"type": "string",
|
|
61
|
+
"minLength": 1,
|
|
62
|
+
"maxLength": 200,
|
|
63
|
+
"description": "The issuer's edition text exactly as printed, such as \"Rev. March 2024\". For display only."
|
|
64
|
+
},
|
|
65
|
+
"date": {
|
|
66
|
+
"type": "string",
|
|
67
|
+
"pattern": "^(?:\\d{4}(?:-(?:0[1-9]|1[0-2]))?|(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8]))))$",
|
|
68
|
+
"description": "When the issuer released the edition, at the precision the issuer gives: YYYY, YYYY-MM or YYYY-MM-DD."
|
|
69
|
+
},
|
|
70
|
+
"effectiveFrom": {
|
|
71
|
+
"type": "string",
|
|
72
|
+
"format": "date",
|
|
73
|
+
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
|
|
74
|
+
"description": "The date the edition takes effect. Only when the issuer prints one."
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
"required": [
|
|
78
|
+
"key",
|
|
79
|
+
"label"
|
|
80
|
+
],
|
|
81
|
+
"additionalProperties": false,
|
|
82
|
+
"title": "ArtifactEdition",
|
|
83
|
+
"description": "The issuer's edition this artifact encodes. Omitted for artifacts that are not issued in editions."
|
|
84
|
+
},
|
|
85
|
+
"language": {
|
|
86
|
+
"type": "string",
|
|
87
|
+
"minLength": 2,
|
|
88
|
+
"maxLength": 35,
|
|
89
|
+
"pattern": "^[A-Za-z]{2,3}(-[A-Za-z0-9]{2,8})*$",
|
|
90
|
+
"description": "BCP 47-style source language tag for this artifact. Defaults to en when omitted."
|
|
91
|
+
},
|
|
92
|
+
"metadata": {
|
|
93
|
+
"description": "Custom key-value pairs for storing domain-specific or organizational metadata",
|
|
94
|
+
"$ref": "https://schema.asterdoc.com/2026-10-28.json#/$defs/Metadata"
|
|
95
|
+
},
|
|
96
|
+
"instructions": {
|
|
97
|
+
"oneOf": [
|
|
98
|
+
{
|
|
99
|
+
"type": "object",
|
|
100
|
+
"properties": {
|
|
101
|
+
"kind": {
|
|
102
|
+
"type": "string",
|
|
103
|
+
"const": "inline"
|
|
104
|
+
},
|
|
105
|
+
"text": {
|
|
106
|
+
"type": "string",
|
|
107
|
+
"minLength": 1,
|
|
108
|
+
"maxLength": 1000000,
|
|
109
|
+
"description": "Inline text content"
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
"required": [
|
|
113
|
+
"kind",
|
|
114
|
+
"text"
|
|
115
|
+
],
|
|
116
|
+
"additionalProperties": false,
|
|
117
|
+
"title": "InlineContentRef",
|
|
118
|
+
"description": "Inline content reference with embedded text"
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
"type": "object",
|
|
122
|
+
"properties": {
|
|
123
|
+
"kind": {
|
|
124
|
+
"type": "string",
|
|
125
|
+
"const": "file"
|
|
126
|
+
},
|
|
127
|
+
"path": {
|
|
128
|
+
"type": "string",
|
|
129
|
+
"minLength": 1,
|
|
130
|
+
"maxLength": 1000,
|
|
131
|
+
"description": "Path to the content file"
|
|
132
|
+
},
|
|
133
|
+
"mimeType": {
|
|
134
|
+
"type": "string",
|
|
135
|
+
"minLength": 1,
|
|
136
|
+
"maxLength": 100,
|
|
137
|
+
"description": "MIME type of the file content"
|
|
138
|
+
},
|
|
139
|
+
"title": {
|
|
140
|
+
"type": "string",
|
|
141
|
+
"minLength": 1,
|
|
142
|
+
"maxLength": 200,
|
|
143
|
+
"description": "Human-readable title"
|
|
144
|
+
},
|
|
145
|
+
"description": {
|
|
146
|
+
"type": "string",
|
|
147
|
+
"minLength": 1,
|
|
148
|
+
"maxLength": 2000,
|
|
149
|
+
"description": "Description of the content"
|
|
150
|
+
},
|
|
151
|
+
"checksum": {
|
|
152
|
+
"type": "string",
|
|
153
|
+
"pattern": "^sha256:[a-f0-9]{64}$",
|
|
154
|
+
"description": "SHA-256 checksum for integrity verification"
|
|
155
|
+
}
|
|
156
|
+
},
|
|
157
|
+
"required": [
|
|
158
|
+
"kind",
|
|
159
|
+
"path",
|
|
160
|
+
"mimeType"
|
|
161
|
+
],
|
|
162
|
+
"additionalProperties": false,
|
|
163
|
+
"title": "FileContentRef",
|
|
164
|
+
"description": "File content reference with path and metadata"
|
|
165
|
+
}
|
|
166
|
+
],
|
|
167
|
+
"title": "ContentRef",
|
|
168
|
+
"description": "Domain or compliance reference content (e.g., IRS instructions, regulatory guidance)"
|
|
169
|
+
},
|
|
170
|
+
"agentInstructions": {
|
|
171
|
+
"oneOf": [
|
|
172
|
+
{
|
|
173
|
+
"type": "object",
|
|
174
|
+
"properties": {
|
|
175
|
+
"kind": {
|
|
176
|
+
"type": "string",
|
|
177
|
+
"const": "inline"
|
|
178
|
+
},
|
|
179
|
+
"text": {
|
|
180
|
+
"type": "string",
|
|
181
|
+
"minLength": 1,
|
|
182
|
+
"maxLength": 1000000,
|
|
183
|
+
"description": "Inline text content"
|
|
184
|
+
}
|
|
185
|
+
},
|
|
186
|
+
"required": [
|
|
187
|
+
"kind",
|
|
188
|
+
"text"
|
|
189
|
+
],
|
|
190
|
+
"additionalProperties": false,
|
|
191
|
+
"title": "InlineContentRef",
|
|
192
|
+
"description": "Inline content reference with embedded text"
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
"type": "object",
|
|
196
|
+
"properties": {
|
|
197
|
+
"kind": {
|
|
198
|
+
"type": "string",
|
|
199
|
+
"const": "file"
|
|
200
|
+
},
|
|
201
|
+
"path": {
|
|
202
|
+
"type": "string",
|
|
203
|
+
"minLength": 1,
|
|
204
|
+
"maxLength": 1000,
|
|
205
|
+
"description": "Path to the content file"
|
|
206
|
+
},
|
|
207
|
+
"mimeType": {
|
|
208
|
+
"type": "string",
|
|
209
|
+
"minLength": 1,
|
|
210
|
+
"maxLength": 100,
|
|
211
|
+
"description": "MIME type of the file content"
|
|
212
|
+
},
|
|
213
|
+
"title": {
|
|
214
|
+
"type": "string",
|
|
215
|
+
"minLength": 1,
|
|
216
|
+
"maxLength": 200,
|
|
217
|
+
"description": "Human-readable title"
|
|
218
|
+
},
|
|
219
|
+
"description": {
|
|
220
|
+
"type": "string",
|
|
221
|
+
"minLength": 1,
|
|
222
|
+
"maxLength": 2000,
|
|
223
|
+
"description": "Description of the content"
|
|
224
|
+
},
|
|
225
|
+
"checksum": {
|
|
226
|
+
"type": "string",
|
|
227
|
+
"pattern": "^sha256:[a-f0-9]{64}$",
|
|
228
|
+
"description": "SHA-256 checksum for integrity verification"
|
|
229
|
+
}
|
|
230
|
+
},
|
|
231
|
+
"required": [
|
|
232
|
+
"kind",
|
|
233
|
+
"path",
|
|
234
|
+
"mimeType"
|
|
235
|
+
],
|
|
236
|
+
"additionalProperties": false,
|
|
237
|
+
"title": "FileContentRef",
|
|
238
|
+
"description": "File content reference with path and metadata"
|
|
239
|
+
}
|
|
240
|
+
],
|
|
241
|
+
"title": "ContentRef",
|
|
242
|
+
"description": "LLM/agent prompts for field ordering, grouping, tone, and presentation guidance"
|
|
243
|
+
},
|
|
244
|
+
"kind": {
|
|
245
|
+
"type": "string",
|
|
246
|
+
"const": "bundle"
|
|
247
|
+
},
|
|
248
|
+
"defs": {
|
|
249
|
+
"$ref": "https://schema.asterdoc.com/2026-10-28.json#/$defs/DefsSection"
|
|
250
|
+
},
|
|
251
|
+
"contents": {
|
|
252
|
+
"type": "array",
|
|
253
|
+
"items": {
|
|
254
|
+
"$ref": "https://schema.asterdoc.com/2026-10-28.json#/$defs/BundleContentItem"
|
|
255
|
+
},
|
|
256
|
+
"description": "Ordered bundle contents. Each item has a key and is either an inline artifact, path reference, or registry reference."
|
|
257
|
+
}
|
|
258
|
+
},
|
|
259
|
+
"required": [
|
|
260
|
+
"name",
|
|
261
|
+
"kind",
|
|
262
|
+
"contents"
|
|
263
|
+
],
|
|
264
|
+
"additionalProperties": false,
|
|
265
|
+
"description": "A bundle artifact that groups together related artifacts into a single distributable unit. Bundles can contain documents, forms, checklists, and other bundles.",
|
|
266
|
+
"title": "Bundle"
|
|
267
|
+
}
|