@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.
Files changed (389) hide show
  1. package/README.md +52 -2
  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 +46 -0
  34. package/build/artefacts/detect-version-from-context.js +77 -0
  35. package/build/artefacts/detect-version-from-context.js.map +1 -0
  36. package/build/artefacts/detect-version-from-context.test.d.ts +1 -0
  37. package/build/artefacts/detect-version-from-context.test.js +69 -0
  38. package/build/artefacts/detect-version-from-context.test.js.map +1 -0
  39. package/build/artefacts/index.d.ts +3 -0
  40. package/build/artefacts/index.js +4 -0
  41. package/build/artefacts/index.js.map +1 -0
  42. package/build/artefacts/urls.d.ts +85 -0
  43. package/build/artefacts/urls.js +141 -0
  44. package/build/artefacts/urls.js.map +1 -0
  45. package/build/artefacts/urls.test.d.ts +1 -0
  46. package/build/artefacts/urls.test.js +99 -0
  47. package/build/artefacts/urls.test.js.map +1 -0
  48. package/build/artefacts/version.d.ts +9 -0
  49. package/build/artefacts/version.js +17 -0
  50. package/build/artefacts/version.js.map +1 -0
  51. package/build/artefacts/version.test.d.ts +1 -0
  52. package/build/artefacts/version.test.js +16 -0
  53. package/build/artefacts/version.test.js.map +1 -0
  54. package/build/bundle/artefacts/context/untp/0.6.0/dcc.d.ts +2 -0
  55. package/build/bundle/artefacts/context/untp/0.6.0/dcc.js +1244 -0
  56. package/build/bundle/artefacts/context/untp/0.6.0/dcc.js.map +1 -0
  57. package/build/bundle/artefacts/context/untp/0.6.0/dfr.d.ts +2 -0
  58. package/build/bundle/artefacts/context/untp/0.6.0/dfr.js +622 -0
  59. package/build/bundle/artefacts/context/untp/0.6.0/dfr.js.map +1 -0
  60. package/build/bundle/artefacts/context/untp/0.6.0/dia.d.ts +2 -0
  61. package/build/bundle/artefacts/context/untp/0.6.0/dia.js +165 -0
  62. package/build/bundle/artefacts/context/untp/0.6.0/dia.js.map +1 -0
  63. package/build/bundle/artefacts/context/untp/0.6.0/dpp.d.ts +2 -0
  64. package/build/bundle/artefacts/context/untp/0.6.0/dpp.js +1081 -0
  65. package/build/bundle/artefacts/context/untp/0.6.0/dpp.js.map +1 -0
  66. package/build/bundle/artefacts/context/untp/0.6.0/dte.d.ts +2 -0
  67. package/build/bundle/artefacts/context/untp/0.6.0/dte.js +1288 -0
  68. package/build/bundle/artefacts/context/untp/0.6.0/dte.js.map +1 -0
  69. package/build/bundle/artefacts/context/untp/0.6.1/dcc.d.ts +2 -0
  70. package/build/bundle/artefacts/context/untp/0.6.1/dcc.js +1391 -0
  71. package/build/bundle/artefacts/context/untp/0.6.1/dcc.js.map +1 -0
  72. package/build/bundle/artefacts/context/untp/0.6.1/dfr.d.ts +2 -0
  73. package/build/bundle/artefacts/context/untp/0.6.1/dfr.js +693 -0
  74. package/build/bundle/artefacts/context/untp/0.6.1/dfr.js.map +1 -0
  75. package/build/bundle/artefacts/context/untp/0.6.1/dia.d.ts +2 -0
  76. package/build/bundle/artefacts/context/untp/0.6.1/dia.js +199 -0
  77. package/build/bundle/artefacts/context/untp/0.6.1/dia.js.map +1 -0
  78. package/build/bundle/artefacts/context/untp/0.6.1/dpp.d.ts +2 -0
  79. package/build/bundle/artefacts/context/untp/0.6.1/dpp.js +1167 -0
  80. package/build/bundle/artefacts/context/untp/0.6.1/dpp.js.map +1 -0
  81. package/build/bundle/artefacts/context/untp/0.6.1/dte.d.ts +2 -0
  82. package/build/bundle/artefacts/context/untp/0.6.1/dte.js +1343 -0
  83. package/build/bundle/artefacts/context/untp/0.6.1/dte.js.map +1 -0
  84. package/build/bundle/artefacts/context/untp/0.7.0/untp.d.ts +2 -0
  85. package/build/bundle/artefacts/context/untp/0.7.0/untp.js +3496 -0
  86. package/build/bundle/artefacts/context/untp/0.7.0/untp.js.map +1 -0
  87. package/build/bundle/artefacts/context/vcdm/2/credentials.d.ts +2 -0
  88. package/build/bundle/artefacts/context/vcdm/2/credentials.js +304 -0
  89. package/build/bundle/artefacts/context/vcdm/2/credentials.js.map +1 -0
  90. package/build/bundle/artefacts/schema/untp/0.6.0/dcc.d.ts +2 -0
  91. package/build/bundle/artefacts/schema/untp/0.6.0/dcc.js +1134 -0
  92. package/build/bundle/artefacts/schema/untp/0.6.0/dcc.js.map +1 -0
  93. package/build/bundle/artefacts/schema/untp/0.6.0/dfr.d.ts +2 -0
  94. package/build/bundle/artefacts/schema/untp/0.6.0/dfr.js +1031 -0
  95. package/build/bundle/artefacts/schema/untp/0.6.0/dfr.js.map +1 -0
  96. package/build/bundle/artefacts/schema/untp/0.6.0/dia.d.ts +2 -0
  97. package/build/bundle/artefacts/schema/untp/0.6.0/dia.js +239 -0
  98. package/build/bundle/artefacts/schema/untp/0.6.0/dia.js.map +1 -0
  99. package/build/bundle/artefacts/schema/untp/0.6.0/dpp.d.ts +2 -0
  100. package/build/bundle/artefacts/schema/untp/0.6.0/dpp.js +1222 -0
  101. package/build/bundle/artefacts/schema/untp/0.6.0/dpp.js.map +1 -0
  102. package/build/bundle/artefacts/schema/untp/0.6.0/dte.d.ts +2 -0
  103. package/build/bundle/artefacts/schema/untp/0.6.0/dte.js +848 -0
  104. package/build/bundle/artefacts/schema/untp/0.6.0/dte.js.map +1 -0
  105. package/build/bundle/artefacts/schema/untp/0.6.1/dcc.d.ts +2 -0
  106. package/build/bundle/artefacts/schema/untp/0.6.1/dcc.js +1199 -0
  107. package/build/bundle/artefacts/schema/untp/0.6.1/dcc.js.map +1 -0
  108. package/build/bundle/artefacts/schema/untp/0.6.1/dfr.d.ts +2 -0
  109. package/build/bundle/artefacts/schema/untp/0.6.1/dfr.js +1040 -0
  110. package/build/bundle/artefacts/schema/untp/0.6.1/dfr.js.map +1 -0
  111. package/build/bundle/artefacts/schema/untp/0.6.1/dia.d.ts +2 -0
  112. package/build/bundle/artefacts/schema/untp/0.6.1/dia.js +239 -0
  113. package/build/bundle/artefacts/schema/untp/0.6.1/dia.js.map +1 -0
  114. package/build/bundle/artefacts/schema/untp/0.6.1/dpp.d.ts +2 -0
  115. package/build/bundle/artefacts/schema/untp/0.6.1/dpp.js +1232 -0
  116. package/build/bundle/artefacts/schema/untp/0.6.1/dpp.js.map +1 -0
  117. package/build/bundle/artefacts/schema/untp/0.6.1/dte.d.ts +2 -0
  118. package/build/bundle/artefacts/schema/untp/0.6.1/dte.js +848 -0
  119. package/build/bundle/artefacts/schema/untp/0.6.1/dte.js.map +1 -0
  120. package/build/bundle/artefacts/schema/untp/0.7.0/cvc.d.ts +2 -0
  121. package/build/bundle/artefacts/schema/untp/0.7.0/cvc.js +704 -0
  122. package/build/bundle/artefacts/schema/untp/0.7.0/cvc.js.map +1 -0
  123. package/build/bundle/artefacts/schema/untp/0.7.0/dcc.d.ts +2 -0
  124. package/build/bundle/artefacts/schema/untp/0.7.0/dcc.js +1136 -0
  125. package/build/bundle/artefacts/schema/untp/0.7.0/dcc.js.map +1 -0
  126. package/build/bundle/artefacts/schema/untp/0.7.0/dfr.d.ts +2 -0
  127. package/build/bundle/artefacts/schema/untp/0.7.0/dfr.js +1248 -0
  128. package/build/bundle/artefacts/schema/untp/0.7.0/dfr.js.map +1 -0
  129. package/build/bundle/artefacts/schema/untp/0.7.0/dia.d.ts +2 -0
  130. package/build/bundle/artefacts/schema/untp/0.7.0/dia.js +446 -0
  131. package/build/bundle/artefacts/schema/untp/0.7.0/dia.js.map +1 -0
  132. package/build/bundle/artefacts/schema/untp/0.7.0/dpp.d.ts +2 -0
  133. package/build/bundle/artefacts/schema/untp/0.7.0/dpp.js +1303 -0
  134. package/build/bundle/artefacts/schema/untp/0.7.0/dpp.js.map +1 -0
  135. package/build/bundle/artefacts/schema/untp/0.7.0/dte.d.ts +2 -0
  136. package/build/bundle/artefacts/schema/untp/0.7.0/dte.js +1229 -0
  137. package/build/bundle/artefacts/schema/untp/0.7.0/dte.js.map +1 -0
  138. package/build/bundle/artefacts/schema/untp/0.7.0/linkset.d.ts +2 -0
  139. package/build/bundle/artefacts/schema/untp/0.7.0/linkset.js +122 -0
  140. package/build/bundle/artefacts/schema/untp/0.7.0/linkset.js.map +1 -0
  141. package/build/bundle/artefacts/schema/vcdm/2/verifiable-credential.d.ts +2 -0
  142. package/build/bundle/artefacts/schema/vcdm/2/verifiable-credential.js +321 -0
  143. package/build/bundle/artefacts/schema/vcdm/2/verifiable-credential.js.map +1 -0
  144. package/build/bundle/fallback.d.ts +41 -0
  145. package/build/bundle/fallback.js +62 -0
  146. package/build/bundle/fallback.js.map +1 -0
  147. package/build/bundle/fallback.test.d.ts +1 -0
  148. package/build/bundle/fallback.test.js +124 -0
  149. package/build/bundle/fallback.test.js.map +1 -0
  150. package/build/bundle/index.d.ts +4 -0
  151. package/build/bundle/index.js +77 -0
  152. package/build/bundle/index.js.map +1 -0
  153. package/build/bundle/lookup.d.ts +14 -0
  154. package/build/bundle/lookup.js +40 -0
  155. package/build/bundle/lookup.js.map +1 -0
  156. package/build/bundle/lookup.test.d.ts +1 -0
  157. package/build/bundle/lookup.test.js +70 -0
  158. package/build/bundle/lookup.test.js.map +1 -0
  159. package/build/bundle/public.d.ts +25 -0
  160. package/build/bundle/public.js +56 -0
  161. package/build/bundle/public.js.map +1 -0
  162. package/build/bundle/public.test.d.ts +1 -0
  163. package/build/bundle/public.test.js +35 -0
  164. package/build/bundle/public.test.js.map +1 -0
  165. package/build/bundle/refresh-classify.test.d.ts +1 -0
  166. package/build/bundle/refresh-classify.test.js +20 -0
  167. package/build/bundle/refresh-classify.test.js.map +1 -0
  168. package/build/bundle/refresh-main.test.d.ts +1 -0
  169. package/build/bundle/refresh-main.test.js +98 -0
  170. package/build/bundle/refresh-main.test.js.map +1 -0
  171. package/build/cache/in-memory-ttl-cache.d.ts +2 -0
  172. package/build/cache/in-memory-ttl-cache.js +76 -0
  173. package/build/cache/in-memory-ttl-cache.js.map +1 -0
  174. package/build/cache/in-memory-ttl-cache.test.d.ts +1 -0
  175. package/build/cache/in-memory-ttl-cache.test.js +236 -0
  176. package/build/cache/in-memory-ttl-cache.test.js.map +1 -0
  177. package/build/cache/index.d.ts +2 -0
  178. package/build/cache/index.js +2 -0
  179. package/build/cache/index.js.map +1 -0
  180. package/build/cache/ttl-cache.d.ts +22 -0
  181. package/build/cache/ttl-cache.js +2 -0
  182. package/build/cache/ttl-cache.js.map +1 -0
  183. package/build/common/as-date-time.d.ts +13 -0
  184. package/build/common/as-date-time.js +44 -0
  185. package/build/common/as-date-time.js.map +1 -0
  186. package/build/common/as-date-time.test.d.ts +1 -0
  187. package/build/common/as-date-time.test.js +42 -0
  188. package/build/common/as-date-time.test.js.map +1 -0
  189. package/build/common/as-non-empty-string.d.ts +14 -0
  190. package/build/common/as-non-empty-string.js +20 -0
  191. package/build/common/as-non-empty-string.js.map +1 -0
  192. package/build/common/as-non-empty-string.test.d.ts +1 -0
  193. package/build/common/as-non-empty-string.test.js +30 -0
  194. package/build/common/as-non-empty-string.test.js.map +1 -0
  195. package/build/common/index.d.ts +4 -0
  196. package/build/common/index.js +5 -0
  197. package/build/common/index.js.map +1 -0
  198. package/build/common/require-string.d.ts +12 -0
  199. package/build/common/require-string.js +27 -0
  200. package/build/common/require-string.js.map +1 -0
  201. package/build/common/require-string.test.d.ts +1 -0
  202. package/build/common/require-string.test.js +53 -0
  203. package/build/common/require-string.test.js.map +1 -0
  204. package/build/common/validity-window.d.ts +45 -0
  205. package/build/common/validity-window.js +68 -0
  206. package/build/common/validity-window.js.map +1 -0
  207. package/build/common/validity-window.test.d.ts +1 -0
  208. package/build/common/validity-window.test.js +67 -0
  209. package/build/common/validity-window.test.js.map +1 -0
  210. package/build/conformity-vocabulary/codes.d.ts +10 -0
  211. package/build/conformity-vocabulary/codes.js +10 -0
  212. package/build/conformity-vocabulary/codes.js.map +1 -0
  213. package/build/conformity-vocabulary/errors.d.ts +44 -0
  214. package/build/conformity-vocabulary/errors.js +68 -0
  215. package/build/conformity-vocabulary/errors.js.map +1 -0
  216. package/build/conformity-vocabulary/index.d.ts +6 -0
  217. package/build/conformity-vocabulary/index.js +7 -0
  218. package/build/conformity-vocabulary/index.js.map +1 -0
  219. package/build/conformity-vocabulary/parse-conformity-catalogue.d.ts +26 -0
  220. package/build/conformity-vocabulary/parse-conformity-catalogue.js +106 -0
  221. package/build/conformity-vocabulary/parse-conformity-catalogue.js.map +1 -0
  222. package/build/conformity-vocabulary/parse-conformity-catalogue.test.d.ts +1 -0
  223. package/build/conformity-vocabulary/parse-conformity-catalogue.test.js +327 -0
  224. package/build/conformity-vocabulary/parse-conformity-catalogue.test.js.map +1 -0
  225. package/build/conformity-vocabulary/parse-conformity-scheme.d.ts +28 -0
  226. package/build/conformity-vocabulary/parse-conformity-scheme.js +47 -0
  227. package/build/conformity-vocabulary/parse-conformity-scheme.js.map +1 -0
  228. package/build/conformity-vocabulary/parse-conformity-scheme.test.d.ts +1 -0
  229. package/build/conformity-vocabulary/parse-conformity-scheme.test.js +284 -0
  230. package/build/conformity-vocabulary/parse-conformity-scheme.test.js.map +1 -0
  231. package/build/conformity-vocabulary/parsers/v0-7-0.parser.d.ts +19 -0
  232. package/build/conformity-vocabulary/parsers/v0-7-0.parser.js +219 -0
  233. package/build/conformity-vocabulary/parsers/v0-7-0.parser.js.map +1 -0
  234. package/build/conformity-vocabulary/types.d.ts +180 -0
  235. package/build/conformity-vocabulary/types.js +2 -0
  236. package/build/conformity-vocabulary/types.js.map +1 -0
  237. package/build/conformity-vocabulary/validate-conformity-claim.d.ts +26 -0
  238. package/build/conformity-vocabulary/validate-conformity-claim.js +165 -0
  239. package/build/conformity-vocabulary/validate-conformity-claim.js.map +1 -0
  240. package/build/conformity-vocabulary/validate-conformity-claim.test.d.ts +1 -0
  241. package/build/conformity-vocabulary/validate-conformity-claim.test.js +478 -0
  242. package/build/conformity-vocabulary/validate-conformity-claim.test.js.map +1 -0
  243. package/build/http-headers/index.d.ts +5 -0
  244. package/build/http-headers/index.js +6 -0
  245. package/build/http-headers/index.js.map +1 -0
  246. package/build/http-headers/is-safe-header-value.d.ts +10 -0
  247. package/build/http-headers/is-safe-header-value.js +15 -0
  248. package/build/http-headers/is-safe-header-value.js.map +1 -0
  249. package/build/http-headers/is-safe-header-value.test.d.ts +1 -0
  250. package/build/http-headers/is-safe-header-value.test.js +37 -0
  251. package/build/http-headers/is-safe-header-value.test.js.map +1 -0
  252. package/build/http-headers/parse-entity-tag.d.ts +9 -0
  253. package/build/http-headers/parse-entity-tag.js +18 -0
  254. package/build/http-headers/parse-entity-tag.js.map +1 -0
  255. package/build/http-headers/parse-entity-tag.test.d.ts +1 -0
  256. package/build/http-headers/parse-entity-tag.test.js +41 -0
  257. package/build/http-headers/parse-entity-tag.test.js.map +1 -0
  258. package/build/http-headers/parse-imf-date.d.ts +13 -0
  259. package/build/http-headers/parse-imf-date.js +23 -0
  260. package/build/http-headers/parse-imf-date.js.map +1 -0
  261. package/build/http-headers/parse-imf-date.test.d.ts +1 -0
  262. package/build/http-headers/parse-imf-date.test.js +31 -0
  263. package/build/http-headers/parse-imf-date.test.js.map +1 -0
  264. package/build/http-headers/parse-media-type.d.ts +8 -0
  265. package/build/http-headers/parse-media-type.js +21 -0
  266. package/build/http-headers/parse-media-type.js.map +1 -0
  267. package/build/http-headers/parse-media-type.test.d.ts +1 -0
  268. package/build/http-headers/parse-media-type.test.js +39 -0
  269. package/build/http-headers/parse-media-type.test.js.map +1 -0
  270. package/build/http-headers/user-agent.d.ts +35 -0
  271. package/build/http-headers/user-agent.js +45 -0
  272. package/build/http-headers/user-agent.js.map +1 -0
  273. package/build/http-headers/user-agent.test.d.ts +1 -0
  274. package/build/http-headers/user-agent.test.js +27 -0
  275. package/build/http-headers/user-agent.test.js.map +1 -0
  276. package/build/index.d.ts +1 -1
  277. package/build/index.js +1 -1
  278. package/build/index.js.map +1 -1
  279. package/build/loaders/errors.d.ts +21 -0
  280. package/build/loaders/errors.js +45 -0
  281. package/build/loaders/errors.js.map +1 -0
  282. package/build/loaders/index.d.ts +5 -0
  283. package/build/loaders/index.js +5 -0
  284. package/build/loaders/index.js.map +1 -0
  285. package/build/loaders/jsonld-document-loader.d.ts +48 -0
  286. package/build/loaders/jsonld-document-loader.js +43 -0
  287. package/build/loaders/jsonld-document-loader.js.map +1 -0
  288. package/build/loaders/jsonld-document-loader.test.d.ts +1 -0
  289. package/build/loaders/jsonld-document-loader.test.js +111 -0
  290. package/build/loaders/jsonld-document-loader.test.js.map +1 -0
  291. package/build/loaders/schema-loader.d.ts +31 -0
  292. package/build/loaders/schema-loader.js +83 -0
  293. package/build/loaders/schema-loader.js.map +1 -0
  294. package/build/loaders/schema-loader.ssrf.test.d.ts +1 -0
  295. package/build/loaders/schema-loader.ssrf.test.js +55 -0
  296. package/build/loaders/schema-loader.ssrf.test.js.map +1 -0
  297. package/build/loaders/schema-loader.test.d.ts +1 -0
  298. package/build/loaders/schema-loader.test.js +217 -0
  299. package/build/loaders/schema-loader.test.js.map +1 -0
  300. package/build/multibase-digest/multibase-digest.d.ts +23 -0
  301. package/build/multibase-digest/multibase-digest.js +40 -0
  302. package/build/multibase-digest/multibase-digest.js.map +1 -1
  303. package/build/multibase-digest/multibase-digest.test.js +46 -0
  304. package/build/multibase-digest/multibase-digest.test.js.map +1 -1
  305. package/build/node/errors.d.ts +47 -0
  306. package/build/node/errors.js +86 -0
  307. package/build/node/errors.js.map +1 -0
  308. package/build/node/index.d.ts +3 -0
  309. package/build/node/index.js +4 -0
  310. package/build/node/index.js.map +1 -0
  311. package/build/node/is-private-ip.d.ts +45 -0
  312. package/build/node/is-private-ip.fail-closed.test.d.ts +1 -0
  313. package/build/node/is-private-ip.fail-closed.test.js +36 -0
  314. package/build/node/is-private-ip.fail-closed.test.js.map +1 -0
  315. package/build/node/is-private-ip.js +203 -0
  316. package/build/node/is-private-ip.js.map +1 -0
  317. package/build/node/is-private-ip.test.d.ts +1 -0
  318. package/build/node/is-private-ip.test.js +124 -0
  319. package/build/node/is-private-ip.test.js.map +1 -0
  320. package/build/node/validate-public-url.d.ts +81 -0
  321. package/build/node/validate-public-url.js +128 -0
  322. package/build/node/validate-public-url.js.map +1 -0
  323. package/build/node/validate-public-url.test.d.ts +1 -0
  324. package/build/node/validate-public-url.test.js +324 -0
  325. package/build/node/validate-public-url.test.js.map +1 -0
  326. package/build/resolvers/errors.d.ts +73 -0
  327. package/build/resolvers/errors.js +133 -0
  328. package/build/resolvers/errors.js.map +1 -0
  329. package/build/resolvers/index.d.ts +5 -0
  330. package/build/resolvers/index.js +6 -0
  331. package/build/resolvers/index.js.map +1 -0
  332. package/build/resolvers/resolve-document-if-changed.d.ts +48 -0
  333. package/build/resolvers/resolve-document-if-changed.js +42 -0
  334. package/build/resolvers/resolve-document-if-changed.js.map +1 -0
  335. package/build/resolvers/resolve-document-if-changed.test.d.ts +1 -0
  336. package/build/resolvers/resolve-document-if-changed.test.js +116 -0
  337. package/build/resolvers/resolve-document-if-changed.test.js.map +1 -0
  338. package/build/resolvers/resolve-document.d.ts +106 -0
  339. package/build/resolvers/resolve-document.integration.test.d.ts +1 -0
  340. package/build/resolvers/resolve-document.integration.test.js +108 -0
  341. package/build/resolvers/resolve-document.integration.test.js.map +1 -0
  342. package/build/resolvers/resolve-document.js +319 -0
  343. package/build/resolvers/resolve-document.js.map +1 -0
  344. package/build/resolvers/resolve-document.test.d.ts +1 -0
  345. package/build/resolvers/resolve-document.test.js +749 -0
  346. package/build/resolvers/resolve-document.test.js.map +1 -0
  347. package/build/resolvers/resolve-json-document.d.ts +43 -0
  348. package/build/resolvers/resolve-json-document.js +43 -0
  349. package/build/resolvers/resolve-json-document.js.map +1 -0
  350. package/build/resolvers/resolve-json-document.test.d.ts +1 -0
  351. package/build/resolvers/resolve-json-document.test.js +78 -0
  352. package/build/resolvers/resolve-json-document.test.js.map +1 -0
  353. package/build/structured-error.d.ts +49 -0
  354. package/build/structured-error.js +17 -0
  355. package/build/structured-error.js.map +1 -0
  356. package/build/structured-error.test.d.ts +1 -0
  357. package/build/structured-error.test.js +112 -0
  358. package/build/structured-error.test.js.map +1 -0
  359. package/build/validation/describe-jsonld-failure.d.ts +90 -0
  360. package/build/validation/describe-jsonld-failure.js +171 -0
  361. package/build/validation/describe-jsonld-failure.js.map +1 -0
  362. package/build/validation/describe-jsonld-failure.test.d.ts +1 -0
  363. package/build/validation/describe-jsonld-failure.test.js +226 -0
  364. package/build/validation/describe-jsonld-failure.test.js.map +1 -0
  365. package/build/validation/errors.d.ts +40 -0
  366. package/build/validation/errors.js +75 -0
  367. package/build/validation/errors.js.map +1 -0
  368. package/build/validation/index.d.ts +5 -0
  369. package/build/validation/index.js +5 -0
  370. package/build/validation/index.js.map +1 -0
  371. package/build/validation/validate-against-schemas.d.ts +22 -0
  372. package/build/validation/validate-against-schemas.js +65 -0
  373. package/build/validation/validate-against-schemas.js.map +1 -0
  374. package/build/validation/validate-against-schemas.test.d.ts +1 -0
  375. package/build/validation/validate-against-schemas.test.js +169 -0
  376. package/build/validation/validate-against-schemas.test.js.map +1 -0
  377. package/build/validation/validate-jsonld.context-cache.test.d.ts +1 -0
  378. package/build/validation/validate-jsonld.context-cache.test.js +32 -0
  379. package/build/validation/validate-jsonld.context-cache.test.js.map +1 -0
  380. package/build/validation/validate-jsonld.d.ts +59 -0
  381. package/build/validation/validate-jsonld.js +126 -0
  382. package/build/validation/validate-jsonld.js.map +1 -0
  383. package/build/validation/validate-jsonld.ssrf.test.d.ts +1 -0
  384. package/build/validation/validate-jsonld.ssrf.test.js +108 -0
  385. package/build/validation/validate-jsonld.ssrf.test.js.map +1 -0
  386. package/build/validation/validate-jsonld.test.d.ts +1 -0
  387. package/build/validation/validate-jsonld.test.js +257 -0
  388. package/build/validation/validate-jsonld.test.js.map +1 -0
  389. package/package.json +86 -5
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-document.test.js","sourceRoot":"","sources":["../../src/resolvers/resolve-document.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ import { type ResolveDocumentOptions } from './resolve-document.js';
2
+ /**
3
+ * Options for {@link resolveJsonDocument}. Extends {@link ResolveDocumentOptions}
4
+ * with content negotiation. This wrapper alters none of the underlying
5
+ * {@link resolveDocument} guards: every SSRF / size / timeout / redirect guard
6
+ * applies, and an explicit resolver option may permit private destinations
7
+ * while the remaining guards stay active.
8
+ */
9
+ export interface ResolveJsonDocumentOptions extends ResolveDocumentOptions {
10
+ /**
11
+ * `Accept` header sent with the request. Defaults to `application/json`.
12
+ * An explicit accept header in {@link ResolveDocumentOptions.headers}
13
+ * (any casing) takes precedence over this.
14
+ */
15
+ accept?: string;
16
+ }
17
+ /** A JSON document fetched through the guarded resolver. */
18
+ export interface ResolvedJsonDocument {
19
+ /** The parsed JSON value. */
20
+ json: unknown;
21
+ /** Final URL after redirect chasing (matches the input when there were no redirects). */
22
+ finalUrl: string;
23
+ }
24
+ /**
25
+ * Fetches a remote JSON document with the SSRF / size / timeout / redirect
26
+ * hardening of {@link resolveDocument}, then parses the body as JSON.
27
+ *
28
+ * This is the shared primitive behind guarded JSON-shaped fetches (JSON-LD
29
+ * `@context` documents, JSON Schemas, catalogue documents): by default each
30
+ * URL and every redirect hop passes strict `validatePublicUrl` checks and the
31
+ * connection is pinned to the validated IP. An explicit resolver option may
32
+ * permit private destinations without removing the remaining checks.
33
+ *
34
+ * @throws {UrlValidationError} for URL / scheme / private-address rejections.
35
+ * @throws {ResolverNetworkError} per {@link resolveDocument}'s classification: the fetch rejected before a response, or the body read rejected after the headers arrived, and the rejection was not classified as the request's timeout.
36
+ * @throws {ResolverHttpError} on a non-2xx status (with `.status`).
37
+ * @throws {ResolverTooLargeError} when the body exceeds the size cap.
38
+ * @throws {ResolverTooManyRedirectsError} when the redirect chain exceeds the hop cap.
39
+ * @throws {ResolverTimedOutError} per {@link resolveDocument}'s classification of the total timeout expiring. This wrapper adds no timer and no classifier of its own; it owns JSON parsing only.
40
+ * @throws {ResolverRedirectMissingLocationError} for a 3xx with no / unparseable Location header.
41
+ * @throws {ResolverInvalidJsonError} when the fetched body is not valid JSON.
42
+ */
43
+ export declare function resolveJsonDocument(url: string, options?: ResolveJsonDocumentOptions): Promise<ResolvedJsonDocument>;
@@ -0,0 +1,43 @@
1
+ import { resolveDocument } from './resolve-document.js';
2
+ import { ResolverInvalidJsonError } from './errors.js';
3
+ /** Default `Accept` header when the caller does not specify one. */
4
+ const DEFAULT_ACCEPT = 'application/json';
5
+ /**
6
+ * Fetches a remote JSON document with the SSRF / size / timeout / redirect
7
+ * hardening of {@link resolveDocument}, then parses the body as JSON.
8
+ *
9
+ * This is the shared primitive behind guarded JSON-shaped fetches (JSON-LD
10
+ * `@context` documents, JSON Schemas, catalogue documents): by default each
11
+ * URL and every redirect hop passes strict `validatePublicUrl` checks and the
12
+ * connection is pinned to the validated IP. An explicit resolver option may
13
+ * permit private destinations without removing the remaining checks.
14
+ *
15
+ * @throws {UrlValidationError} for URL / scheme / private-address rejections.
16
+ * @throws {ResolverNetworkError} per {@link resolveDocument}'s classification: the fetch rejected before a response, or the body read rejected after the headers arrived, and the rejection was not classified as the request's timeout.
17
+ * @throws {ResolverHttpError} on a non-2xx status (with `.status`).
18
+ * @throws {ResolverTooLargeError} when the body exceeds the size cap.
19
+ * @throws {ResolverTooManyRedirectsError} when the redirect chain exceeds the hop cap.
20
+ * @throws {ResolverTimedOutError} per {@link resolveDocument}'s classification of the total timeout expiring. This wrapper adds no timer and no classifier of its own; it owns JSON parsing only.
21
+ * @throws {ResolverRedirectMissingLocationError} for a 3xx with no / unparseable Location header.
22
+ * @throws {ResolverInvalidJsonError} when the fetched body is not valid JSON.
23
+ */
24
+ export async function resolveJsonDocument(url, options) {
25
+ const { accept, headers, ...resolverOptions } = options ?? {};
26
+ // HTTP header names are case-insensitive, so an accept header supplied in
27
+ // any casing suppresses the default rather than producing a second header.
28
+ const hasExplicitAccept = Object.keys(headers ?? {}).some((key) => key.toLowerCase() === 'accept');
29
+ const result = await resolveDocument(url, {
30
+ ...resolverOptions,
31
+ headers: hasExplicitAccept ? headers : { Accept: accept ?? DEFAULT_ACCEPT, ...headers },
32
+ });
33
+ const text = new TextDecoder().decode(result.body);
34
+ let json;
35
+ try {
36
+ json = JSON.parse(text);
37
+ }
38
+ catch (cause) {
39
+ throw new ResolverInvalidJsonError(result.finalUrl, cause);
40
+ }
41
+ return { json, finalUrl: result.finalUrl };
42
+ }
43
+ //# sourceMappingURL=resolve-json-document.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-json-document.js","sourceRoot":"","sources":["../../src/resolvers/resolve-json-document.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAA+B,MAAM,uBAAuB,CAAC;AACrF,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAEvD,oEAAoE;AACpE,MAAM,cAAc,GAAG,kBAAkB,CAAC;AA0B1C;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,GAAW,EACX,OAAoC;IAEpC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,eAAe,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;IAE9D,0EAA0E;IAC1E,2EAA2E;IAC3E,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,CAAC;IACnG,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE;QACxC,GAAG,eAAe;QAClB,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,IAAI,cAAc,EAAE,GAAG,OAAO,EAAE;KACxF,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACnD,IAAI,IAAa,CAAC;IAClB,IAAI,CAAC;QACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,wBAAwB,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;AAC7C,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,78 @@
1
+ import { jest } from '@jest/globals';
2
+ import { ResolverHttpError, ResolverInvalidJsonError } from './errors.js';
3
+ const resolveDocument = jest.fn();
4
+ jest.unstable_mockModule('./resolve-document.js', () => ({
5
+ resolveDocument,
6
+ }));
7
+ const { resolveJsonDocument } = await import('./resolve-json-document.js');
8
+ const encode = (s) => new TextEncoder().encode(s);
9
+ describe('resolveJsonDocument', () => {
10
+ beforeEach(() => {
11
+ resolveDocument.mockReset();
12
+ });
13
+ it('fetches through resolveDocument and returns the parsed JSON with the final URL', async () => {
14
+ resolveDocument.mockResolvedValue({ body: encode('{"a":1}'), finalUrl: 'https://ex.test/doc' });
15
+ await expect(resolveJsonDocument('https://ex.test/doc')).resolves.toEqual({
16
+ json: { a: 1 },
17
+ finalUrl: 'https://ex.test/doc',
18
+ });
19
+ });
20
+ it('defaults the Accept header to application/json', async () => {
21
+ resolveDocument.mockResolvedValue({ body: encode('{}'), finalUrl: 'https://ex.test/doc' });
22
+ await resolveJsonDocument('https://ex.test/doc');
23
+ expect(resolveDocument).toHaveBeenCalledWith('https://ex.test/doc', expect.objectContaining({ headers: expect.objectContaining({ Accept: 'application/json' }) }));
24
+ });
25
+ it('sends the supplied accept value', async () => {
26
+ resolveDocument.mockResolvedValue({ body: encode('{}'), finalUrl: 'https://ex.test/doc' });
27
+ await resolveJsonDocument('https://ex.test/doc', { accept: 'application/ld+json' });
28
+ expect(resolveDocument).toHaveBeenCalledWith('https://ex.test/doc', expect.objectContaining({ headers: expect.objectContaining({ Accept: 'application/ld+json' }) }));
29
+ });
30
+ it('lets an explicit headers.Accept override the accept option', async () => {
31
+ resolveDocument.mockResolvedValue({ body: encode('{}'), finalUrl: 'https://ex.test/doc' });
32
+ await resolveJsonDocument('https://ex.test/doc', {
33
+ accept: 'application/ld+json',
34
+ headers: { Accept: 'application/schema+json' },
35
+ });
36
+ expect(resolveDocument).toHaveBeenCalledWith('https://ex.test/doc', expect.objectContaining({ headers: expect.objectContaining({ Accept: 'application/schema+json' }) }));
37
+ });
38
+ it('lets a lowercase accept header key take precedence without duplicating the header', async () => {
39
+ resolveDocument.mockResolvedValue({ body: encode('{}'), finalUrl: 'https://ex.test/doc' });
40
+ await resolveJsonDocument('https://ex.test/doc', {
41
+ accept: 'application/ld+json',
42
+ headers: { accept: 'application/schema+json' },
43
+ });
44
+ expect(resolveDocument).toHaveBeenCalledWith('https://ex.test/doc', expect.objectContaining({ headers: { accept: 'application/schema+json' } }));
45
+ });
46
+ it('forwards resolver options including private permission unchanged', async () => {
47
+ resolveDocument.mockResolvedValue({ body: encode('{}'), finalUrl: 'https://ex.test/doc' });
48
+ await resolveJsonDocument('https://ex.test/doc', {
49
+ allowedSchemes: ['https'],
50
+ maxResponseBytes: 2048,
51
+ allowPrivateAddresses: true,
52
+ });
53
+ expect(resolveDocument).toHaveBeenCalledWith('https://ex.test/doc', expect.objectContaining({ allowedSchemes: ['https'], maxResponseBytes: 2048, allowPrivateAddresses: true }));
54
+ });
55
+ it('leaves the default resolver lookup path unchanged when no lookup is supplied', async () => {
56
+ resolveDocument.mockResolvedValue({ body: encode('{}'), finalUrl: 'https://ex.test/doc' });
57
+ await resolveJsonDocument('https://ex.test/doc');
58
+ expect(resolveDocument.mock.calls[0][1]).not.toHaveProperty('lookup');
59
+ });
60
+ it('forwards the optional lookup callback to the guarded resolver', async () => {
61
+ const lookup = jest.fn();
62
+ resolveDocument.mockResolvedValue({ body: encode('{}'), finalUrl: 'https://ex.test/doc' });
63
+ await resolveJsonDocument('https://ex.test/doc', { lookup });
64
+ expect(resolveDocument).toHaveBeenCalledWith('https://ex.test/doc', expect.objectContaining({ lookup }));
65
+ });
66
+ it('throws ResolverInvalidJsonError when the body is not valid JSON', async () => {
67
+ resolveDocument.mockResolvedValue({ body: encode('not json'), finalUrl: 'https://ex.test/doc' });
68
+ const error = (await resolveJsonDocument('https://ex.test/doc').catch((e) => e));
69
+ expect(error).toBeInstanceOf(ResolverInvalidJsonError);
70
+ expect(error.url).toBe('https://ex.test/doc');
71
+ });
72
+ it('propagates resolveDocument errors (SSRF guard, HTTP, timeout) unchanged', async () => {
73
+ const httpError = new ResolverHttpError('https://ex.test/doc', 404);
74
+ resolveDocument.mockRejectedValue(httpError);
75
+ await expect(resolveJsonDocument('https://ex.test/doc')).rejects.toBe(httpError);
76
+ });
77
+ });
78
+ //# sourceMappingURL=resolve-json-document.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-json-document.test.js","sourceRoot":"","sources":["../../src/resolvers/resolve-json-document.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * System-wide base class for structured diagnostics, per ADR-035.
3
+ *
4
+ * Sub-entries and consumer packages extend this class with their own typed
5
+ * hierarchies. Lives in `@uncefact/untp-utils` because every workspace
6
+ * package already depends on it; the name is neutral, not utils-specific.
7
+ *
8
+ * @see ../../../docs/adrs/035-utils-throws-structured-errors.md
9
+ */
10
+ export interface StructuredDiagnostic {
11
+ /** Stable, namespaced identifier (e.g. `url.private-address`). */
12
+ code: string;
13
+ /** Human-facing summary. */
14
+ message: string;
15
+ /** Failing input or upstream value. */
16
+ received?: unknown;
17
+ /** What was expected. */
18
+ expected?: unknown;
19
+ /** Suggested next step. */
20
+ remediation?: string;
21
+ /** RFC 6901 JSON pointer into the input. */
22
+ pointer?: string;
23
+ }
24
+ export interface StructuredErrorInit extends StructuredDiagnostic {
25
+ /** Underlying error wrapped via `Error.cause`. */
26
+ cause?: unknown;
27
+ }
28
+ export declare class StructuredError extends Error {
29
+ readonly code: string;
30
+ readonly received?: unknown;
31
+ readonly expected?: unknown;
32
+ readonly remediation?: string;
33
+ readonly pointer?: string;
34
+ constructor(init: StructuredErrorInit);
35
+ }
36
+ /**
37
+ * Advisory diagnostic returned on the success path of functions that
38
+ * opt into warnings (ADR-035 §5).
39
+ */
40
+ export interface StructuredWarning extends StructuredDiagnostic {
41
+ }
42
+ /**
43
+ * One entry in a multi-failure case (e.g. one of N Ajv `allErrors`).
44
+ * Carried on the thrown subclass as `failures: readonly ValidationFailure[]`
45
+ * (ADR-035 §4). Same shape as {@link StructuredWarning}; the type
46
+ * distinguishes fatal sub-failure from advisory at the call site.
47
+ */
48
+ export interface ValidationFailure extends StructuredDiagnostic {
49
+ }
@@ -0,0 +1,17 @@
1
+ export class StructuredError extends Error {
2
+ code;
3
+ constructor(init) {
4
+ super(init.message, init.cause !== undefined ? { cause: init.cause } : undefined);
5
+ this.name = new.target.name;
6
+ this.code = init.code;
7
+ if (init.received !== undefined)
8
+ this.received = init.received;
9
+ if (init.expected !== undefined)
10
+ this.expected = init.expected;
11
+ if (init.remediation !== undefined)
12
+ this.remediation = init.remediation;
13
+ if (init.pointer !== undefined)
14
+ this.pointer = init.pointer;
15
+ }
16
+ }
17
+ //# sourceMappingURL=structured-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structured-error.js","sourceRoot":"","sources":["../src/structured-error.ts"],"names":[],"mappings":"AA6BA,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAC/B,IAAI,CAAS;IAQtB,YAAY,IAAyB;QACnC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAClF,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;YAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/D,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;YAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/D,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS;YAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACxE,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;YAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC9D,CAAC;CACF"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,112 @@
1
+ import { StructuredError } from './structured-error.js';
2
+ describe('StructuredError', () => {
3
+ describe('constructor', () => {
4
+ it('assigns code and message', () => {
5
+ const e = new StructuredError({ code: 'demo.code', message: 'demo message' });
6
+ expect(e.code).toBe('demo.code');
7
+ expect(e.message).toBe('demo message');
8
+ });
9
+ it('assigns received / expected / remediation / pointer when supplied', () => {
10
+ const e = new StructuredError({
11
+ code: 'demo.code',
12
+ message: 'm',
13
+ received: { foo: 1 },
14
+ expected: 'bar',
15
+ remediation: 'do something',
16
+ pointer: '/foo/bar',
17
+ });
18
+ expect(e.received).toEqual({ foo: 1 });
19
+ expect(e.expected).toBe('bar');
20
+ expect(e.remediation).toBe('do something');
21
+ expect(e.pointer).toBe('/foo/bar');
22
+ });
23
+ it('leaves optional fields undefined when not supplied', () => {
24
+ const e = new StructuredError({ code: 'c', message: 'm' });
25
+ expect(e.received).toBeUndefined();
26
+ expect(e.expected).toBeUndefined();
27
+ expect(e.remediation).toBeUndefined();
28
+ expect(e.pointer).toBeUndefined();
29
+ });
30
+ it('omits absent optional fields from the instance (in-operator returns false)', () => {
31
+ const e = new StructuredError({ code: 'c', message: 'm' });
32
+ expect('received' in e).toBe(false);
33
+ expect('expected' in e).toBe(false);
34
+ expect('remediation' in e).toBe(false);
35
+ expect('pointer' in e).toBe(false);
36
+ });
37
+ it('includes supplied optional fields on the instance (in-operator returns true)', () => {
38
+ const e = new StructuredError({ code: 'c', message: 'm', received: 'x', pointer: '/y' });
39
+ expect('received' in e).toBe(true);
40
+ expect('pointer' in e).toBe(true);
41
+ expect('expected' in e).toBe(false);
42
+ expect('remediation' in e).toBe(false);
43
+ });
44
+ });
45
+ describe('Error.cause integration', () => {
46
+ it('wires cause through to the underlying Error', () => {
47
+ const underlying = new Error('boom');
48
+ const e = new StructuredError({ code: 'c', message: 'm', cause: underlying });
49
+ expect(e.cause).toBe(underlying);
50
+ });
51
+ it('omits cause from the underlying Error when not supplied', () => {
52
+ const e = new StructuredError({ code: 'c', message: 'm' });
53
+ expect(e.cause).toBeUndefined();
54
+ });
55
+ it('accepts non-Error causes (string, object, etc.)', () => {
56
+ const e = new StructuredError({ code: 'c', message: 'm', cause: 'string cause' });
57
+ expect(e.cause).toBe('string cause');
58
+ });
59
+ });
60
+ describe('name', () => {
61
+ it('resolves to the concrete subclass name in stack traces and logs', () => {
62
+ class PrivateAddressError extends StructuredError {
63
+ }
64
+ const e = new PrivateAddressError({ code: 'url.private-address', message: 'm' });
65
+ expect(e.name).toBe('PrivateAddressError');
66
+ });
67
+ it('uses StructuredError when constructed directly (not via a subclass)', () => {
68
+ const e = new StructuredError({ code: 'c', message: 'm' });
69
+ expect(e.name).toBe('StructuredError');
70
+ });
71
+ });
72
+ describe('instanceof and Error inheritance', () => {
73
+ it('is an instance of Error', () => {
74
+ const e = new StructuredError({ code: 'c', message: 'm' });
75
+ expect(e).toBeInstanceOf(Error);
76
+ });
77
+ it('is an instance of StructuredError when constructed directly', () => {
78
+ const e = new StructuredError({ code: 'c', message: 'm' });
79
+ expect(e).toBeInstanceOf(StructuredError);
80
+ });
81
+ it('preserves the StructuredError instanceof check for concrete subclasses', () => {
82
+ class SubError extends StructuredError {
83
+ }
84
+ const e = new SubError({ code: 'c', message: 'm' });
85
+ expect(e).toBeInstanceOf(SubError);
86
+ expect(e).toBeInstanceOf(StructuredError);
87
+ expect(e).toBeInstanceOf(Error);
88
+ });
89
+ });
90
+ describe('throwability', () => {
91
+ it('round-trips through try/catch as the concrete subclass', () => {
92
+ class DemoError extends StructuredError {
93
+ extraField;
94
+ constructor(init) {
95
+ super(init);
96
+ this.extraField = init.extraField;
97
+ }
98
+ }
99
+ let caught;
100
+ try {
101
+ throw new DemoError({ code: 'demo.x', message: 'm', extraField: 'value' });
102
+ }
103
+ catch (e) {
104
+ caught = e;
105
+ }
106
+ expect(caught).toBeInstanceOf(DemoError);
107
+ expect(caught.extraField).toBe('value');
108
+ expect(caught.code).toBe('demo.x');
109
+ });
110
+ });
111
+ });
112
+ //# sourceMappingURL=structured-error.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structured-error.test.js","sourceRoot":"","sources":["../src/structured-error.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,90 @@
1
+ import { JsonLdValidationError } from './errors.js';
2
+ /**
3
+ * A caller-facing description of why JSON-LD validation failed, split into
4
+ * the two classes a caller reacts to differently: a problem with their
5
+ * document (fix the payload) versus a remote `@context` that could not be
6
+ * fetched or used (an environment or upstream condition; the payload may be
7
+ * fine).
8
+ */
9
+ /** The event and syntax-error identifiers the classifier is allowed to echo, see {@link SAFE_EVENT_FIELDS}. */
10
+ export type SafeJsonLdFields = Partial<Record<(typeof SAFE_EVENT_FIELDS)[number], string>>;
11
+ interface JsonLdFailureDescriptionBase {
12
+ /**
13
+ * Human-facing reason, safe to return to the caller. Every branch below
14
+ * must preserve that property: detail comes only from explicitly
15
+ * recognised shapes (the guarded loader's typed diagnostics, jsonld.js
16
+ * safe-mode events via an allowlist of string fields, jsonld.js's fixed
17
+ * syntax-error strings, or this package's own typed messages). Messages
18
+ * from unrecognised errors never reach this field; unknown failures get
19
+ * a generic message and the full chain stays on `cause` for the log.
20
+ */
21
+ detail: string;
22
+ }
23
+ /**
24
+ * A remote `@context` could not be used. `context-fetch`: it could not be
25
+ * fetched (host down, URL refused, bounds exceeded). `context-invalid`: it
26
+ * was fetched but is not usable as a context.
27
+ */
28
+ export interface JsonLdContextFailure extends JsonLdFailureDescriptionBase {
29
+ kind: 'context-fetch' | 'context-invalid';
30
+ /**
31
+ * The resolver's structured code or the recognised jsonld.js code. Absent
32
+ * for a URL-policy rejection on purpose: its subclasses must stay
33
+ * indistinguishable to the caller (see {@link describeJsonLdFailure}), so
34
+ * do not tighten this.
35
+ */
36
+ code?: string;
37
+ /** The `@context` URL that failed, when jsonld.js names one; it comes from the caller's own document. */
38
+ url?: string;
39
+ }
40
+ /** The contexts are fine and the document itself fails against them. */
41
+ export interface JsonLdDocumentFailure extends JsonLdFailureDescriptionBase {
42
+ kind: 'document';
43
+ /** The jsonld.js syntax-error or safe-mode event code, or this module's own `invalid document shape` code. */
44
+ code?: string;
45
+ /**
46
+ * Whether jsonld.js rejected the context definitions themselves
47
+ * (`syntax-error`) or the document's content under them
48
+ * (`safe-mode-event`). A verifier tells its user to fix the @context in
49
+ * the first case and the credential in the second. Absent when neither
50
+ * shape was recognised.
51
+ */
52
+ source?: 'syntax-error' | 'safe-mode-event';
53
+ /** Allowlisted identifiers from the event or syntax error, see {@link SAFE_EVENT_FIELDS}. */
54
+ fields?: SafeJsonLdFields;
55
+ }
56
+ export type JsonLdFailureDescription = JsonLdContextFailure | JsonLdDocumentFailure;
57
+ /** Event `details` fields safe to echo: identifiers from the caller's own document or a public context, never free-form values that can carry credential content. */
58
+ /** The only jsonld.js event and syntax-error detail fields ever echoed to a caller; everything else may carry document content. */
59
+ export declare const SAFE_EVENT_FIELDS: readonly ["property", "expandedProperty", "id", "type", "term", "language", "vocab"];
60
+ /**
61
+ * Classifies a {@link JsonLdValidationError} by walking its cause chain
62
+ * (native `.cause` hops; the chain is rehydrated by `validateJsonLd`, see
63
+ * issue #773).
64
+ *
65
+ * The passes run in a load-bearing order. The rehydrated chain nests the
66
+ * guarded loader's error BENEATH jsonld.js's own wrapper
67
+ * (`JsonLdExpansionFailedError` -> `jsonld.InvalidUrl` -> the loader's
68
+ * `UrlValidationError`), and the wrapper's message contains the URL, so no
69
+ * jsonld.js message may become `detail` until the typed-loader pass has
70
+ * exhausted the whole chain; matching the wrapper's message first would
71
+ * reopen the per-hostname reconnaissance oracle the flat message exists to
72
+ * close. The URL scan that runs before the typed-loader pass reads only the
73
+ * wrapper's `details.url`, which is the caller's own document's URL.
74
+ *
75
+ * `UrlValidationError` deliberately collapses to one flat message: its
76
+ * subclasses distinguish "does not resolve" from "resolves to a private
77
+ * address" from "scheme not allowed", and echoing that distinction would
78
+ * hand an authenticated caller a network-reconnaissance oracle over
79
+ * attacker-chosen `@context` URLs. The full typed diagnostic stays on the
80
+ * cause chain for the server-side log. `ResolverError` diagnostics fire
81
+ * only after the URL passed the public-address check, so their detail
82
+ * (HTTP status, timeout, size bound) is returned as-is.
83
+ *
84
+ * Known limitation, accepted: a malformed term definition inside a
85
+ * successfully fetched remote context surfaces as a `jsonld.SyntaxError`
86
+ * indistinguishable from the same defect in an inline context, and is
87
+ * classified as a document failure.
88
+ */
89
+ export declare function describeJsonLdFailure(error: JsonLdValidationError): JsonLdFailureDescription;
90
+ export {};