@uncefact/untp-utils 0.2.0 → 0.4.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 (262) hide show
  1. package/README.md +40 -12
  2. package/artefacts/context/untp/0.6.0/dcc.json +1241 -0
  3. package/artefacts/context/untp/0.6.0/dfr.json +619 -0
  4. package/artefacts/context/untp/0.6.0/dia.json +162 -0
  5. package/artefacts/context/untp/0.6.0/dpp.json +1078 -0
  6. package/artefacts/context/untp/0.6.0/dte.json +1285 -0
  7. package/artefacts/context/untp/0.6.1/dcc.json +1388 -0
  8. package/artefacts/context/untp/0.6.1/dfr.json +690 -0
  9. package/artefacts/context/untp/0.6.1/dia.json +196 -0
  10. package/artefacts/context/untp/0.6.1/dpp.json +1164 -0
  11. package/artefacts/context/untp/0.6.1/dte.json +1340 -0
  12. package/artefacts/context/untp/0.7.0/untp.json +3493 -0
  13. package/artefacts/context/vcdm/2/credentials.json +301 -0
  14. package/artefacts/manifest.json +214 -0
  15. package/artefacts/schema/untp/0.6.0/dcc.json +1131 -0
  16. package/artefacts/schema/untp/0.6.0/dfr.json +1028 -0
  17. package/artefacts/schema/untp/0.6.0/dia.json +236 -0
  18. package/artefacts/schema/untp/0.6.0/dpp.json +1219 -0
  19. package/artefacts/schema/untp/0.6.0/dte.json +845 -0
  20. package/artefacts/schema/untp/0.6.1/dcc.json +1196 -0
  21. package/artefacts/schema/untp/0.6.1/dfr.json +1037 -0
  22. package/artefacts/schema/untp/0.6.1/dia.json +236 -0
  23. package/artefacts/schema/untp/0.6.1/dpp.json +1229 -0
  24. package/artefacts/schema/untp/0.6.1/dte.json +845 -0
  25. package/artefacts/schema/untp/0.7.0/cvc.json +701 -0
  26. package/artefacts/schema/untp/0.7.0/dcc.json +1133 -0
  27. package/artefacts/schema/untp/0.7.0/dfr.json +1245 -0
  28. package/artefacts/schema/untp/0.7.0/dia.json +443 -0
  29. package/artefacts/schema/untp/0.7.0/dpp.json +1300 -0
  30. package/artefacts/schema/untp/0.7.0/dte.json +1226 -0
  31. package/artefacts/schema/untp/0.7.0/linkset.json +119 -0
  32. package/artefacts/schema/vcdm/2/verifiable-credential.json +318 -0
  33. package/build/artefacts/detect-version-from-context.d.ts +7 -2
  34. package/build/artefacts/detect-version-from-context.js +17 -6
  35. package/build/artefacts/detect-version-from-context.js.map +1 -1
  36. package/build/artefacts/detect-version-from-context.test.js +59 -0
  37. package/build/artefacts/detect-version-from-context.test.js.map +1 -1
  38. package/build/artefacts/urls.d.ts +8 -1
  39. package/build/artefacts/urls.js +17 -5
  40. package/build/artefacts/urls.js.map +1 -1
  41. package/build/artefacts/urls.test.js +63 -1
  42. package/build/artefacts/urls.test.js.map +1 -1
  43. package/build/bundle/artefacts/context/untp/0.6.0/dcc.d.ts +2 -0
  44. package/build/bundle/artefacts/context/untp/0.6.0/dcc.js +1244 -0
  45. package/build/bundle/artefacts/context/untp/0.6.0/dcc.js.map +1 -0
  46. package/build/bundle/artefacts/context/untp/0.6.0/dfr.d.ts +2 -0
  47. package/build/bundle/artefacts/context/untp/0.6.0/dfr.js +622 -0
  48. package/build/bundle/artefacts/context/untp/0.6.0/dfr.js.map +1 -0
  49. package/build/bundle/artefacts/context/untp/0.6.0/dia.d.ts +2 -0
  50. package/build/bundle/artefacts/context/untp/0.6.0/dia.js +165 -0
  51. package/build/bundle/artefacts/context/untp/0.6.0/dia.js.map +1 -0
  52. package/build/bundle/artefacts/context/untp/0.6.0/dpp.d.ts +2 -0
  53. package/build/bundle/artefacts/context/untp/0.6.0/dpp.js +1081 -0
  54. package/build/bundle/artefacts/context/untp/0.6.0/dpp.js.map +1 -0
  55. package/build/bundle/artefacts/context/untp/0.6.0/dte.d.ts +2 -0
  56. package/build/bundle/artefacts/context/untp/0.6.0/dte.js +1288 -0
  57. package/build/bundle/artefacts/context/untp/0.6.0/dte.js.map +1 -0
  58. package/build/bundle/artefacts/context/untp/0.6.1/dcc.d.ts +2 -0
  59. package/build/bundle/artefacts/context/untp/0.6.1/dcc.js +1391 -0
  60. package/build/bundle/artefacts/context/untp/0.6.1/dcc.js.map +1 -0
  61. package/build/bundle/artefacts/context/untp/0.6.1/dfr.d.ts +2 -0
  62. package/build/bundle/artefacts/context/untp/0.6.1/dfr.js +693 -0
  63. package/build/bundle/artefacts/context/untp/0.6.1/dfr.js.map +1 -0
  64. package/build/bundle/artefacts/context/untp/0.6.1/dia.d.ts +2 -0
  65. package/build/bundle/artefacts/context/untp/0.6.1/dia.js +199 -0
  66. package/build/bundle/artefacts/context/untp/0.6.1/dia.js.map +1 -0
  67. package/build/bundle/artefacts/context/untp/0.6.1/dpp.d.ts +2 -0
  68. package/build/bundle/artefacts/context/untp/0.6.1/dpp.js +1167 -0
  69. package/build/bundle/artefacts/context/untp/0.6.1/dpp.js.map +1 -0
  70. package/build/bundle/artefacts/context/untp/0.6.1/dte.d.ts +2 -0
  71. package/build/bundle/artefacts/context/untp/0.6.1/dte.js +1343 -0
  72. package/build/bundle/artefacts/context/untp/0.6.1/dte.js.map +1 -0
  73. package/build/bundle/artefacts/context/untp/0.7.0/untp.d.ts +2 -0
  74. package/build/bundle/artefacts/context/untp/0.7.0/untp.js +3496 -0
  75. package/build/bundle/artefacts/context/untp/0.7.0/untp.js.map +1 -0
  76. package/build/bundle/artefacts/context/vcdm/2/credentials.d.ts +2 -0
  77. package/build/bundle/artefacts/context/vcdm/2/credentials.js +304 -0
  78. package/build/bundle/artefacts/context/vcdm/2/credentials.js.map +1 -0
  79. package/build/bundle/artefacts/schema/untp/0.6.0/dcc.d.ts +2 -0
  80. package/build/bundle/artefacts/schema/untp/0.6.0/dcc.js +1134 -0
  81. package/build/bundle/artefacts/schema/untp/0.6.0/dcc.js.map +1 -0
  82. package/build/bundle/artefacts/schema/untp/0.6.0/dfr.d.ts +2 -0
  83. package/build/bundle/artefacts/schema/untp/0.6.0/dfr.js +1031 -0
  84. package/build/bundle/artefacts/schema/untp/0.6.0/dfr.js.map +1 -0
  85. package/build/bundle/artefacts/schema/untp/0.6.0/dia.d.ts +2 -0
  86. package/build/bundle/artefacts/schema/untp/0.6.0/dia.js +239 -0
  87. package/build/bundle/artefacts/schema/untp/0.6.0/dia.js.map +1 -0
  88. package/build/bundle/artefacts/schema/untp/0.6.0/dpp.d.ts +2 -0
  89. package/build/bundle/artefacts/schema/untp/0.6.0/dpp.js +1222 -0
  90. package/build/bundle/artefacts/schema/untp/0.6.0/dpp.js.map +1 -0
  91. package/build/bundle/artefacts/schema/untp/0.6.0/dte.d.ts +2 -0
  92. package/build/bundle/artefacts/schema/untp/0.6.0/dte.js +848 -0
  93. package/build/bundle/artefacts/schema/untp/0.6.0/dte.js.map +1 -0
  94. package/build/bundle/artefacts/schema/untp/0.6.1/dcc.d.ts +2 -0
  95. package/build/bundle/artefacts/schema/untp/0.6.1/dcc.js +1199 -0
  96. package/build/bundle/artefacts/schema/untp/0.6.1/dcc.js.map +1 -0
  97. package/build/bundle/artefacts/schema/untp/0.6.1/dfr.d.ts +2 -0
  98. package/build/bundle/artefacts/schema/untp/0.6.1/dfr.js +1040 -0
  99. package/build/bundle/artefacts/schema/untp/0.6.1/dfr.js.map +1 -0
  100. package/build/bundle/artefacts/schema/untp/0.6.1/dia.d.ts +2 -0
  101. package/build/bundle/artefacts/schema/untp/0.6.1/dia.js +239 -0
  102. package/build/bundle/artefacts/schema/untp/0.6.1/dia.js.map +1 -0
  103. package/build/bundle/artefacts/schema/untp/0.6.1/dpp.d.ts +2 -0
  104. package/build/bundle/artefacts/schema/untp/0.6.1/dpp.js +1232 -0
  105. package/build/bundle/artefacts/schema/untp/0.6.1/dpp.js.map +1 -0
  106. package/build/bundle/artefacts/schema/untp/0.6.1/dte.d.ts +2 -0
  107. package/build/bundle/artefacts/schema/untp/0.6.1/dte.js +848 -0
  108. package/build/bundle/artefacts/schema/untp/0.6.1/dte.js.map +1 -0
  109. package/build/bundle/artefacts/schema/untp/0.7.0/cvc.d.ts +2 -0
  110. package/build/bundle/artefacts/schema/untp/0.7.0/cvc.js +704 -0
  111. package/build/bundle/artefacts/schema/untp/0.7.0/cvc.js.map +1 -0
  112. package/build/bundle/artefacts/schema/untp/0.7.0/dcc.d.ts +2 -0
  113. package/build/bundle/artefacts/schema/untp/0.7.0/dcc.js +1136 -0
  114. package/build/bundle/artefacts/schema/untp/0.7.0/dcc.js.map +1 -0
  115. package/build/bundle/artefacts/schema/untp/0.7.0/dfr.d.ts +2 -0
  116. package/build/bundle/artefacts/schema/untp/0.7.0/dfr.js +1248 -0
  117. package/build/bundle/artefacts/schema/untp/0.7.0/dfr.js.map +1 -0
  118. package/build/bundle/artefacts/schema/untp/0.7.0/dia.d.ts +2 -0
  119. package/build/bundle/artefacts/schema/untp/0.7.0/dia.js +446 -0
  120. package/build/bundle/artefacts/schema/untp/0.7.0/dia.js.map +1 -0
  121. package/build/bundle/artefacts/schema/untp/0.7.0/dpp.d.ts +2 -0
  122. package/build/bundle/artefacts/schema/untp/0.7.0/dpp.js +1303 -0
  123. package/build/bundle/artefacts/schema/untp/0.7.0/dpp.js.map +1 -0
  124. package/build/bundle/artefacts/schema/untp/0.7.0/dte.d.ts +2 -0
  125. package/build/bundle/artefacts/schema/untp/0.7.0/dte.js +1229 -0
  126. package/build/bundle/artefacts/schema/untp/0.7.0/dte.js.map +1 -0
  127. package/build/bundle/artefacts/schema/untp/0.7.0/linkset.d.ts +2 -0
  128. package/build/bundle/artefacts/schema/untp/0.7.0/linkset.js +122 -0
  129. package/build/bundle/artefacts/schema/untp/0.7.0/linkset.js.map +1 -0
  130. package/build/bundle/artefacts/schema/vcdm/2/verifiable-credential.d.ts +2 -0
  131. package/build/bundle/artefacts/schema/vcdm/2/verifiable-credential.js +321 -0
  132. package/build/bundle/artefacts/schema/vcdm/2/verifiable-credential.js.map +1 -0
  133. package/build/bundle/fallback.d.ts +41 -0
  134. package/build/bundle/fallback.js +62 -0
  135. package/build/bundle/fallback.js.map +1 -0
  136. package/build/bundle/fallback.test.d.ts +1 -0
  137. package/build/bundle/fallback.test.js +124 -0
  138. package/build/bundle/fallback.test.js.map +1 -0
  139. package/build/bundle/index.d.ts +4 -0
  140. package/build/bundle/index.js +77 -0
  141. package/build/bundle/index.js.map +1 -0
  142. package/build/bundle/lookup.d.ts +14 -0
  143. package/build/bundle/lookup.js +40 -0
  144. package/build/bundle/lookup.js.map +1 -0
  145. package/build/bundle/lookup.test.d.ts +1 -0
  146. package/build/bundle/lookup.test.js +70 -0
  147. package/build/bundle/lookup.test.js.map +1 -0
  148. package/build/bundle/public.d.ts +29 -0
  149. package/build/bundle/public.js +60 -0
  150. package/build/bundle/public.js.map +1 -0
  151. package/build/bundle/public.test.d.ts +1 -0
  152. package/build/bundle/public.test.js +41 -0
  153. package/build/bundle/public.test.js.map +1 -0
  154. package/build/bundle/refresh-classify.test.d.ts +1 -0
  155. package/build/bundle/refresh-classify.test.js +20 -0
  156. package/build/bundle/refresh-classify.test.js.map +1 -0
  157. package/build/bundle/refresh-main.test.d.ts +1 -0
  158. package/build/bundle/refresh-main.test.js +98 -0
  159. package/build/bundle/refresh-main.test.js.map +1 -0
  160. package/build/common/as-date-time.d.ts +13 -0
  161. package/build/common/as-date-time.js +44 -0
  162. package/build/common/as-date-time.js.map +1 -0
  163. package/build/common/as-date-time.test.d.ts +1 -0
  164. package/build/common/as-date-time.test.js +42 -0
  165. package/build/common/as-date-time.test.js.map +1 -0
  166. package/build/common/as-non-empty-string.d.ts +11 -4
  167. package/build/common/as-non-empty-string.js +15 -5
  168. package/build/common/as-non-empty-string.js.map +1 -1
  169. package/build/common/as-non-empty-string.test.js +7 -2
  170. package/build/common/as-non-empty-string.test.js.map +1 -1
  171. package/build/common/canonical-json.d.ts +10 -0
  172. package/build/common/canonical-json.js +29 -0
  173. package/build/common/canonical-json.js.map +1 -0
  174. package/build/common/canonical-json.test.d.ts +1 -0
  175. package/build/common/canonical-json.test.js +20 -0
  176. package/build/common/canonical-json.test.js.map +1 -0
  177. package/build/common/index.d.ts +5 -0
  178. package/build/common/index.js +6 -0
  179. package/build/common/index.js.map +1 -0
  180. package/build/common/validity-window.d.ts +45 -0
  181. package/build/common/validity-window.js +68 -0
  182. package/build/common/validity-window.js.map +1 -0
  183. package/build/common/validity-window.test.d.ts +1 -0
  184. package/build/common/validity-window.test.js +67 -0
  185. package/build/common/validity-window.test.js.map +1 -0
  186. package/build/conformity-vocabulary/codes.d.ts +4 -0
  187. package/build/conformity-vocabulary/codes.js +4 -0
  188. package/build/conformity-vocabulary/codes.js.map +1 -1
  189. package/build/conformity-vocabulary/parse-conformity-scheme.test.js +150 -0
  190. package/build/conformity-vocabulary/parse-conformity-scheme.test.js.map +1 -1
  191. package/build/conformity-vocabulary/parsers/v0-7-0.parser.js +225 -0
  192. package/build/conformity-vocabulary/parsers/v0-7-0.parser.js.map +1 -1
  193. package/build/conformity-vocabulary/types.d.ts +69 -15
  194. package/build/conformity-vocabulary/validate-conformity-claim.d.ts +17 -11
  195. package/build/conformity-vocabulary/validate-conformity-claim.js +118 -13
  196. package/build/conformity-vocabulary/validate-conformity-claim.js.map +1 -1
  197. package/build/conformity-vocabulary/validate-conformity-claim.test.js +265 -0
  198. package/build/conformity-vocabulary/validate-conformity-claim.test.js.map +1 -1
  199. package/build/loaders/index.d.ts +2 -0
  200. package/build/loaders/index.js +1 -0
  201. package/build/loaders/index.js.map +1 -1
  202. package/build/loaders/jsonld-document-loader.d.ts +7 -5
  203. package/build/loaders/jsonld-document-loader.js +11 -2
  204. package/build/loaders/jsonld-document-loader.js.map +1 -1
  205. package/build/loaders/jsonld-document-loader.test.js +41 -1
  206. package/build/loaders/jsonld-document-loader.test.js.map +1 -1
  207. package/build/loaders/schema-loader.d.ts +13 -3
  208. package/build/loaders/schema-loader.js +24 -8
  209. package/build/loaders/schema-loader.js.map +1 -1
  210. package/build/loaders/schema-loader.test.js +56 -1
  211. package/build/loaders/schema-loader.test.js.map +1 -1
  212. package/build/node/errors.d.ts +9 -3
  213. package/build/node/errors.js +9 -3
  214. package/build/node/errors.js.map +1 -1
  215. package/build/node/index.d.ts +1 -1
  216. package/build/node/index.js +1 -1
  217. package/build/node/index.js.map +1 -1
  218. package/build/node/is-private-ip.d.ts +8 -4
  219. package/build/node/is-private-ip.fail-closed.test.d.ts +1 -0
  220. package/build/node/is-private-ip.fail-closed.test.js +36 -0
  221. package/build/node/is-private-ip.fail-closed.test.js.map +1 -0
  222. package/build/node/is-private-ip.js +77 -12
  223. package/build/node/is-private-ip.js.map +1 -1
  224. package/build/node/is-private-ip.test.js +28 -0
  225. package/build/node/is-private-ip.test.js.map +1 -1
  226. package/build/node/validate-public-url.d.ts +43 -11
  227. package/build/node/validate-public-url.js +68 -34
  228. package/build/node/validate-public-url.js.map +1 -1
  229. package/build/node/validate-public-url.test.js +161 -14
  230. package/build/node/validate-public-url.test.js.map +1 -1
  231. package/build/resolvers/errors.d.ts +36 -6
  232. package/build/resolvers/errors.js +41 -7
  233. package/build/resolvers/errors.js.map +1 -1
  234. package/build/resolvers/resolve-document-if-changed.test.js +7 -0
  235. package/build/resolvers/resolve-document-if-changed.test.js.map +1 -1
  236. package/build/resolvers/resolve-document.d.ts +29 -9
  237. package/build/resolvers/resolve-document.integration.test.d.ts +1 -0
  238. package/build/resolvers/resolve-document.integration.test.js +108 -0
  239. package/build/resolvers/resolve-document.integration.test.js.map +1 -0
  240. package/build/resolvers/resolve-document.js +129 -49
  241. package/build/resolvers/resolve-document.js.map +1 -1
  242. package/build/resolvers/resolve-document.test.js +462 -12
  243. package/build/resolvers/resolve-document.test.js.map +1 -1
  244. package/build/resolvers/resolve-json-document.d.ts +11 -8
  245. package/build/resolvers/resolve-json-document.js +7 -6
  246. package/build/resolvers/resolve-json-document.js.map +1 -1
  247. package/build/resolvers/resolve-json-document.test.js +21 -4
  248. package/build/resolvers/resolve-json-document.test.js.map +1 -1
  249. package/build/validation/describe-jsonld-failure.d.ts +48 -8
  250. package/build/validation/describe-jsonld-failure.js +94 -27
  251. package/build/validation/describe-jsonld-failure.js.map +1 -1
  252. package/build/validation/describe-jsonld-failure.test.js +98 -13
  253. package/build/validation/describe-jsonld-failure.test.js.map +1 -1
  254. package/build/validation/index.d.ts +3 -2
  255. package/build/validation/index.js +2 -2
  256. package/build/validation/index.js.map +1 -1
  257. package/build/validation/validate-jsonld.d.ts +29 -3
  258. package/build/validation/validate-jsonld.js +49 -22
  259. package/build/validation/validate-jsonld.js.map +1 -1
  260. package/build/validation/validate-jsonld.test.js +62 -5
  261. package/build/validation/validate-jsonld.test.js.map +1 -1
  262. package/package.json +23 -3
