@uncefact/untp-utils 0.1.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +52 -2
- package/artefacts/context/untp/0.6.0/dcc.json +1241 -0
- package/artefacts/context/untp/0.6.0/dfr.json +619 -0
- package/artefacts/context/untp/0.6.0/dia.json +162 -0
- package/artefacts/context/untp/0.6.0/dpp.json +1078 -0
- package/artefacts/context/untp/0.6.0/dte.json +1285 -0
- package/artefacts/context/untp/0.6.1/dcc.json +1388 -0
- package/artefacts/context/untp/0.6.1/dfr.json +690 -0
- package/artefacts/context/untp/0.6.1/dia.json +196 -0
- package/artefacts/context/untp/0.6.1/dpp.json +1164 -0
- package/artefacts/context/untp/0.6.1/dte.json +1340 -0
- package/artefacts/context/untp/0.7.0/untp.json +3493 -0
- package/artefacts/context/vcdm/2/credentials.json +301 -0
- package/artefacts/manifest.json +214 -0
- package/artefacts/schema/untp/0.6.0/dcc.json +1131 -0
- package/artefacts/schema/untp/0.6.0/dfr.json +1028 -0
- package/artefacts/schema/untp/0.6.0/dia.json +236 -0
- package/artefacts/schema/untp/0.6.0/dpp.json +1219 -0
- package/artefacts/schema/untp/0.6.0/dte.json +845 -0
- package/artefacts/schema/untp/0.6.1/dcc.json +1196 -0
- package/artefacts/schema/untp/0.6.1/dfr.json +1037 -0
- package/artefacts/schema/untp/0.6.1/dia.json +236 -0
- package/artefacts/schema/untp/0.6.1/dpp.json +1229 -0
- package/artefacts/schema/untp/0.6.1/dte.json +845 -0
- package/artefacts/schema/untp/0.7.0/cvc.json +701 -0
- package/artefacts/schema/untp/0.7.0/dcc.json +1133 -0
- package/artefacts/schema/untp/0.7.0/dfr.json +1245 -0
- package/artefacts/schema/untp/0.7.0/dia.json +443 -0
- package/artefacts/schema/untp/0.7.0/dpp.json +1300 -0
- package/artefacts/schema/untp/0.7.0/dte.json +1226 -0
- package/artefacts/schema/untp/0.7.0/linkset.json +119 -0
- package/artefacts/schema/vcdm/2/verifiable-credential.json +318 -0
- package/build/artefacts/detect-version-from-context.d.ts +46 -0
- package/build/artefacts/detect-version-from-context.js +77 -0
- package/build/artefacts/detect-version-from-context.js.map +1 -0
- package/build/artefacts/detect-version-from-context.test.d.ts +1 -0
- package/build/artefacts/detect-version-from-context.test.js +69 -0
- package/build/artefacts/detect-version-from-context.test.js.map +1 -0
- package/build/artefacts/index.d.ts +3 -0
- package/build/artefacts/index.js +4 -0
- package/build/artefacts/index.js.map +1 -0
- package/build/artefacts/urls.d.ts +85 -0
- package/build/artefacts/urls.js +141 -0
- package/build/artefacts/urls.js.map +1 -0
- package/build/artefacts/urls.test.d.ts +1 -0
- package/build/artefacts/urls.test.js +99 -0
- package/build/artefacts/urls.test.js.map +1 -0
- package/build/artefacts/version.d.ts +9 -0
- package/build/artefacts/version.js +17 -0
- package/build/artefacts/version.js.map +1 -0
- package/build/artefacts/version.test.d.ts +1 -0
- package/build/artefacts/version.test.js +16 -0
- package/build/artefacts/version.test.js.map +1 -0
- package/build/bundle/artefacts/context/untp/0.6.0/dcc.d.ts +2 -0
- package/build/bundle/artefacts/context/untp/0.6.0/dcc.js +1244 -0
- package/build/bundle/artefacts/context/untp/0.6.0/dcc.js.map +1 -0
- package/build/bundle/artefacts/context/untp/0.6.0/dfr.d.ts +2 -0
- package/build/bundle/artefacts/context/untp/0.6.0/dfr.js +622 -0
- package/build/bundle/artefacts/context/untp/0.6.0/dfr.js.map +1 -0
- package/build/bundle/artefacts/context/untp/0.6.0/dia.d.ts +2 -0
- package/build/bundle/artefacts/context/untp/0.6.0/dia.js +165 -0
- package/build/bundle/artefacts/context/untp/0.6.0/dia.js.map +1 -0
- package/build/bundle/artefacts/context/untp/0.6.0/dpp.d.ts +2 -0
- package/build/bundle/artefacts/context/untp/0.6.0/dpp.js +1081 -0
- package/build/bundle/artefacts/context/untp/0.6.0/dpp.js.map +1 -0
- package/build/bundle/artefacts/context/untp/0.6.0/dte.d.ts +2 -0
- package/build/bundle/artefacts/context/untp/0.6.0/dte.js +1288 -0
- package/build/bundle/artefacts/context/untp/0.6.0/dte.js.map +1 -0
- package/build/bundle/artefacts/context/untp/0.6.1/dcc.d.ts +2 -0
- package/build/bundle/artefacts/context/untp/0.6.1/dcc.js +1391 -0
- package/build/bundle/artefacts/context/untp/0.6.1/dcc.js.map +1 -0
- package/build/bundle/artefacts/context/untp/0.6.1/dfr.d.ts +2 -0
- package/build/bundle/artefacts/context/untp/0.6.1/dfr.js +693 -0
- package/build/bundle/artefacts/context/untp/0.6.1/dfr.js.map +1 -0
- package/build/bundle/artefacts/context/untp/0.6.1/dia.d.ts +2 -0
- package/build/bundle/artefacts/context/untp/0.6.1/dia.js +199 -0
- package/build/bundle/artefacts/context/untp/0.6.1/dia.js.map +1 -0
- package/build/bundle/artefacts/context/untp/0.6.1/dpp.d.ts +2 -0
- package/build/bundle/artefacts/context/untp/0.6.1/dpp.js +1167 -0
- package/build/bundle/artefacts/context/untp/0.6.1/dpp.js.map +1 -0
- package/build/bundle/artefacts/context/untp/0.6.1/dte.d.ts +2 -0
- package/build/bundle/artefacts/context/untp/0.6.1/dte.js +1343 -0
- package/build/bundle/artefacts/context/untp/0.6.1/dte.js.map +1 -0
- package/build/bundle/artefacts/context/untp/0.7.0/untp.d.ts +2 -0
- package/build/bundle/artefacts/context/untp/0.7.0/untp.js +3496 -0
- package/build/bundle/artefacts/context/untp/0.7.0/untp.js.map +1 -0
- package/build/bundle/artefacts/context/vcdm/2/credentials.d.ts +2 -0
- package/build/bundle/artefacts/context/vcdm/2/credentials.js +304 -0
- package/build/bundle/artefacts/context/vcdm/2/credentials.js.map +1 -0
- package/build/bundle/artefacts/schema/untp/0.6.0/dcc.d.ts +2 -0
- package/build/bundle/artefacts/schema/untp/0.6.0/dcc.js +1134 -0
- package/build/bundle/artefacts/schema/untp/0.6.0/dcc.js.map +1 -0
- package/build/bundle/artefacts/schema/untp/0.6.0/dfr.d.ts +2 -0
- package/build/bundle/artefacts/schema/untp/0.6.0/dfr.js +1031 -0
- package/build/bundle/artefacts/schema/untp/0.6.0/dfr.js.map +1 -0
- package/build/bundle/artefacts/schema/untp/0.6.0/dia.d.ts +2 -0
- package/build/bundle/artefacts/schema/untp/0.6.0/dia.js +239 -0
- package/build/bundle/artefacts/schema/untp/0.6.0/dia.js.map +1 -0
- package/build/bundle/artefacts/schema/untp/0.6.0/dpp.d.ts +2 -0
- package/build/bundle/artefacts/schema/untp/0.6.0/dpp.js +1222 -0
- package/build/bundle/artefacts/schema/untp/0.6.0/dpp.js.map +1 -0
- package/build/bundle/artefacts/schema/untp/0.6.0/dte.d.ts +2 -0
- package/build/bundle/artefacts/schema/untp/0.6.0/dte.js +848 -0
- package/build/bundle/artefacts/schema/untp/0.6.0/dte.js.map +1 -0
- package/build/bundle/artefacts/schema/untp/0.6.1/dcc.d.ts +2 -0
- package/build/bundle/artefacts/schema/untp/0.6.1/dcc.js +1199 -0
- package/build/bundle/artefacts/schema/untp/0.6.1/dcc.js.map +1 -0
- package/build/bundle/artefacts/schema/untp/0.6.1/dfr.d.ts +2 -0
- package/build/bundle/artefacts/schema/untp/0.6.1/dfr.js +1040 -0
- package/build/bundle/artefacts/schema/untp/0.6.1/dfr.js.map +1 -0
- package/build/bundle/artefacts/schema/untp/0.6.1/dia.d.ts +2 -0
- package/build/bundle/artefacts/schema/untp/0.6.1/dia.js +239 -0
- package/build/bundle/artefacts/schema/untp/0.6.1/dia.js.map +1 -0
- package/build/bundle/artefacts/schema/untp/0.6.1/dpp.d.ts +2 -0
- package/build/bundle/artefacts/schema/untp/0.6.1/dpp.js +1232 -0
- package/build/bundle/artefacts/schema/untp/0.6.1/dpp.js.map +1 -0
- package/build/bundle/artefacts/schema/untp/0.6.1/dte.d.ts +2 -0
- package/build/bundle/artefacts/schema/untp/0.6.1/dte.js +848 -0
- package/build/bundle/artefacts/schema/untp/0.6.1/dte.js.map +1 -0
- package/build/bundle/artefacts/schema/untp/0.7.0/cvc.d.ts +2 -0
- package/build/bundle/artefacts/schema/untp/0.7.0/cvc.js +704 -0
- package/build/bundle/artefacts/schema/untp/0.7.0/cvc.js.map +1 -0
- package/build/bundle/artefacts/schema/untp/0.7.0/dcc.d.ts +2 -0
- package/build/bundle/artefacts/schema/untp/0.7.0/dcc.js +1136 -0
- package/build/bundle/artefacts/schema/untp/0.7.0/dcc.js.map +1 -0
- package/build/bundle/artefacts/schema/untp/0.7.0/dfr.d.ts +2 -0
- package/build/bundle/artefacts/schema/untp/0.7.0/dfr.js +1248 -0
- package/build/bundle/artefacts/schema/untp/0.7.0/dfr.js.map +1 -0
- package/build/bundle/artefacts/schema/untp/0.7.0/dia.d.ts +2 -0
- package/build/bundle/artefacts/schema/untp/0.7.0/dia.js +446 -0
- package/build/bundle/artefacts/schema/untp/0.7.0/dia.js.map +1 -0
- package/build/bundle/artefacts/schema/untp/0.7.0/dpp.d.ts +2 -0
- package/build/bundle/artefacts/schema/untp/0.7.0/dpp.js +1303 -0
- package/build/bundle/artefacts/schema/untp/0.7.0/dpp.js.map +1 -0
- package/build/bundle/artefacts/schema/untp/0.7.0/dte.d.ts +2 -0
- package/build/bundle/artefacts/schema/untp/0.7.0/dte.js +1229 -0
- package/build/bundle/artefacts/schema/untp/0.7.0/dte.js.map +1 -0
- package/build/bundle/artefacts/schema/untp/0.7.0/linkset.d.ts +2 -0
- package/build/bundle/artefacts/schema/untp/0.7.0/linkset.js +122 -0
- package/build/bundle/artefacts/schema/untp/0.7.0/linkset.js.map +1 -0
- package/build/bundle/artefacts/schema/vcdm/2/verifiable-credential.d.ts +2 -0
- package/build/bundle/artefacts/schema/vcdm/2/verifiable-credential.js +321 -0
- package/build/bundle/artefacts/schema/vcdm/2/verifiable-credential.js.map +1 -0
- package/build/bundle/fallback.d.ts +41 -0
- package/build/bundle/fallback.js +62 -0
- package/build/bundle/fallback.js.map +1 -0
- package/build/bundle/fallback.test.d.ts +1 -0
- package/build/bundle/fallback.test.js +124 -0
- package/build/bundle/fallback.test.js.map +1 -0
- package/build/bundle/index.d.ts +4 -0
- package/build/bundle/index.js +77 -0
- package/build/bundle/index.js.map +1 -0
- package/build/bundle/lookup.d.ts +14 -0
- package/build/bundle/lookup.js +40 -0
- package/build/bundle/lookup.js.map +1 -0
- package/build/bundle/lookup.test.d.ts +1 -0
- package/build/bundle/lookup.test.js +70 -0
- package/build/bundle/lookup.test.js.map +1 -0
- package/build/bundle/public.d.ts +25 -0
- package/build/bundle/public.js +56 -0
- package/build/bundle/public.js.map +1 -0
- package/build/bundle/public.test.d.ts +1 -0
- package/build/bundle/public.test.js +35 -0
- package/build/bundle/public.test.js.map +1 -0
- package/build/bundle/refresh-classify.test.d.ts +1 -0
- package/build/bundle/refresh-classify.test.js +20 -0
- package/build/bundle/refresh-classify.test.js.map +1 -0
- package/build/bundle/refresh-main.test.d.ts +1 -0
- package/build/bundle/refresh-main.test.js +98 -0
- package/build/bundle/refresh-main.test.js.map +1 -0
- package/build/cache/in-memory-ttl-cache.d.ts +2 -0
- package/build/cache/in-memory-ttl-cache.js +76 -0
- package/build/cache/in-memory-ttl-cache.js.map +1 -0
- package/build/cache/in-memory-ttl-cache.test.d.ts +1 -0
- package/build/cache/in-memory-ttl-cache.test.js +236 -0
- package/build/cache/in-memory-ttl-cache.test.js.map +1 -0
- package/build/cache/index.d.ts +2 -0
- package/build/cache/index.js +2 -0
- package/build/cache/index.js.map +1 -0
- package/build/cache/ttl-cache.d.ts +22 -0
- package/build/cache/ttl-cache.js +2 -0
- package/build/cache/ttl-cache.js.map +1 -0
- package/build/common/as-date-time.d.ts +13 -0
- package/build/common/as-date-time.js +44 -0
- package/build/common/as-date-time.js.map +1 -0
- package/build/common/as-date-time.test.d.ts +1 -0
- package/build/common/as-date-time.test.js +42 -0
- package/build/common/as-date-time.test.js.map +1 -0
- package/build/common/as-non-empty-string.d.ts +14 -0
- package/build/common/as-non-empty-string.js +20 -0
- package/build/common/as-non-empty-string.js.map +1 -0
- package/build/common/as-non-empty-string.test.d.ts +1 -0
- package/build/common/as-non-empty-string.test.js +30 -0
- package/build/common/as-non-empty-string.test.js.map +1 -0
- package/build/common/index.d.ts +4 -0
- package/build/common/index.js +5 -0
- package/build/common/index.js.map +1 -0
- package/build/common/require-string.d.ts +12 -0
- package/build/common/require-string.js +27 -0
- package/build/common/require-string.js.map +1 -0
- package/build/common/require-string.test.d.ts +1 -0
- package/build/common/require-string.test.js +53 -0
- package/build/common/require-string.test.js.map +1 -0
- package/build/common/validity-window.d.ts +45 -0
- package/build/common/validity-window.js +68 -0
- package/build/common/validity-window.js.map +1 -0
- package/build/common/validity-window.test.d.ts +1 -0
- package/build/common/validity-window.test.js +67 -0
- package/build/common/validity-window.test.js.map +1 -0
- package/build/conformity-vocabulary/codes.d.ts +10 -0
- package/build/conformity-vocabulary/codes.js +10 -0
- package/build/conformity-vocabulary/codes.js.map +1 -0
- package/build/conformity-vocabulary/errors.d.ts +44 -0
- package/build/conformity-vocabulary/errors.js +68 -0
- package/build/conformity-vocabulary/errors.js.map +1 -0
- package/build/conformity-vocabulary/index.d.ts +6 -0
- package/build/conformity-vocabulary/index.js +7 -0
- package/build/conformity-vocabulary/index.js.map +1 -0
- package/build/conformity-vocabulary/parse-conformity-catalogue.d.ts +26 -0
- package/build/conformity-vocabulary/parse-conformity-catalogue.js +106 -0
- package/build/conformity-vocabulary/parse-conformity-catalogue.js.map +1 -0
- package/build/conformity-vocabulary/parse-conformity-catalogue.test.d.ts +1 -0
- package/build/conformity-vocabulary/parse-conformity-catalogue.test.js +327 -0
- package/build/conformity-vocabulary/parse-conformity-catalogue.test.js.map +1 -0
- package/build/conformity-vocabulary/parse-conformity-scheme.d.ts +28 -0
- package/build/conformity-vocabulary/parse-conformity-scheme.js +47 -0
- package/build/conformity-vocabulary/parse-conformity-scheme.js.map +1 -0
- package/build/conformity-vocabulary/parse-conformity-scheme.test.d.ts +1 -0
- package/build/conformity-vocabulary/parse-conformity-scheme.test.js +284 -0
- package/build/conformity-vocabulary/parse-conformity-scheme.test.js.map +1 -0
- package/build/conformity-vocabulary/parsers/v0-7-0.parser.d.ts +19 -0
- package/build/conformity-vocabulary/parsers/v0-7-0.parser.js +219 -0
- package/build/conformity-vocabulary/parsers/v0-7-0.parser.js.map +1 -0
- package/build/conformity-vocabulary/types.d.ts +180 -0
- package/build/conformity-vocabulary/types.js +2 -0
- package/build/conformity-vocabulary/types.js.map +1 -0
- package/build/conformity-vocabulary/validate-conformity-claim.d.ts +26 -0
- package/build/conformity-vocabulary/validate-conformity-claim.js +165 -0
- package/build/conformity-vocabulary/validate-conformity-claim.js.map +1 -0
- package/build/conformity-vocabulary/validate-conformity-claim.test.d.ts +1 -0
- package/build/conformity-vocabulary/validate-conformity-claim.test.js +478 -0
- package/build/conformity-vocabulary/validate-conformity-claim.test.js.map +1 -0
- package/build/http-headers/index.d.ts +5 -0
- package/build/http-headers/index.js +6 -0
- package/build/http-headers/index.js.map +1 -0
- package/build/http-headers/is-safe-header-value.d.ts +10 -0
- package/build/http-headers/is-safe-header-value.js +15 -0
- package/build/http-headers/is-safe-header-value.js.map +1 -0
- package/build/http-headers/is-safe-header-value.test.d.ts +1 -0
- package/build/http-headers/is-safe-header-value.test.js +37 -0
- package/build/http-headers/is-safe-header-value.test.js.map +1 -0
- package/build/http-headers/parse-entity-tag.d.ts +9 -0
- package/build/http-headers/parse-entity-tag.js +18 -0
- package/build/http-headers/parse-entity-tag.js.map +1 -0
- package/build/http-headers/parse-entity-tag.test.d.ts +1 -0
- package/build/http-headers/parse-entity-tag.test.js +41 -0
- package/build/http-headers/parse-entity-tag.test.js.map +1 -0
- package/build/http-headers/parse-imf-date.d.ts +13 -0
- package/build/http-headers/parse-imf-date.js +23 -0
- package/build/http-headers/parse-imf-date.js.map +1 -0
- package/build/http-headers/parse-imf-date.test.d.ts +1 -0
- package/build/http-headers/parse-imf-date.test.js +31 -0
- package/build/http-headers/parse-imf-date.test.js.map +1 -0
- package/build/http-headers/parse-media-type.d.ts +8 -0
- package/build/http-headers/parse-media-type.js +21 -0
- package/build/http-headers/parse-media-type.js.map +1 -0
- package/build/http-headers/parse-media-type.test.d.ts +1 -0
- package/build/http-headers/parse-media-type.test.js +39 -0
- package/build/http-headers/parse-media-type.test.js.map +1 -0
- package/build/http-headers/user-agent.d.ts +35 -0
- package/build/http-headers/user-agent.js +45 -0
- package/build/http-headers/user-agent.js.map +1 -0
- package/build/http-headers/user-agent.test.d.ts +1 -0
- package/build/http-headers/user-agent.test.js +27 -0
- package/build/http-headers/user-agent.test.js.map +1 -0
- package/build/index.d.ts +1 -1
- package/build/index.js +1 -1
- package/build/index.js.map +1 -1
- package/build/loaders/errors.d.ts +21 -0
- package/build/loaders/errors.js +45 -0
- package/build/loaders/errors.js.map +1 -0
- package/build/loaders/index.d.ts +5 -0
- package/build/loaders/index.js +5 -0
- package/build/loaders/index.js.map +1 -0
- package/build/loaders/jsonld-document-loader.d.ts +48 -0
- package/build/loaders/jsonld-document-loader.js +43 -0
- package/build/loaders/jsonld-document-loader.js.map +1 -0
- package/build/loaders/jsonld-document-loader.test.d.ts +1 -0
- package/build/loaders/jsonld-document-loader.test.js +111 -0
- package/build/loaders/jsonld-document-loader.test.js.map +1 -0
- package/build/loaders/schema-loader.d.ts +31 -0
- package/build/loaders/schema-loader.js +83 -0
- package/build/loaders/schema-loader.js.map +1 -0
- package/build/loaders/schema-loader.ssrf.test.d.ts +1 -0
- package/build/loaders/schema-loader.ssrf.test.js +55 -0
- package/build/loaders/schema-loader.ssrf.test.js.map +1 -0
- package/build/loaders/schema-loader.test.d.ts +1 -0
- package/build/loaders/schema-loader.test.js +217 -0
- package/build/loaders/schema-loader.test.js.map +1 -0
- package/build/multibase-digest/multibase-digest.d.ts +23 -0
- package/build/multibase-digest/multibase-digest.js +40 -0
- package/build/multibase-digest/multibase-digest.js.map +1 -1
- package/build/multibase-digest/multibase-digest.test.js +46 -0
- package/build/multibase-digest/multibase-digest.test.js.map +1 -1
- package/build/node/errors.d.ts +47 -0
- package/build/node/errors.js +86 -0
- package/build/node/errors.js.map +1 -0
- package/build/node/index.d.ts +3 -0
- package/build/node/index.js +4 -0
- package/build/node/index.js.map +1 -0
- package/build/node/is-private-ip.d.ts +45 -0
- package/build/node/is-private-ip.fail-closed.test.d.ts +1 -0
- package/build/node/is-private-ip.fail-closed.test.js +36 -0
- package/build/node/is-private-ip.fail-closed.test.js.map +1 -0
- package/build/node/is-private-ip.js +203 -0
- package/build/node/is-private-ip.js.map +1 -0
- package/build/node/is-private-ip.test.d.ts +1 -0
- package/build/node/is-private-ip.test.js +124 -0
- package/build/node/is-private-ip.test.js.map +1 -0
- package/build/node/validate-public-url.d.ts +81 -0
- package/build/node/validate-public-url.js +128 -0
- package/build/node/validate-public-url.js.map +1 -0
- package/build/node/validate-public-url.test.d.ts +1 -0
- package/build/node/validate-public-url.test.js +324 -0
- package/build/node/validate-public-url.test.js.map +1 -0
- package/build/resolvers/errors.d.ts +73 -0
- package/build/resolvers/errors.js +133 -0
- package/build/resolvers/errors.js.map +1 -0
- package/build/resolvers/index.d.ts +5 -0
- package/build/resolvers/index.js +6 -0
- package/build/resolvers/index.js.map +1 -0
- package/build/resolvers/resolve-document-if-changed.d.ts +48 -0
- package/build/resolvers/resolve-document-if-changed.js +42 -0
- package/build/resolvers/resolve-document-if-changed.js.map +1 -0
- package/build/resolvers/resolve-document-if-changed.test.d.ts +1 -0
- package/build/resolvers/resolve-document-if-changed.test.js +116 -0
- package/build/resolvers/resolve-document-if-changed.test.js.map +1 -0
- package/build/resolvers/resolve-document.d.ts +106 -0
- package/build/resolvers/resolve-document.integration.test.d.ts +1 -0
- package/build/resolvers/resolve-document.integration.test.js +108 -0
- package/build/resolvers/resolve-document.integration.test.js.map +1 -0
- package/build/resolvers/resolve-document.js +319 -0
- package/build/resolvers/resolve-document.js.map +1 -0
- package/build/resolvers/resolve-document.test.d.ts +1 -0
- package/build/resolvers/resolve-document.test.js +749 -0
- package/build/resolvers/resolve-document.test.js.map +1 -0
- package/build/resolvers/resolve-json-document.d.ts +43 -0
- package/build/resolvers/resolve-json-document.js +43 -0
- package/build/resolvers/resolve-json-document.js.map +1 -0
- package/build/resolvers/resolve-json-document.test.d.ts +1 -0
- package/build/resolvers/resolve-json-document.test.js +78 -0
- package/build/resolvers/resolve-json-document.test.js.map +1 -0
- package/build/structured-error.d.ts +49 -0
- package/build/structured-error.js +17 -0
- package/build/structured-error.js.map +1 -0
- package/build/structured-error.test.d.ts +1 -0
- package/build/structured-error.test.js +112 -0
- package/build/structured-error.test.js.map +1 -0
- package/build/validation/describe-jsonld-failure.d.ts +90 -0
- package/build/validation/describe-jsonld-failure.js +171 -0
- package/build/validation/describe-jsonld-failure.js.map +1 -0
- package/build/validation/describe-jsonld-failure.test.d.ts +1 -0
- package/build/validation/describe-jsonld-failure.test.js +226 -0
- package/build/validation/describe-jsonld-failure.test.js.map +1 -0
- package/build/validation/errors.d.ts +40 -0
- package/build/validation/errors.js +75 -0
- package/build/validation/errors.js.map +1 -0
- package/build/validation/index.d.ts +5 -0
- package/build/validation/index.js +5 -0
- package/build/validation/index.js.map +1 -0
- package/build/validation/validate-against-schemas.d.ts +22 -0
- package/build/validation/validate-against-schemas.js +65 -0
- package/build/validation/validate-against-schemas.js.map +1 -0
- package/build/validation/validate-against-schemas.test.d.ts +1 -0
- package/build/validation/validate-against-schemas.test.js +169 -0
- package/build/validation/validate-against-schemas.test.js.map +1 -0
- package/build/validation/validate-jsonld.context-cache.test.d.ts +1 -0
- package/build/validation/validate-jsonld.context-cache.test.js +32 -0
- package/build/validation/validate-jsonld.context-cache.test.js.map +1 -0
- package/build/validation/validate-jsonld.d.ts +59 -0
- package/build/validation/validate-jsonld.js +126 -0
- package/build/validation/validate-jsonld.js.map +1 -0
- package/build/validation/validate-jsonld.ssrf.test.d.ts +1 -0
- package/build/validation/validate-jsonld.ssrf.test.js +108 -0
- package/build/validation/validate-jsonld.ssrf.test.js.map +1 -0
- package/build/validation/validate-jsonld.test.d.ts +1 -0
- package/build/validation/validate-jsonld.test.js +257 -0
- package/build/validation/validate-jsonld.test.js.map +1 -0
- package/package.json +86 -5
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { jest } from '@jest/globals';
|
|
2
|
+
import { isHostDeliveryFailure, withBundledFallback } from './fallback.js';
|
|
3
|
+
import { ResolverHttpError, ResolverNetworkError } from '../resolvers/errors.js';
|
|
4
|
+
import { PrivateAddressError, ResolutionEmptyError, ResolutionFailedError } from '../node/errors.js';
|
|
5
|
+
import { SchemaLoaderNetworkError } from '../loaders/errors.js';
|
|
6
|
+
const BUNDLED = 'https://untp.unece.org/artefacts/schema/v0.7.0/dpp/DigitalProductPassport.json';
|
|
7
|
+
const UNBUNDLED = 'https://untp.unece.org/artefacts/schema/v9.9.9/dpp/DigitalProductPassport.json';
|
|
8
|
+
describe('withBundledFallback', () => {
|
|
9
|
+
it('returns the fetched value and never consults the bundle when the fetch succeeds', async () => {
|
|
10
|
+
const onBundledFallback = jest.fn();
|
|
11
|
+
const result = await withBundledFallback(BUNDLED, { onBundledFallback }, async () => ({ fetched: true }));
|
|
12
|
+
expect(result).toEqual({ fetched: true });
|
|
13
|
+
expect(onBundledFallback).not.toHaveBeenCalled();
|
|
14
|
+
});
|
|
15
|
+
it('serves the bundled copy and reports the cause when the fetch of a bundled URL fails', async () => {
|
|
16
|
+
const onBundledFallback = jest.fn();
|
|
17
|
+
const cause = new ResolverNetworkError(BUNDLED, new Error('getaddrinfo ENOTFOUND untp.unece.org'));
|
|
18
|
+
const result = (await withBundledFallback(BUNDLED, { onBundledFallback }, async () => {
|
|
19
|
+
throw cause;
|
|
20
|
+
}));
|
|
21
|
+
expect(JSON.stringify(result)).toContain('DigitalProductPassport');
|
|
22
|
+
expect(onBundledFallback).toHaveBeenCalledWith({ url: BUNDLED, cause });
|
|
23
|
+
});
|
|
24
|
+
it('rethrows when the URL is not bundled', async () => {
|
|
25
|
+
const cause = new ResolverHttpError(UNBUNDLED, 503);
|
|
26
|
+
await expect(withBundledFallback(UNBUNDLED, {}, async () => {
|
|
27
|
+
throw cause;
|
|
28
|
+
})).rejects.toBe(cause);
|
|
29
|
+
});
|
|
30
|
+
it('rethrows when the fallback is switched off, even for a bundled URL', async () => {
|
|
31
|
+
const cause = new ResolverHttpError(BUNDLED, 503);
|
|
32
|
+
const onBundledFallback = jest.fn();
|
|
33
|
+
await expect(withBundledFallback(BUNDLED, { bundledFallback: false, onBundledFallback }, async () => {
|
|
34
|
+
throw cause;
|
|
35
|
+
})).rejects.toBe(cause);
|
|
36
|
+
expect(onBundledFallback).not.toHaveBeenCalled();
|
|
37
|
+
});
|
|
38
|
+
it('serves the copy when the host name stops resolving, bare (the JSON-LD path)', async () => {
|
|
39
|
+
const onBundledFallback = jest.fn();
|
|
40
|
+
const dns = new ResolutionFailedError('untp.unece.org', new Error('getaddrinfo ENOTFOUND untp.unece.org'));
|
|
41
|
+
const result = await withBundledFallback(BUNDLED, { onBundledFallback }, async () => {
|
|
42
|
+
throw dns;
|
|
43
|
+
});
|
|
44
|
+
expect(JSON.stringify(result)).toContain('DigitalProductPassport');
|
|
45
|
+
expect(onBundledFallback).toHaveBeenCalledWith({ url: BUNDLED, cause: dns });
|
|
46
|
+
});
|
|
47
|
+
it('hands back a fresh copy each time, so a caller mutating one cannot poison the next', async () => {
|
|
48
|
+
const first = (await withBundledFallback(BUNDLED, {}, async () => {
|
|
49
|
+
throw new ResolverHttpError(BUNDLED, 503);
|
|
50
|
+
}));
|
|
51
|
+
first.required = ['mutated'];
|
|
52
|
+
const second = (await withBundledFallback(BUNDLED, {}, async () => {
|
|
53
|
+
throw new ResolverHttpError(BUNDLED, 503);
|
|
54
|
+
}));
|
|
55
|
+
expect(second.required).not.toEqual(['mutated']);
|
|
56
|
+
});
|
|
57
|
+
it('never covers a URL the SSRF guard refused, even when wrapped by the schema loader', async () => {
|
|
58
|
+
const onBundledFallback = jest.fn();
|
|
59
|
+
const guard = new PrivateAddressError(BUNDLED, ['10.0.0.5']);
|
|
60
|
+
await expect(withBundledFallback(BUNDLED, { onBundledFallback }, async () => {
|
|
61
|
+
throw guard;
|
|
62
|
+
})).rejects.toBe(guard);
|
|
63
|
+
const wrapped = new SchemaLoaderNetworkError(BUNDLED, guard);
|
|
64
|
+
await expect(withBundledFallback(BUNDLED, { onBundledFallback }, async () => {
|
|
65
|
+
throw wrapped;
|
|
66
|
+
})).rejects.toBe(wrapped);
|
|
67
|
+
expect(onBundledFallback).not.toHaveBeenCalled();
|
|
68
|
+
});
|
|
69
|
+
it('never covers an error that is not a typed resolver or loader failure', async () => {
|
|
70
|
+
const bug = new TypeError('cannot read properties of undefined');
|
|
71
|
+
await expect(withBundledFallback(BUNDLED, {}, async () => {
|
|
72
|
+
throw bug;
|
|
73
|
+
})).rejects.toBe(bug);
|
|
74
|
+
});
|
|
75
|
+
it('still serves the copy when the listener throws', async () => {
|
|
76
|
+
const result = await withBundledFallback(BUNDLED, {
|
|
77
|
+
onBundledFallback: () => {
|
|
78
|
+
throw new Error('logger down');
|
|
79
|
+
},
|
|
80
|
+
}, async () => {
|
|
81
|
+
throw new ResolverHttpError(BUNDLED, 403);
|
|
82
|
+
});
|
|
83
|
+
expect(JSON.stringify(result)).toContain('DigitalProductPassport');
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
describe('isHostDeliveryFailure', () => {
|
|
87
|
+
it.each([
|
|
88
|
+
['resolver network', new ResolverNetworkError(BUNDLED, new Error('ENOTFOUND')), true],
|
|
89
|
+
['resolver http 403', new ResolverHttpError(BUNDLED, 403), true],
|
|
90
|
+
[
|
|
91
|
+
'DNS resolution failed (the founding outage)',
|
|
92
|
+
new ResolutionFailedError('untp.unece.org', new Error('ENOTFOUND')),
|
|
93
|
+
true,
|
|
94
|
+
],
|
|
95
|
+
['DNS resolution empty', new ResolutionEmptyError('untp.unece.org'), true],
|
|
96
|
+
[
|
|
97
|
+
'contradictory resolver metadata',
|
|
98
|
+
new ResolutionFailedError('untp.unece.org', new Error('address does not match family')),
|
|
99
|
+
true,
|
|
100
|
+
],
|
|
101
|
+
[
|
|
102
|
+
'DNS failure wrapped by the schema loader',
|
|
103
|
+
new SchemaLoaderNetworkError(BUNDLED, new ResolutionFailedError('untp.unece.org', new Error('ENOTFOUND'))),
|
|
104
|
+
false,
|
|
105
|
+
],
|
|
106
|
+
[
|
|
107
|
+
'schema loader network (never classified any more)',
|
|
108
|
+
new SchemaLoaderNetworkError(BUNDLED, new Error('ENOTFOUND')),
|
|
109
|
+
false,
|
|
110
|
+
],
|
|
111
|
+
['guard rejection', new PrivateAddressError(BUNDLED, ['127.0.0.1']), false],
|
|
112
|
+
[
|
|
113
|
+
'guard rejection wrapped',
|
|
114
|
+
new SchemaLoaderNetworkError(BUNDLED, new PrivateAddressError(BUNDLED, ['127.0.0.1'])),
|
|
115
|
+
false,
|
|
116
|
+
],
|
|
117
|
+
['plain Error', new Error('boom'), false],
|
|
118
|
+
['TypeError', new TypeError('boom'), false],
|
|
119
|
+
['not an error', 'boom', false],
|
|
120
|
+
])('%s -> %s', (_label, error, expected) => {
|
|
121
|
+
expect(isHostDeliveryFailure(error)).toBe(expected);
|
|
122
|
+
});
|
|
123
|
+
});
|
|
124
|
+
//# sourceMappingURL=fallback.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fallback.test.js","sourceRoot":"","sources":["../../src/bundle/fallback.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/** Bundled artefacts keyed by the published URL consumers request. */
|
|
2
|
+
export declare const BUNDLED_ARTEFACTS: ReadonlyMap<string, Record<string, unknown>>;
|
|
3
|
+
/** UNTP versions the bundle carries, ascending. */
|
|
4
|
+
export declare const BUNDLED_UNTP_VERSIONS: readonly string[];
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
// Generated by scripts/refresh-artefacts.mjs. Do not edit by hand.
|
|
2
|
+
import context_vcdm_2_credentials from './artefacts/context/vcdm/2/credentials.js';
|
|
3
|
+
import schema_vcdm_2_verifiable_credential from './artefacts/schema/vcdm/2/verifiable-credential.js';
|
|
4
|
+
import schema_untp_0_7_0_dpp from './artefacts/schema/untp/0.7.0/dpp.js';
|
|
5
|
+
import schema_untp_0_7_0_dcc from './artefacts/schema/untp/0.7.0/dcc.js';
|
|
6
|
+
import schema_untp_0_7_0_dfr from './artefacts/schema/untp/0.7.0/dfr.js';
|
|
7
|
+
import schema_untp_0_7_0_dia from './artefacts/schema/untp/0.7.0/dia.js';
|
|
8
|
+
import schema_untp_0_7_0_dte from './artefacts/schema/untp/0.7.0/dte.js';
|
|
9
|
+
import schema_untp_0_7_0_cvc from './artefacts/schema/untp/0.7.0/cvc.js';
|
|
10
|
+
import schema_untp_0_7_0_linkset from './artefacts/schema/untp/0.7.0/linkset.js';
|
|
11
|
+
import context_untp_0_7_0_untp from './artefacts/context/untp/0.7.0/untp.js';
|
|
12
|
+
import schema_untp_0_6_0_dpp from './artefacts/schema/untp/0.6.0/dpp.js';
|
|
13
|
+
import context_untp_0_6_0_dpp from './artefacts/context/untp/0.6.0/dpp.js';
|
|
14
|
+
import schema_untp_0_6_0_dcc from './artefacts/schema/untp/0.6.0/dcc.js';
|
|
15
|
+
import context_untp_0_6_0_dcc from './artefacts/context/untp/0.6.0/dcc.js';
|
|
16
|
+
import schema_untp_0_6_0_dfr from './artefacts/schema/untp/0.6.0/dfr.js';
|
|
17
|
+
import context_untp_0_6_0_dfr from './artefacts/context/untp/0.6.0/dfr.js';
|
|
18
|
+
import schema_untp_0_6_0_dia from './artefacts/schema/untp/0.6.0/dia.js';
|
|
19
|
+
import context_untp_0_6_0_dia from './artefacts/context/untp/0.6.0/dia.js';
|
|
20
|
+
import schema_untp_0_6_0_dte from './artefacts/schema/untp/0.6.0/dte.js';
|
|
21
|
+
import context_untp_0_6_0_dte from './artefacts/context/untp/0.6.0/dte.js';
|
|
22
|
+
import schema_untp_0_6_1_dpp from './artefacts/schema/untp/0.6.1/dpp.js';
|
|
23
|
+
import context_untp_0_6_1_dpp from './artefacts/context/untp/0.6.1/dpp.js';
|
|
24
|
+
import schema_untp_0_6_1_dcc from './artefacts/schema/untp/0.6.1/dcc.js';
|
|
25
|
+
import context_untp_0_6_1_dcc from './artefacts/context/untp/0.6.1/dcc.js';
|
|
26
|
+
import schema_untp_0_6_1_dfr from './artefacts/schema/untp/0.6.1/dfr.js';
|
|
27
|
+
import context_untp_0_6_1_dfr from './artefacts/context/untp/0.6.1/dfr.js';
|
|
28
|
+
import schema_untp_0_6_1_dia from './artefacts/schema/untp/0.6.1/dia.js';
|
|
29
|
+
import context_untp_0_6_1_dia from './artefacts/context/untp/0.6.1/dia.js';
|
|
30
|
+
import schema_untp_0_6_1_dte from './artefacts/schema/untp/0.6.1/dte.js';
|
|
31
|
+
import context_untp_0_6_1_dte from './artefacts/context/untp/0.6.1/dte.js';
|
|
32
|
+
/** Bundled artefacts keyed by the published URL consumers request. */
|
|
33
|
+
export const BUNDLED_ARTEFACTS = new Map([
|
|
34
|
+
['https://www.w3.org/ns/credentials/v2', context_vcdm_2_credentials],
|
|
35
|
+
['https://w3c.github.io/vc-data-model/schema/verifiable-credential/verifiable-credential-schema.json', schema_vcdm_2_verifiable_credential],
|
|
36
|
+
['https://untp.unece.org/artefacts/schema/v0.7.0/dpp/DigitalProductPassport.json', schema_untp_0_7_0_dpp],
|
|
37
|
+
['https://untp.unece.org/artefacts/schema/v0.7.0/dcc/ConformityCredential.json', schema_untp_0_7_0_dcc],
|
|
38
|
+
['https://untp.unece.org/artefacts/schema/v0.7.0/dfr/DigitalFacilityRecord.json', schema_untp_0_7_0_dfr],
|
|
39
|
+
['https://untp.unece.org/artefacts/schema/v0.7.0/dia/DigitalIdentityAnchor.json', schema_untp_0_7_0_dia],
|
|
40
|
+
['https://untp.unece.org/artefacts/schema/v0.7.0/dte/DigitalTraceabilityEvent.json', schema_untp_0_7_0_dte],
|
|
41
|
+
['https://untp.unece.org/artefacts/schema/v0.7.0/cvc/ConformityScheme.json', schema_untp_0_7_0_cvc],
|
|
42
|
+
['https://untp.unece.org/artefacts/schema/v0.7.0/idr/LinksetSchema.json', schema_untp_0_7_0_linkset],
|
|
43
|
+
['https://vocabulary.uncefact.org/untp/0.7.0/context/', context_untp_0_7_0_untp],
|
|
44
|
+
['https://test.uncefact.org/vocabulary/untp/dpp/untp-dpp-schema-0.6.0.json', schema_untp_0_6_0_dpp],
|
|
45
|
+
['https://test.uncefact.org/vocabulary/untp/dpp/0.6.0/', context_untp_0_6_0_dpp],
|
|
46
|
+
['https://test.uncefact.org/vocabulary/untp/dpp/0.6.0/context/', context_untp_0_6_0_dpp],
|
|
47
|
+
['https://test.uncefact.org/vocabulary/untp/dcc/untp-dcc-schema-0.6.0.json', schema_untp_0_6_0_dcc],
|
|
48
|
+
['https://test.uncefact.org/vocabulary/untp/dcc/0.6.0/', context_untp_0_6_0_dcc],
|
|
49
|
+
['https://test.uncefact.org/vocabulary/untp/dcc/0.6.0/context/', context_untp_0_6_0_dcc],
|
|
50
|
+
['https://test.uncefact.org/vocabulary/untp/dfr/untp-dfr-schema-0.6.0.json', schema_untp_0_6_0_dfr],
|
|
51
|
+
['https://test.uncefact.org/vocabulary/untp/dfr/0.6.0/', context_untp_0_6_0_dfr],
|
|
52
|
+
['https://test.uncefact.org/vocabulary/untp/dfr/0.6.0/context/', context_untp_0_6_0_dfr],
|
|
53
|
+
['https://test.uncefact.org/vocabulary/untp/dia/untp-dia-schema-0.6.0.json', schema_untp_0_6_0_dia],
|
|
54
|
+
['https://test.uncefact.org/vocabulary/untp/dia/0.6.0/', context_untp_0_6_0_dia],
|
|
55
|
+
['https://test.uncefact.org/vocabulary/untp/dia/0.6.0/context/', context_untp_0_6_0_dia],
|
|
56
|
+
['https://test.uncefact.org/vocabulary/untp/dte/untp-dte-schema-0.6.0.json', schema_untp_0_6_0_dte],
|
|
57
|
+
['https://test.uncefact.org/vocabulary/untp/dte/0.6.0/', context_untp_0_6_0_dte],
|
|
58
|
+
['https://test.uncefact.org/vocabulary/untp/dte/0.6.0/context/', context_untp_0_6_0_dte],
|
|
59
|
+
['https://test.uncefact.org/vocabulary/untp/dpp/untp-dpp-schema-0.6.1.json', schema_untp_0_6_1_dpp],
|
|
60
|
+
['https://test.uncefact.org/vocabulary/untp/dpp/0.6.1/', context_untp_0_6_1_dpp],
|
|
61
|
+
['https://test.uncefact.org/vocabulary/untp/dpp/0.6.1/context/', context_untp_0_6_1_dpp],
|
|
62
|
+
['https://test.uncefact.org/vocabulary/untp/dcc/untp-dcc-schema-0.6.1.json', schema_untp_0_6_1_dcc],
|
|
63
|
+
['https://test.uncefact.org/vocabulary/untp/dcc/0.6.1/', context_untp_0_6_1_dcc],
|
|
64
|
+
['https://test.uncefact.org/vocabulary/untp/dcc/0.6.1/context/', context_untp_0_6_1_dcc],
|
|
65
|
+
['https://test.uncefact.org/vocabulary/untp/dfr/untp-dfr-schema-0.6.1.json', schema_untp_0_6_1_dfr],
|
|
66
|
+
['https://test.uncefact.org/vocabulary/untp/dfr/0.6.1/', context_untp_0_6_1_dfr],
|
|
67
|
+
['https://test.uncefact.org/vocabulary/untp/dfr/0.6.1/context/', context_untp_0_6_1_dfr],
|
|
68
|
+
['https://test.uncefact.org/vocabulary/untp/dia/untp-dia-schema-0.6.1.json', schema_untp_0_6_1_dia],
|
|
69
|
+
['https://test.uncefact.org/vocabulary/untp/dia/0.6.1/', context_untp_0_6_1_dia],
|
|
70
|
+
['https://test.uncefact.org/vocabulary/untp/dia/0.6.1/context/', context_untp_0_6_1_dia],
|
|
71
|
+
['https://test.uncefact.org/vocabulary/untp/dte/untp-dte-schema-0.6.1.json', schema_untp_0_6_1_dte],
|
|
72
|
+
['https://test.uncefact.org/vocabulary/untp/dte/0.6.1/', context_untp_0_6_1_dte],
|
|
73
|
+
['https://test.uncefact.org/vocabulary/untp/dte/0.6.1/context/', context_untp_0_6_1_dte],
|
|
74
|
+
]);
|
|
75
|
+
/** UNTP versions the bundle carries, ascending. */
|
|
76
|
+
export const BUNDLED_UNTP_VERSIONS = ["0.6.0", "0.6.1", "0.7.0"];
|
|
77
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/bundle/index.ts"],"names":[],"mappings":"AAAA,mEAAmE;AAEnE,OAAO,0BAA0B,MAAM,2CAA2C,CAAC;AACnF,OAAO,mCAAmC,MAAM,oDAAoD,CAAC;AACrG,OAAO,qBAAqB,MAAM,sCAAsC,CAAC;AACzE,OAAO,qBAAqB,MAAM,sCAAsC,CAAC;AACzE,OAAO,qBAAqB,MAAM,sCAAsC,CAAC;AACzE,OAAO,qBAAqB,MAAM,sCAAsC,CAAC;AACzE,OAAO,qBAAqB,MAAM,sCAAsC,CAAC;AACzE,OAAO,qBAAqB,MAAM,sCAAsC,CAAC;AACzE,OAAO,yBAAyB,MAAM,0CAA0C,CAAC;AACjF,OAAO,uBAAuB,MAAM,wCAAwC,CAAC;AAC7E,OAAO,qBAAqB,MAAM,sCAAsC,CAAC;AACzE,OAAO,sBAAsB,MAAM,uCAAuC,CAAC;AAC3E,OAAO,qBAAqB,MAAM,sCAAsC,CAAC;AACzE,OAAO,sBAAsB,MAAM,uCAAuC,CAAC;AAC3E,OAAO,qBAAqB,MAAM,sCAAsC,CAAC;AACzE,OAAO,sBAAsB,MAAM,uCAAuC,CAAC;AAC3E,OAAO,qBAAqB,MAAM,sCAAsC,CAAC;AACzE,OAAO,sBAAsB,MAAM,uCAAuC,CAAC;AAC3E,OAAO,qBAAqB,MAAM,sCAAsC,CAAC;AACzE,OAAO,sBAAsB,MAAM,uCAAuC,CAAC;AAC3E,OAAO,qBAAqB,MAAM,sCAAsC,CAAC;AACzE,OAAO,sBAAsB,MAAM,uCAAuC,CAAC;AAC3E,OAAO,qBAAqB,MAAM,sCAAsC,CAAC;AACzE,OAAO,sBAAsB,MAAM,uCAAuC,CAAC;AAC3E,OAAO,qBAAqB,MAAM,sCAAsC,CAAC;AACzE,OAAO,sBAAsB,MAAM,uCAAuC,CAAC;AAC3E,OAAO,qBAAqB,MAAM,sCAAsC,CAAC;AACzE,OAAO,sBAAsB,MAAM,uCAAuC,CAAC;AAC3E,OAAO,qBAAqB,MAAM,sCAAsC,CAAC;AACzE,OAAO,sBAAsB,MAAM,uCAAuC,CAAC;AAE3E,sEAAsE;AACtE,MAAM,CAAC,MAAM,iBAAiB,GAAiD,IAAI,GAAG,CAAkC;IACtH,CAAC,sCAAsC,EAAE,0BAA0B,CAAC;IACpE,CAAC,oGAAoG,EAAE,mCAAmC,CAAC;IAC3I,CAAC,gFAAgF,EAAE,qBAAqB,CAAC;IACzG,CAAC,8EAA8E,EAAE,qBAAqB,CAAC;IACvG,CAAC,+EAA+E,EAAE,qBAAqB,CAAC;IACxG,CAAC,+EAA+E,EAAE,qBAAqB,CAAC;IACxG,CAAC,kFAAkF,EAAE,qBAAqB,CAAC;IAC3G,CAAC,0EAA0E,EAAE,qBAAqB,CAAC;IACnG,CAAC,uEAAuE,EAAE,yBAAyB,CAAC;IACpG,CAAC,qDAAqD,EAAE,uBAAuB,CAAC;IAChF,CAAC,0EAA0E,EAAE,qBAAqB,CAAC;IACnG,CAAC,sDAAsD,EAAE,sBAAsB,CAAC;IAChF,CAAC,8DAA8D,EAAE,sBAAsB,CAAC;IACxF,CAAC,0EAA0E,EAAE,qBAAqB,CAAC;IACnG,CAAC,sDAAsD,EAAE,sBAAsB,CAAC;IAChF,CAAC,8DAA8D,EAAE,sBAAsB,CAAC;IACxF,CAAC,0EAA0E,EAAE,qBAAqB,CAAC;IACnG,CAAC,sDAAsD,EAAE,sBAAsB,CAAC;IAChF,CAAC,8DAA8D,EAAE,sBAAsB,CAAC;IACxF,CAAC,0EAA0E,EAAE,qBAAqB,CAAC;IACnG,CAAC,sDAAsD,EAAE,sBAAsB,CAAC;IAChF,CAAC,8DAA8D,EAAE,sBAAsB,CAAC;IACxF,CAAC,0EAA0E,EAAE,qBAAqB,CAAC;IACnG,CAAC,sDAAsD,EAAE,sBAAsB,CAAC;IAChF,CAAC,8DAA8D,EAAE,sBAAsB,CAAC;IACxF,CAAC,0EAA0E,EAAE,qBAAqB,CAAC;IACnG,CAAC,sDAAsD,EAAE,sBAAsB,CAAC;IAChF,CAAC,8DAA8D,EAAE,sBAAsB,CAAC;IACxF,CAAC,0EAA0E,EAAE,qBAAqB,CAAC;IACnG,CAAC,sDAAsD,EAAE,sBAAsB,CAAC;IAChF,CAAC,8DAA8D,EAAE,sBAAsB,CAAC;IACxF,CAAC,0EAA0E,EAAE,qBAAqB,CAAC;IACnG,CAAC,sDAAsD,EAAE,sBAAsB,CAAC;IAChF,CAAC,8DAA8D,EAAE,sBAAsB,CAAC;IACxF,CAAC,0EAA0E,EAAE,qBAAqB,CAAC;IACnG,CAAC,sDAAsD,EAAE,sBAAsB,CAAC;IAChF,CAAC,8DAA8D,EAAE,sBAAsB,CAAC;IACxF,CAAC,0EAA0E,EAAE,qBAAqB,CAAC;IACnG,CAAC,sDAAsD,EAAE,sBAAsB,CAAC;IAChF,CAAC,8DAA8D,EAAE,sBAAsB,CAAC;CACzF,CAAC,CAAC;AAEH,mDAAmD;AACnD,MAAM,CAAC,MAAM,qBAAqB,GAAsB,CAAC,OAAO,EAAC,OAAO,EAAC,OAAO,CAAC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lookup over the bundled UNTP artefacts (see `scripts/refresh-artefacts.mjs`
|
|
3
|
+
* and `artefacts/manifest.json`). The bundle itself is imported lazily so a
|
|
4
|
+
* consumer that never needs the fallback never loads it.
|
|
5
|
+
*/
|
|
6
|
+
/** Trailing-slash and scheme-case differences never mean a different artefact. */
|
|
7
|
+
export declare function normaliseArtefactUrl(url: string): string;
|
|
8
|
+
/**
|
|
9
|
+
* The bundled copy of the artefact published at `url`, or `undefined` when the
|
|
10
|
+
* bundle does not carry it. Each call returns a fresh clone: validators such
|
|
11
|
+
* as Ajv mutate the documents they are given, and a mutation must not leak
|
|
12
|
+
* into every later fallback in the process.
|
|
13
|
+
*/
|
|
14
|
+
export declare function findBundledArtefact(url: string): Promise<Record<string, unknown> | undefined>;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lookup over the bundled UNTP artefacts (see `scripts/refresh-artefacts.mjs`
|
|
3
|
+
* and `artefacts/manifest.json`). The bundle itself is imported lazily so a
|
|
4
|
+
* consumer that never needs the fallback never loads it.
|
|
5
|
+
*/
|
|
6
|
+
/** Trailing-slash and scheme-case differences never mean a different artefact. */
|
|
7
|
+
export function normaliseArtefactUrl(url) {
|
|
8
|
+
try {
|
|
9
|
+
const parsed = new URL(url);
|
|
10
|
+
parsed.hash = '';
|
|
11
|
+
const path = parsed.pathname.replace(/\/+$/, '');
|
|
12
|
+
return `${parsed.protocol}//${parsed.host.toLowerCase()}${path}${parsed.search}`;
|
|
13
|
+
}
|
|
14
|
+
catch {
|
|
15
|
+
return url.replace(/\/+$/, '');
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
let index;
|
|
19
|
+
async function bundledByNormalisedUrl() {
|
|
20
|
+
if (!index) {
|
|
21
|
+
index = import('./index.js').then(({ BUNDLED_ARTEFACTS }) => {
|
|
22
|
+
const map = new Map();
|
|
23
|
+
for (const [url, artefact] of BUNDLED_ARTEFACTS)
|
|
24
|
+
map.set(normaliseArtefactUrl(url), artefact);
|
|
25
|
+
return map;
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
return index;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* The bundled copy of the artefact published at `url`, or `undefined` when the
|
|
32
|
+
* bundle does not carry it. Each call returns a fresh clone: validators such
|
|
33
|
+
* as Ajv mutate the documents they are given, and a mutation must not leak
|
|
34
|
+
* into every later fallback in the process.
|
|
35
|
+
*/
|
|
36
|
+
export async function findBundledArtefact(url) {
|
|
37
|
+
const artefact = (await bundledByNormalisedUrl()).get(normaliseArtefactUrl(url));
|
|
38
|
+
return artefact === undefined ? undefined : structuredClone(artefact);
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=lookup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lookup.js","sourceRoot":"","sources":["../../src/bundle/lookup.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,kFAAkF;AAClF,MAAM,UAAU,oBAAoB,CAAC,GAAW;IAC9C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;QACjB,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACjD,OAAO,GAAG,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;IACnF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACjC,CAAC;AACH,CAAC;AAED,IAAI,KAAwE,CAAC;AAE7E,KAAK,UAAU,sBAAsB;IACnC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,iBAAiB,EAAE,EAAE,EAAE;YAC1D,MAAM,GAAG,GAAG,IAAI,GAAG,EAAmC,CAAC;YACvD,KAAK,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,iBAAiB;gBAAE,GAAG,CAAC,GAAG,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;YAC9F,OAAO,GAAG,CAAC;QACb,CAAC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,GAAW;IACnD,MAAM,QAAQ,GAAG,CAAC,MAAM,sBAAsB,EAAE,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC;IACjF,OAAO,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;AACxE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { findBundledArtefact, normaliseArtefactUrl } from './lookup.js';
|
|
2
|
+
describe('normaliseArtefactUrl', () => {
|
|
3
|
+
it.each([
|
|
4
|
+
['https://vocabulary.uncefact.org/untp/0.7.0/context/', 'https://vocabulary.uncefact.org/untp/0.7.0/context'],
|
|
5
|
+
['https://VOCABULARY.uncefact.org/untp/0.7.0/context', 'https://vocabulary.uncefact.org/untp/0.7.0/context'],
|
|
6
|
+
[
|
|
7
|
+
'https://untp.unece.org/artefacts/schema/v0.7.0/dpp/DigitalProductPassport.json#frag',
|
|
8
|
+
'https://untp.unece.org/artefacts/schema/v0.7.0/dpp/DigitalProductPassport.json',
|
|
9
|
+
],
|
|
10
|
+
])('%s -> %s', (input, expected) => {
|
|
11
|
+
expect(normaliseArtefactUrl(input)).toBe(expected);
|
|
12
|
+
});
|
|
13
|
+
});
|
|
14
|
+
describe('findBundledArtefact', () => {
|
|
15
|
+
it('returns the bundled v0.7.0 DPP schema for its published URL', async () => {
|
|
16
|
+
const schema = (await findBundledArtefact('https://untp.unece.org/artefacts/schema/v0.7.0/dpp/DigitalProductPassport.json'));
|
|
17
|
+
expect(schema).toBeDefined();
|
|
18
|
+
expect(JSON.stringify(schema)).toContain('DigitalProductPassport');
|
|
19
|
+
});
|
|
20
|
+
it('matches the unified 0.7.0 context with or without its trailing slash', async () => {
|
|
21
|
+
const withSlash = await findBundledArtefact('https://vocabulary.uncefact.org/untp/0.7.0/context/');
|
|
22
|
+
const without = await findBundledArtefact('https://vocabulary.uncefact.org/untp/0.7.0/context');
|
|
23
|
+
expect(withSlash).toBeDefined();
|
|
24
|
+
expect(without).toEqual(withSlash);
|
|
25
|
+
expect(Object.keys(withSlash)).toContain('@context');
|
|
26
|
+
});
|
|
27
|
+
it('returns the VCDM v2 context and schema', async () => {
|
|
28
|
+
const context = (await findBundledArtefact('https://www.w3.org/ns/credentials/v2'));
|
|
29
|
+
expect(Object.keys(context)).toContain('@context');
|
|
30
|
+
expect(await findBundledArtefact('https://w3c.github.io/vc-data-model/schema/verifiable-credential/verifiable-credential-schema.json')).toBeDefined();
|
|
31
|
+
});
|
|
32
|
+
it('returns the legacy 0.6.0 DPP schema and context', async () => {
|
|
33
|
+
expect(await findBundledArtefact('https://test.uncefact.org/vocabulary/untp/dpp/untp-dpp-schema-0.6.0.json')).toBeDefined();
|
|
34
|
+
expect(await findBundledArtefact('https://test.uncefact.org/vocabulary/untp/dpp/0.6.0/context/')).toBeDefined();
|
|
35
|
+
});
|
|
36
|
+
it('returns undefined for a version or host the bundle does not carry', async () => {
|
|
37
|
+
expect(await findBundledArtefact('https://untp.unece.org/artefacts/schema/v9.9.9/dpp/DigitalProductPassport.json')).toBeUndefined();
|
|
38
|
+
expect(await findBundledArtefact('https://aatp.foodagility.com/schema/aatp-dlp-schema-0.4.1-beta1.json')).toBeUndefined();
|
|
39
|
+
});
|
|
40
|
+
it('carries every artefact the manifest lists', async () => {
|
|
41
|
+
const { readFile } = await import('node:fs/promises');
|
|
42
|
+
const manifest = JSON.parse(await readFile(new URL('../../artefacts/manifest.json', import.meta.url), 'utf8'));
|
|
43
|
+
expect(manifest.artefacts.length).toBeGreaterThanOrEqual(30);
|
|
44
|
+
for (const { url } of manifest.artefacts) {
|
|
45
|
+
expect(await findBundledArtefact(url)).toBeDefined();
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
describe('bundle integrity', () => {
|
|
50
|
+
it('serves every artefact with the content hash the manifest records', async () => {
|
|
51
|
+
const { readFile } = await import('node:fs/promises');
|
|
52
|
+
const { createHash } = await import('node:crypto');
|
|
53
|
+
const manifest = JSON.parse(await readFile(new URL('../../artefacts/manifest.json', import.meta.url), 'utf8'));
|
|
54
|
+
const sortKeys = (value) => Array.isArray(value)
|
|
55
|
+
? value.map(sortKeys)
|
|
56
|
+
: value !== null && typeof value === 'object'
|
|
57
|
+
? Object.fromEntries(Object.keys(value)
|
|
58
|
+
.sort()
|
|
59
|
+
.map((key) => [key, sortKeys(value[key])]))
|
|
60
|
+
: value;
|
|
61
|
+
for (const { url, sha256 } of manifest.artefacts) {
|
|
62
|
+
const served = await findBundledArtefact(url);
|
|
63
|
+
expect(served).toBeDefined();
|
|
64
|
+
expect(createHash('sha256')
|
|
65
|
+
.update(JSON.stringify(sortKeys(served)))
|
|
66
|
+
.digest('hex')).toBe(sha256);
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
//# sourceMappingURL=lookup.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lookup.test.js","sourceRoot":"","sources":["../../src/bundle/lookup.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export { findBundledArtefact, normaliseArtefactUrl } from './lookup.js';
|
|
2
|
+
export { isHostDeliveryFailure } from './fallback.js';
|
|
3
|
+
export type { BundledFallbackEvent, BundledFallbackOptions } from './fallback.js';
|
|
4
|
+
/** Every bundled artefact keyed by its published URL (and each alias it is also published under), as fresh clones. */
|
|
5
|
+
export declare function loadBundledArtefacts(): Promise<ReadonlyMap<string, Record<string, unknown>>>;
|
|
6
|
+
/** UNTP versions the bundle carries, ascending (for example `['0.6.0', '0.6.1', '0.7.0']`). */
|
|
7
|
+
export declare function bundledUntpVersions(): Promise<readonly string[]>;
|
|
8
|
+
/**
|
|
9
|
+
* The bundled JSON Schema for a UNTP credential type and version, for example
|
|
10
|
+
* `bundledSchema('DigitalProductPassport', '0.6.0')`, or `undefined` when the
|
|
11
|
+
* bundle does not carry that version. `type` accepts the names
|
|
12
|
+
* `buildUntpArtefactUrls` accepts.
|
|
13
|
+
*/
|
|
14
|
+
export declare function bundledSchema(type: string, version: string): Promise<Record<string, unknown> | undefined>;
|
|
15
|
+
/**
|
|
16
|
+
* The bundled JSON-LD context a UNTP credential type declares at a version:
|
|
17
|
+
* the per-type context before 0.7.0, the unified UNTP context from 0.7.0.
|
|
18
|
+
*/
|
|
19
|
+
export declare function bundledContext(type: string, version: string): Promise<Record<string, unknown> | undefined>;
|
|
20
|
+
/** The bundled Identity Resolver link set schema for a UNTP version (published from 0.7.0). */
|
|
21
|
+
export declare function bundledLinkSetSchema(version: string): Promise<Record<string, unknown> | undefined>;
|
|
22
|
+
/** The W3C Verifiable Credentials Data Model context for a major version (`'2'` today). */
|
|
23
|
+
export declare function bundledVcdmContext(version: '2'): Promise<Record<string, unknown> | undefined>;
|
|
24
|
+
/** The W3C Verifiable Credentials Data Model JSON Schema for a major version (`'2'` today). */
|
|
25
|
+
export declare function bundledVcdmSchema(version: '2'): Promise<Record<string, unknown> | undefined>;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public entry for the bundled UNTP and VCDM artefacts
|
|
3
|
+
* (`@uncefact/untp-utils/bundled-artefacts`).
|
|
4
|
+
*
|
|
5
|
+
* The loaders use these copies as a fallback when a fetch fails; a consumer
|
|
6
|
+
* can also read them directly, for example to validate against a schema
|
|
7
|
+
* without any network access. Keyed by the URL the artefact is published at,
|
|
8
|
+
* which is the URL a credential or link set references. The bundle is around
|
|
9
|
+
* a megabyte and loads on first use, not at import.
|
|
10
|
+
*/
|
|
11
|
+
import { findBundledArtefact } from './lookup.js';
|
|
12
|
+
export { findBundledArtefact, normaliseArtefactUrl } from './lookup.js';
|
|
13
|
+
export { isHostDeliveryFailure } from './fallback.js';
|
|
14
|
+
/** Every bundled artefact keyed by its published URL (and each alias it is also published under), as fresh clones. */
|
|
15
|
+
export async function loadBundledArtefacts() {
|
|
16
|
+
const { BUNDLED_ARTEFACTS } = await import('./index.js');
|
|
17
|
+
return new Map([...BUNDLED_ARTEFACTS].map(([url, artefact]) => [url, structuredClone(artefact)]));
|
|
18
|
+
}
|
|
19
|
+
/** UNTP versions the bundle carries, ascending (for example `['0.6.0', '0.6.1', '0.7.0']`). */
|
|
20
|
+
export async function bundledUntpVersions() {
|
|
21
|
+
const { BUNDLED_UNTP_VERSIONS } = await import('./index.js');
|
|
22
|
+
return BUNDLED_UNTP_VERSIONS;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* The bundled JSON Schema for a UNTP credential type and version, for example
|
|
26
|
+
* `bundledSchema('DigitalProductPassport', '0.6.0')`, or `undefined` when the
|
|
27
|
+
* bundle does not carry that version. `type` accepts the names
|
|
28
|
+
* `buildUntpArtefactUrls` accepts.
|
|
29
|
+
*/
|
|
30
|
+
export async function bundledSchema(type, version) {
|
|
31
|
+
const { buildUntpArtefactUrls } = await import('../artefacts/urls.js');
|
|
32
|
+
return findBundledArtefact(buildUntpArtefactUrls(type, version).schemaUrl);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* The bundled JSON-LD context a UNTP credential type declares at a version:
|
|
36
|
+
* the per-type context before 0.7.0, the unified UNTP context from 0.7.0.
|
|
37
|
+
*/
|
|
38
|
+
export async function bundledContext(type, version) {
|
|
39
|
+
const { buildUntpArtefactUrls } = await import('../artefacts/urls.js');
|
|
40
|
+
return findBundledArtefact(buildUntpArtefactUrls(type, version).contextUrl);
|
|
41
|
+
}
|
|
42
|
+
/** The bundled Identity Resolver link set schema for a UNTP version (published from 0.7.0). */
|
|
43
|
+
export async function bundledLinkSetSchema(version) {
|
|
44
|
+
const { buildLinkSetSchemaUrl } = await import('../artefacts/urls.js');
|
|
45
|
+
return findBundledArtefact(buildLinkSetSchemaUrl(version));
|
|
46
|
+
}
|
|
47
|
+
/** The W3C Verifiable Credentials Data Model context for a major version (`'2'` today). */
|
|
48
|
+
export async function bundledVcdmContext(version) {
|
|
49
|
+
return findBundledArtefact(`https://www.w3.org/ns/credentials/v${version}`);
|
|
50
|
+
}
|
|
51
|
+
/** The W3C Verifiable Credentials Data Model JSON Schema for a major version (`'2'` today). */
|
|
52
|
+
export async function bundledVcdmSchema(version) {
|
|
53
|
+
void version;
|
|
54
|
+
return findBundledArtefact('https://w3c.github.io/vc-data-model/schema/verifiable-credential/verifiable-credential-schema.json');
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=public.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public.js","sourceRoot":"","sources":["../../src/bundle/public.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAGtD,sHAAsH;AACtH,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;IACzD,OAAO,IAAI,GAAG,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACpG,CAAC;AAED,+FAA+F;AAC/F,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,MAAM,EAAE,qBAAqB,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;IAC7D,OAAO,qBAAqB,CAAC;AAC/B,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAY,EAAE,OAAe;IAC/D,MAAM,EAAE,qBAAqB,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;IACvE,OAAO,mBAAmB,CAAC,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC;AAC7E,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAY,EAAE,OAAe;IAChE,MAAM,EAAE,qBAAqB,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;IACvE,OAAO,mBAAmB,CAAC,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC;AAC9E,CAAC;AAED,+FAA+F;AAC/F,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,OAAe;IACxD,MAAM,EAAE,qBAAqB,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;IACvE,OAAO,mBAAmB,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,2FAA2F;AAC3F,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAAY;IACnD,OAAO,mBAAmB,CAAC,sCAAsC,OAAO,EAAE,CAAC,CAAC;AAC9E,CAAC;AAED,+FAA+F;AAC/F,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAAY;IAClD,KAAK,OAAO,CAAC;IACb,OAAO,mBAAmB,CACxB,oGAAoG,CACrG,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { bundledContext, bundledLinkSetSchema, bundledSchema, bundledUntpVersions, bundledVcdmContext, bundledVcdmSchema, findBundledArtefact, loadBundledArtefacts, } from './public.js';
|
|
2
|
+
describe('bundled-artefacts public entry', () => {
|
|
3
|
+
it('exposes every bundled artefact keyed by its published URL', async () => {
|
|
4
|
+
const all = await loadBundledArtefacts();
|
|
5
|
+
expect(all.size).toBeGreaterThanOrEqual(30);
|
|
6
|
+
expect(all.has('https://www.w3.org/ns/credentials/v2')).toBe(true);
|
|
7
|
+
expect(all.has('https://untp.unece.org/artefacts/schema/v0.7.0/idr/LinksetSchema.json')).toBe(true);
|
|
8
|
+
});
|
|
9
|
+
it('lets a consumer read a schema without the network', async () => {
|
|
10
|
+
const linkset = (await findBundledArtefact('https://untp.unece.org/artefacts/schema/v0.7.0/idr/LinksetSchema.json'));
|
|
11
|
+
expect(linkset.title).toMatch(/linkset/i);
|
|
12
|
+
});
|
|
13
|
+
it('lists the UNTP versions it carries', async () => {
|
|
14
|
+
expect(await bundledUntpVersions()).toEqual(['0.6.0', '0.6.1', '0.7.0']);
|
|
15
|
+
});
|
|
16
|
+
it('returns a schema and context by credential type and version', async () => {
|
|
17
|
+
const legacy = await bundledSchema('DigitalProductPassport', '0.6.0');
|
|
18
|
+
expect(JSON.stringify(legacy)).toContain('DigitalProductPassport');
|
|
19
|
+
const legacyContext = (await bundledContext('DigitalProductPassport', '0.6.0'));
|
|
20
|
+
expect(Object.keys(legacyContext)).toContain('@context');
|
|
21
|
+
const unified = await bundledContext('DigitalConformityCredential', '0.7.0');
|
|
22
|
+
expect(unified).toEqual(await bundledContext('DigitalProductPassport', '0.7.0'));
|
|
23
|
+
expect(await bundledSchema('DigitalProductPassport', '9.9.9')).toBeUndefined();
|
|
24
|
+
});
|
|
25
|
+
it('rejects an unknown credential type the way the URL builder does', async () => {
|
|
26
|
+
await expect(bundledSchema('NotAType', '0.7.0')).rejects.toThrow(/Unknown UNTP artefact type/);
|
|
27
|
+
});
|
|
28
|
+
it('returns the link set schema and the VCDM pair by version', async () => {
|
|
29
|
+
expect(await bundledLinkSetSchema('0.7.0')).toBeDefined();
|
|
30
|
+
expect(await bundledLinkSetSchema('0.6.0')).toBeUndefined();
|
|
31
|
+
expect(Object.keys((await bundledVcdmContext('2')))).toContain('@context');
|
|
32
|
+
expect(await bundledVcdmSchema('2')).toBeDefined();
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
//# sourceMappingURL=public.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public.test.js","sourceRoot":"","sources":["../../src/bundle/public.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// The refresh script is plain ESM JavaScript outside `src/`, so it is loaded
|
|
2
|
+
// at runtime rather than imported statically (tsc's rootDir is `src`).
|
|
3
|
+
const scriptUrl = new URL('../../scripts/refresh-artefacts.mjs', import.meta.url).href;
|
|
4
|
+
const { classify } = (await import(scriptUrl));
|
|
5
|
+
describe('refresh-artefacts classify', () => {
|
|
6
|
+
it('reports a copy the bundle does not have', () => {
|
|
7
|
+
expect(classify(undefined, '{"a":1}')).toBe('missing');
|
|
8
|
+
});
|
|
9
|
+
it('treats byte-different but content-equal copies as the same, so a formatter never reads as drift', () => {
|
|
10
|
+
expect(classify('{\n "a": 1\n}\n', '{"a":1}')).toBe('same');
|
|
11
|
+
});
|
|
12
|
+
it('reports a published copy whose content differs', () => {
|
|
13
|
+
expect(classify('{"a":1}', '{"a":2}')).toBe('differs');
|
|
14
|
+
});
|
|
15
|
+
it('reports an unreadable bundled copy as corrupt rather than as upstream drift', () => {
|
|
16
|
+
expect(classify('{not json', '{"a":1}')).toBe('corrupt');
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=refresh-classify.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"refresh-classify.test.js","sourceRoot":"","sources":["../../src/bundle/refresh-classify.test.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,uEAAuE;AACvE,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,qCAAqC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AACvF,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,MAAM,CAAC,SAAS,CAAC,CAE5C,CAAC;AAEF,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC1C,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iGAAiG,EAAE,GAAG,EAAE;QACzG,MAAM,CAAC,QAAQ,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6EAA6E,EAAE,GAAG,EAAE;QACrF,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|