@lindorm/aegis 0.4.4 → 0.5.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 (425) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/__tests__/jwt-interop.test.ts +13 -10
  3. package/dist/classes/Aegis.d.ts +13 -20
  4. package/dist/classes/Aegis.d.ts.map +1 -1
  5. package/dist/classes/Aegis.js +32 -118
  6. package/dist/classes/Aegis.js.map +1 -1
  7. package/dist/classes/JweKit.d.ts +1 -0
  8. package/dist/classes/JweKit.d.ts.map +1 -1
  9. package/dist/classes/JweKit.js +56 -9
  10. package/dist/classes/JweKit.js.map +1 -1
  11. package/dist/classes/JwsKit.d.ts +1 -0
  12. package/dist/classes/JwsKit.d.ts.map +1 -1
  13. package/dist/classes/JwsKit.js +50 -10
  14. package/dist/classes/JwsKit.js.map +1 -1
  15. package/dist/classes/JwtKit.d.ts +2 -0
  16. package/dist/classes/JwtKit.d.ts.map +1 -1
  17. package/dist/classes/JwtKit.js +83 -10
  18. package/dist/classes/JwtKit.js.map +1 -1
  19. package/dist/classes/index.d.ts +0 -3
  20. package/dist/classes/index.d.ts.map +1 -1
  21. package/dist/classes/index.js +0 -3
  22. package/dist/classes/index.js.map +1 -1
  23. package/dist/constants/token-type.d.ts +6 -0
  24. package/dist/constants/token-type.d.ts.map +1 -0
  25. package/dist/constants/token-type.js +20 -0
  26. package/dist/constants/token-type.js.map +1 -0
  27. package/dist/errors/index.d.ts +0 -3
  28. package/dist/errors/index.d.ts.map +1 -1
  29. package/dist/errors/index.js +0 -3
  30. package/dist/errors/index.js.map +1 -1
  31. package/dist/guards/index.d.ts +3 -0
  32. package/dist/guards/index.d.ts.map +1 -0
  33. package/dist/{types/cws → guards}/index.js +2 -4
  34. package/dist/guards/index.js.map +1 -0
  35. package/dist/guards/is-parsed-jws.d.ts +3 -0
  36. package/dist/guards/is-parsed-jws.d.ts.map +1 -0
  37. package/dist/guards/is-parsed-jws.js +6 -0
  38. package/dist/guards/is-parsed-jws.js.map +1 -0
  39. package/dist/guards/is-parsed-jwt.d.ts +3 -0
  40. package/dist/guards/is-parsed-jwt.d.ts.map +1 -0
  41. package/dist/guards/is-parsed-jwt.js +6 -0
  42. package/dist/guards/is-parsed-jwt.js.map +1 -0
  43. package/dist/index.d.ts +2 -0
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/index.js +1 -0
  46. package/dist/index.js.map +1 -1
  47. package/dist/interfaces/Aegis.d.ts +8 -22
  48. package/dist/interfaces/Aegis.d.ts.map +1 -1
  49. package/dist/interfaces/index.d.ts +0 -3
  50. package/dist/interfaces/index.d.ts.map +1 -1
  51. package/dist/interfaces/index.js +0 -3
  52. package/dist/interfaces/index.js.map +1 -1
  53. package/dist/internal/constants/aegis-profile-keys.d.ts +2 -0
  54. package/dist/internal/constants/aegis-profile-keys.d.ts.map +1 -0
  55. package/dist/internal/constants/aegis-profile-keys.js +37 -0
  56. package/dist/internal/constants/aegis-profile-keys.js.map +1 -0
  57. package/dist/internal/constants/header.d.ts +1 -1
  58. package/dist/internal/constants/header.d.ts.map +1 -1
  59. package/dist/internal/constants/header.js +0 -4
  60. package/dist/internal/constants/header.js.map +1 -1
  61. package/dist/internal/utils/compute-jwk-thumbprint.d.ts +4 -0
  62. package/dist/internal/utils/compute-jwk-thumbprint.d.ts.map +1 -0
  63. package/dist/internal/utils/compute-jwk-thumbprint.js +25 -0
  64. package/dist/internal/utils/compute-jwk-thumbprint.js.map +1 -0
  65. package/dist/internal/utils/compute-typ-header.d.ts +7 -0
  66. package/dist/internal/utils/compute-typ-header.d.ts.map +1 -0
  67. package/dist/internal/utils/compute-typ-header.js +68 -0
  68. package/dist/internal/utils/compute-typ-header.js.map +1 -0
  69. package/dist/internal/utils/extract-aegis-profile.d.ts +7 -0
  70. package/dist/internal/utils/extract-aegis-profile.d.ts.map +1 -0
  71. package/dist/internal/utils/extract-aegis-profile.js +34 -0
  72. package/dist/internal/utils/extract-aegis-profile.js.map +1 -0
  73. package/dist/internal/utils/extract-claims.d.ts +15 -0
  74. package/dist/internal/utils/extract-claims.d.ts.map +1 -0
  75. package/dist/internal/utils/extract-claims.js +201 -0
  76. package/dist/internal/utils/extract-claims.js.map +1 -0
  77. package/dist/internal/utils/extract-token-delegation.d.ts +6 -0
  78. package/dist/internal/utils/extract-token-delegation.d.ts.map +1 -0
  79. package/dist/internal/utils/extract-token-delegation.js +28 -0
  80. package/dist/internal/utils/extract-token-delegation.js.map +1 -0
  81. package/dist/internal/utils/generate-token-id.d.ts +2 -0
  82. package/dist/internal/utils/generate-token-id.d.ts.map +1 -0
  83. package/dist/internal/utils/generate-token-id.js +9 -0
  84. package/dist/internal/utils/generate-token-id.js.map +1 -0
  85. package/dist/internal/utils/jose-header.d.ts +2 -2
  86. package/dist/internal/utils/jose-header.d.ts.map +1 -1
  87. package/dist/internal/utils/jose-header.js +5 -5
  88. package/dist/internal/utils/jose-header.js.map +1 -1
  89. package/dist/internal/utils/jwt-payload.d.ts.map +1 -1
  90. package/dist/internal/utils/jwt-payload.js +50 -43
  91. package/dist/internal/utils/jwt-payload.js.map +1 -1
  92. package/dist/internal/utils/jwt-verify.d.ts.map +1 -1
  93. package/dist/internal/utils/jwt-verify.js +30 -6
  94. package/dist/internal/utils/jwt-verify.js.map +1 -1
  95. package/dist/internal/utils/parse-introspection.d.ts +7 -0
  96. package/dist/internal/utils/parse-introspection.d.ts.map +1 -0
  97. package/dist/internal/utils/parse-introspection.js +28 -0
  98. package/dist/internal/utils/parse-introspection.js.map +1 -0
  99. package/dist/internal/utils/parse-userinfo.d.ts +5 -0
  100. package/dist/internal/utils/parse-userinfo.d.ts.map +1 -0
  101. package/dist/internal/utils/parse-userinfo.js +26 -0
  102. package/dist/internal/utils/parse-userinfo.js.map +1 -0
  103. package/dist/internal/utils/resolve-cert-binding.d.ts +4 -0
  104. package/dist/internal/utils/resolve-cert-binding.d.ts.map +1 -0
  105. package/dist/internal/utils/resolve-cert-binding.js +30 -0
  106. package/dist/internal/utils/resolve-cert-binding.js.map +1 -0
  107. package/dist/internal/utils/token-header.d.ts +2 -2
  108. package/dist/internal/utils/token-header.d.ts.map +1 -1
  109. package/dist/internal/utils/token-header.js +5 -16
  110. package/dist/internal/utils/token-header.js.map +1 -1
  111. package/dist/internal/utils/validate-actor.d.ts +3 -0
  112. package/dist/internal/utils/validate-actor.d.ts.map +1 -0
  113. package/dist/internal/utils/validate-actor.js +27 -0
  114. package/dist/internal/utils/validate-actor.js.map +1 -0
  115. package/dist/internal/utils/validate-crit.d.ts +4 -0
  116. package/dist/internal/utils/validate-crit.d.ts.map +1 -0
  117. package/dist/internal/utils/validate-crit.js +55 -0
  118. package/dist/internal/utils/validate-crit.js.map +1 -0
  119. package/dist/internal/utils/verify-cert-binding.d.ts +14 -0
  120. package/dist/internal/utils/verify-cert-binding.d.ts.map +1 -0
  121. package/dist/internal/utils/verify-cert-binding.js +25 -0
  122. package/dist/internal/utils/verify-cert-binding.js.map +1 -0
  123. package/dist/internal/utils/verify-dpop-proof.d.ts +10 -0
  124. package/dist/internal/utils/verify-dpop-proof.d.ts.map +1 -0
  125. package/dist/internal/utils/verify-dpop-proof.js +76 -0
  126. package/dist/internal/utils/verify-dpop-proof.js.map +1 -0
  127. package/dist/mocks/create-mock-aegis.d.ts +2 -1
  128. package/dist/mocks/create-mock-aegis.d.ts.map +1 -1
  129. package/dist/mocks/create-mock-aegis.js +49 -75
  130. package/dist/mocks/create-mock-aegis.js.map +1 -1
  131. package/dist/mocks/index.d.ts +1 -1
  132. package/dist/mocks/index.d.ts.map +1 -1
  133. package/dist/mocks/index.js +3 -15
  134. package/dist/mocks/index.js.map +1 -1
  135. package/dist/types/aegis.d.ts +3 -0
  136. package/dist/types/aegis.d.ts.map +1 -1
  137. package/dist/types/claims/act-claim.d.ts +8 -0
  138. package/dist/types/claims/act-claim.d.ts.map +1 -0
  139. package/dist/{interfaces/CwtKit.js → types/claims/act-claim.js} +1 -1
  140. package/dist/types/claims/act-claim.js.map +1 -0
  141. package/dist/types/claims/aegis-introspection.d.ts +16 -0
  142. package/dist/types/claims/aegis-introspection.d.ts.map +1 -0
  143. package/dist/types/claims/aegis-introspection.js +3 -0
  144. package/dist/types/claims/aegis-introspection.js.map +1 -0
  145. package/dist/types/claims/aegis-profile.d.ts +44 -0
  146. package/dist/types/claims/aegis-profile.d.ts.map +1 -0
  147. package/dist/types/claims/aegis-profile.js +3 -0
  148. package/dist/types/claims/aegis-profile.js.map +1 -0
  149. package/dist/types/claims/aegis-userinfo.d.ts +5 -0
  150. package/dist/types/claims/aegis-userinfo.d.ts.map +1 -0
  151. package/dist/types/claims/aegis-userinfo.js +3 -0
  152. package/dist/types/claims/aegis-userinfo.js.map +1 -0
  153. package/dist/types/claims/confirmation-claim.d.ts +9 -0
  154. package/dist/types/claims/confirmation-claim.d.ts.map +1 -0
  155. package/dist/types/claims/confirmation-claim.js +3 -0
  156. package/dist/types/claims/confirmation-claim.js.map +1 -0
  157. package/dist/types/claims/delegation-claims.d.ts +6 -0
  158. package/dist/types/claims/delegation-claims.d.ts.map +1 -0
  159. package/dist/types/claims/delegation-claims.js +3 -0
  160. package/dist/types/claims/delegation-claims.js.map +1 -0
  161. package/dist/types/claims/index.d.ts +13 -0
  162. package/dist/types/claims/index.d.ts.map +1 -0
  163. package/dist/types/{cwt → claims}/index.js +12 -7
  164. package/dist/types/claims/index.js.map +1 -0
  165. package/dist/types/claims/jwt/act-claim-wire.d.ts +8 -0
  166. package/dist/types/claims/jwt/act-claim-wire.d.ts.map +1 -0
  167. package/dist/types/claims/jwt/act-claim-wire.js +3 -0
  168. package/dist/types/claims/jwt/act-claim-wire.js.map +1 -0
  169. package/dist/types/claims/jwt/confirmation-claim-wire.d.ts +9 -0
  170. package/dist/types/claims/jwt/confirmation-claim-wire.d.ts.map +1 -0
  171. package/dist/types/claims/jwt/confirmation-claim-wire.js +3 -0
  172. package/dist/types/claims/jwt/confirmation-claim-wire.js.map +1 -0
  173. package/dist/types/claims/jwt/delegation-claims-wire.d.ts +6 -0
  174. package/dist/types/claims/jwt/delegation-claims-wire.d.ts.map +1 -0
  175. package/dist/types/claims/jwt/delegation-claims-wire.js +3 -0
  176. package/dist/types/claims/jwt/delegation-claims-wire.js.map +1 -0
  177. package/dist/types/claims/jwt/index.d.ts +10 -0
  178. package/dist/types/claims/jwt/index.d.ts.map +1 -0
  179. package/dist/types/{cwe → claims/jwt}/index.js +9 -4
  180. package/dist/types/claims/jwt/index.js.map +1 -0
  181. package/dist/types/claims/jwt/jwt-claims.d.ts +8 -0
  182. package/dist/types/claims/jwt/jwt-claims.d.ts.map +1 -0
  183. package/dist/types/claims/jwt/jwt-claims.js.map +1 -0
  184. package/dist/types/claims/jwt/lindorm-claims-wire.d.ts +16 -0
  185. package/dist/types/claims/jwt/lindorm-claims-wire.d.ts.map +1 -0
  186. package/dist/types/claims/jwt/lindorm-claims-wire.js +3 -0
  187. package/dist/types/claims/jwt/lindorm-claims-wire.js.map +1 -0
  188. package/dist/types/claims/jwt/oauth-claims-wire.d.ts +6 -0
  189. package/dist/types/claims/jwt/oauth-claims-wire.d.ts.map +1 -0
  190. package/dist/types/claims/jwt/oauth-claims-wire.js +3 -0
  191. package/dist/types/claims/jwt/oauth-claims-wire.js.map +1 -0
  192. package/dist/types/claims/jwt/oidc-claims-wire.d.ts +11 -0
  193. package/dist/types/claims/jwt/oidc-claims-wire.d.ts.map +1 -0
  194. package/dist/types/claims/jwt/oidc-claims-wire.js +3 -0
  195. package/dist/types/claims/jwt/oidc-claims-wire.js.map +1 -0
  196. package/dist/types/claims/jwt/pop-claims-wire.d.ts +5 -0
  197. package/dist/types/claims/jwt/pop-claims-wire.d.ts.map +1 -0
  198. package/dist/types/claims/jwt/pop-claims-wire.js +3 -0
  199. package/dist/types/claims/jwt/pop-claims-wire.js.map +1 -0
  200. package/dist/types/claims/jwt/std-claims-wire.d.ts +10 -0
  201. package/dist/types/claims/jwt/std-claims-wire.d.ts.map +1 -0
  202. package/dist/types/claims/jwt/std-claims-wire.js +3 -0
  203. package/dist/types/claims/jwt/std-claims-wire.js.map +1 -0
  204. package/dist/types/claims/lindorm-claims.d.ts +18 -0
  205. package/dist/types/claims/lindorm-claims.d.ts.map +1 -0
  206. package/dist/types/claims/lindorm-claims.js +3 -0
  207. package/dist/types/claims/lindorm-claims.js.map +1 -0
  208. package/dist/types/claims/oauth-claims.d.ts +6 -0
  209. package/dist/types/claims/oauth-claims.d.ts.map +1 -0
  210. package/dist/types/claims/oauth-claims.js +3 -0
  211. package/dist/types/claims/oauth-claims.js.map +1 -0
  212. package/dist/types/claims/oidc-claims.d.ts +11 -0
  213. package/dist/types/claims/oidc-claims.d.ts.map +1 -0
  214. package/dist/types/{cose-target.js → claims/oidc-claims.js} +1 -1
  215. package/dist/types/claims/oidc-claims.js.map +1 -0
  216. package/dist/types/claims/pop-claims.d.ts +5 -0
  217. package/dist/types/claims/pop-claims.d.ts.map +1 -0
  218. package/dist/types/{cwe/cwe-decode.js → claims/pop-claims.js} +1 -1
  219. package/dist/types/claims/pop-claims.js.map +1 -0
  220. package/dist/types/claims/std-claims.d.ts +10 -0
  221. package/dist/types/claims/std-claims.d.ts.map +1 -0
  222. package/dist/types/claims/std-claims.js +3 -0
  223. package/dist/types/claims/std-claims.js.map +1 -0
  224. package/dist/types/header.d.ts +14 -7
  225. package/dist/types/header.d.ts.map +1 -1
  226. package/dist/types/index.d.ts +2 -4
  227. package/dist/types/index.d.ts.map +1 -1
  228. package/dist/types/index.js +2 -4
  229. package/dist/types/index.js.map +1 -1
  230. package/dist/types/jwe/jwe-decrypt.d.ts +2 -4
  231. package/dist/types/jwe/jwe-decrypt.d.ts.map +1 -1
  232. package/dist/types/jwe/jwe-encrypt.d.ts +4 -1
  233. package/dist/types/jwe/jwe-encrypt.d.ts.map +1 -1
  234. package/dist/types/jwe/jwe-kit.d.ts +2 -7
  235. package/dist/types/jwe/jwe-kit.d.ts.map +1 -1
  236. package/dist/types/jws/jws-kit.d.ts +2 -6
  237. package/dist/types/jws/jws-kit.d.ts.map +1 -1
  238. package/dist/types/jws/jws-parse.d.ts +2 -5
  239. package/dist/types/jws/jws-parse.d.ts.map +1 -1
  240. package/dist/types/jws/jws-sign.d.ts +5 -2
  241. package/dist/types/jws/jws-sign.d.ts.map +1 -1
  242. package/dist/types/jwt/index.d.ts +3 -1
  243. package/dist/types/jwt/index.d.ts.map +1 -1
  244. package/dist/types/jwt/index.js +3 -1
  245. package/dist/types/jwt/index.js.map +1 -1
  246. package/dist/types/jwt/jwt-claim-matchers.d.ts +28 -0
  247. package/dist/types/jwt/jwt-claim-matchers.d.ts.map +1 -0
  248. package/dist/types/jwt/jwt-claim-matchers.js +3 -0
  249. package/dist/types/jwt/jwt-claim-matchers.js.map +1 -0
  250. package/dist/types/jwt/jwt-decode.d.ts +1 -1
  251. package/dist/types/jwt/jwt-decode.d.ts.map +1 -1
  252. package/dist/types/jwt/jwt-delegation.d.ts +7 -0
  253. package/dist/types/jwt/jwt-delegation.d.ts.map +1 -0
  254. package/dist/types/jwt/jwt-delegation.js +3 -0
  255. package/dist/types/jwt/jwt-delegation.js.map +1 -0
  256. package/dist/types/jwt/jwt-dpop.d.ts +10 -0
  257. package/dist/types/jwt/jwt-dpop.d.ts.map +1 -0
  258. package/dist/{interfaces/CwsKit.js → types/jwt/jwt-dpop.js} +1 -1
  259. package/dist/types/jwt/jwt-dpop.js.map +1 -0
  260. package/dist/types/jwt/jwt-kit.d.ts +3 -5
  261. package/dist/types/jwt/jwt-kit.d.ts.map +1 -1
  262. package/dist/types/jwt/jwt-parse.d.ts +11 -27
  263. package/dist/types/jwt/jwt-parse.d.ts.map +1 -1
  264. package/dist/types/jwt/jwt-sign.d.ts +6 -23
  265. package/dist/types/jwt/jwt-sign.d.ts.map +1 -1
  266. package/dist/types/jwt/jwt-validate.d.ts +2 -23
  267. package/dist/types/jwt/jwt-validate.d.ts.map +1 -1
  268. package/dist/types/jwt/jwt-verify.d.ts +13 -25
  269. package/dist/types/jwt/jwt-verify.d.ts.map +1 -1
  270. package/dist/types/kit.d.ts +12 -0
  271. package/dist/types/kit.d.ts.map +1 -0
  272. package/dist/{interfaces/CweKit.js → types/kit.js} +1 -1
  273. package/dist/types/kit.js.map +1 -0
  274. package/dist/types/level-of-assurance.d.ts +1 -1
  275. package/dist/types/level-of-assurance.d.ts.map +1 -1
  276. package/package.json +19 -18
  277. package/__tests__/cose-interop.test.ts +0 -1127
  278. package/dist/classes/CweKit.d.ts +0 -14
  279. package/dist/classes/CweKit.d.ts.map +0 -1
  280. package/dist/classes/CweKit.js +0 -151
  281. package/dist/classes/CweKit.js.map +0 -1
  282. package/dist/classes/CwsKit.d.ts +0 -13
  283. package/dist/classes/CwsKit.d.ts.map +0 -1
  284. package/dist/classes/CwsKit.js +0 -139
  285. package/dist/classes/CwsKit.js.map +0 -1
  286. package/dist/classes/CwtKit.d.ts +0 -17
  287. package/dist/classes/CwtKit.d.ts.map +0 -1
  288. package/dist/classes/CwtKit.js +0 -166
  289. package/dist/classes/CwtKit.js.map +0 -1
  290. package/dist/errors/CoseEncryptError.d.ts +0 -4
  291. package/dist/errors/CoseEncryptError.d.ts.map +0 -1
  292. package/dist/errors/CoseEncryptError.js +0 -8
  293. package/dist/errors/CoseEncryptError.js.map +0 -1
  294. package/dist/errors/CoseSignError.d.ts +0 -4
  295. package/dist/errors/CoseSignError.d.ts.map +0 -1
  296. package/dist/errors/CoseSignError.js +0 -8
  297. package/dist/errors/CoseSignError.js.map +0 -1
  298. package/dist/errors/CwtError.d.ts +0 -4
  299. package/dist/errors/CwtError.d.ts.map +0 -1
  300. package/dist/errors/CwtError.js +0 -8
  301. package/dist/errors/CwtError.js.map +0 -1
  302. package/dist/interfaces/CweKit.d.ts +0 -6
  303. package/dist/interfaces/CweKit.d.ts.map +0 -1
  304. package/dist/interfaces/CweKit.js.map +0 -1
  305. package/dist/interfaces/CwsKit.d.ts +0 -6
  306. package/dist/interfaces/CwsKit.d.ts.map +0 -1
  307. package/dist/interfaces/CwsKit.js.map +0 -1
  308. package/dist/interfaces/CwtKit.d.ts +0 -7
  309. package/dist/interfaces/CwtKit.d.ts.map +0 -1
  310. package/dist/interfaces/CwtKit.js.map +0 -1
  311. package/dist/internal/constants/cose.d.ts +0 -19
  312. package/dist/internal/constants/cose.d.ts.map +0 -1
  313. package/dist/internal/constants/cose.js +0 -116
  314. package/dist/internal/constants/cose.js.map +0 -1
  315. package/dist/internal/utils/auth-tag-length.d.ts +0 -3
  316. package/dist/internal/utils/auth-tag-length.d.ts.map +0 -1
  317. package/dist/internal/utils/auth-tag-length.js +0 -21
  318. package/dist/internal/utils/auth-tag-length.js.map +0 -1
  319. package/dist/internal/utils/cose/bstr.d.ts +0 -4
  320. package/dist/internal/utils/cose/bstr.d.ts.map +0 -1
  321. package/dist/internal/utils/cose/bstr.js +0 -18
  322. package/dist/internal/utils/cose/bstr.js.map +0 -1
  323. package/dist/internal/utils/cose/claims.d.ts +0 -5
  324. package/dist/internal/utils/cose/claims.d.ts.map +0 -1
  325. package/dist/internal/utils/cose/claims.js +0 -57
  326. package/dist/internal/utils/cose/claims.js.map +0 -1
  327. package/dist/internal/utils/cose/crit.d.ts +0 -3
  328. package/dist/internal/utils/cose/crit.d.ts.map +0 -1
  329. package/dist/internal/utils/cose/crit.js +0 -43
  330. package/dist/internal/utils/cose/crit.js.map +0 -1
  331. package/dist/internal/utils/cose/find.d.ts +0 -5
  332. package/dist/internal/utils/cose/find.d.ts.map +0 -1
  333. package/dist/internal/utils/cose/find.js +0 -37
  334. package/dist/internal/utils/cose/find.js.map +0 -1
  335. package/dist/internal/utils/cose/header.d.ts +0 -5
  336. package/dist/internal/utils/cose/header.d.ts.map +0 -1
  337. package/dist/internal/utils/cose/header.js +0 -81
  338. package/dist/internal/utils/cose/header.js.map +0 -1
  339. package/dist/internal/utils/cose/key.d.ts +0 -4
  340. package/dist/internal/utils/cose/key.d.ts.map +0 -1
  341. package/dist/internal/utils/cose/key.js +0 -86
  342. package/dist/internal/utils/cose/key.js.map +0 -1
  343. package/dist/internal/utils/cose-sign-token.d.ts +0 -9
  344. package/dist/internal/utils/cose-sign-token.d.ts.map +0 -1
  345. package/dist/internal/utils/cose-sign-token.js +0 -12
  346. package/dist/internal/utils/cose-sign-token.js.map +0 -1
  347. package/dist/internal/utils/cose-signature.d.ts +0 -16
  348. package/dist/internal/utils/cose-signature.d.ts.map +0 -1
  349. package/dist/internal/utils/cose-signature.js +0 -17
  350. package/dist/internal/utils/cose-signature.js.map +0 -1
  351. package/dist/types/cose-target.d.ts +0 -2
  352. package/dist/types/cose-target.d.ts.map +0 -1
  353. package/dist/types/cose-target.js.map +0 -1
  354. package/dist/types/cwe/cwe-decode.d.ts +0 -18
  355. package/dist/types/cwe/cwe-decode.d.ts.map +0 -1
  356. package/dist/types/cwe/cwe-decode.js.map +0 -1
  357. package/dist/types/cwe/cwe-decrypt.d.ts +0 -15
  358. package/dist/types/cwe/cwe-decrypt.d.ts.map +0 -1
  359. package/dist/types/cwe/cwe-decrypt.js +0 -3
  360. package/dist/types/cwe/cwe-decrypt.js.map +0 -1
  361. package/dist/types/cwe/cwe-encrypt.d.ts +0 -12
  362. package/dist/types/cwe/cwe-encrypt.d.ts.map +0 -1
  363. package/dist/types/cwe/cwe-encrypt.js +0 -3
  364. package/dist/types/cwe/cwe-encrypt.js.map +0 -1
  365. package/dist/types/cwe/cwe-kit.d.ts +0 -9
  366. package/dist/types/cwe/cwe-kit.d.ts.map +0 -1
  367. package/dist/types/cwe/cwe-kit.js +0 -3
  368. package/dist/types/cwe/cwe-kit.js.map +0 -1
  369. package/dist/types/cwe/index.d.ts +0 -5
  370. package/dist/types/cwe/index.d.ts.map +0 -1
  371. package/dist/types/cwe/index.js.map +0 -1
  372. package/dist/types/cws/cws-decode.d.ts +0 -9
  373. package/dist/types/cws/cws-decode.d.ts.map +0 -1
  374. package/dist/types/cws/cws-decode.js +0 -3
  375. package/dist/types/cws/cws-decode.js.map +0 -1
  376. package/dist/types/cws/cws-kit.d.ts +0 -8
  377. package/dist/types/cws/cws-kit.d.ts.map +0 -1
  378. package/dist/types/cws/cws-kit.js +0 -3
  379. package/dist/types/cws/cws-kit.js.map +0 -1
  380. package/dist/types/cws/cws-parse.d.ts +0 -14
  381. package/dist/types/cws/cws-parse.d.ts.map +0 -1
  382. package/dist/types/cws/cws-parse.js +0 -3
  383. package/dist/types/cws/cws-parse.js.map +0 -1
  384. package/dist/types/cws/cws-sign.d.ts +0 -14
  385. package/dist/types/cws/cws-sign.d.ts.map +0 -1
  386. package/dist/types/cws/cws-sign.js +0 -3
  387. package/dist/types/cws/cws-sign.js.map +0 -1
  388. package/dist/types/cws/index.d.ts +0 -5
  389. package/dist/types/cws/index.d.ts.map +0 -1
  390. package/dist/types/cws/index.js.map +0 -1
  391. package/dist/types/cwt/cwt-claims.d.ts +0 -3
  392. package/dist/types/cwt/cwt-claims.d.ts.map +0 -1
  393. package/dist/types/cwt/cwt-claims.js +0 -3
  394. package/dist/types/cwt/cwt-claims.js.map +0 -1
  395. package/dist/types/cwt/cwt-decode.d.ts +0 -10
  396. package/dist/types/cwt/cwt-decode.d.ts.map +0 -1
  397. package/dist/types/cwt/cwt-decode.js +0 -3
  398. package/dist/types/cwt/cwt-decode.js.map +0 -1
  399. package/dist/types/cwt/cwt-kit.d.ts +0 -3
  400. package/dist/types/cwt/cwt-kit.d.ts.map +0 -1
  401. package/dist/types/cwt/cwt-kit.js +0 -3
  402. package/dist/types/cwt/cwt-kit.js.map +0 -1
  403. package/dist/types/cwt/cwt-parse.d.ts +0 -15
  404. package/dist/types/cwt/cwt-parse.d.ts.map +0 -1
  405. package/dist/types/cwt/cwt-parse.js +0 -3
  406. package/dist/types/cwt/cwt-parse.js.map +0 -1
  407. package/dist/types/cwt/cwt-sign.d.ts +0 -17
  408. package/dist/types/cwt/cwt-sign.d.ts.map +0 -1
  409. package/dist/types/cwt/cwt-sign.js +0 -3
  410. package/dist/types/cwt/cwt-sign.js.map +0 -1
  411. package/dist/types/cwt/cwt-validate.d.ts +0 -3
  412. package/dist/types/cwt/cwt-validate.d.ts.map +0 -1
  413. package/dist/types/cwt/cwt-validate.js +0 -3
  414. package/dist/types/cwt/cwt-validate.js.map +0 -1
  415. package/dist/types/cwt/cwt-verify.d.ts +0 -3
  416. package/dist/types/cwt/cwt-verify.d.ts.map +0 -1
  417. package/dist/types/cwt/cwt-verify.js +0 -3
  418. package/dist/types/cwt/cwt-verify.js.map +0 -1
  419. package/dist/types/cwt/index.d.ts +0 -8
  420. package/dist/types/cwt/index.d.ts.map +0 -1
  421. package/dist/types/cwt/index.js.map +0 -1
  422. package/dist/types/jwt/jwt-claims.d.ts +0 -38
  423. package/dist/types/jwt/jwt-claims.d.ts.map +0 -1
  424. package/dist/types/jwt/jwt-claims.js.map +0 -1
  425. /package/dist/types/{jwt → claims/jwt}/jwt-claims.js +0 -0