package/README.md CHANGED
@@ -5,7 +5,7 @@ Shared utility primitives for UNTP packages and consumers.
5
5
  ## Installation
6
6
 
7
7
  ```bash
8
- yarn add @uncefact/untp-utils
8
+ npm install @uncefact/untp-utils
9
9
  ```
10
10
 
11
11
  ## Sub-entries
@@ -14,17 +14,19 @@ The package root exports only `StructuredError`, the base class every
14
14
  sub-entry throws from. Each capability is imported from its own subpath so a
15
15
  consumer only pulls in the dependencies it needs.
16
16
 
17
- | Subpath | Provides |
18
- | -------------------------------------------- | --------------------------------------------------------------------------------------------- |
19
- | `@uncefact/untp-utils/multibase-digest` | `MultibaseDigest`: encode, decode and verify multibase-encoded multihashes. |
20
- | `@uncefact/untp-utils/artefacts` | UNTP schema, context and docs URL helpers, and `detectVersionFromContext`. |
21
- | `@uncefact/untp-utils/conformity-vocabulary` | Parses a UNTP conformity scheme or catalogue and validates a conformity claim against it. |
22
- | `@uncefact/untp-utils/validation` | Validates a payload against JSON Schema and expands it as JSON-LD, both guarded against SSRF. |
23
- | `@uncefact/untp-utils/loaders` | The schema and JSON-LD document loaders `validation` runs on. |
24
- | `@uncefact/untp-utils/resolvers` | IP-pinned document fetching with a conditional-fetch skip chain. |
25
- | `@uncefact/untp-utils/node` | `validatePublicUrl`, the SSRF guard the other sub-entries fetch through. |
26
- | `@uncefact/untp-utils/cache` | `createInMemoryTtlCache`, a bounded in-memory TTL cache. |
27
- | `@uncefact/untp-utils/http-headers` | HTTP header parsing, and the default `User-Agent` guarded fetches send. |
17
+ | Subpath | Provides |
18
+ | -------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
19
+ | `@uncefact/untp-utils/multibase-digest` | `MultibaseDigest`: encode, decode and verify multibase-encoded multihashes. |
20
+ | `@uncefact/untp-utils/common` | Document-field readers (`asDateTime`, `asNonEmptyString`, `makeRequireString`), `evaluateValidityWindow` and `ValidityWindowOutcome`, and `canonicalJson` for deterministic JSON serialisation. |
21
+ | `@uncefact/untp-utils/artefacts` | UNTP schema, context and docs URL helpers, the `isV070OrAbove` version predicate, and `detectVersionFromContext`. |
22
+ | `@uncefact/untp-utils/conformity-vocabulary` | Parses a UNTP conformity scheme or catalogue, including `ConformityScore`, `ConformityScoringFramework` and `ConformityRequiredPerformance`, and validates a conformity claim against it, covering score-code membership and `ConformityReferenceResolution` catalogue tier references. |
23
+ | `@uncefact/untp-utils/validation` | Validates a payload against JSON Schema and expands it as JSON-LD, both guarded against SSRF. |
24
+ | `@uncefact/untp-utils/loaders` | The schema and JSON-LD document loaders `validation` runs on. |
25
+ | `@uncefact/untp-utils/resolvers` | IP-pinned document fetching with a conditional-fetch skip chain. |
26
+ | `@uncefact/untp-utils/node` | `validatePublicUrl`, the SSRF guard the other sub-entries fetch through, with its `isPrivateHostname`, `isPrivateIpv4` and `isPrivateIpv6` predicates and its error classes. |
27
+ | `@uncefact/untp-utils/cache` | `createInMemoryTtlCache`, a bounded in-memory TTL cache. |
28
+ | `@uncefact/untp-utils/bundled-artefacts` | The bundled UNTP and VCDM schemas and contexts, keyed by published URL. |
29
+ | `@uncefact/untp-utils/http-headers` | HTTP header parsing, and the default `User-Agent` guarded fetches send. |
28
30
 
