@imferno/node 2.0.1-beta.9de606c

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 ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 JP Wesselink
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,166 @@
1
+ # @imferno/node
2
+
3
+ Native Node.js bindings for the [imferno](https://github.com/jpwesselink/imferno) SMPTE ST 2067 IMF validator, powered by [napi-rs](https://napi.rs).
4
+
5
+ Unlike [`@imferno/wasm`](https://www.npmjs.com/package/@imferno/wasm), this package has full filesystem access — validate packages by path and check MXF headers directly from disk.
6
+
7
+ ## Install
8
+
9
+ ```bash
10
+ npm install @imferno/node
11
+ ```
12
+
13
+ Prebuilt binaries are provided for:
14
+
15
+ | Platform | Architecture |
16
+ |----------|-------------|
17
+ | Linux | x64, arm64 |
18
+ | macOS | x64, arm64 |
19
+ | Windows | x64, arm64 |
20
+
21
+ ## Usage
22
+
23
+ ### Validate a package on disk
24
+
25
+ ```js
26
+ import { buildReportFromPath } from "@imferno/node";
27
+
28
+ const report = buildReportFromPath("./my-imp");
29
+
30
+ console.log("Compliant:", report.validation.isCompliant);
31
+ console.log("Errors:", report.validation.errors.length);
32
+ console.log("Warnings:", report.validation.warnings.length);
33
+ console.log("CPLs:", report.package.cplCount);
34
+ ```
35
+
36
+ ### Validate from a URI (filesystem or S3)
37
+
38
+ ```js
39
+ import { validateUri, buildReportFromUri } from "@imferno/node";
40
+
41
+ // Local FS path or file:// URI
42
+ const result = validateUri("./my-imp");
43
+ const result2 = validateUri("file:///abs/path/to/my-imp");
44
+
45
+ // S3 (requires the binary to be built with the aws-s3 feature; uses the
46
+ // default AWS credential chain — env vars, profile, or IMDS)
47
+ const result3 = validateUri("s3://my-bucket/path/to/imp/");
48
+
49
+ // Same options object as validatePath
50
+ const report = buildReportFromUri("s3://my-bucket/path/to/imp/", {
51
+ coreSpec: "v2020",
52
+ });
53
+ ```
54
+
55
+ ### Validate with options
56
+
57
+ ```js
58
+ import { buildReportFromPath } from "@imferno/node";
59
+
60
+ const report = buildReportFromPath("./my-imp", {
61
+ coreSpec: "v2020",
62
+ app2eSpec: "v2023",
63
+ skipDiskChecks: true,
64
+ rules: {
65
+ "ST2067-21:2023:7.1/AppIdMismatch": "error",
66
+ "IMFERNO:Package/UnreferencedAsset": "off",
67
+ },
68
+ });
69
+ ```
70
+
71
+ ### Validate from in-memory strings
72
+
73
+ ```js
74
+ import { buildReport } from "@imferno/node";
75
+
76
+ const report = buildReport({
77
+ "ASSETMAP.xml": assetmapXml,
78
+ "PKL_abc.xml": pklXml,
79
+ "CPL_def.xml": cplXml,
80
+ });
81
+ ```
82
+
83
+ ### Pretty-print a report
84
+
85
+ ```js
86
+ import { buildReportFromPath, formatReport } from "@imferno/node";
87
+
88
+ const report = buildReportFromPath("./my-imp");
89
+ console.log(formatReport(report));
90
+ ```
91
+
92
+ ### Get the library version
93
+
94
+ ```js
95
+ import { getVersion } from "@imferno/node";
96
+
97
+ console.log(getVersion()); // e.g. "2.0.0"
98
+ ```
99
+
100
+ ## API
101
+
102
+ | Function | Description |
103
+ |----------|-------------|
104
+ | `buildReport(files, options?)` | Validate from in-memory XML strings |
105
+ | `buildReportFromPath(path, options?)` | Validate an IMF package directory on disk |
106
+ | `formatReport(report)` | Pretty-print an `ImfReport` as a human-readable string |
107
+ | `getVersion()` | Get the library version |
108
+
109
+ ### Options
110
+
111
+ | Option | Type | Description |
112
+ |--------|------|-------------|
113
+ | `coreSpec` | `"auto" \| "v2013" \| "v2016" \| "v2020"` | Core constraints spec version |
114
+ | `app2eSpec` | `"auto" \| "none" \| "v2020" \| "v2021" \| "v2023"` | Application spec version |
115
+ | `skipDiskChecks` | `boolean` | Skip file manifest and MXF checks (`buildReportFromPath` only) |
116
+ | `rules` | `Record<string, "error" \| "warn" \| "info" \| "off">` | ESLint-style per-rule severity overrides |
117
+
118
+ > **Note:** Hash verification (`verifyHashes`) is not currently exposed via NAPI.
119
+
120
+ ### ImfReport shape
121
+
122
+ The returned object has this top-level structure (all keys are camelCase):
123
+
124
+ ```json
125
+ {
126
+ "package": {
127
+ "assetMapId": "...",
128
+ "volumeIndex": 1,
129
+ "assetCount": 12,
130
+ "cplCount": 1,
131
+ "pklCount": 1,
132
+ "issueDate": "2024-01-15T12:00:00Z",
133
+ "issuer": "...",
134
+ "creator": "...",
135
+ "scmCount": 0,
136
+ "sidecarCount": 0,
137
+ "unreferencedAssets": []
138
+ },
139
+ "cpls": [
140
+ {
141
+ "id": "urn:uuid:...",
142
+ "title": "My Composition",
143
+ "applicationProfile": "App2E_2021",
144
+ "editRate": "24000/1001",
145
+ "segmentCount": 1,
146
+ "isSupplemental": false,
147
+ "sequences": [],
148
+ "markers": []
149
+ }
150
+ ],
151
+ "validation": {
152
+ "isCompliant": true,
153
+ "isPlayable": true,
154
+ "profile": "SMPTE",
155
+ "critical": [],
156
+ "errors": [],
157
+ "warnings": [],
158
+ "info": [],
159
+ "timestamp": "2024-01-15T12:00:00Z"
160
+ }
161
+ }
162
+ ```
163
+
164
+ ## License
165
+
166
+ MIT
package/codes.d.ts ADDED
@@ -0,0 +1,347 @@
1
+ // Auto-generated by `cargo xtask generate-codes-ts` — do not edit.
2
+ export declare const codes: {
3
+ readonly ST429_9_2014: {
4
+ readonly VolindexMissing: "ST429-9:2014:7/VolindexMissing";
5
+ readonly MalformedXml: "ST429-9:2014:7/MalformedXml";
6
+ };
7
+ readonly ST377_1_2011: {
8
+ readonly NotMxf: "ST377-1:2011:5/NotMxf";
9
+ readonly ParseError: "ST377-1:2011:5/ParseError";
10
+ readonly NoEssenceContainers: "ST377-1:2011:11/NoEssenceContainers";
11
+ readonly OP1a: "ST377-1:2011:7/OP1a";
12
+ };
13
+ readonly ST2067_2_2020: {
14
+ readonly AssetMap: "ST2067-2:2020:7/AssetMap";
15
+ readonly AssetMapMalformedXml: "ST2067-2:2020:7/MalformedXml";
16
+ readonly PklMalformedXml: "ST2067-2:2020:9/MalformedXml";
17
+ readonly NoCpls: "ST2067-2:2020:7/NoCpls";
18
+ readonly SizeMismatch: "ST2067-2:2020:8.3/SizeMismatch";
19
+ readonly FileNotFound: "ST2067-2:2020:8.3/FileNotFound";
20
+ readonly ChecksumMismatch: "ST2067-2:2020:8.3/ChecksumMismatch";
21
+ readonly UnresolvedUuid: "ST2067-2:2020:7/UnresolvedUuid";
22
+ readonly DuplicateUuid: "ST2067-2:2020:7/DuplicateUuid";
23
+ readonly IoError: "IMF:General/IoError";
24
+ readonly EssenceDescriptorList: "ST2067-2:2020:6.4.2/EssenceDescriptorList";
25
+ };
26
+ readonly ST2067_2_2013_Core: {
27
+ readonly ResourceListEmpty: "ST2067-2:2013:XSD/ResourceList-Empty";
28
+ readonly ContentTitle: "ST2067-2:2013:XSD/ContentTitle";
29
+ readonly TotalRunningTimeFormat: "ST2067-2:2013:XSD/TotalRunningTime-Format";
30
+ readonly SegmentList: "ST2067-2:2013:XSD/SegmentList";
31
+ readonly Segment: "ST2067-2:2013:XSD/Segment";
32
+ readonly EditRate: "ST2067-2:2013:XSD-88/EditRate";
33
+ readonly IssueDate: "ST2067-2:2013:XSD-66/IssueDate";
34
+ readonly IssueDateFormat: "ST2067-2:2013:XSD-66/IssueDate-Format";
35
+ readonly CompositionTimecodeDropFrame: "ST2067-2:2013:XSD-121-127/CompositionTimecode-DropFrame";
36
+ readonly CompositionTimecodeRate: "ST2067-2:2013:XSD-121-127/CompositionTimecode-Rate";
37
+ readonly CompositionTimecodeStartAddress: "ST2067-2:2013:XSD-121-127/CompositionTimecode-StartAddress";
38
+ readonly CompositionTimecodeRateZero: "ST2067-2:2013:XSD-121-127/CompositionTimecode-Rate-Zero";
39
+ readonly CompositionTimecodeStartAddressFormat: "ST2067-2:2013:XSD-121-127/CompositionTimecode-StartAddress-Format";
40
+ readonly CompositionTimecodeRateMismatch: "ST2067-2:2013:XSD-121-127/CompositionTimecode-RateMismatch";
41
+ readonly LocaleListNonEmpty: "ST2067-2:2013:XSD/LocaleList-NonEmpty";
42
+ readonly UniqueSegmentId: "ST2067-2:2013:6.1/UniqueSegmentId";
43
+ readonly UniqueEssenceDescriptorId: "ST2067-2:2013:6.1/UniqueEssenceDescriptorId";
44
+ readonly UniqueResourceId: "ST2067-2:2013:6.1/UniqueResourceId";
45
+ readonly IntrinsicDuration: "ST2067-2:2013:6.10/IntrinsicDuration";
46
+ readonly EntryPoint: "ST2067-2:2013:6.10/EntryPoint";
47
+ readonly SourceDuration: "ST2067-2:2013:6.10/SourceDuration";
48
+ readonly ResourceDuration: "ST2067-2:2013:6.10/ResourceDuration";
49
+ readonly RepeatCount: "ST2067-2:2013:6.10/RepeatCount";
50
+ readonly TrackFileId: "ST2067-2:2013:6.10/TrackFileId";
51
+ readonly VirtualTrackContinuity: "ST2067-2:2013:6.9/VirtualTrackContinuity";
52
+ readonly VirtualTrackEditRate: "ST2067-2:2013:6.9.3/VirtualTrackEditRate";
53
+ readonly TimedTextSampleRate: "ST2067-2:2013:10/TimedText-SampleRate";
54
+ readonly TimedTextEmptyLanguageTag: "ST2067-2:2013:10/TimedText-EmptyLanguageTag";
55
+ readonly TimedTextMalformedLanguageTag: "ST2067-2:2013:10/TimedText-MalformedLanguageTag";
56
+ readonly AudioSampleRate: "ST2067-2:2013:ST377-4/AudioSampleRate";
57
+ readonly ChannelCount: "ST2067-2:2013:ST377-4/ChannelCount";
58
+ readonly MCASubDescriptors: "ST2067-2:2013:ST377-4/MCASubDescriptors";
59
+ readonly SoundfieldGroup: "ST2067-2:2013:ST377-4/SoundfieldGroup";
60
+ readonly MCATagSymbol: "ST2067-2:2013:ST377-4/MCATagSymbol";
61
+ readonly SoundfieldChannelCount: "ST2067-2:2013:ST377-4/SoundfieldChannelCount";
62
+ readonly DigitalSignature: "ST2067-2:2013:8/DigitalSignature";
63
+ readonly DanglingEssenceDescriptor: "ST2067-2:2013:6.4.2/DanglingEssenceDescriptor";
64
+ readonly EssenceDescriptorList: "ST2067-2:2013:6.4.2/EssenceDescriptorList";
65
+ };
66
+ readonly ST2067_2_2016_Core: {
67
+ readonly ResourceListEmpty: "ST2067-2:2016:XSD/ResourceList-Empty";
68
+ readonly ContentTitle: "ST2067-2:2016:XSD/ContentTitle";
69
+ readonly TotalRunningTimeFormat: "ST2067-2:2016:XSD/TotalRunningTime-Format";
70
+ readonly SegmentList: "ST2067-2:2016:XSD/SegmentList";
71
+ readonly Segment: "ST2067-2:2016:XSD/Segment";
72
+ readonly EditRate: "ST2067-2:2016:XSD-88/EditRate";
73
+ readonly IssueDate: "ST2067-2:2016:XSD-66/IssueDate";
74
+ readonly IssueDateFormat: "ST2067-2:2016:XSD-66/IssueDate-Format";
75
+ readonly CompositionTimecodeDropFrame: "ST2067-2:2016:XSD-121-127/CompositionTimecode-DropFrame";
76
+ readonly CompositionTimecodeRate: "ST2067-2:2016:XSD-121-127/CompositionTimecode-Rate";
77
+ readonly CompositionTimecodeStartAddress: "ST2067-2:2016:XSD-121-127/CompositionTimecode-StartAddress";
78
+ readonly CompositionTimecodeRateZero: "ST2067-2:2016:XSD-121-127/CompositionTimecode-Rate-Zero";
79
+ readonly CompositionTimecodeStartAddressFormat: "ST2067-2:2016:XSD-121-127/CompositionTimecode-StartAddress-Format";
80
+ readonly CompositionTimecodeRateMismatch: "ST2067-2:2016:XSD-121-127/CompositionTimecode-RateMismatch";
81
+ readonly LocaleListNonEmpty: "ST2067-2:2016:XSD/LocaleList-NonEmpty";
82
+ readonly UniqueSegmentId: "ST2067-2:2016:6.1/UniqueSegmentId";
83
+ readonly UniqueEssenceDescriptorId: "ST2067-2:2016:6.1/UniqueEssenceDescriptorId";
84
+ readonly UniqueResourceId: "ST2067-2:2016:6.1/UniqueResourceId";
85
+ readonly IntrinsicDuration: "ST2067-2:2016:6.10/IntrinsicDuration";
86
+ readonly EntryPoint: "ST2067-2:2016:6.10/EntryPoint";
87
+ readonly SourceDuration: "ST2067-2:2016:6.10/SourceDuration";
88
+ readonly ResourceDuration: "ST2067-2:2016:6.10/ResourceDuration";
89
+ readonly RepeatCount: "ST2067-2:2016:6.10/RepeatCount";
90
+ readonly TrackFileId: "ST2067-2:2016:6.10/TrackFileId";
91
+ readonly VirtualTrackContinuity: "ST2067-2:2016:6.9/VirtualTrackContinuity";
92
+ readonly VirtualTrackEditRate: "ST2067-2:2016:6.9.3/VirtualTrackEditRate";
93
+ readonly TimedTextSampleRate: "ST2067-2:2016:10/TimedText-SampleRate";
94
+ readonly TimedTextEmptyLanguageTag: "ST2067-2:2016:10/TimedText-EmptyLanguageTag";
95
+ readonly TimedTextMalformedLanguageTag: "ST2067-2:2016:10/TimedText-MalformedLanguageTag";
96
+ readonly AudioSampleRate: "ST2067-2:2016:ST377-4/AudioSampleRate";
97
+ readonly ChannelCount: "ST2067-2:2016:ST377-4/ChannelCount";
98
+ readonly MCASubDescriptors: "ST2067-2:2016:ST377-4/MCASubDescriptors";
99
+ readonly SoundfieldGroup: "ST2067-2:2016:ST377-4/SoundfieldGroup";
100
+ readonly MCATagSymbol: "ST2067-2:2016:ST377-4/MCATagSymbol";
101
+ readonly SoundfieldChannelCount: "ST2067-2:2016:ST377-4/SoundfieldChannelCount";
102
+ readonly DigitalSignature: "ST2067-2:2016:8/DigitalSignature";
103
+ readonly DanglingEssenceDescriptor: "ST2067-2:2016:6.4.2/DanglingEssenceDescriptor";
104
+ readonly EssenceDescriptorList: "ST2067-2:2016:6.4.2/EssenceDescriptorList";
105
+ };
106
+ readonly ST2067_2_2020_Core: {
107
+ readonly ResourceListEmpty: "ST2067-2:2020:XSD/ResourceList-Empty";
108
+ readonly ContentTitle: "ST2067-2:2020:XSD/ContentTitle";
109
+ readonly TotalRunningTimeFormat: "ST2067-2:2020:XSD/TotalRunningTime-Format";
110
+ readonly SegmentList: "ST2067-2:2020:XSD/SegmentList";
111
+ readonly Segment: "ST2067-2:2020:XSD/Segment";
112
+ readonly EditRate: "ST2067-2:2020:XSD-88/EditRate";
113
+ readonly IssueDate: "ST2067-2:2020:XSD-66/IssueDate";
114
+ readonly IssueDateFormat: "ST2067-2:2020:XSD-66/IssueDate-Format";
115
+ readonly CompositionTimecodeDropFrame: "ST2067-2:2020:XSD-121-127/CompositionTimecode-DropFrame";
116
+ readonly CompositionTimecodeRate: "ST2067-2:2020:XSD-121-127/CompositionTimecode-Rate";
117
+ readonly CompositionTimecodeStartAddress: "ST2067-2:2020:XSD-121-127/CompositionTimecode-StartAddress";
118
+ readonly CompositionTimecodeRateZero: "ST2067-2:2020:XSD-121-127/CompositionTimecode-Rate-Zero";
119
+ readonly CompositionTimecodeStartAddressFormat: "ST2067-2:2020:XSD-121-127/CompositionTimecode-StartAddress-Format";
120
+ readonly CompositionTimecodeRateMismatch: "ST2067-2:2020:XSD-121-127/CompositionTimecode-RateMismatch";
121
+ readonly LocaleListNonEmpty: "ST2067-2:2020:XSD/LocaleList-NonEmpty";
122
+ readonly UniqueSegmentId: "ST2067-2:2020:6.1/UniqueSegmentId";
123
+ readonly UniqueEssenceDescriptorId: "ST2067-2:2020:6.1/UniqueEssenceDescriptorId";
124
+ readonly UniqueResourceId: "ST2067-2:2020:6.1/UniqueResourceId";
125
+ readonly IntrinsicDuration: "ST2067-2:2020:6.10/IntrinsicDuration";
126
+ readonly EntryPoint: "ST2067-2:2020:6.10/EntryPoint";
127
+ readonly SourceDuration: "ST2067-2:2020:6.10/SourceDuration";
128
+ readonly ResourceDuration: "ST2067-2:2020:6.10/ResourceDuration";
129
+ readonly RepeatCount: "ST2067-2:2020:6.10/RepeatCount";
130
+ readonly TrackFileId: "ST2067-2:2020:6.10/TrackFileId";
131
+ readonly VirtualTrackContinuity: "ST2067-2:2020:6.9/VirtualTrackContinuity";
132
+ readonly VirtualTrackEditRate: "ST2067-2:2020:6.9.3/VirtualTrackEditRate";
133
+ readonly TimedTextSampleRate: "ST2067-2:2020:10/TimedText-SampleRate";
134
+ readonly TimedTextEmptyLanguageTag: "ST2067-2:2020:10/TimedText-EmptyLanguageTag";
135
+ readonly TimedTextMalformedLanguageTag: "ST2067-2:2020:10/TimedText-MalformedLanguageTag";
136
+ readonly AudioSampleRate: "ST2067-2:2020:ST377-4/AudioSampleRate";
137
+ readonly ChannelCount: "ST2067-2:2020:ST377-4/ChannelCount";
138
+ readonly MCASubDescriptors: "ST2067-2:2020:ST377-4/MCASubDescriptors";
139
+ readonly SoundfieldGroup: "ST2067-2:2020:ST377-4/SoundfieldGroup";
140
+ readonly MCATagSymbol: "ST2067-2:2020:ST377-4/MCATagSymbol";
141
+ readonly SoundfieldChannelCount: "ST2067-2:2020:ST377-4/SoundfieldChannelCount";
142
+ readonly DigitalSignature: "ST2067-2:2020:8/DigitalSignature";
143
+ readonly DanglingEssenceDescriptor: "ST2067-2:2020:6.4.2/DanglingEssenceDescriptor";
144
+ readonly EssenceDescriptorList: "ST2067-2:2020:6.4.2/EssenceDescriptorList";
145
+ };
146
+ readonly ST2067_3_2013: {
147
+ readonly ContentKindUnknown: "ST2067-3:2013:5.5.1.2/ContentKindUnknown";
148
+ readonly SourceEncodingNoEssenceDescriptorList: "ST2067-3:2013:6.4.2/SourceEncodingNoEssenceDescriptorList";
149
+ readonly SourceEncodingUnresolved: "ST2067-3:2013:6.4.2/SourceEncodingUnresolved";
150
+ readonly EssenceDescriptorListEmpty: "ST2067-3:2013:6.4.2/EssenceDescriptorListEmpty";
151
+ readonly ContentVersionListEmpty: "ST2067-3:2013:6.11/ContentVersionListEmpty";
152
+ readonly ContentVersionIdInvalid: "ST2067-3:2013:6.11/ContentVersionIdInvalid";
153
+ readonly ContentVersionLabelTextMissing: "ST2067-3:2013:6.11/ContentVersionLabelTextMissing";
154
+ readonly LocaleLanguageTagInvalid: "ST2067-3:2013:6.12/LocaleLanguageTagInvalid";
155
+ readonly TrackIdNotUnique: "ST2067-3:2013:7.3/TrackIdNotUnique";
156
+ readonly MarkerOffsetOutOfRange: "ST2067-3:2013:7.4/MarkerOffsetOutOfRange";
157
+ readonly MarkerLabelUnknown: "ST2067-3:2013:7.4/MarkerLabelUnknown";
158
+ readonly SegmentDuration: "ST2067-3:2013:7.2.2/SegmentDuration";
159
+ readonly ContentVersionIdDuplicate: "ST2067-3:2013:6.1.9/ContentVersionIdDuplicate";
160
+ readonly SegmentDurationIntegerEditUnits: "ST2067-3:2013:7.3/SegmentDurationIntegerEditUnits";
161
+ };
162
+ readonly ST2067_3_2016: {
163
+ readonly ContentKindUnknown: "ST2067-3:2016:5.5.1.2/ContentKindUnknown";
164
+ readonly SourceEncodingNoEssenceDescriptorList: "ST2067-3:2016:6.4.2/SourceEncodingNoEssenceDescriptorList";
165
+ readonly SourceEncodingUnresolved: "ST2067-3:2016:6.4.2/SourceEncodingUnresolved";
166
+ readonly EssenceDescriptorListEmpty: "ST2067-3:2016:6.4.2/EssenceDescriptorListEmpty";
167
+ readonly ContentVersionListEmpty: "ST2067-3:2016:6.11/ContentVersionListEmpty";
168
+ readonly ContentVersionIdInvalid: "ST2067-3:2016:6.11/ContentVersionIdInvalid";
169
+ readonly ContentVersionLabelTextMissing: "ST2067-3:2016:6.11/ContentVersionLabelTextMissing";
170
+ readonly LocaleLanguageTagInvalid: "ST2067-3:2016:6.12/LocaleLanguageTagInvalid";
171
+ readonly TrackIdNotUnique: "ST2067-3:2016:7.3/TrackIdNotUnique";
172
+ readonly MarkerOffsetOutOfRange: "ST2067-3:2016:7.4/MarkerOffsetOutOfRange";
173
+ readonly MarkerLabelUnknown: "ST2067-3:2016:7.4/MarkerLabelUnknown";
174
+ readonly SegmentDuration: "ST2067-3:2016:7.2.2/SegmentDuration";
175
+ readonly ContentVersionIdDuplicate: "ST2067-3:2016:6.1.9/ContentVersionIdDuplicate";
176
+ readonly SegmentDurationIntegerEditUnits: "ST2067-3:2016:7.3/SegmentDurationIntegerEditUnits";
177
+ };
178
+ readonly ST2067_3_2020: {
179
+ readonly ContentKindUnknown: "ST2067-3:2020:5.5.1.2/ContentKindUnknown";
180
+ readonly SourceEncodingNoEssenceDescriptorList: "ST2067-3:2020:6.4.2/SourceEncodingNoEssenceDescriptorList";
181
+ readonly SourceEncodingUnresolved: "ST2067-3:2020:6.4.2/SourceEncodingUnresolved";
182
+ readonly EssenceDescriptorListEmpty: "ST2067-3:2020:6.4.2/EssenceDescriptorListEmpty";
183
+ readonly ContentVersionListEmpty: "ST2067-3:2020:6.11/ContentVersionListEmpty";
184
+ readonly ContentVersionIdInvalid: "ST2067-3:2020:6.11/ContentVersionIdInvalid";
185
+ readonly ContentVersionLabelTextMissing: "ST2067-3:2020:6.11/ContentVersionLabelTextMissing";
186
+ readonly LocaleLanguageTagInvalid: "ST2067-3:2020:6.12/LocaleLanguageTagInvalid";
187
+ readonly TrackIdNotUnique: "ST2067-3:2020:7.3/TrackIdNotUnique";
188
+ readonly MarkerOffsetOutOfRange: "ST2067-3:2020:7.4/MarkerOffsetOutOfRange";
189
+ readonly MarkerLabelUnknown: "ST2067-3:2020:7.4/MarkerLabelUnknown";
190
+ readonly SegmentDuration: "ST2067-3:2020:7.2.2/SegmentDuration";
191
+ readonly ContentVersionIdDuplicate: "ST2067-3:2020:6.1.9/ContentVersionIdDuplicate";
192
+ readonly SegmentDurationIntegerEditUnits: "ST2067-3:2020:7.3/SegmentDurationIntegerEditUnits";
193
+ };
194
+ readonly ST2067_9_2018: {
195
+ readonly MalformedXml: "ST2067-9:2018:6.1/MalformedXml";
196
+ readonly SidecarAssetReferencedByVirtualTrack: "ST2067-9:2018:5/SidecarAssetReferencedByVirtualTrack";
197
+ readonly DuplicateAssetId: "ST2067-9:2018:7.2.3/DuplicateAssetId";
198
+ readonly SignerWithoutSignature: "ST2067-9:2018:7.2.4/SignerWithoutSignature";
199
+ readonly SignatureWithoutSigner: "ST2067-9:2018:7.2.5/SignatureWithoutSigner";
200
+ readonly SidecarAssetNotFound: "ST2067-9:2018:7.3.1/SidecarAssetNotFound";
201
+ readonly CplNotFound: "ST2067-9:2018:7.3.1.1/CplNotFound";
202
+ readonly DuplicateCplId: "ST2067-9:2018:7.3.1.1/DuplicateCplId";
203
+ };
204
+ readonly ST2067_21_2020: {
205
+ readonly AppIdMismatch: "ST2067-21:2020:7.1/AppIdMismatch";
206
+ };
207
+ readonly ST2067_21_2023: {
208
+ readonly FrameRate: "ST2067-21:2023:5.2/FrameRate";
209
+ readonly Resolution: "ST2067-21:2023:5.2/Resolution";
210
+ readonly EmptyLanguageTag: "ST2067-21:2023:5.3/EmptyLanguageTag";
211
+ readonly MalformedLanguageTag: "ST2067-21:2023:5.3/MalformedLanguageTag";
212
+ readonly RegionCode: "ST2067-21:2023:5.3/RegionCode";
213
+ readonly ColorSystem: "ST2067-21:2023:6.2/ColorSystem";
214
+ readonly RequiredStoredWidth: "ST2067-21:2023:6.2/Required-StoredWidth";
215
+ readonly RequiredStoredHeight: "ST2067-21:2023:6.2/Required-StoredHeight";
216
+ readonly RequiredSampleRate: "ST2067-21:2023:6.2/Required-SampleRate";
217
+ readonly RequiredFrameLayout: "ST2067-21:2023:6.2/Required-FrameLayout";
218
+ readonly RequiredColorPrimaries: "ST2067-21:2023:6.2/Required-ColorPrimaries";
219
+ readonly RequiredTransferCharacteristic: "ST2067-21:2023:6.2/Required-TransferCharacteristic";
220
+ readonly RequiredPictureCompression: "ST2067-21:2023:6.2/Required-PictureCompression";
221
+ readonly RequiredComponentDepth: "ST2067-21:2023:6.2/Required-ComponentDepth";
222
+ readonly RequiredChannelCount: "ST2067-21:2023:6.5/Required-ChannelCount";
223
+ readonly RequiredQuantizationBits: "ST2067-21:2023:6.5/Required-QuantizationBits";
224
+ readonly AlphaTransparency: "ST2067-21:2023:6.2.1/AlphaTransparency";
225
+ readonly "6.2.1CodingEquations": "ST2067-21:2023:6.2.1/CodingEquations";
226
+ readonly "6.2.1ColorPrimaries": "ST2067-21:2023:6.2.1/ColorPrimaries";
227
+ readonly FieldDominance: "ST2067-21:2023:6.2.1/FieldDominance";
228
+ readonly FrameLayout: "ST2067-21:2023:6.2.1/FrameLayout";
229
+ readonly FrameLayoutInterlaced: "ST2067-21:2023:6.2.1/FrameLayoutInterlaced";
230
+ readonly ImageAlignmentOffset: "ST2067-21:2023:6.2.1/ImageAlignmentOffset";
231
+ readonly ImageEndOffset: "ST2067-21:2023:6.2.1/ImageEndOffset";
232
+ readonly ImageStartOffset: "ST2067-21:2023:6.2.1/ImageStartOffset";
233
+ readonly SampledHeight: "ST2067-21:2023:6.2.1/SampledHeight";
234
+ readonly SampledWidth: "ST2067-21:2023:6.2.1/SampledWidth";
235
+ readonly SampledXOffset: "ST2067-21:2023:6.2.1/SampledXOffset";
236
+ readonly SampledYOffset: "ST2067-21:2023:6.2.1/SampledYOffset";
237
+ readonly StoredF2Offset: "ST2067-21:2023:6.2.1/StoredF2Offset";
238
+ readonly "6.2.1TransferCharacteristic": "ST2067-21:2023:6.2.1/TransferCharacteristic";
239
+ readonly "6.2.2TransferCharacteristic": "ST2067-21:2023:6.2.2/TransferCharacteristic";
240
+ readonly "6.2.3CodingEquations": "ST2067-21:2023:6.2.3/CodingEquations";
241
+ readonly "6.2.4ColorPrimaries": "ST2067-21:2023:6.2.4/ColorPrimaries";
242
+ readonly J2KRequired: "ST2067-21:2023:6.2.5/J2KRequired";
243
+ readonly AlphaMaxRef: "ST2067-21:2023:6.3/AlphaMaxRef";
244
+ readonly AlphaMinRef: "ST2067-21:2023:6.3/AlphaMinRef";
245
+ readonly ComponentMaxRef: "ST2067-21:2023:6.3/ComponentMaxRef";
246
+ readonly ComponentMinRef: "ST2067-21:2023:6.3/ComponentMinRef";
247
+ readonly Palette: "ST2067-21:2023:6.3/Palette";
248
+ readonly PaletteLayout: "ST2067-21:2023:6.3/PaletteLayout";
249
+ readonly ScanningDirection: "ST2067-21:2023:6.3/ScanningDirection";
250
+ readonly ComponentRefValues: "ST2067-21:2023:6.3.2/ComponentRefValues";
251
+ readonly AlphaSampleDepth: "ST2067-21:2023:6.4/AlphaSampleDepth";
252
+ readonly ColorSiting: "ST2067-21:2023:6.4/ColorSiting";
253
+ readonly ComponentDepth: "ST2067-21:2023:6.4/ComponentDepth";
254
+ readonly HorizontalSubsampling: "ST2067-21:2023:6.4/HorizontalSubsampling";
255
+ readonly PaddingBits: "ST2067-21:2023:6.4/PaddingBits";
256
+ readonly ReversedByteOrder: "ST2067-21:2023:6.4/ReversedByteOrder";
257
+ readonly VerticalSubsampling: "ST2067-21:2023:6.4/VerticalSubsampling";
258
+ readonly BlackRefLevel: "ST2067-21:2023:6.4.3/BlackRefLevel";
259
+ readonly ColorRange: "ST2067-21:2023:6.4.3/ColorRange";
260
+ readonly WhiteRefLevel: "ST2067-21:2023:6.4.3/WhiteRefLevel";
261
+ readonly AudioSampleRate: "ST2067-21:2023:6.5/AudioSampleRate";
262
+ readonly QuantizationBits: "ST2067-21:2023:6.5/QuantizationBits";
263
+ readonly CodingStyle: "ST2067-21:2023:6.5.2/CodingStyle";
264
+ readonly J2CLayout: "ST2067-21:2023:6.5.2/J2CLayout";
265
+ readonly J2KExtendedCapabilities: "ST2067-21:2023:6.5.2/J2KExtendedCapabilities";
266
+ readonly JPEG2000SubDescriptor: "ST2067-21:2023:6.5.2/JPEG2000SubDescriptor";
267
+ readonly J2KHTNotAllowed: "ST2067-21:2023:6.2.5/J2K-HT-Not-Allowed";
268
+ readonly J2K4KResolution: "ST2067-21:2023:6.2.5/J2K-4K-Resolution";
269
+ readonly J2K2KResolution: "ST2067-21:2023:6.2.5/J2K-2K-Resolution";
270
+ readonly J2KBCPResolution: "ST2067-21:2023:6.2.5/J2K-BCP-Resolution";
271
+ readonly ApplicationIdentification: "ST2067-21:2023:7.1/ApplicationIdentification";
272
+ readonly ContentMaturityRatingAgency: "ST2067-21:2023:7.1/ContentMaturityRating-Agency";
273
+ readonly ContentMaturityRatingAgencyURI: "ST2067-21:2023:7.1/ContentMaturityRating-Agency-URI";
274
+ readonly HomogeneousImageEssence: "ST2067-21:2023:7.2/HomogeneousImageEssence";
275
+ readonly AppIdMismatch: "ST2067-21:2023:7.1/AppIdMismatch";
276
+ readonly SegmentDurationMultiple: "ST2067-21:2023:7.4/SegmentDurationMultiple";
277
+ readonly MaxCLLMaxFALL: "ST2067-21:2023:7.5/MaxCLLMaxFALL";
278
+ };
279
+ readonly ST2067_21_2025: {
280
+ readonly FNTimedText: "ST2067-21:2025:5.6/FNTimedText";
281
+ readonly HICTimedText: "ST2067-21:2025:5.6/HICTimedText";
282
+ };
283
+ readonly ST2067_201_2019: {
284
+ readonly CodecForbidden: "ST2067-201:2019:5.9/CodecForbidden";
285
+ readonly ElectrospatialFormulationForbidden: "ST2067-201:2019:5.9/ElectrospatialFormulationForbidden";
286
+ readonly QuantizationBitsMissing: "ST2067-201:2019:5.9/QuantizationBitsMissing";
287
+ readonly QuantizationBitsInvalid: "ST2067-201:2019:5.9/QuantizationBitsInvalid";
288
+ readonly ContainerFormatMissing: "ST2067-201:2019:5.3/ContainerFormatMissing";
289
+ readonly EssenceContainerInvalid: "ST2067-201:2019:5.3/EssenceContainerInvalid";
290
+ readonly AudioSamplingRateMissing: "ST2067-201:2019:5.9/AudioSamplingRateMissing";
291
+ readonly AudioSamplingRateInvalid: "ST2067-201:2019:5.9/AudioSamplingRateInvalid";
292
+ readonly SoundCompressionMissing: "ST2067-201:2019:5.9/SoundCompressionMissing";
293
+ readonly SoundCompressionInvalid: "ST2067-201:2019:5.9/SoundCompressionInvalid";
294
+ readonly ChannelCountNotZero: "ST2067-201:2019:5.9/ChannelCountNotZero";
295
+ readonly SubDescriptorMissing: "ST2067-201:2019:5.9/SubDescriptorMissing";
296
+ readonly MCATagSymbolMissing: "ST2067-201:2019:5.9/MCATagSymbolMissing";
297
+ readonly MCATagSymbolInvalid: "ST2067-201:2019:5.9/MCATagSymbolInvalid";
298
+ readonly MCATagNameMissing: "ST2067-201:2019:5.9/MCATagNameMissing";
299
+ readonly MCATagNameInvalid: "ST2067-201:2019:5.9/MCATagNameInvalid";
300
+ readonly MCALabelDictionaryIDMissing: "ST2067-201:2019:5.9/MCALabelDictionaryIDMissing";
301
+ readonly MCALabelDictionaryIDInvalid: "ST2067-201:2019:5.9/MCALabelDictionaryIDInvalid";
302
+ readonly MainAudioMissing: "ST2067-201:2019:6.2/MainAudioMissing";
303
+ readonly IABSequenceNoResources: "ST2067-201:2019:6.2/IABSequenceNoResources";
304
+ readonly IABSequenceSourceEncodingInvalid: "ST2067-201:2019:6.2/IABSequenceSourceEncodingInvalid";
305
+ };
306
+ readonly ST2067_201_2021: {
307
+ readonly CodecForbidden: "ST2067-201:2021:5.9/CodecForbidden";
308
+ readonly ElectrospatialFormulationForbidden: "ST2067-201:2021:5.9/ElectrospatialFormulationForbidden";
309
+ readonly QuantizationBitsMissing: "ST2067-201:2021:5.9/QuantizationBitsMissing";
310
+ readonly QuantizationBitsInvalid: "ST2067-201:2021:5.9/QuantizationBitsInvalid";
311
+ readonly ContainerFormatMissing: "ST2067-201:2021:5.3/ContainerFormatMissing";
312
+ readonly EssenceContainerInvalid: "ST2067-201:2021:5.3/EssenceContainerInvalid";
313
+ readonly AudioSamplingRateMissing: "ST2067-201:2021:5.9/AudioSamplingRateMissing";
314
+ readonly AudioSamplingRateInvalid: "ST2067-201:2021:5.9/AudioSamplingRateInvalid";
315
+ readonly SoundCompressionMissing: "ST2067-201:2021:5.9/SoundCompressionMissing";
316
+ readonly SoundCompressionInvalid: "ST2067-201:2021:5.9/SoundCompressionInvalid";
317
+ readonly ChannelCountNotZero: "ST2067-201:2021:5.9/ChannelCountNotZero";
318
+ readonly SubDescriptorMissing: "ST2067-201:2021:5.9/SubDescriptorMissing";
319
+ readonly MCATagSymbolMissing: "ST2067-201:2021:5.9/MCATagSymbolMissing";
320
+ readonly MCATagSymbolInvalid: "ST2067-201:2021:5.9/MCATagSymbolInvalid";
321
+ readonly MCATagNameMissing: "ST2067-201:2021:5.9/MCATagNameMissing";
322
+ readonly MCATagNameInvalid: "ST2067-201:2021:5.9/MCATagNameInvalid";
323
+ readonly MCALabelDictionaryIDMissing: "ST2067-201:2021:5.9/MCALabelDictionaryIDMissing";
324
+ readonly MCALabelDictionaryIDInvalid: "ST2067-201:2021:5.9/MCALabelDictionaryIDInvalid";
325
+ readonly MainAudioMissing: "ST2067-201:2021:6.2/MainAudioMissing";
326
+ readonly IABSequenceNoResources: "ST2067-201:2021:6.2/IABSequenceNoResources";
327
+ readonly IABSequenceSourceEncodingInvalid: "ST2067-201:2021:6.2/IABSequenceSourceEncodingInvalid";
328
+ };
329
+ readonly ST2067_202_2022: {
330
+ readonly SubDescriptorMissing: "ST2067-202:2022:5/SubDescriptorMissing";
331
+ readonly NamespaceUriMissing: "ST2067-202:2022:5/NamespaceUriMissing";
332
+ readonly ISXDSequenceNoResources: "ST2067-202:2022:6/ISXDSequenceNoResources";
333
+ readonly ISXDSequenceSourceEncodingInvalid: "ST2067-202:2022:6/ISXDSequenceSourceEncodingInvalid";
334
+ readonly NamespaceUriMismatch: "ST2067-202:2022:6/NamespaceUriMismatch";
335
+ };
336
+ readonly Imferno: {
337
+ readonly UnreferencedAsset: "IMFERNO:Package/UnreferencedAsset";
338
+ readonly UnlistedEssence: "IMFERNO:Package/UnlistedEssence";
339
+ readonly ParseError: "IMFERNO:Package/ParseError";
340
+ readonly PklParseError: "IMFERNO:Package/PklParseError";
341
+ readonly XmlAssetParseError: "IMFERNO:Package/XmlAssetParseError";
342
+ readonly XmlReadError: "IMFERNO:Package/XmlReadError";
343
+ readonly ReadDirError: "IMFERNO:Package/ReadDirError";
344
+ readonly DirEntryError: "IMFERNO:Package/DirEntryError";
345
+ readonly PathTraversal: "IMFERNO:Package/PathTraversal";
346
+ }
347
+ };
package/codes.js ADDED
@@ -0,0 +1,348 @@
1
+ // Auto-generated by `cargo xtask generate-codes-ts` — do not edit.
2
+ const codes = {
3
+ ST429_9_2014: {
4
+ VolindexMissing: "ST429-9:2014:7/VolindexMissing",
5
+ MalformedXml: "ST429-9:2014:7/MalformedXml",
6
+ },
7
+ ST377_1_2011: {
8
+ NotMxf: "ST377-1:2011:5/NotMxf",
9
+ ParseError: "ST377-1:2011:5/ParseError",
10
+ NoEssenceContainers: "ST377-1:2011:11/NoEssenceContainers",
11
+ OP1a: "ST377-1:2011:7/OP1a",
12
+ },
13
+ ST2067_2_2020: {
14
+ AssetMap: "ST2067-2:2020:7/AssetMap",
15
+ AssetMapMalformedXml: "ST2067-2:2020:7/MalformedXml",
16
+ PklMalformedXml: "ST2067-2:2020:9/MalformedXml",
17
+ NoCpls: "ST2067-2:2020:7/NoCpls",
18
+ SizeMismatch: "ST2067-2:2020:8.3/SizeMismatch",
19
+ FileNotFound: "ST2067-2:2020:8.3/FileNotFound",
20
+ ChecksumMismatch: "ST2067-2:2020:8.3/ChecksumMismatch",
21
+ UnresolvedUuid: "ST2067-2:2020:7/UnresolvedUuid",
22
+ DuplicateUuid: "ST2067-2:2020:7/DuplicateUuid",
23
+ IoError: "IMF:General/IoError",
24
+ EssenceDescriptorList: "ST2067-2:2020:6.4.2/EssenceDescriptorList",
25
+ },
26
+ ST2067_2_2013_Core: {
27
+ ResourceListEmpty: "ST2067-2:2013:XSD/ResourceList-Empty",
28
+ ContentTitle: "ST2067-2:2013:XSD/ContentTitle",
29
+ TotalRunningTimeFormat: "ST2067-2:2013:XSD/TotalRunningTime-Format",
30
+ SegmentList: "ST2067-2:2013:XSD/SegmentList",
31
+ Segment: "ST2067-2:2013:XSD/Segment",
32
+ EditRate: "ST2067-2:2013:XSD-88/EditRate",
33
+ IssueDate: "ST2067-2:2013:XSD-66/IssueDate",
34
+ IssueDateFormat: "ST2067-2:2013:XSD-66/IssueDate-Format",
35
+ CompositionTimecodeDropFrame: "ST2067-2:2013:XSD-121-127/CompositionTimecode-DropFrame",
36
+ CompositionTimecodeRate: "ST2067-2:2013:XSD-121-127/CompositionTimecode-Rate",
37
+ CompositionTimecodeStartAddress: "ST2067-2:2013:XSD-121-127/CompositionTimecode-StartAddress",
38
+ CompositionTimecodeRateZero: "ST2067-2:2013:XSD-121-127/CompositionTimecode-Rate-Zero",
39
+ CompositionTimecodeStartAddressFormat: "ST2067-2:2013:XSD-121-127/CompositionTimecode-StartAddress-Format",
40
+ CompositionTimecodeRateMismatch: "ST2067-2:2013:XSD-121-127/CompositionTimecode-RateMismatch",
41
+ LocaleListNonEmpty: "ST2067-2:2013:XSD/LocaleList-NonEmpty",
42
+ UniqueSegmentId: "ST2067-2:2013:6.1/UniqueSegmentId",
43
+ UniqueEssenceDescriptorId: "ST2067-2:2013:6.1/UniqueEssenceDescriptorId",
44
+ UniqueResourceId: "ST2067-2:2013:6.1/UniqueResourceId",
45
+ IntrinsicDuration: "ST2067-2:2013:6.10/IntrinsicDuration",
46
+ EntryPoint: "ST2067-2:2013:6.10/EntryPoint",
47
+ SourceDuration: "ST2067-2:2013:6.10/SourceDuration",
48
+ ResourceDuration: "ST2067-2:2013:6.10/ResourceDuration",
49
+ RepeatCount: "ST2067-2:2013:6.10/RepeatCount",
50
+ TrackFileId: "ST2067-2:2013:6.10/TrackFileId",
51
+ VirtualTrackContinuity: "ST2067-2:2013:6.9/VirtualTrackContinuity",
52
+ VirtualTrackEditRate: "ST2067-2:2013:6.9.3/VirtualTrackEditRate",
53
+ TimedTextSampleRate: "ST2067-2:2013:10/TimedText-SampleRate",
54
+ TimedTextEmptyLanguageTag: "ST2067-2:2013:10/TimedText-EmptyLanguageTag",
55
+ TimedTextMalformedLanguageTag: "ST2067-2:2013:10/TimedText-MalformedLanguageTag",
56
+ AudioSampleRate: "ST2067-2:2013:ST377-4/AudioSampleRate",
57
+ ChannelCount: "ST2067-2:2013:ST377-4/ChannelCount",
58
+ MCASubDescriptors: "ST2067-2:2013:ST377-4/MCASubDescriptors",
59
+ SoundfieldGroup: "ST2067-2:2013:ST377-4/SoundfieldGroup",
60
+ MCATagSymbol: "ST2067-2:2013:ST377-4/MCATagSymbol",
61
+ SoundfieldChannelCount: "ST2067-2:2013:ST377-4/SoundfieldChannelCount",
62
+ DigitalSignature: "ST2067-2:2013:8/DigitalSignature",
63
+ DanglingEssenceDescriptor: "ST2067-2:2013:6.4.2/DanglingEssenceDescriptor",
64
+ EssenceDescriptorList: "ST2067-2:2013:6.4.2/EssenceDescriptorList",
65
+ },
66
+ ST2067_2_2016_Core: {
67
+ ResourceListEmpty: "ST2067-2:2016:XSD/ResourceList-Empty",
68
+ ContentTitle: "ST2067-2:2016:XSD/ContentTitle",
69
+ TotalRunningTimeFormat: "ST2067-2:2016:XSD/TotalRunningTime-Format",
70
+ SegmentList: "ST2067-2:2016:XSD/SegmentList",
71
+ Segment: "ST2067-2:2016:XSD/Segment",
72
+ EditRate: "ST2067-2:2016:XSD-88/EditRate",
73
+ IssueDate: "ST2067-2:2016:XSD-66/IssueDate",
74
+ IssueDateFormat: "ST2067-2:2016:XSD-66/IssueDate-Format",
75
+ CompositionTimecodeDropFrame: "ST2067-2:2016:XSD-121-127/CompositionTimecode-DropFrame",
76
+ CompositionTimecodeRate: "ST2067-2:2016:XSD-121-127/CompositionTimecode-Rate",
77
+ CompositionTimecodeStartAddress: "ST2067-2:2016:XSD-121-127/CompositionTimecode-StartAddress",
78
+ CompositionTimecodeRateZero: "ST2067-2:2016:XSD-121-127/CompositionTimecode-Rate-Zero",
79
+ CompositionTimecodeStartAddressFormat: "ST2067-2:2016:XSD-121-127/CompositionTimecode-StartAddress-Format",
80
+ CompositionTimecodeRateMismatch: "ST2067-2:2016:XSD-121-127/CompositionTimecode-RateMismatch",
81
+ LocaleListNonEmpty: "ST2067-2:2016:XSD/LocaleList-NonEmpty",
82
+ UniqueSegmentId: "ST2067-2:2016:6.1/UniqueSegmentId",
83
+ UniqueEssenceDescriptorId: "ST2067-2:2016:6.1/UniqueEssenceDescriptorId",
84
+ UniqueResourceId: "ST2067-2:2016:6.1/UniqueResourceId",
85
+ IntrinsicDuration: "ST2067-2:2016:6.10/IntrinsicDuration",
86
+ EntryPoint: "ST2067-2:2016:6.10/EntryPoint",
87
+ SourceDuration: "ST2067-2:2016:6.10/SourceDuration",
88
+ ResourceDuration: "ST2067-2:2016:6.10/ResourceDuration",
89
+ RepeatCount: "ST2067-2:2016:6.10/RepeatCount",
90
+ TrackFileId: "ST2067-2:2016:6.10/TrackFileId",
91
+ VirtualTrackContinuity: "ST2067-2:2016:6.9/VirtualTrackContinuity",
92
+ VirtualTrackEditRate: "ST2067-2:2016:6.9.3/VirtualTrackEditRate",
93
+ TimedTextSampleRate: "ST2067-2:2016:10/TimedText-SampleRate",
94
+ TimedTextEmptyLanguageTag: "ST2067-2:2016:10/TimedText-EmptyLanguageTag",
95
+ TimedTextMalformedLanguageTag: "ST2067-2:2016:10/TimedText-MalformedLanguageTag",
96
+ AudioSampleRate: "ST2067-2:2016:ST377-4/AudioSampleRate",
97
+ ChannelCount: "ST2067-2:2016:ST377-4/ChannelCount",
98
+ MCASubDescriptors: "ST2067-2:2016:ST377-4/MCASubDescriptors",
99
+ SoundfieldGroup: "ST2067-2:2016:ST377-4/SoundfieldGroup",
100
+ MCATagSymbol: "ST2067-2:2016:ST377-4/MCATagSymbol",
101
+ SoundfieldChannelCount: "ST2067-2:2016:ST377-4/SoundfieldChannelCount",
102
+ DigitalSignature: "ST2067-2:2016:8/DigitalSignature",
103
+ DanglingEssenceDescriptor: "ST2067-2:2016:6.4.2/DanglingEssenceDescriptor",
104
+ EssenceDescriptorList: "ST2067-2:2016:6.4.2/EssenceDescriptorList",
105
+ },
106
+ ST2067_2_2020_Core: {
107
+ ResourceListEmpty: "ST2067-2:2020:XSD/ResourceList-Empty",
108
+ ContentTitle: "ST2067-2:2020:XSD/ContentTitle",
109
+ TotalRunningTimeFormat: "ST2067-2:2020:XSD/TotalRunningTime-Format",
110
+ SegmentList: "ST2067-2:2020:XSD/SegmentList",
111
+ Segment: "ST2067-2:2020:XSD/Segment",
112
+ EditRate: "ST2067-2:2020:XSD-88/EditRate",
113
+ IssueDate: "ST2067-2:2020:XSD-66/IssueDate",
114
+ IssueDateFormat: "ST2067-2:2020:XSD-66/IssueDate-Format",
115
+ CompositionTimecodeDropFrame: "ST2067-2:2020:XSD-121-127/CompositionTimecode-DropFrame",
116
+ CompositionTimecodeRate: "ST2067-2:2020:XSD-121-127/CompositionTimecode-Rate",
117
+ CompositionTimecodeStartAddress: "ST2067-2:2020:XSD-121-127/CompositionTimecode-StartAddress",
118
+ CompositionTimecodeRateZero: "ST2067-2:2020:XSD-121-127/CompositionTimecode-Rate-Zero",
119
+ CompositionTimecodeStartAddressFormat: "ST2067-2:2020:XSD-121-127/CompositionTimecode-StartAddress-Format",
120
+ CompositionTimecodeRateMismatch: "ST2067-2:2020:XSD-121-127/CompositionTimecode-RateMismatch",
121
+ LocaleListNonEmpty: "ST2067-2:2020:XSD/LocaleList-NonEmpty",
122
+ UniqueSegmentId: "ST2067-2:2020:6.1/UniqueSegmentId",
123
+ UniqueEssenceDescriptorId: "ST2067-2:2020:6.1/UniqueEssenceDescriptorId",
124
+ UniqueResourceId: "ST2067-2:2020:6.1/UniqueResourceId",
125
+ IntrinsicDuration: "ST2067-2:2020:6.10/IntrinsicDuration",
126
+ EntryPoint: "ST2067-2:2020:6.10/EntryPoint",
127
+ SourceDuration: "ST2067-2:2020:6.10/SourceDuration",
128
+ ResourceDuration: "ST2067-2:2020:6.10/ResourceDuration",
129
+ RepeatCount: "ST2067-2:2020:6.10/RepeatCount",
130
+ TrackFileId: "ST2067-2:2020:6.10/TrackFileId",
131
+ VirtualTrackContinuity: "ST2067-2:2020:6.9/VirtualTrackContinuity",
132
+ VirtualTrackEditRate: "ST2067-2:2020:6.9.3/VirtualTrackEditRate",
133
+ TimedTextSampleRate: "ST2067-2:2020:10/TimedText-SampleRate",
134
+ TimedTextEmptyLanguageTag: "ST2067-2:2020:10/TimedText-EmptyLanguageTag",
135
+ TimedTextMalformedLanguageTag: "ST2067-2:2020:10/TimedText-MalformedLanguageTag",
136
+ AudioSampleRate: "ST2067-2:2020:ST377-4/AudioSampleRate",
137
+ ChannelCount: "ST2067-2:2020:ST377-4/ChannelCount",
138
+ MCASubDescriptors: "ST2067-2:2020:ST377-4/MCASubDescriptors",
139
+ SoundfieldGroup: "ST2067-2:2020:ST377-4/SoundfieldGroup",
140
+ MCATagSymbol: "ST2067-2:2020:ST377-4/MCATagSymbol",
141
+ SoundfieldChannelCount: "ST2067-2:2020:ST377-4/SoundfieldChannelCount",
142
+ DigitalSignature: "ST2067-2:2020:8/DigitalSignature",
143
+ DanglingEssenceDescriptor: "ST2067-2:2020:6.4.2/DanglingEssenceDescriptor",
144
+ EssenceDescriptorList: "ST2067-2:2020:6.4.2/EssenceDescriptorList",
145
+ },
146
+ ST2067_3_2013: {
147
+ ContentKindUnknown: "ST2067-3:2013:5.5.1.2/ContentKindUnknown",
148
+ SourceEncodingNoEssenceDescriptorList: "ST2067-3:2013:6.4.2/SourceEncodingNoEssenceDescriptorList",
149
+ SourceEncodingUnresolved: "ST2067-3:2013:6.4.2/SourceEncodingUnresolved",
150
+ EssenceDescriptorListEmpty: "ST2067-3:2013:6.4.2/EssenceDescriptorListEmpty",
151
+ ContentVersionListEmpty: "ST2067-3:2013:6.11/ContentVersionListEmpty",
152
+ ContentVersionIdInvalid: "ST2067-3:2013:6.11/ContentVersionIdInvalid",
153
+ ContentVersionLabelTextMissing: "ST2067-3:2013:6.11/ContentVersionLabelTextMissing",
154
+ LocaleLanguageTagInvalid: "ST2067-3:2013:6.12/LocaleLanguageTagInvalid",
155
+ TrackIdNotUnique: "ST2067-3:2013:7.3/TrackIdNotUnique",
156
+ MarkerOffsetOutOfRange: "ST2067-3:2013:7.4/MarkerOffsetOutOfRange",
157
+ MarkerLabelUnknown: "ST2067-3:2013:7.4/MarkerLabelUnknown",
158
+ SegmentDuration: "ST2067-3:2013:7.2.2/SegmentDuration",
159
+ ContentVersionIdDuplicate: "ST2067-3:2013:6.1.9/ContentVersionIdDuplicate",
160
+ SegmentDurationIntegerEditUnits: "ST2067-3:2013:7.3/SegmentDurationIntegerEditUnits",
161
+ },
162
+ ST2067_3_2016: {
163
+ ContentKindUnknown: "ST2067-3:2016:5.5.1.2/ContentKindUnknown",
164
+ SourceEncodingNoEssenceDescriptorList: "ST2067-3:2016:6.4.2/SourceEncodingNoEssenceDescriptorList",
165
+ SourceEncodingUnresolved: "ST2067-3:2016:6.4.2/SourceEncodingUnresolved",
166
+ EssenceDescriptorListEmpty: "ST2067-3:2016:6.4.2/EssenceDescriptorListEmpty",
167
+ ContentVersionListEmpty: "ST2067-3:2016:6.11/ContentVersionListEmpty",
168
+ ContentVersionIdInvalid: "ST2067-3:2016:6.11/ContentVersionIdInvalid",
169
+ ContentVersionLabelTextMissing: "ST2067-3:2016:6.11/ContentVersionLabelTextMissing",
170
+ LocaleLanguageTagInvalid: "ST2067-3:2016:6.12/LocaleLanguageTagInvalid",
171
+ TrackIdNotUnique: "ST2067-3:2016:7.3/TrackIdNotUnique",
172
+ MarkerOffsetOutOfRange: "ST2067-3:2016:7.4/MarkerOffsetOutOfRange",
173
+ MarkerLabelUnknown: "ST2067-3:2016:7.4/MarkerLabelUnknown",
174
+ SegmentDuration: "ST2067-3:2016:7.2.2/SegmentDuration",
175
+ ContentVersionIdDuplicate: "ST2067-3:2016:6.1.9/ContentVersionIdDuplicate",
176
+ SegmentDurationIntegerEditUnits: "ST2067-3:2016:7.3/SegmentDurationIntegerEditUnits",
177
+ },
178
+ ST2067_3_2020: {
179
+ ContentKindUnknown: "ST2067-3:2020:5.5.1.2/ContentKindUnknown",
180
+ SourceEncodingNoEssenceDescriptorList: "ST2067-3:2020:6.4.2/SourceEncodingNoEssenceDescriptorList",
181
+ SourceEncodingUnresolved: "ST2067-3:2020:6.4.2/SourceEncodingUnresolved",
182
+ EssenceDescriptorListEmpty: "ST2067-3:2020:6.4.2/EssenceDescriptorListEmpty",
183
+ ContentVersionListEmpty: "ST2067-3:2020:6.11/ContentVersionListEmpty",
184
+ ContentVersionIdInvalid: "ST2067-3:2020:6.11/ContentVersionIdInvalid",
185
+ ContentVersionLabelTextMissing: "ST2067-3:2020:6.11/ContentVersionLabelTextMissing",
186
+ LocaleLanguageTagInvalid: "ST2067-3:2020:6.12/LocaleLanguageTagInvalid",
187
+ TrackIdNotUnique: "ST2067-3:2020:7.3/TrackIdNotUnique",
188
+ MarkerOffsetOutOfRange: "ST2067-3:2020:7.4/MarkerOffsetOutOfRange",
189
+ MarkerLabelUnknown: "ST2067-3:2020:7.4/MarkerLabelUnknown",
190
+ SegmentDuration: "ST2067-3:2020:7.2.2/SegmentDuration",
191
+ ContentVersionIdDuplicate: "ST2067-3:2020:6.1.9/ContentVersionIdDuplicate",
192
+ SegmentDurationIntegerEditUnits: "ST2067-3:2020:7.3/SegmentDurationIntegerEditUnits",
193
+ },
194
+ ST2067_9_2018: {
195
+ MalformedXml: "ST2067-9:2018:6.1/MalformedXml",
196
+ SidecarAssetReferencedByVirtualTrack: "ST2067-9:2018:5/SidecarAssetReferencedByVirtualTrack",
197
+ DuplicateAssetId: "ST2067-9:2018:7.2.3/DuplicateAssetId",
198
+ SignerWithoutSignature: "ST2067-9:2018:7.2.4/SignerWithoutSignature",
199
+ SignatureWithoutSigner: "ST2067-9:2018:7.2.5/SignatureWithoutSigner",
200
+ SidecarAssetNotFound: "ST2067-9:2018:7.3.1/SidecarAssetNotFound",
201
+ CplNotFound: "ST2067-9:2018:7.3.1.1/CplNotFound",
202
+ DuplicateCplId: "ST2067-9:2018:7.3.1.1/DuplicateCplId",
203
+ },
204
+ ST2067_21_2020: {
205
+ AppIdMismatch: "ST2067-21:2020:7.1/AppIdMismatch",
206
+ },
207
+ ST2067_21_2023: {
208
+ FrameRate: "ST2067-21:2023:5.2/FrameRate",
209
+ Resolution: "ST2067-21:2023:5.2/Resolution",
210
+ EmptyLanguageTag: "ST2067-21:2023:5.3/EmptyLanguageTag",
211
+ MalformedLanguageTag: "ST2067-21:2023:5.3/MalformedLanguageTag",
212
+ RegionCode: "ST2067-21:2023:5.3/RegionCode",
213
+ ColorSystem: "ST2067-21:2023:6.2/ColorSystem",
214
+ RequiredStoredWidth: "ST2067-21:2023:6.2/Required-StoredWidth",
215
+ RequiredStoredHeight: "ST2067-21:2023:6.2/Required-StoredHeight",
216
+ RequiredSampleRate: "ST2067-21:2023:6.2/Required-SampleRate",
217
+ RequiredFrameLayout: "ST2067-21:2023:6.2/Required-FrameLayout",
218
+ RequiredColorPrimaries: "ST2067-21:2023:6.2/Required-ColorPrimaries",
219
+ RequiredTransferCharacteristic: "ST2067-21:2023:6.2/Required-TransferCharacteristic",
220
+ RequiredPictureCompression: "ST2067-21:2023:6.2/Required-PictureCompression",
221
+ RequiredComponentDepth: "ST2067-21:2023:6.2/Required-ComponentDepth",
222
+ RequiredChannelCount: "ST2067-21:2023:6.5/Required-ChannelCount",
223
+ RequiredQuantizationBits: "ST2067-21:2023:6.5/Required-QuantizationBits",
224
+ AlphaTransparency: "ST2067-21:2023:6.2.1/AlphaTransparency",
225
+ "6.2.1CodingEquations": "ST2067-21:2023:6.2.1/CodingEquations",
226
+ "6.2.1ColorPrimaries": "ST2067-21:2023:6.2.1/ColorPrimaries",
227
+ FieldDominance: "ST2067-21:2023:6.2.1/FieldDominance",
228
+ FrameLayout: "ST2067-21:2023:6.2.1/FrameLayout",
229
+ FrameLayoutInterlaced: "ST2067-21:2023:6.2.1/FrameLayoutInterlaced",
230
+ ImageAlignmentOffset: "ST2067-21:2023:6.2.1/ImageAlignmentOffset",
231
+ ImageEndOffset: "ST2067-21:2023:6.2.1/ImageEndOffset",
232
+ ImageStartOffset: "ST2067-21:2023:6.2.1/ImageStartOffset",
233
+ SampledHeight: "ST2067-21:2023:6.2.1/SampledHeight",
234
+ SampledWidth: "ST2067-21:2023:6.2.1/SampledWidth",
235
+ SampledXOffset: "ST2067-21:2023:6.2.1/SampledXOffset",
236
+ SampledYOffset: "ST2067-21:2023:6.2.1/SampledYOffset",
237
+ StoredF2Offset: "ST2067-21:2023:6.2.1/StoredF2Offset",
238
+ "6.2.1TransferCharacteristic": "ST2067-21:2023:6.2.1/TransferCharacteristic",
239
+ "6.2.2TransferCharacteristic": "ST2067-21:2023:6.2.2/TransferCharacteristic",
240
+ "6.2.3CodingEquations": "ST2067-21:2023:6.2.3/CodingEquations",
241
+ "6.2.4ColorPrimaries": "ST2067-21:2023:6.2.4/ColorPrimaries",
242
+ J2KRequired: "ST2067-21:2023:6.2.5/J2KRequired",
243
+ AlphaMaxRef: "ST2067-21:2023:6.3/AlphaMaxRef",
244
+ AlphaMinRef: "ST2067-21:2023:6.3/AlphaMinRef",
245
+ ComponentMaxRef: "ST2067-21:2023:6.3/ComponentMaxRef",
246
+ ComponentMinRef: "ST2067-21:2023:6.3/ComponentMinRef",
247
+ Palette: "ST2067-21:2023:6.3/Palette",
248
+ PaletteLayout: "ST2067-21:2023:6.3/PaletteLayout",
249
+ ScanningDirection: "ST2067-21:2023:6.3/ScanningDirection",
250
+ ComponentRefValues: "ST2067-21:2023:6.3.2/ComponentRefValues",
251
+ AlphaSampleDepth: "ST2067-21:2023:6.4/AlphaSampleDepth",
252
+ ColorSiting: "ST2067-21:2023:6.4/ColorSiting",
253
+ ComponentDepth: "ST2067-21:2023:6.4/ComponentDepth",
254
+ HorizontalSubsampling: "ST2067-21:2023:6.4/HorizontalSubsampling",
255
+ PaddingBits: "ST2067-21:2023:6.4/PaddingBits",
256
+ ReversedByteOrder: "ST2067-21:2023:6.4/ReversedByteOrder",
257
+ VerticalSubsampling: "ST2067-21:2023:6.4/VerticalSubsampling",
258
+ BlackRefLevel: "ST2067-21:2023:6.4.3/BlackRefLevel",
259
+ ColorRange: "ST2067-21:2023:6.4.3/ColorRange",
260
+ WhiteRefLevel: "ST2067-21:2023:6.4.3/WhiteRefLevel",
261
+ AudioSampleRate: "ST2067-21:2023:6.5/AudioSampleRate",
262
+ QuantizationBits: "ST2067-21:2023:6.5/QuantizationBits",
263
+ CodingStyle: "ST2067-21:2023:6.5.2/CodingStyle",
264
+ J2CLayout: "ST2067-21:2023:6.5.2/J2CLayout",
265
+ J2KExtendedCapabilities: "ST2067-21:2023:6.5.2/J2KExtendedCapabilities",
266
+ JPEG2000SubDescriptor: "ST2067-21:2023:6.5.2/JPEG2000SubDescriptor",
267
+ J2KHTNotAllowed: "ST2067-21:2023:6.2.5/J2K-HT-Not-Allowed",
268
+ J2K4KResolution: "ST2067-21:2023:6.2.5/J2K-4K-Resolution",
269
+ J2K2KResolution: "ST2067-21:2023:6.2.5/J2K-2K-Resolution",
270
+ J2KBCPResolution: "ST2067-21:2023:6.2.5/J2K-BCP-Resolution",
271
+ ApplicationIdentification: "ST2067-21:2023:7.1/ApplicationIdentification",
272
+ ContentMaturityRatingAgency: "ST2067-21:2023:7.1/ContentMaturityRating-Agency",
273
+ ContentMaturityRatingAgencyURI: "ST2067-21:2023:7.1/ContentMaturityRating-Agency-URI",
274
+ HomogeneousImageEssence: "ST2067-21:2023:7.2/HomogeneousImageEssence",
275
+ AppIdMismatch: "ST2067-21:2023:7.1/AppIdMismatch",
276
+ SegmentDurationMultiple: "ST2067-21:2023:7.4/SegmentDurationMultiple",
277
+ MaxCLLMaxFALL: "ST2067-21:2023:7.5/MaxCLLMaxFALL",
278
+ },
279
+ ST2067_21_2025: {
280
+ FNTimedText: "ST2067-21:2025:5.6/FNTimedText",
281
+ HICTimedText: "ST2067-21:2025:5.6/HICTimedText",
282
+ },
283
+ ST2067_201_2019: {
284
+ CodecForbidden: "ST2067-201:2019:5.9/CodecForbidden",
285
+ ElectrospatialFormulationForbidden: "ST2067-201:2019:5.9/ElectrospatialFormulationForbidden",
286
+ QuantizationBitsMissing: "ST2067-201:2019:5.9/QuantizationBitsMissing",
287
+ QuantizationBitsInvalid: "ST2067-201:2019:5.9/QuantizationBitsInvalid",
288
+ ContainerFormatMissing: "ST2067-201:2019:5.3/ContainerFormatMissing",
289
+ EssenceContainerInvalid: "ST2067-201:2019:5.3/EssenceContainerInvalid",
290
+ AudioSamplingRateMissing: "ST2067-201:2019:5.9/AudioSamplingRateMissing",
291
+ AudioSamplingRateInvalid: "ST2067-201:2019:5.9/AudioSamplingRateInvalid",
292
+ SoundCompressionMissing: "ST2067-201:2019:5.9/SoundCompressionMissing",
293
+ SoundCompressionInvalid: "ST2067-201:2019:5.9/SoundCompressionInvalid",
294
+ ChannelCountNotZero: "ST2067-201:2019:5.9/ChannelCountNotZero",
295
+ SubDescriptorMissing: "ST2067-201:2019:5.9/SubDescriptorMissing",
296
+ MCATagSymbolMissing: "ST2067-201:2019:5.9/MCATagSymbolMissing",
297
+ MCATagSymbolInvalid: "ST2067-201:2019:5.9/MCATagSymbolInvalid",
298
+ MCATagNameMissing: "ST2067-201:2019:5.9/MCATagNameMissing",
299
+ MCATagNameInvalid: "ST2067-201:2019:5.9/MCATagNameInvalid",
300
+ MCALabelDictionaryIDMissing: "ST2067-201:2019:5.9/MCALabelDictionaryIDMissing",
301
+ MCALabelDictionaryIDInvalid: "ST2067-201:2019:5.9/MCALabelDictionaryIDInvalid",
302
+ MainAudioMissing: "ST2067-201:2019:6.2/MainAudioMissing",
303
+ IABSequenceNoResources: "ST2067-201:2019:6.2/IABSequenceNoResources",
304
+ IABSequenceSourceEncodingInvalid: "ST2067-201:2019:6.2/IABSequenceSourceEncodingInvalid",
305
+ },
306
+ ST2067_201_2021: {
307
+ CodecForbidden: "ST2067-201:2021:5.9/CodecForbidden",
308
+ ElectrospatialFormulationForbidden: "ST2067-201:2021:5.9/ElectrospatialFormulationForbidden",
309
+ QuantizationBitsMissing: "ST2067-201:2021:5.9/QuantizationBitsMissing",
310
+ QuantizationBitsInvalid: "ST2067-201:2021:5.9/QuantizationBitsInvalid",
311
+ ContainerFormatMissing: "ST2067-201:2021:5.3/ContainerFormatMissing",
312
+ EssenceContainerInvalid: "ST2067-201:2021:5.3/EssenceContainerInvalid",
313
+ AudioSamplingRateMissing: "ST2067-201:2021:5.9/AudioSamplingRateMissing",
314
+ AudioSamplingRateInvalid: "ST2067-201:2021:5.9/AudioSamplingRateInvalid",
315
+ SoundCompressionMissing: "ST2067-201:2021:5.9/SoundCompressionMissing",
316
+ SoundCompressionInvalid: "ST2067-201:2021:5.9/SoundCompressionInvalid",
317
+ ChannelCountNotZero: "ST2067-201:2021:5.9/ChannelCountNotZero",
318
+ SubDescriptorMissing: "ST2067-201:2021:5.9/SubDescriptorMissing",
319
+ MCATagSymbolMissing: "ST2067-201:2021:5.9/MCATagSymbolMissing",
320
+ MCATagSymbolInvalid: "ST2067-201:2021:5.9/MCATagSymbolInvalid",
321
+ MCATagNameMissing: "ST2067-201:2021:5.9/MCATagNameMissing",
322
+ MCATagNameInvalid: "ST2067-201:2021:5.9/MCATagNameInvalid",
323
+ MCALabelDictionaryIDMissing: "ST2067-201:2021:5.9/MCALabelDictionaryIDMissing",
324
+ MCALabelDictionaryIDInvalid: "ST2067-201:2021:5.9/MCALabelDictionaryIDInvalid",
325
+ MainAudioMissing: "ST2067-201:2021:6.2/MainAudioMissing",
326
+ IABSequenceNoResources: "ST2067-201:2021:6.2/IABSequenceNoResources",
327
+ IABSequenceSourceEncodingInvalid: "ST2067-201:2021:6.2/IABSequenceSourceEncodingInvalid",
328
+ },
329
+ ST2067_202_2022: {
330
+ SubDescriptorMissing: "ST2067-202:2022:5/SubDescriptorMissing",
331
+ NamespaceUriMissing: "ST2067-202:2022:5/NamespaceUriMissing",
332
+ ISXDSequenceNoResources: "ST2067-202:2022:6/ISXDSequenceNoResources",
333
+ ISXDSequenceSourceEncodingInvalid: "ST2067-202:2022:6/ISXDSequenceSourceEncodingInvalid",
334
+ NamespaceUriMismatch: "ST2067-202:2022:6/NamespaceUriMismatch",
335
+ },
336
+ Imferno: {
337
+ UnreferencedAsset: "IMFERNO:Package/UnreferencedAsset",
338
+ UnlistedEssence: "IMFERNO:Package/UnlistedEssence",
339
+ ParseError: "IMFERNO:Package/ParseError",
340
+ PklParseError: "IMFERNO:Package/PklParseError",
341
+ XmlAssetParseError: "IMFERNO:Package/XmlAssetParseError",
342
+ XmlReadError: "IMFERNO:Package/XmlReadError",
343
+ ReadDirError: "IMFERNO:Package/ReadDirError",
344
+ DirEntryError: "IMFERNO:Package/DirEntryError",
345
+ PathTraversal: "IMFERNO:Package/PathTraversal",
346
+ }
347
+ };
348
+ module.exports = { codes };
package/codes.mjs ADDED
@@ -0,0 +1,6 @@
1
+ // Auto-generated by `cargo xtask generate-codes-ts` — do not edit.
2
+ // ESM re-export of the CJS codes module.
3
+ import { createRequire } from "node:module";
4
+ const require = createRequire(import.meta.url);
5
+ const { codes } = require("./codes.js");
6
+ export { codes };
package/index.d.ts ADDED
@@ -0,0 +1,76 @@
1
+ /* auto-generated by NAPI-RS */
2
+ /* eslint-disable */
3
+
4
+ /**
5
+ * Returns the imferno library version string.
6
+ */
7
+ export declare function getVersion(): string
8
+
9
+ /**
10
+ * Validate an IMF package from in-memory XML strings.
11
+ *
12
+ * @param files - A map of filename to XML content (e.g. `{ "ASSETMAP.xml": "..." }`)
13
+ * @param options - Optional validation options (`coreSpec`, `app2eSpec`, `rules`, etc.)
14
+ * @returns An `ImfReport` object with `package`, `cpls`, and `validation` fields.
15
+ */
16
+ export declare function buildReport(files: Record<string, string>, options?: any | undefined | null): any
17
+
18
+ /**
19
+ * Validate an IMF package directory on disk.
20
+ *
21
+ * @param path - Path to the IMP directory
22
+ * @param options - Optional validation options (`coreSpec`, `app2eSpec`, `skipDiskChecks`, `rules`, etc.)
23
+ * @returns An `ImfReport` object with `package`, `cpls`, and `validation` fields.
24
+ */
25
+ export declare function buildReportFromPath(path: string, options?: any | undefined | null): any
26
+
27
+ /**
28
+ * Pretty-print an `ImfReport` as a human-readable string.
29
+ *
30
+ * @param report - A previously returned `ImfReport` object
31
+ * @returns A formatted plain-text report string.
32
+ */
33
+ export declare function formatReport(report: any): string
34
+
35
+ /**
36
+ * Parse an IMF package from in-memory XML strings, returning the full parsed package.
37
+ *
38
+ * Unlike `buildReport` which returns a validation summary, this returns the
39
+ * complete `Imferno` struct with all essence descriptors, locales, content versions, etc.
40
+ *
41
+ * @param files - A map of filename to XML content (e.g. `{ "ASSETMAP.xml": "..." }`)
42
+ * @returns The full parsed Imferno package object.
43
+ */
44
+ export declare function parsePackage(files: Record<string, string>): any
45
+
46
+ /**
47
+ * Parse an IMF package directory on disk, returning the full parsed package.
48
+ *
49
+ * Unlike `buildReportFromPath` which returns a validation summary, this returns the
50
+ * complete `Imferno` struct with all essence descriptors, locales, content versions, etc.
51
+ *
52
+ * @param path - Path to the IMP directory
53
+ * @returns The full parsed Imferno package object.
54
+ */
55
+ export declare function parsePackageFromPath(path: string): any
56
+
57
+ /**
58
+ * Parse and validate an IMF package from in-memory XML strings.
59
+ *
60
+ * This is the recommended entry point. Returns the full parsed package
61
+ * plus all validation findings.
62
+ *
63
+ * @param files - A map of filename to XML content
64
+ * @param options - Optional validation options
65
+ * @returns `{ package, validation }` — full Imferno struct + ValidationReport
66
+ */
67
+ export declare function validate(files: Record<string, string>, options?: any | undefined | null): any
68
+
69
+ /**
70
+ * Parse and validate an IMF package directory on disk.
71
+ *
72
+ * @param path - Path to the IMP directory
73
+ * @param options - Optional validation options
74
+ * @returns `{ package, validation }` — full Imferno struct + ValidationReport
75
+ */
76
+ export declare function validatePath(path: string, options?: any | undefined | null): any
package/index.js ADDED
@@ -0,0 +1,46 @@
1
+ const path = require("path");
2
+
3
+ const PLATFORMS = {
4
+ "darwin-arm64": "@imferno/darwin-arm64",
5
+ "darwin-x64": "@imferno/darwin-x64",
6
+ "linux-x64": "@imferno/linux-x64-gnu",
7
+ "linux-arm64": "@imferno/linux-arm64-gnu",
8
+ "win32-x64": "@imferno/win32-x64-msvc",
9
+ "win32-arm64": "@imferno/win32-arm64-msvc",
10
+ };
11
+
12
+ const key = `${process.platform}-${process.arch}`;
13
+ const pkg = PLATFORMS[key];
14
+
15
+ if (!pkg) {
16
+ throw new Error(
17
+ `@imferno/node: unsupported platform ${process.platform}-${process.arch}\n` +
18
+ `Supported: ${Object.keys(PLATFORMS).join(", ")}`
19
+ );
20
+ }
21
+
22
+ let nativeModule;
23
+ try {
24
+ nativeModule = require(pkg);
25
+ } catch {
26
+ try {
27
+ // Fallback: try loading the .node file from the platform package directory
28
+ const pkgDir = path.dirname(require.resolve(`${pkg}/package.json`));
29
+ nativeModule = require(path.join(pkgDir, "imferno-node.node"));
30
+ } catch {
31
+ try {
32
+ // Local development: try loading the .node file from the same directory
33
+ nativeModule = require(path.join(__dirname, "imferno-node.node"));
34
+ } catch {
35
+ throw new Error(
36
+ `@imferno/node: could not load native module "${pkg}"\n\n` +
37
+ `This usually means the optional dependency was not installed.\n` +
38
+ `Try reinstalling with: npm install @imferno/node`
39
+ );
40
+ }
41
+ }
42
+ }
43
+
44
+ const { codes } = require("./codes.js");
45
+
46
+ module.exports = { ...nativeModule, codes };
package/index.mjs ADDED
@@ -0,0 +1,58 @@
1
+ import { createRequire } from "node:module";
2
+ import { dirname, join } from "node:path";
3
+ import { fileURLToPath } from "node:url";
4
+
5
+ const __dirname = dirname(fileURLToPath(import.meta.url));
6
+ const require = createRequire(import.meta.url);
7
+
8
+ const PLATFORMS = {
9
+ "darwin-arm64": "@imferno/node-darwin-arm64",
10
+ "darwin-x64": "@imferno/node-darwin-x64",
11
+ "linux-x64": "@imferno/node-linux-x64-gnu",
12
+ "linux-arm64": "@imferno/node-linux-arm64-gnu",
13
+ "win32-x64": "@imferno/node-win32-x64-msvc",
14
+ "win32-arm64": "@imferno/node-win32-arm64-msvc",
15
+ };
16
+
17
+ const key = `${process.platform}-${process.arch}`;
18
+ const pkg = PLATFORMS[key];
19
+
20
+ if (!pkg) {
21
+ throw new Error(
22
+ `@imferno/node: unsupported platform ${process.platform}-${process.arch}\n` +
23
+ `Supported: ${Object.keys(PLATFORMS).join(", ")}`
24
+ );
25
+ }
26
+
27
+ let nativeModule;
28
+ try {
29
+ nativeModule = require(pkg);
30
+ } catch {
31
+ try {
32
+ const pkgDir = dirname(require.resolve(`${pkg}/package.json`));
33
+ nativeModule = require(join(pkgDir, "imferno-node.node"));
34
+ } catch {
35
+ try {
36
+ nativeModule = require(join(__dirname, "imferno-node.node"));
37
+ } catch {
38
+ throw new Error(
39
+ `@imferno/node: could not load native module "${pkg}"\n\n` +
40
+ `This usually means the optional dependency was not installed.\n` +
41
+ `Try reinstalling with: npm install @imferno/node`
42
+ );
43
+ }
44
+ }
45
+ }
46
+
47
+ export const {
48
+ getVersion,
49
+ buildReport,
50
+ buildReportFromPath,
51
+ formatReport,
52
+ parsePackage,
53
+ parsePackageFromPath,
54
+ validate,
55
+ validatePath,
56
+ } = nativeModule;
57
+
58
+ export { codes } from "./codes.mjs";
package/package.json ADDED
@@ -0,0 +1,64 @@
1
+ {
2
+ "name": "@imferno/node",
3
+ "version": "2.0.1-beta.9de606c",
4
+ "description": "Native Node.js bindings for the imferno SMPTE ST 2067 IMF validator",
5
+ "main": "index.js",
6
+ "module": "index.mjs",
7
+ "types": "index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "import": "./index.mjs",
11
+ "require": "./index.js",
12
+ "types": "./index.d.ts"
13
+ },
14
+ "./codes": {
15
+ "import": "./codes.mjs",
16
+ "require": "./codes.js",
17
+ "types": "./codes.d.ts"
18
+ }
19
+ },
20
+ "napi": {
21
+ "binaryName": "imferno-node",
22
+ "targets": [
23
+ "x86_64-apple-darwin",
24
+ "aarch64-apple-darwin",
25
+ "x86_64-unknown-linux-gnu",
26
+ "aarch64-unknown-linux-gnu",
27
+ "x86_64-pc-windows-msvc",
28
+ "aarch64-pc-windows-msvc"
29
+ ]
30
+ },
31
+ "files": [
32
+ "index.js",
33
+ "index.mjs",
34
+ "index.d.ts",
35
+ "codes.js",
36
+ "codes.mjs",
37
+ "codes.d.ts",
38
+ "README.md",
39
+ "LICENSE"
40
+ ],
41
+ "optionalDependencies": {
42
+ "@imferno/darwin-arm64": "2.0.1-beta.9de606c",
43
+ "@imferno/darwin-x64": "2.0.1-beta.9de606c",
44
+ "@imferno/linux-x64-gnu": "2.0.1-beta.9de606c",
45
+ "@imferno/linux-arm64-gnu": "2.0.1-beta.9de606c",
46
+ "@imferno/win32-x64-msvc": "2.0.1-beta.9de606c",
47
+ "@imferno/win32-arm64-msvc": "2.0.1-beta.9de606c"
48
+ },
49
+ "publishConfig": {
50
+ "access": "public"
51
+ },
52
+ "license": "MIT",
53
+ "repository": {
54
+ "type": "git",
55
+ "url": "https://github.com/jpwesselink/imferno.git"
56
+ },
57
+ "homepage": "https://github.com/jpwesselink/imferno",
58
+ "bugs": {
59
+ "url": "https://github.com/jpwesselink/imferno/issues"
60
+ },
61
+ "engines": {
62
+ "node": ">=16.0.0"
63
+ }
64
+ }