@imferno/schema 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +52 -0
- package/index.d.ts +26 -0
- package/index.js +34 -0
- package/package.json +40 -0
- package/schemas/asset-map.json +136 -0
- package/schemas/composition-playlist.json +2748 -0
- package/schemas/delivery-comparison.json +131 -0
- package/schemas/delivery-request.json +76 -0
- package/schemas/imf-report.json +804 -0
- package/schemas/packing-list.json +202 -0
- package/schemas/rules-config.json +51 -0
- package/schemas/source-asset.json +478 -0
- package/schemas/validation-report.json +348 -0
- package/schemas/volume-index.json +17 -0
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"title": "PackingList",
|
|
4
|
+
"description": "PKL XML — Packing List (SMPTE ST 2067-2 §9).\n\nAssets carry SHA-1 (default) or SHA-256 checksums. The algorithm is determined by the optional `<HashAlgorithm>` element on each asset.",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": [
|
|
7
|
+
"asset_list",
|
|
8
|
+
"id",
|
|
9
|
+
"issue_date"
|
|
10
|
+
],
|
|
11
|
+
"properties": {
|
|
12
|
+
"annotation_text": {
|
|
13
|
+
"type": [
|
|
14
|
+
"string",
|
|
15
|
+
"null"
|
|
16
|
+
]
|
|
17
|
+
},
|
|
18
|
+
"asset_list": {
|
|
19
|
+
"$ref": "#/definitions/PklAssetList"
|
|
20
|
+
},
|
|
21
|
+
"creator": {
|
|
22
|
+
"type": [
|
|
23
|
+
"string",
|
|
24
|
+
"null"
|
|
25
|
+
]
|
|
26
|
+
},
|
|
27
|
+
"group_id": {
|
|
28
|
+
"description": "Optional group identifier for partial deliveries (SMPTE ST 2067-2 §9).",
|
|
29
|
+
"anyOf": [
|
|
30
|
+
{
|
|
31
|
+
"$ref": "#/definitions/ImfUuid"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"type": "null"
|
|
35
|
+
}
|
|
36
|
+
]
|
|
37
|
+
},
|
|
38
|
+
"id": {
|
|
39
|
+
"$ref": "#/definitions/ImfUuid"
|
|
40
|
+
},
|
|
41
|
+
"issue_date": {
|
|
42
|
+
"description": "ISO 8601 issue date.",
|
|
43
|
+
"type": "string"
|
|
44
|
+
},
|
|
45
|
+
"issuer": {
|
|
46
|
+
"type": [
|
|
47
|
+
"string",
|
|
48
|
+
"null"
|
|
49
|
+
]
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
"definitions": {
|
|
53
|
+
"AssetHash": {
|
|
54
|
+
"description": "A decoded asset hash from a Packing List, per SMPTE ST 2067-2 §9.\n\nPKL files carry base64-encoded SHA-1 digests for each tracked asset.",
|
|
55
|
+
"type": "object",
|
|
56
|
+
"required": [
|
|
57
|
+
"algorithm",
|
|
58
|
+
"bytes"
|
|
59
|
+
],
|
|
60
|
+
"properties": {
|
|
61
|
+
"algorithm": {
|
|
62
|
+
"$ref": "#/definitions/HashAlgorithm"
|
|
63
|
+
},
|
|
64
|
+
"bytes": {
|
|
65
|
+
"type": "array",
|
|
66
|
+
"items": {
|
|
67
|
+
"type": "integer",
|
|
68
|
+
"format": "uint8",
|
|
69
|
+
"minimum": 0.0
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
"HashAlgorithm": {
|
|
75
|
+
"description": "The hash algorithm used for a PKL asset digest.\n\nPer SMPTE ST 2067-2:2020 §9, SHA-1 is the default algorithm. SHA-256 is supported via the `<HashAlgorithm>` element using XML Digital Signature algorithm URIs.",
|
|
76
|
+
"oneOf": [
|
|
77
|
+
{
|
|
78
|
+
"description": "SHA-1 (default per ST 2067-2 §9). URI: `http://www.w3.org/2000/09/xmldsig#sha1`",
|
|
79
|
+
"type": "string",
|
|
80
|
+
"enum": [
|
|
81
|
+
"Sha1"
|
|
82
|
+
]
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"description": "SHA-256. URI: `http://www.w3.org/2001/04/xmlenc#sha256`",
|
|
86
|
+
"type": "string",
|
|
87
|
+
"enum": [
|
|
88
|
+
"Sha256"
|
|
89
|
+
]
|
|
90
|
+
}
|
|
91
|
+
]
|
|
92
|
+
},
|
|
93
|
+
"ImfUuid": {
|
|
94
|
+
"description": "A SMPTE IMF UUID, serialised as a bare UUID string (e.g. \"0eb3d1b9-b77b-4d3f-bbe5-7c69b15dca85\")",
|
|
95
|
+
"type": "string",
|
|
96
|
+
"format": "uuid"
|
|
97
|
+
},
|
|
98
|
+
"MimeType": {
|
|
99
|
+
"description": "MIME type as used in `<Type>` elements in PKL assets (SMPTE ST 2067-2 §9).",
|
|
100
|
+
"oneOf": [
|
|
101
|
+
{
|
|
102
|
+
"description": "`text/xml` — CPL and other XML documents",
|
|
103
|
+
"type": "string",
|
|
104
|
+
"enum": [
|
|
105
|
+
"TextXml"
|
|
106
|
+
]
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
"description": "`application/xml` — alternative XML MIME type",
|
|
110
|
+
"type": "string",
|
|
111
|
+
"enum": [
|
|
112
|
+
"ApplicationXml"
|
|
113
|
+
]
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"description": "`application/mxf` — MXF essence files",
|
|
117
|
+
"type": "string",
|
|
118
|
+
"enum": [
|
|
119
|
+
"ApplicationMxf"
|
|
120
|
+
]
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"description": "Unrecognised; the original string is preserved.",
|
|
124
|
+
"type": "object",
|
|
125
|
+
"required": [
|
|
126
|
+
"Other"
|
|
127
|
+
],
|
|
128
|
+
"properties": {
|
|
129
|
+
"Other": {
|
|
130
|
+
"type": "string"
|
|
131
|
+
}
|
|
132
|
+
},
|
|
133
|
+
"additionalProperties": false
|
|
134
|
+
}
|
|
135
|
+
]
|
|
136
|
+
},
|
|
137
|
+
"PklAsset": {
|
|
138
|
+
"description": "A single asset entry in a PKL.",
|
|
139
|
+
"type": "object",
|
|
140
|
+
"required": [
|
|
141
|
+
"hash",
|
|
142
|
+
"id",
|
|
143
|
+
"mime_type",
|
|
144
|
+
"size"
|
|
145
|
+
],
|
|
146
|
+
"properties": {
|
|
147
|
+
"annotation_text": {
|
|
148
|
+
"type": [
|
|
149
|
+
"string",
|
|
150
|
+
"null"
|
|
151
|
+
]
|
|
152
|
+
},
|
|
153
|
+
"hash": {
|
|
154
|
+
"description": "SHA-1 digest decoded from the base64 `<Hash>` element (SMPTE ST 2067-2 §9.3).",
|
|
155
|
+
"allOf": [
|
|
156
|
+
{
|
|
157
|
+
"$ref": "#/definitions/AssetHash"
|
|
158
|
+
}
|
|
159
|
+
]
|
|
160
|
+
},
|
|
161
|
+
"id": {
|
|
162
|
+
"$ref": "#/definitions/ImfUuid"
|
|
163
|
+
},
|
|
164
|
+
"mime_type": {
|
|
165
|
+
"description": "MIME type of the asset file (SMPTE ST 2067-2 §9.4).",
|
|
166
|
+
"allOf": [
|
|
167
|
+
{
|
|
168
|
+
"$ref": "#/definitions/MimeType"
|
|
169
|
+
}
|
|
170
|
+
]
|
|
171
|
+
},
|
|
172
|
+
"original_file_name": {
|
|
173
|
+
"type": [
|
|
174
|
+
"string",
|
|
175
|
+
"null"
|
|
176
|
+
]
|
|
177
|
+
},
|
|
178
|
+
"size": {
|
|
179
|
+
"description": "File size in bytes.",
|
|
180
|
+
"type": "integer",
|
|
181
|
+
"format": "uint64",
|
|
182
|
+
"minimum": 0.0
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
},
|
|
186
|
+
"PklAssetList": {
|
|
187
|
+
"description": "The `<AssetList>` element in a PKL.",
|
|
188
|
+
"type": "object",
|
|
189
|
+
"required": [
|
|
190
|
+
"assets"
|
|
191
|
+
],
|
|
192
|
+
"properties": {
|
|
193
|
+
"assets": {
|
|
194
|
+
"type": "array",
|
|
195
|
+
"items": {
|
|
196
|
+
"$ref": "#/definitions/PklAsset"
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"title": "RulesConfig",
|
|
4
|
+
"description": "ESLint-style per-rule severity overrides.\n\nKeys are either: - A rule suffix — `\"SegmentDuration\"` — matched against the part of the issue code after the last `/`. - A full normalised code — `\"ST2067-3:2020:7.2.2/SegmentDuration\"`.\n\nValues are the desired [`RuleSeverity`], or [`RuleSeverity::Off`] to suppress the rule entirely.\n\nAn empty map (the default) is a no-op.",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": {
|
|
7
|
+
"$ref": "#/definitions/RuleSeverity"
|
|
8
|
+
},
|
|
9
|
+
"definitions": {
|
|
10
|
+
"RuleSeverity": {
|
|
11
|
+
"description": "Per-rule severity override.\n\nMirrors ESLint's `\"off\"` / `\"warn\"` / `\"error\"` vocabulary, extended with the two IMF severity levels.",
|
|
12
|
+
"oneOf": [
|
|
13
|
+
{
|
|
14
|
+
"description": "Suppress this rule entirely — matching issues are removed from output.",
|
|
15
|
+
"type": "string",
|
|
16
|
+
"enum": [
|
|
17
|
+
"off"
|
|
18
|
+
]
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"description": "Remap to `Info`.",
|
|
22
|
+
"type": "string",
|
|
23
|
+
"enum": [
|
|
24
|
+
"info"
|
|
25
|
+
]
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"description": "Remap to `Warning`.",
|
|
29
|
+
"type": "string",
|
|
30
|
+
"enum": [
|
|
31
|
+
"warn"
|
|
32
|
+
]
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"description": "Remap to `Error`.",
|
|
36
|
+
"type": "string",
|
|
37
|
+
"enum": [
|
|
38
|
+
"error"
|
|
39
|
+
]
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"description": "Remap to `Critical`.",
|
|
43
|
+
"type": "string",
|
|
44
|
+
"enum": [
|
|
45
|
+
"critical"
|
|
46
|
+
]
|
|
47
|
+
}
|
|
48
|
+
]
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|