@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,27 +1,20 @@
1
1
  import { createSignature } from "../../lib/jws_sign.js";
2
- import { assertNotSet } from "../../lib/helpers.js";
2
+ import { assertNotSet, assertUint8Array } from "../../lib/validate.js";
3
3
  class FlattenedSign {
4
- #payload;
5
- #protectedHeader;
6
- #unprotectedHeader;
4
+ #input;
7
5
  constructor(payload) {
8
- if (!(payload instanceof Uint8Array))
9
- throw new TypeError("payload must be an instance of Uint8Array");
10
- this.#payload = payload;
6
+ assertUint8Array(payload, "payload"), this.#input = [payload];
11
7
  }
12
8
  setProtectedHeader(protectedHeader) {
13
- return assertNotSet(this.#protectedHeader, "setProtectedHeader"), this.#protectedHeader = protectedHeader, this;
9
+ return assertNotSet(this.#input[1], "setProtectedHeader"), this.#input[1] = protectedHeader, this;
14
10
  }
15
11
  setUnprotectedHeader(unprotectedHeader) {
16
- return assertNotSet(this.#unprotectedHeader, "setUnprotectedHeader"), this.#unprotectedHeader = unprotectedHeader, this;
12
+ return assertNotSet(this.#input[2], "setUnprotectedHeader"), this.#input[2] = unprotectedHeader, this;
17
13
  }
18
14
  async sign(key, options) {
19
- const [jws] = await createSignature({
20
- payload: this.#payload,
21
- protectedHeader: this.#protectedHeader,
22
- unprotectedHeader: this.#unprotectedHeader,
23
- crit: options?.crit
24
- }, key);
15
+ const input = [...this.#input];
16
+ input[3] = options?.crit;
17
+ const [jws] = await createSignature(input, key);
25
18
  return jws;
26
19
  }
27
20
  }
@@ -1,21 +1,11 @@
1
1
  import { JWSInvalid } from "../../util/errors.js";
2
- import { isObject } from "../../lib/type_checks.js";
3
- import { encodeJsonUnencodedPayload, prepareVerify, snapshotJws, verifySignature, verifyResult } from "../../lib/jws_verify.js";
2
+ import { isObject } from "../../lib/validate.js";
3
+ import { encodeJsonUnencodedPayload, prepareVerify, snapshotJws, verifySignature } from "../../lib/jws_verify.js";
4
4
  async function flattenedVerify(jws, key, options) {
5
5
  if (!isObject(jws))
6
6
  throw new JWSInvalid("Flattened JWS must be an object");
7
- const snapshot = snapshotJws(jws);
8
- if (snapshot.protected === void 0 && snapshot.header === void 0)
9
- throw new JWSInvalid('Flattened JWS must have either of the "protected" or "header" members');
10
- if (snapshot.protected !== void 0 && typeof snapshot.protected != "string")
11
- throw new JWSInvalid("JWS Protected Header incorrect type");
12
- if (snapshot.payload === void 0)
13
- throw new JWSInvalid("JWS Payload missing");
14
- if (typeof snapshot.signature != "string")
15
- throw new JWSInvalid("JWS Signature missing or incorrect type");
16
- if (snapshot.header !== void 0 && !isObject(snapshot.header))
17
- throw new JWSInvalid("JWS Unprotected Header incorrect type");
18
- return verifyResult(snapshot, await verifySignature(snapshot, prepareVerify(options), key, encodeJsonUnencodedPayload));
7
+ const snapshot = snapshotJws(jws), [result] = await verifySignature(snapshot, prepareVerify(options), key, encodeJsonUnencodedPayload);
8
+ return result;
19
9
  }
20
10
  export {
21
11
  flattenedVerify
@@ -1,6 +1,6 @@
1
1
  import { createSignature } from "../../lib/jws_sign.js";
2
2
  import { JWSInvalid } from "../../util/errors.js";
3
- import { assertNotSet } from "../../lib/helpers.js";
3
+ import { assertNotSet, assertUint8Array } from "../../lib/validate.js";
4
4
  class IndividualSignature {
5
5
  #parent;
6
6
  state;
@@ -36,21 +36,14 @@ class GeneralSign {
36
36
  async sign() {
37
37
  if (!this.#signatures.length)
38
38
  throw new JWSInvalid("at least one signature must be added");
39
- if (!(this.#payload instanceof Uint8Array))
40
- throw new TypeError("payload must be an instance of Uint8Array");
39
+ assertUint8Array(this.#payload, "payload");
41
40
  const jws = {
42
41
  signatures: [],
43
42
  payload: ""
44
43
  }, encoded = [];
45
44
  let b64;
46
- for (let i = 0; i < this.#signatures.length; i++) {
47
- const signature = this.#signatures[i], [protectedHeader, unprotectedHeader, key, crit] = signature.state, [{ payload, ...rest }, signatureB64] = await createSignature({
48
- payload: this.#payload,
49
- protectedHeader,
50
- unprotectedHeader,
51
- crit,
52
- encoded
53
- }, key);
45
+ for (const signature of this.#signatures) {
46
+ const [protectedHeader, unprotectedHeader, key, crit] = signature.state, [{ payload, ...rest }, signatureB64] = await createSignature([this.#payload, protectedHeader, unprotectedHeader, crit, encoded], key);
54
47
  if (b64 === void 0)
55
48
  b64 = signatureB64, jws.payload = payload;
56
49
  else if (b64 !== signatureB64)
@@ -1,12 +1,9 @@
1
- import { encodeJsonUnencodedPayload, parseProtectedHeader, prepareVerify, snapshotJws, verifySignature, verifyResult } from "../../lib/jws_verify.js";
1
+ import { encodeJsonUnencodedPayload, parseProtectedHeader, prepareVerify, snapshotJws, verifySignature } from "../../lib/jws_verify.js";
2
2
  import { JWSInvalid, JWSSignatureVerificationFailed } from "../../util/errors.js";
3
- import { isObject } from "../../lib/type_checks.js";
3
+ import { isObject } from "../../lib/validate.js";
4
4
  function snapshotSignature(signature, payload) {
5
5
  try {
6
- const jws = snapshotJws(signature, [payload]), { protected: encodedProtected, header, signature: encodedSignature } = jws;
7
- if (encodedProtected === void 0 && header === void 0 || encodedProtected !== void 0 && typeof encodedProtected != "string" || typeof encodedSignature != "string" || header !== void 0 && !isObject(header))
8
- return;
9
- const protectedHeader = parseProtectedHeader(encodedProtected), { b64, crit } = protectedHeader;
6
+ const jws = snapshotJws(signature, [payload]), protectedHeader = parseProtectedHeader(jws.protected), { b64, crit } = protectedHeader;
10
7
  return [
11
8
  jws,
12
9
  protectedHeader,
@@ -40,7 +37,8 @@ async function generalVerify(jws, key, options) {
40
37
  throw new JWSInvalid("inconsistent use of JWS Unencoded Payload (RFC7797)");
41
38
  for (const candidate of candidates)
42
39
  try {
43
- return verifyResult(candidate[0], await verifySignature(candidate[0], shared, key, encodeJsonUnencodedPayload, candidate[1]));
40
+ const [result] = await verifySignature(candidate[0], shared, key, encodeJsonUnencodedPayload, candidate[1]);
41
+ return result;
44
42
  } catch {
45
43
  }
46
44
  throw new JWSSignatureVerificationFailed();
@@ -2,12 +2,11 @@ import { prepareDecrypt, decryptCompact } from "../lib/jwe_decrypt.js";
2
2
  import { validateClaimsSet } from "../lib/jwt_claims_set.js";
3
3
  import { JWTClaimValidationFailed } from "../util/errors.js";
4
4
  async function jwtDecrypt(jwt, key, options) {
5
- const decrypted = await decryptCompact(jwt, prepareDecrypt(options), key), protectedHeader = decrypted[1], payload = validateClaimsSet(protectedHeader, decrypted[0], options);
5
+ const { plaintext, ...result } = await decryptCompact(jwt, prepareDecrypt(options), key), { protectedHeader } = result, payload = validateClaimsSet(protectedHeader, plaintext, options);
6
6
  for (const claim of ["iss", "sub", "aud"])
7
7
  if (protectedHeader[claim] !== void 0 && (claim === "aud" ? JSON.stringify(protectedHeader.aud) !== JSON.stringify(payload.aud) : protectedHeader[claim] !== payload[claim]))
8
8
  throw new JWTClaimValidationFailed(`replicated "${claim}" claim header parameter mismatch`, payload, claim, "mismatch");
9
- const result = { payload, protectedHeader };
10
- return typeof key == "function" ? { ...result, key: decrypted[2] } : result;
9
+ return { payload, ...result };
11
10
  }
12
11
  export {
13
12
  jwtDecrypt
@@ -1,26 +1,23 @@
1
- import { createJWE } from "../lib/jwe_encrypt.js";
1
+ import { compactJWE, createJWE } from "../lib/jwe_encrypt.js";
2
2
  import { JWTClaimsBuilder, jwtClaim, jwtData } from "../lib/jwt_claims_set.js";
3
- import { assertNotSet } from "../lib/helpers.js";
3
+ import { assertNotSet } from "../lib/validate.js";
4
4
  const EncryptJWT_base = JWTClaimsBuilder;
5
5
  class EncryptJWT extends EncryptJWT_base {
6
- #cek;
7
- #iv;
8
- #keyManagementParameters;
9
- #protectedHeader;
6
+ #input = [void 0];
10
7
  #replicateIssuerAsHeader;
11
8
  #replicateSubjectAsHeader;
12
9
  #replicateAudienceAsHeader;
13
10
  setProtectedHeader(protectedHeader) {
14
- return assertNotSet(this.#protectedHeader, "setProtectedHeader"), this.#protectedHeader = protectedHeader, this;
11
+ return assertNotSet(this.#input[1], "setProtectedHeader"), this.#input[1] = protectedHeader, this;
15
12
  }
16
13
  setKeyManagementParameters(parameters) {
17
- return assertNotSet(this.#keyManagementParameters, "setKeyManagementParameters"), this.#keyManagementParameters = parameters, this;
14
+ return assertNotSet(this.#input[7], "setKeyManagementParameters"), this.#input[7] = parameters, this;
18
15
  }
19
16
  setContentEncryptionKey(cek) {
20
- return assertNotSet(this.#cek, "setContentEncryptionKey"), this.#cek = cek, this;
17
+ return assertNotSet(this.#input[5], "setContentEncryptionKey"), this.#input[5] = cek, this;
21
18
  }
22
19
  setInitializationVector(iv) {
23
- return assertNotSet(this.#iv, "setInitializationVector"), this.#iv = iv, this;
20
+ return assertNotSet(this.#input[6], "setInitializationVector"), this.#input[6] = iv, this;
24
21
  }
25
22
  replicateIssuerAsHeader() {
26
23
  return this.#replicateIssuerAsHeader = !0, this;
@@ -33,25 +30,14 @@ class EncryptJWT extends EncryptJWT_base {
33
30
  }
34
31
  async encrypt(key, options) {
35
32
  const plaintext = jwtData(this);
36
- this.#protectedHeader && (this.#replicateIssuerAsHeader || this.#replicateSubjectAsHeader || this.#replicateAudienceAsHeader) && (this.#protectedHeader = {
37
- ...this.#protectedHeader,
33
+ this.#input[1] && (this.#replicateIssuerAsHeader || this.#replicateSubjectAsHeader || this.#replicateAudienceAsHeader) && (this.#input[1] = {
34
+ ...this.#input[1],
38
35
  iss: this.#replicateIssuerAsHeader ? jwtClaim(this, "iss") : void 0,
39
36
  sub: this.#replicateSubjectAsHeader ? jwtClaim(this, "sub") : void 0,
40
37
  aud: this.#replicateAudienceAsHeader ? jwtClaim(this, "aud") : void 0
41
38
  });
42
- const jwe = await createJWE([
43
- plaintext,
44
- this.#protectedHeader,
45
- void 0,
46
- void 0,
47
- void 0,
48
- this.#cek,
49
- this.#iv,
50
- this.#keyManagementParameters,
51
- void 0,
52
- !1
53
- ], key, options);
54
- return [jwe.protected, jwe.encrypted_key, jwe.iv, jwe.ciphertext, jwe.tag].join(".");
39
+ const input = [...this.#input];
40
+ return input[0] = plaintext, compactJWE(await createJWE(input, key, options));
55
41
  }
56
42
  }
57
43
  export {
@@ -1,7 +1,7 @@
1
1
  import { createCompactSignature } from "../lib/jws_sign.js";
2
2
  import { JWTInvalid } from "../util/errors.js";
3
3
  import { JWTClaimsBuilder, jwtData } from "../lib/jwt_claims_set.js";
4
- import { assertNotSet } from "../lib/helpers.js";
4
+ import { assertNotSet } from "../lib/validate.js";
5
5
  const SignJWT_base = JWTClaimsBuilder;
6
6
  class SignJWT extends SignJWT_base {
7
7
  #protectedHeader;
@@ -1,8 +1,7 @@
1
1
  import * as b64u from "../util/base64url.js";
2
- import { decodeBase64url, parseJoseHeader } from "../lib/helpers.js";
2
+ import { decodeBase64url, parseJoseHeader, JWS_RECOGNIZED, validateB64, validateCrit } from "../lib/validate.js";
3
3
  import { JWSInvalid, JWTInvalid } from "../util/errors.js";
4
4
  import { validateClaimsSet, JWTClaimsBuilder, jwtData } from "../lib/jwt_claims_set.js";
5
- import { JWS_RECOGNIZED, validateB64, validateCrit } from "../lib/options.js";
6
5
  const UnsecuredJWT_base = JWTClaimsBuilder;
7
6
  class UnsecuredJWT extends UnsecuredJWT_base {
8
7
  encode() {
@@ -2,11 +2,11 @@ import { prepareVerify, verifyCompact } from "../lib/jws_verify.js";
2
2
  import { validateClaimsSet } from "../lib/jwt_claims_set.js";
3
3
  import { JWTInvalid } from "../util/errors.js";
4
4
  async function jwtVerify(jwt, key, options) {
5
- const verified = await verifyCompact(jwt, prepareVerify(options), key);
6
- if (!verified[2])
5
+ const [verified, b64] = await verifyCompact(jwt, prepareVerify(options), key);
6
+ if (!b64)
7
7
  throw new JWTInvalid("JWTs MUST NOT use unencoded payload");
8
- const result = { payload: validateClaimsSet(verified[1], verified[0], options), protectedHeader: verified[1] };
9
- return typeof key == "function" ? { ...result, key: verified[3] } : result;
8
+ const payload = validateClaimsSet(verified.protectedHeader, verified.payload, options);
9
+ return { ...verified, payload };
10
10
  }
11
11
  export {
12
12
  jwtVerify
@@ -1,11 +1,13 @@
1
1
  import { toSPKI as exportPublic, toPKCS8 as exportPrivate } from "../lib/asn1.js";
2
- import { invalidKeyInput } from "../lib/invalid_key_input.js";
2
+ import { invalidKeyInput, isCryptoKey, isKeyObject } from "../lib/key.js";
3
3
  import { encode as b64u } from "../util/base64url.js";
4
- import { isCryptoKey, isKeyObject } from "../lib/is_key_like.js";
5
- function omitUndefinedProperties(jwk) {
6
- return Object.fromEntries(Object.entries(jwk).filter(([, value]) => value !== void 0));
4
+ function exportSPKI(key) {
5
+ return exportPublic(key);
6
+ }
7
+ function exportPKCS8(key) {
8
+ return exportPrivate(key);
7
9
  }
8
- async function keyToJWK(key) {
10
+ async function exportJWK(key) {
9
11
  if (isKeyObject(key))
10
12
  if (key.type === "secret")
11
13
  key = key.export();
@@ -20,17 +22,11 @@ async function keyToJWK(key) {
20
22
  throw new TypeError(invalidKeyInput(key, "CryptoKey", "KeyObject", "Uint8Array"));
21
23
  if (!key.extractable)
22
24
  throw new TypeError("non-extractable CryptoKey cannot be exported as a JWK");
23
- const { ext, key_ops, alg, use, ...jwk } = omitUndefinedProperties(await crypto.subtle.exportKey("jwk", key));
24
- return jwk.kty === "AKP" && (jwk.alg = alg), jwk;
25
- }
26
- function exportSPKI(key) {
27
- return exportPublic(key);
28
- }
29
- function exportPKCS8(key) {
30
- return exportPrivate(key);
31
- }
32
- function exportJWK(key) {
33
- return keyToJWK(key);
25
+ const jwk = await crypto.subtle.exportKey("jwk", key);
26
+ delete jwk.ext, delete jwk.key_ops, delete jwk.use, jwk.kty !== "AKP" && delete jwk.alg;
27
+ for (const parameter of Object.keys(jwk))
28
+ jwk[parameter] === void 0 && delete jwk[parameter];
29
+ return jwk;
34
30
  }
35
31
  export {
36
32
  exportJWK,
@@ -1,5 +1,5 @@
1
1
  import { JOSENotSupported } from "../util/errors.js";
2
- import { validateExtractableOption } from "../lib/key_options.js";
2
+ import { validateExtractableOption } from "../lib/key.js";
3
3
  import { keyAlgorithm, unsupportedAlg, algArgument } from "../lib/key_algorithm.js";
4
4
  function getModulusLengthOption(options) {
5
5
  const modulusLength = options?.modulusLength ?? 2048;
@@ -13,18 +13,9 @@ async function generateKeyPair(alg, options) {
13
13
  let algorithm;
14
14
  if (entry.resolve) {
15
15
  const crv = options?.crv ?? "P-256";
16
- switch (crv) {
17
- case "P-256":
18
- case "P-384":
19
- case "P-521":
20
- algorithm = { name: "ECDH", namedCurve: crv };
21
- break;
22
- case "X25519":
23
- algorithm = { name: "X25519" };
24
- break;
25
- default:
26
- throw new JOSENotSupported("Invalid or unsupported crv option provided, supported values are P-256, P-384, P-521, and X25519");
27
- }
16
+ if (!["P-256", "P-384", "P-521", "X25519"].includes(crv))
17
+ throw new JOSENotSupported("Invalid or unsupported crv option provided, supported values are P-256, P-384, P-521, and X25519");
18
+ algorithm = entry.resolve({ crv });
28
19
  } else {
29
20
  if (entry.crv !== void 0 && options?.crv !== void 0 && options.crv !== entry.crv)
30
21
  throw new JOSENotSupported(`Invalid or unsupported crv option provided, the only supported value for ${alg} is ${entry.crv}`);
@@ -1,5 +1,5 @@
1
1
  import { unsupportedAlg, algArgument } from "../lib/key_algorithm.js";
2
- import { validateExtractableOption } from "../lib/key_options.js";
2
+ import { validateExtractableOption } from "../lib/key.js";
3
3
  async function generateSecret(alg, options) {
4
4
  const extractable = validateExtractableOption(options?.extractable);
5
5
  let length, algorithm, keyUsages;
@@ -1,11 +1,9 @@
1
1
  import { decode as decodeBase64URL } from "../util/base64url.js";
2
2
  import { fromSPKI, fromPKCS8, fromX509 } from "../lib/asn1.js";
3
- import { jwkToKey } from "../lib/jwk_to_key.js";
3
+ import { jwkToKey, validateExtractableOption, normalizeJwk } from "../lib/key.js";
4
4
  import { keyAlgorithm } from "../lib/key_algorithm.js";
5
5
  import { JOSENotSupported } from "../util/errors.js";
6
- import { isObject } from "../lib/type_checks.js";
7
- import { validateExtractableOption } from "../lib/key_options.js";
8
- import { normalizeJwk } from "../lib/jwk_metadata.js";
6
+ import { isObject } from "../lib/validate.js";
9
7
  async function importSPKI(spki, alg, options) {
10
8
  if (typeof spki != "string" || spki.indexOf("-----BEGIN PUBLIC KEY-----") !== 0)
11
9
  throw new TypeError('"spki" must be SPKI formatted string');
@@ -25,9 +23,7 @@ async function importJWK(jwk, alg, options) {
25
23
  if (!isObject(jwk))
26
24
  throw new TypeError("JWK must be an object");
27
25
  const normalized = normalizeJwk(jwk), extractable = validateExtractableOption(options?.extractable), { alg: jwkAlg } = normalized;
28
- alg ??= jwkAlg;
29
- const ext = extractable ?? normalized.ext;
30
- if (normalized.kty !== "oct" && !alg)
26
+ if (alg ??= jwkAlg, normalized.kty !== "oct" && !alg)
31
27
  throw new TypeError('"alg" argument is required when "jwk.alg" is not present');
32
28
  switch (normalized.kty) {
33
29
  case "oct":
@@ -39,12 +35,12 @@ async function importJWK(jwk, alg, options) {
39
35
  throw new TypeError('missing "alg" (Algorithm) Parameter value');
40
36
  if (alg !== jwkAlg)
41
37
  throw new TypeError("JWK alg and alg option value mismatch");
42
- return jwkToKey(keyAlgorithm(alg), { ...normalized, ext });
38
+ return jwkToKey(keyAlgorithm(alg), normalized, extractable);
43
39
  }
44
40
  case "RSA":
45
41
  case "EC":
46
42
  case "OKP":
47
- return jwkToKey(keyAlgorithm(alg), { ...normalized, alg, ext });
43
+ return jwkToKey(keyAlgorithm(alg), normalized, extractable);
48
44
  default:
49
45
  throw new JOSENotSupported('Unsupported "kty" (Key Type) Parameter value');
50
46
  }
@@ -1,9 +1,7 @@
1
- import { invalidKeyInput } from "./invalid_key_input.js";
2
- import { encodeBase64, decodeBase64 } from "../lib/base64.js";
1
+ import { invalidKeyInput, isCryptoKey, isKeyObject, validateExtractableOption } from "./key.js";
2
+ import { encodeBase64, decodeBase64 } from "./buffer_utils.js";
3
3
  import { JOSENotSupported } from "../util/errors.js";
4
4
  import { keyAlgorithm, unsupportedAlg, algArgument } from "./key_algorithm.js";
5
- import { isCryptoKey, isKeyObject } from "./is_key_like.js";
6
- import { validateExtractableOption } from "./key_options.js";
7
5
  const formatPEM = (b64, descriptor) => {
8
6
  const newlined = (b64.match(/.{1,64}/g) || []).join(`
9
7
  `);
@@ -19,7 +19,13 @@ function uint32be(value) {
19
19
  const buf = new Uint8Array(4);
20
20
  return writeUInt32BE(buf, value), buf;
21
21
  }
22
+ const NON_ASCII = /[^\x00-\x7f]/;
22
23
  function encode(string) {
24
+ if (typeof string == "string" && string.length >= 128) {
25
+ if (NON_ASCII.test(string))
26
+ throw new TypeError("non-ASCII string encountered in encode()");
27
+ return encoder.encode(string);
28
+ }
23
29
  const bytes = new Uint8Array(string.length);
24
30
  for (let i = 0; i < string.length; i++) {
25
31
  const code = string.charCodeAt(i);
@@ -29,10 +35,39 @@ function encode(string) {
29
35
  }
30
36
  return bytes;
31
37
  }
38
+ function encodeBase64(input, url = !1) {
39
+ if (Uint8Array.prototype.toBase64)
40
+ return input.toBase64({ alphabet: url ? "base64url" : "base64", omitPadding: url });
41
+ const CHUNK_SIZE = 32768, arr = [];
42
+ for (let i = 0; i < input.length; i += CHUNK_SIZE)
43
+ arr.push(String.fromCharCode.apply(null, input.subarray(i, i + CHUNK_SIZE)));
44
+ const encoded = btoa(arr.join(""));
45
+ return url ? encoded.replace(/=/g, "").replace(/\+/g, "-").replace(/\//g, "_") : encoded;
46
+ }
47
+ function decodeBase64(encoded, url = !1) {
48
+ if (Uint8Array.fromBase64)
49
+ return Uint8Array.fromBase64(encoded, { alphabet: url ? "base64url" : "base64" });
50
+ if (url) {
51
+ if (encoded.includes("+") || encoded.includes("/"))
52
+ throw new TypeError("Invalid base64url");
53
+ encoded = encoded.replace(/-/g, "+").replace(/_/g, "/");
54
+ }
55
+ const binary = atob(encoded), bytes = new Uint8Array(binary.length);
56
+ for (let i = 0; i < binary.length; i++)
57
+ bytes[i] = binary.charCodeAt(i);
58
+ return bytes;
59
+ }
60
+ async function digest(algorithm, data) {
61
+ const subtleDigest = `SHA-${algorithm.slice(-3)}`;
62
+ return new Uint8Array(await crypto.subtle.digest(subtleDigest, data));
63
+ }
32
64
  export {
33
65
  concat,
66
+ decodeBase64,
34
67
  decoder,
68
+ digest,
35
69
  encode,
70
+ encodeBase64,
36
71
  encoder,
37
72
  strictDecoder,
38
73
  uint32be,
@@ -1,8 +1,6 @@
1
1
  import { concat, uint64be } from "./buffer_utils.js";
2
- import { checkCryptoKey } from "./crypto_key.js";
3
- import { invalidKeyInput } from "./invalid_key_input.js";
2
+ import { rawKey, invalidKeyInput, isCryptoKey } from "./key.js";
4
3
  import { JWEDecryptionFailed, JWEInvalid } from "../util/errors.js";
5
- import { isCryptoKey } from "./is_key_like.js";
6
4
  const generateCek = (enc) => crypto.getRandomValues(new Uint8Array(enc.cekBits >> 3));
7
5
  function checkCekLength(cek, expected) {
8
6
  const actual = cek.byteLength << 3;
@@ -46,21 +44,31 @@ async function cbcDecrypt(enc, cek, ciphertext, iv, tag, aad) {
46
44
  }
47
45
  throw new JWEDecryptionFailed();
48
46
  }
49
- async function gcmEncrypt(enc, plaintext, cek, iv, aad) {
50
- const encKey = cek instanceof Uint8Array ? await crypto.subtle.importKey("raw", cek, "AES-GCM", !1, [
51
- "encrypt"
52
- ]) : (checkCryptoKey(cek, enc.subtle, "encrypt"), cek), encrypted = new Uint8Array(await crypto.subtle.encrypt({
47
+ async function encrypt(enc, plaintext, cek, iv, aad) {
48
+ if (!isCryptoKey(cek) && !(cek instanceof Uint8Array))
49
+ throw new TypeError(invalidKeyInput(cek, "CryptoKey", "KeyObject", "Uint8Array", "JSON Web Key"));
50
+ if (iv ? checkIvLength(enc, iv) : iv = generateIv(enc), cek instanceof Uint8Array && checkCekLength(cek, enc.cekBits), enc.cbc)
51
+ return cbcEncrypt(enc, plaintext, cek, iv, aad);
52
+ const encKey = await rawKey(cek, enc.subtle, "encrypt"), encrypted = new Uint8Array(await crypto.subtle.encrypt({
53
53
  additionalData: aad,
54
54
  iv,
55
55
  name: "AES-GCM",
56
56
  tagLength: 128
57
- }, encKey, plaintext)), tag = encrypted.slice(-16);
58
- return { ciphertext: encrypted.slice(0, -16), tag, iv };
57
+ }, encKey, plaintext));
58
+ return { ciphertext: encrypted.subarray(0, -16), tag: encrypted.subarray(-16), iv };
59
59
  }
60
- async function gcmDecrypt(enc, cek, ciphertext, iv, tag, aad) {
61
- const encKey = cek instanceof Uint8Array ? await crypto.subtle.importKey("raw", cek, "AES-GCM", !1, [
62
- "decrypt"
63
- ]) : (checkCryptoKey(cek, enc.subtle, "decrypt"), cek);
60
+ async function decrypt(enc, cek, ciphertext, iv, tag, aad) {
61
+ if (!isCryptoKey(cek) && !(cek instanceof Uint8Array))
62
+ throw new TypeError(invalidKeyInput(cek, "CryptoKey", "KeyObject", "Uint8Array", "JSON Web Key"));
63
+ if (!iv)
64
+ throw new JWEInvalid("JWE Initialization Vector missing");
65
+ if (!tag)
66
+ throw new JWEInvalid("JWE Authentication Tag missing");
67
+ if (!enc.cbc && tag.length !== 16)
68
+ throw new JWEInvalid("Invalid Authentication Tag length");
69
+ if (checkIvLength(enc, iv), cek instanceof Uint8Array && checkCekLength(cek, enc.cekBits), enc.cbc)
70
+ return cbcDecrypt(enc, cek, ciphertext, iv, tag, aad);
71
+ const encKey = await rawKey(cek, enc.subtle, "decrypt");
64
72
  try {
65
73
  return new Uint8Array(await crypto.subtle.decrypt({
66
74
  additionalData: aad,
@@ -72,22 +80,6 @@ async function gcmDecrypt(enc, cek, ciphertext, iv, tag, aad) {
72
80
  throw new JWEDecryptionFailed();
73
81
  }
74
82
  }
75
- async function encrypt(enc, plaintext, cek, iv, aad) {
76
- if (!isCryptoKey(cek) && !(cek instanceof Uint8Array))
77
- throw new TypeError(invalidKeyInput(cek, "CryptoKey", "KeyObject", "Uint8Array", "JSON Web Key"));
78
- return iv ? checkIvLength(enc, iv) : iv = generateIv(enc), cek instanceof Uint8Array && checkCekLength(cek, enc.cekBits), enc.cbc ? cbcEncrypt(enc, plaintext, cek, iv, aad) : gcmEncrypt(enc, plaintext, cek, iv, aad);
79
- }
80
- async function decrypt(enc, cek, ciphertext, iv, tag, aad) {
81
- if (!isCryptoKey(cek) && !(cek instanceof Uint8Array))
82
- throw new TypeError(invalidKeyInput(cek, "CryptoKey", "KeyObject", "Uint8Array", "JSON Web Key"));
83
- if (!iv)
84
- throw new JWEInvalid("JWE Initialization Vector missing");
85
- if (!tag)
86
- throw new JWEInvalid("JWE Authentication Tag missing");
87
- if (!enc.cbc && tag.length !== 16)
88
- throw new JWEInvalid("Invalid Authentication Tag length");
89
- return checkIvLength(enc, iv), cek instanceof Uint8Array && checkCekLength(cek, enc.cekBits), enc.cbc ? cbcDecrypt(enc, cek, ciphertext, iv, tag, aad) : gcmDecrypt(enc, cek, ciphertext, iv, tag, aad);
90
- }
91
83
  export {
92
84
  checkCekLength,
93
85
  checkIvLength,
@@ -10,30 +10,14 @@ function supported(name) {
10
10
  if (typeof globalThis[name] > "u")
11
11
  throw new JOSENotSupported(`JWE "zip" (Compression Algorithm) Header Parameter requires the ${name} API.`);
12
12
  }
13
- async function compress(input) {
14
- supported("CompressionStream");
15
- const cs = new CompressionStream("deflate-raw"), writer = cs.writable.getWriter();
16
- writer.write(input).catch(() => {
17
- }), writer.close().catch(() => {
18
- });
19
- const chunks = [], reader = cs.readable.getReader();
20
- for (; ; ) {
21
- const { value, done } = await reader.read();
22
- if (done)
23
- break;
24
- chunks.push(value);
25
- }
26
- return concat(...chunks);
27
- }
28
- async function decompress(input, maxLength) {
29
- supported("DecompressionStream");
30
- const ds = new DecompressionStream("deflate-raw"), writer = ds.writable.getWriter();
13
+ async function transform(stream, input, maxLength = 1 / 0) {
14
+ const writer = stream.writable.getWriter();
31
15
  writer.write(input).catch(() => {
32
16
  }), writer.close().catch(() => {
33
17
  });
34
18
  const chunks = [];
35
19
  let length = 0;
36
- const reader = ds.readable.getReader();
20
+ const reader = stream.readable.getReader();
37
21
  for (; ; ) {
38
22
  const { value, done } = await reader.read();
39
23
  if (done)
@@ -43,6 +27,12 @@ async function decompress(input, maxLength) {
43
27
  }
44
28
  return concat(...chunks);
45
29
  }
30
+ async function compress(input) {
31
+ return supported("CompressionStream"), transform(new CompressionStream("deflate-raw"), input);
32
+ }
33
+ async function decompress(input, maxLength) {
34
+ return supported("DecompressionStream"), transform(new DecompressionStream("deflate-raw"), input, maxLength);
35
+ }
46
36
  export {
47
37
  compress,
48
38
  decompress,
@@ -105,15 +105,11 @@ function jweAlgorithm(alg) {
105
105
  function isJWECEKTransport(algorithm) {
106
106
  return algorithm.mode === "key-wrapping" || algorithm.mode === "key-encryption" || algorithm.mode === "key-agreement-with-key-wrapping";
107
107
  }
108
- function invalidJWEKeyManagementMode(_mode) {
109
- throw new TypeError("Invalid JWE key management mode");
110
- }
111
108
  function jweEncryption(enc) {
112
109
  return (typeof enc == "string" ? ENC[enc] : void 0) ?? unsupported("enc", "Encryption Algorithm");
113
110
  }
114
111
  export {
115
112
  JWE,
116
- invalidJWEKeyManagementMode,
117
113
  isJWECEKTransport,
118
114
  jweAlgorithm,
119
115
  jweEncryption