@windrun-huaiin/backend-core 15.0.0 → 16.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 (340) hide show
  1. package/LICENSE +1 -1
  2. package/dist/app/api/stripe/checkout/route.js +2 -2
  3. package/dist/app/api/stripe/checkout/route.mjs +1 -1
  4. package/dist/app/api/stripe/customer-portal/route.js +2 -2
  5. package/dist/app/api/stripe/customer-portal/route.mjs +1 -1
  6. package/dist/app/api/user/anonymous/init/route.js +6 -6
  7. package/dist/app/api/user/anonymous/init/route.mjs +1 -1
  8. package/dist/app/api/webhook/clerk/user/route.js +4 -4
  9. package/dist/app/api/webhook/clerk/user/route.mjs +1 -1
  10. package/dist/app/api/webhook/stripe/route.js +2 -2
  11. package/dist/app/api/webhook/stripe/route.mjs +1 -1
  12. package/dist/auth/auth-middleware.js +3 -3
  13. package/dist/auth/auth-middleware.mjs +1 -1
  14. package/dist/auth/auth-utils.js +10 -10
  15. package/dist/auth/auth-utils.mjs +1 -1
  16. package/dist/index.d.ts +1 -0
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +44 -0
  19. package/dist/index.mjs +8 -1
  20. package/dist/lib/index.js +19 -0
  21. package/dist/lib/index.mjs +1 -1
  22. package/dist/lib/money-price-helper.js +3 -3
  23. package/dist/lib/money-price-helper.mjs +1 -1
  24. package/dist/lib/stripe-config.js +8 -8
  25. package/dist/lib/stripe-config.mjs +1 -1
  26. package/dist/lib/upstash/qstash.d.ts +20 -7
  27. package/dist/lib/upstash/qstash.d.ts.map +1 -1
  28. package/dist/lib/upstash/qstash.js +45 -19
  29. package/dist/lib/upstash/qstash.mjs +35 -9
  30. package/dist/lib/upstash/redis-counter.js +7 -7
  31. package/dist/lib/upstash/redis-counter.mjs +1 -1
  32. package/dist/lib/upstash/redis-favorite.js +9 -9
  33. package/dist/lib/upstash/redis-favorite.mjs +1 -1
  34. package/dist/lib/upstash/redis-like.js +9 -9
  35. package/dist/lib/upstash/redis-like.mjs +1 -1
  36. package/dist/lib/upstash/redis-lock.js +6 -6
  37. package/dist/lib/upstash/redis-lock.mjs +1 -1
  38. package/dist/lib/upstash/redis-structures.d.ts +83 -0
  39. package/dist/lib/upstash/redis-structures.d.ts.map +1 -1
  40. package/dist/lib/upstash/redis-structures.js +245 -25
  41. package/dist/lib/upstash/redis-structures.mjs +203 -2
  42. package/dist/lib/upstash-config.d.ts.map +1 -1
  43. package/dist/lib/upstash-config.js +90 -18
  44. package/dist/lib/upstash-config.mjs +80 -8
  45. package/dist/prisma/prisma-transaction-util.js +2 -2
  46. package/dist/prisma/prisma-transaction-util.mjs +1 -1
  47. package/dist/services/aggregate/anonymous.aggregate.service.js +6 -6
  48. package/dist/services/aggregate/anonymous.aggregate.service.mjs +1 -1
  49. package/dist/services/aggregate/billing.aggregate.service.js +21 -21
  50. package/dist/services/aggregate/billing.aggregate.service.mjs +1 -1
  51. package/dist/services/aggregate/user.aggregate.service.js +10 -10
  52. package/dist/services/aggregate/user.aggregate.service.mjs +1 -1
  53. package/dist/services/ai/abort.d.ts +2 -0
  54. package/dist/services/ai/abort.d.ts.map +1 -0
  55. package/dist/services/ai/abort.js +24 -0
  56. package/dist/services/ai/abort.mjs +22 -0
  57. package/dist/services/ai/env.d.ts +21 -0
  58. package/dist/services/ai/env.d.ts.map +1 -0
  59. package/dist/services/ai/env.js +85 -0
  60. package/dist/services/ai/env.mjs +80 -0
  61. package/dist/services/ai/error.d.ts +3 -0
  62. package/dist/services/ai/error.d.ts.map +1 -0
  63. package/dist/services/ai/error.js +54 -0
  64. package/dist/services/ai/error.mjs +52 -0
  65. package/dist/services/ai/index.d.ts +9 -0
  66. package/dist/services/ai/index.d.ts.map +1 -0
  67. package/dist/services/ai/index.js +30 -0
  68. package/dist/services/ai/index.mjs +7 -0
  69. package/dist/services/ai/message-builder.d.ts +4 -0
  70. package/dist/services/ai/message-builder.d.ts.map +1 -0
  71. package/dist/services/ai/message-builder.js +15 -0
  72. package/dist/services/ai/message-builder.mjs +13 -0
  73. package/dist/services/ai/mock.d.ts +30 -0
  74. package/dist/services/ai/mock.d.ts.map +1 -0
  75. package/dist/services/ai/mock.js +314 -0
  76. package/dist/services/ai/mock.mjs +308 -0
  77. package/dist/services/ai/openrouter-client.d.ts +12 -0
  78. package/dist/services/ai/openrouter-client.d.ts.map +1 -0
  79. package/dist/services/ai/openrouter-client.js +81 -0
  80. package/dist/services/ai/openrouter-client.mjs +78 -0
  81. package/dist/services/ai/route.d.ts +6 -0
  82. package/dist/services/ai/route.d.ts.map +1 -0
  83. package/dist/services/ai/route.js +178 -0
  84. package/dist/services/ai/route.mjs +173 -0
  85. package/dist/services/ai/types.d.ts +98 -0
  86. package/dist/services/ai/types.d.ts.map +1 -0
  87. package/dist/services/context/user-context-service.js +3 -3
  88. package/dist/services/context/user-context-service.mjs +1 -1
  89. package/dist/services/database/apilog.service.js +14 -14
  90. package/dist/services/database/apilog.service.mjs +1 -1
  91. package/dist/services/database/credit.service.js +20 -20
  92. package/dist/services/database/credit.service.mjs +1 -1
  93. package/dist/services/database/creditAuditLog.service.js +13 -13
  94. package/dist/services/database/creditAuditLog.service.mjs +1 -1
  95. package/dist/services/database/subscription.service.js +16 -16
  96. package/dist/services/database/subscription.service.mjs +1 -1
  97. package/dist/services/database/transaction.service.js +18 -18
  98. package/dist/services/database/transaction.service.mjs +1 -1
  99. package/dist/services/database/user.service.js +14 -14
  100. package/dist/services/database/user.service.mjs +1 -1
  101. package/dist/services/database/userBackup.service.js +15 -15
  102. package/dist/services/database/userBackup.service.mjs +1 -1
  103. package/dist/services/stripe/webhook-handler.js +13 -13
  104. package/dist/services/stripe/webhook-handler.mjs +3 -3
  105. package/package.json +14 -4
  106. package/src/index.ts +1 -0
  107. package/src/lib/upstash/qstash.ts +55 -15
  108. package/src/lib/upstash/redis-structures.ts +248 -0
  109. package/src/lib/upstash-config.ts +106 -4
  110. package/src/services/ai/abort.ts +26 -0
  111. package/src/services/ai/env.ts +120 -0
  112. package/src/services/ai/error.ts +64 -0
  113. package/src/services/ai/index.ts +8 -0
  114. package/src/services/ai/message-builder.ts +17 -0
  115. package/src/services/ai/mock.ts +378 -0
  116. package/src/services/ai/openrouter-client.ts +94 -0
  117. package/src/services/ai/route.ts +218 -0
  118. package/src/services/ai/types.ts +131 -0
  119. package/dist/_virtual/_commonjs-dynamic-modules.js +0 -7
  120. package/dist/_virtual/_commonjs-dynamic-modules.mjs +0 -5
  121. package/dist/_virtual/_commonjsHelpers.js +0 -10
  122. package/dist/_virtual/_commonjsHelpers.mjs +0 -7
  123. package/dist/_virtual/aes.js +0 -5
  124. package/dist/_virtual/aes.mjs +0 -3
  125. package/dist/_virtual/blowfish.js +0 -5
  126. package/dist/_virtual/blowfish.mjs +0 -3
  127. package/dist/_virtual/cipher-core.js +0 -5
  128. package/dist/_virtual/cipher-core.mjs +0 -3
  129. package/dist/_virtual/core.js +0 -5
  130. package/dist/_virtual/core.mjs +0 -3
  131. package/dist/_virtual/enc-base64.js +0 -5
  132. package/dist/_virtual/enc-base64.mjs +0 -3
  133. package/dist/_virtual/enc-base64url.js +0 -5
  134. package/dist/_virtual/enc-base64url.mjs +0 -3
  135. package/dist/_virtual/enc-utf16.js +0 -5
  136. package/dist/_virtual/enc-utf16.mjs +0 -3
  137. package/dist/_virtual/evpkdf.js +0 -5
  138. package/dist/_virtual/evpkdf.mjs +0 -3
  139. package/dist/_virtual/format-hex.js +0 -5
  140. package/dist/_virtual/format-hex.mjs +0 -3
  141. package/dist/_virtual/hmac.js +0 -5
  142. package/dist/_virtual/hmac.mjs +0 -3
  143. package/dist/_virtual/index.js +0 -11
  144. package/dist/_virtual/index.mjs +0 -7
  145. package/dist/_virtual/index2.js +0 -5
  146. package/dist/_virtual/index2.mjs +0 -3
  147. package/dist/_virtual/lib-typedarrays.js +0 -5
  148. package/dist/_virtual/lib-typedarrays.mjs +0 -3
  149. package/dist/_virtual/md5.js +0 -5
  150. package/dist/_virtual/md5.mjs +0 -3
  151. package/dist/_virtual/mode-cfb.js +0 -5
  152. package/dist/_virtual/mode-cfb.mjs +0 -3
  153. package/dist/_virtual/mode-ctr-gladman.js +0 -5
  154. package/dist/_virtual/mode-ctr-gladman.mjs +0 -3
  155. package/dist/_virtual/mode-ctr.js +0 -5
  156. package/dist/_virtual/mode-ctr.mjs +0 -3
  157. package/dist/_virtual/mode-ecb.js +0 -5
  158. package/dist/_virtual/mode-ecb.mjs +0 -3
  159. package/dist/_virtual/mode-ofb.js +0 -5
  160. package/dist/_virtual/mode-ofb.mjs +0 -3
  161. package/dist/_virtual/pad-ansix923.js +0 -5
  162. package/dist/_virtual/pad-ansix923.mjs +0 -3
  163. package/dist/_virtual/pad-iso10126.js +0 -5
  164. package/dist/_virtual/pad-iso10126.mjs +0 -3
  165. package/dist/_virtual/pad-iso97971.js +0 -5
  166. package/dist/_virtual/pad-iso97971.mjs +0 -3
  167. package/dist/_virtual/pad-nopadding.js +0 -5
  168. package/dist/_virtual/pad-nopadding.mjs +0 -3
  169. package/dist/_virtual/pad-zeropadding.js +0 -5
  170. package/dist/_virtual/pad-zeropadding.mjs +0 -3
  171. package/dist/_virtual/pbkdf2.js +0 -5
  172. package/dist/_virtual/pbkdf2.mjs +0 -3
  173. package/dist/_virtual/rabbit-legacy.js +0 -5
  174. package/dist/_virtual/rabbit-legacy.mjs +0 -3
  175. package/dist/_virtual/rabbit.js +0 -5
  176. package/dist/_virtual/rabbit.mjs +0 -3
  177. package/dist/_virtual/rc4.js +0 -5
  178. package/dist/_virtual/rc4.mjs +0 -3
  179. package/dist/_virtual/ripemd160.js +0 -5
  180. package/dist/_virtual/ripemd160.mjs +0 -3
  181. package/dist/_virtual/sha1.js +0 -5
  182. package/dist/_virtual/sha1.mjs +0 -3
  183. package/dist/_virtual/sha224.js +0 -5
  184. package/dist/_virtual/sha224.mjs +0 -3
  185. package/dist/_virtual/sha256.js +0 -5
  186. package/dist/_virtual/sha256.mjs +0 -3
  187. package/dist/_virtual/sha3.js +0 -5
  188. package/dist/_virtual/sha3.mjs +0 -3
  189. package/dist/_virtual/sha384.js +0 -5
  190. package/dist/_virtual/sha384.mjs +0 -3
  191. package/dist/_virtual/sha512.js +0 -5
  192. package/dist/_virtual/sha512.mjs +0 -3
  193. package/dist/_virtual/tripledes.js +0 -5
  194. package/dist/_virtual/tripledes.mjs +0 -3
  195. package/dist/_virtual/x64-core.js +0 -5
  196. package/dist/_virtual/x64-core.mjs +0 -3
  197. package/dist/node_modules/.pnpm/@rollup_plugin-typescript@12.1.4_rollup@4.46.2_tslib@2.8.1_typescript@5.9.3/node_modules/tslib/tslib.es6.js +0 -48
  198. package/dist/node_modules/.pnpm/@rollup_plugin-typescript@12.1.4_rollup@4.46.2_tslib@2.8.1_typescript@5.9.3/node_modules/tslib/tslib.es6.mjs +0 -45
  199. package/dist/node_modules/.pnpm/@upstash_qstash@2.10.1/node_modules/@upstash/qstash/chunk-35B33QW3.js +0 -1848
  200. package/dist/node_modules/.pnpm/@upstash_qstash@2.10.1/node_modules/@upstash/qstash/chunk-35B33QW3.mjs +0 -1830
  201. package/dist/node_modules/.pnpm/@upstash_redis@1.37.0/node_modules/@upstash/redis/chunk-IH7W44G6.js +0 -5308
  202. package/dist/node_modules/.pnpm/@upstash_redis@1.37.0/node_modules/@upstash/redis/chunk-IH7W44G6.mjs +0 -5302
  203. package/dist/node_modules/.pnpm/@upstash_redis@1.37.0/node_modules/@upstash/redis/nodejs.js +0 -116
  204. package/dist/node_modules/.pnpm/@upstash_redis@1.37.0/node_modules/@upstash/redis/nodejs.mjs +0 -113
  205. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/aes.js +0 -248
  206. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/aes.mjs +0 -246
  207. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/blowfish.js +0 -485
  208. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/blowfish.mjs +0 -483
  209. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/cipher-core.js +0 -906
  210. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/cipher-core.mjs +0 -904
  211. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/core.js +0 -818
  212. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/core.mjs +0 -816
  213. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/enc-base64.js +0 -146
  214. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/enc-base64.mjs +0 -144
  215. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/enc-base64url.js +0 -158
  216. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/enc-base64url.mjs +0 -156
  217. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/enc-utf16.js +0 -159
  218. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/enc-utf16.mjs +0 -157
  219. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/evpkdf.js +0 -146
  220. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/evpkdf.mjs +0 -144
  221. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/format-hex.js +0 -77
  222. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/format-hex.mjs +0 -75
  223. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/hmac.js +0 -153
  224. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/hmac.mjs +0 -151
  225. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/index.js +0 -62
  226. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/index.mjs +0 -60
  227. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/lib-typedarrays.js +0 -86
  228. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/lib-typedarrays.mjs +0 -84
  229. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/md5.js +0 -278
  230. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/md5.mjs +0 -276
  231. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/mode-cfb.js +0 -91
  232. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/mode-cfb.mjs +0 -89
  233. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/mode-ctr-gladman.js +0 -127
  234. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/mode-ctr-gladman.mjs +0 -125
  235. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/mode-ctr.js +0 -69
  236. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/mode-ctr.mjs +0 -67
  237. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/mode-ecb.js +0 -51
  238. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/mode-ecb.mjs +0 -49
  239. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/mode-ofb.js +0 -65
  240. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/mode-ofb.mjs +0 -63
  241. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pad-ansix923.js +0 -60
  242. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pad-ansix923.mjs +0 -58
  243. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pad-iso10126.js +0 -55
  244. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pad-iso10126.mjs +0 -53
  245. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pad-iso97971.js +0 -51
  246. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pad-iso97971.mjs +0 -49
  247. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pad-nopadding.js +0 -41
  248. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pad-nopadding.mjs +0 -39
  249. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pad-zeropadding.js +0 -58
  250. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pad-zeropadding.mjs +0 -56
  251. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pbkdf2.js +0 -157
  252. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pbkdf2.mjs +0 -155
  253. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/rabbit-legacy.js +0 -204
  254. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/rabbit-legacy.mjs +0 -202
  255. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/rabbit.js +0 -206
  256. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/rabbit.mjs +0 -204
  257. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/rc4.js +0 -153
  258. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/rc4.mjs +0 -151
  259. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/ripemd160.js +0 -277
  260. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/ripemd160.mjs +0 -275
  261. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha1.js +0 -160
  262. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha1.mjs +0 -158
  263. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha224.js +0 -91
  264. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha224.mjs +0 -89
  265. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha256.js +0 -209
  266. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha256.mjs +0 -207
  267. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha3.js +0 -337
  268. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha3.mjs +0 -335
  269. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha384.js +0 -95
  270. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha384.mjs +0 -93
  271. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha512.js +0 -337
  272. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha512.mjs +0 -335
  273. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/tripledes.js +0 -793
  274. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/tripledes.mjs +0 -791
  275. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/x64-core.js +0 -314
  276. package/dist/node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/x64-core.mjs +0 -312
  277. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/jws/compact/verify.js +0 -26
  278. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/jws/compact/verify.mjs +0 -24
  279. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/jws/flattened/verify.js +0 -127
  280. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/jws/flattened/verify.mjs +0 -125
  281. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/jwt/verify.js +0 -20
  282. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/jwt/verify.mjs +0 -18
  283. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/key/import.js +0 -31
  284. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/key/import.mjs +0 -29
  285. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/lib/buffer_utils.js +0 -18
  286. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/lib/buffer_utils.mjs +0 -14
  287. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/lib/check_key_type.js +0 -82
  288. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/lib/check_key_type.mjs +0 -80
  289. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/lib/crypto_key.js +0 -103
  290. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/lib/crypto_key.mjs +0 -101
  291. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/lib/epoch.js +0 -7
  292. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/lib/epoch.mjs +0 -3
  293. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/lib/invalid_key_input.js +0 -38
  294. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/lib/invalid_key_input.mjs +0 -33
  295. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/lib/is_disjoint.js +0 -27
  296. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/lib/is_disjoint.mjs +0 -23
  297. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/lib/is_jwk.js +0 -21
  298. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/lib/is_jwk.mjs +0 -16
  299. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/lib/is_object.js +0 -22
  300. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/lib/is_object.mjs +0 -18
  301. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/lib/jwt_claims_set.js +0 -111
  302. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/lib/jwt_claims_set.mjs +0 -107
  303. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/lib/secs.js +0 -61
  304. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/lib/secs.mjs +0 -57
  305. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/lib/validate_algorithms.js +0 -16
  306. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/lib/validate_algorithms.mjs +0 -12
  307. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/lib/validate_crit.js +0 -40
  308. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/lib/validate_crit.mjs +0 -36
  309. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/runtime/base64url.js +0 -15
  310. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/runtime/base64url.mjs +0 -13
  311. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/runtime/check_key_length.js +0 -23
  312. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/runtime/check_key_length.mjs +0 -19
  313. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/runtime/dsa_digest.js +0 -30
  314. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/runtime/dsa_digest.mjs +0 -26
  315. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/runtime/get_named_curve.js +0 -60
  316. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/runtime/get_named_curve.mjs +0 -56
  317. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/runtime/get_sign_verify_key.js +0 -35
  318. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/runtime/get_sign_verify_key.mjs +0 -31
  319. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/runtime/hmac_digest.js +0 -20
  320. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/runtime/hmac_digest.mjs +0 -16
  321. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/runtime/is_key_like.js +0 -15
  322. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/runtime/is_key_like.mjs +0 -10
  323. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/runtime/is_key_object.js +0 -28
  324. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/runtime/is_key_object.mjs +0 -5
  325. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/runtime/jwk_to_key.js +0 -14
  326. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/runtime/jwk_to_key.mjs +0 -10
  327. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/runtime/node_key.js +0 -115
  328. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/runtime/node_key.mjs +0 -111
  329. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/runtime/sign.js +0 -42
  330. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/runtime/sign.mjs +0 -19
  331. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/runtime/verify.js +0 -54
  332. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/runtime/verify.mjs +0 -31
  333. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/runtime/webcrypto.js +0 -32
  334. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/runtime/webcrypto.mjs +0 -7
  335. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/util/errors.js +0 -69
  336. package/dist/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/esm/util/errors.mjs +0 -60
  337. package/dist/node_modules/.pnpm/neverthrow@7.2.0/node_modules/neverthrow/dist/index.es.js +0 -422
  338. package/dist/node_modules/.pnpm/neverthrow@7.2.0/node_modules/neverthrow/dist/index.es.mjs +0 -415
  339. package/dist/node_modules/.pnpm/uncrypto@0.1.3/node_modules/uncrypto/dist/crypto.web.js +0 -6
  340. package/dist/node_modules/.pnpm/uncrypto@0.1.3/node_modules/uncrypto/dist/crypto.web.mjs +0 -4