package/CHANGELOG.md CHANGED
@@ -3,6 +3,34 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [0.5.0](https://github.com/lindorm-io/monorepo/compare/@lindorm/aegis@0.4.4...@lindorm/aegis@0.5.0) (2026-04-15)
7
+
8
+ ### Bug Fixes
9
+
10
+ - **aegis:** accept AesContent in IAegisAes types, delegate mock to AesKit ([11b78df](https://github.com/lindorm-io/monorepo/commit/11b78df01112106280466a1824a8c47151ceee65))
11
+ - **aegis:** adopt kryptos descriptive cert fields and drop SHA-1 x5t binding ([06e4d4d](https://github.com/lindorm-io/monorepo/commit/06e4d4dd4bc2f3311370335316d1ffb27df0a317))
12
+ - **aegis:** resolve historical kryptos by id when verifying JWE/JWS ([24c81d4](https://github.com/lindorm-io/monorepo/commit/24c81d4dfa2da67eafcc6e1af432af1a75567b16))
13
+ - **aegis:** string verifier for array-valued claims uses containment ([7cc2c7e](https://github.com/lindorm-io/monorepo/commit/7cc2c7e32140a29ffddd079f956dee9e611ae03c))
14
+
15
+ ### Features
16
+
17
+ - **aegis:** add act, may_act, groups, entitlements claim types ([ed80767](https://github.com/lindorm-io/monorepo/commit/ed80767a029fded720bb9af44fb3cdeb2b5c30d6))
18
+ - **aegis:** add AegisProfile claim type for ID token profile personalization ([929a9b6](https://github.com/lindorm-io/monorepo/commit/929a9b6ee7b051d50dda8aa8c6a1c3e88e23e4d5))
19
+ - **aegis:** add baseFormat to parsed token headers ([43d37a0](https://github.com/lindorm-io/monorepo/commit/43d37a02a3ae1773fb166aabd7f7957dcf30e4ac))
20
+ - **aegis:** add bindCertificate sign option and post-verify thumbprint check ([0d4e2a5](https://github.com/lindorm-io/monorepo/commit/0d4e2a5bdfbfa745b7b3e137ecf4b4a617c6d8f5)), closes [x5t#S256](https://github.com/x5t/issues/S256)
21
+ - **aegis:** add certBindingMode strict/lax for cert-binding verify ([bfd2165](https://github.com/lindorm-io/monorepo/commit/bfd2165d65a1bdb0895e503466dfc287259f7a66))
22
+ - **aegis:** add cnf claim support on sign and parse ([e7d7a28](https://github.com/lindorm-io/monorepo/commit/e7d7a28d1b82cf711c54d64aa51f2615b96c1e4d))
23
+ - **aegis:** add isParsedJwt and isParsedJws guards ([1640977](https://github.com/lindorm-io/monorepo/commit/1640977405de7bc183e98b24857ce33cc21ad0d4))
24
+ - **aegis:** add TokenType, AuthFactor, SessionHint, SubjectHint types ([fb7a15a](https://github.com/lindorm-io/monorepo/commit/fb7a15a2687ed0e1126ac94c23ed01472d0fa044))
25
+ - **aegis:** add userinfo and introspection parse utilities ([ab2e14f](https://github.com/lindorm-io/monorepo/commit/ab2e14f4ef0b40c7a70ad0fe08079a88c99c5f33))
26
+ - **aegis:** attach TokenIdentity to parsed results and add actor verify option ([7bcfdae](https://github.com/lindorm-io/monorepo/commit/7bcfdae0d4d1c83811ea8e03437fb284113f69e4))
27
+ - **aegis:** auto-stamp thumbprint on sign when kryptos has cert, add none mode ([441630f](https://github.com/lindorm-io/monorepo/commit/441630f177b4264a791da9ce9e5409b4de15958a))
28
+ - **aegis:** enforce algorithm allowlist in decodeJoseHeader ([5be80a1](https://github.com/lindorm-io/monorepo/commit/5be80a10aa7461323e1b620bed8a699f960e7089)), closes [PKCS#1](https://github.com/PKCS/issues/1)
29
+ - **aegis:** expose parseUserinfo, parseIntrospection, and validateClaims on Aegis ([a29ec9c](https://github.com/lindorm-io/monorepo/commit/a29ec9c3568631c067d0984de07769a969ca1719))
30
+ - **aegis:** reject JWE tokens with zip compression header ([644d37d](https://github.com/lindorm-io/monorepo/commit/644d37debea9a5bf0edab469ced8e2bc6467bf60))
31
+ - **aegis:** validate tokenType input in computeTypHeader ([5d95fb6](https://github.com/lindorm-io/monorepo/commit/5d95fb69ab5625cd6812b5b29be91c436f8001a0))
32
+ - **aegis:** verify DPoP proofs as part of JWT verification ([9795b7c](https://github.com/lindorm-io/monorepo/commit/9795b7c1d0b8925050fe82176515a47aeefd5957))
33
+
6
34
  ## [0.4.4](https://github.com/lindorm-io/monorepo/compare/@lindorm/aegis@0.4.3...@lindorm/aegis@0.4.4) (2026-04-01)
7
35
 
8
36
  **Note:** Version bump only for package @lindorm/aegis
@@ -65,7 +65,7 @@ describe("JWT interop: aegis <-> jose", () => {
65
65
 
66
66
  expect(result.payload.iss).toBe(ISSUER);
67
67
  expect(result.payload.sub).toBe(SUBJECT);
68
- expect(result.payload.token_type).toBe("access_token");
68
+ expect(result.protectedHeader.typ).toBe("at+jwt");
69
69
  expect(result.payload.exp).toBeDefined();
70
70
  });
71
71
 
@@ -77,8 +77,8 @@ describe("JWT interop: aegis <-> jose", () => {
77
77
  const jwk = kryptos.export("jwk");
78
78
  const joseKey = await importJWK(jwk, jwk.alg);
79
79
 
80
- const token = await new SignJWT({ token_type: "access_token" })
81
- .setProtectedHeader({ alg: jwk.alg, typ: "JWT" })
80
+ const token = await new SignJWT({})
81
+ .setProtectedHeader({ alg: jwk.alg, typ: "at+jwt" })
82
82
  .setIssuer(ISSUER)
83
83
  .setSubject(SUBJECT)
84
84
  .setExpirationTime("1h")
@@ -89,7 +89,7 @@ describe("JWT interop: aegis <-> jose", () => {
89
89
 
90
90
  expect(result.payload.issuer).toBe(ISSUER);
91
91
  expect(result.payload.subject).toBe(SUBJECT);
92
- expect(result.payload.tokenType).toBe("access_token");
92
+ expect(result.header.tokenType).toBe("access_token");
93
93
  expect(result.payload.expiresAt).toBeInstanceOf(Date);
94
94
  });
95
95
  });
@@ -116,7 +116,8 @@ describe("JWT interop: aegis <-> jsonwebtoken", () => {
116
116
 
117
117
  expect(result.iss).toBe(ISSUER);
118
118
  expect(result.sub).toBe(SUBJECT);
119
- expect(result.token_type).toBe("access_token");
119
+ // token_type is no longer a claim; jsonwebtoken verify doesn't expose header
120
+ expect(jsonwebtoken.decode(token, { complete: true })?.header.typ).toBe("at+jwt");
120
121
  expect(result.exp).toBeDefined();
121
122
  });
122
123
 
@@ -126,9 +127,10 @@ describe("JWT interop: aegis <-> jsonwebtoken", () => {
126
127
 
127
128
  const { privateKey } = kryptos.export("pem");
128
129
 
129
- const token = jsonwebtoken.sign({ token_type: "access_token" }, privateKey!, {
130
+ const token = jsonwebtoken.sign({}, privateKey!, {
130
131
  algorithm: "RS256",
131
132
  expiresIn: "1h",
133
+ header: { alg: "RS256", typ: "at+jwt" },
132
134
  issuer: ISSUER,
133
135
  subject: SUBJECT,
134
136
  });
@@ -137,7 +139,7 @@ describe("JWT interop: aegis <-> jsonwebtoken", () => {
137
139
 
138
140
  expect(result.payload.issuer).toBe(ISSUER);
139
141
  expect(result.payload.subject).toBe(SUBJECT);
140
- expect(result.payload.tokenType).toBe("access_token");
142
+ expect(result.header.tokenType).toBe("access_token");
141
143
  });
142
144
  });
143
145
 
@@ -157,7 +159,7 @@ describe("JWT interop: aegis <-> jsonwebtoken", () => {
157
159
 
158
160
  expect(result.iss).toBe(ISSUER);
159
161
  expect(result.sub).toBe(SUBJECT);
160
- expect(result.token_type).toBe("access_token");
162
+ expect(jsonwebtoken.decode(token, { complete: true })?.header.typ).toBe("at+jwt");
161
163
  });
162
164
 
163
165
  test("jsonwebtoken sign -> aegis verify", () => {
@@ -166,9 +168,10 @@ describe("JWT interop: aegis <-> jsonwebtoken", () => {
166
168
 
167
169
  const { privateKey } = kryptos.export("der");
168
170
 
169
- const token = jsonwebtoken.sign({ token_type: "access_token" }, privateKey!, {
171
+ const token = jsonwebtoken.sign({}, privateKey!, {
170
172
  algorithm: "HS256",
171
173
  expiresIn: "1h",
174
+ header: { alg: "HS256", typ: "at+jwt" },
172
175
  issuer: ISSUER,
173
176
  subject: SUBJECT,
174
177
  });
@@ -177,7 +180,7 @@ describe("JWT interop: aegis <-> jsonwebtoken", () => {
177
180
 
178
181
  expect(result.payload.issuer).toBe(ISSUER);
179
182
  expect(result.payload.subject).toBe(SUBJECT);
180
- expect(result.payload.tokenType).toBe("access_token");
183
+ expect(result.header.tokenType).toBe("access_token");
181
184
  });
182
185
  });
183
186
  });
@@ -1,43 +1,36 @@
1
- import { IAegis, IAegisAes, IAegisCwe, IAegisCws, IAegisCwt, IAegisJwe, IAegisJws, IAegisJwt } from "../interfaces";
2
- import { AegisOptions, DecodedCwe, DecodedCws, DecodedCwt, DecodedJwe, DecodedJws, DecodedJwt, ParsedCws, ParsedCwt, ParsedJws, ParsedJwt, TokenHeaderClaims, VerifyJwtOptions } from "../types";
1
+ import { Dict } from "@lindorm/types";
2
+ import { IAegis, IAegisAes, IAegisJwe, IAegisJws, IAegisJwt } from "../interfaces";
3
+ import { AegisIntrospection, AegisOptions, AegisUserinfo, DecodedJwe, DecodedJws, DecodedJwt, ParsedJws, ParsedJwt, TokenHeaderClaims, ValidateJwtOptions, VerifyJwtOptions } from "../types";
4
+ import { IntrospectClaimsInput } from "#internal/utils/parse-introspection";
5
+ import { UserinfoClaimsInput } from "#internal/utils/parse-userinfo";
3
6
  export declare class Aegis implements IAegis {
4
7
  readonly issuer: string | null;
5
8
  private readonly amphora;
9
+ private readonly certBindingMode;
6
10
  private readonly clockTolerance;
11
+ private readonly dpopMaxSkew;
7
12
  private readonly encAlgorithm;
8
13
  private readonly encryption;
9
14
  private readonly logger;
10
15
  private readonly sigAlgorithm;
11
16
  constructor(options: AegisOptions);
12
17
  get aes(): IAegisAes;
13
- get cwe(): IAegisCwe;
14
- get cws(): IAegisCws;
15
- get cwt(): IAegisCwt;
16
18
  get jwe(): IAegisJwe;
17
19
  get jws(): IAegisJws;
18
20
  get jwt(): IAegisJwt;
19
- verify<T extends ParsedJwt | ParsedJws<any> | ParsedCwt | ParsedCws<any>>(token: string, options?: VerifyJwtOptions): Promise<T>;
21
+ verify<T extends ParsedJwt | ParsedJws<any>>(token: string, options?: VerifyJwtOptions): Promise<T>;
20
22
  static header(token: string): TokenHeaderClaims;
21
23
  static isJwe(jwe: string): boolean;
22
24
  static isJws(jws: string): boolean;
23
25
  static isJwt(jwt: string): boolean;
24
- static isCwe(cose: string): boolean;
25
- static isCws(cose: string): boolean;
26
- static isCwt(cwt: string): boolean;
27
- static decode<T extends DecodedJwe | DecodedJws | DecodedJwt | DecodedCwt | DecodedCwe | DecodedCws<any>>(token: string): T;
28
- static parse<T extends ParsedJwt | ParsedJws<any> | ParsedCwt | ParsedCws<any>>(token: string): T;
26
+ static decode<T extends DecodedJwe | DecodedJws | DecodedJwt>(token: string): T;
27
+ static parse<T extends ParsedJwt | ParsedJws<any>>(token: string): T;
28
+ static parseUserinfo(data: UserinfoClaimsInput): AegisUserinfo;
29
+ static parseIntrospection(data: IntrospectClaimsInput): AegisIntrospection;
30
+ static validateClaims(claims: Dict, matchers: ValidateJwtOptions): void;
29
31
  private aesKit;
30
32
  private aesEncrypt;
31
33
  private aesDecrypt;
32
- private coseEncryptKit;
33
- private coseEncrypt;
34
- private coseDecrypt;
35
- private coseSignKit;
36
- private coseSign;
37
- private coseVerify;
38
- private cwtKit;
39
- private cwtSign;
40
- private cwtVerify;
41
34
  private jweKit;
42
35
  private jweEncrypt;
43
36
  private jweDecrypt;
@@ -1 +1 @@
1
- {"version":3,"file":"Aegis.d.ts","sourceRoot":"","sources":["../../src/classes/Aegis.ts"],"names":[],"mappings":"AAiBA,OAAO,EACL,MAAM,EACN,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACV,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,YAAY,EAKZ,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EAOV,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EAWT,iBAAiB,EAEjB,gBAAgB,EACjB,MAAM,UAAU,CAAC;AAyBlB,qBAAa,KAAM,YAAW,MAAM;IAClC,SAAgB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAEtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAW;IACnC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;IAC/D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAC/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;gBAE5C,OAAO,EAAE,YAAY;IAWxC,IAAW,GAAG,IAAI,SAAS,CAK1B;IAED,IAAW,GAAG,IAAI,SAAS,CAK1B;IAED,IAAW,GAAG,IAAI,SAAS,CAK1B;IAED,IAAW,GAAG,IAAI,SAAS,CAK1B;IAED,IAAW,GAAG,IAAI,SAAS,CAK1B;IAED,IAAW,GAAG,IAAI,SAAS,CAK1B;IAED,IAAW,GAAG,IAAI,SAAS,CAK1B;IAEY,MAAM,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,EACnF,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,CAAC,CAAC;WA0BC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB;WAKxC,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;WAI3B,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;WAI3B,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;WAI3B,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;WAI5B,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;WAI5B,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;WAI3B,MAAM,CAClB,CAAC,SACG,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,CAAC,GAAG,CAAC,EACnB,KAAK,EAAE,MAAM,GAAG,CAAC;WAsBL,KAAK,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,EACnF,KAAK,EAAE,MAAM,GACZ,CAAC;YAkBU,MAAM;YAMN,UAAU;YASV,UAAU;YAeV,cAAc;YAUd,WAAW;YASX,WAAW;YAcX,WAAW;YASX,QAAQ;YASR,UAAU;YAeV,MAAM;YAWN,OAAO;YASP,SAAS;YAgBT,MAAM;YAUN,UAAU;YASV,UAAU;YAaV,MAAM;YAMN,OAAO;YASP,SAAS;YAaT,MAAM;YAWN,OAAO;YASP,SAAS;YAgBT,UAAU;YA+BV,UAAU;CAsBzB"}
1
+ {"version":3,"file":"Aegis.d.ts","sourceRoot":"","sources":["../../src/classes/Aegis.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAEtC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACnF,OAAO,EACL,kBAAkB,EAClB,YAAY,EAEZ,aAAa,EAEb,UAAU,EACV,UAAU,EACV,UAAU,EAKV,SAAS,EACT,SAAS,EAMT,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,UAAU,CAAC;AAIlB,OAAO,EACL,qBAAqB,EAEtB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAiB,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAqBpF,qBAAa,KAAM,YAAW,MAAM;IAClC,SAAgB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAEtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAW;IACnC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;IAC/D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAC/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;gBAE5C,OAAO,EAAE,YAAY;IAaxC,IAAW,GAAG,IAAI,SAAS,CAK1B;IAED,IAAW,GAAG,IAAI,SAAS,CAK1B;IAED,IAAW,GAAG,IAAI,SAAS,CAK1B;IAED,IAAW,GAAG,IAAI,SAAS,CAK1B;IAEY,MAAM,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,EACtD,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,CAAC,CAAC;WAgBC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB;WAKxC,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;WAI3B,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;WAI3B,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;WAI3B,MAAM,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,GAAG,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC;WAaxE,KAAK,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC;WAU7D,aAAa,CAAC,IAAI,EAAE,mBAAmB,GAAG,aAAa;WAIvD,kBAAkB,CAAC,IAAI,EAAE,qBAAqB,GAAG,kBAAkB;WAYnE,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,kBAAkB,GAAG,IAAI;YAOhE,MAAM;YAMN,UAAU;YASV,UAAU;YAeV,MAAM;YAWN,UAAU;YASV,UAAU;YAaV,MAAM;YAUN,OAAO;YASP,SAAS;YAaT,MAAM;YAaN,OAAO;YASP,SAAS;YAgBT,UAAU;YA+BV,UAAU;CAgCzB"}
@@ -3,17 +3,20 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Aegis = void 0;
4
4
  const aes_1 = require("@lindorm/aes");
5
5
  const errors_1 = require("../errors");
6
+ const jwt_validate_1 = require("#internal/utils/jwt-validate");
7
+ const validate_1 = require("#internal/utils/validate");
6
8
  const jose_header_1 = require("#internal/utils/jose-header");
7
- const CweKit_1 = require("./CweKit");
8
- const CwsKit_1 = require("./CwsKit");
9
- const CwtKit_1 = require("./CwtKit");
9
+ const parse_introspection_1 = require("#internal/utils/parse-introspection");
10
+ const parse_userinfo_1 = require("#internal/utils/parse-userinfo");
10
11
  const JweKit_1 = require("./JweKit");
11
12
  const JwsKit_1 = require("./JwsKit");
12
13
  const JwtKit_1 = require("./JwtKit");
13
14
  class Aegis {
14
15
  issuer;
15
16
  amphora;
17
+ certBindingMode;
16
18
  clockTolerance;
19
+ dpopMaxSkew;
17
20
  encAlgorithm;
18
21
  encryption;
19
22
  logger;
@@ -22,7 +25,9 @@ class Aegis {
22
25
  this.logger = options.logger.child(["AegisKit"]);
23
26
  this.amphora = options.amphora;
24
27
  this.issuer = options.issuer ?? this.amphora.domain;
28
+ this.certBindingMode = options.certBindingMode ?? "strict";
25
29
  this.clockTolerance = options.clockTolerance ?? 0;
30
+ this.dpopMaxSkew = options.dpopMaxSkew;
26
31
  this.encAlgorithm = options.encAlgorithm;
27
32
  this.encryption = options.encryption ?? "A256GCM";
28
33
  this.sigAlgorithm = options.sigAlgorithm;
@@ -33,24 +38,6 @@ class Aegis {
33
38
  decrypt: this.aesDecrypt.bind(this),
34
39
  };
35
40
  }
36
- get cwe() {
37
- return {
38
- encrypt: this.coseEncrypt.bind(this),
39
- decrypt: this.coseDecrypt.bind(this),
40
- };
41
- }
42
- get cws() {
43
- return {
44
- sign: this.coseSign.bind(this),
45
- verify: this.coseVerify.bind(this),
46
- };
47
- }
48
- get cwt() {
49
- return {
50
- sign: this.cwtSign.bind(this),
51
- verify: this.cwtVerify.bind(this),
52
- };
53
- }
54
41
  get jwe() {
55
42
  return {
56
43
  encrypt: this.jweEncrypt.bind(this),
@@ -80,16 +67,6 @@ class Aegis {
80
67
  if (Aegis.isJws(token)) {
81
68
  return (await this.jwsVerify(token));
82
69
  }
83
- if (Aegis.isCwt(token)) {
84
- return (await this.cwtVerify(token, options));
85
- }
86
- if (Aegis.isCwe(token)) {
87
- const decrypt = await this.coseDecrypt(token);
88
- return await this.verify(decrypt.payload);
89
- }
90
- if (Aegis.isCws(token)) {
91
- return (await this.coseVerify(token));
92
- }
93
70
  throw new errors_1.AegisError("Invalid token type", { debug: { token } });
94
71
  }
95
72
  static header(token) {
@@ -105,15 +82,6 @@ class Aegis {
105
82
  static isJwt(jwt) {
106
83
  return JwtKit_1.JwtKit.isJwt(jwt);
107
84
  }
108
- static isCwe(cose) {
109
- return CweKit_1.CweKit.isCwe(cose);
110
- }
111
- static isCws(cose) {
112
- return CwsKit_1.CwsKit.isCws(cose);
113
- }
114
- static isCwt(cwt) {
115
- return CwtKit_1.CwtKit.isCwt(cwt);
116
- }
117
85
  static decode(token) {
118
86
  if (Aegis.isJwe(token)) {
119
87
  return JweKit_1.JweKit.decode(token);
@@ -124,15 +92,6 @@ class Aegis {
124
92
  if (Aegis.isJwt(token)) {
125
93
  return JwtKit_1.JwtKit.decode(token);
126
94
  }
127
- if (Aegis.isCwt(token)) {
128
- return CwtKit_1.CwtKit.decode(token);
129
- }
130
- if (Aegis.isCwe(token)) {
131
- return CweKit_1.CweKit.decode(token);
132
- }
133
- if (Aegis.isCws(token)) {
134
- return CwsKit_1.CwsKit.decode(token);
135
- }
136
95
  throw new errors_1.AegisError("Invalid token type", { debug: { token } });
137
96
  }
138
97
  static parse(token) {
@@ -142,14 +101,18 @@ class Aegis {
142
101
  if (Aegis.isJws(token)) {
143
102
  return JwsKit_1.JwsKit.parse(token);
144
103
  }
145
- if (Aegis.isCwt(token)) {
146
- return CwtKit_1.CwtKit.parse(token);
147
- }
148
- if (Aegis.isCws(token)) {
149
- return CwsKit_1.CwsKit.parse(token);
150
- }
151
104
  throw new errors_1.AegisError("Invalid token type", { debug: { token } });
152
105
  }
106
+ static parseUserinfo(data) {
107
+ return (0, parse_userinfo_1.parseUserinfo)(data);
108
+ }
109
+ static parseIntrospection(data) {
110
+ return (0, parse_introspection_1.parseIntrospection)(data);
111
+ }
112
+ static validateClaims(claims, matchers) {
113
+ const predicate = (0, jwt_validate_1.createJwtValidate)(matchers);
114
+ (0, validate_1.validate)(claims, predicate);
115
+ }
153
116
  async aesKit(options = {}) {
154
117
  const kryptos = await this.kryptosEnc(options);
155
118
  return new aes_1.AesKit({ encryption: this.encryption, kryptos });
@@ -166,69 +129,10 @@ class Aegis {
166
129
  });
167
130
  return kit.decrypt(data);
168
131
  }
169
- async coseEncryptKit(options = {}) {
170
- const kryptos = await this.kryptosEnc(options);
171
- return new CweKit_1.CweKit({
172
- encryption: this.encryption,
173
- kryptos,
174
- logger: this.logger,
175
- });
176
- }
177
- async coseEncrypt(data, options = {}) {
178
- const kit = await this.coseEncryptKit({ encrypt: true });
179
- return kit.encrypt(data, options);
180
- }
181
- async coseDecrypt(token) {
182
- const decode = CweKit_1.CweKit.decode(token);
183
- const kit = await this.coseEncryptKit({
184
- id: decode.recipient.unprotected.kid,
185
- algorithm: decode.recipient.unprotected.alg,
186
- });
187
- return kit.decrypt(token);
188
- }
189
- async coseSignKit(options = {}) {
190
- const kryptos = await this.kryptosSig(options);
191
- return new CwsKit_1.CwsKit({
192
- kryptos,
193
- logger: this.logger,
194
- });
195
- }
196
- async coseSign(content, options = {}) {
197
- const kit = await this.coseSignKit({ sign: true });
198
- return kit.sign(content, options);
199
- }
200
- async coseVerify(token) {
201
- const decode = CwsKit_1.CwsKit.decode(token);
202
- const kit = await this.coseSignKit({
203
- id: decode.unprotected.kid,
204
- algorithm: decode.protected.alg,
205
- });
206
- return kit.verify(token);
207
- }
208
- async cwtKit(options = {}) {
209
- const kryptos = await this.kryptosSig(options);
210
- return new CwtKit_1.CwtKit({
211
- clockTolerance: this.clockTolerance,
212
- issuer: this.issuer ?? undefined,
213
- kryptos,
214
- logger: this.logger,
215
- });
216
- }
217
- async cwtSign(content, options = {}) {
218
- const kit = await this.cwtKit({ sign: true });
219
- return kit.sign(content, options);
220
- }
221
- async cwtVerify(cwt, verify = {}) {
222
- const decode = CwtKit_1.CwtKit.decode(cwt);
223
- const kit = await this.cwtKit({
224
- id: decode.unprotected.kid,
225
- algorithm: decode.protected.alg,
226
- });
227
- return kit.verify(cwt, verify);
228
- }
229
132
  async jweKit(options = {}) {
230
133
  const kryptos = await this.kryptosEnc(options);
231
134
  return new JweKit_1.JweKit({
135
+ certBindingMode: this.certBindingMode,
232
136
  encryption: this.encryption,
233
137
  kryptos,
234
138
  logger: this.logger,
@@ -248,7 +152,11 @@ class Aegis {
248
152
  }
249
153
  async jwsKit(options = {}) {
250
154
  const kryptos = await this.kryptosSig(options);
251
- return new JwsKit_1.JwsKit({ kryptos, logger: this.logger });
155
+ return new JwsKit_1.JwsKit({
156
+ certBindingMode: this.certBindingMode,
157
+ kryptos,
158
+ logger: this.logger,
159
+ });
252
160
  }
253
161
  async jwsSign(data, options = {}) {
254
162
  const kit = await this.jwsKit({ sign: true });
@@ -265,7 +173,9 @@ class Aegis {
265
173
  async jwtKit(options = {}) {
266
174
  const kryptos = await this.kryptosSig(options);
267
175
  return new JwtKit_1.JwtKit({
176
+ certBindingMode: this.certBindingMode,
268
177
  clockTolerance: this.clockTolerance,
178
+ dpopMaxSkew: this.dpopMaxSkew,
269
179
  issuer: this.issuer ?? undefined,
270
180
  kryptos,
271
181
  logger: this.logger,
@@ -304,7 +214,9 @@ class Aegis {
304
214
  algorithm: options.algorithm ?? this.encAlgorithm,
305
215
  ...(options.predicate ?? {}),
306
216
  };
307
- const kryptos = await this.amphora.find(options.id ? { id: options.id } : { ...query, use: "enc" });
217
+ const kryptos = options.id
218
+ ? await this.amphora.findById(options.id)
219
+ : await this.amphora.find({ ...query, use: "enc" });
308
220
  this.logger.debug("Kryptos found", { kryptos: kryptos.toJSON() });
309
221
  return kryptos;
310
222
  }
@@ -321,7 +233,9 @@ class Aegis {
321
233
  operations: ["verify"],
322
234
  ...(options.predicate ?? {}),
323
235
  };
324
- const kryptos = await this.amphora.find(options.id ? { id: options.id } : { ...query, use: "sig" });
236
+ const kryptos = options.id
237
+ ? await this.amphora.findById(options.id)
238
+ : await this.amphora.find({ ...query, use: "sig" });
325
239
  this.logger.debug("Kryptos found", { kryptos: kryptos.toJSON() });
326
240
  return kryptos;
327
241
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Aegis.js","sourceRoot":"","sources":["../../src/classes/Aegis.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Aegis.js","sourceRoot":"","sources":["../../src/classes/Aegis.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { IJweKit } from "../interfaces";
2
2
  import { DecodedJwe, DecryptedJwe, EncryptedJwe, JweEncryptOptions, JweKitOptions } from "../types";
3
3
  export declare class JweKit implements IJweKit {
4
+ private readonly certBindingMode;
4
5
  private readonly encryption;
5
6
  private readonly kryptos;
6
7
  private readonly logger;
@@ -1 +1 @@
1
- {"version":3,"file":"JweKit.d.ts","sourceRoot":"","sources":["../../src/classes/JweKit.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EACL,UAAU,EACV,YAAY,EAEZ,YAAY,EACZ,iBAAiB,EACjB,aAAa,EAEd,MAAM,UAAU,CAAC;AAIlB,qBAAa,MAAO,YAAW,OAAO;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAC/C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAW;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;gBAEd,OAAO,EAAE,aAAa;IAMlC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,GAAG,YAAY;IA6DpE,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY;WA8E7B,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;WAI3B,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU;IAmB7C,OAAO,CAAC,WAAW;CAuBpB"}
1
+ {"version":3,"file":"JweKit.d.ts","sourceRoot":"","sources":["../../src/classes/JweKit.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAEL,UAAU,EACV,YAAY,EAEZ,YAAY,EACZ,iBAAiB,EACjB,aAAa,EAEd,MAAM,UAAU,CAAC;AAalB,qBAAa,MAAO,YAAW,OAAO;IACpC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAC/C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAW;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;gBAEd,OAAO,EAAE,aAAa;IAOlC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,GAAG,YAAY;IA+DpE,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY;WAiH7B,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;WAc3B,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU;IAmB7C,OAAO,CAAC,WAAW;CAuBpB"}
@@ -4,12 +4,18 @@ exports.JweKit = void 0;
4
4
  const aes_1 = require("@lindorm/aes");
5
5
  const b64_1 = require("@lindorm/b64");
6
6
  const is_1 = require("@lindorm/is");
7
- const crypto_1 = require("crypto");
8
7
  const format_1 = require("#internal/constants/format");
9
8
  const errors_1 = require("../errors");
9
+ const compute_typ_header_1 = require("#internal/utils/compute-typ-header");
10
10
  const jose_header_1 = require("#internal/utils/jose-header");
11
11
  const token_header_1 = require("#internal/utils/token-header");
12
+ const resolve_cert_binding_1 = require("#internal/utils/resolve-cert-binding");
13
+ const verify_cert_binding_1 = require("#internal/utils/verify-cert-binding");
14
+ const validate_crit_1 = require("#internal/utils/validate-crit");
15
+ const JwsKit_1 = require("./JwsKit");
16
+ const JwtKit_1 = require("./JwtKit");
12
17
  class JweKit {
18
+ certBindingMode;
13
19
  encryption;
14
20
  kryptos;
15
21
  logger;
@@ -17,11 +23,12 @@ class JweKit {
17
23
  this.logger = options.logger.child(["JweKit"]);
18
24
  this.kryptos = options.kryptos;
19
25
  this.encryption = options.encryption ?? options.kryptos.encryption ?? "A256GCM";
26
+ this.certBindingMode = options.certBindingMode ?? "strict";
20
27
  }
21
28
  encrypt(data, options = {}) {
22
29
  const kit = new aes_1.AesKit({ encryption: this.encryption, kryptos: this.kryptos });
23
30
  this.logger.debug("Encrypting token", { options });
24
- const objectId = options.objectId ?? (0, crypto_1.randomUUID)();
31
+ const objectId = options.objectId;
25
32
  const prepared = kit.prepareEncryption();
26
33
  const critical = [];
27
34
  const headerOptions = {
@@ -30,7 +37,7 @@ class JweKit {
30
37
  contentType: this.contentType(data),
31
38
  ...(critical.length ? { critical } : {}),
32
39
  encryption: this.encryption,
33
- headerType: "JWE",
40
+ headerType: (0, compute_typ_header_1.computeTypHeader)(options.tokenType, "jwe"),
34
41
  initialisationVector: prepared.headerParams.publicEncryptionIv,
35
42
  jwksUri: this.kryptos.jwksUri ?? undefined,
36
43
  keyId: this.kryptos.id,
@@ -40,7 +47,8 @@ class JweKit {
40
47
  publicEncryptionJwk: prepared.headerParams.publicEncryptionJwk,
41
48
  publicEncryptionTag: prepared.headerParams.publicEncryptionTag,
42
49
  };
43
- const header = (0, jose_header_1.encodeJoseHeader)(headerOptions);
50
+ const cert = (0, resolve_cert_binding_1.resolveCertBinding)(this.kryptos, options.bindCertificate);
51
+ const header = (0, jose_header_1.encodeJoseHeader)(headerOptions, cert);
44
52
  const aad = Buffer.from(header, "ascii");
45
53
  const { authTag, content, initialisationVector } = prepared.encrypt(data, { aad });
46
54
  if (!authTag) {
@@ -60,9 +68,21 @@ class JweKit {
60
68
  const kit = new aes_1.AesKit({ encryption: this.encryption, kryptos: this.kryptos });
61
69
  this.logger.debug("Decrypting token", { token });
62
70
  const decoded = JweKit.decode(token);
63
- if (decoded.header.typ !== "JWE") {
71
+ const typ = decoded.header.typ;
72
+ if (typ !== "JWE" && !(typeof typ === "string" && typ.endsWith("+jwe"))) {
64
73
  throw new errors_1.JweError("Invalid token", {
65
- data: { typ: decoded.header.typ },
74
+ data: { typ },
75
+ });
76
+ }
77
+ if (decoded.header.zip !== undefined) {
78
+ throw new errors_1.JweError("Compressed JWE payloads are not supported", {
79
+ data: { zip: decoded.header.zip },
80
+ });
81
+ }
82
+ const critError = (0, validate_crit_1.validateCrit)(decoded.header);
83
+ if (critError) {
84
+ throw new errors_1.JweError(`Invalid crit header: ${critError}`, {
85
+ data: { crit: decoded.header.crit },
66
86
  });
67
87
  }
68
88
  if (this.kryptos.algorithm !== decoded.header.alg) {
@@ -72,6 +92,7 @@ class JweKit {
72
92
  });
73
93
  }
74
94
  const header = (0, token_header_1.parseTokenHeader)(decoded.header);
95
+ header.tokenType = (0, compute_typ_header_1.decodeTokenTypeFromTyp)(typ, "jwe");
75
96
  if (header.encryption !== this.encryption) {
76
97
  throw new errors_1.JweError("Unexpected encryption", {
77
98
  debug: { actual: header.encryption, encryption: this.encryption },
@@ -100,22 +121,48 @@ class JweKit {
100
121
  ? b64_1.B64.toBuffer(header.publicEncryptionTag)
101
122
  : undefined;
102
123
  const payload = kit.decrypt({
124
+ algorithm: header.algorithm,
103
125
  authTag,
104
126
  content,
127
+ contentType: "text/plain",
105
128
  encryption: this.encryption,
106
129
  initialisationVector,
130
+ keyId: header.keyId ?? this.kryptos.id,
107
131
  pbkdfIterations,
108
132
  pbkdfSalt,
109
133
  publicEncryptionIv,
110
134
  publicEncryptionJwk,
111
135
  publicEncryptionKey,
112
136
  publicEncryptionTag,
137
+ version: "1.0",
113
138
  }, { aad });
139
+ (0, verify_cert_binding_1.verifyCertBinding)({
140
+ header: {
141
+ x5tS256: header.x5tS256,
142
+ },
143
+ kryptos: this.kryptos,
144
+ logger: this.logger,
145
+ mode: this.certBindingMode,
146
+ });
114
147
  this.logger.debug("Token decrypted");
115
148
  return { header, payload, decoded, token };
116
149
  }
117
150
  static isJwe(jwe) {
118
- return (0, is_1.isJwe)(jwe);
151
+ if (typeof jwe !== "string")
152
+ return false;
153
+ const parts = jwe.split(".");
154
+ if (parts.length !== 5)
155
+ return false;
156
+ try {
157
+ const header = (0, jose_header_1.decodeJoseHeader)(parts[0]);
158
+ if (typeof header.alg !== "string")
159
+ return false;
160
+ const typ = header.typ;
161
+ return typ === "JWE" || (typeof typ === "string" && typ.endsWith("+jwe"));
162
+ }
163
+ catch {
164
+ return false;
165
+ }
119
166
  }
120
167
  static decode(jwe) {
121
168
  const parts = jwe.split(".");
@@ -132,10 +179,10 @@ class JweKit {
132
179
  };
133
180
  }
134
181
  contentType(input) {
135
- if ((0, is_1.isJws)(input)) {
182
+ if (JwsKit_1.JwsKit.isJws(input)) {
136
183
  return "application/jws";
137
184
  }
138
- if ((0, is_1.isJwt)(input)) {
185
+ if (JwtKit_1.JwtKit.isJwt(input)) {
139
186
  return "application/jwt";
140
187
  }
141
188
  if (input.startsWith("{") && input.endsWith("}")) {