@noeos/verification-engine 0.0.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.
Files changed (184) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/LICENSE +201 -0
  3. package/NOTICE +11 -0
  4. package/README.md +7 -0
  5. package/dist/cjs/api/engine.js +271 -0
  6. package/dist/cjs/api/types.js +10 -0
  7. package/dist/cjs/chains/chain-builder.js +541 -0
  8. package/dist/cjs/chains/duplicate-detector.js +208 -0
  9. package/dist/cjs/chains/verify-chain.js +656 -0
  10. package/dist/cjs/contracts/generated.js +512 -0
  11. package/dist/cjs/contracts/schema-assets.js +6 -0
  12. package/dist/cjs/contracts/vector-assets.js +6 -0
  13. package/dist/cjs/domain/algorithm-id.js +5 -0
  14. package/dist/cjs/domain/byte-view.js +7 -0
  15. package/dist/cjs/domain/chain.js +3 -0
  16. package/dist/cjs/domain/diagnostic.js +6 -0
  17. package/dist/cjs/domain/digest.js +37 -0
  18. package/dist/cjs/domain/duplicate-policy.js +3 -0
  19. package/dist/cjs/domain/evidence.js +10 -0
  20. package/dist/cjs/domain/identifiers.js +52 -0
  21. package/dist/cjs/domain/json-value.js +3 -0
  22. package/dist/cjs/domain/limits.js +24 -0
  23. package/dist/cjs/domain/operation-result.js +19 -0
  24. package/dist/cjs/domain/position.js +16 -0
  25. package/dist/cjs/domain/protocol-version.js +5 -0
  26. package/dist/cjs/domain/rule.js +3 -0
  27. package/dist/cjs/domain/stream.js +3 -0
  28. package/dist/cjs/domain/version.js +16 -0
  29. package/dist/cjs/evidence/digest-evidence.js +22 -0
  30. package/dist/cjs/evidence/evidence-parser.js +288 -0
  31. package/dist/cjs/framing/frame-builders.js +124 -0
  32. package/dist/cjs/framing/frame-encoder.js +238 -0
  33. package/dist/cjs/framing/frame-parser.js +173 -0
  34. package/dist/cjs/framing/frame-types.js +3 -0
  35. package/dist/cjs/hashing/hash-adapter.js +90 -0
  36. package/dist/cjs/hashing/hash-frame.js +16 -0
  37. package/dist/cjs/index.js +16 -0
  38. package/dist/cjs/normalization/byte-sink.js +70 -0
  39. package/dist/cjs/normalization/jcs-profile.js +154 -0
  40. package/dist/cjs/normalization/normalize.js +56 -0
  41. package/dist/cjs/normalization/profile-registry.js +66 -0
  42. package/dist/cjs/normalization/profile.js +3 -0
  43. package/dist/cjs/normalization/raw-bytes-profile.js +27 -0
  44. package/dist/cjs/package.json +3 -0
  45. package/dist/cjs/profiles.js +9 -0
  46. package/dist/cjs/records/record-service.js +278 -0
  47. package/dist/cjs/rules/rule-set.js +211 -0
  48. package/dist/cjs/schemas.js +6 -0
  49. package/dist/cjs/validation/algorithm-validation.js +12 -0
  50. package/dist/cjs/validation/diagnostic-collector.js +159 -0
  51. package/dist/cjs/validation/digest-validation.js +48 -0
  52. package/dist/cjs/validation/identifier-validation.js +33 -0
  53. package/dist/cjs/validation/json-text-parser.js +297 -0
  54. package/dist/cjs/validation/json-value-validation.js +155 -0
  55. package/dist/cjs/validation/limit-validation.js +75 -0
  56. package/dist/cjs/validation/object-inspection.js +60 -0
  57. package/dist/cjs/validation/position-validation.js +13 -0
  58. package/dist/cjs/validation/result-helpers.js +9 -0
  59. package/dist/cjs/validation/utf8-validation.js +69 -0
  60. package/dist/cjs/validation/version-validation.js +31 -0
  61. package/dist/cjs/vectors.js +6 -0
  62. package/dist/esm/api/engine.js +266 -0
  63. package/dist/esm/api/types.js +4 -0
  64. package/dist/esm/chains/chain-builder.js +536 -0
  65. package/dist/esm/chains/duplicate-detector.js +204 -0
  66. package/dist/esm/chains/verify-chain.js +652 -0
  67. package/dist/esm/contracts/generated.js +509 -0
  68. package/dist/esm/contracts/schema-assets.js +2 -0
  69. package/dist/esm/contracts/vector-assets.js +2 -0
  70. package/dist/esm/domain/algorithm-id.js +2 -0
  71. package/dist/esm/domain/byte-view.js +4 -0
  72. package/dist/esm/domain/chain.js +2 -0
  73. package/dist/esm/domain/diagnostic.js +3 -0
  74. package/dist/esm/domain/digest.js +32 -0
  75. package/dist/esm/domain/duplicate-policy.js +2 -0
  76. package/dist/esm/domain/evidence.js +7 -0
  77. package/dist/esm/domain/identifiers.js +45 -0
  78. package/dist/esm/domain/json-value.js +2 -0
  79. package/dist/esm/domain/limits.js +21 -0
  80. package/dist/esm/domain/operation-result.js +15 -0
  81. package/dist/esm/domain/position.js +12 -0
  82. package/dist/esm/domain/protocol-version.js +2 -0
  83. package/dist/esm/domain/rule.js +2 -0
  84. package/dist/esm/domain/stream.js +2 -0
  85. package/dist/esm/domain/version.js +12 -0
  86. package/dist/esm/evidence/digest-evidence.js +19 -0
  87. package/dist/esm/evidence/evidence-parser.js +281 -0
  88. package/dist/esm/framing/frame-builders.js +114 -0
  89. package/dist/esm/framing/frame-encoder.js +234 -0
  90. package/dist/esm/framing/frame-parser.js +170 -0
  91. package/dist/esm/framing/frame-types.js +2 -0
  92. package/dist/esm/hashing/hash-adapter.js +84 -0
  93. package/dist/esm/hashing/hash-frame.js +12 -0
  94. package/dist/esm/index.js +5 -0
  95. package/dist/esm/normalization/byte-sink.js +66 -0
  96. package/dist/esm/normalization/jcs-profile.js +151 -0
  97. package/dist/esm/normalization/normalize.js +52 -0
  98. package/dist/esm/normalization/profile-registry.js +62 -0
  99. package/dist/esm/normalization/profile.js +2 -0
  100. package/dist/esm/normalization/raw-bytes-profile.js +24 -0
  101. package/dist/esm/profiles.js +6 -0
  102. package/dist/esm/records/record-service.js +270 -0
  103. package/dist/esm/rules/rule-set.js +206 -0
  104. package/dist/esm/schemas.js +2 -0
  105. package/dist/esm/validation/algorithm-validation.js +9 -0
  106. package/dist/esm/validation/diagnostic-collector.js +154 -0
  107. package/dist/esm/validation/digest-validation.js +43 -0
  108. package/dist/esm/validation/identifier-validation.js +27 -0
  109. package/dist/esm/validation/json-text-parser.js +294 -0
  110. package/dist/esm/validation/json-value-validation.js +152 -0
  111. package/dist/esm/validation/limit-validation.js +71 -0
  112. package/dist/esm/validation/object-inspection.js +54 -0
  113. package/dist/esm/validation/position-validation.js +10 -0
  114. package/dist/esm/validation/result-helpers.js +6 -0
  115. package/dist/esm/validation/utf8-validation.js +63 -0
  116. package/dist/esm/validation/version-validation.js +26 -0
  117. package/dist/esm/vectors.js +2 -0
  118. package/dist/types/api/engine.d.ts +8 -0
  119. package/dist/types/api/types.d.ts +124 -0
  120. package/dist/types/chains/chain-builder.d.ts +42 -0
  121. package/dist/types/chains/duplicate-detector.d.ts +18 -0
  122. package/dist/types/chains/verify-chain.d.ts +9 -0
  123. package/dist/types/contracts/generated.d.ts +442 -0
  124. package/dist/types/contracts/schema-assets.d.ts +2 -0
  125. package/dist/types/contracts/vector-assets.d.ts +2 -0
  126. package/dist/types/domain/algorithm-id.d.ts +4 -0
  127. package/dist/types/domain/byte-view.d.ts +1 -0
  128. package/dist/types/domain/chain.d.ts +43 -0
  129. package/dist/types/domain/diagnostic.d.ts +23 -0
  130. package/dist/types/domain/digest.d.ts +12 -0
  131. package/dist/types/domain/duplicate-policy.d.ts +26 -0
  132. package/dist/types/domain/evidence.d.ts +100 -0
  133. package/dist/types/domain/identifiers.d.ts +29 -0
  134. package/dist/types/domain/json-value.d.ts +6 -0
  135. package/dist/types/domain/limits.d.ts +13 -0
  136. package/dist/types/domain/operation-result.d.ts +12 -0
  137. package/dist/types/domain/position.d.ts +8 -0
  138. package/dist/types/domain/protocol-version.d.ts +2 -0
  139. package/dist/types/domain/rule.d.ts +34 -0
  140. package/dist/types/domain/stream.d.ts +5 -0
  141. package/dist/types/domain/version.d.ts +8 -0
  142. package/dist/types/evidence/digest-evidence.d.ts +4 -0
  143. package/dist/types/evidence/evidence-parser.d.ts +8 -0
  144. package/dist/types/framing/frame-builders.d.ts +40 -0
  145. package/dist/types/framing/frame-encoder.d.ts +6 -0
  146. package/dist/types/framing/frame-parser.d.ts +4 -0
  147. package/dist/types/framing/frame-types.d.ts +27 -0
  148. package/dist/types/hashing/hash-adapter.d.ts +12 -0
  149. package/dist/types/hashing/hash-frame.d.ts +6 -0
  150. package/dist/types/index.d.ts +8 -0
  151. package/dist/types/normalization/byte-sink.d.ts +19 -0
  152. package/dist/types/normalization/jcs-profile.d.ts +3 -0
  153. package/dist/types/normalization/normalize.d.ts +11 -0
  154. package/dist/types/normalization/profile-registry.d.ts +26 -0
  155. package/dist/types/normalization/profile.d.ts +22 -0
  156. package/dist/types/normalization/raw-bytes-profile.d.ts +2 -0
  157. package/dist/types/profiles.d.ts +8 -0
  158. package/dist/types/records/record-service.d.ts +38 -0
  159. package/dist/types/rules/rule-set.d.ts +13 -0
  160. package/dist/types/schemas.d.ts +2 -0
  161. package/dist/types/validation/algorithm-validation.d.ts +3 -0
  162. package/dist/types/validation/diagnostic-collector.d.ts +24 -0
  163. package/dist/types/validation/digest-validation.d.ts +6 -0
  164. package/dist/types/validation/identifier-validation.d.ts +6 -0
  165. package/dist/types/validation/json-text-parser.d.ts +4 -0
  166. package/dist/types/validation/json-value-validation.d.ts +4 -0
  167. package/dist/types/validation/limit-validation.d.ts +4 -0
  168. package/dist/types/validation/object-inspection.d.ts +11 -0
  169. package/dist/types/validation/position-validation.d.ts +3 -0
  170. package/dist/types/validation/result-helpers.d.ts +3 -0
  171. package/dist/types/validation/utf8-validation.d.ts +5 -0
  172. package/dist/types/validation/version-validation.d.ts +9 -0
  173. package/dist/types/vectors.d.ts +2 -0
  174. package/package.json +61 -0
  175. package/schemas/chain-summary.v1.schema.json +156 -0
  176. package/schemas/diagnostic.v1.schema.json +107 -0
  177. package/schemas/link-evidence.v1.schema.json +165 -0
  178. package/schemas/record-evidence.v1.schema.json +91 -0
  179. package/schemas/vector-set.v1.schema.json +52 -0
  180. package/vectors/evidence.json +26 -0
  181. package/vectors/framing.json +136 -0
  182. package/vectors/hashing.json +58 -0
  183. package/vectors/invalid.json +56 -0
  184. package/vectors/manifest.json +46 -0
