@zuplo/cli 7.6.9 → 7.7.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 (220) hide show
  1. package/node_modules/@inquirer/checkbox/package.json +3 -3
  2. package/node_modules/@inquirer/confirm/dist/index.js +1 -1
  3. package/node_modules/@inquirer/confirm/package.json +3 -3
  4. package/node_modules/@inquirer/core/dist/lib/create-prompt.js +66 -47
  5. package/node_modules/@inquirer/core/package.json +2 -2
  6. package/node_modules/@inquirer/editor/package.json +3 -3
  7. package/node_modules/@inquirer/expand/package.json +3 -3
  8. package/node_modules/@inquirer/input/package.json +3 -3
  9. package/node_modules/@inquirer/number/package.json +3 -3
  10. package/node_modules/@inquirer/password/package.json +3 -3
  11. package/node_modules/@inquirer/rawlist/package.json +3 -3
  12. package/node_modules/@inquirer/search/package.json +3 -3
  13. package/node_modules/@inquirer/select/package.json +3 -3
  14. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/types/index.d.ts +1 -2
  15. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/types/jwe/compact/decrypt.d.ts +7 -11
  16. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/types/jwe/compact/encrypt.d.ts +13 -16
  17. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/types/jwe/flattened/decrypt.d.ts +7 -11
  18. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/types/jwe/flattened/encrypt.d.ts +16 -19
  19. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/types/jwe/general/decrypt.d.ts +10 -16
  20. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/types/jwe/general/encrypt.d.ts +18 -21
  21. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/types/jwk/embedded.d.ts +3 -1
  22. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/types/jwk/thumbprint.d.ts +4 -6
  23. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/types/jwks/local.d.ts +5 -4
  24. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/types/jwks/remote.d.ts +20 -21
  25. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/types/jws/compact/sign.d.ts +4 -4
  26. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/types/jws/compact/verify.d.ts +8 -11
  27. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/types/jws/flattened/sign.d.ts +5 -5
  28. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/types/jws/flattened/verify.d.ts +8 -11
  29. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/types/jws/general/sign.d.ts +10 -14
  30. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/types/jws/general/verify.d.ts +11 -17
  31. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/types/jwt/decrypt.d.ts +14 -11
  32. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/types/jwt/encrypt.d.ts +24 -22
  33. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/types/jwt/sign.d.ts +3 -7
  34. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/types/jwt/unsecured.d.ts +2 -6
  35. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/types/jwt/verify.d.ts +13 -6
  36. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/types/key/export.d.ts +6 -6
  37. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/types/key/generate_key_pair.d.ts +9 -14
  38. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/types/key/generate_secret.d.ts +10 -10
  39. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/types/key/import.d.ts +19 -18
  40. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/types/types.d.ts +152 -247
  41. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/types/util/base64url.d.ts +7 -7
  42. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/types/util/decode_jwt.d.ts +6 -1
  43. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/types/util/decode_protected_header.d.ts +4 -3
  44. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/types/util/errors.d.ts +29 -40
  45. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/webapi/jwe/compact/decrypt.js +1 -2
  46. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/webapi/jwe/compact/encrypt.js +9 -26
  47. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/webapi/jwe/flattened/decrypt.js +3 -3
  48. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/webapi/jwe/flattened/encrypt.js +11 -30
  49. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/webapi/jwe/general/decrypt.js +6 -6
  50. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/webapi/jwe/general/encrypt.js +33 -57
  51. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/webapi/jwk/embedded.js +3 -4
  52. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/webapi/jwk/thumbprint.js +3 -6
  53. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/webapi/jwks/local.js +16 -10
  54. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/webapi/jwks/remote.js +2 -2
  55. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/webapi/jws/compact/sign.js +2 -4
  56. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/webapi/jws/compact/verify.js +2 -2
  57. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/webapi/jws/flattened/sign.js +8 -15
  58. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/webapi/jws/flattened/verify.js +4 -14
  59. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/webapi/jws/general/sign.js +4 -11
  60. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/webapi/jws/general/verify.js +5 -7
  61. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/webapi/jwt/decrypt.js +2 -3
  62. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/webapi/jwt/encrypt.js +11 -25
  63. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/webapi/jwt/sign.js +1 -1
  64. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/webapi/jwt/unsecured.js +1 -2
  65. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/webapi/jwt/verify.js +4 -4
  66. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/webapi/key/export.js +12 -16
  67. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/webapi/key/generate_key_pair.js +4 -13
  68. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/webapi/key/generate_secret.js +1 -1
  69. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/webapi/key/import.js +5 -9
  70. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/webapi/lib/asn1.js +2 -4
  71. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/webapi/lib/buffer_utils.js +35 -0
  72. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/webapi/lib/content_encryption.js +21 -29
  73. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/webapi/lib/deflate.js +9 -19
  74. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/webapi/lib/jwe_algorithms.js +0 -4
  75. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/webapi/lib/jwe_decrypt.js +21 -54
  76. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/webapi/lib/jwe_encrypt.js +26 -59
  77. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/webapi/lib/jws_sign.js +29 -43
  78. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/webapi/lib/jws_verify.js +37 -45
  79. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/webapi/lib/jwt_claims_set.js +1 -1
  80. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/webapi/lib/key.js +119 -59
  81. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/webapi/lib/key_management.js +45 -80
  82. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/webapi/lib/{options.js → validate.js} +64 -3
  83. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/webapi/util/base64url.js +5 -19
  84. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/webapi/util/decode_jwt.js +1 -1
  85. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/webapi/util/decode_protected_header.js +1 -1
  86. package/node_modules/@modelcontextprotocol/client/node_modules/jose/package.json +1 -1
  87. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/types/index.d.ts +1 -2
  88. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/types/jwe/compact/decrypt.d.ts +7 -11
  89. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/types/jwe/compact/encrypt.d.ts +13 -16
  90. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/types/jwe/flattened/decrypt.d.ts +7 -11
  91. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/types/jwe/flattened/encrypt.d.ts +16 -19
  92. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/types/jwe/general/decrypt.d.ts +10 -16
  93. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/types/jwe/general/encrypt.d.ts +18 -21
  94. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/types/jwk/embedded.d.ts +3 -1
  95. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/types/jwk/thumbprint.d.ts +4 -6
  96. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/types/jwks/local.d.ts +5 -4
  97. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/types/jwks/remote.d.ts +20 -21
  98. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/types/jws/compact/sign.d.ts +4 -4
  99. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/types/jws/compact/verify.d.ts +8 -11
  100. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/types/jws/flattened/sign.d.ts +5 -5
  101. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/types/jws/flattened/verify.d.ts +8 -11
  102. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/types/jws/general/sign.d.ts +10 -14
  103. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/types/jws/general/verify.d.ts +11 -17
  104. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/types/jwt/decrypt.d.ts +14 -11
  105. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/types/jwt/encrypt.d.ts +24 -22
  106. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/types/jwt/sign.d.ts +3 -7
  107. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/types/jwt/unsecured.d.ts +2 -6
  108. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/types/jwt/verify.d.ts +13 -6
  109. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/types/key/export.d.ts +6 -6
  110. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/types/key/generate_key_pair.d.ts +9 -14
  111. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/types/key/generate_secret.d.ts +10 -10
  112. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/types/key/import.d.ts +19 -18
  113. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/types/types.d.ts +152 -247
  114. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/types/util/base64url.d.ts +7 -7
  115. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/types/util/decode_jwt.d.ts +6 -1
  116. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/types/util/decode_protected_header.d.ts +4 -3
  117. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/types/util/errors.d.ts +29 -40
  118. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/jwe/compact/decrypt.js +1 -2
  119. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/jwe/compact/encrypt.js +9 -26
  120. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/jwe/flattened/decrypt.js +3 -3
  121. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/jwe/flattened/encrypt.js +11 -30
  122. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/jwe/general/decrypt.js +6 -6
  123. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/jwe/general/encrypt.js +33 -57
  124. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/jwk/embedded.js +3 -4
  125. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/jwk/thumbprint.js +3 -6
  126. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/jwks/local.js +16 -10
  127. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/jwks/remote.js +2 -2
  128. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/jws/compact/sign.js +2 -4
  129. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/jws/compact/verify.js +2 -2
  130. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/jws/flattened/sign.js +8 -15
  131. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/jws/flattened/verify.js +4 -14
  132. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/jws/general/sign.js +4 -11
  133. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/jws/general/verify.js +5 -7
  134. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/jwt/decrypt.js +2 -3
  135. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/jwt/encrypt.js +11 -25
  136. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/jwt/sign.js +1 -1
  137. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/jwt/unsecured.js +1 -2
  138. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/jwt/verify.js +4 -4
  139. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/key/export.js +12 -16
  140. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/key/generate_key_pair.js +4 -13
  141. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/key/generate_secret.js +1 -1
  142. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/key/import.js +5 -9
  143. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/lib/asn1.js +2 -4
  144. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/lib/buffer_utils.js +35 -0
  145. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/lib/content_encryption.js +21 -29
  146. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/lib/deflate.js +9 -19
  147. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/lib/jwe_algorithms.js +0 -4
  148. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/lib/jwe_decrypt.js +21 -54
  149. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/lib/jwe_encrypt.js +26 -59
  150. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/lib/jws_sign.js +29 -43
  151. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/lib/jws_verify.js +37 -45
  152. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/lib/jwt_claims_set.js +1 -1
  153. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/lib/key.js +119 -59
  154. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/lib/key_management.js +45 -80
  155. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/lib/{options.js → validate.js} +64 -3
  156. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/util/base64url.js +5 -19
  157. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/util/decode_jwt.js +1 -1
  158. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/util/decode_protected_header.js +1 -1
  159. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/package.json +1 -1
  160. package/node_modules/@posthog/core/dist/posthog-core.d.ts +14 -0
  161. package/node_modules/@posthog/core/dist/posthog-core.d.ts.map +1 -1
  162. package/node_modules/@posthog/core/dist/types.d.ts +1 -0
  163. package/node_modules/@posthog/core/dist/types.d.ts.map +1 -1
  164. package/node_modules/@posthog/core/dist/utils/index.d.ts +1 -0
  165. package/node_modules/@posthog/core/dist/utils/index.d.ts.map +1 -1
  166. package/node_modules/@posthog/core/dist/utils/index.js +26 -0
  167. package/node_modules/@posthog/core/dist/utils/index.mjs +1 -0
  168. package/node_modules/@posthog/core/dist/utils/webview-app-utils.d.ts +12 -0
  169. package/node_modules/@posthog/core/dist/utils/webview-app-utils.d.ts.map +1 -0
  170. package/node_modules/@posthog/core/dist/utils/webview-app-utils.js +132 -0
  171. package/node_modules/@posthog/core/dist/utils/webview-app-utils.mjs +94 -0
  172. package/node_modules/@posthog/core/package.json +2 -2
  173. package/node_modules/@posthog/core/src/featureFlagLocalEvaluation.ts +1 -1
  174. package/node_modules/@posthog/core/src/posthog-core.ts +14 -0
  175. package/node_modules/@posthog/core/src/types.ts +1 -0
  176. package/node_modules/@posthog/core/src/utils/index.ts +1 -0
  177. package/node_modules/@posthog/core/src/utils/otlp-any-value.spec.ts +1 -1
  178. package/node_modules/@posthog/core/src/utils/type-utils.ts +4 -4
  179. package/node_modules/@posthog/core/src/utils/webview-app-utils.spec.ts +118 -0
  180. package/node_modules/@posthog/core/src/utils/webview-app-utils.ts +49 -0
  181. package/node_modules/@posthog/types/dist/feature-flags.d.ts +1 -1
  182. package/node_modules/@posthog/types/dist/feature-flags.d.ts.map +1 -1
  183. package/node_modules/@posthog/types/dist/posthog-config.d.ts +7 -1
  184. package/node_modules/@posthog/types/dist/posthog-config.d.ts.map +1 -1
  185. package/node_modules/@posthog/types/package.json +1 -1
  186. package/node_modules/@posthog/types/src/feature-flags.ts +1 -1
  187. package/node_modules/@posthog/types/src/posthog-config.ts +7 -1
  188. package/node_modules/@posthog/types/src/tree-shakeable.ts +1 -1
  189. package/node_modules/@zuplo/core/package.json +1 -1
  190. package/node_modules/@zuplo/graphql/package.json +1 -1
  191. package/node_modules/@zuplo/openapi-tools/package.json +1 -1
  192. package/node_modules/@zuplo/otel/package.json +1 -1
  193. package/node_modules/@zuplo/runtime/out/esm/{chunk-Z3IKCP3N.js → chunk-R4PTES5B.js} +93 -93
  194. package/node_modules/@zuplo/runtime/out/esm/chunk-R4PTES5B.js.map +1 -0
  195. package/node_modules/@zuplo/runtime/out/esm/index.js +1 -1
  196. package/node_modules/@zuplo/runtime/out/esm/mcp-gateway/index.js +1 -1
  197. package/node_modules/@zuplo/runtime/package.json +1 -1
  198. package/package.json +11 -11
  199. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/webapi/lib/base64.js +0 -20
  200. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/webapi/lib/crypto_key.js +0 -27
  201. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/webapi/lib/helpers.js +0 -45
  202. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/webapi/lib/invalid_key_input.js +0 -12
  203. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/webapi/lib/is_key_like.js +0 -19
  204. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/webapi/lib/jwk_metadata.js +0 -19
  205. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/webapi/lib/jwk_to_key.js +0 -10
  206. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/webapi/lib/key_options.js +0 -8
  207. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/webapi/lib/signing.js +0 -22
  208. package/node_modules/@modelcontextprotocol/client/node_modules/jose/dist/webapi/lib/type_checks.js +0 -30
  209. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/lib/base64.js +0 -20
  210. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/lib/crypto_key.js +0 -27
  211. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/lib/helpers.js +0 -45
  212. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/lib/invalid_key_input.js +0 -12
  213. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/lib/is_key_like.js +0 -19
  214. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/lib/jwk_metadata.js +0 -19
  215. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/lib/jwk_to_key.js +0 -10
  216. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/lib/key_options.js +0 -8
  217. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/lib/signing.js +0 -22
  218. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/lib/type_checks.js +0 -30
  219. package/node_modules/@zuplo/runtime/out/esm/chunk-Z3IKCP3N.js.map +0 -1
  220. /package/node_modules/@zuplo/runtime/out/esm/{chunk-Z3IKCP3N.js.LEGAL.txt → chunk-R4PTES5B.js.LEGAL.txt} +0 -0
