@lindorm/aegis 0.8.0 → 0.9.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 (350) hide show
  1. package/README.md +84 -5
  2. package/dist/classes/Aegis.d.ts +20 -5
  3. package/dist/classes/Aegis.d.ts.map +1 -1
  4. package/dist/classes/Aegis.js +259 -45
  5. package/dist/classes/Aegis.js.map +1 -1
  6. package/dist/classes/CoseKit.d.ts +31 -0
  7. package/dist/classes/CoseKit.d.ts.map +1 -0
  8. package/dist/classes/CoseKit.js +64 -0
  9. package/dist/classes/CoseKit.js.map +1 -0
  10. package/dist/classes/CweKit.d.ts +24 -0
  11. package/dist/classes/CweKit.d.ts.map +1 -0
  12. package/dist/classes/CweKit.js +73 -0
  13. package/dist/classes/CweKit.js.map +1 -0
  14. package/dist/classes/CwmKit.d.ts +22 -0
  15. package/dist/classes/CwmKit.d.ts.map +1 -0
  16. package/dist/classes/CwmKit.js +54 -0
  17. package/dist/classes/CwmKit.js.map +1 -0
  18. package/dist/classes/CwsKit.d.ts +24 -0
  19. package/dist/classes/CwsKit.d.ts.map +1 -0
  20. package/dist/classes/CwsKit.js +60 -0
  21. package/dist/classes/CwsKit.js.map +1 -0
  22. package/dist/classes/CwtKit.d.ts +31 -0
  23. package/dist/classes/CwtKit.d.ts.map +1 -0
  24. package/dist/classes/CwtKit.js +65 -0
  25. package/dist/classes/CwtKit.js.map +1 -0
  26. package/dist/classes/JoseKit.d.ts +32 -0
  27. package/dist/classes/JoseKit.d.ts.map +1 -0
  28. package/dist/classes/JoseKit.js +66 -0
  29. package/dist/classes/JoseKit.js.map +1 -0
  30. package/dist/classes/JweKit.d.ts.map +1 -1
  31. package/dist/classes/JweKit.js +31 -3
  32. package/dist/classes/JweKit.js.map +1 -1
  33. package/dist/classes/JwsKit.d.ts.map +1 -1
  34. package/dist/classes/JwsKit.js +19 -3
  35. package/dist/classes/JwsKit.js.map +1 -1
  36. package/dist/classes/JwtKit.d.ts +4 -1
  37. package/dist/classes/JwtKit.d.ts.map +1 -1
  38. package/dist/classes/JwtKit.js +100 -20
  39. package/dist/classes/JwtKit.js.map +1 -1
  40. package/dist/classes/SignatureKit.d.ts.map +1 -1
  41. package/dist/classes/SignatureKit.js +5 -1
  42. package/dist/classes/SignatureKit.js.map +1 -1
  43. package/dist/constants/token-type.d.ts +1 -1
  44. package/dist/constants/token-type.d.ts.map +1 -1
  45. package/dist/constants/token-type.js +2 -0
  46. package/dist/constants/token-type.js.map +1 -1
  47. package/dist/errors/AegisError.d.ts +1 -0
  48. package/dist/errors/AegisError.d.ts.map +1 -1
  49. package/dist/errors/AegisError.js +1 -0
  50. package/dist/errors/AegisError.js.map +1 -1
  51. package/dist/errors/JweError.d.ts +1 -0
  52. package/dist/errors/JweError.d.ts.map +1 -1
  53. package/dist/errors/JweError.js +1 -0
  54. package/dist/errors/JweError.js.map +1 -1
  55. package/dist/errors/JwsError.d.ts +1 -0
  56. package/dist/errors/JwsError.d.ts.map +1 -1
  57. package/dist/errors/JwsError.js +1 -0
  58. package/dist/errors/JwsError.js.map +1 -1
  59. package/dist/errors/JwtError.d.ts +1 -0
  60. package/dist/errors/JwtError.d.ts.map +1 -1
  61. package/dist/errors/JwtError.js +1 -0
  62. package/dist/errors/JwtError.js.map +1 -1
  63. package/dist/interfaces/Aegis.d.ts +6 -1
  64. package/dist/interfaces/Aegis.d.ts.map +1 -1
  65. package/dist/internal/claims/events.d.ts +5 -0
  66. package/dist/internal/claims/events.d.ts.map +1 -0
  67. package/dist/internal/claims/events.js +3 -0
  68. package/dist/internal/claims/events.js.map +1 -0
  69. package/dist/internal/claims/registry.d.ts +14 -0
  70. package/dist/internal/claims/registry.d.ts.map +1 -0
  71. package/dist/internal/claims/registry.js +61 -0
  72. package/dist/internal/claims/registry.js.map +1 -0
  73. package/dist/internal/claims/sub-id.d.ts +7 -0
  74. package/dist/internal/claims/sub-id.d.ts.map +1 -0
  75. package/dist/internal/claims/sub-id.js +11 -0
  76. package/dist/internal/claims/sub-id.js.map +1 -0
  77. package/dist/internal/cose/act-claim.d.ts +4 -0
  78. package/dist/internal/cose/act-claim.d.ts.map +1 -0
  79. package/dist/internal/cose/act-claim.js +8 -0
  80. package/dist/internal/cose/act-claim.js.map +1 -0
  81. package/dist/internal/cose/alg-labels.d.ts +4 -0
  82. package/dist/internal/cose/alg-labels.d.ts.map +1 -0
  83. package/dist/internal/cose/alg-labels.js +42 -0
  84. package/dist/internal/cose/alg-labels.js.map +1 -0
  85. package/dist/internal/cose/cbor.d.ts +11 -0
  86. package/dist/internal/cose/cbor.d.ts.map +1 -0
  87. package/dist/internal/cose/cbor.js +37 -0
  88. package/dist/internal/cose/cbor.js.map +1 -0
  89. package/dist/internal/cose/compact-map.d.ts +11 -0
  90. package/dist/internal/cose/compact-map.d.ts.map +1 -0
  91. package/dist/internal/cose/compact-map.js +43 -0
  92. package/dist/internal/cose/compact-map.js.map +1 -0
  93. package/dist/internal/cose/cose-key-thumbprint.d.ts +5 -0
  94. package/dist/internal/cose/cose-key-thumbprint.d.ts.map +1 -0
  95. package/dist/internal/cose/cose-key-thumbprint.js +60 -0
  96. package/dist/internal/cose/cose-key-thumbprint.js.map +1 -0
  97. package/dist/internal/cose/cose-key.d.ts +8 -0
  98. package/dist/internal/cose/cose-key.d.ts.map +1 -0
  99. package/dist/internal/cose/cose-key.js +98 -0
  100. package/dist/internal/cose/cose-key.js.map +1 -0
  101. package/dist/internal/cose/cose-typ.d.ts +2 -0
  102. package/dist/internal/cose/cose-typ.d.ts.map +1 -0
  103. package/dist/internal/cose/cose-typ.js +8 -0
  104. package/dist/internal/cose/cose-typ.js.map +1 -0
  105. package/dist/internal/cose/cwt-claims.d.ts +7 -0
  106. package/dist/internal/cose/cwt-claims.d.ts.map +1 -0
  107. package/dist/internal/cose/cwt-claims.js +94 -0
  108. package/dist/internal/cose/cwt-claims.js.map +1 -0
  109. package/dist/internal/cose/enc-labels.d.ts +5 -0
  110. package/dist/internal/cose/enc-labels.d.ts.map +1 -0
  111. package/dist/internal/cose/enc-labels.js +47 -0
  112. package/dist/internal/cose/enc-labels.js.map +1 -0
  113. package/dist/internal/cose/structures.d.ts +20 -0
  114. package/dist/internal/cose/structures.d.ts.map +1 -0
  115. package/dist/internal/cose/structures.js +22 -0
  116. package/dist/internal/cose/structures.js.map +1 -0
  117. package/dist/internal/cose/sub-id-claim.d.ts +4 -0
  118. package/dist/internal/cose/sub-id-claim.d.ts.map +1 -0
  119. package/dist/internal/cose/sub-id-claim.js +18 -0
  120. package/dist/internal/cose/sub-id-claim.js.map +1 -0
  121. package/dist/internal/profiles/definitions/access-token.d.ts +3 -0
  122. package/dist/internal/profiles/definitions/access-token.d.ts.map +1 -0
  123. package/dist/internal/profiles/definitions/access-token.js +31 -0
  124. package/dist/internal/profiles/definitions/access-token.js.map +1 -0
  125. package/dist/internal/profiles/definitions/client-assertion.d.ts +3 -0
  126. package/dist/internal/profiles/definitions/client-assertion.d.ts.map +1 -0
  127. package/dist/internal/profiles/definitions/client-assertion.js +18 -0
  128. package/dist/internal/profiles/definitions/client-assertion.js.map +1 -0
  129. package/dist/internal/profiles/definitions/default.d.ts +3 -0
  130. package/dist/internal/profiles/definitions/default.d.ts.map +1 -0
  131. package/dist/internal/profiles/definitions/default.js +14 -0
  132. package/dist/internal/profiles/definitions/default.js.map +1 -0
  133. package/dist/internal/profiles/definitions/delegation.d.ts +3 -0
  134. package/dist/internal/profiles/definitions/delegation.d.ts.map +1 -0
  135. package/dist/internal/profiles/definitions/delegation.js +19 -0
  136. package/dist/internal/profiles/definitions/delegation.js.map +1 -0
  137. package/dist/internal/profiles/definitions/erasure-token.d.ts +3 -0
  138. package/dist/internal/profiles/definitions/erasure-token.d.ts.map +1 -0
  139. package/dist/internal/profiles/definitions/erasure-token.js +28 -0
  140. package/dist/internal/profiles/definitions/erasure-token.js.map +1 -0
  141. package/dist/internal/profiles/definitions/id-token.d.ts +3 -0
  142. package/dist/internal/profiles/definitions/id-token.d.ts.map +1 -0
  143. package/dist/internal/profiles/definitions/id-token.js +26 -0
  144. package/dist/internal/profiles/definitions/id-token.js.map +1 -0
  145. package/dist/internal/profiles/definitions/introspection.d.ts +3 -0
  146. package/dist/internal/profiles/definitions/introspection.d.ts.map +1 -0
  147. package/dist/internal/profiles/definitions/introspection.js +18 -0
  148. package/dist/internal/profiles/definitions/introspection.js.map +1 -0
  149. package/dist/internal/profiles/definitions/jarm.d.ts +3 -0
  150. package/dist/internal/profiles/definitions/jarm.d.ts.map +1 -0
  151. package/dist/internal/profiles/definitions/jarm.js +19 -0
  152. package/dist/internal/profiles/definitions/jarm.js.map +1 -0
  153. package/dist/internal/profiles/definitions/logout-token.d.ts +3 -0
  154. package/dist/internal/profiles/definitions/logout-token.d.ts.map +1 -0
  155. package/dist/internal/profiles/definitions/logout-token.js +20 -0
  156. package/dist/internal/profiles/definitions/logout-token.js.map +1 -0
  157. package/dist/internal/profiles/definitions/security-event.d.ts +3 -0
  158. package/dist/internal/profiles/definitions/security-event.d.ts.map +1 -0
  159. package/dist/internal/profiles/definitions/security-event.js +20 -0
  160. package/dist/internal/profiles/definitions/security-event.js.map +1 -0
  161. package/dist/internal/profiles/definitions/userinfo.d.ts +3 -0
  162. package/dist/internal/profiles/definitions/userinfo.d.ts.map +1 -0
  163. package/dist/internal/profiles/definitions/userinfo.js +18 -0
  164. package/dist/internal/profiles/definitions/userinfo.js.map +1 -0
  165. package/dist/internal/profiles/registry.d.ts +4 -0
  166. package/dist/internal/profiles/registry.d.ts.map +1 -0
  167. package/dist/internal/profiles/registry.js +41 -0
  168. package/dist/internal/profiles/registry.js.map +1 -0
  169. package/dist/internal/utils/assemble-common-claims.d.ts +12 -0
  170. package/dist/internal/utils/assemble-common-claims.d.ts.map +1 -0
  171. package/dist/internal/utils/assemble-common-claims.js +66 -0
  172. package/dist/internal/utils/assemble-common-claims.js.map +1 -0
  173. package/dist/internal/utils/build-profile-claims.d.ts +14 -0
  174. package/dist/internal/utils/build-profile-claims.d.ts.map +1 -0
  175. package/dist/internal/utils/build-profile-claims.js +75 -0
  176. package/dist/internal/utils/build-profile-claims.js.map +1 -0
  177. package/dist/internal/utils/compute-jwk-thumbprint.js +8 -1
  178. package/dist/internal/utils/compute-jwk-thumbprint.js.map +1 -1
  179. package/dist/internal/utils/compute-typ-header.d.ts.map +1 -1
  180. package/dist/internal/utils/compute-typ-header.js +20 -5
  181. package/dist/internal/utils/compute-typ-header.js.map +1 -1
  182. package/dist/internal/utils/create-hash.d.ts.map +1 -1
  183. package/dist/internal/utils/create-hash.js +7 -7
  184. package/dist/internal/utils/create-hash.js.map +1 -1
  185. package/dist/internal/utils/enforce-verify-floor.d.ts +12 -0
  186. package/dist/internal/utils/enforce-verify-floor.d.ts.map +1 -0
  187. package/dist/internal/utils/enforce-verify-floor.js +43 -0
  188. package/dist/internal/utils/enforce-verify-floor.js.map +1 -0
  189. package/dist/internal/utils/extract-claims.d.ts +2 -1
  190. package/dist/internal/utils/extract-claims.d.ts.map +1 -1
  191. package/dist/internal/utils/extract-claims.js +10 -4
  192. package/dist/internal/utils/extract-claims.js.map +1 -1
  193. package/dist/internal/utils/jose-header.d.ts.map +1 -1
  194. package/dist/internal/utils/jose-header.js +38 -7
  195. package/dist/internal/utils/jose-header.js.map +1 -1
  196. package/dist/internal/utils/jwt-payload.d.ts +8 -6
  197. package/dist/internal/utils/jwt-payload.d.ts.map +1 -1
  198. package/dist/internal/utils/jwt-payload.js +32 -96
  199. package/dist/internal/utils/jwt-payload.js.map +1 -1
  200. package/dist/internal/utils/jwt-validate.d.ts.map +1 -1
  201. package/dist/internal/utils/jwt-validate.js +7 -1
  202. package/dist/internal/utils/jwt-validate.js.map +1 -1
  203. package/dist/internal/utils/jwt-verify.d.ts.map +1 -1
  204. package/dist/internal/utils/jwt-verify.js +17 -4
  205. package/dist/internal/utils/jwt-verify.js.map +1 -1
  206. package/dist/internal/utils/map-content-to-claims.d.ts +8 -0
  207. package/dist/internal/utils/map-content-to-claims.d.ts.map +1 -0
  208. package/dist/internal/utils/map-content-to-claims.js +89 -0
  209. package/dist/internal/utils/map-content-to-claims.js.map +1 -0
  210. package/dist/internal/utils/parse-introspection.d.ts.map +1 -1
  211. package/dist/internal/utils/parse-introspection.js +5 -1
  212. package/dist/internal/utils/parse-introspection.js.map +1 -1
  213. package/dist/internal/utils/parse-userinfo.d.ts.map +1 -1
  214. package/dist/internal/utils/parse-userinfo.js +5 -1
  215. package/dist/internal/utils/parse-userinfo.js.map +1 -1
  216. package/dist/internal/utils/resolve-cert-binding.d.ts.map +1 -1
  217. package/dist/internal/utils/resolve-cert-binding.js +3 -0
  218. package/dist/internal/utils/resolve-cert-binding.js.map +1 -1
  219. package/dist/internal/utils/rules/act-chain-shape.d.ts +4 -0
  220. package/dist/internal/utils/rules/act-chain-shape.d.ts.map +1 -0
  221. package/dist/internal/utils/rules/act-chain-shape.js +52 -0
  222. package/dist/internal/utils/rules/act-chain-shape.js.map +1 -0
  223. package/dist/internal/utils/rules/alg-permitted.d.ts +6 -0
  224. package/dist/internal/utils/rules/alg-permitted.d.ts.map +1 -0
  225. package/dist/internal/utils/rules/alg-permitted.js +35 -0
  226. package/dist/internal/utils/rules/alg-permitted.js.map +1 -0
  227. package/dist/internal/utils/rules/at-least-one-of.d.ts +4 -0
  228. package/dist/internal/utils/rules/at-least-one-of.d.ts.map +1 -0
  229. package/dist/internal/utils/rules/at-least-one-of.js +13 -0
  230. package/dist/internal/utils/rules/at-least-one-of.js.map +1 -0
  231. package/dist/internal/utils/rules/aud-single-resource.d.ts +4 -0
  232. package/dist/internal/utils/rules/aud-single-resource.d.ts.map +1 -0
  233. package/dist/internal/utils/rules/aud-single-resource.js +18 -0
  234. package/dist/internal/utils/rules/aud-single-resource.js.map +1 -0
  235. package/dist/internal/utils/rules/cnf-shape.d.ts +4 -0
  236. package/dist/internal/utils/rules/cnf-shape.d.ts.map +1 -0
  237. package/dist/internal/utils/rules/cnf-shape.js +55 -0
  238. package/dist/internal/utils/rules/cnf-shape.js.map +1 -0
  239. package/dist/internal/utils/rules/cross-field.d.ts +4 -0
  240. package/dist/internal/utils/rules/cross-field.d.ts.map +1 -0
  241. package/dist/internal/utils/rules/cross-field.js +21 -0
  242. package/dist/internal/utils/rules/cross-field.js.map +1 -0
  243. package/dist/internal/utils/rules/events-shape.d.ts +4 -0
  244. package/dist/internal/utils/rules/events-shape.d.ts.map +1 -0
  245. package/dist/internal/utils/rules/events-shape.js +33 -0
  246. package/dist/internal/utils/rules/events-shape.js.map +1 -0
  247. package/dist/internal/utils/rules/every-element-has-key.d.ts +4 -0
  248. package/dist/internal/utils/rules/every-element-has-key.d.ts.map +1 -0
  249. package/dist/internal/utils/rules/every-element-has-key.js +20 -0
  250. package/dist/internal/utils/rules/every-element-has-key.js.map +1 -0
  251. package/dist/internal/utils/rules/forbid-present.d.ts +4 -0
  252. package/dist/internal/utils/rules/forbid-present.d.ts.map +1 -0
  253. package/dist/internal/utils/rules/forbid-present.js +10 -0
  254. package/dist/internal/utils/rules/forbid-present.js.map +1 -0
  255. package/dist/internal/utils/rules/index.d.ts +14 -0
  256. package/dist/internal/utils/rules/index.d.ts.map +1 -0
  257. package/dist/internal/utils/rules/index.js +14 -0
  258. package/dist/internal/utils/rules/index.js.map +1 -0
  259. package/dist/internal/utils/rules/iss-uri.d.ts +4 -0
  260. package/dist/internal/utils/rules/iss-uri.d.ts.map +1 -0
  261. package/dist/internal/utils/rules/iss-uri.js +11 -0
  262. package/dist/internal/utils/rules/iss-uri.js.map +1 -0
  263. package/dist/internal/utils/rules/require-present.d.ts +4 -0
  264. package/dist/internal/utils/rules/require-present.d.ts.map +1 -0
  265. package/dist/internal/utils/rules/require-present.js +10 -0
  266. package/dist/internal/utils/rules/require-present.js.map +1 -0
  267. package/dist/internal/utils/rules/required-when.d.ts +8 -0
  268. package/dist/internal/utils/rules/required-when.d.ts.map +1 -0
  269. package/dist/internal/utils/rules/required-when.js +13 -0
  270. package/dist/internal/utils/rules/required-when.js.map +1 -0
  271. package/dist/internal/utils/rules/sub-id-shape.d.ts +4 -0
  272. package/dist/internal/utils/rules/sub-id-shape.d.ts.map +1 -0
  273. package/dist/internal/utils/rules/sub-id-shape.js +26 -0
  274. package/dist/internal/utils/rules/sub-id-shape.js.map +1 -0
  275. package/dist/internal/utils/select-encoder.d.ts +6 -0
  276. package/dist/internal/utils/select-encoder.d.ts.map +1 -0
  277. package/dist/internal/utils/select-encoder.js +4 -0
  278. package/dist/internal/utils/select-encoder.js.map +1 -0
  279. package/dist/internal/utils/validate-actor.d.ts +8 -1
  280. package/dist/internal/utils/validate-actor.d.ts.map +1 -1
  281. package/dist/internal/utils/validate-actor.js +32 -7
  282. package/dist/internal/utils/validate-actor.js.map +1 -1
  283. package/dist/internal/utils/validate-profile-claims.d.ts +8 -0
  284. package/dist/internal/utils/validate-profile-claims.d.ts.map +1 -0
  285. package/dist/internal/utils/validate-profile-claims.js +45 -0
  286. package/dist/internal/utils/validate-profile-claims.js.map +1 -0
  287. package/dist/internal/utils/validate.d.ts.map +1 -1
  288. package/dist/internal/utils/validate.js +8 -1
  289. package/dist/internal/utils/validate.js.map +1 -1
  290. package/dist/internal/utils/verify-cert-binding.d.ts.map +1 -1
  291. package/dist/internal/utils/verify-cert-binding.js +9 -1
  292. package/dist/internal/utils/verify-cert-binding.js.map +1 -1
  293. package/dist/internal/utils/verify-dpop-proof.d.ts.map +1 -1
  294. package/dist/internal/utils/verify-dpop-proof.js +41 -7
  295. package/dist/internal/utils/verify-dpop-proof.js.map +1 -1
  296. package/dist/types/claims/aegis-introspection.d.ts +2 -1
  297. package/dist/types/claims/aegis-introspection.d.ts.map +1 -1
  298. package/dist/types/claims/index.d.ts +2 -0
  299. package/dist/types/claims/index.d.ts.map +1 -1
  300. package/dist/types/claims/index.js +2 -0
  301. package/dist/types/claims/index.js.map +1 -1
  302. package/dist/types/claims/jwt/index.d.ts +2 -0
  303. package/dist/types/claims/jwt/index.d.ts.map +1 -1
  304. package/dist/types/claims/jwt/index.js +2 -0
  305. package/dist/types/claims/jwt/index.js.map +1 -1
  306. package/dist/types/claims/jwt/jwt-claims.d.ts +3 -1
  307. package/dist/types/claims/jwt/jwt-claims.d.ts.map +1 -1
  308. package/dist/types/claims/jwt/lindorm-claims-wire.d.ts +1 -2
  309. package/dist/types/claims/jwt/lindorm-claims-wire.d.ts.map +1 -1
  310. package/dist/types/claims/jwt/oidc-claims-wire.d.ts +2 -0
  311. package/dist/types/claims/jwt/oidc-claims-wire.d.ts.map +1 -1
  312. package/dist/types/claims/jwt/rar-claims-wire.d.ts +5 -0
  313. package/dist/types/claims/jwt/rar-claims-wire.d.ts.map +1 -0
  314. package/dist/types/claims/jwt/rar-claims-wire.js +2 -0
  315. package/dist/types/claims/jwt/rar-claims-wire.js.map +1 -0
  316. package/dist/types/claims/jwt/set-claims-wire.d.ts +9 -0
  317. package/dist/types/claims/jwt/set-claims-wire.d.ts.map +1 -0
  318. package/dist/types/claims/jwt/set-claims-wire.js +2 -0
  319. package/dist/types/claims/jwt/set-claims-wire.js.map +1 -0
  320. package/dist/types/claims/lindorm-claims.d.ts +1 -2
  321. package/dist/types/claims/lindorm-claims.d.ts.map +1 -1
  322. package/dist/types/claims/oidc-claims.d.ts +2 -0
  323. package/dist/types/claims/oidc-claims.d.ts.map +1 -1
  324. package/dist/types/claims/rar-claims.d.ts +5 -0
  325. package/dist/types/claims/rar-claims.d.ts.map +1 -0
  326. package/dist/types/claims/rar-claims.js +2 -0
  327. package/dist/types/claims/rar-claims.js.map +1 -0
  328. package/dist/types/claims/set-claims.d.ts +8 -0
  329. package/dist/types/claims/set-claims.d.ts.map +1 -0
  330. package/dist/types/claims/set-claims.js +2 -0
  331. package/dist/types/claims/set-claims.js.map +1 -0
  332. package/dist/types/jwt/index.d.ts +1 -0
  333. package/dist/types/jwt/index.d.ts.map +1 -1
  334. package/dist/types/jwt/index.js +1 -0
  335. package/dist/types/jwt/index.js.map +1 -1
  336. package/dist/types/jwt/jwt-claim-matchers.d.ts +2 -1
  337. package/dist/types/jwt/jwt-claim-matchers.d.ts.map +1 -1
  338. package/dist/types/jwt/jwt-parse.d.ts +2 -2
  339. package/dist/types/jwt/jwt-parse.d.ts.map +1 -1
  340. package/dist/types/jwt/jwt-sign.d.ts +8 -6
  341. package/dist/types/jwt/jwt-sign.d.ts.map +1 -1
  342. package/dist/types/jwt/jwt-verify.d.ts +5 -1
  343. package/dist/types/jwt/jwt-verify.d.ts.map +1 -1
  344. package/dist/types/jwt/profile.d.ts +99 -0
  345. package/dist/types/jwt/profile.d.ts.map +1 -0
  346. package/dist/types/jwt/profile.js +2 -0
  347. package/dist/types/jwt/profile.js.map +1 -0
  348. package/dist/types/level-of-assurance.d.ts +0 -1
  349. package/dist/types/level-of-assurance.d.ts.map +1 -1
  350. package/package.json +19 -18