29
31
  Every sub-entry throws a typed error class on failure rather than returning
30
32
  an outcome object. See [RELEASE_NOTES.md](./RELEASE_NOTES.md) for what each
@@ -58,3 +60,29 @@ await parsed.verify(new TextEncoder().encode('hello')); // true | false
58
60
  Supported algorithms: `sha2-256`, `sha2-512`.
59
61
 
60
62
  Supported multibase encodings: `base58btc`, `base64`.
63
+
64
+ ## Bundled UNTP artefacts
65
+
66
+ The bundle contains the enumerated artefacts for UNTP 0.6.0, 0.6.1 and 0.7.0: the five core credential schemas and their per-type contexts for 0.6.0 and 0.6.1, those five schemas plus the Conformity Scheme and Identity Resolver link set schemas and the unified context for 0.7.0, together with the W3C Verifiable Credentials Data Model v2 context and schema. These artefacts ship inside the package under `artefacts/` and are listed in `artefacts/manifest.json`. `createSchemaLoader` and `createJsonLdDocumentLoader` serve the bundled copy when the host cannot deliver one of those URLs (its name does not resolve, it cannot be reached, it answers a non-2xx status, it returns a body that is not JSON, or it exceeds the resolver's size, redirect or time bounds), and the optional `onBundledFallback` callback runs only when a substitution happens, not on cache hits. Two failures are deliberately not covered and surface exactly as before: a URL the SSRF guard refused (`url.private-address`, `url.private-hostname`, `url.unsupported-scheme` or `url.invalid` anywhere on the cause chain), because a UNTP host resolving to a private address is a signal the operator must see, and any error that is not a typed resolver or resolution failure, because a bug in the fetch path must not read as an outage. The 0.6.x context entries are indexed under both the base URLs the schemas declare (`.../dpp/0.6.1/`) and their `/context/` aliases (`.../dpp/0.6.1/context/`). `isHostDeliveryFailure` is the rule, exported for consumers that want the same split. Pass `bundledFallback: false` to switch the fallback off. URLs the bundle does not carry fail exactly as before.
67
+
68
+ Consumers can also read the bundle directly through `@uncefact/untp-utils/bundled-artefacts`, keyed by the published URL, for example to validate against a schema with no network at all:
69
+
70
+ ```ts
71
+ import { findBundledArtefact, loadBundledArtefacts } from '@uncefact/untp-utils/bundled-artefacts';
72
+
73
+ const linksetSchema = await findBundledArtefact(
74
+ 'https://untp.unece.org/artefacts/schema/v0.7.0/idr/LinksetSchema.json',
75
+ );
76
+ const everything = await loadBundledArtefacts(); // ReadonlyMap<url, artefact>
77
+ ```
78
+
79
+ The raw JSON files and `artefacts/manifest.json` (URL, file, source and sha256 per artefact) ship in the package too.
80
+
81
+ Published artefacts are immutable once released, so the bundle only grows when a new UNTP version is released. `scripts/refresh-artefacts.mjs` fetches every artefact from its source of truth (the specification repository at the release tag for 0.7.0 and later, the publishing host for earlier versions), writes any it does not have yet, refuses to overwrite a bundled copy that differs from the published one, and regenerates the `src/bundle/` modules the loaders import.
82
+
83
+ ```bash
84
+ pnpm --filter @uncefact/untp-utils artefacts:check # dry run: compare the bundle with what is published; fails on any difference
85
+ pnpm --filter @uncefact/untp-utils artefacts:refresh # add newly listed artefacts to the bundle
86
+ ```
87
+
88
+ To add a version, add its entries to `ARTEFACTS` in the script and run `artefacts:refresh`. A bundled copy that differs from the published one is overwritten only with `node scripts/refresh-artefacts.mjs --force`, after the difference has been understood.