@@ -1,12 +1,10 @@
1
1
  import { decrypt, generateCek } from "./content_encryption.js";
2
- import { decodeBase64url, encodeBase64url, parseJoseHeader } from "./helpers.js";
2
+ import { decodeBase64url, encodeBase64url, parseJoseHeader, isDisjoint, isObject, validateCrit, validateAlgorithms, JWE_RECOGNIZED } from "./validate.js";
3
3
  import { JOSEAlgNotAllowed, JOSENotSupported, JWEInvalid } from "../util/errors.js";
4
- import { isDisjoint, isObject } from "./type_checks.js";
5
4
  import { decryptKeyManagement } from "./key_management.js";
6
- import { concat, decoder, encode } from "./buffer_utils.js";
7
- import { validateCrit, validateAlgorithms, JWE_RECOGNIZED } from "./options.js";
5
+ import { decoder } from "./buffer_utils.js";
8
6
  import { prepareKey } from "./key.js";
9
- import { JWE, invalidJWEKeyManagementMode, isJWECEKTransport, jweAlgorithm, jweEncryption } from "./jwe_algorithms.js";
7
+ import { JWE, isJWECEKTransport, jweAlgorithm, jweEncryption } from "./jwe_algorithms.js";
10
8
  import { decompress, validateZip } from "./deflate.js";
