@windrun-huaiin/backend-core 12.0.0 → 13.0.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 (270) hide show
  1. package/dist/_virtual/_commonjs-dynamic-modules.js +7 -0
  2. package/dist/_virtual/_commonjs-dynamic-modules.mjs +5 -0
  3. package/dist/_virtual/_commonjsHelpers.js +10 -0
  4. package/dist/_virtual/_commonjsHelpers.mjs +7 -0
  5. package/dist/_virtual/aes.js +5 -0
  6. package/dist/_virtual/aes.mjs +3 -0
  7. package/dist/_virtual/blowfish.js +5 -0
  8. package/dist/_virtual/blowfish.mjs +3 -0
  9. package/dist/_virtual/cipher-core.js +5 -0
  10. package/dist/_virtual/cipher-core.mjs +3 -0
  11. package/dist/_virtual/core.js +5 -0
  12. package/dist/_virtual/core.mjs +3 -0
  13. package/dist/_virtual/enc-base64.js +5 -0
  14. package/dist/_virtual/enc-base64.mjs +3 -0
  15. package/dist/_virtual/enc-base64url.js +5 -0
  16. package/dist/_virtual/enc-base64url.mjs +3 -0
  17. package/dist/_virtual/enc-utf16.js +5 -0
  18. package/dist/_virtual/enc-utf16.mjs +3 -0
  19. package/dist/_virtual/evpkdf.js +5 -0
  20. package/dist/_virtual/evpkdf.mjs +3 -0
  21. package/dist/_virtual/format-hex.js +5 -0
  22. package/dist/_virtual/format-hex.mjs +3 -0
  23. package/dist/_virtual/hmac.js +5 -0
  24. package/dist/_virtual/hmac.mjs +3 -0
  25. package/dist/_virtual/index.js +7 -0
  26. package/dist/_virtual/index.mjs +5 -0
  27. package/dist/_virtual/index2.js +9 -0
  28. package/dist/_virtual/index2.mjs +7 -0
  29. package/dist/_virtual/index3.js +5 -0
  30. package/dist/_virtual/index3.mjs +3 -0
  31. package/dist/_virtual/lib-typedarrays.js +5 -0
  32. package/dist/_virtual/lib-typedarrays.mjs +3 -0
  33. package/dist/_virtual/md5.js +5 -0
  34. package/dist/_virtual/md5.mjs +3 -0
  35. package/dist/_virtual/mode-cfb.js +5 -0
  36. package/dist/_virtual/mode-cfb.mjs +3 -0
  37. package/dist/_virtual/mode-ctr-gladman.js +5 -0
  38. package/dist/_virtual/mode-ctr-gladman.mjs +3 -0
  39. package/dist/_virtual/mode-ctr.js +5 -0
  40. package/dist/_virtual/mode-ctr.mjs +3 -0
  41. package/dist/_virtual/mode-ecb.js +5 -0
  42. package/dist/_virtual/mode-ecb.mjs +3 -0
  43. package/dist/_virtual/mode-ofb.js +5 -0
  44. package/dist/_virtual/mode-ofb.mjs +3 -0
  45. package/dist/_virtual/pad-ansix923.js +5 -0
  46. package/dist/_virtual/pad-ansix923.mjs +3 -0
  47. package/dist/_virtual/pad-iso10126.js +5 -0
  48. package/dist/_virtual/pad-iso10126.mjs +3 -0
  49. package/dist/_virtual/pad-iso97971.js +5 -0
  50. package/dist/_virtual/pad-iso97971.mjs +3 -0
  51. package/dist/_virtual/pad-nopadding.js +5 -0
  52. package/dist/_virtual/pad-nopadding.mjs +3 -0
  53. package/dist/_virtual/pad-zeropadding.js +5 -0
  54. package/dist/_virtual/pad-zeropadding.mjs +3 -0
  55. package/dist/_virtual/pbkdf2.js +5 -0
  56. package/dist/_virtual/pbkdf2.mjs +3 -0
  57. package/dist/_virtual/rabbit-legacy.js +5 -0
  58. package/dist/_virtual/rabbit-legacy.mjs +3 -0
  59. package/dist/_virtual/rabbit.js +5 -0
  60. package/dist/_virtual/rabbit.mjs +3 -0
  61. package/dist/_virtual/rc4.js +5 -0
  62. package/dist/_virtual/rc4.mjs +3 -0
  63. package/dist/_virtual/ripemd160.js +5 -0
  64. package/dist/_virtual/ripemd160.mjs +3 -0
  65. package/dist/_virtual/sha1.js +5 -0
  66. package/dist/_virtual/sha1.mjs +3 -0
  67. package/dist/_virtual/sha224.js +5 -0
  68. package/dist/_virtual/sha224.mjs +3 -0
  69. package/dist/_virtual/sha256.js +5 -0
  70. package/dist/_virtual/sha256.mjs +3 -0
  71. package/dist/_virtual/sha3.js +5 -0
  72. package/dist/_virtual/sha3.mjs +3 -0
  73. package/dist/_virtual/sha384.js +5 -0
  74. package/dist/_virtual/sha384.mjs +3 -0
  75. package/dist/_virtual/sha512.js +5 -0
  76. package/dist/_virtual/sha512.mjs +3 -0
  77. package/dist/_virtual/tripledes.js +5 -0
  78. package/dist/_virtual/tripledes.mjs +3 -0
  79. package/dist/_virtual/x64-core.js +5 -0
  80. package/dist/_virtual/x64-core.mjs +3 -0
  81. package/dist/index.js +46 -0
  82. package/dist/index.mjs +7 -0
  83. package/dist/lib/index.d.ts +2 -0
  84. package/dist/lib/index.d.ts.map +1 -1
  85. package/dist/lib/index.js +46 -0
  86. package/dist/lib/index.mjs +7 -0
  87. package/dist/lib/upstash/index.d.ts +7 -0
  88. package/dist/lib/upstash/index.d.ts.map +1 -0
  89. package/dist/lib/upstash/qstash.d.ts +36 -0
  90. package/dist/lib/upstash/qstash.d.ts.map +1 -0
  91. package/dist/lib/upstash/qstash.js +130 -0
  92. package/dist/lib/upstash/qstash.mjs +124 -0
  93. package/dist/lib/upstash/redis-counter.d.ts +17 -0
  94. package/dist/lib/upstash/redis-counter.d.ts.map +1 -0
  95. package/dist/lib/upstash/redis-counter.js +55 -0
  96. package/dist/lib/upstash/redis-counter.mjs +50 -0
  97. package/dist/lib/upstash/redis-favorite.d.ts +21 -0
  98. package/dist/lib/upstash/redis-favorite.d.ts.map +1 -0
  99. package/dist/lib/upstash/redis-favorite.js +74 -0
  100. package/dist/lib/upstash/redis-favorite.mjs +68 -0
  101. package/dist/lib/upstash/redis-like.d.ts +21 -0
  102. package/dist/lib/upstash/redis-like.d.ts.map +1 -0
  103. package/dist/lib/upstash/redis-like.js +74 -0
  104. package/dist/lib/upstash/redis-like.mjs +68 -0
  105. package/dist/lib/upstash/redis-lock.d.ts +13 -0
  106. package/dist/lib/upstash/redis-lock.d.ts.map +1 -0
  107. package/dist/lib/upstash/redis-lock.js +75 -0
  108. package/dist/lib/upstash/redis-lock.mjs +71 -0
  109. package/dist/lib/upstash/redis-structures.d.ts +63 -0
  110. package/dist/lib/upstash/redis-structures.d.ts.map +1 -0
  111. package/dist/lib/upstash/redis-structures.js +211 -0
  112. package/dist/lib/upstash/redis-structures.mjs +195 -0
  113. package/dist/lib/upstash-config.d.ts +11 -0
  114. package/dist/lib/upstash-config.d.ts.map +1 -0
  115. package/dist/lib/upstash-config.js +53 -0
  116. package/dist/lib/upstash-config.mjs +50 -0
  117. package/dist/node_modules/.pnpm/@upstash_lock@0.2.1_typescript@5.9.3/node_modules/@upstash/lock/dist/index.js +191 -0
  118. package/dist/node_modules/.pnpm/@upstash_lock@0.2.1_typescript@5.9.3/node_modules/@upstash/lock/dist/index.mjs +189 -0
  119. package/dist/node_modules/.pnpm/@upstash_qstash@2.8.4/node_modules/@upstash/qstash/chunk-RQPZUJXG.js +1419 -0
  120. package/dist/node_modules/.pnpm/@upstash_qstash@2.8.4/node_modules/@upstash/qstash/chunk-RQPZUJXG.mjs +1403 -0
  121. package/dist/node_modules/.pnpm/@upstash_redis@1.36.1/node_modules/@upstash/redis/chunk-LLI2WIYN.js +4691 -0
  122. package/dist/node_modules/.pnpm/@upstash_redis@1.36.1/node_modules/@upstash/redis/chunk-LLI2WIYN.mjs +4686 -0
  123. package/dist/node_modules/.pnpm/@upstash_redis@1.36.1/node_modules/@upstash/redis/nodejs.js +115 -0
  124. package/dist/node_modules/.pnpm/@upstash_redis@1.36.1/node_modules/@upstash/redis/nodejs.mjs +113 -0
  125. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/aes.js +248 -0
  126. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/aes.mjs +246 -0
  127. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/blowfish.js +485 -0
  128. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/blowfish.mjs +483 -0
  129. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/cipher-core.js +906 -0
  130. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/cipher-core.mjs +904 -0
  131. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/core.js +818 -0
  132. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/core.mjs +816 -0
  133. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/enc-base64.js +146 -0
  134. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/enc-base64.mjs +144 -0
  135. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/enc-base64url.js +158 -0
  136. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/enc-base64url.mjs +156 -0
  137. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/enc-utf16.js +159 -0
  138. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/enc-utf16.mjs +157 -0
  139. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/evpkdf.js +146 -0
  140. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/evpkdf.mjs +144 -0
  141. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/format-hex.js +77 -0
  142. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/format-hex.mjs +75 -0
  143. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/hmac.js +153 -0
  144. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/hmac.mjs +151 -0
  145. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/index.js +62 -0
  146. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/index.mjs +60 -0
  147. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/lib-typedarrays.js +86 -0
  148. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/lib-typedarrays.mjs +84 -0
  149. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/md5.js +278 -0
  150. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/md5.mjs +276 -0
  151. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/mode-cfb.js +91 -0
  152. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/mode-cfb.mjs +89 -0
  153. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/mode-ctr-gladman.js +127 -0
  154. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/mode-ctr-gladman.mjs +125 -0
  155. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/mode-ctr.js +69 -0
  156. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/mode-ctr.mjs +67 -0
  157. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/mode-ecb.js +51 -0
  158. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/mode-ecb.mjs +49 -0
  159. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/mode-ofb.js +65 -0
  160. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/mode-ofb.mjs +63 -0
  161. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pad-ansix923.js +60 -0
  162. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pad-ansix923.mjs +58 -0
  163. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pad-iso10126.js +55 -0
  164. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pad-iso10126.mjs +53 -0
  165. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pad-iso97971.js +51 -0
  166. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pad-iso97971.mjs +49 -0
  167. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pad-nopadding.js +41 -0
  168. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pad-nopadding.mjs +39 -0
  169. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pad-zeropadding.js +58 -0
  170. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pad-zeropadding.mjs +56 -0
  171. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pbkdf2.js +157 -0
  172. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pbkdf2.mjs +155 -0
  173. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/rabbit-legacy.js +204 -0
  174. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/rabbit-legacy.mjs +202 -0
  175. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/rabbit.js +206 -0
  176. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/rabbit.mjs +204 -0
  177. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/rc4.js +153 -0
  178. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/rc4.mjs +151 -0
  179. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/ripemd160.js +277 -0
  180. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/ripemd160.mjs +275 -0
  181. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha1.js +160 -0
  182. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha1.mjs +158 -0
  183. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha224.js +91 -0
  184. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha224.mjs +89 -0
  185. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha256.js +209 -0
  186. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha256.mjs +207 -0
  187. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha3.js +337 -0
  188. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha3.mjs +335 -0
  189. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha384.js +95 -0
  190. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha384.mjs +93 -0
  191. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha512.js +337 -0
  192. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha512.mjs +335 -0
  193. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/tripledes.js +793 -0
  194. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/tripledes.mjs +791 -0
  195. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/x64-core.js +314 -0
  196. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/x64-core.mjs +312 -0
  197. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/jws/compact/verify.js +26 -0
  198. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/jws/compact/verify.mjs +24 -0
  199. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/jws/flattened/verify.js +127 -0
  200. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/jws/flattened/verify.mjs +125 -0
  201. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/jwt/verify.js +20 -0
  202. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/jwt/verify.mjs +18 -0
  203. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/key/import.js +31 -0
  204. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/key/import.mjs +29 -0
  205. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/lib/buffer_utils.js +18 -0
  206. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/lib/buffer_utils.mjs +14 -0
  207. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/lib/check_key_type.js +82 -0
  208. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/lib/check_key_type.mjs +80 -0
  209. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/lib/crypto_key.js +103 -0
  210. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/lib/crypto_key.mjs +101 -0
  211. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/lib/epoch.js +5 -0
  212. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/lib/epoch.mjs +3 -0
  213. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/lib/invalid_key_input.js +38 -0
  214. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/lib/invalid_key_input.mjs +33 -0
  215. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/lib/is_disjoint.js +25 -0
  216. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/lib/is_disjoint.mjs +23 -0
  217. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/lib/is_jwk.js +21 -0
  218. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/lib/is_jwk.mjs +16 -0
  219. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/lib/is_object.js +20 -0
  220. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/lib/is_object.mjs +18 -0
  221. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/lib/jwt_claims_set.js +109 -0
  222. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/lib/jwt_claims_set.mjs +107 -0
  223. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/lib/secs.js +59 -0
  224. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/lib/secs.mjs +57 -0
  225. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/lib/validate_algorithms.js +14 -0
  226. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/lib/validate_algorithms.mjs +12 -0
  227. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/lib/validate_crit.js +38 -0
  228. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/lib/validate_crit.mjs +36 -0
  229. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/runtime/base64url.js +15 -0
  230. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/runtime/base64url.mjs +13 -0
  231. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/runtime/check_key_length.js +21 -0
  232. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/runtime/check_key_length.mjs +19 -0
  233. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/runtime/dsa_digest.js +28 -0
  234. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/runtime/dsa_digest.mjs +26 -0
  235. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/runtime/get_named_curve.js +58 -0
  236. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/runtime/get_named_curve.mjs +56 -0
  237. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/runtime/get_sign_verify_key.js +33 -0
  238. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/runtime/get_sign_verify_key.mjs +31 -0
  239. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/runtime/hmac_digest.js +18 -0
  240. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/runtime/hmac_digest.mjs +16 -0
  241. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/runtime/is_key_like.js +15 -0
  242. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/runtime/is_key_like.mjs +10 -0
  243. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/runtime/is_key_object.js +26 -0
  244. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/runtime/is_key_object.mjs +5 -0
  245. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/runtime/jwk_to_key.js +12 -0
  246. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/runtime/jwk_to_key.mjs +10 -0
  247. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/runtime/node_key.js +113 -0
  248. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/runtime/node_key.mjs +111 -0
  249. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/runtime/sign.js +40 -0
  250. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/runtime/sign.mjs +19 -0
  251. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/runtime/verify.js +52 -0
  252. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/runtime/verify.mjs +31 -0
  253. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/runtime/webcrypto.js +32 -0
  254. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/runtime/webcrypto.mjs +7 -0
  255. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/util/errors.js +69 -0
  256. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/util/errors.mjs +60 -0
  257. package/dist/node_modules/.pnpm/neverthrow@7.2.0/node_modules/neverthrow/dist/index.es.js +422 -0
  258. package/dist/node_modules/.pnpm/neverthrow@7.2.0/node_modules/neverthrow/dist/index.es.mjs +415 -0
  259. package/dist/node_modules/.pnpm/uncrypto@0.1.3/node_modules/uncrypto/dist/crypto.web.js +6 -0
  260. package/dist/node_modules/.pnpm/uncrypto@0.1.3/node_modules/uncrypto/dist/crypto.web.mjs +4 -0
  261. package/package.json +14 -11
  262. package/src/lib/index.ts +2 -0
  263. package/src/lib/upstash/index.ts +6 -0
  264. package/src/lib/upstash/qstash.ts +157 -0
  265. package/src/lib/upstash/redis-counter.ts +51 -0
  266. package/src/lib/upstash/redis-favorite.ts +75 -0
  267. package/src/lib/upstash/redis-like.ts +75 -0
  268. package/src/lib/upstash/redis-lock.ts +85 -0
  269. package/src/lib/upstash/redis-structures.ts +249 -0
  270. package/src/lib/upstash-config.ts +54 -0