@@ -1,127 +0,0 @@
1
- 'use strict';
2
-
3
- var base64url = require('../../runtime/base64url.js');
4
- var verify = require('../../runtime/verify.js');
5
- var errors = require('../../util/errors.js');
6
- var buffer_utils = require('../../lib/buffer_utils.js');
7
- var is_disjoint = require('../../lib/is_disjoint.js');
8
- var is_object = require('../../lib/is_object.js');
9
- var check_key_type = require('../../lib/check_key_type.js');
10
- var validate_crit = require('../../lib/validate_crit.js');
11
- var validate_algorithms = require('../../lib/validate_algorithms.js');
12
- var is_jwk = require('../../lib/is_jwk.js');
13
- var _import = require('../../key/import.js');
14
-
15
- async function flattenedVerify(jws, key, options) {
16
- if (!is_object.default(jws)) {
17
- throw new errors.JWSInvalid('Flattened JWS must be an object');
18
- }
19
- if (jws.protected === undefined && jws.header === undefined) {
20
- throw new errors.JWSInvalid('Flattened JWS must have either of the "protected" or "header" members');
21
- }
22
- if (jws.protected !== undefined && typeof jws.protected !== 'string') {
23
- throw new errors.JWSInvalid('JWS Protected Header incorrect type');
24
- }
25
- if (jws.payload === undefined) {
26
- throw new errors.JWSInvalid('JWS Payload missing');
27
- }
28
- if (typeof jws.signature !== 'string') {
29
- throw new errors.JWSInvalid('JWS Signature missing or incorrect type');
30
- }
31
- if (jws.header !== undefined && !is_object.default(jws.header)) {
32
- throw new errors.JWSInvalid('JWS Unprotected Header incorrect type');
33
- }
34
- let parsedProt = {};
35
- if (jws.protected) {
36
- try {
37
- const protectedHeader = base64url.decode(jws.protected);
38
- parsedProt = JSON.parse(buffer_utils.decoder.decode(protectedHeader));
39
- }
40
- catch {
41
- throw new errors.JWSInvalid('JWS Protected Header is invalid');
42
- }
43
- }
44
- if (!is_disjoint.default(parsedProt, jws.header)) {
45
- throw new errors.JWSInvalid('JWS Protected and JWS Unprotected Header Parameter names must be disjoint');
46
- }
47
- const joseHeader = {
48
- ...parsedProt,
49
- ...jws.header,
50
- };
51
- const extensions = validate_crit.default(errors.JWSInvalid, new Map([['b64', true]]), options?.crit, parsedProt, joseHeader);
52
- let b64 = true;
53
- if (extensions.has('b64')) {
54
- b64 = parsedProt.b64;
55
- if (typeof b64 !== 'boolean') {
56
- throw new errors.JWSInvalid('The "b64" (base64url-encode payload) Header Parameter must be a boolean');
57
- }
58
- }
59
- const { alg } = joseHeader;
60
- if (typeof alg !== 'string' || !alg) {
61
- throw new errors.JWSInvalid('JWS "alg" (Algorithm) Header Parameter missing or invalid');
62
- }
63
- const algorithms = options && validate_algorithms.default('algorithms', options.algorithms);
64
- if (algorithms && !algorithms.has(alg)) {
65
- throw new errors.JOSEAlgNotAllowed('"alg" (Algorithm) Header Parameter value not allowed');
66
- }
67
- if (b64) {
68
- if (typeof jws.payload !== 'string') {
69
- throw new errors.JWSInvalid('JWS Payload must be a string');
70
- }
71
- }
72
- else if (typeof jws.payload !== 'string' && !(jws.payload instanceof Uint8Array)) {
73
- throw new errors.JWSInvalid('JWS Payload must be a string or an Uint8Array instance');
74
- }
75
- let resolvedKey = false;
76
- if (typeof key === 'function') {
77
- key = await key(parsedProt, jws);
78
- resolvedKey = true;
79
- check_key_type.checkKeyTypeWithJwk(alg, key, 'verify');
80
- if (is_jwk.isJWK(key)) {
81
- key = await _import.importJWK(key, alg);
82
- }
83
- }
84
- else {
85
- check_key_type.checkKeyTypeWithJwk(alg, key, 'verify');
86
- }
87
- const data = buffer_utils.concat(buffer_utils.encoder.encode(jws.protected ?? ''), buffer_utils.encoder.encode('.'), typeof jws.payload === 'string' ? buffer_utils.encoder.encode(jws.payload) : jws.payload);
88
- let signature;
89
- try {
90
- signature = base64url.decode(jws.signature);
91
- }
92
- catch {
93
- throw new errors.JWSInvalid('Failed to base64url decode the signature');
94
- }
95
- const verified = await verify.default(alg, key, signature, data);
96
- if (!verified) {
97
- throw new errors.JWSSignatureVerificationFailed();
98
- }
99
- let payload;
100
- if (b64) {
101
- try {
102
- payload = base64url.decode(jws.payload);
103
- }
104
- catch {
105
- throw new errors.JWSInvalid('Failed to base64url decode the payload');
106
- }
107
- }
108
- else if (typeof jws.payload === 'string') {
109
- payload = buffer_utils.encoder.encode(jws.payload);
110
- }
111
- else {
112
- payload = jws.payload;
113
- }
114
- const result = { payload };
115
- if (jws.protected !== undefined) {
116
- result.protectedHeader = parsedProt;
117
- }
118
- if (jws.header !== undefined) {
119
- result.unprotectedHeader = jws.header;
120
- }
121
- if (resolvedKey) {
122
- return { ...result, key };
123
- }
124
- return result;
125
- }
126
-
127
- exports.flattenedVerify = flattenedVerify;
@@ -1,125 +0,0 @@
1
- import { decode } from '../../runtime/base64url.mjs';
2
- import verify from '../../runtime/verify.mjs';
3
- import { JWSInvalid, JOSEAlgNotAllowed, JWSSignatureVerificationFailed } from '../../util/errors.mjs';
4
- import { decoder, concat, encoder } from '../../lib/buffer_utils.mjs';
5
- import isDisjoint from '../../lib/is_disjoint.mjs';
6
- import isObject from '../../lib/is_object.mjs';
7
- import { checkKeyTypeWithJwk } from '../../lib/check_key_type.mjs';
8
- import validateCrit from '../../lib/validate_crit.mjs';
9
- import validateAlgorithms from '../../lib/validate_algorithms.mjs';
10
- import { isJWK } from '../../lib/is_jwk.mjs';
11
- import { importJWK } from '../../key/import.mjs';
12
-
13
- async function flattenedVerify(jws, key, options) {
14
- if (!isObject(jws)) {
15
- throw new JWSInvalid('Flattened JWS must be an object');
16
- }
17
- if (jws.protected === undefined && jws.header === undefined) {
18
- throw new JWSInvalid('Flattened JWS must have either of the "protected" or "header" members');
19
- }
20
- if (jws.protected !== undefined && typeof jws.protected !== 'string') {
21
- throw new JWSInvalid('JWS Protected Header incorrect type');
22
- }
23
- if (jws.payload === undefined) {
24
- throw new JWSInvalid('JWS Payload missing');
25
- }
26
- if (typeof jws.signature !== 'string') {
27
- throw new JWSInvalid('JWS Signature missing or incorrect type');
28
- }
29
- if (jws.header !== undefined && !isObject(jws.header)) {
30
- throw new JWSInvalid('JWS Unprotected Header incorrect type');
31
- }
32
- let parsedProt = {};
33
- if (jws.protected) {
34
- try {
35
- const protectedHeader = decode(jws.protected);
36
- parsedProt = JSON.parse(decoder.decode(protectedHeader));
37
- }
38
- catch {
39
- throw new JWSInvalid('JWS Protected Header is invalid');
40
- }
41
- }
42
- if (!isDisjoint(parsedProt, jws.header)) {
43
- throw new JWSInvalid('JWS Protected and JWS Unprotected Header Parameter names must be disjoint');
44
- }
45
- const joseHeader = {
46
- ...parsedProt,
47
- ...jws.header,
48
- };
49
- const extensions = validateCrit(JWSInvalid, new Map([['b64', true]]), options?.crit, parsedProt, joseHeader);
50
- let b64 = true;
51
- if (extensions.has('b64')) {
52
- b64 = parsedProt.b64;
53
- if (typeof b64 !== 'boolean') {
54
- throw new JWSInvalid('The "b64" (base64url-encode payload) Header Parameter must be a boolean');
55
- }
56
- }
57
- const { alg } = joseHeader;
58
- if (typeof alg !== 'string' || !alg) {
59
- throw new JWSInvalid('JWS "alg" (Algorithm) Header Parameter missing or invalid');
60
- }
61
- const algorithms = options && validateAlgorithms('algorithms', options.algorithms);
62
- if (algorithms && !algorithms.has(alg)) {
63
- throw new JOSEAlgNotAllowed('"alg" (Algorithm) Header Parameter value not allowed');
64
- }
65
- if (b64) {
66
- if (typeof jws.payload !== 'string') {
67
- throw new JWSInvalid('JWS Payload must be a string');
68
- }
69
- }
70
- else if (typeof jws.payload !== 'string' && !(jws.payload instanceof Uint8Array)) {
71
- throw new JWSInvalid('JWS Payload must be a string or an Uint8Array instance');
72
- }
73
- let resolvedKey = false;
74
- if (typeof key === 'function') {
75
- key = await key(parsedProt, jws);
76
- resolvedKey = true;
77
- checkKeyTypeWithJwk(alg, key, 'verify');
78
- if (isJWK(key)) {
79
- key = await importJWK(key, alg);
80
- }
81
- }
82
- else {
83
- checkKeyTypeWithJwk(alg, key, 'verify');
84
- }
85
- const data = concat(encoder.encode(jws.protected ?? ''), encoder.encode('.'), typeof jws.payload === 'string' ? encoder.encode(jws.payload) : jws.payload);
86
- let signature;
87
- try {
88
- signature = decode(jws.signature);
89
- }
90
- catch {
91
- throw new JWSInvalid('Failed to base64url decode the signature');
92
- }
93
- const verified = await verify(alg, key, signature, data);
94
- if (!verified) {
95
- throw new JWSSignatureVerificationFailed();
96
- }
97
- let payload;
98
- if (b64) {
99
- try {
100
- payload = decode(jws.payload);
101
- }
102
- catch {
103
- throw new JWSInvalid('Failed to base64url decode the payload');
104
- }
105
- }
106
- else if (typeof jws.payload === 'string') {
107
- payload = encoder.encode(jws.payload);
108
- }
109
- else {
110
- payload = jws.payload;
111
- }
112
- const result = { payload };
113
- if (jws.protected !== undefined) {
114
- result.protectedHeader = parsedProt;
115
- }
116
- if (jws.header !== undefined) {
117
- result.unprotectedHeader = jws.header;
118
- }
119
- if (resolvedKey) {
120
- return { ...result, key };
121
- }
122
- return result;
123
- }
124
-
125
- export { flattenedVerify };
@@ -1,20 +0,0 @@
1
- 'use strict';
2
-
3
- var verify = require('../jws/compact/verify.js');
4
- var jwt_claims_set = require('../lib/jwt_claims_set.js');
5
- var errors = require('../util/errors.js');
6
-
7
- async function jwtVerify(jwt, key, options) {
8
- const verified = await verify.compactVerify(jwt, key, options);
9
- if (verified.protectedHeader.crit?.includes('b64') && verified.protectedHeader.b64 === false) {
10
- throw new errors.JWTInvalid('JWTs MUST NOT use unencoded payload');
11
- }
12
- const payload = jwt_claims_set.default(verified.protectedHeader, verified.payload, options);
13
- const result = { payload, protectedHeader: verified.protectedHeader };
14
- if (typeof key === 'function') {
15
- return { ...result, key: verified.key };
16
- }
17
- return result;
18
- }
19
-
20
- exports.jwtVerify = jwtVerify;
@@ -1,18 +0,0 @@
1
- import { compactVerify } from '../jws/compact/verify.mjs';
2
- import jwtPayload from '../lib/jwt_claims_set.mjs';
3
- import { JWTInvalid } from '../util/errors.mjs';
4
-
5
- async function jwtVerify(jwt, key, options) {
6
- const verified = await compactVerify(jwt, key, options);
7
- if (verified.protectedHeader.crit?.includes('b64') && verified.protectedHeader.b64 === false) {
8
- throw new JWTInvalid('JWTs MUST NOT use unencoded payload');
9
- }
10
- const payload = jwtPayload(verified.protectedHeader, verified.payload, options);
11
- const result = { payload, protectedHeader: verified.protectedHeader };
12
- if (typeof key === 'function') {
13
- return { ...result, key: verified.key };
14
- }
15
- return result;
16
- }
17
-
18
- export { jwtVerify };
@@ -1,31 +0,0 @@
1
- 'use strict';
2
-
3
- var base64url = require('../runtime/base64url.js');
4
- var jwk_to_key = require('../runtime/jwk_to_key.js');
5
- var errors = require('../util/errors.js');
6
- var is_object = require('../lib/is_object.js');
7
-
8
- async function importJWK(jwk, alg) {
9
- if (!is_object.default(jwk)) {
10
- throw new TypeError('JWK must be an object');
11
- }
12
- alg ||= jwk.alg;
13
- switch (jwk.kty) {
14
- case 'oct':
15
- if (typeof jwk.k !== 'string' || !jwk.k) {
16
- throw new TypeError('missing "k" (Key Value) Parameter value');
17
- }
18
- return base64url.decode(jwk.k);
19
- case 'RSA':
20
- if ('oth' in jwk && jwk.oth !== undefined) {
21
- throw new errors.JOSENotSupported('RSA JWK "oth" (Other Primes Info) Parameter value is not supported');
22
- }
23
- case 'EC':
24
- case 'OKP':
25
- return jwk_to_key.default({ ...jwk, alg });
26
- default:
27
- throw new errors.JOSENotSupported('Unsupported "kty" (Key Type) Parameter value');
28
- }
29
- }
30
-
31
- exports.importJWK = importJWK;
@@ -1,29 +0,0 @@
1
- import { decode } from '../runtime/base64url.mjs';
2
- import parse from '../runtime/jwk_to_key.mjs';
3
- import { JOSENotSupported } from '../util/errors.mjs';
4
- import isObject from '../lib/is_object.mjs';
5
-
6
- async function importJWK(jwk, alg) {
7
- if (!isObject(jwk)) {
8
- throw new TypeError('JWK must be an object');
9
- }
10
- alg ||= jwk.alg;
11
- switch (jwk.kty) {
12
- case 'oct':
13
- if (typeof jwk.k !== 'string' || !jwk.k) {
14
- throw new TypeError('missing "k" (Key Value) Parameter value');
15
- }
16
- return decode(jwk.k);
17
- case 'RSA':
18
- if ('oth' in jwk && jwk.oth !== undefined) {
19
- throw new JOSENotSupported('RSA JWK "oth" (Other Primes Info) Parameter value is not supported');
20
- }
21
- case 'EC':
22
- case 'OKP':
23
- return parse({ ...jwk, alg });
24
- default:
25
- throw new JOSENotSupported('Unsupported "kty" (Key Type) Parameter value');
26
- }
27
- }
28
-
29
- export { importJWK };
@@ -1,18 +0,0 @@
1
- 'use strict';
2
-
3
- const encoder = new TextEncoder();
4
- const decoder = new TextDecoder();
5
- function concat(...buffers) {
6
- const size = buffers.reduce((acc, { length }) => acc + length, 0);
7
- const buf = new Uint8Array(size);
8
- let i = 0;
9
- for (const buffer of buffers) {
10
- buf.set(buffer, i);
11
- i += buffer.length;
12
- }
13
- return buf;
14
- }
15
-
16
- exports.concat = concat;
17
- exports.decoder = decoder;
18
- exports.encoder = encoder;
@@ -1,14 +0,0 @@
1
- const encoder = new TextEncoder();
2
- const decoder = new TextDecoder();
3
- function concat(...buffers) {
4
- const size = buffers.reduce((acc, { length }) => acc + length, 0);
5
- const buf = new Uint8Array(size);
6
- let i = 0;
7
- for (const buffer of buffers) {
8
- buf.set(buffer, i);
9
- i += buffer.length;
10
- }
11
- return buf;
12
- }
13
-
14
- export { concat, decoder, encoder };
@@ -1,82 +0,0 @@
1
- 'use strict';
2
-
3
- var invalid_key_input = require('./invalid_key_input.js');
4
- var is_key_like = require('../runtime/is_key_like.js');
5
- var is_jwk = require('./is_jwk.js');
6
-
7
- const tag = (key) => key?.[Symbol.toStringTag];
8
- const jwkMatchesOp = (alg, key, usage) => {
9
- if (key.use !== undefined && key.use !== 'sig') {
10
- throw new TypeError('Invalid key for this operation, when present its use must be sig');
11
- }
12
- if (key.key_ops !== undefined && key.key_ops.includes?.(usage) !== true) {
13
- throw new TypeError(`Invalid key for this operation, when present its key_ops must include ${usage}`);
14
- }
15
- if (key.alg !== undefined && key.alg !== alg) {
16
- throw new TypeError(`Invalid key for this operation, when present its alg must be ${alg}`);
17
- }
18
- return true;
19
- };
20
- const symmetricTypeCheck = (alg, key, usage, allowJwk) => {
21
- if (key instanceof Uint8Array)
22
- return;
23
- if (allowJwk && is_jwk.isJWK(key)) {
24
- if (is_jwk.isSecretJWK(key) && jwkMatchesOp(alg, key, usage))
25
- return;
26
- throw new TypeError(`JSON Web Key for symmetric algorithms must have JWK "kty" (Key Type) equal to "oct" and the JWK "k" (Key Value) present`);
27
- }
28
- if (!is_key_like.default(key)) {
29
- throw new TypeError(invalid_key_input.withAlg(alg, key, ...is_key_like.types, 'Uint8Array', allowJwk ? 'JSON Web Key' : null));
30
- }
31
- if (key.type !== 'secret') {
32
- throw new TypeError(`${tag(key)} instances for symmetric algorithms must be of type "secret"`);
33
- }
34
- };
35
- const asymmetricTypeCheck = (alg, key, usage, allowJwk) => {
36
- if (allowJwk && is_jwk.isJWK(key)) {
37
- switch (usage) {
38
- case 'sign':
39
- if (is_jwk.isPrivateJWK(key) && jwkMatchesOp(alg, key, usage))
40
- return;
41
- throw new TypeError(`JSON Web Key for this operation be a private JWK`);
42
- case 'verify':
43
- if (is_jwk.isPublicJWK(key) && jwkMatchesOp(alg, key, usage))
44
- return;
45
- throw new TypeError(`JSON Web Key for this operation be a public JWK`);
46
- }
47
- }
48
- if (!is_key_like.default(key)) {
49
- throw new TypeError(invalid_key_input.withAlg(alg, key, ...is_key_like.types, allowJwk ? 'JSON Web Key' : null));
50
- }
51
- if (key.type === 'secret') {
52
- throw new TypeError(`${tag(key)} instances for asymmetric algorithms must not be of type "secret"`);
53
- }
54
- if (usage === 'sign' && key.type === 'public') {
55
- throw new TypeError(`${tag(key)} instances for asymmetric algorithm signing must be of type "private"`);
56
- }
57
- if (usage === 'decrypt' && key.type === 'public') {
58
- throw new TypeError(`${tag(key)} instances for asymmetric algorithm decryption must be of type "private"`);
59
- }
60
- if (key.algorithm && usage === 'verify' && key.type === 'private') {
61
- throw new TypeError(`${tag(key)} instances for asymmetric algorithm verifying must be of type "public"`);
62
- }
63
- if (key.algorithm && usage === 'encrypt' && key.type === 'private') {
64
- throw new TypeError(`${tag(key)} instances for asymmetric algorithm encryption must be of type "public"`);
65
- }
66
- };
67
- function checkKeyType(allowJwk, alg, key, usage) {
68
- const symmetric = alg.startsWith('HS') ||
69
- alg === 'dir' ||
70
- alg.startsWith('PBES2') ||
71
- /^A\d{3}(?:GCM)?KW$/.test(alg);
72
- if (symmetric) {
73
- symmetricTypeCheck(alg, key, usage, allowJwk);
74
- }
75
- else {
76
- asymmetricTypeCheck(alg, key, usage, allowJwk);
77
- }
78
- }
79
- checkKeyType.bind(undefined, false);
80
- const checkKeyTypeWithJwk = checkKeyType.bind(undefined, true);
81
-
82
- exports.checkKeyTypeWithJwk = checkKeyTypeWithJwk;
@@ -1,80 +0,0 @@
1
- import { withAlg } from './invalid_key_input.mjs';
2
- import isKeyLike, { types } from '../runtime/is_key_like.mjs';
3
- import { isJWK, isSecretJWK, isPublicJWK, isPrivateJWK } from './is_jwk.mjs';
4
-
5
- const tag = (key) => key?.[Symbol.toStringTag];
6
- const jwkMatchesOp = (alg, key, usage) => {
7
- if (key.use !== undefined && key.use !== 'sig') {
8
- throw new TypeError('Invalid key for this operation, when present its use must be sig');
9
- }
10
- if (key.key_ops !== undefined && key.key_ops.includes?.(usage) !== true) {
11
- throw new TypeError(`Invalid key for this operation, when present its key_ops must include ${usage}`);
12
- }
13
- if (key.alg !== undefined && key.alg !== alg) {
14
- throw new TypeError(`Invalid key for this operation, when present its alg must be ${alg}`);
15
- }
16
- return true;
17
- };
18
- const symmetricTypeCheck = (alg, key, usage, allowJwk) => {
19
- if (key instanceof Uint8Array)
20
- return;
21
- if (allowJwk && isJWK(key)) {
22
- if (isSecretJWK(key) && jwkMatchesOp(alg, key, usage))
23
- return;
24
- throw new TypeError(`JSON Web Key for symmetric algorithms must have JWK "kty" (Key Type) equal to "oct" and the JWK "k" (Key Value) present`);
25
- }
26
- if (!isKeyLike(key)) {
27
- throw new TypeError(withAlg(alg, key, ...types, 'Uint8Array', allowJwk ? 'JSON Web Key' : null));
28
- }
29
- if (key.type !== 'secret') {
30
- throw new TypeError(`${tag(key)} instances for symmetric algorithms must be of type "secret"`);
31
- }
32
- };
33
- const asymmetricTypeCheck = (alg, key, usage, allowJwk) => {
34
- if (allowJwk && isJWK(key)) {
35
- switch (usage) {
36
- case 'sign':
37
- if (isPrivateJWK(key) && jwkMatchesOp(alg, key, usage))
38
- return;
39
- throw new TypeError(`JSON Web Key for this operation be a private JWK`);
40
- case 'verify':
41
- if (isPublicJWK(key) && jwkMatchesOp(alg, key, usage))
42
- return;
43
- throw new TypeError(`JSON Web Key for this operation be a public JWK`);
44
- }
45
- }
46
- if (!isKeyLike(key)) {
47
- throw new TypeError(withAlg(alg, key, ...types, allowJwk ? 'JSON Web Key' : null));
48
- }
49
- if (key.type === 'secret') {
50
- throw new TypeError(`${tag(key)} instances for asymmetric algorithms must not be of type "secret"`);
51
- }
52
- if (usage === 'sign' && key.type === 'public') {
53
- throw new TypeError(`${tag(key)} instances for asymmetric algorithm signing must be of type "private"`);
54
- }
55
- if (usage === 'decrypt' && key.type === 'public') {
56
- throw new TypeError(`${tag(key)} instances for asymmetric algorithm decryption must be of type "private"`);
57
- }
58
- if (key.algorithm && usage === 'verify' && key.type === 'private') {
59
- throw new TypeError(`${tag(key)} instances for asymmetric algorithm verifying must be of type "public"`);
60
- }
61
- if (key.algorithm && usage === 'encrypt' && key.type === 'private') {
62
- throw new TypeError(`${tag(key)} instances for asymmetric algorithm encryption must be of type "public"`);
63
- }
64
- };
65
- function checkKeyType(allowJwk, alg, key, usage) {
66
- const symmetric = alg.startsWith('HS') ||
67
- alg === 'dir' ||
68
- alg.startsWith('PBES2') ||
69
- /^A\d{3}(?:GCM)?KW$/.test(alg);
70
- if (symmetric) {
71
- symmetricTypeCheck(alg, key, usage, allowJwk);
72
- }
73
- else {
74
- asymmetricTypeCheck(alg, key, usage, allowJwk);
75
- }
76
- }
77
- checkKeyType.bind(undefined, false);
78
- const checkKeyTypeWithJwk = checkKeyType.bind(undefined, true);
79
-
80
- export { checkKeyTypeWithJwk };
@@ -1,103 +0,0 @@
1
- 'use strict';
2
-
3
- function unusable(name, prop = 'algorithm.name') {
4
- return new TypeError(`CryptoKey does not support this operation, its ${prop} must be ${name}`);
5
- }
6
- function isAlgorithm(algorithm, name) {
7
- return algorithm.name === name;
8
- }
9
- function getHashLength(hash) {
10
- return parseInt(hash.name.slice(4), 10);
11
- }
12
- function getNamedCurve(alg) {
13
- switch (alg) {
14
- case 'ES256':
15
- return 'P-256';
16
- case 'ES384':
17
- return 'P-384';
18
- case 'ES512':
19
- return 'P-521';
20
- default:
21
- throw new Error('unreachable');
22
- }
23
- }
24
- function checkUsage(key, usages) {
25
- if (usages.length && !usages.some((expected) => key.usages.includes(expected))) {
26
- let msg = 'CryptoKey does not support this operation, its usages must include ';
27
- if (usages.length > 2) {
28
- const last = usages.pop();
29
- msg += `one of ${usages.join(', ')}, or ${last}.`;
30
- }
31
- else if (usages.length === 2) {
32
- msg += `one of ${usages[0]} or ${usages[1]}.`;
33
- }
34
- else {
35
- msg += `${usages[0]}.`;
36
- }
37
- throw new TypeError(msg);
38
- }
39
- }
40
- function checkSigCryptoKey(key, alg, ...usages) {
41
- switch (alg) {
42
- case 'HS256':
43
- case 'HS384':
44
- case 'HS512': {
45
- if (!isAlgorithm(key.algorithm, 'HMAC'))
46
- throw unusable('HMAC');
47
- const expected = parseInt(alg.slice(2), 10);
48
- const actual = getHashLength(key.algorithm.hash);
49
- if (actual !== expected)
50
- throw unusable(`SHA-${expected}`, 'algorithm.hash');
51
- break;
52
- }
53
- case 'RS256':
54
- case 'RS384':
55
- case 'RS512': {
56
- if (!isAlgorithm(key.algorithm, 'RSASSA-PKCS1-v1_5'))
57
- throw unusable('RSASSA-PKCS1-v1_5');
58
- const expected = parseInt(alg.slice(2), 10);
59
- const actual = getHashLength(key.algorithm.hash);
60
- if (actual !== expected)
61
- throw unusable(`SHA-${expected}`, 'algorithm.hash');
62
- break;
63
- }
64
- case 'PS256':
65
- case 'PS384':
66
- case 'PS512': {
67
- if (!isAlgorithm(key.algorithm, 'RSA-PSS'))
68
- throw unusable('RSA-PSS');
69
- const expected = parseInt(alg.slice(2), 10);
70
- const actual = getHashLength(key.algorithm.hash);
71
- if (actual !== expected)
72
- throw unusable(`SHA-${expected}`, 'algorithm.hash');
73
- break;
74
- }
75
- case 'EdDSA': {
76
- if (key.algorithm.name !== 'Ed25519' && key.algorithm.name !== 'Ed448') {
77
- throw unusable('Ed25519 or Ed448');
78
- }
79
- break;
80
- }
81
- case 'Ed25519': {
82
- if (!isAlgorithm(key.algorithm, 'Ed25519'))
83
- throw unusable('Ed25519');
84
- break;
85
- }
86
- case 'ES256':
87
- case 'ES384':
88
- case 'ES512': {
89
- if (!isAlgorithm(key.algorithm, 'ECDSA'))
90
- throw unusable('ECDSA');
91
- const expected = getNamedCurve(alg);
92
- const actual = key.algorithm.namedCurve;
93
- if (actual !== expected)
94
- throw unusable(expected, 'algorithm.namedCurve');
95
- break;
96
- }
97
- default:
98
- throw new TypeError('CryptoKey does not support this operation');
99
- }
100
- checkUsage(key, usages);
101
- }
102
-
103
- exports.checkSigCryptoKey = checkSigCryptoKey;