@@ -0,0 +1,509 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Generated from contracts/diagnostic-codes.v1.json and contracts/schemas/.
3
+ // Run: npm run contracts:generate
4
+ /** @public */
5
+ export const DIAGNOSTIC_CODES = [
6
+ {
7
+ code: "INPUT_REQUIRED",
8
+ family: "input",
9
+ severity: "error",
10
+ exitCode: 3,
11
+ since: "1.0.0",
12
+ },
13
+ {
14
+ code: "INPUT_TYPE_INVALID",
15
+ family: "input",
16
+ severity: "error",
17
+ exitCode: 3,
18
+ since: "1.0.0",
19
+ },
20
+ {
21
+ code: "INPUT_LIMIT_EXCEEDED",
22
+ family: "input",
23
+ severity: "error",
24
+ exitCode: 3,
25
+ since: "1.0.0",
26
+ },
27
+ {
28
+ code: "IDENTIFIER_INVALID",
29
+ family: "input",
30
+ severity: "error",
31
+ exitCode: 3,
32
+ since: "1.0.0",
33
+ },
34
+ {
35
+ code: "VERSION_INVALID",
36
+ family: "input",
37
+ severity: "error",
38
+ exitCode: 3,
39
+ since: "1.0.0",
40
+ },
41
+ {
42
+ code: "JSON_SYNTAX_INVALID",
43
+ family: "input",
44
+ severity: "error",
45
+ exitCode: 3,
46
+ since: "1.0.0",
47
+ },
48
+ {
49
+ code: "JSON_DUPLICATE_KEY",
50
+ family: "input",
51
+ severity: "error",
52
+ exitCode: 3,
53
+ since: "1.0.0",
54
+ },
55
+ {
56
+ code: "JSON_VALUE_UNSUPPORTED",
57
+ family: "input",
58
+ severity: "error",
59
+ exitCode: 3,
60
+ since: "1.0.0",
61
+ },
62
+ {
63
+ code: "JSON_NUMBER_UNSAFE",
64
+ family: "input",
65
+ severity: "error",
66
+ exitCode: 3,
67
+ since: "1.0.0",
68
+ },
69
+ {
70
+ code: "UTF8_INVALID",
71
+ family: "input",
72
+ severity: "error",
73
+ exitCode: 3,
74
+ since: "1.0.0",
75
+ },
76
+ {
77
+ code: "NDJSON_LINE_EMPTY",
78
+ family: "input",
79
+ severity: "error",
80
+ exitCode: 3,
81
+ since: "1.0.0",
82
+ },
83
+ {
84
+ code: "NDJSON_LINE_TOO_LARGE",
85
+ family: "input",
86
+ severity: "error",
87
+ exitCode: 3,
88
+ since: "1.0.0",
89
+ },
90
+ {
91
+ code: "PROFILE_UNKNOWN",
92
+ family: "profile",
93
+ severity: "error",
94
+ exitCode: 7,
95
+ since: "1.0.0",
96
+ },
97
+ {
98
+ code: "PROFILE_VERSION_UNSUPPORTED",
99
+ family: "profile",
100
+ severity: "error",
101
+ exitCode: 7,
102
+ since: "1.0.0",
103
+ },
104
+ {
105
+ code: "PROFILE_VERSION_CONFLICT",
106
+ family: "profile",
107
+ severity: "error",
108
+ exitCode: 7,
109
+ since: "1.0.0",
110
+ },
111
+ {
112
+ code: "PROFILE_INPUT_KIND_MISMATCH",
113
+ family: "profile",
114
+ severity: "error",
115
+ exitCode: 7,
116
+ since: "1.0.0",
117
+ },
118
+ {
119
+ code: "NORMALIZATION_FAILED",
120
+ family: "profile",
121
+ severity: "error",
122
+ exitCode: 7,
123
+ since: "1.0.0",
124
+ },
125
+ {
126
+ code: "ALGORITHM_UNKNOWN",
127
+ family: "algorithm",
128
+ severity: "error",
129
+ exitCode: 7,
130
+ since: "1.0.0",
131
+ },
132
+ {
133
+ code: "ALGORITHM_FORBIDDEN",
134
+ family: "algorithm",
135
+ severity: "error",
136
+ exitCode: 7,
137
+ since: "1.0.0",
138
+ },
139
+ {
140
+ code: "ALGORITHM_VERIFY_ONLY",
141
+ family: "algorithm",
142
+ severity: "warning",
143
+ exitCode: 0,
144
+ since: "1.0.0",
145
+ },
146
+ {
147
+ code: "DIGEST_ENCODING_INVALID",
148
+ family: "algorithm",
149
+ severity: "error",
150
+ exitCode: 3,
151
+ since: "1.0.0",
152
+ },
153
+ {
154
+ code: "DIGEST_LENGTH_INVALID",
155
+ family: "algorithm",
156
+ severity: "error",
157
+ exitCode: 3,
158
+ since: "1.0.0",
159
+ },
160
+ {
161
+ code: "FRAME_MAGIC_INVALID",
162
+ family: "frame",
163
+ severity: "error",
164
+ exitCode: 3,
165
+ since: "1.0.0",
166
+ },
167
+ {
168
+ code: "FRAME_VERSION_UNSUPPORTED",
169
+ family: "frame",
170
+ severity: "error",
171
+ exitCode: 7,
172
+ since: "1.0.0",
173
+ },
174
+ {
175
+ code: "FRAME_KIND_UNKNOWN",
176
+ family: "frame",
177
+ severity: "error",
178
+ exitCode: 3,
179
+ since: "1.0.0",
180
+ },
181
+ {
182
+ code: "FRAME_FIELD_UNKNOWN",
183
+ family: "frame",
184
+ severity: "error",
185
+ exitCode: 3,
186
+ since: "1.0.0",
187
+ },
188
+ {
189
+ code: "FRAME_FIELD_MISSING",
190
+ family: "frame",
191
+ severity: "error",
192
+ exitCode: 3,
193
+ since: "1.0.0",
194
+ },
195
+ {
196
+ code: "FRAME_FIELD_DUPLICATE",
197
+ family: "frame",
198
+ severity: "error",
199
+ exitCode: 3,
200
+ since: "1.0.0",
201
+ },
202
+ {
203
+ code: "FRAME_FIELD_ORDER_INVALID",
204
+ family: "frame",
205
+ severity: "error",
206
+ exitCode: 3,
207
+ since: "1.0.0",
208
+ },
209
+ {
210
+ code: "FRAME_FIELD_TYPE_INVALID",
211
+ family: "frame",
212
+ severity: "error",
213
+ exitCode: 3,
214
+ since: "1.0.0",
215
+ },
216
+ {
217
+ code: "FRAME_LENGTH_INVALID",
218
+ family: "frame",
219
+ severity: "error",
220
+ exitCode: 3,
221
+ since: "1.0.0",
222
+ },
223
+ {
224
+ code: "FRAME_TRAILING_DATA",
225
+ family: "frame",
226
+ severity: "error",
227
+ exitCode: 3,
228
+ since: "1.0.0",
229
+ },
230
+ {
231
+ code: "EVIDENCE_SCHEMA_UNKNOWN",
232
+ family: "evidence",
233
+ severity: "error",
234
+ exitCode: 7,
235
+ since: "1.0.0",
236
+ },
237
+ {
238
+ code: "EVIDENCE_INVALID",
239
+ family: "evidence",
240
+ severity: "error",
241
+ exitCode: 3,
242
+ since: "1.0.0",
243
+ },
244
+ {
245
+ code: "CONTENT_DIGEST_MISMATCH",
246
+ family: "chain",
247
+ severity: "error",
248
+ exitCode: 1,
249
+ since: "1.0.0",
250
+ },
251
+ {
252
+ code: "RECORD_DIGEST_MISMATCH",
253
+ family: "chain",
254
+ severity: "error",
255
+ exitCode: 1,
256
+ since: "1.0.0",
257
+ },
258
+ {
259
+ code: "RECORD_ID_DUPLICATE",
260
+ family: "chain",
261
+ severity: "error",
262
+ exitCode: 1,
263
+ since: "1.0.0",
264
+ },
265
+ {
266
+ code: "CONTENT_DUPLICATE",
267
+ family: "chain",
268
+ severity: "warning",
269
+ exitCode: 0,
270
+ since: "1.0.0",
271
+ },
272
+ {
273
+ code: "LINK_DIGEST_DUPLICATE",
274
+ family: "chain",
275
+ severity: "error",
276
+ exitCode: 1,
277
+ since: "1.0.0",
278
+ },
279
+ {
280
+ code: "POSITION_MISMATCH",
281
+ family: "chain",
282
+ severity: "error",
283
+ exitCode: 1,
284
+ since: "1.0.0",
285
+ },
286
+ {
287
+ code: "PREVIOUS_LINK_MISMATCH",
288
+ family: "chain",
289
+ severity: "error",
290
+ exitCode: 1,
291
+ since: "1.0.0",
292
+ },
293
+ {
294
+ code: "LINK_DIGEST_MISMATCH",
295
+ family: "chain",
296
+ severity: "error",
297
+ exitCode: 1,
298
+ since: "1.0.0",
299
+ },
300
+ {
301
+ code: "CHAIN_CONFIGURATION_MISMATCH",
302
+ family: "chain",
303
+ severity: "error",
304
+ exitCode: 1,
305
+ since: "1.0.0",
306
+ },
307
+ {
308
+ code: "CHAIN_FORK",
309
+ family: "chain",
310
+ severity: "error",
311
+ exitCode: 1,
312
+ since: "1.0.0",
313
+ },
314
+ {
315
+ code: "EXPECTED_COUNT_MISMATCH",
316
+ family: "chain",
317
+ severity: "error",
318
+ exitCode: 1,
319
+ since: "1.0.0",
320
+ },
321
+ {
322
+ code: "FINAL_LINK_MISMATCH",
323
+ family: "chain",
324
+ severity: "error",
325
+ exitCode: 1,
326
+ since: "1.0.0",
327
+ },
328
+ {
329
+ code: "BOUNDARY_UNVERIFIED",
330
+ family: "chain",
331
+ severity: "warning",
332
+ exitCode: 4,
333
+ since: "1.0.0",
334
+ },
335
+ {
336
+ code: "EMPTY_CHAIN_FORBIDDEN",
337
+ family: "chain",
338
+ severity: "error",
339
+ exitCode: 1,
340
+ since: "1.0.0",
341
+ },
342
+ {
343
+ code: "RULE_FAILED",
344
+ family: "rule",
345
+ severity: "error",
346
+ exitCode: 1,
347
+ since: "1.0.0",
348
+ },
349
+ {
350
+ code: "RULE_EXECUTION_FAILED",
351
+ family: "rule",
352
+ severity: "error",
353
+ exitCode: 1,
354
+ since: "1.0.0",
355
+ },
356
+ {
357
+ code: "RULE_VERSION_CONFLICT",
358
+ family: "rule",
359
+ severity: "error",
360
+ exitCode: 1,
361
+ since: "1.0.0",
362
+ },
363
+ {
364
+ code: "DIAGNOSTIC_LIMIT_REACHED",
365
+ family: "operation",
366
+ severity: "warning",
367
+ exitCode: 0,
368
+ since: "1.0.0",
369
+ },
370
+ {
371
+ code: "INPUT_STREAM_FAILED",
372
+ family: "operation",
373
+ severity: "error",
374
+ exitCode: 3,
375
+ since: "1.0.0",
376
+ },
377
+ {
378
+ code: "OUTPUT_SINK_FAILED",
379
+ family: "operation",
380
+ severity: "error",
381
+ exitCode: 6,
382
+ since: "1.0.0",
383
+ },
384
+ {
385
+ code: "OPERATION_ABORTED",
386
+ family: "operation",
387
+ severity: "info",
388
+ exitCode: 130,
389
+ since: "1.0.0",
390
+ },
391
+ {
392
+ code: "RESOURCE_BUDGET_EXCEEDED",
393
+ family: "operation",
394
+ severity: "error",
395
+ exitCode: 5,
396
+ since: "1.0.0",
397
+ },
398
+ {
399
+ code: "CONCURRENT_USE_FORBIDDEN",
400
+ family: "operation",
401
+ severity: "error",
402
+ exitCode: 1,
403
+ since: "1.0.0",
404
+ },
405
+ {
406
+ code: "BUILDER_FINALIZED",
407
+ family: "operation",
408
+ severity: "error",
409
+ exitCode: 1,
410
+ since: "1.0.0",
411
+ },
412
+ {
413
+ code: "BUILDER_FAILED",
414
+ family: "operation",
415
+ severity: "error",
416
+ exitCode: 1,
417
+ since: "1.0.0",
418
+ },
419
+ {
420
+ code: "OBSERVER_FAILED",
421
+ family: "operation",
422
+ severity: "warning",
423
+ exitCode: 0,
424
+ since: "1.0.0",
425
+ },
426
+ {
427
+ code: "IO_READ_FAILED",
428
+ family: "operation",
429
+ severity: "error",
430
+ exitCode: 6,
431
+ since: "1.0.0",
432
+ },
433
+ {
434
+ code: "IO_WRITE_FAILED",
435
+ family: "operation",
436
+ severity: "error",
437
+ exitCode: 6,
438
+ since: "1.0.0",
439
+ },
440
+ {
441
+ code: "OUTPUT_EXISTS",
442
+ family: "operation",
443
+ severity: "error",
444
+ exitCode: 6,
445
+ since: "1.0.0",
446
+ },
447
+ {
448
+ code: "INTERNAL_INVARIANT_BROKEN",
449
+ family: "operation",
450
+ severity: "error",
451
+ exitCode: 70,
452
+ since: "1.0.0",
453
+ },
454
+ ];
455
+ /** @public */
456
+ export const SCHEMA_ASSETS = [
457
+ {
458
+ name: "chain-summary",
459
+ id: "urn:noeos:verification-engine:chain-summary:1",
460
+ path: "chain-summary.v1.schema.json",
461
+ },
462
+ {
463
+ name: "diagnostic",
464
+ id: "urn:noeos:verification-engine:diagnostic:1",
465
+ path: "diagnostic.v1.schema.json",
466
+ },
467
+ {
468
+ name: "link-evidence",
469
+ id: "urn:noeos:verification-engine:link-evidence:1",
470
+ path: "link-evidence.v1.schema.json",
471
+ },
472
+ {
473
+ name: "record-evidence",
474
+ id: "urn:noeos:verification-engine:record-evidence:1",
475
+ path: "record-evidence.v1.schema.json",
476
+ },
477
+ {
478
+ name: "vector-set",
479
+ id: "urn:noeos:verification-engine:vector-set:1",
480
+ path: "vector-set.v1.schema.json",
481
+ },
482
+ ];
483
+ /** @public */
484
+ export const VECTOR_SET = {
485
+ version: "1.0.0",
486
+ protocolVersion: 1,
487
+ files: [
488
+ {
489
+ path: "evidence.json",
490
+ category: "evidence",
491
+ sha256: "b4e3b4a38f67e7489eafb05528fd309ee931db66e1a0c230ffbd0e103db1f032",
492
+ },
493
+ {
494
+ path: "framing.json",
495
+ category: "framing",
496
+ sha256: "bacc590419dcee44ad0fa3e707d00a9bf322ac51243efc0a0418821fc6c92ea8",
497
+ },
498
+ {
499
+ path: "hashing.json",
500
+ category: "hashing",
501
+ sha256: "8722eba9ec01c80bdfa5f08fe13bc4c010b4712f61f417e5e2f748a8cbad44b3",
502
+ },
503
+ {
504
+ path: "invalid.json",
505
+ category: "invalid",
506
+ sha256: "05d098aa80412ce8d85aafea1b4ce4add53381e2fe4a4cda1cad88d9fa286fa6",
507
+ },
508
+ ],
509
+ };
@@ -0,0 +1,2 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ export { SCHEMA_ASSETS } from "./generated.js";
@@ -0,0 +1,2 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ export { VECTOR_SET } from "./generated.js";
@@ -0,0 +1,2 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ export const ALGORITHM_IDS = ["sha-256", "sha-384", "sha-512"];
@@ -0,0 +1,4 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ export function copyBytes(value) {
3
+ return Uint8Array.from(value);
4
+ }
@@ -0,0 +1,2 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ export {};
@@ -0,0 +1,3 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ /** @public */
3
+ export const DIAGNOSTIC_SCHEMA = "urn:noeos:verification-engine:diagnostic:1";
@@ -0,0 +1,32 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ import { copyBytes } from "./byte-view.js";
3
+ const HEX = "0123456789abcdef";
4
+ const TRUSTED_BYTES = new WeakMap();
5
+ /** @public */
6
+ export class Digest {
7
+ algorithm;
8
+ bytes;
9
+ constructor(algorithm, bytes) {
10
+ this.algorithm = algorithm;
11
+ this.bytes = bytes;
12
+ }
13
+ static fromValidated(algorithm, bytes) {
14
+ const digest = new Digest(algorithm, copyBytes(bytes));
15
+ TRUSTED_BYTES.set(digest, digest.bytes);
16
+ Object.freeze(digest);
17
+ return digest;
18
+ }
19
+ toBytes() {
20
+ return copyBytes(this.bytes);
21
+ }
22
+ toHex() {
23
+ let output = "";
24
+ for (const byte of this.bytes)
25
+ output += HEX.charAt(byte >>> 4) + HEX.charAt(byte & 0x0f);
26
+ return output;
27
+ }
28
+ }
29
+ /** Internal framing access; the returned view never escapes the trusted frame writer. */
30
+ export function digestBytesForTrustedFrame(value) {
31
+ return TRUSTED_BYTES.get(value) ?? value.toBytes();
32
+ }
@@ -0,0 +1,2 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ export {};
@@ -0,0 +1,7 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ /** @public */
3
+ export const RECORD_EVIDENCE_SCHEMA = "urn:noeos:verification-engine:record-evidence:1";
4
+ /** @public */
5
+ export const LINK_EVIDENCE_SCHEMA = "urn:noeos:verification-engine:link-evidence:1";
6
+ /** @public */
7
+ export const CHAIN_SUMMARY_EVIDENCE_SCHEMA = "urn:noeos:verification-engine:chain-summary:1";
@@ -0,0 +1,45 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ const recordIdBrand = Symbol("RecordId");
3
+ const sequenceIdBrand = Symbol("SequenceId");
4
+ const contextIdBrand = Symbol("ContextId");
5
+ const profileIdBrand = Symbol("ProfileId");
6
+ export class RecordId {
7
+ value;
8
+ [recordIdBrand] = true;
9
+ constructor(value) {
10
+ this.value = value;
11
+ }
12
+ static fromValidated(value) {
13
+ return Object.freeze(new RecordId(value));
14
+ }
15
+ }
16
+ export class SequenceId {
17
+ value;
18
+ [sequenceIdBrand] = true;
19
+ constructor(value) {
20
+ this.value = value;
21
+ }
22
+ static fromValidated(value) {
23
+ return Object.freeze(new SequenceId(value));
24
+ }
25
+ }
26
+ export class ContextId {
27
+ value;
28
+ [contextIdBrand] = true;
29
+ constructor(value) {
30
+ this.value = value;
31
+ }
32
+ static fromValidated(value) {
33
+ return Object.freeze(new ContextId(value));
34
+ }
35
+ }
36
+ export class ProfileId {
37
+ value;
38
+ [profileIdBrand] = true;
39
+ constructor(value) {
40
+ this.value = value;
41
+ }
42
+ static fromValidated(value) {
43
+ return Object.freeze(new ProfileId(value));
44
+ }
45
+ }
@@ -0,0 +1,2 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ export {};
@@ -0,0 +1,21 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ export const DEFAULT_LIMITS = Object.freeze({
3
+ maxPayloadBytes: 1 * 1024 * 1024,
4
+ maxJsonDepth: 64,
5
+ maxObjectProperties: 10_000,
6
+ maxArrayElements: 100_000,
7
+ maxStringBytes: 1 * 1024 * 1024,
8
+ maxNdjsonLineBytes: 1 * 1024 * 1024,
9
+ maxDiagnostics: 1_000,
10
+ maxFullRecords: 1_000_000,
11
+ });
12
+ export const HARD_LIMITS = Object.freeze({
13
+ maxPayloadBytes: 16 * 1024 * 1024,
14
+ maxJsonDepth: 128,
15
+ maxObjectProperties: 100_000,
16
+ maxArrayElements: 1_000_000,
17
+ maxStringBytes: 16 * 1024 * 1024,
18
+ maxNdjsonLineBytes: 16 * 1024 * 1024,
19
+ maxDiagnostics: 10_000,
20
+ maxFullRecords: 5_000_000,
21
+ });
@@ -0,0 +1,15 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ const EMPTY_DIAGNOSTICS = Object.freeze([]);
3
+ export function success(value, diagnostics = []) {
4
+ return Object.freeze({
5
+ ok: true,
6
+ value,
7
+ diagnostics: diagnostics.length === 0 ? EMPTY_DIAGNOSTICS : Object.freeze([...diagnostics]),
8
+ });
9
+ }
10
+ export function failure(diagnostics) {
11
+ return Object.freeze({
12
+ ok: false,
13
+ diagnostics: diagnostics.length === 0 ? EMPTY_DIAGNOSTICS : Object.freeze([...diagnostics]),
14
+ });
15
+ }
@@ -0,0 +1,12 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ const positionBrand = Symbol("Position");
3
+ export class Position {
4
+ value;
5
+ [positionBrand] = true;
6
+ constructor(value) {
7
+ this.value = value;
8
+ }
9
+ static fromValidated(value) {
10
+ return Object.freeze(new Position(value));
11
+ }
12
+ }
@@ -0,0 +1,2 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ export const CURRENT_PROTOCOL_VERSION = 1;
@@ -0,0 +1,2 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ export {};
@@ -0,0 +1,2 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ export {};