@@ -1,4 +1,4 @@
1
- export declare const KNOWN_TOKEN_TYPES: readonly ["access_token", "refresh_token", "id_token", "logout_token", "security_event", "dpop"];
1
+ export declare const KNOWN_TOKEN_TYPES: readonly ["access_token", "refresh_token", "id_token", "logout_token", "erasure_token", "security_event", "dpop"];
2
2
  type KnownTokenType = (typeof KNOWN_TOKEN_TYPES)[number];
3
3
  export type TokenType = KnownTokenType | (string & {});
4
4
  export declare const TOKEN_TYPE_TO_SHORT_NAME: Record<KnownTokenType, string>;
@@ -1 +1 @@
1
- {"version":3,"file":"token-type.d.ts","sourceRoot":"","sources":["../../src/constants/token-type.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,kGAOpB,CAAC;AAEX,KAAK,cAAc,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD,MAAM,MAAM,SAAS,GAAG,cAAc,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAEvD,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAOnE,CAAC"}
1
+ {"version":3,"file":"token-type.d.ts","sourceRoot":"","sources":["../../src/constants/token-type.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,mHAQpB,CAAC;AAEX,KAAK,cAAc,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD,MAAM,MAAM,SAAS,GAAG,cAAc,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAEvD,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAQnE,CAAC"}
@@ -3,6 +3,7 @@ export const KNOWN_TOKEN_TYPES = [
3
3
  "refresh_token",
4
4
  "id_token",
5
5
  "logout_token",
6
+ "erasure_token",
6
7
  "security_event",
7
8
  "dpop",
8
9
  ];
@@ -11,6 +12,7 @@ export const TOKEN_TYPE_TO_SHORT_NAME = {
11
12
  refresh_token: "rt",
12
13
  id_token: "JWT",
13
14
  logout_token: "logout",
15
+ erasure_token: "erasure",
14
16
  security_event: "secevent",
15
17
  dpop: "dpop",
16
18
  };
@@ -1 +1 @@
1
- {"version":3,"file":"token-type.js","sourceRoot":"","sources":["../../src/constants/token-type.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,cAAc;IACd,eAAe;IACf,UAAU;IACV,cAAc;IACd,gBAAgB;IAChB,MAAM;CACE,CAAC;AAMX,MAAM,CAAC,MAAM,wBAAwB,GAAmC;IACtE,YAAY,EAAE,IAAI;IAClB,aAAa,EAAE,IAAI;IACnB,QAAQ,EAAE,KAAK;IACf,YAAY,EAAE,QAAQ;IACtB,cAAc,EAAE,UAAU;IAC1B,IAAI,EAAE,MAAM;CACb,CAAC"}
1
+ {"version":3,"file":"token-type.js","sourceRoot":"","sources":["../../src/constants/token-type.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,cAAc;IACd,eAAe;IACf,UAAU;IACV,cAAc;IACd,eAAe;IACf,gBAAgB;IAChB,MAAM;CACE,CAAC;AAMX,MAAM,CAAC,MAAM,wBAAwB,GAAmC;IACtE,YAAY,EAAE,IAAI;IAClB,aAAa,EAAE,IAAI;IACnB,QAAQ,EAAE,KAAK;IACf,YAAY,EAAE,QAAQ;IACtB,aAAa,EAAE,SAAS;IACxB,cAAc,EAAE,UAAU;IAC1B,IAAI,EAAE,MAAM;CACb,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { LindormError } from "@lindorm/errors";
2
2
  export declare class AegisError extends LindormError {
3
+ static readonly namespace = "aegis";
3
4
  }
4
5
  //# sourceMappingURL=AegisError.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AegisError.d.ts","sourceRoot":"","sources":["../../src/errors/AegisError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,qBAAa,UAAW,SAAQ,YAAY;CAAG"}
1
+ {"version":3,"file":"AegisError.d.ts","sourceRoot":"","sources":["../../src/errors/AegisError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,qBAAa,UAAW,SAAQ,YAAY;IAC1C,gBAAuB,SAAS,WAAW;CAC5C"}
@@ -1,4 +1,5 @@
1
1
  import { LindormError } from "@lindorm/errors";
2
2
  export class AegisError extends LindormError {
3
+ static namespace = "aegis";
3
4
  }
4
5
  //# sourceMappingURL=AegisError.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AegisError.js","sourceRoot":"","sources":["../../src/errors/AegisError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,OAAO,UAAW,SAAQ,YAAY;CAAG"}
1
+ {"version":3,"file":"AegisError.js","sourceRoot":"","sources":["../../src/errors/AegisError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,OAAO,UAAW,SAAQ,YAAY;IACnC,MAAM,CAAU,SAAS,GAAG,OAAO,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { LindormError } from "@lindorm/errors";
2
2
  export declare class JweError extends LindormError {
3
+ static readonly namespace = "aegis";
3
4
  }
4
5
  //# sourceMappingURL=JweError.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"JweError.d.ts","sourceRoot":"","sources":["../../src/errors/JweError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,qBAAa,QAAS,SAAQ,YAAY;CAAG"}
1
+ {"version":3,"file":"JweError.d.ts","sourceRoot":"","sources":["../../src/errors/JweError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,qBAAa,QAAS,SAAQ,YAAY;IACxC,gBAAuB,SAAS,WAAW;CAC5C"}
@@ -1,4 +1,5 @@
1
1
  import { LindormError } from "@lindorm/errors";
2
2
  export class JweError extends LindormError {
3
+ static namespace = "aegis";
3
4
  }
4
5
  //# sourceMappingURL=JweError.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"JweError.js","sourceRoot":"","sources":["../../src/errors/JweError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,OAAO,QAAS,SAAQ,YAAY;CAAG"}
1
+ {"version":3,"file":"JweError.js","sourceRoot":"","sources":["../../src/errors/JweError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,OAAO,QAAS,SAAQ,YAAY;IACjC,MAAM,CAAU,SAAS,GAAG,OAAO,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { LindormError } from "@lindorm/errors";
2
2
  export declare class JwsError extends LindormError {
3
+ static readonly namespace = "aegis";
3
4
  }
4
5
  //# sourceMappingURL=JwsError.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"JwsError.d.ts","sourceRoot":"","sources":["../../src/errors/JwsError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,qBAAa,QAAS,SAAQ,YAAY;CAAG"}
1
+ {"version":3,"file":"JwsError.d.ts","sourceRoot":"","sources":["../../src/errors/JwsError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,qBAAa,QAAS,SAAQ,YAAY;IACxC,gBAAuB,SAAS,WAAW;CAC5C"}
@@ -1,4 +1,5 @@
1
1
  import { LindormError } from "@lindorm/errors";
2
2
  export class JwsError extends LindormError {
3
+ static namespace = "aegis";
3
4
  }
4
5
  //# sourceMappingURL=JwsError.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"JwsError.js","sourceRoot":"","sources":["../../src/errors/JwsError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,OAAO,QAAS,SAAQ,YAAY;CAAG"}
1
+ {"version":3,"file":"JwsError.js","sourceRoot":"","sources":["../../src/errors/JwsError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,OAAO,QAAS,SAAQ,YAAY;IACjC,MAAM,CAAU,SAAS,GAAG,OAAO,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { LindormError } from "@lindorm/errors";
2
2
  export declare class JwtError extends LindormError {
3
+ static readonly namespace = "aegis";
3
4
  }
4
5
  //# sourceMappingURL=JwtError.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"JwtError.d.ts","sourceRoot":"","sources":["../../src/errors/JwtError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,qBAAa,QAAS,SAAQ,YAAY;CAAG"}
1
+ {"version":3,"file":"JwtError.d.ts","sourceRoot":"","sources":["../../src/errors/JwtError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,qBAAa,QAAS,SAAQ,YAAY;IACxC,gBAAuB,SAAS,WAAW;CAC5C"}
@@ -1,4 +1,5 @@
1
1
  import { LindormError } from "@lindorm/errors";
2
2
  export class JwtError extends LindormError {
3
+ static namespace = "aegis";
3
4
  }
4
5
  //# sourceMappingURL=JwtError.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"JwtError.js","sourceRoot":"","sources":["../../src/errors/JwtError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,OAAO,QAAS,SAAQ,YAAY;CAAG"}
1
+ {"version":3,"file":"JwtError.js","sourceRoot":"","sources":["../../src/errors/JwtError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,OAAO,QAAS,SAAQ,YAAY;IACjC,MAAM,CAAU,SAAS,GAAG,OAAO,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import type { AesContent, AesDecryptionRecord, AesEncryptionRecord, SerialisedAesDecryption, SerialisedAesEncryption } from "@lindorm/aes";
2
2
  import type { Dict } from "@lindorm/types";
3
- import type { DecryptedJwe, EncryptedJwe, JweEncryptOptions, JwsContent, ParsedJws, ParsedJwt, SignJwsOptions, SignJwtContent, SignJwtOptions, SignedJws, SignedJwt, VerifyJwtOptions } from "../types/index.js";
3
+ import type { DecryptedJwe, EncryptedJwe, JweEncryptOptions, JwsContent, ParsedJws, ParsedJwt, ProfileContent, ProfileSignOptions, ProfileVerifyOptions, RawSignInput, SignContent, SignJwsOptions, SignJwtContent, SignJwtOptions, SignedJws, SignedJwt, TokenProfile, VerifyJwtOptions } from "../types/index.js";
4
4
  export interface IAegisAes {
5
5
  encrypt(data: AesContent, mode?: "encoded"): Promise<string>;
6
6
  encrypt(data: AesContent, mode: "record"): Promise<AesEncryptionRecord>;
@@ -26,8 +26,13 @@ export interface IAegis {
26
26
  jwe: IAegisJwe;
27
27
  jws: IAegisJws;
28
28
  jwt: IAegisJwt;
29
+ registerProfile(profile: TokenProfile): void;
30
+ sign(input: RawSignInput): Promise<SignedJws>;
31
+ mint<P extends keyof ProfileContent>(profile: P, content: ProfileContent[P], options?: ProfileSignOptions): Promise<SignedJwt>;
32
+ mint(profile: string & {}, content: SignContent, options?: ProfileSignOptions): Promise<SignedJwt>;
29
33
  verify(token: string): Promise<ParsedJwt | ParsedJws<any>>;
30
34
  verify<T extends ParsedJws<any>>(token: string): Promise<T>;
31
35
  verify<T extends ParsedJwt>(token: string, options?: VerifyJwtOptions): Promise<T>;
36
+ verify<T extends ParsedJwt>(profile: string, token: string, options: ProfileVerifyOptions): Promise<T>;
32
37
  }
33
38
  //# sourceMappingURL=Aegis.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Aegis.d.ts","sourceRoot":"","sources":["../../src/interfaces/Aegis.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,UAAU,EACV,SAAS,EACT,SAAS,EACT,cAAc,EACd,cAAc,EACd,cAAc,EACd,SAAS,EACT,SAAS,EACT,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,SAAS;IACxB,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7D,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACxE,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAChF,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9D,OAAO,CAAC,CAAC,SAAS,UAAU,GAAG,MAAM,EACnC,IAAI,EAAE,mBAAmB,GAAG,uBAAuB,GAAG,MAAM,GAC3D,OAAO,CAAC,CAAC,CAAC,CAAC;CACf;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAC1E,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CAC/C;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,CAAC,SAAS,UAAU,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAClF,MAAM,CAAC,CAAC,SAAS,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;CACpE;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,CAAC,SAAS,IAAI,GAAG,IAAI,EACxB,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,EAC1B,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,SAAS,CAAC,CAAC;IACtB,MAAM,CAAC,CAAC,SAAS,IAAI,GAAG,IAAI,EAC1B,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;CAC1B;AAED,MAAM,WAAW,MAAM;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAEtB,GAAG,EAAE,SAAS,CAAC;IAEf,GAAG,EAAE,SAAS,CAAC;IACf,GAAG,EAAE,SAAS,CAAC;IACf,GAAG,EAAE,SAAS,CAAC;IAEf,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3D,MAAM,CAAC,CAAC,SAAS,SAAS,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5D,MAAM,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CACpF"}
1
+ {"version":3,"file":"Aegis.d.ts","sourceRoot":"","sources":["../../src/interfaces/Aegis.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { Dict } from "@lindorm/types";
2
+ export type SecurityEvents = Record<string, Dict>;
3
+ export declare const BACKCHANNEL_LOGOUT_EVENT_URI = "http://schemas.openid.net/event/backchannel-logout";
4
+ export declare const RTBF_EVENT_URI = "urn:lindorm:event:rtbf";
5
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/internal/claims/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAS3C,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAElD,eAAO,MAAM,4BAA4B,uDACa,CAAC;AAEvD,eAAO,MAAM,cAAc,2BAA2B,CAAC"}
@@ -0,0 +1,3 @@
1
+ export const BACKCHANNEL_LOGOUT_EVENT_URI = "http://schemas.openid.net/event/backchannel-logout";
2
+ export const RTBF_EVENT_URI = "urn:lindorm:event:rtbf";
3
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/internal/claims/events.ts"],"names":[],"mappings":"AAWA,MAAM,CAAC,MAAM,4BAA4B,GACvC,oDAAoD,CAAC;AAEvD,MAAM,CAAC,MAAM,cAAc,GAAG,wBAAwB,CAAC"}
@@ -0,0 +1,14 @@
1
+ export type ClaimValueKind = "text" | "int" | "date" | "array" | "bstr" | "bespoke";
2
+ export type ClaimSpec = {
3
+ domain: string;
4
+ jose: string;
5
+ cose: number | null;
6
+ value: ClaimValueKind;
7
+ values?: Readonly<Record<string, number>>;
8
+ proprietary?: boolean;
9
+ };
10
+ export declare const CLAIM_REGISTRY: ReadonlyArray<ClaimSpec>;
11
+ export declare const specByDomain: (domain: string) => ClaimSpec | undefined;
12
+ export declare const specByJose: (jose: string) => ClaimSpec | undefined;
13
+ export declare const specByCose: (cose: number) => ClaimSpec | undefined;
14
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/internal/claims/registry.ts"],"names":[],"mappings":"AAoBA,MAAM,MAAM,cAAc,GACtB,MAAM,GACN,KAAK,GACL,MAAM,GACN,OAAO,GACP,MAAM,GACN,SAAS,CAAC;AAEd,MAAM,MAAM,SAAS,GAAG;IAEtB,MAAM,EAAE,MAAM,CAAC;IAEf,IAAI,EAAE,MAAM,CAAC;IAMb,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,cAAc,CAAC;IAKtB,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAE1C,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAWF,eAAO,MAAM,cAAc,EAAE,aAAa,CAAC,SAAS,CA+DnD,CAAC;AAgBF,eAAO,MAAM,YAAY,GAAI,QAAQ,MAAM,KAAG,SAAS,GAAG,SACpC,CAAC;AAGvB,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,KAAG,SAAS,GAAG,SAA6B,CAAC;AAGpF,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,KAAG,SAAS,GAAG,SAA6B,CAAC"}
@@ -0,0 +1,61 @@
1
+ const P = (n) => -65537 - n;
2
+ export const CLAIM_REGISTRY = [
3
+ { domain: "issuer", jose: "iss", cose: 1, value: "text" },
4
+ { domain: "subject", jose: "sub", cose: 2, value: "text" },
5
+ { domain: "audience", jose: "aud", cose: 3, value: "array" },
6
+ { domain: "expiresAt", jose: "exp", cose: 4, value: "date" },
7
+ { domain: "notBefore", jose: "nbf", cose: 5, value: "date" },
8
+ { domain: "issuedAt", jose: "iat", cose: 6, value: "date" },
9
+ { domain: "tokenId", jose: "jti", cose: 7, value: "bstr" },
10
+ { domain: "confirmation", jose: "cnf", cose: 8, value: "bespoke" },
11
+ { domain: "scope", jose: "scope", cose: 9, value: "array" },
12
+ { domain: "nonce", jose: "nonce", cose: null, value: "text" },
13
+ { domain: "accessTokenHash", jose: "at_hash", cose: null, value: "bespoke" },
14
+ { domain: "codeHash", jose: "c_hash", cose: null, value: "bespoke" },
15
+ { domain: "stateHash", jose: "s_hash", cose: null, value: "bespoke" },
16
+ { domain: "authContextClass", jose: "acr", cose: null, value: "text" },
17
+ { domain: "authMethods", jose: "amr", cose: null, value: "array" },
18
+ { domain: "authorizedParty", jose: "azp", cose: null, value: "text" },
19
+ { domain: "authTime", jose: "auth_time", cose: null, value: "date" },
20
+ { domain: "vectorOfTrust", jose: "vot", cose: null, value: "text" },
21
+ { domain: "vectorTrustMark", jose: "vtm", cose: null, value: "text" },
22
+ {
23
+ domain: "authorizationDetails",
24
+ jose: "authorization_details",
25
+ cose: null,
26
+ value: "bespoke",
27
+ },
28
+ { domain: "act", jose: "act", cose: null, value: "bespoke" },
29
+ { domain: "mayAct", jose: "may_act", cose: null, value: "bespoke" },
30
+ { domain: "entitlements", jose: "entitlements", cose: null, value: "array" },
31
+ { domain: "groups", jose: "groups", cose: null, value: "array" },
32
+ { domain: "roles", jose: "roles", cose: null, value: "array" },
33
+ { domain: "permissions", jose: "permissions", cose: null, value: "array" },
34
+ { domain: "clientId", jose: "client_id", cose: null, value: "text" },
35
+ { domain: "grantType", jose: "gty", cose: null, value: "text" },
36
+ { domain: "sessionId", jose: "sid", cose: null, value: "text" },
37
+ { domain: "subjectId", jose: "sub_id", cose: null, value: "bespoke" },
38
+ { domain: "events", jose: "events", cose: null, value: "bespoke" },
39
+ { domain: "transactionId", jose: "txn", cose: null, value: "text" },
40
+ {
41
+ domain: "levelOfAssurance",
42
+ jose: "loa",
43
+ cose: P(0),
44
+ value: "int",
45
+ proprietary: true,
46
+ },
47
+ { domain: "authFactor", jose: "afr", cose: P(1), value: "array", proprietary: true },
48
+ { domain: "sessionHint", jose: "sih", cose: P(2), value: "text", proprietary: true },
49
+ { domain: "subjectHint", jose: "suh", cose: P(3), value: "text", proprietary: true },
50
+ { domain: "tenantId", jose: "tenant_id", cose: P(4), value: "text", proprietary: true },
51
+ ];
52
+ const byDomain = new Map(CLAIM_REGISTRY.map((spec) => [spec.domain, spec]));
53
+ const byJose = new Map(CLAIM_REGISTRY.map((spec) => [spec.jose, spec]));
54
+ const byCose = new Map(CLAIM_REGISTRY.filter((spec) => spec.cose !== null).map((spec) => [
55
+ spec.cose,
56
+ spec,
57
+ ]));
58
+ export const specByDomain = (domain) => byDomain.get(domain);
59
+ export const specByJose = (jose) => byJose.get(jose);
60
+ export const specByCose = (cose) => byCose.get(cose);
61
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/internal/claims/registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { Dict } from "@lindorm/types";
2
+ export type SubjectIdentifierFormat = "account" | "email" | "iss_sub" | "opaque" | "phone_number" | "did" | "uri" | "aliases" | (string & {});
3
+ export type SubjectIdentifier = {
4
+ format: SubjectIdentifierFormat;
5
+ } & Dict;
6
+ export declare const SUBJECT_IDENTIFIER_REQUIRED_MEMBERS: Record<string, Array<string>>;
7
+ //# sourceMappingURL=sub-id.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sub-id.d.ts","sourceRoot":"","sources":["../../../src/internal/claims/sub-id.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAW3C,MAAM,MAAM,uBAAuB,GAC/B,SAAS,GACT,OAAO,GACP,SAAS,GACT,QAAQ,GACR,cAAc,GACd,KAAK,GACL,KAAK,GACL,SAAS,GACT,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAElB,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,uBAAuB,CAAC;CACjC,GAAG,IAAI,CAAC;AAOT,eAAO,MAAM,mCAAmC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAS7E,CAAC"}
@@ -0,0 +1,11 @@
1
+ export const SUBJECT_IDENTIFIER_REQUIRED_MEMBERS = {
2
+ account: ["uri"],
3
+ email: ["email"],
4
+ iss_sub: ["iss", "sub"],
5
+ opaque: ["id"],
6
+ phone_number: ["phone_number"],
7
+ did: ["url"],
8
+ uri: ["uri"],
9
+ aliases: ["identifiers"],
10
+ };
11
+ //# sourceMappingURL=sub-id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sub-id.js","sourceRoot":"","sources":["../../../src/internal/claims/sub-id.ts"],"names":[],"mappings":"AA+BA,MAAM,CAAC,MAAM,mCAAmC,GAAkC;IAChF,OAAO,EAAE,CAAC,KAAK,CAAC;IAChB,KAAK,EAAE,CAAC,OAAO,CAAC;IAChB,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;IACvB,MAAM,EAAE,CAAC,IAAI,CAAC;IACd,YAAY,EAAE,CAAC,cAAc,CAAC;IAC9B,GAAG,EAAE,CAAC,KAAK,CAAC;IACZ,GAAG,EAAE,CAAC,KAAK,CAAC;IACZ,OAAO,EAAE,CAAC,aAAa,CAAC;CACzB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Dict } from "@lindorm/types";
2
+ export declare const encodeActCompact: (actor: Dict) => Map<number, unknown>;
3
+ export declare const decodeActCompact: (map: Map<number, unknown>) => Dict;
4
+ //# sourceMappingURL=act-claim.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"act-claim.d.ts","sourceRoot":"","sources":["../../../src/internal/cose/act-claim.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAgB3C,eAAO,MAAM,gBAAgB,GAAI,OAAO,IAAI,KAAG,GAAG,CAAC,MAAM,EAAE,OAAO,CAClC,CAAC;AAEjC,eAAO,MAAM,gBAAgB,GAAI,KAAK,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,IAC/B,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { compactDecode, compactEncode } from "./compact-map.js";
2
+ const ACT_SPEC = {
3
+ labels: { issuer: 1, subject: 2, audience: 3, clientId: 4, act: 5 },
4
+ nested: { act: { spec: () => ACT_SPEC } },
5
+ };
6
+ export const encodeActCompact = (actor) => compactEncode(actor, ACT_SPEC);
7
+ export const decodeActCompact = (map) => compactDecode(map, ACT_SPEC);
8
+ //# sourceMappingURL=act-claim.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"act-claim.js","sourceRoot":"","sources":["../../../src/internal/cose/act-claim.ts"],"names":[],"mappings":"AACA,OAAO,EAAoB,aAAa,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAUlF,MAAM,QAAQ,GAAgB;IAC5B,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;IACnE,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE;CAC1C,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAW,EAAwB,EAAE,CACpE,aAAa,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AAEjC,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,GAAyB,EAAQ,EAAE,CAClE,aAAa,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { KryptosAlgorithm } from "@lindorm/kryptos";
2
+ export declare const algToCoseLabel: (algorithm: KryptosAlgorithm) => number;
3
+ export declare const coseLabelToAlg: (label: number) => string;
4
+ //# sourceMappingURL=alg-labels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alg-labels.d.ts","sourceRoot":"","sources":["../../../src/internal/cose/alg-labels.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAmCzD,eAAO,MAAM,cAAc,GAAI,WAAW,gBAAgB,KAAG,MAc5D,CAAC;AAGF,eAAO,MAAM,cAAc,GAAI,OAAO,MAAM,KAAG,MAa9C,CAAC"}
@@ -0,0 +1,42 @@
1
+ import { AegisError } from "../../errors/index.js";
2
+ const JOSE_TO_COSE = {
3
+ ES256: -7,
4
+ ES384: -35,
5
+ ES512: -36,
6
+ EdDSA: -8,
7
+ PS256: -37,
8
+ PS384: -38,
9
+ PS512: -39,
10
+ RS256: -257,
11
+ RS384: -258,
12
+ RS512: -259,
13
+ HS256: 5,
14
+ HS384: 6,
15
+ HS512: 7,
16
+ };
17
+ const COSE_TO_JOSE = Object.fromEntries(Object.entries(JOSE_TO_COSE).map(([alg, label]) => [label, alg]));
18
+ export const algToCoseLabel = (algorithm) => {
19
+ const label = JOSE_TO_COSE[algorithm];
20
+ if (label === undefined) {
21
+ throw new AegisError(`No COSE algorithm label for "${algorithm}"`, {
22
+ code: "cose_algorithm_not_supported",
23
+ data: { algorithm },
24
+ title: "COSE Algorithm Not Supported",
25
+ details: "This signing/MAC algorithm has no mapped COSE label; supported COSE algorithms are ES*/EdDSA/PS*/RS*/HS*.",
26
+ });
27
+ }
28
+ return label;
29
+ };
30
+ export const coseLabelToAlg = (label) => {
31
+ const algorithm = COSE_TO_JOSE[label];
32
+ if (algorithm === undefined) {
33
+ throw new AegisError(`No algorithm for COSE label "${label}"`, {
34
+ code: "cose_algorithm_not_supported",
35
+ data: { label },
36
+ title: "COSE Algorithm Not Supported",
37
+ details: "The COSE algorithm label is not one this implementation supports.",
38
+ });
39
+ }
40
+ return algorithm;
41
+ };
42
+ //# sourceMappingURL=alg-labels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alg-labels.js","sourceRoot":"","sources":["../../../src/internal/cose/alg-labels.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAQnD,MAAM,YAAY,GAAqC;IAErD,KAAK,EAAE,CAAC,CAAC;IACT,KAAK,EAAE,CAAC,EAAE;IACV,KAAK,EAAE,CAAC,EAAE;IAEV,KAAK,EAAE,CAAC,CAAC;IAET,KAAK,EAAE,CAAC,EAAE;IACV,KAAK,EAAE,CAAC,EAAE;IACV,KAAK,EAAE,CAAC,EAAE;IAEV,KAAK,EAAE,CAAC,GAAG;IACX,KAAK,EAAE,CAAC,GAAG;IACX,KAAK,EAAE,CAAC,GAAG;IAEX,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,CAAC;CACT,CAAC;AAEF,MAAM,YAAY,GAAqC,MAAM,CAAC,WAAW,CACvE,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CACjE,CAAC;AAGF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,SAA2B,EAAU,EAAE;IACpE,MAAM,KAAK,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IAEtC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,UAAU,CAAC,gCAAgC,SAAS,GAAG,EAAE;YACjE,IAAI,EAAE,8BAA8B;YACpC,IAAI,EAAE,EAAE,SAAS,EAAE;YACnB,KAAK,EAAE,8BAA8B;YACrC,OAAO,EACL,2GAA2G;SAC9G,CAAC,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAGF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAa,EAAU,EAAE;IACtD,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IAEtC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,IAAI,UAAU,CAAC,gCAAgC,KAAK,GAAG,EAAE;YAC7D,IAAI,EAAE,8BAA8B;YACpC,IAAI,EAAE,EAAE,KAAK,EAAE;YACf,KAAK,EAAE,8BAA8B;YACrC,OAAO,EAAE,mEAAmE;SAC7E,CAAC,CAAC;IACL,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ export type CborEncodeOptions = {
2
+ deterministic?: boolean;
3
+ };
4
+ export type CborDecodeOptions = {
5
+ preferMap?: boolean;
6
+ rejectDuplicateKeys?: boolean;
7
+ };
8
+ export declare const encodeCbor: (value: unknown, options?: CborEncodeOptions) => Buffer;
9
+ export declare const decodeCbor: <T = unknown>(input: Buffer | Uint8Array, options?: CborDecodeOptions) => T;
10
+ export { Tag } from "cbor2";
11
+ //# sourceMappingURL=cbor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cbor.d.ts","sourceRoot":"","sources":["../../../src/internal/cose/cbor.ts"],"names":[],"mappings":"AAqBA,MAAM,MAAM,iBAAiB,GAAG;IAM9B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAK9B,SAAS,CAAC,EAAE,OAAO,CAAC;IAKpB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B,CAAC;AAKF,eAAO,MAAM,UAAU,GAAI,OAAO,OAAO,EAAE,UAAS,iBAAsB,KAAG,MAgB5E,CAAC;AAOF,eAAO,MAAM,UAAU,GAAI,CAAC,GAAG,OAAO,EACpC,OAAO,MAAM,GAAG,UAAU,EAC1B,UAAS,iBAAsB,KAC9B,CAcF,CAAC;AAIF,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC"}
@@ -0,0 +1,37 @@
1
+ import { cdeEncodeOptions, decode, defaultDecodeOptions, defaultEncodeOptions, encode, } from "cbor2";
2
+ import { registerEncoder, writeUint8Array } from "cbor2/encoder";
3
+ import { AegisError } from "../../errors/index.js";
4
+ registerEncoder(Buffer, (buffer, writer) => {
5
+ writeUint8Array(buffer, writer);
6
+ return undefined;
7
+ });
8
+ export const encodeCbor = (value, options = {}) => {
9
+ const { deterministic = true } = options;
10
+ try {
11
+ return Buffer.from(encode(value, deterministic ? cdeEncodeOptions : defaultEncodeOptions));
12
+ }
13
+ catch (error) {
14
+ throw new AegisError("Failed to encode value as CBOR", {
15
+ code: "cbor_encode_failed",
16
+ title: "CBOR Encode Failed",
17
+ details: "The value could not be encoded as CBOR; see the underlying error for the root cause.",
18
+ error: error,
19
+ });
20
+ }
21
+ };
22
+ export const decodeCbor = (input, options = {}) => {
23
+ const { preferMap = true, rejectDuplicateKeys = true } = options;
24
+ try {
25
+ return decode(input, { ...defaultDecodeOptions, preferMap, rejectDuplicateKeys });
26
+ }
27
+ catch (error) {
28
+ throw new AegisError("Failed to decode CBOR", {
29
+ code: "cbor_decode_failed",
30
+ title: "CBOR Decode Failed",
31
+ details: "The input could not be decoded as CBOR; it may be malformed, truncated, or contain duplicate map keys.",
32
+ error: error,
33
+ });
34
+ }
35
+ };
36
+ export { Tag } from "cbor2";
37
+ //# sourceMappingURL=cbor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cbor.js","sourceRoot":"","sources":["../../../src/internal/cose/cbor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,MAAM,EACN,oBAAoB,EACpB,oBAAoB,EACpB,MAAM,GACP,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAQnD,eAAe,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;IACzC,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC,CAAC;AA2BH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAc,EAAE,UAA6B,EAAE,EAAU,EAAE;IACpF,MAAM,EAAE,aAAa,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAEzC,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,IAAI,CAChB,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,oBAAoB,CAAC,CACvE,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,UAAU,CAAC,gCAAgC,EAAE;YACrD,IAAI,EAAE,oBAAoB;YAC1B,KAAK,EAAE,oBAAoB;YAC3B,OAAO,EACL,sFAAsF;YACxF,KAAK,EAAE,KAAc;SACtB,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC;AAOF,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,KAA0B,EAC1B,UAA6B,EAAE,EAC5B,EAAE;IACL,MAAM,EAAE,SAAS,GAAG,IAAI,EAAE,mBAAmB,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAEjE,IAAI,CAAC;QACH,OAAO,MAAM,CAAI,KAAK,EAAE,EAAE,GAAG,oBAAoB,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC,CAAC;IACvF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,UAAU,CAAC,uBAAuB,EAAE;YAC5C,IAAI,EAAE,oBAAoB;YAC1B,KAAK,EAAE,oBAAoB;YAC3B,OAAO,EACL,wGAAwG;YAC1G,KAAK,EAAE,KAAc;SACtB,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC;AAIF,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { Dict } from "@lindorm/types";
2
+ export type CompactSpec = {
3
+ labels: Readonly<Record<string, number>>;
4
+ nested?: Readonly<Record<string, {
5
+ array?: boolean;
6
+ spec: () => CompactSpec;
7
+ }>>;
8
+ };
9
+ export declare const compactEncode: (obj: Dict, spec: CompactSpec) => Map<number, unknown>;
10
+ export declare const compactDecode: (map: Map<number, unknown>, spec: CompactSpec) => Dict;
11
+ //# sourceMappingURL=compact-map.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compact-map.d.ts","sourceRoot":"","sources":["../../../src/internal/cose/compact-map.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAY3C,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACzC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,WAAW,CAAA;KAAE,CAAC,CAAC,CAAC;CACjF,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,KAAK,IAAI,EAAE,MAAM,WAAW,KAAG,GAAG,CAAC,MAAM,EAAE,OAAO,CAsB/E,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,KAAK,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,WAAW,KAAG,IA2B5E,CAAC"}
@@ -0,0 +1,43 @@
1
+ export const compactEncode = (obj, spec) => {
2
+ const map = new Map();
3
+ for (const [field, label] of Object.entries(spec.labels)) {
4
+ const value = obj[field];
5
+ if (value === undefined)
6
+ continue;
7
+ const nested = spec.nested?.[field];
8
+ if (nested) {
9
+ const childSpec = nested.spec();
10
+ map.set(label, nested.array && Array.isArray(value)
11
+ ? value.map((item) => compactEncode(item, childSpec))
12
+ : compactEncode(value, childSpec));
13
+ }
14
+ else {
15
+ map.set(label, value);
16
+ }
17
+ }
18
+ return map;
19
+ };
20
+ export const compactDecode = (map, spec) => {
21
+ const reverse = new Map(Object.entries(spec.labels).map(([field, label]) => [label, field]));
22
+ const obj = {};
23
+ for (const [label, value] of map) {
24
+ const field = reverse.get(label);
25
+ if (field === undefined)
26
+ continue;
27
+ const nested = spec.nested?.[field];
28
+ if (nested) {
29
+ const childSpec = nested.spec();
30
+ obj[field] =
31
+ nested.array && Array.isArray(value)
32
+ ? value.map((item) => item instanceof Map ? compactDecode(item, childSpec) : item)
33
+ : value instanceof Map
34
+ ? compactDecode(value, childSpec)
35
+ : value;
36
+ }
37
+ else {
38
+ obj[field] = value;
39
+ }
40
+ }
41
+ return obj;
42
+ };
43
+ //# sourceMappingURL=compact-map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compact-map.js","sourceRoot":"","sources":["../../../src/internal/cose/compact-map.ts"],"names":[],"mappings":"AAiBA,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,GAAS,EAAE,IAAiB,EAAwB,EAAE;IAClF,MAAM,GAAG,GAAG,IAAI,GAAG,EAAmB,CAAC;IAEvC,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACzD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;QACzB,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QAElC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;YAChC,GAAG,CAAC,GAAG,CACL,KAAK,EACL,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBAClC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,IAAY,EAAE,SAAS,CAAC,CAAC;gBAC7D,CAAC,CAAC,aAAa,CAAC,KAAa,EAAE,SAAS,CAAC,CAC5C,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,GAAyB,EAAE,IAAiB,EAAQ,EAAE;IAClF,MAAM,OAAO,GAAG,IAAI,GAAG,CACrB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CACpE,CAAC;IAEF,MAAM,GAAG,GAAS,EAAE,CAAC;IACrB,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QAElC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;YAChC,GAAG,CAAC,KAAK,CAAC;gBACR,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;oBAClC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACjB,IAAI,YAAY,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAC5D;oBACH,CAAC,CAAC,KAAK,YAAY,GAAG;wBACpB,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC;wBACjC,CAAC,CAAC,KAAK,CAAC;QAChB,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;QACrB,CAAC;IACH,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { Dict } from "@lindorm/types";
2
+ export type CoseThumbprintHash = "sha-256" | "sha-384" | "sha-512";
3
+ export declare const computeCoseKeyThumbprint: (jwk: Dict, hash?: CoseThumbprintHash) => Buffer;
4
+ export declare const computeCoseKeyThumbprintUri: (jwk: Dict, hash?: CoseThumbprintHash) => string;
5
+ //# sourceMappingURL=cose-key-thumbprint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cose-key-thumbprint.d.ts","sourceRoot":"","sources":["../../../src/internal/cose/cose-key-thumbprint.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAc3C,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAwEnE,eAAO,MAAM,wBAAwB,GACnC,KAAK,IAAI,EACT,OAAM,kBAA8B,KACnC,MAA4D,CAAC;AAOhE,eAAO,MAAM,2BAA2B,GACtC,KAAK,IAAI,EACT,OAAM,kBAA8B,KACnC,MAA+E,CAAC"}
@@ -0,0 +1,60 @@
1
+ import { B64 } from "@lindorm/b64";
2
+ import { ShaKit } from "@lindorm/sha";
3
+ import { AegisError } from "../../errors/index.js";
4
+ import { B64U } from "../constants/format.js";
5
+ import { encodeCbor } from "./cbor.js";
6
+ import { CRV_TO_COSE, KTY_TO_COSE } from "./cose-key.js";
7
+ const SHA = {
8
+ "sha-256": (data) => ShaKit.S256(data),
9
+ "sha-384": (data) => ShaKit.S384(data),
10
+ "sha-512": (data) => ShaKit.S512(data),
11
+ };
12
+ const bstr = (value) => B64.toBuffer(String(value), B64U);
13
+ const curveLabel = (jwk) => {
14
+ const label = CRV_TO_COSE[jwk.crv];
15
+ if (label === undefined) {
16
+ throw new AegisError(`Unsupported curve "${jwk.crv}" for COSE Key Thumbprint`, {
17
+ code: "cose_key_unsupported",
18
+ data: { crv: jwk.crv },
19
+ title: "Unsupported COSE Key",
20
+ details: "The JWK curve has no COSE label, so a COSE Key Thumbprint cannot be computed.",
21
+ });
22
+ }
23
+ return label;
24
+ };
25
+ const requiredCoseKey = (jwk) => {
26
+ const map = new Map();
27
+ switch (jwk.kty) {
28
+ case "EC":
29
+ map.set(1, KTY_TO_COSE.EC);
30
+ map.set(-1, curveLabel(jwk));
31
+ map.set(-2, bstr(jwk.x));
32
+ map.set(-3, bstr(jwk.y));
33
+ return map;
34
+ case "OKP":
35
+ map.set(1, KTY_TO_COSE.OKP);
36
+ map.set(-1, curveLabel(jwk));
37
+ map.set(-2, bstr(jwk.x));
38
+ return map;
39
+ case "RSA":
40
+ map.set(1, KTY_TO_COSE.RSA);
41
+ map.set(-1, bstr(jwk.n));
42
+ map.set(-2, bstr(jwk.e));
43
+ return map;
44
+ case "oct":
45
+ map.set(1, KTY_TO_COSE.oct);
46
+ map.set(-1, bstr(jwk.k));
47
+ return map;
48
+ default:
49
+ throw new AegisError(`Cannot compute COSE Key Thumbprint: unsupported kty "${String(jwk.kty)}"`, {
50
+ code: "cose_key_unsupported",
51
+ data: { kty: jwk.kty },
52
+ title: "Unsupported COSE Key",
53
+ details: "A COSE Key Thumbprint (RFC 9679) is defined for kty EC, OKP, RSA, and oct keys; this kty is not one of them.",
54
+ });
55
+ }
56
+ };
57
+ const thumbprintCbor = (jwk) => Buffer.from(encodeCbor(requiredCoseKey(jwk)));
58
+ export const computeCoseKeyThumbprint = (jwk, hash = "sha-256") => B64.toBuffer(SHA[hash](thumbprintCbor(jwk)), B64U);
59
+ export const computeCoseKeyThumbprintUri = (jwk, hash = "sha-256") => `urn:ietf:params:oauth:ckt:${hash}:${SHA[hash](thumbprintCbor(jwk))}`;
60
+ //# sourceMappingURL=cose-key-thumbprint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cose-key-thumbprint.js","sourceRoot":"","sources":["../../../src/internal/cose/cose-key-thumbprint.ts"],"names":[],"mappings":"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"}