11
9
  function snapshotSharedJWE(jwe) {
12
10
  const { aad, ciphertext, iv, protected: encodedProtected, tag, unprotected } = jwe;
@@ -44,10 +42,6 @@ function snapshotRecipientJWE(recipient) {
44
42
  ]));
45
43
  } else
46
44
  header = inputHeader;
47
- } catch (error) {
48
- return [void 0, headerAlg, error];
49
- }
50
- try {
51
45
  const { encrypted_key: encryptedKey } = recipient;
52
46
  return [{ encrypted_key: encryptedKey, header }, headerAlg];
53
47
  } catch (error) {
@@ -66,20 +60,14 @@ function checkRecipient(jwe) {
66
60
  function shareJWE(jwe) {
67
61
  const { protected: encodedProtected, ciphertext, iv, tag, aad } = jwe;
68
62
  let parsedProt;
69
- encodedProtected !== void 0 && (parsedProt = parseJoseHeader(encodedProtected, JWEInvalid, "JWE Protected Header is invalid"));
70
- const protectedHeader = encodedProtected !== void 0 ? encode(encodedProtected) : new Uint8Array();
71
- return [
63
+ return encodedProtected !== void 0 && (parsedProt = parseJoseHeader(encodedProtected, JWEInvalid, "JWE Protected Header is invalid")), [
72
64
  parsedProt,
73
65
  decodeBase64url(ciphertext, "ciphertext", JWEInvalid),
74
66
  iv !== void 0 ? decodeBase64url(iv, "iv", JWEInvalid) : void 0,
75
67
  tag !== void 0 ? decodeBase64url(tag, "tag", JWEInvalid) : void 0,
76
- aad !== void 0 ? concat(protectedHeader, encode("."), encodeBase64url(aad, "aad", JWEInvalid)) : protectedHeader
68
+ encodeBase64url((encodedProtected ?? "") + (aad !== void 0 ? `.${aad}` : ""), "aad", JWEInvalid)
77
69
  ];
78
70
  }
79
- function decryptResult(jwe, decrypted) {
80
- const [plaintext, parsedProt, key, resolvedKey] = decrypted, { protected: encodedProtected, aad, unprotected, header } = jwe, result = { plaintext };
81
- return encodedProtected !== void 0 && (result.protectedHeader = parsedProt), aad !== void 0 && (result.additionalAuthenticatedData = decodeBase64url(aad, "aad", JWEInvalid)), unprotected !== void 0 && (result.sharedUnprotectedHeader = unprotected), header !== void 0 && (result.unprotectedHeader = header), resolvedKey ? { ...result, key } : result;
82
- }
83
71
  function prepareDecrypt(options) {
84
72
  return [
85
73
  options && validateAlgorithms("keyManagementAlgorithms", options.keyManagementAlgorithms),
@@ -89,8 +77,8 @@ function prepareDecrypt(options) {
89
77
  options?.maxDecompressedLength
90
78
  ];
91
79
  }
92
- async function decryptRecipient(jwe, token, shared, key) {
93
- const [parsedProt] = token, { header, unprotected } = jwe;
80
+ async function decryptJWE(jwe, shared, key, token = shareJWE(jwe)) {
81
+ const [parsedProt, ciphertext, iv, tag, additionalData] = token, { header, unprotected, aad } = jwe;
94
82
  let joseHeader;
95
83
  if (header !== void 0 || unprotected !== void 0) {
96
84
  if (!isDisjoint(parsedProt, header, unprotected))
@@ -98,10 +86,7 @@ async function decryptRecipient(jwe, token, shared, key) {
98
86
  joseHeader = { ...parsedProt, ...header, ...unprotected };
99
87
  } else
100
88
  joseHeader = parsedProt ?? {};
101
- return decryptRecipientCore(jwe, token, shared, key, joseHeader);
102
- }
103
- async function decryptRecipientCore(jwe, token, shared, key, joseHeader) {
104
- const [keyManagementAlgorithms, contentEncryptionAlgorithms, crit, maxPBES2Count, maxDecompressedLength] = shared, [parsedProt, ciphertext, iv, tag, additionalData] = token, { encrypted_key: encodedKey } = jwe;
89
+ const [keyManagementAlgorithms, contentEncryptionAlgorithms, crit, maxPBES2Count, maxDecompressedLength] = shared, { encrypted_key: encodedKey } = jwe;
105
90
  validateCrit(JWEInvalid, JWE_RECOGNIZED, crit, parsedProt, joseHeader), validateZip(joseHeader, parsedProt);
106
91
  const { alg, enc } = joseHeader;
107
92
  if (typeof alg != "string" || !alg)
@@ -140,22 +125,7 @@ async function decryptRecipientCore(jwe, token, shared, key, joseHeader) {
140
125
  typeof key == "function" && (key = await key(parsedProt, jwe), resolvedKey = !0);
141
126
  const algEntry = selected ?? jweAlgorithm(alg);
142
127
  isJWECEKTransport(algEntry) && encryptedKey === void 0 && (encryptedKey = new Uint8Array());
143
- let k;
144
- const mode = algEntry.mode;
145
- switch (mode) {
146
- case "direct-encryption":
147
- k = await prepareKey(encEntry, key, "decrypt");
148
- break;
149
- case "direct-key-agreement":
150
- case "key-wrapping":
151
- case "key-encryption":
152
- case "key-agreement-with-key-wrapping":
153
- case "integrated-encryption":
154
- k = await prepareKey(algEntry, key, "decrypt");
155
- break;
156
- default:
157
- invalidJWEKeyManagementMode(mode);
158
- }
128
+ const k = await prepareKey(algEntry.mode === "direct-encryption" ? encEntry : algEntry, key, "decrypt");
159
129
  let plaintext;
160
130
  if (algEntry.mode === "integrated-encryption")
161
131
  plaintext = await algEntry.decrypt(k, encryptedKey, ciphertext, additionalData, parsedProt, joseHeader);
@@ -181,10 +151,16 @@ async function decryptRecipientCore(jwe, token, shared, key, joseHeader) {
181
151
  throw cause instanceof JWEInvalid ? cause : new JWEInvalid("Failed to decompress plaintext", { cause });
182
152
  });
183
153
  }
184
- return [plaintext, parsedProt, k, resolvedKey];
185
- }
186
- async function decryptJWE(jwe, shared, key) {
187
- return decryptRecipient(jwe, shareJWE(jwe), shared, key);
154
+ return {
155
+ plaintext,
156
+ ...parsedProt && { protectedHeader: parsedProt },
157
+ ...aad !== void 0 && {
158
+ additionalAuthenticatedData: decodeBase64url(aad, "aad", JWEInvalid)
159
+ },
160
+ ...unprotected && { sharedUnprotectedHeader: unprotected },
161
+ ...header && { unprotectedHeader: header },
162
+ ...resolvedKey && { key: k }
163
+ };
188
164
  }
189
165
  async function decryptCompact(jwe, shared, key) {
190
166
  if (jwe instanceof Uint8Array && (jwe = decoder.decode(jwe)), typeof jwe != "string")
@@ -192,27 +168,18 @@ async function decryptCompact(jwe, shared, key) {
192
168
  const { 0: protectedHeader, 1: encryptedKey, 2: iv, 3: ciphertext, 4: tag, length } = jwe.split(".");
193
169
  if (length !== 5)
194
170
  throw new JWEInvalid("Invalid Compact JWE");
195
- const flattened = {
171
+ return decryptJWE({
196
172
  ciphertext,
197
173
  iv: iv || void 0,
198
174
  protected: protectedHeader,
199
175
  tag: tag || void 0,
200
176
  encrypted_key: encryptedKey || void 0
201
- }, parsedProt = parseJoseHeader(protectedHeader, JWEInvalid, "JWE Protected Header is invalid"), protectedBytes = encode(protectedHeader), token = [
202
- parsedProt,
203
- decodeBase64url(ciphertext, "ciphertext", JWEInvalid),
204
- iv ? decodeBase64url(iv, "iv", JWEInvalid) : void 0,
205
- tag ? decodeBase64url(tag, "tag", JWEInvalid) : void 0,
206
- protectedBytes
207
- ];
208
- return decryptRecipientCore(flattened, token, shared, key, parsedProt);
177
+ }, shared, key);
209
178
  }
210
179
  export {
211
180
  checkRecipient,
212
181
  decryptCompact,
213
182
  decryptJWE,
214
- decryptRecipient,
215
- decryptResult,
216
183
  prepareDecrypt,
217
184
  shareJWE,
218
185
  snapshotRecipientJWE,
@@ -1,21 +1,22 @@
1
1
  import { encode as b64u } from "../util/base64url.js";
2
- import { checkCekLength, encrypt, generateCek } from "./content_encryption.js";
2
+ import { encrypt } from "./content_encryption.js";
3
3
  import { encryptKeyManagement } from "./key_management.js";
4
4
  import { JWEInvalid } from "../util/errors.js";
5
- import { assertUint8Array, isDisjoint, isObject } from "./type_checks.js";
6
- import { concat, encode } from "./buffer_utils.js";
7
- import { serializeJoseHeader, validateCrit, validateCritDuplicates, JWE_RECOGNIZED } from "./options.js";
5
+ import { assertUint8Array, isDisjoint, isObject, serializeJoseHeader, validateCrit, validateCritDuplicates, JWE_RECOGNIZED } from "./validate.js";
6
+ import { encode } from "./buffer_utils.js";
8
7
  import { prepareKey } from "./key.js";
9
- import { JWE, invalidJWEKeyManagementMode, isJWECEKTransport, jweAlgorithm, jweEncryption } from "./jwe_algorithms.js";
8
+ import { JWE, jweAlgorithm, jweEncryption } from "./jwe_algorithms.js";
10
9
  import { compress, validateZip } from "./deflate.js";
11
- import { unprotected } from "./helpers.js";
12
10
  function checkDisjoint(protectedHeader, unprotectedHeader, sharedUnprotectedHeader) {
13
11
  if (!isDisjoint(protectedHeader, unprotectedHeader, sharedUnprotectedHeader))
14
12
  throw new JWEInvalid("JWE Protected, JWE Shared Unprotected and JWE Per-Recipient Header Parameter names must be disjoint");
15
13
  }
16
- function checkEncryptHeaders(input) {
14
+ function checkEncryptHeaders(input, options, sharedHeadersNormalized = !1) {
15
+ if (!input[1] && !input[2] && !input[3])
16
+ throw new JWEInvalid("either setProtectedHeader, setUnprotectedHeader, or sharedUnprotectedHeader must be called before #encrypt()");
17
+ options !== void 0 && (input[8] = options?.crit);
17
18
  let [, protectedHeader, unprotectedHeader, sharedUnprotectedHeader, aad, cek, iv, keyManagementParameters, crit] = input;
18
- if (aad !== void 0 && assertUint8Array(aad, "JWE Additional Authenticated Data"), cek !== void 0 && assertUint8Array(cek, "JWE Content Encryption Key"), iv !== void 0 && assertUint8Array(iv, "JWE Initialization Vector"), protectedHeader !== void 0 && (protectedHeader = serializeJoseHeader(JWEInvalid, protectedHeader)[0], input[1] = protectedHeader), unprotectedHeader !== void 0 && (unprotectedHeader = serializeJoseHeader(JWEInvalid, unprotectedHeader)[0], input[2] = unprotectedHeader), sharedUnprotectedHeader !== void 0 && (sharedUnprotectedHeader = serializeJoseHeader(JWEInvalid, sharedUnprotectedHeader)[0], input[3] = sharedUnprotectedHeader), keyManagementParameters !== void 0 && !isObject(keyManagementParameters))
19
+ if (aad !== void 0 && assertUint8Array(aad, "JWE Additional Authenticated Data"), cek !== void 0 && assertUint8Array(cek, "JWE Content Encryption Key"), iv !== void 0 && assertUint8Array(iv, "JWE Initialization Vector"), !sharedHeadersNormalized && protectedHeader !== void 0 && (protectedHeader = serializeJoseHeader(JWEInvalid, protectedHeader)[0], input[1] = protectedHeader), unprotectedHeader !== void 0 && (unprotectedHeader = serializeJoseHeader(JWEInvalid, unprotectedHeader)[0], input[2] = unprotectedHeader), !sharedHeadersNormalized && sharedUnprotectedHeader !== void 0 && (sharedUnprotectedHeader = serializeJoseHeader(JWEInvalid, sharedUnprotectedHeader)[0], input[3] = sharedUnprotectedHeader), keyManagementParameters !== void 0 && !isObject(keyManagementParameters))
19
20
  throw new TypeError("JWE Key Management Parameters must be an object");
20
21
  checkDisjoint(protectedHeader, unprotectedHeader, sharedUnprotectedHeader);
21
22
  const joseHeader = {
@@ -27,82 +28,48 @@ function checkEncryptHeaders(input) {
27
28
  const { alg, enc } = joseHeader;
28
29
  if (typeof alg != "string" || !alg)
29
30
  throw new JWEInvalid('JWE "alg" (Algorithm) Header Parameter missing or invalid');
30
- if (JWE[alg]?.mode === "integrated-encryption") {
31
+ const algEntry = JWE[alg];
32
+ if (algEntry?.mode === "integrated-encryption") {
31
33
  if (enc !== void 0)
32
34
  throw new JWEInvalid('JWE "enc" (Encryption Algorithm) Header Parameter must not be present for integrated encryption');
33
35
  if (cek !== void 0)
34
36
  throw new TypeError(`setContentEncryptionKey cannot be called with JWE "alg" (Algorithm) Header ${alg}`);
35
37
  if (iv !== void 0)
36
38
  throw new TypeError(`setInitializationVector cannot be called with JWE "alg" (Algorithm) Header ${alg}`);
37
- return [joseHeader, alg, void 0, void 0];
39
+ return [joseHeader, void 0, algEntry];
38
40
  }
39
41
  if (typeof enc != "string" || !enc)
40
42
  throw new JWEInvalid('JWE "enc" (Encryption Algorithm) Header Parameter missing or invalid');
41
- return [joseHeader, alg, enc, jweEncryption(enc)];
42
- }
43
- function checkProducedEncryptedKey(encryptedKey) {
44
- if (!(encryptedKey instanceof Uint8Array) || !encryptedKey.byteLength)
45
- throw new TypeError("JWE key management algorithm did not produce an Encrypted Key");
46
- }
47
- async function transportCek(algEntry, encEntry, key, providedCek, joseHeader, providedParameters) {
48
- const preparedKey = await prepareKey(algEntry, key, "encrypt"), cek = providedCek ?? generateCek(encEntry);
49
- checkCekLength(cek, encEntry.cekBits);
50
- const [, encryptedKey, parameters] = await encryptKeyManagement(algEntry, encEntry, preparedKey, joseHeader, cek, providedParameters);
51
- return checkProducedEncryptedKey(encryptedKey), [cek, encryptedKey, parameters];
43
+ return [joseHeader, jweEncryption(enc), algEntry];
52
44
  }
53
- async function encryptJWE(input, checked, key, resolvedAlgEntry) {
54
- const [joseHeader, alg, , encEntry] = checked, [inputPlaintext, inputProtectedHeader, inputUnprotectedHeader, sharedUnprotectedHeader, aad, providedCek, inputIv, keyManagementParameters, , unprotectedParameters] = input;
45
+ async function encryptJWE(input, checked, key) {
46
+ const [joseHeader, encEntry, selected] = checked, [inputPlaintext, inputProtectedHeader, inputUnprotectedHeader, sharedUnprotectedHeader, aad, providedCek, inputIv, keyManagementParameters, , unprotectedParameters] = input;
55
47
  let protectedHeader = inputProtectedHeader, unprotectedHeader = inputUnprotectedHeader;
56
- const algEntry = resolvedAlgEntry ?? jweAlgorithm(alg);
57
- if (providedCek !== void 0 && !isJWECEKTransport(algEntry))
58
- throw new TypeError(`setContentEncryptionKey cannot be called with JWE "alg" (Algorithm) Header ${alg}`);
59
- let encryptedKey, parameters, cek, integratedKey;
60
- const mode = algEntry.mode;
61
- switch (mode) {
62
- case "direct-encryption":
63
- cek = await prepareKey(encEntry, key, "encrypt");
64
- break;
65
- case "direct-key-agreement": {
66
- const preparedKey = await prepareKey(algEntry, key, "encrypt");
67
- [cek, , parameters] = await encryptKeyManagement(algEntry, encEntry, preparedKey, joseHeader, void 0, keyManagementParameters);
68
- break;
69
- }
70
- case "key-wrapping":
71
- case "key-encryption":
72
- case "key-agreement-with-key-wrapping":
73
- [cek, encryptedKey, parameters] = await transportCek(algEntry, encEntry, key, providedCek, joseHeader, keyManagementParameters);
74
- break;
75
- case "integrated-encryption":
76
- integratedKey = await prepareKey(algEntry, key, "encrypt");
77
- break;
78
- default:
79
- invalidJWEKeyManagementMode(mode);
80
- }
81
- parameters && (unprotectedParameters ? unprotectedHeader = unprotectedHeader ? { ...unprotectedHeader, ...parameters } : parameters : protectedHeader = protectedHeader ? { ...protectedHeader, ...parameters } : parameters, checkDisjoint(protectedHeader, unprotectedHeader, sharedUnprotectedHeader));
82
- let protectedHeaderS, protectedHeaderB;
83
- protectedHeader ? (protectedHeaderS = b64u(JSON.stringify(protectedHeader)), protectedHeaderB = encode(protectedHeaderS)) : (protectedHeaderS = "", protectedHeaderB = new Uint8Array());
84
- let additionalData, aadMember;
85
- aad?.byteLength ? (aadMember = b64u(aad), additionalData = concat(protectedHeaderB, encode("."), encode(aadMember))) : additionalData = protectedHeaderB;
48
+ const algEntry = selected ?? jweAlgorithm(joseHeader.alg);
49
+ let encryptedKey, parameters, cek;
50
+ algEntry.mode === "integrated-encryption" ? cek = await prepareKey(algEntry, key, "encrypt") : [cek, encryptedKey, parameters] = await encryptKeyManagement(algEntry, encEntry, key, joseHeader, providedCek, keyManagementParameters), parameters && (unprotectedParameters ? unprotectedHeader = unprotectedHeader ? { ...unprotectedHeader, ...parameters } : parameters : protectedHeader = protectedHeader ? { ...protectedHeader, ...parameters } : parameters, checkDisjoint(protectedHeader, unprotectedHeader, sharedUnprotectedHeader));
51
+ const protectedHeaderS = protectedHeader ? b64u(JSON.stringify(protectedHeader)) : "", aadMember = aad?.byteLength ? b64u(aad) : void 0, additionalData = encode(aadMember ? `${protectedHeaderS}.${aadMember}` : protectedHeaderS);
86
52
  let plaintext = inputPlaintext;
87
53
  joseHeader.zip === "DEF" && (plaintext = await compress(plaintext).catch((cause) => {
88
54
  throw new JWEInvalid("Failed to compress plaintext", { cause });
89
55
  }));
90
56
  let ciphertext, tag, iv;
91
- algEntry.mode === "integrated-encryption" ? [encryptedKey, ciphertext] = await algEntry.encrypt(integratedKey, plaintext, additionalData, protectedHeader, joseHeader, keyManagementParameters) : { ciphertext, tag, iv } = await encrypt(encEntry, plaintext, cek, inputIv, additionalData);
57
+ algEntry.mode === "integrated-encryption" ? [encryptedKey, ciphertext] = await algEntry.encrypt(cek, plaintext, additionalData, protectedHeader, joseHeader, keyManagementParameters) : { ciphertext, tag, iv } = await encrypt(encEntry, plaintext, cek, inputIv, additionalData);
92
58
  const jwe = {
93
59
  ciphertext: b64u(ciphertext)
94
60
  };
95
61
  return iv && (jwe.iv = b64u(iv)), tag && (jwe.tag = b64u(tag)), encryptedKey?.byteLength && (jwe.encrypted_key = b64u(encryptedKey)), aadMember && (jwe.aad = aadMember), protectedHeader && (jwe.protected = protectedHeaderS), sharedUnprotectedHeader && (jwe.unprotected = sharedUnprotectedHeader), unprotectedHeader && (jwe.header = unprotectedHeader), jwe;
96
62
  }
97
63
  async function createJWE(input, key, options) {
98
- if (!input[1] && !input[2] && !input[3])
99
- throw new JWEInvalid("either setProtectedHeader, setUnprotectedHeader, or sharedUnprotectedHeader must be called before #encrypt()");
100
- return options !== void 0 && (input[8] = options?.crit, input[9] = options ? unprotected in options : !1), encryptJWE(input, checkEncryptHeaders(input), key);
64
+ return encryptJWE(input, checkEncryptHeaders(input, options), key);
65
+ }
66
+ function compactJWE(jwe) {
67
+ return [jwe.protected, jwe.encrypted_key, jwe.iv, jwe.ciphertext, jwe.tag].join(".");
101
68
  }
102
69
  export {
103
70
  checkDisjoint,
104
71
  checkEncryptHeaders,
72
+ compactJWE,
105
73
  createJWE,
106
- encryptJWE,
107
- transportCek
74
+ encryptJWE
108
75
  };
@@ -1,58 +1,44 @@
1
1
  import { encode as b64u } from "../util/base64url.js";
2
- import { sign } from "./signing.js";
3
2
  import { jwsAlgorithm } from "./jws_algorithms.js";
4
- import { isDisjoint } from "./type_checks.js";
3
+ import { isDisjoint, serializeJoseHeader, validateB64, validateCrit, validateCritDuplicates, JWS_RECOGNIZED } from "./validate.js";
5
4
  import { JWSInvalid } from "../util/errors.js";
6
- import { concat, encode } from "./buffer_utils.js";
7
- import { serializeJoseHeader, validateB64, validateCrit, validateCritDuplicates, JWS_RECOGNIZED } from "./options.js";
8
- import { prepareKey } from "./key.js";
9
- function serializeProtectedHeader(protectedHeader) {
10
- if (protectedHeader === void 0)
11
- return [void 0, ""];
12
- const normalized = serializeJoseHeader(JWSInvalid, protectedHeader);
13
- return [normalized[0], b64u(normalized[1])];
14
- }
15
- function validateSignatureHeader(protectedHeader, joseHeader, crit) {
16
- return validateCritDuplicates(JWSInvalid, protectedHeader), validateB64(protectedHeader, validateCrit(JWSInvalid, JWS_RECOGNIZED, crit, protectedHeader, joseHeader));
17
- }
18
- function signatureAlgorithm(joseHeader) {
19
- const alg = joseHeader.alg;
20
- if (typeof alg != "string" || !alg)
21
- throw new JWSInvalid('JWS "alg" (Algorithm) Header Parameter missing or invalid');
22
- return jwsAlgorithm(alg);
23
- }
24
- async function signSignature(protectedHeader, payload, entry, key) {
25
- const data = concat(encode(protectedHeader), encode("."), payload), k = await prepareKey(entry, key, "sign");
26
- return b64u(await sign(entry, k, data));
27
- }
28
- async function createSignature(input, key, assertB64) {
29
- let { protectedHeader, unprotectedHeader } = input, protectedHeaderString;
30
- if ([protectedHeader, protectedHeaderString] = serializeProtectedHeader(protectedHeader), unprotectedHeader !== void 0 && (unprotectedHeader = serializeJoseHeader(JWSInvalid, unprotectedHeader)[0]), !protectedHeader && !unprotectedHeader)
5
+ import { concat, encode, encoder } from "./buffer_utils.js";
6
+ import { prepareKey, rawKey, checkModulusLength } from "./key.js";
7
+ async function createSignature(input, key, rejectUnencoded) {
8
+ let [payload, protectedHeader, unprotectedHeader, crit] = input, protectedHeaderString = "";
9
+ if (protectedHeader !== void 0) {
10
+ const normalized = serializeJoseHeader(JWSInvalid, protectedHeader);
11
+ protectedHeader = normalized[0], protectedHeaderString = b64u(normalized[1]);
12
+ }
13
+ if (unprotectedHeader !== void 0 && (unprotectedHeader = serializeJoseHeader(JWSInvalid, unprotectedHeader)[0]), !protectedHeader && !unprotectedHeader)
31
14
  throw new JWSInvalid("either setProtectedHeader or setUnprotectedHeader must be called before #sign()");
32
15
  if (!isDisjoint(protectedHeader, unprotectedHeader))
33
16
  throw new JWSInvalid("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");
34
- const joseHeader = { ...protectedHeader, ...unprotectedHeader }, b64 = validateSignatureHeader(protectedHeader, joseHeader, input.crit);
35
- assertB64?.(b64);
36
- const entry = signatureAlgorithm(joseHeader);
37
- let payloadS, payloadB;
17
+ const joseHeader = { ...protectedHeader, ...unprotectedHeader };
18
+ validateCritDuplicates(JWSInvalid, protectedHeader);
19
+ const b64 = validateB64(protectedHeader, validateCrit(JWSInvalid, JWS_RECOGNIZED, crit, protectedHeader, joseHeader));
20
+ b64 || rejectUnencoded?.();
21
+ const { alg } = joseHeader;
22
+ if (typeof alg != "string" || !alg)
23
+ throw new JWSInvalid('JWS "alg" (Algorithm) Header Parameter missing or invalid');
24
+ const entry = jwsAlgorithm(alg);
25
+ let payloadS = "", payloadB = payload, data;
38
26
  if (b64) {
39
- const encoded = input.encoded ??= [];
40
- encoded[0] ??= b64u(input.payload), encoded[1] ??= encode(encoded[0]), payloadS = encoded[0], payloadB = encoded[1];
41
- } else
42
- payloadB = input.payload, payloadS = "";
27
+ const encoded = input[4];
28
+ encoded ? (payloadS = encoded[0] ??= b64u(payload), payloadB = encoded[1] ??= encode(payloadS)) : (payloadS = b64u(payload), data = encoder.encode(`${protectedHeaderString}.${payloadS}`));
29
+ }
30
+ data ??= concat(encode(protectedHeaderString), encode("."), payloadB);
31
+ const k = await rawKey(await prepareKey(entry, key, "sign"), entry.subtle, "sign");
32
+ entry.minRsaBits && checkModulusLength(entry.alg, k);
43
33
  const jws = {
44
- signature: await signSignature(protectedHeaderString, payloadB, entry, key),
34
+ signature: b64u(new Uint8Array(await crypto.subtle.sign(entry.signing, k, data))),
45
35
  payload: payloadS
46
36
  };
47
37
  return protectedHeader && (jws.protected = protectedHeaderString), unprotectedHeader && (jws.header = unprotectedHeader), [jws, b64];
48
38
  }
49
- async function createCompactSignature(payload, inputProtectedHeader, inputCrit, key, rejectUnencoded) {
50
- const [protectedHeader, protectedHeaderString] = serializeProtectedHeader(inputProtectedHeader);
51
- if (!protectedHeader)
52
- throw new JWSInvalid("either setProtectedHeader or setUnprotectedHeader must be called before #sign()");
53
- validateSignatureHeader(protectedHeader, protectedHeader, inputCrit) || rejectUnencoded();
54
- const entry = signatureAlgorithm(protectedHeader), encodedPayload = b64u(payload), signature = await signSignature(protectedHeaderString, encode(encodedPayload), entry, key);
55
- return `${protectedHeaderString}.${encodedPayload}.${signature}`;
39
+ async function createCompactSignature(payload, protectedHeader, crit, key, rejectUnencoded) {
40
+ const [jws] = await createSignature([payload, protectedHeader, void 0, crit], key, rejectUnencoded);
41
+ return `${jws.protected}.${jws.payload}.${jws.signature}`;
56
42
  }
57
43
  export {
58
44
  createCompactSignature,
@@ -1,46 +1,30 @@
1
- import { verify } from "./signing.js";
2
1
  import { jwsAlgorithm } from "./jws_algorithms.js";
3
2
  import { JOSEAlgNotAllowed, JWSInvalid, JWSSignatureVerificationFailed } from "../util/errors.js";
4
3
  import { concat, decoder, encoder, encode } from "./buffer_utils.js";
5
- import { decodeBase64url, encodeBase64url, parseJoseHeader } from "./helpers.js";
6
- import { isDisjoint, isObject } from "./type_checks.js";
7
- import { validateB64, validateCrit, validateAlgorithms, JWS_RECOGNIZED } from "./options.js";
8
- import { prepareKey } from "./key.js";
4
+ import { decodeBase64url, encodeBase64url, parseJoseHeader, isDisjoint, isObject, validateB64, validateCrit, validateAlgorithms, JWS_RECOGNIZED } from "./validate.js";
5
+ import { prepareKey, rawKey, checkModulusLength } from "./key.js";
9
6
  function snapshotJws(jws, sharedPayload) {
10
7
  const encodedProtected = jws.protected, inputHeader = jws.header, header = isObject(inputHeader) ? { ...inputHeader } : inputHeader;
11
8
  let payload = sharedPayload ? sharedPayload[0] : jws.payload;
12
9
  !sharedPayload && payload instanceof Uint8Array && (payload = new Uint8Array(payload));
13
10
  const signature = jws.signature, snapshot = { payload, signature };
14
- return encodedProtected !== void 0 && (snapshot.protected = encodedProtected), inputHeader !== void 0 && (snapshot.header = header), snapshot;
15
- }
16
- function verifyResult(jws, verified) {
17
- const [payload, parsedProt, , key, resolvedKey] = verified, result = { payload };
18
- return jws.protected !== void 0 && (result.protectedHeader = parsedProt), jws.header !== void 0 && (result.unprotectedHeader = jws.header), resolvedKey ? { ...result, key } : result;
11
+ if (encodedProtected !== void 0 && (snapshot.protected = encodedProtected), inputHeader !== void 0 && (snapshot.header = header), encodedProtected === void 0 && header === void 0)
12
+ throw new JWSInvalid('Flattened JWS must have either of the "protected" or "header" members');
13
+ if (encodedProtected !== void 0 && typeof encodedProtected != "string")
14
+ throw new JWSInvalid("JWS Protected Header incorrect type");
15
+ if (payload === void 0)
16
+ throw new JWSInvalid("JWS Payload missing");
17
+ if (typeof signature != "string")
18
+ throw new JWSInvalid("JWS Signature missing or incorrect type");
19
+ if (header !== void 0 && !isObject(header))
20
+ throw new JWSInvalid("JWS Unprotected Header incorrect type");
21
+ return snapshot;
19
22
  }
20
23
  function prepareVerify(options) {
21
24
  return [options && validateAlgorithms("algorithms", options.algorithms), options?.crit];
22
25
  }
23
- function parseProtectedHeader(encodedProtected, parsedProtected = encodedProtected === void 0 ? {} : parseJoseHeader(encodedProtected, JWSInvalid, "JWS Protected Header is invalid")) {
24
- return parsedProtected;
25
- }
26
- function validateJwsHeaders(parsedProt, joseHeader, shared) {
27
- const b64 = validateB64(parsedProt, validateCrit(JWSInvalid, JWS_RECOGNIZED, shared[1], parsedProt, joseHeader)), alg = joseHeader.alg;
28
- if (typeof alg != "string" || !alg)
29
- throw new JWSInvalid('JWS "alg" (Algorithm) Header Parameter missing or invalid');
30
- if (shared[0] && !shared[0].has(alg))
31
- throw new JOSEAlgNotAllowed('"alg" (Algorithm) Header Parameter value not allowed');
32
- return [b64, alg];
33
- }
34
- function parseJwsHeaders(encodedProtected, header, shared, parsedProtected) {
35
- const parsedProt = parseProtectedHeader(encodedProtected, parsedProtected);
36
- let joseHeader;
37
- if (header !== void 0) {
38
- if (!isDisjoint(parsedProt, header))
39
- throw new JWSInvalid("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");
40
- joseHeader = { ...parsedProt, ...header };
41
- } else
42
- joseHeader = parsedProt;
43
- return [parsedProt, joseHeader, ...validateJwsHeaders(parsedProt, joseHeader, shared)];
26
+ function parseProtectedHeader(encodedProtected) {
27
+ return encodedProtected === void 0 ? {} : parseJoseHeader(encodedProtected, JWSInvalid, "JWS Protected Header is invalid");
44
28
  }
45
29
  function encodeJsonUnencodedPayload(payload) {
46
30
  const invalid = /[\p{Cs}\p{Cn}]/u.exec(payload)?.[0];
@@ -55,23 +39,34 @@ function encodeCompactUnencodedPayload(payload) {
55
39
  throw new JWSInvalid("JWS Compact Serialization payload must use only ASCII characters");
56
40
  }
57
41
  }
58
- async function verifyPrepared(jws, shared, key, encodedProtected, parsedProt, alg, signingPayload) {
59
- let resolvedKey = !1;
60
- typeof key == "function" && (key = await key(parsedProt, jws), resolvedKey = !0);
61
- const b64 = typeof signingPayload == "string", entry = jwsAlgorithm(alg), data = concat(encodedProtected !== void 0 ? encode(encodedProtected) : new Uint8Array(), encode("."), b64 ? shared[2] ??= encodeBase64url(signingPayload, "payload", JWSInvalid) : signingPayload), signature = decodeBase64url(jws.signature, "signature", JWSInvalid), k = await prepareKey(entry, key, "verify");
62
- if (!await verify(entry, k, signature, data))
63
- throw new JWSSignatureVerificationFailed();
64
- return [b64 ? decodeBase64url(signingPayload, "payload", JWSInvalid) : signingPayload, parsedProt, b64, k, resolvedKey];
65
- }
66
42
  async function verifySignature(jws, shared, key, encodeUnencodedPayload, parsedProtected) {
67
- const { protected: encodedProtected, header, payload: inputPayload } = jws, [parsedProt, , b64, alg] = parseJwsHeaders(encodedProtected, header, shared, parsedProtected);
43
+ const { protected: encodedProtected, header, payload: inputPayload } = jws, parsedProt = parsedProtected ?? parseProtectedHeader(encodedProtected);
44
+ if (!isDisjoint(parsedProt, header))
45
+ throw new JWSInvalid("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");
46
+ const joseHeader = { ...parsedProt, ...header }, b64 = validateB64(parsedProt, validateCrit(JWSInvalid, JWS_RECOGNIZED, shared[1], parsedProt, joseHeader)), { alg } = joseHeader;
47
+ if (typeof alg != "string" || !alg)
48
+ throw new JWSInvalid('JWS "alg" (Algorithm) Header Parameter missing or invalid');
49
+ if (shared[0] && !shared[0].has(alg))
50
+ throw new JOSEAlgNotAllowed('"alg" (Algorithm) Header Parameter value not allowed');
68
51
  if (b64) {
69
52
  if (typeof inputPayload != "string")
70
53
  throw new JWSInvalid("JWS Payload must be a string");
71
54
  } else if (typeof inputPayload != "string" && !(inputPayload instanceof Uint8Array))
72
55
  throw new JWSInvalid("JWS Payload must be a string or an Uint8Array instance");
73
56
  const signingPayload = b64 || typeof inputPayload != "string" ? inputPayload : encodeUnencodedPayload(inputPayload);
74
- return verifyPrepared(jws, shared, key, encodedProtected, parsedProt, alg, signingPayload);
57
+ let resolvedKey = !1;
58
+ typeof key == "function" && (key = await key(parsedProt, jws), resolvedKey = !0);
59
+ const entry = jwsAlgorithm(alg), data = concat(encodedProtected !== void 0 ? encode(encodedProtected) : new Uint8Array(), encode("."), typeof signingPayload == "string" ? shared[2] ??= encodeBase64url(signingPayload, "payload", JWSInvalid) : signingPayload), signature = decodeBase64url(jws.signature, "signature", JWSInvalid), k = await prepareKey(entry, key, "verify"), cryptoKey = await rawKey(k, entry.subtle, "verify");
60
+ entry.minRsaBits && checkModulusLength(entry.alg, cryptoKey);
61
+ let verified = !1;
62
+ try {
63
+ verified = await crypto.subtle.verify(entry.signing, cryptoKey, signature, data);
64
+ } catch {
65
+ }
66
+ if (!verified)
67
+ throw new JWSSignatureVerificationFailed();
68
+ const result = { payload: typeof signingPayload == "string" ? decodeBase64url(signingPayload, "payload", JWSInvalid) : signingPayload };
69
+ return encodedProtected !== void 0 && (result.protectedHeader = parsedProt), header !== void 0 && (result.unprotectedHeader = header), resolvedKey ? [{ ...result, key: k }, b64] : [result, b64];
75
70
  }
76
71
  async function verifyCompact(jws, shared, key) {
77
72
  if (jws instanceof Uint8Array && (jws = decoder.decode(jws)), typeof jws != "string")
@@ -79,16 +74,13 @@ async function verifyCompact(jws, shared, key) {
79
74
  const { 0: protectedHeader, 1: payload, 2: signature, length } = jws.split(".");
80
75
  if (length !== 3)
81
76
  throw new JWSInvalid("Invalid Compact JWS");
82
- const compactJws = { payload, protected: protectedHeader, signature }, parsedProt = parseProtectedHeader(protectedHeader), [b64, alg] = validateJwsHeaders(parsedProt, parsedProt, shared), signingPayload = b64 ? payload : encodeCompactUnencodedPayload(payload);
83
- return verifyPrepared(compactJws, shared, key, protectedHeader, parsedProt, alg, signingPayload);
77
+ return verifySignature({ payload, protected: protectedHeader, signature }, shared, key, encodeCompactUnencodedPayload);
84
78
  }
85
79
  export {
86
80
  encodeJsonUnencodedPayload,
87
- parseJwsHeaders,
88
81
  parseProtectedHeader,
89
82
  prepareVerify,
90
83
  snapshotJws,
91
84
  verifyCompact,
92
- verifyResult,
93
85
  verifySignature
94
86
  };
@@ -1,6 +1,6 @@
1
1
  import { JWTClaimValidationFailed, JWTExpired, JWTInvalid } from "../util/errors.js";
2
2
  import { encoder, strictDecoder } from "./buffer_utils.js";
3
- import { isObject } from "./type_checks.js";
3
+ import { isObject } from "./validate.js";
4
4
  const epoch = (date) => Math.floor(date.getTime() / 1e3), multipliers = {
5
5
  s: 1,
6
6
  m: 60,