@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,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var tslib_es6 = require('../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');
4
- var nodejs = require('../node_modules/.pnpm/@upstash_redis@1.37.0/node_modules/@upstash/redis/nodejs.js');
5
- var chunk35B33QW3 = require('../node_modules/.pnpm/@upstash_qstash@2.10.1/node_modules/@upstash/qstash/chunk-35B33QW3.js');
3
+ var tslib = require('tslib');
4
+ var redis = require('@upstash/redis');
5
+ var qstash = require('@upstash/qstash');
6
6
 
7
7
  let cachedRedis = null;
8
8
  let cachedQstash = null;
@@ -19,6 +19,7 @@ let qstashWarnedHealthCheck = false;
19
19
  let qstashWarnedHealthSchedule = false;
20
20
  let redisHealthTimer = null;
21
21
  let qstashHealthTimer = null;
22
+ let cachedRedisPrefixed = null;
22
23
  const isNonEmpty = (value) => typeof value === 'string' && value.trim().length > 0;
23
24
  const isValidUrl = (value) => {
24
25
  try {
@@ -29,6 +30,75 @@ const isValidUrl = (value) => {
29
30
  return false;
30
31
  }
31
32
  };
33
+ const getRequiredRedisAppName = () => {
34
+ const appName = process.env.NEXT_PUBLIC_APP_NAME;
35
+ if (!isNonEmpty(appName)) {
36
+ throw new Error('[Upstash Config] NEXT_PUBLIC_APP_NAME is required for Redis key prefixing and must not be empty');
37
+ }
38
+ const normalized = appName.replace(/\s+/g, '').toLowerCase();
39
+ if (!normalized) {
40
+ throw new Error('[Upstash Config] NEXT_PUBLIC_APP_NAME must contain non-whitespace characters for Redis key prefixing');
41
+ }
42
+ return normalized;
43
+ };
44
+ const getRedisKeyPrefix = () => {
45
+ const envSuffix = process.env.NODE_ENV === 'production' ? 'live' : 'test';
46
+ return `${getRequiredRedisAppName()}_${envSuffix}`;
47
+ };
48
+ const prefixRedisKey = (prefix, key) => `${prefix}:${key}`;
49
+ const prefixRedisKeys = (prefix, keys) => keys.map((key) => prefixRedisKey(prefix, key));
50
+ const prefixFirstStringArg = (args, prefix) => {
51
+ if (typeof args[0] !== 'string') {
52
+ return args;
53
+ }
54
+ const nextArgs = [...args];
55
+ nextArgs[0] = prefixRedisKey(prefix, args[0]);
56
+ return nextArgs;
57
+ };
58
+ const prefixAllStringArgs = (args, prefix) => {
59
+ return args.map((arg) => (typeof arg === 'string' ? prefixRedisKey(prefix, arg) : arg));
60
+ };
61
+ const keyArrayCommands = new Set(['mget', 'del']);
62
+ const allStringKeyCommands = new Set(['exists']);
63
+ const createPrefixedPipeline = (target, prefix) => {
64
+ return new Proxy(target, {
65
+ get(obj, prop, receiver) {
66
+ const value = Reflect.get(obj, prop, receiver);
67
+ if (typeof value !== 'function') {
68
+ return value;
69
+ }
70
+ return (...args) => {
71
+ if (prop === 'eval' || prop === 'evalsha' || prop === 'evalro' || prop === 'evalshaRo') {
72
+ const [script, keys, argv] = args;
73
+ return value.call(obj, script, prefixRedisKeys(prefix, keys), argv);
74
+ }
75
+ if (prop === 'pipeline' || prop === 'multi') {
76
+ const nested = value.call(obj);
77
+ return createPrefixedPipeline(nested, prefix);
78
+ }
79
+ if (typeof prop === 'string' && keyArrayCommands.has(prop)) {
80
+ const nextArgs = prefixAllStringArgs(args, prefix);
81
+ return value.apply(obj, nextArgs);
82
+ }
83
+ if (typeof prop === 'string' && allStringKeyCommands.has(prop)) {
84
+ const nextArgs = prefixAllStringArgs(args, prefix);
85
+ return value.apply(obj, nextArgs);
86
+ }
87
+ if (prop === 'mset') {
88
+ const [entries] = args;
89
+ const prefixedEntries = Object.fromEntries(Object.entries(entries).map(([key, entryValue]) => [prefixRedisKey(prefix, key), entryValue]));
90
+ return value.call(obj, prefixedEntries);
91
+ }
92
+ if (prop === 'hmget') {
93
+ const nextArgs = prefixFirstStringArg(args, prefix);
94
+ return value.apply(obj, nextArgs);
95
+ }
96
+ const nextArgs = prefixFirstStringArg(args, prefix);
97
+ return value.apply(obj, nextArgs);
98
+ };
99
+ },
100
+ });
101
+ };
32
102
  const parseMinutes = (value, fallback) => {
33
103
  if (!isNonEmpty(value)) {
34
104
  return fallback;
@@ -47,7 +117,7 @@ const scheduleRedisHealthCheck = () => {
47
117
  return;
48
118
  }
49
119
  const delayMs = getRedisHealthIntervalMinutes() * 60000;
50
- redisHealthTimer = setTimeout(() => tslib_es6.__awaiter(void 0, void 0, void 0, function* () {
120
+ redisHealthTimer = setTimeout(() => tslib.__awaiter(void 0, void 0, void 0, function* () {
51
121
  redisHealthTimer = null;
52
122
  if (!cachedRedis) {
53
123
  return;
@@ -77,7 +147,7 @@ const scheduleRedisHealthCheck = () => {
77
147
  }
78
148
  }), delayMs);
79
149
  };
80
- const checkQstashHealth = (token) => tslib_es6.__awaiter(void 0, void 0, void 0, function* () {
150
+ const checkQstashHealth = (token) => tslib.__awaiter(void 0, void 0, void 0, function* () {
81
151
  const response = yield fetch(getQstashHealthcheckUrl(), {
82
152
  method: 'GET',
83
153
  headers: {
@@ -94,7 +164,7 @@ const scheduleQstashHealthCheck = (token) => {
94
164
  return;
95
165
  }
96
166
  const delayMs = getQstashHealthIntervalMinutes() * 60000;
97
- qstashHealthTimer = setTimeout(() => tslib_es6.__awaiter(void 0, void 0, void 0, function* () {
167
+ qstashHealthTimer = setTimeout(() => tslib.__awaiter(void 0, void 0, void 0, function* () {
98
168
  qstashHealthTimer = null;
99
169
  if (!cachedQstash) {
100
170
  return;
@@ -131,16 +201,16 @@ const scheduleQstashHealthCheck = (token) => {
131
201
  * - read-through cached instance only
132
202
  */
133
203
  const getRedis = () => {
134
- return cachedRedis;
204
+ return cachedRedisPrefixed;
135
205
  };
136
- const ensureRedis = () => tslib_es6.__awaiter(void 0, void 0, void 0, function* () {
137
- if (cachedRedis) {
138
- return cachedRedis;
206
+ const ensureRedis = () => tslib.__awaiter(void 0, void 0, void 0, function* () {
207
+ if (cachedRedisPrefixed) {
208
+ return cachedRedisPrefixed;
139
209
  }
140
210
  if (redisInitPromise) {
141
211
  return redisInitPromise;
142
212
  }
143
- redisInitPromise = (() => tslib_es6.__awaiter(void 0, void 0, void 0, function* () {
213
+ redisInitPromise = (() => tslib.__awaiter(void 0, void 0, void 0, function* () {
144
214
  const { UPSTASH_REDIS_REST_URL, UPSTASH_REDIS_REST_TOKEN } = process.env;
145
215
  if (!isNonEmpty(UPSTASH_REDIS_REST_URL) || !isNonEmpty(UPSTASH_REDIS_REST_TOKEN)) {
146
216
  if (!redisWarnedMissingEnv) {
@@ -157,14 +227,16 @@ const ensureRedis = () => tslib_es6.__awaiter(void 0, void 0, void 0, function*
157
227
  return null;
158
228
  }
159
229
  try {
160
- const client = new nodejs.Redis({
230
+ const keyPrefix = getRedisKeyPrefix();
231
+ const client = new redis.Redis({
161
232
  url: UPSTASH_REDIS_REST_URL,
162
233
  token: UPSTASH_REDIS_REST_TOKEN,
163
234
  });
164
235
  yield client.ping();
165
236
  cachedRedis = client;
237
+ cachedRedisPrefixed = createPrefixedPipeline(client, keyPrefix);
166
238
  scheduleRedisHealthCheck();
167
- return cachedRedis;
239
+ return cachedRedisPrefixed;
168
240
  }
169
241
  catch (error) {
170
242
  if (!redisWarnedInitError) {
@@ -189,14 +261,14 @@ const ensureRedis = () => tslib_es6.__awaiter(void 0, void 0, void 0, function*
189
261
  const getQstash = () => {
190
262
  return cachedQstash;
191
263
  };
192
- const ensureQstash = () => tslib_es6.__awaiter(void 0, void 0, void 0, function* () {
264
+ const ensureQstash = () => tslib.__awaiter(void 0, void 0, void 0, function* () {
193
265
  if (cachedQstash) {
194
266
  return cachedQstash;
195
267
  }
196
268
  if (qstashInitPromise) {
197
269
  return qstashInitPromise;
198
270
  }
199
- qstashInitPromise = (() => tslib_es6.__awaiter(void 0, void 0, void 0, function* () {
271
+ qstashInitPromise = (() => tslib.__awaiter(void 0, void 0, void 0, function* () {
200
272
  const { QSTASH_TOKEN } = process.env;
201
273
  if (!isNonEmpty(QSTASH_TOKEN)) {
202
274
  if (!qstashWarnedMissingEnv) {
@@ -206,7 +278,7 @@ const ensureQstash = () => tslib_es6.__awaiter(void 0, void 0, void 0, function*
206
278
  return null;
207
279
  }
208
280
  try {
209
- const client = new chunk35B33QW3.Client({ token: QSTASH_TOKEN });
281
+ const client = new qstash.Client({ token: QSTASH_TOKEN });
210
282
  yield checkQstashHealth(QSTASH_TOKEN);
211
283
  cachedQstash = client;
212
284
  scheduleQstashHealthCheck(QSTASH_TOKEN);
@@ -226,14 +298,14 @@ const ensureQstash = () => tslib_es6.__awaiter(void 0, void 0, void 0, function*
226
298
  }))();
227
299
  return qstashInitPromise;
228
300
  });
229
- const withRedis = (fn) => tslib_es6.__awaiter(void 0, void 0, void 0, function* () {
301
+ const withRedis = (fn) => tslib.__awaiter(void 0, void 0, void 0, function* () {
230
302
  const redis = yield ensureRedis();
231
303
  if (!redis) {
232
304
  return null;
233
305
  }
234
306
  return fn(redis);
235
307
  });
236
- const withQstash = (fn) => tslib_es6.__awaiter(void 0, void 0, void 0, function* () {
308
+ const withQstash = (fn) => tslib.__awaiter(void 0, void 0, void 0, function* () {
237
309
  const qstash = yield ensureQstash();
238
310
  if (!qstash) {
239
311
  return null;
@@ -1,6 +1,6 @@
1
- import { __awaiter } from '../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';
2
- import { Redis as Redis2 } from '../node_modules/.pnpm/@upstash_redis@1.37.0/node_modules/@upstash/redis/nodejs.mjs';
3
- import { Client } from '../node_modules/.pnpm/@upstash_qstash@2.10.1/node_modules/@upstash/qstash/chunk-35B33QW3.mjs';
1
+ import { __awaiter } from 'tslib';
2
+ import { Redis } from '@upstash/redis';
3
+ import { Client } from '@upstash/qstash';
4
4
 
5
5
  let cachedRedis = null;
6
6
  let cachedQstash = null;
@@ -17,6 +17,7 @@ let qstashWarnedHealthCheck = false;
17
17
  let qstashWarnedHealthSchedule = false;
18
18
  let redisHealthTimer = null;
19
19
  let qstashHealthTimer = null;
20
+ let cachedRedisPrefixed = null;
20
21
  const isNonEmpty = (value) => typeof value === 'string' && value.trim().length > 0;
21
22
  const isValidUrl = (value) => {
22
23
  try {
@@ -27,6 +28,75 @@ const isValidUrl = (value) => {
27
28
  return false;
28
29
  }
29
30
  };
31
+ const getRequiredRedisAppName = () => {
32
+ const appName = process.env.NEXT_PUBLIC_APP_NAME;
33
+ if (!isNonEmpty(appName)) {
34
+ throw new Error('[Upstash Config] NEXT_PUBLIC_APP_NAME is required for Redis key prefixing and must not be empty');
35
+ }
36
+ const normalized = appName.replace(/\s+/g, '').toLowerCase();
37
+ if (!normalized) {
38
+ throw new Error('[Upstash Config] NEXT_PUBLIC_APP_NAME must contain non-whitespace characters for Redis key prefixing');
39
+ }
40
+ return normalized;
41
+ };
42
+ const getRedisKeyPrefix = () => {
43
+ const envSuffix = process.env.NODE_ENV === 'production' ? 'live' : 'test';
44
+ return `${getRequiredRedisAppName()}_${envSuffix}`;
45
+ };
46
+ const prefixRedisKey = (prefix, key) => `${prefix}:${key}`;
47
+ const prefixRedisKeys = (prefix, keys) => keys.map((key) => prefixRedisKey(prefix, key));
48
+ const prefixFirstStringArg = (args, prefix) => {
49
+ if (typeof args[0] !== 'string') {
50
+ return args;
51
+ }
52
+ const nextArgs = [...args];
53
+ nextArgs[0] = prefixRedisKey(prefix, args[0]);
54
+ return nextArgs;
55
+ };
56
+ const prefixAllStringArgs = (args, prefix) => {
57
+ return args.map((arg) => (typeof arg === 'string' ? prefixRedisKey(prefix, arg) : arg));
58
+ };
59
+ const keyArrayCommands = new Set(['mget', 'del']);
60
+ const allStringKeyCommands = new Set(['exists']);
61
+ const createPrefixedPipeline = (target, prefix) => {
62
+ return new Proxy(target, {
63
+ get(obj, prop, receiver) {
64
+ const value = Reflect.get(obj, prop, receiver);
65
+ if (typeof value !== 'function') {
66
+ return value;
67
+ }
68
+ return (...args) => {
69
+ if (prop === 'eval' || prop === 'evalsha' || prop === 'evalro' || prop === 'evalshaRo') {
70
+ const [script, keys, argv] = args;
71
+ return value.call(obj, script, prefixRedisKeys(prefix, keys), argv);
72
+ }
73
+ if (prop === 'pipeline' || prop === 'multi') {
74
+ const nested = value.call(obj);
75
+ return createPrefixedPipeline(nested, prefix);
76
+ }
77
+ if (typeof prop === 'string' && keyArrayCommands.has(prop)) {
78
+ const nextArgs = prefixAllStringArgs(args, prefix);
79
+ return value.apply(obj, nextArgs);
80
+ }
81
+ if (typeof prop === 'string' && allStringKeyCommands.has(prop)) {
82
+ const nextArgs = prefixAllStringArgs(args, prefix);
83
+ return value.apply(obj, nextArgs);
84
+ }
85
+ if (prop === 'mset') {
86
+ const [entries] = args;
87
+ const prefixedEntries = Object.fromEntries(Object.entries(entries).map(([key, entryValue]) => [prefixRedisKey(prefix, key), entryValue]));
88
+ return value.call(obj, prefixedEntries);
89
+ }
90
+ if (prop === 'hmget') {
91
+ const nextArgs = prefixFirstStringArg(args, prefix);
92
+ return value.apply(obj, nextArgs);
93
+ }
94
+ const nextArgs = prefixFirstStringArg(args, prefix);
95
+ return value.apply(obj, nextArgs);
96
+ };
97
+ },
98
+ });
99
+ };
30
100
  const parseMinutes = (value, fallback) => {
31
101
  if (!isNonEmpty(value)) {
32
102
  return fallback;
@@ -129,11 +199,11 @@ const scheduleQstashHealthCheck = (token) => {
129
199
  * - read-through cached instance only
130
200
  */
131
201
  const getRedis = () => {
132
- return cachedRedis;
202
+ return cachedRedisPrefixed;
133
203
  };
134
204
  const ensureRedis = () => __awaiter(void 0, void 0, void 0, function* () {
135
- if (cachedRedis) {
136
- return cachedRedis;
205
+ if (cachedRedisPrefixed) {
206
+ return cachedRedisPrefixed;
137
207
  }
138
208
  if (redisInitPromise) {
139
209
  return redisInitPromise;
@@ -155,14 +225,16 @@ const ensureRedis = () => __awaiter(void 0, void 0, void 0, function* () {
155
225
  return null;
156
226
  }
157
227
  try {
158
- const client = new Redis2({
228
+ const keyPrefix = getRedisKeyPrefix();
229
+ const client = new Redis({
159
230
  url: UPSTASH_REDIS_REST_URL,
160
231
  token: UPSTASH_REDIS_REST_TOKEN,
161
232
  });
162
233
  yield client.ping();
163
234
  cachedRedis = client;
235
+ cachedRedisPrefixed = createPrefixedPipeline(client, keyPrefix);
164
236
  scheduleRedisHealthCheck();
165
- return cachedRedis;
237
+ return cachedRedisPrefixed;
166
238
  }
167
239
  catch (error) {
168
240
  if (!redisWarnedInitError) {
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var tslib_es6 = require('../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');
3
+ var tslib = require('tslib');
4
4
  var prisma = require('./prisma.js');
5
5
 
6
6
  // 事务工具类,回滚时打印回滚日志
7
7
  function runInTransaction(fn, operationName) {
8
- return tslib_es6.__awaiter(this, void 0, void 0, function* () {
8
+ return tslib.__awaiter(this, void 0, void 0, function* () {
9
9
  const start = Date.now();
10
10
  try {
11
11
  return yield prisma.prisma.$transaction(fn);
@@ -1,4 +1,4 @@
1
- import { __awaiter } from '../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';
1
+ import { __awaiter } from 'tslib';
2
2
  import { prisma } from './prisma.mjs';
3
3
 
4
4
  // 事务工具类,回滚时打印回滚日志
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var tslib_es6 = require('../../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');
3
+ var tslib = require('tslib');
4
4
  var user_service = require('../database/user.service.js');
5
5
  var subscription_service = require('../database/subscription.service.js');
6
6
  var credit_service = require('../database/credit.service.js');
@@ -13,7 +13,7 @@ var creditInit = require('../../lib/credit-init.js');
13
13
  const ANONYMOUS_INIT_LOCK_NAMESPACE = 92831;
14
14
  class AnonymousAggregateService {
15
15
  lockFingerprintInit(tx, fingerprintId) {
16
- return tslib_es6.__awaiter(this, void 0, void 0, function* () {
16
+ return tslib.__awaiter(this, void 0, void 0, function* () {
17
17
  yield tx.$executeRaw `
18
18
  SELECT pg_advisory_xact_lock(
19
19
  ${client.Prisma.raw(String(ANONYMOUS_INIT_LOCK_NAMESPACE))},
@@ -23,7 +23,7 @@ class AnonymousAggregateService {
23
23
  });
24
24
  }
25
25
  findLatestUserContextByFingerprintId(fingerprintId, tx) {
26
- return tslib_es6.__awaiter(this, void 0, void 0, function* () {
26
+ return tslib.__awaiter(this, void 0, void 0, function* () {
27
27
  const existingUsers = yield user_service.userService.findListByFingerprintId(fingerprintId, tx);
28
28
  if (existingUsers.length === 0) {
29
29
  return null;
@@ -44,7 +44,7 @@ class AnonymousAggregateService {
44
44
  });
45
45
  }
46
46
  createAnonymousUser(fingerprintId, tx, options) {
47
- return tslib_es6.__awaiter(this, void 0, void 0, function* () {
47
+ return tslib.__awaiter(this, void 0, void 0, function* () {
48
48
  const newUser = yield user_service.userService.createUser({
49
49
  fingerprintId,
50
50
  sourceRef: options === null || options === void 0 ? void 0 : options.sourceRef,
@@ -70,8 +70,8 @@ class AnonymousAggregateService {
70
70
  });
71
71
  }
72
72
  getOrCreateByFingerprintId(fingerprintId, options) {
73
- return tslib_es6.__awaiter(this, void 0, void 0, function* () {
74
- return prismaTransactionUtil.runInTransaction((tx) => tslib_es6.__awaiter(this, void 0, void 0, function* () {
73
+ return tslib.__awaiter(this, void 0, void 0, function* () {
74
+ return prismaTransactionUtil.runInTransaction((tx) => tslib.__awaiter(this, void 0, void 0, function* () {
75
75
  yield this.lockFingerprintInit(tx, fingerprintId);
76
76
  const existingContext = yield this.findLatestUserContextByFingerprintId(fingerprintId, tx);
77
77
  if (existingContext) {
@@ -1,4 +1,4 @@
1
- import { __awaiter } from '../../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';
1
+ import { __awaiter } from 'tslib';
2
2
  import { userService } from '../database/user.service.mjs';
3
3
  import { subscriptionService } from '../database/subscription.service.mjs';
4
4
  import { creditService } from '../database/credit.service.mjs';
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var tslib_es6 = require('../../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');
3
+ var tslib = require('tslib');
4
4
  var constants = require('../database/constants.js');
5
5
  require('../../prisma/prisma.js');
6
6
  var prismaTransactionUtil = require('../../prisma/prisma-transaction-util.js');
@@ -11,8 +11,8 @@ require('@prisma/client');
11
11
 
12
12
  class BillingAggregateService {
13
13
  recordSubscriptionInitPayment(context) {
14
- return tslib_es6.__awaiter(this, void 0, void 0, function* () {
15
- yield prismaTransactionUtil.runInTransaction((tx) => tslib_es6.__awaiter(this, void 0, void 0, function* () {
14
+ return tslib.__awaiter(this, void 0, void 0, function* () {
15
+ yield prismaTransactionUtil.runInTransaction((tx) => tslib.__awaiter(this, void 0, void 0, function* () {
16
16
  var _a, _b, _c, _d, _e, _f, _g, _h;
17
17
  const now = new Date();
18
18
  // 订阅截止时间统一为到期日最后1s
@@ -62,8 +62,8 @@ class BillingAggregateService {
62
62
  });
63
63
  }
64
64
  completeOneTimeCheckout(params) {
65
- return tslib_es6.__awaiter(this, void 0, void 0, function* () {
66
- yield prismaTransactionUtil.runInTransaction((tx) => tslib_es6.__awaiter(this, void 0, void 0, function* () {
65
+ return tslib.__awaiter(this, void 0, void 0, function* () {
66
+ yield prismaTransactionUtil.runInTransaction((tx) => tslib.__awaiter(this, void 0, void 0, function* () {
67
67
  var _a;
68
68
  const now = new Date();
69
69
  yield transaction_service.transactionService.update(params.orderId, {
@@ -91,8 +91,8 @@ class BillingAggregateService {
91
91
  });
92
92
  }
93
93
  recordInitialInvoiceDetails(params) {
94
- return tslib_es6.__awaiter(this, void 0, void 0, function* () {
95
- yield prismaTransactionUtil.runInTransaction((tx) => tslib_es6.__awaiter(this, void 0, void 0, function* () {
94
+ return tslib.__awaiter(this, void 0, void 0, function* () {
95
+ yield prismaTransactionUtil.runInTransaction((tx) => tslib.__awaiter(this, void 0, void 0, function* () {
96
96
  var _a, _b, _c;
97
97
  yield transaction_service.transactionService.update(params.orderId, {
98
98
  payInvoiceId: params.invoiceId,
@@ -106,8 +106,8 @@ class BillingAggregateService {
106
106
  });
107
107
  }
108
108
  recordSubscriptionRenewalPayment(context) {
109
- return tslib_es6.__awaiter(this, void 0, void 0, function* () {
110
- yield prismaTransactionUtil.runInTransaction((tx) => tslib_es6.__awaiter(this, void 0, void 0, function* () {
109
+ return tslib.__awaiter(this, void 0, void 0, function* () {
110
+ yield prismaTransactionUtil.runInTransaction((tx) => tslib.__awaiter(this, void 0, void 0, function* () {
111
111
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
112
112
  yield transaction_service.transactionService.createTransaction({
113
113
  userId: context.userId,
@@ -160,8 +160,8 @@ class BillingAggregateService {
160
160
  });
161
161
  }
162
162
  recordInitialPaymentFailure(params) {
163
- return tslib_es6.__awaiter(this, void 0, void 0, function* () {
164
- yield prismaTransactionUtil.runInTransaction((tx) => tslib_es6.__awaiter(this, void 0, void 0, function* () {
163
+ return tslib.__awaiter(this, void 0, void 0, function* () {
164
+ yield prismaTransactionUtil.runInTransaction((tx) => tslib.__awaiter(this, void 0, void 0, function* () {
165
165
  var _a, _b;
166
166
  yield transaction_service.transactionService.updateStatus(params.orderId, constants.OrderStatus.FAILED, {
167
167
  paymentStatus: constants.PaymentStatus.UN_PAID,
@@ -175,8 +175,8 @@ class BillingAggregateService {
175
175
  });
176
176
  }
177
177
  recordRenewalPaymentFailure(context) {
178
- return tslib_es6.__awaiter(this, void 0, void 0, function* () {
179
- yield prismaTransactionUtil.runInTransaction((tx) => tslib_es6.__awaiter(this, void 0, void 0, function* () {
178
+ return tslib.__awaiter(this, void 0, void 0, function* () {
179
+ yield prismaTransactionUtil.runInTransaction((tx) => tslib.__awaiter(this, void 0, void 0, function* () {
180
180
  var _a, _b, _c, _d, _e, _f;
181
181
  yield transaction_service.transactionService.createTransaction({
182
182
  userId: context.userId,
@@ -216,8 +216,8 @@ class BillingAggregateService {
216
216
  });
217
217
  }
218
218
  syncSubscriptionFromStripe(params) {
219
- return tslib_es6.__awaiter(this, void 0, void 0, function* () {
220
- yield prismaTransactionUtil.runInTransaction((tx) => tslib_es6.__awaiter(this, void 0, void 0, function* () {
219
+ return tslib.__awaiter(this, void 0, void 0, function* () {
220
+ yield prismaTransactionUtil.runInTransaction((tx) => tslib.__awaiter(this, void 0, void 0, function* () {
221
221
  if (params.isUserCancel) {
222
222
  // 记录用户取消订阅的时间信息
223
223
  yield transaction_service.transactionService.update(params.orderId, {
@@ -234,8 +234,8 @@ class BillingAggregateService {
234
234
  });
235
235
  }
236
236
  processSubscriptionCancel(context) {
237
- return tslib_es6.__awaiter(this, void 0, void 0, function* () {
238
- yield prismaTransactionUtil.runInTransaction((tx) => tslib_es6.__awaiter(this, void 0, void 0, function* () {
237
+ return tslib.__awaiter(this, void 0, void 0, function* () {
238
+ yield prismaTransactionUtil.runInTransaction((tx) => tslib.__awaiter(this, void 0, void 0, function* () {
239
239
  var _a;
240
240
  // 更新订单, 记录取消信息
241
241
  yield transaction_service.transactionService.update(context.orderId, {
@@ -250,8 +250,8 @@ class BillingAggregateService {
250
250
  });
251
251
  }
252
252
  processSubscriptionRefund(context) {
253
- return tslib_es6.__awaiter(this, void 0, void 0, function* () {
254
- yield prismaTransactionUtil.runInTransaction((tx) => tslib_es6.__awaiter(this, void 0, void 0, function* () {
253
+ return tslib.__awaiter(this, void 0, void 0, function* () {
254
+ yield prismaTransactionUtil.runInTransaction((tx) => tslib.__awaiter(this, void 0, void 0, function* () {
255
255
  var _a, _b;
256
256
  const now = new Date();
257
257
  yield transaction_service.transactionService.update(context.transaction.orderId, {
@@ -280,8 +280,8 @@ class BillingAggregateService {
280
280
  });
281
281
  }
282
282
  processOneTimeRefund(context) {
283
- return tslib_es6.__awaiter(this, void 0, void 0, function* () {
284
- yield prismaTransactionUtil.runInTransaction((tx) => tslib_es6.__awaiter(this, void 0, void 0, function* () {
283
+ return tslib.__awaiter(this, void 0, void 0, function* () {
284
+ yield prismaTransactionUtil.runInTransaction((tx) => tslib.__awaiter(this, void 0, void 0, function* () {
285
285
  var _a, _b;
286
286
  const now = new Date();
287
287
  yield transaction_service.transactionService.update(context.transaction.orderId, {
@@ -1,4 +1,4 @@
1
- import { __awaiter } from '../../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';
1
+ import { __awaiter } from 'tslib';
2
2
  import { SubscriptionStatus, PaymentStatus, OrderStatus, TransactionType, PaySupplier, OperationType, CreditType } from '../database/constants.mjs';
3
3
  import '../../prisma/prisma.mjs';
4
4
  import { runInTransaction } from '../../prisma/prisma-transaction-util.mjs';
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var tslib_es6 = require('../../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');
3
+ var tslib = require('tslib');
4
4
  var constants = require('../database/constants.js');
5
5
  var user_service = require('../database/user.service.js');
6
6
  var subscription_service = require('../database/subscription.service.js');
@@ -12,8 +12,8 @@ var creditInit = require('../../lib/credit-init.js');
12
12
 
13
13
  class UserAggregateService {
14
14
  initAnonymousUser(fingerprintId, options) {
15
- return tslib_es6.__awaiter(this, void 0, void 0, function* () {
16
- return prismaTransactionUtil.runInTransaction((tx) => tslib_es6.__awaiter(this, void 0, void 0, function* () {
15
+ return tslib.__awaiter(this, void 0, void 0, function* () {
16
+ return prismaTransactionUtil.runInTransaction((tx) => tslib.__awaiter(this, void 0, void 0, function* () {
17
17
  const newUser = yield user_service.userService.createUser({
18
18
  fingerprintId,
19
19
  sourceRef: options === null || options === void 0 ? void 0 : options.sourceRef,
@@ -46,8 +46,8 @@ class UserAggregateService {
46
46
  * - 不需要 CREATE,只需 UPDATE 确保逻辑一致
47
47
  */
48
48
  createNewRegisteredUser(clerkUserId, email, fingerprintId, userName, sourceRef) {
49
- return tslib_es6.__awaiter(this, void 0, void 0, function* () {
50
- return prismaTransactionUtil.runInTransaction((tx) => tslib_es6.__awaiter(this, void 0, void 0, function* () {
49
+ return tslib.__awaiter(this, void 0, void 0, function* () {
50
+ return prismaTransactionUtil.runInTransaction((tx) => tslib.__awaiter(this, void 0, void 0, function* () {
51
51
  const newUser = yield user_service.userService.createUser({
52
52
  clerkUserId,
53
53
  email,
@@ -71,8 +71,8 @@ class UserAggregateService {
71
71
  }
72
72
  // 注意积分审查日志的处理
73
73
  upgradeToRegistered(userId, email, clerkUserId, userName) {
74
- return tslib_es6.__awaiter(this, void 0, void 0, function* () {
75
- return prismaTransactionUtil.runInTransaction((tx) => tslib_es6.__awaiter(this, void 0, void 0, function* () {
74
+ return tslib.__awaiter(this, void 0, void 0, function* () {
75
+ return prismaTransactionUtil.runInTransaction((tx) => tslib.__awaiter(this, void 0, void 0, function* () {
76
76
  const updateUser = yield user_service.userService.upgradeToRegistered(userId, {
77
77
  email,
78
78
  clerkUserId,
@@ -94,8 +94,8 @@ class UserAggregateService {
94
94
  });
95
95
  }
96
96
  handleUserUnregister(clerkUserId) {
97
- return tslib_es6.__awaiter(this, void 0, void 0, function* () {
98
- return prismaTransactionUtil.runInTransaction((tx) => tslib_es6.__awaiter(this, void 0, void 0, function* () {
97
+ return tslib.__awaiter(this, void 0, void 0, function* () {
98
+ return prismaTransactionUtil.runInTransaction((tx) => tslib.__awaiter(this, void 0, void 0, function* () {
99
99
  // 根据clerkUserId查找用户
100
100
  const user = yield user_service.userService.findByClerkUserId(clerkUserId, tx);
101
101
  if (!user) {
@@ -117,7 +117,7 @@ class UserAggregateService {
117
117
  });
118
118
  }
119
119
  findUserWithRelations(userId, tx) {
120
- return tslib_es6.__awaiter(this, void 0, void 0, function* () {
120
+ return tslib.__awaiter(this, void 0, void 0, function* () {
121
121
  return tx.user.findUnique({
122
122
  where: { userId },
123
123
  include: {
@@ -1,4 +1,4 @@
1
- import { __awaiter } from '../../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';
1
+ import { __awaiter } from 'tslib';
2
2
  import { UserStatus, OperationType, CreditType } from '../database/constants.mjs';
3
3
  import { userService } from '../database/user.service.mjs';
4
4
  import { subscriptionService } from '../database/subscription.service.mjs';
@@ -0,0 +1,2 @@
1
+ export declare function createUpstreamAbortSignal(requestSignal: AbortSignal, timeoutMs: number): AbortSignal;
2
+ //# sourceMappingURL=abort.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abort.d.ts","sourceRoot":"","sources":["../../../src/services/ai/abort.ts"],"names":[],"mappings":"AAAA,wBAAgB,yBAAyB,CAAC,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,eAyBtF"}
@@ -0,0 +1,24 @@
1
+ 'use strict';
2
+
3
+ function createUpstreamAbortSignal(requestSignal, timeoutMs) {
4
+ const controller = new AbortController();
5
+ const timeoutId = setTimeout(() => controller.abort('timeout'), timeoutMs);
6
+ const forwardAbort = () => {
7
+ var _a;
8
+ clearTimeout(timeoutId);
9
+ controller.abort((_a = requestSignal.reason) !== null && _a !== void 0 ? _a : 'request_aborted');
10
+ };
11
+ if (requestSignal.aborted) {
12
+ forwardAbort();
13
+ }
14
+ else {
15
+ requestSignal.addEventListener('abort', forwardAbort, { once: true });
16
+ }
17
+ controller.signal.addEventListener('abort', () => {
18
+ clearTimeout(timeoutId);
19
+ requestSignal.removeEventListener('abort', forwardAbort);
20
+ }, { once: true });
21
+ return controller.signal;
22
+ }
23
+
24
+ exports.createUpstreamAbortSignal = createUpstreamAbortSignal;
@@ -0,0 +1,22 @@
1
+ function createUpstreamAbortSignal(requestSignal, timeoutMs) {
2
+ const controller = new AbortController();
3
+ const timeoutId = setTimeout(() => controller.abort('timeout'), timeoutMs);
4
+ const forwardAbort = () => {
5
+ var _a;
6
+ clearTimeout(timeoutId);
7
+ controller.abort((_a = requestSignal.reason) !== null && _a !== void 0 ? _a : 'request_aborted');
8
+ };
9
+ if (requestSignal.aborted) {
10
+ forwardAbort();
11
+ }
12
+ else {
13
+ requestSignal.addEventListener('abort', forwardAbort, { once: true });
14
+ }
15
+ controller.signal.addEventListener('abort', () => {
16
+ clearTimeout(timeoutId);
17
+ requestSignal.removeEventListener('abort', forwardAbort);
18
+ }, { once: true });
19
+ return controller.signal;
20
+ }
21
+
22
+ export { createUpstreamAbortSignal };