@@ -0,0 +1,38 @@
1
+ 'use strict';
2
+
3
+ var errors = require('../util/errors.js');
4
+
5
+ function validateCrit(Err, recognizedDefault, recognizedOption, protectedHeader, joseHeader) {
6
+ if (joseHeader.crit !== undefined && protectedHeader?.crit === undefined) {
7
+ throw new Err('"crit" (Critical) Header Parameter MUST be integrity protected');
8
+ }
9
+ if (!protectedHeader || protectedHeader.crit === undefined) {
10
+ return new Set();
11
+ }
12
+ if (!Array.isArray(protectedHeader.crit) ||
13
+ protectedHeader.crit.length === 0 ||
14
+ protectedHeader.crit.some((input) => typeof input !== 'string' || input.length === 0)) {
15
+ throw new Err('"crit" (Critical) Header Parameter MUST be an array of non-empty strings when present');
16
+ }
17
+ let recognized;
18
+ if (recognizedOption !== undefined) {
19
+ recognized = new Map([...Object.entries(recognizedOption), ...recognizedDefault.entries()]);
20
+ }
21
+ else {
22
+ recognized = recognizedDefault;
23
+ }
24
+ for (const parameter of protectedHeader.crit) {
25
+ if (!recognized.has(parameter)) {
26
+ throw new errors.JOSENotSupported(`Extension Header Parameter "${parameter}" is not recognized`);
27
+ }
28
+ if (joseHeader[parameter] === undefined) {
29
+ throw new Err(`Extension Header Parameter "${parameter}" is missing`);
30
+ }
31
+ if (recognized.get(parameter) && protectedHeader[parameter] === undefined) {
32
+ throw new Err(`Extension Header Parameter "${parameter}" MUST be integrity protected`);
33
+ }
34
+ }
35
+ return new Set(protectedHeader.crit);
36
+ }
37
+
38
+ module.exports = validateCrit;
@@ -0,0 +1,36 @@
1
+ import { JOSENotSupported } from '../util/errors.mjs';
2
+
3
+ function validateCrit(Err, recognizedDefault, recognizedOption, protectedHeader, joseHeader) {
4
+ if (joseHeader.crit !== undefined && protectedHeader?.crit === undefined) {
5
+ throw new Err('"crit" (Critical) Header Parameter MUST be integrity protected');
6
+ }
7
+ if (!protectedHeader || protectedHeader.crit === undefined) {
8
+ return new Set();
9
+ }
10
+ if (!Array.isArray(protectedHeader.crit) ||
11
+ protectedHeader.crit.length === 0 ||
12
+ protectedHeader.crit.some((input) => typeof input !== 'string' || input.length === 0)) {
13
+ throw new Err('"crit" (Critical) Header Parameter MUST be an array of non-empty strings when present');
14
+ }
15
+ let recognized;
16
+ if (recognizedOption !== undefined) {
17
+ recognized = new Map([...Object.entries(recognizedOption), ...recognizedDefault.entries()]);
18
+ }
19
+ else {
20
+ recognized = recognizedDefault;
21
+ }
22
+ for (const parameter of protectedHeader.crit) {
23
+ if (!recognized.has(parameter)) {
24
+ throw new JOSENotSupported(`Extension Header Parameter "${parameter}" is not recognized`);
25
+ }
26
+ if (joseHeader[parameter] === undefined) {
27
+ throw new Err(`Extension Header Parameter "${parameter}" is missing`);
28
+ }
29
+ if (recognized.get(parameter) && protectedHeader[parameter] === undefined) {
30
+ throw new Err(`Extension Header Parameter "${parameter}" MUST be integrity protected`);
31
+ }
32
+ }
33
+ return new Set(protectedHeader.crit);
34
+ }
35
+
36
+ export { validateCrit as default };
@@ -0,0 +1,15 @@
1
+ 'use strict';
2
+
3
+ var node_buffer = require('node:buffer');
4
+ var buffer_utils = require('../lib/buffer_utils.js');
5
+
6
+ function normalize(input) {
7
+ let encoded = input;
8
+ if (encoded instanceof Uint8Array) {
9
+ encoded = buffer_utils.decoder.decode(encoded);
10
+ }
11
+ return encoded;
12
+ }
13
+ const decode = (input) => new Uint8Array(node_buffer.Buffer.from(normalize(input), 'base64url'));
14
+
15
+ exports.decode = decode;
@@ -0,0 +1,13 @@
1
+ import { Buffer } from 'node:buffer';
2
+ import { decoder } from '../lib/buffer_utils.mjs';
3
+
4
+ function normalize(input) {
5
+ let encoded = input;
6
+ if (encoded instanceof Uint8Array) {
7
+ encoded = decoder.decode(encoded);
8
+ }
9
+ return encoded;
10
+ }
11
+ const decode = (input) => new Uint8Array(Buffer.from(normalize(input), 'base64url'));
12
+
13
+ export { decode };
@@ -0,0 +1,21 @@
1
+ 'use strict';
2
+
3
+ var crypto = require('node:crypto');
4
+
5
+ var checkKeyLength = (key, alg) => {
6
+ let modulusLength;
7
+ try {
8
+ if (key instanceof crypto.KeyObject) {
9
+ modulusLength = key.asymmetricKeyDetails?.modulusLength;
10
+ }
11
+ else {
12
+ modulusLength = Buffer.from(key.n, 'base64url').byteLength << 3;
13
+ }
14
+ }
15
+ catch { }
16
+ if (typeof modulusLength !== 'number' || modulusLength < 2048) {
17
+ throw new TypeError(`${alg} requires key modulusLength to be 2048 bits or larger`);
18
+ }
19
+ };
20
+
21
+ module.exports = checkKeyLength;
@@ -0,0 +1,19 @@
1
+ import { KeyObject } from 'node:crypto';
2
+
3
+ var checkKeyLength = (key, alg) => {
4
+ let modulusLength;
5
+ try {
6
+ if (key instanceof KeyObject) {
7
+ modulusLength = key.asymmetricKeyDetails?.modulusLength;
8
+ }
9
+ else {
10
+ modulusLength = Buffer.from(key.n, 'base64url').byteLength << 3;
11
+ }
12
+ }
13
+ catch { }
14
+ if (typeof modulusLength !== 'number' || modulusLength < 2048) {
15
+ throw new TypeError(`${alg} requires key modulusLength to be 2048 bits or larger`);
16
+ }
17
+ };
18
+
19
+ export { checkKeyLength as default };
@@ -0,0 +1,28 @@
1
+ 'use strict';
2
+
3
+ var errors = require('../util/errors.js');
4
+
5
+ function dsaDigest(alg) {
6
+ switch (alg) {
7
+ case 'PS256':
8
+ case 'RS256':
9
+ case 'ES256':
10
+ case 'ES256K':
11
+ return 'sha256';
12
+ case 'PS384':
13
+ case 'RS384':
14
+ case 'ES384':
15
+ return 'sha384';
16
+ case 'PS512':
17
+ case 'RS512':
18
+ case 'ES512':
19
+ return 'sha512';
20
+ case 'Ed25519':
21
+ case 'EdDSA':
22
+ return undefined;
23
+ default:
24
+ throw new errors.JOSENotSupported(`alg ${alg} is not supported either by JOSE or your javascript runtime`);
25
+ }
26
+ }
27
+
28
+ module.exports = dsaDigest;
@@ -0,0 +1,26 @@
1
+ import { JOSENotSupported } from '../util/errors.mjs';
2
+
3
+ function dsaDigest(alg) {
4
+ switch (alg) {
5
+ case 'PS256':
6
+ case 'RS256':
7
+ case 'ES256':
8
+ case 'ES256K':
9
+ return 'sha256';
10
+ case 'PS384':
11
+ case 'RS384':
12
+ case 'ES384':
13
+ return 'sha384';
14
+ case 'PS512':
15
+ case 'RS512':
16
+ case 'ES512':
17
+ return 'sha512';
18
+ case 'Ed25519':
19
+ case 'EdDSA':
20
+ return undefined;
21
+ default:
22
+ throw new JOSENotSupported(`alg ${alg} is not supported either by JOSE or your javascript runtime`);
23
+ }
24
+ }
25
+
26
+ export { dsaDigest as default };
@@ -0,0 +1,58 @@
1
+ 'use strict';
2
+
3
+ var crypto = require('node:crypto');
4
+ var errors = require('../util/errors.js');
5
+ var webcrypto = require('./webcrypto.js');
6
+ var is_key_object = require('./is_key_object.js');
7
+ var invalid_key_input = require('../lib/invalid_key_input.js');
8
+ var is_key_like = require('./is_key_like.js');
9
+ var is_jwk = require('../lib/is_jwk.js');
10
+
11
+ const namedCurveToJOSE = (namedCurve) => {
12
+ switch (namedCurve) {
13
+ case 'prime256v1':
14
+ return 'P-256';
15
+ case 'secp384r1':
16
+ return 'P-384';
17
+ case 'secp521r1':
18
+ return 'P-521';
19
+ case 'secp256k1':
20
+ return 'secp256k1';
21
+ default:
22
+ throw new errors.JOSENotSupported('Unsupported key curve for this operation');
23
+ }
24
+ };
25
+ const getNamedCurve = (kee, raw) => {
26
+ let key;
27
+ if (webcrypto.isCryptoKey(kee)) {
28
+ key = crypto.KeyObject.from(kee);
29
+ }
30
+ else if (is_key_object(kee)) {
31
+ key = kee;
32
+ }
33
+ else if (is_jwk.isJWK(kee)) {
34
+ return kee.crv;
35
+ }
36
+ else {
37
+ throw new TypeError(invalid_key_input.default(kee, ...is_key_like.types));
38
+ }
39
+ if (key.type === 'secret') {
40
+ throw new TypeError('only "private" or "public" type keys can be used for this operation');
41
+ }
42
+ switch (key.asymmetricKeyType) {
43
+ case 'ed25519':
44
+ case 'ed448':
45
+ return `Ed${key.asymmetricKeyType.slice(2)}`;
46
+ case 'x25519':
47
+ case 'x448':
48
+ return `X${key.asymmetricKeyType.slice(1)}`;
49
+ case 'ec': {
50
+ const namedCurve = key.asymmetricKeyDetails.namedCurve;
51
+ return namedCurveToJOSE(namedCurve);
52
+ }
53
+ default:
54
+ throw new TypeError('Invalid asymmetric key type for this operation');
55
+ }
56
+ };
57
+
58
+ module.exports = getNamedCurve;
@@ -0,0 +1,56 @@
1
+ import { KeyObject } from 'node:crypto';
2
+ import { JOSENotSupported } from '../util/errors.mjs';
3
+ import { isCryptoKey } from './webcrypto.mjs';
4
+ import isKeyObject from './is_key_object.mjs';
5
+ import invalidKeyInput from '../lib/invalid_key_input.mjs';
6
+ import { types } from './is_key_like.mjs';
7
+ import { isJWK } from '../lib/is_jwk.mjs';
8
+
9
+ const namedCurveToJOSE = (namedCurve) => {
10
+ switch (namedCurve) {
11
+ case 'prime256v1':
12
+ return 'P-256';
13
+ case 'secp384r1':
14
+ return 'P-384';
15
+ case 'secp521r1':
16
+ return 'P-521';
17
+ case 'secp256k1':
18
+ return 'secp256k1';
19
+ default:
20
+ throw new JOSENotSupported('Unsupported key curve for this operation');
21
+ }
22
+ };
23
+ const getNamedCurve = (kee, raw) => {
24
+ let key;
25
+ if (isCryptoKey(kee)) {
26
+ key = KeyObject.from(kee);
27
+ }
28
+ else if (isKeyObject(kee)) {
29
+ key = kee;
30
+ }
31
+ else if (isJWK(kee)) {
32
+ return kee.crv;
33
+ }
34
+ else {
35
+ throw new TypeError(invalidKeyInput(kee, ...types));
36
+ }
37
+ if (key.type === 'secret') {
38
+ throw new TypeError('only "private" or "public" type keys can be used for this operation');
39
+ }
40
+ switch (key.asymmetricKeyType) {
41
+ case 'ed25519':
42
+ case 'ed448':
43
+ return `Ed${key.asymmetricKeyType.slice(2)}`;
44
+ case 'x25519':
45
+ case 'x448':
46
+ return `X${key.asymmetricKeyType.slice(1)}`;
47
+ case 'ec': {
48
+ const namedCurve = key.asymmetricKeyDetails.namedCurve;
49
+ return namedCurveToJOSE(namedCurve);
50
+ }
51
+ default:
52
+ throw new TypeError('Invalid asymmetric key type for this operation');
53
+ }
54
+ };
55
+
56
+ export { getNamedCurve as default };
@@ -0,0 +1,33 @@
1
+ 'use strict';
2
+
3
+ var crypto = require('node:crypto');
4
+ var webcrypto = require('./webcrypto.js');
5
+ var crypto_key = require('../lib/crypto_key.js');
6
+ var invalid_key_input = require('../lib/invalid_key_input.js');
7
+ var is_key_like = require('./is_key_like.js');
8
+ var is_jwk = require('../lib/is_jwk.js');
9
+
10
+ function getSignVerifyKey(alg, key, usage) {
11
+ if (key instanceof Uint8Array) {
12
+ if (!alg.startsWith('HS')) {
13
+ throw new TypeError(invalid_key_input.default(key, ...is_key_like.types));
14
+ }
15
+ return crypto.createSecretKey(key);
16
+ }
17
+ if (key instanceof crypto.KeyObject) {
18
+ return key;
19
+ }
20
+ if (webcrypto.isCryptoKey(key)) {
21
+ crypto_key.checkSigCryptoKey(key, alg, usage);
22
+ return crypto.KeyObject.from(key);
23
+ }
24
+ if (is_jwk.isJWK(key)) {
25
+ if (alg.startsWith('HS')) {
26
+ return crypto.createSecretKey(Buffer.from(key.k, 'base64url'));
27
+ }
28
+ return key;
29
+ }
30
+ throw new TypeError(invalid_key_input.default(key, ...is_key_like.types, 'Uint8Array', 'JSON Web Key'));
31
+ }
32
+
33
+ module.exports = getSignVerifyKey;
@@ -0,0 +1,31 @@
1
+ import { createSecretKey, KeyObject } from 'node:crypto';
2
+ import { isCryptoKey } from './webcrypto.mjs';
3
+ import { checkSigCryptoKey } from '../lib/crypto_key.mjs';
4
+ import invalidKeyInput from '../lib/invalid_key_input.mjs';
5
+ import { types } from './is_key_like.mjs';
6
+ import { isJWK } from '../lib/is_jwk.mjs';
7
+
8
+ function getSignVerifyKey(alg, key, usage) {
9
+ if (key instanceof Uint8Array) {
10
+ if (!alg.startsWith('HS')) {
11
+ throw new TypeError(invalidKeyInput(key, ...types));
12
+ }
13
+ return createSecretKey(key);
14
+ }
15
+ if (key instanceof KeyObject) {
16
+ return key;
17
+ }
18
+ if (isCryptoKey(key)) {
19
+ checkSigCryptoKey(key, alg, usage);
20
+ return KeyObject.from(key);
21
+ }
22
+ if (isJWK(key)) {
23
+ if (alg.startsWith('HS')) {
24
+ return createSecretKey(Buffer.from(key.k, 'base64url'));
25
+ }
26
+ return key;
27
+ }
28
+ throw new TypeError(invalidKeyInput(key, ...types, 'Uint8Array', 'JSON Web Key'));
29
+ }
30
+
31
+ export { getSignVerifyKey as default };
@@ -0,0 +1,18 @@
1
+ 'use strict';
2
+
3
+ var errors = require('../util/errors.js');
4
+
5
+ function hmacDigest(alg) {
6
+ switch (alg) {
7
+ case 'HS256':
8
+ return 'sha256';
9
+ case 'HS384':
10
+ return 'sha384';
11
+ case 'HS512':
12
+ return 'sha512';
13
+ default:
14
+ throw new errors.JOSENotSupported(`alg ${alg} is not supported either by JOSE or your javascript runtime`);
15
+ }
16
+ }
17
+
18
+ module.exports = hmacDigest;
@@ -0,0 +1,16 @@
1
+ import { JOSENotSupported } from '../util/errors.mjs';
2
+
3
+ function hmacDigest(alg) {
4
+ switch (alg) {
5
+ case 'HS256':
6
+ return 'sha256';
7
+ case 'HS384':
8
+ return 'sha384';
9
+ case 'HS512':
10
+ return 'sha512';
11
+ default:
12
+ throw new JOSENotSupported(`alg ${alg} is not supported either by JOSE or your javascript runtime`);
13
+ }
14
+ }
15
+
16
+ export { hmacDigest as default };
@@ -0,0 +1,15 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var webcrypto = require('./webcrypto.js');
6
+ var is_key_object = require('./is_key_object.js');
7
+
8
+ var isKeyLike = (key) => is_key_object(key) || webcrypto.isCryptoKey(key);
9
+ const types = ['KeyObject'];
10
+ if (globalThis.CryptoKey || webcrypto.default?.CryptoKey) {
11
+ types.push('CryptoKey');
12
+ }
13
+
14
+ exports.default = isKeyLike;
15
+ exports.types = types;
@@ -0,0 +1,10 @@
1
+ import webcrypto, { isCryptoKey } from './webcrypto.mjs';
2
+ import isKeyObject from './is_key_object.mjs';
3
+
4
+ var isKeyLike = (key) => isKeyObject(key) || isCryptoKey(key);
5
+ const types = ['KeyObject'];
6
+ if (globalThis.CryptoKey || webcrypto?.CryptoKey) {
7
+ types.push('CryptoKey');
8
+ }
9
+
10
+ export { isKeyLike as default, types };
@@ -0,0 +1,26 @@
1
+ 'use strict';
2
+
3
+ var util = require('node:util');
4
+
5
+ function _interopNamespaceDefault(e) {
6
+ var n = Object.create(null);
7
+ if (e) {
8
+ Object.keys(e).forEach(function (k) {
9
+ if (k !== 'default') {
10
+ var d = Object.getOwnPropertyDescriptor(e, k);
11
+ Object.defineProperty(n, k, d.get ? d : {
12
+ enumerable: true,
13
+ get: function () { return e[k]; }
14
+ });
15
+ }
16
+ });
17
+ }
18
+ n.default = e;
19
+ return Object.freeze(n);
20
+ }
21
+
22
+ var util__namespace = /*#__PURE__*/_interopNamespaceDefault(util);
23
+
24
+ var isKeyObject = (obj) => util__namespace.types.isKeyObject(obj);
25
+
26
+ module.exports = isKeyObject;
@@ -0,0 +1,5 @@
1
+ import * as util from 'node:util';
2
+
3
+ var isKeyObject = (obj) => util.types.isKeyObject(obj);
4
+
5
+ export { isKeyObject as default };
@@ -0,0 +1,12 @@
1
+ 'use strict';
2
+
3
+ var crypto = require('node:crypto');
4
+
5
+ const parse = (key) => {
6
+ if (key.d) {
7
+ return crypto.createPrivateKey({ format: 'jwk', key });
8
+ }
9
+ return crypto.createPublicKey({ format: 'jwk', key });
10
+ };
11
+
12
+ module.exports = parse;
@@ -0,0 +1,10 @@
1
+ import { createPrivateKey, createPublicKey } from 'node:crypto';
2
+
3
+ const parse = (key) => {
4
+ if (key.d) {
5
+ return createPrivateKey({ format: 'jwk', key });
6
+ }
7
+ return createPublicKey({ format: 'jwk', key });
8
+ };
9
+
10
+ export { parse as default };
@@ -0,0 +1,113 @@
1
+ 'use strict';
2
+
3
+ var crypto = require('node:crypto');
4
+ var get_named_curve = require('./get_named_curve.js');
5
+ var errors = require('../util/errors.js');
6
+ var check_key_length = require('./check_key_length.js');
7
+
8
+ const ecCurveAlgMap = new Map([
9
+ ['ES256', 'P-256'],
10
+ ['ES256K', 'secp256k1'],
11
+ ['ES384', 'P-384'],
12
+ ['ES512', 'P-521'],
13
+ ]);
14
+ function keyForCrypto(alg, key) {
15
+ let asymmetricKeyType;
16
+ let asymmetricKeyDetails;
17
+ let isJWK;
18
+ if (key instanceof crypto.KeyObject) {
19
+ asymmetricKeyType = key.asymmetricKeyType;
20
+ asymmetricKeyDetails = key.asymmetricKeyDetails;
21
+ }
22
+ else {
23
+ isJWK = true;
24
+ switch (key.kty) {
25
+ case 'RSA':
26
+ asymmetricKeyType = 'rsa';
27
+ break;
28
+ case 'EC':
29
+ asymmetricKeyType = 'ec';
30
+ break;
31
+ case 'OKP': {
32
+ if (key.crv === 'Ed25519') {
33
+ asymmetricKeyType = 'ed25519';
34
+ break;
35
+ }
36
+ if (key.crv === 'Ed448') {
37
+ asymmetricKeyType = 'ed448';
38
+ break;
39
+ }
40
+ throw new TypeError('Invalid key for this operation, its crv must be Ed25519 or Ed448');
41
+ }
42
+ default:
43
+ throw new TypeError('Invalid key for this operation, its kty must be RSA, OKP, or EC');
44
+ }
45
+ }
46
+ let options;
47
+ switch (alg) {
48
+ case 'Ed25519':
49
+ if (asymmetricKeyType !== 'ed25519') {
50
+ throw new TypeError(`Invalid key for this operation, its asymmetricKeyType must be ed25519`);
51
+ }
52
+ break;
53
+ case 'EdDSA':
54
+ if (!['ed25519', 'ed448'].includes(asymmetricKeyType)) {
55
+ throw new TypeError('Invalid key for this operation, its asymmetricKeyType must be ed25519 or ed448');
56
+ }
57
+ break;
58
+ case 'RS256':
59
+ case 'RS384':
60
+ case 'RS512':
61
+ if (asymmetricKeyType !== 'rsa') {
62
+ throw new TypeError('Invalid key for this operation, its asymmetricKeyType must be rsa');
63
+ }
64
+ check_key_length(key, alg);
65
+ break;
66
+ case 'PS256':
67
+ case 'PS384':
68
+ case 'PS512':
69
+ if (asymmetricKeyType === 'rsa-pss') {
70
+ const { hashAlgorithm, mgf1HashAlgorithm, saltLength } = asymmetricKeyDetails;
71
+ const length = parseInt(alg.slice(-3), 10);
72
+ if (hashAlgorithm !== undefined &&
73
+ (hashAlgorithm !== `sha${length}` || mgf1HashAlgorithm !== hashAlgorithm)) {
74
+ throw new TypeError(`Invalid key for this operation, its RSA-PSS parameters do not meet the requirements of "alg" ${alg}`);
75
+ }
76
+ if (saltLength !== undefined && saltLength > length >> 3) {
77
+ throw new TypeError(`Invalid key for this operation, its RSA-PSS parameter saltLength does not meet the requirements of "alg" ${alg}`);
78
+ }
79
+ }
80
+ else if (asymmetricKeyType !== 'rsa') {
81
+ throw new TypeError('Invalid key for this operation, its asymmetricKeyType must be rsa or rsa-pss');
82
+ }
83
+ check_key_length(key, alg);
84
+ options = {
85
+ padding: crypto.constants.RSA_PKCS1_PSS_PADDING,
86
+ saltLength: crypto.constants.RSA_PSS_SALTLEN_DIGEST,
87
+ };
88
+ break;
89
+ case 'ES256':
90
+ case 'ES256K':
91
+ case 'ES384':
92
+ case 'ES512': {
93
+ if (asymmetricKeyType !== 'ec') {
94
+ throw new TypeError('Invalid key for this operation, its asymmetricKeyType must be ec');
95
+ }
96
+ const actual = get_named_curve(key);
97
+ const expected = ecCurveAlgMap.get(alg);
98
+ if (actual !== expected) {
99
+ throw new TypeError(`Invalid key curve for the algorithm, its curve must be ${expected}, got ${actual}`);
100
+ }
101
+ options = { dsaEncoding: 'ieee-p1363' };
102
+ break;
103
+ }
104
+ default:
105
+ throw new errors.JOSENotSupported(`alg ${alg} is not supported either by JOSE or your javascript runtime`);
106
+ }
107
+ if (isJWK) {
108
+ return { format: 'jwk', key, ...options };
109
+ }
110
+ return options ? { ...options, key } : key;
111
+ }
112
+
113
+ module.exports = keyForCrypto;