sa2kit 3.0.0 → 3.2.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.
- package/README.md +5 -5
- package/dist/AliyunOSSProvider-7IOT5U6M.js +15 -0
- package/dist/AliyunOSSProvider-7IOT5U6M.js.map +1 -0
- package/dist/AliyunOSSProvider-ZXZM7OQA.mjs +6 -0
- package/dist/AliyunOSSProvider-ZXZM7OQA.mjs.map +1 -0
- package/dist/LocalStorageProvider-KJKRCKBS.js +15 -0
- package/dist/LocalStorageProvider-KJKRCKBS.js.map +1 -0
- package/dist/LocalStorageProvider-O22465NY.mjs +6 -0
- package/dist/LocalStorageProvider-O22465NY.mjs.map +1 -0
- package/dist/chunk-2234T4A6.js +303 -0
- package/dist/chunk-2234T4A6.js.map +1 -0
- package/dist/chunk-36KGNXKW.js +16 -0
- package/dist/chunk-36KGNXKW.js.map +1 -0
- package/dist/chunk-375C7WL7.js +2695 -0
- package/dist/chunk-375C7WL7.js.map +1 -0
- package/dist/chunk-3J24Z4MB.js +991 -0
- package/dist/chunk-3J24Z4MB.js.map +1 -0
- package/dist/chunk-3QCATFQV.js +43 -0
- package/dist/chunk-3QCATFQV.js.map +1 -0
- package/dist/chunk-3R6JHA6D.js +120 -0
- package/dist/chunk-3R6JHA6D.js.map +1 -0
- package/dist/chunk-4OXKHV7J.js +43 -0
- package/dist/chunk-4OXKHV7J.js.map +1 -0
- package/dist/chunk-4PJM4752.js +4 -0
- package/dist/chunk-4PJM4752.js.map +1 -0
- package/dist/chunk-65JRVC3F.mjs +54 -0
- package/dist/chunk-65JRVC3F.mjs.map +1 -0
- package/dist/chunk-6HL54I2B.js +336 -0
- package/dist/chunk-6HL54I2B.js.map +1 -0
- package/dist/chunk-6V2MIQPF.mjs +77 -0
- package/dist/chunk-6V2MIQPF.mjs.map +1 -0
- package/dist/chunk-6YLCRWKM.mjs +8 -0
- package/dist/chunk-6YLCRWKM.mjs.map +1 -0
- package/dist/chunk-7CRU2Y5X.mjs +152 -0
- package/dist/chunk-7CRU2Y5X.mjs.map +1 -0
- package/dist/chunk-7PMT4L4I.js +324 -0
- package/dist/chunk-7PMT4L4I.js.map +1 -0
- package/dist/chunk-7VVZHFEM.js +88 -0
- package/dist/chunk-7VVZHFEM.js.map +1 -0
- package/dist/chunk-AWHGIKTQ.js +56 -0
- package/dist/chunk-AWHGIKTQ.js.map +1 -0
- package/dist/chunk-B3GYF6TY.js +37 -0
- package/dist/chunk-B3GYF6TY.js.map +1 -0
- package/dist/chunk-BDBJFOXM.mjs +14 -0
- package/dist/chunk-BDBJFOXM.mjs.map +1 -0
- package/dist/chunk-BTW3SWQN.mjs +25 -0
- package/dist/chunk-BTW3SWQN.mjs.map +1 -0
- package/dist/chunk-CHYSSZ4E.mjs +734 -0
- package/dist/chunk-CHYSSZ4E.mjs.map +1 -0
- package/dist/chunk-DO6QYAZV.mjs +298 -0
- package/dist/chunk-DO6QYAZV.mjs.map +1 -0
- package/dist/chunk-DTR53LQO.mjs +781 -0
- package/dist/chunk-DTR53LQO.mjs.map +1 -0
- package/dist/chunk-EI2S4XDG.mjs +89 -0
- package/dist/chunk-EI2S4XDG.mjs.map +1 -0
- package/dist/chunk-EOZHUI46.js +93 -0
- package/dist/chunk-EOZHUI46.js.map +1 -0
- package/dist/chunk-F2BZIU67.js +184 -0
- package/dist/chunk-F2BZIU67.js.map +1 -0
- package/dist/chunk-F2TEJSCP.js +756 -0
- package/dist/chunk-F2TEJSCP.js.map +1 -0
- package/dist/chunk-FCLS5R24.js +148 -0
- package/dist/chunk-FCLS5R24.js.map +1 -0
- package/dist/chunk-FUA6ZGMI.mjs +376 -0
- package/dist/chunk-FUA6ZGMI.mjs.map +1 -0
- package/dist/chunk-FY2X3LYR.mjs +3 -0
- package/dist/chunk-FY2X3LYR.mjs.map +1 -0
- package/dist/chunk-GS4SAW25.mjs +116 -0
- package/dist/chunk-GS4SAW25.mjs.map +1 -0
- package/dist/chunk-H56ICWUO.js +321 -0
- package/dist/chunk-H56ICWUO.js.map +1 -0
- package/dist/chunk-HG34SGMN.mjs +546 -0
- package/dist/chunk-HG34SGMN.mjs.map +1 -0
- package/dist/chunk-HL4H2HF6.js +279 -0
- package/dist/chunk-HL4H2HF6.js.map +1 -0
- package/dist/chunk-IJIQUMAK.mjs +272 -0
- package/dist/chunk-IJIQUMAK.mjs.map +1 -0
- package/dist/chunk-KEZFTDZT.mjs +559 -0
- package/dist/chunk-KEZFTDZT.mjs.map +1 -0
- package/dist/chunk-KHOVC2KL.js +144 -0
- package/dist/chunk-KHOVC2KL.js.map +1 -0
- package/dist/chunk-KRBSTLKC.js +6154 -0
- package/dist/chunk-KRBSTLKC.js.map +1 -0
- package/dist/chunk-KVYHCGRY.js +2011 -0
- package/dist/chunk-KVYHCGRY.js.map +1 -0
- package/dist/chunk-LZ5YTMMP.mjs +41 -0
- package/dist/chunk-LZ5YTMMP.mjs.map +1 -0
- package/dist/chunk-MJ6XJGAL.js +1551 -0
- package/dist/chunk-MJ6XJGAL.js.map +1 -0
- package/dist/chunk-MKLXCV4Z.mjs +1510 -0
- package/dist/chunk-MKLXCV4Z.mjs.map +1 -0
- package/dist/chunk-MMDSZIXD.mjs +286 -0
- package/dist/chunk-MMDSZIXD.mjs.map +1 -0
- package/dist/chunk-N2O3OX5Y.mjs +243 -0
- package/dist/chunk-N2O3OX5Y.mjs.map +1 -0
- package/dist/chunk-O6NNSPWD.mjs +35 -0
- package/dist/chunk-O6NNSPWD.mjs.map +1 -0
- package/dist/chunk-OIRZXSYM.js +80 -0
- package/dist/chunk-OIRZXSYM.js.map +1 -0
- package/dist/chunk-P7JQRNBJ.mjs +76 -0
- package/dist/chunk-P7JQRNBJ.mjs.map +1 -0
- package/dist/chunk-PA4ELVGI.js +20 -0
- package/dist/chunk-PA4ELVGI.js.map +1 -0
- package/dist/chunk-PLIG5257.mjs +2613 -0
- package/dist/chunk-PLIG5257.mjs.map +1 -0
- package/dist/chunk-QIF4MG5V.mjs +283 -0
- package/dist/chunk-QIF4MG5V.mjs.map +1 -0
- package/dist/chunk-RHECN4E2.mjs +6077 -0
- package/dist/chunk-RHECN4E2.mjs.map +1 -0
- package/dist/chunk-RHHTZTIN.mjs +314 -0
- package/dist/chunk-RHHTZTIN.mjs.map +1 -0
- package/dist/chunk-RRQ2X26Z.js +106 -0
- package/dist/chunk-RRQ2X26Z.js.map +1 -0
- package/dist/chunk-RST2T54Y.js +836 -0
- package/dist/chunk-RST2T54Y.js.map +1 -0
- package/dist/chunk-RVNQI6BI.js +249 -0
- package/dist/chunk-RVNQI6BI.js.map +1 -0
- package/dist/chunk-S3K4LTRI.mjs +226 -0
- package/dist/chunk-S3K4LTRI.mjs.map +1 -0
- package/dist/chunk-SWZ5XNF6.js +158 -0
- package/dist/chunk-SWZ5XNF6.js.map +1 -0
- package/dist/chunk-TNJ6LYX7.mjs +18 -0
- package/dist/chunk-TNJ6LYX7.mjs.map +1 -0
- package/dist/chunk-U7HNBCBS.js +207 -0
- package/dist/chunk-U7HNBCBS.js.map +1 -0
- package/dist/chunk-UJS3YSD3.mjs +37 -0
- package/dist/chunk-UJS3YSD3.mjs.map +1 -0
- package/dist/chunk-UJUWDF7M.mjs +336 -0
- package/dist/chunk-UJUWDF7M.mjs.map +1 -0
- package/dist/chunk-UR5NENGE.js +78 -0
- package/dist/chunk-UR5NENGE.js.map +1 -0
- package/dist/chunk-V7HGBDCB.mjs +135 -0
- package/dist/chunk-V7HGBDCB.mjs.map +1 -0
- package/dist/chunk-V7RLIZMN.js +90 -0
- package/dist/chunk-V7RLIZMN.js.map +1 -0
- package/dist/chunk-VCKXK6V5.js +345 -0
- package/dist/chunk-VCKXK6V5.js.map +1 -0
- package/dist/chunk-VIEXDTNF.mjs +100 -0
- package/dist/chunk-VIEXDTNF.mjs.map +1 -0
- package/dist/chunk-VN2DULIA.js +579 -0
- package/dist/chunk-VN2DULIA.js.map +1 -0
- package/dist/chunk-VNWMRUY6.js +168 -0
- package/dist/chunk-VNWMRUY6.js.map +1 -0
- package/dist/chunk-VYK4M2D6.mjs +177 -0
- package/dist/chunk-VYK4M2D6.mjs.map +1 -0
- package/dist/chunk-WB4H6ZUW.mjs +86 -0
- package/dist/chunk-WB4H6ZUW.mjs.map +1 -0
- package/dist/chunk-WM3AEJ2E.mjs +981 -0
- package/dist/chunk-WM3AEJ2E.mjs.map +1 -0
- package/dist/chunk-X5GINUGI.mjs +162 -0
- package/dist/chunk-X5GINUGI.mjs.map +1 -0
- package/dist/chunk-XB7GUEHZ.mjs +82 -0
- package/dist/chunk-XB7GUEHZ.mjs.map +1 -0
- package/dist/chunk-XE5RGZ3B.js +242 -0
- package/dist/chunk-XE5RGZ3B.js.map +1 -0
- package/dist/chunk-XNTIMVSL.mjs +193 -0
- package/dist/chunk-XNTIMVSL.mjs.map +1 -0
- package/dist/chunk-Y7WHUKJF.js +387 -0
- package/dist/chunk-Y7WHUKJF.js.map +1 -0
- package/dist/chunk-YIRPPMCN.mjs +1916 -0
- package/dist/chunk-YIRPPMCN.mjs.map +1 -0
- package/dist/chunk-YTGUIRRH.js +10 -0
- package/dist/chunk-YTGUIRRH.js.map +1 -0
- package/dist/chunk-Z2SNB5LJ.js +28 -0
- package/dist/chunk-Z2SNB5LJ.js.map +1 -0
- package/dist/chunk-ZOP7YIVX.js +552 -0
- package/dist/chunk-ZOP7YIVX.js.map +1 -0
- package/dist/chunk-ZUZLWHH5.mjs +146 -0
- package/dist/chunk-ZUZLWHH5.mjs.map +1 -0
- package/dist/common/ai/llm/core/index.d.mts +70 -0
- package/dist/common/ai/llm/core/index.d.ts +70 -0
- package/dist/common/ai/llm/core/index.js +54 -0
- package/dist/common/ai/llm/core/index.mjs +5 -0
- package/dist/common/ai/llm/electron/index.d.mts +6 -0
- package/dist/common/ai/llm/electron/index.d.ts +6 -0
- package/dist/common/ai/llm/electron/index.js +67 -0
- package/dist/common/ai/llm/electron/index.mjs +10 -0
- package/dist/common/ai/llm/index.d.mts +3 -0
- package/dist/common/ai/llm/index.d.ts +3 -0
- package/dist/common/ai/llm/index.js +54 -0
- package/dist/common/ai/llm/index.mjs +5 -0
- package/dist/common/ai/llm/miniapp/index.d.mts +6 -0
- package/dist/common/ai/llm/miniapp/index.d.ts +6 -0
- package/dist/common/ai/llm/miniapp/index.js +59 -0
- package/dist/common/ai/llm/miniapp/index.mjs +6 -0
- package/dist/common/ai/llm/rn/index.d.mts +6 -0
- package/dist/common/ai/llm/rn/index.d.ts +6 -0
- package/dist/common/ai/llm/rn/index.js +59 -0
- package/dist/common/ai/llm/rn/index.mjs +6 -0
- package/dist/common/ai/llm/ui/electron/index.d.mts +5 -0
- package/dist/common/ai/llm/ui/electron/index.d.ts +5 -0
- package/dist/common/ai/llm/ui/electron/index.js +22 -0
- package/dist/common/ai/llm/ui/electron/index.mjs +9 -0
- package/dist/common/ai/llm/ui/miniapp/index.d.mts +9 -0
- package/dist/common/ai/llm/ui/miniapp/index.d.ts +9 -0
- package/dist/common/ai/llm/ui/miniapp/index.js +14 -0
- package/dist/common/ai/llm/ui/miniapp/index.mjs +5 -0
- package/dist/common/ai/llm/ui/rn/index.d.mts +9 -0
- package/dist/common/ai/llm/ui/rn/index.d.ts +9 -0
- package/dist/common/ai/llm/ui/rn/index.js +14 -0
- package/dist/common/ai/llm/ui/rn/index.mjs +5 -0
- package/dist/common/ai/llm/ui/web/index.d.mts +15 -0
- package/dist/common/ai/llm/ui/web/index.d.ts +15 -0
- package/dist/common/ai/llm/ui/web/index.js +21 -0
- package/dist/common/ai/llm/ui/web/index.mjs +8 -0
- package/dist/common/ai/llm/web/index.d.mts +6 -0
- package/dist/common/ai/llm/web/index.d.ts +6 -0
- package/dist/common/ai/llm/web/index.js +66 -0
- package/dist/common/ai/llm/web/index.mjs +9 -0
- package/dist/common/analytics/index.d.mts +2 -0
- package/dist/common/analytics/index.d.ts +2 -0
- package/dist/common/analytics/index.js +314 -0
- package/dist/common/analytics/index.mjs +5 -0
- package/dist/common/analytics/server/index.js +529 -0
- package/dist/common/analytics/server/index.js.map +1 -0
- package/dist/common/analytics/server/index.mjs +525 -0
- package/dist/common/analytics/server/index.mjs.map +1 -0
- package/dist/common/api/index.d.mts +3 -0
- package/dist/common/api/index.d.ts +3 -0
- package/dist/common/api/index.js +21 -0
- package/dist/common/api/index.mjs +4 -0
- package/dist/common/auth/client/index.d.mts +1 -31
- package/dist/common/auth/client/index.d.ts +1 -31
- package/dist/common/auth/client/index.js +2 -15
- package/dist/common/auth/client/index.mjs +1 -2
- package/dist/common/auth/components/index.d.mts +5 -239
- package/dist/common/auth/components/index.d.ts +5 -239
- package/dist/common/auth/components/index.js +878 -49
- package/dist/common/auth/components/index.js.map +1 -1
- package/dist/common/auth/components/index.mjs +871 -5
- package/dist/common/auth/components/index.mjs.map +1 -1
- package/dist/common/auth/hooks/index.d.mts +2 -29
- package/dist/common/auth/hooks/index.d.ts +2 -29
- package/dist/common/auth/hooks/index.js +2 -11
- package/dist/common/auth/hooks/index.mjs +1 -2
- package/dist/common/auth/index.d.mts +5 -9
- package/dist/common/auth/index.d.ts +5 -9
- package/dist/common/auth/index.js +5 -26
- package/dist/common/auth/index.mjs +3 -4
- package/dist/common/auth/rn/index.d.mts +1 -17
- package/dist/common/auth/rn/index.d.ts +1 -17
- package/dist/common/auth/rn/index.js +2 -34
- package/dist/common/auth/rn/index.js.map +1 -1
- package/dist/common/auth/rn/index.mjs +2 -31
- package/dist/common/auth/rn/index.mjs.map +1 -1
- package/dist/common/auth/server/index.d.mts +81 -2
- package/dist/common/auth/server/index.d.ts +81 -2
- package/dist/common/auth/server/index.js +128 -37
- package/dist/common/auth/server/index.js.map +1 -1
- package/dist/common/auth/server/index.mjs +124 -1
- package/dist/common/auth/server/index.mjs.map +1 -1
- package/dist/common/auth/services/index.js +12 -9
- package/dist/common/auth/services/index.js.map +1 -1
- package/dist/common/auth/services/index.mjs +10 -1
- package/dist/common/auth/services/index.mjs.map +1 -1
- package/dist/common/components/index.d.mts +4 -0
- package/dist/common/components/index.d.ts +4 -0
- package/dist/common/components/index.js +414 -0
- package/dist/common/components/index.mjs +9 -0
- package/dist/common/config/index.d.mts +1 -0
- package/dist/common/config/index.d.ts +1 -0
- package/dist/common/config/index.js +21 -0
- package/dist/common/config/index.mjs +4 -0
- package/dist/common/config/server/index.js +1177 -0
- package/dist/common/config/server/index.js.map +1 -0
- package/dist/common/config/server/index.mjs +1138 -0
- package/dist/common/config/server/index.mjs.map +1 -0
- package/dist/common/export/index.d.mts +2 -2
- package/dist/common/export/index.d.ts +2 -2
- package/dist/common/export/index.js +67 -67
- package/dist/common/export/index.mjs +3 -3
- package/dist/common/export/server/index.d.mts +2 -2
- package/dist/common/export/server/index.d.ts +2 -2
- package/dist/common/export/server/index.js +76 -48
- package/dist/common/export/server/index.mjs +3 -3
- package/dist/common/file/index.d.mts +2 -2
- package/dist/common/file/index.d.ts +2 -2
- package/dist/common/file/index.js +27 -27
- package/dist/common/file/index.mjs +5 -5
- package/dist/common/file/server/index.d.mts +2 -2
- package/dist/common/file/server/index.d.ts +2 -2
- package/dist/common/file/server/index.js +58 -50
- package/dist/common/file/server/index.mjs +8 -8
- package/dist/common/i18n/index.d.mts +2 -0
- package/dist/common/i18n/index.d.ts +2 -0
- package/dist/common/i18n/index.js +73 -0
- package/dist/common/i18n/index.mjs +4 -0
- package/dist/common/imageCrop/index.d.mts +2 -0
- package/dist/common/imageCrop/index.d.ts +2 -0
- package/dist/common/imageCrop/index.js +61 -0
- package/dist/common/imageCrop/index.mjs +4 -0
- package/dist/common/index.d.mts +17 -20
- package/dist/common/index.d.ts +17 -20
- package/dist/common/index.js +76 -70
- package/dist/common/index.mjs +27 -29
- package/dist/common/logger/index.d.mts +1 -1
- package/dist/common/logger/index.d.ts +1 -1
- package/dist/common/logger/index.js +6 -7
- package/dist/common/logger/index.mjs +1 -2
- package/dist/common/ossFile/index.d.mts +61 -0
- package/dist/common/ossFile/index.d.ts +61 -0
- package/dist/common/ossFile/index.js +96 -0
- package/dist/common/ossFile/index.mjs +7 -0
- package/dist/common/ossFile/server/index.d.mts +94 -0
- package/dist/common/ossFile/server/index.d.ts +94 -0
- package/dist/common/ossFile/server/index.js +221 -0
- package/dist/common/ossFile/server/index.mjs +12 -0
- package/dist/common/platform/index.js +8 -8
- package/dist/common/platform/index.mjs +4 -4
- package/dist/common/request/index.d.mts +1 -1
- package/dist/common/request/index.d.ts +1 -1
- package/dist/common/request/index.js +5 -7
- package/dist/common/request/index.mjs +2 -4
- package/dist/common/storage/index.d.mts +1 -1
- package/dist/common/storage/index.d.ts +1 -1
- package/dist/common/storage/index.js +17 -17
- package/dist/common/storage/index.mjs +5 -5
- package/dist/common/universalExport/index.d.mts +232 -0
- package/dist/common/universalExport/index.d.ts +232 -0
- package/dist/common/universalExport/index.js +178 -0
- package/dist/common/universalExport/index.mjs +5 -0
- package/dist/common/universalExport/server/index.d.mts +1189 -0
- package/dist/common/universalExport/server/index.d.ts +1189 -0
- package/dist/common/universalExport/server/index.js +151 -0
- package/dist/common/universalExport/server/index.mjs +6 -0
- package/dist/common/universalFile/index.d.mts +409 -0
- package/dist/common/universalFile/index.d.ts +409 -0
- package/dist/common/universalFile/index.js +1742 -0
- package/dist/common/universalFile/index.js.map +1 -0
- package/dist/common/universalFile/index.mjs +1497 -0
- package/dist/common/universalFile/index.mjs.map +1 -0
- package/dist/common/universalFile/server/index.d.mts +1064 -0
- package/dist/common/universalFile/server/index.d.ts +1064 -0
- package/dist/common/universalFile/server/index.js +311 -0
- package/dist/common/universalFile/server/index.mjs +10 -0
- package/dist/common/utils/index.d.mts +1 -1
- package/dist/common/utils/index.d.ts +1 -1
- package/dist/common/utils/index.js +11 -12
- package/dist/common/utils/index.mjs +2 -3
- package/dist/index-BRLygK4h.d.ts +67 -0
- package/dist/index-BWNK5mH2.d.ts +76 -0
- package/dist/index-Bd7cKF1j.d.mts +50 -0
- package/dist/index-BiCK6gg6.d.mts +210 -0
- package/dist/index-BiCK6gg6.d.ts +210 -0
- package/dist/index-C-P2yBTH.d.mts +76 -0
- package/dist/index-CT4K2z-O.d.ts +81 -0
- package/dist/index-D6RJTGce.d.mts +81 -0
- package/dist/index-DA7L9JlE.d.mts +159 -0
- package/dist/index-DRQxtCDw.d.ts +50 -0
- package/dist/index-DXVph21C.d.mts +201 -0
- package/dist/index-DXVph21C.d.ts +201 -0
- package/dist/index-DzyK789B.d.mts +67 -0
- package/dist/index-FVJZCEtm.d.mts +145 -0
- package/dist/index-FVJZCEtm.d.ts +145 -0
- package/dist/index-nD9vPCZT.d.ts +159 -0
- package/dist/index-nOmIv2BG.d.mts +559 -0
- package/dist/index-nOmIv2BG.d.ts +559 -0
- package/dist/path-Bzc7hj1N.d.ts +45 -0
- package/dist/path-DN_65vhO.d.mts +45 -0
- package/dist/utils-Dm3O1rAa.d.mts +366 -0
- package/dist/utils-Dm3O1rAa.d.ts +366 -0
- package/package.json +293 -348
- package/dist/AliyunOSSProvider-4GRL2FJB.js +0 -15
- package/dist/AliyunOSSProvider-4GRL2FJB.js.map +0 -1
- package/dist/AliyunOSSProvider-QNVFIZ7Q.mjs +0 -6
- package/dist/AliyunOSSProvider-QNVFIZ7Q.mjs.map +0 -1
- package/dist/CollisionBalls-BpHufX3H.d.mts +0 -41
- package/dist/CollisionBalls-BpHufX3H.d.ts +0 -41
- package/dist/ConfigService-BxK06xP6.d.mts +0 -262
- package/dist/ConfigService-BxK06xP6.d.ts +0 -262
- package/dist/LocalStorageProvider-J5RHV37G.mjs +0 -6
- package/dist/LocalStorageProvider-J5RHV37G.mjs.map +0 -1
- package/dist/LocalStorageProvider-PFA2DMIJ.js +0 -15
- package/dist/LocalStorageProvider-PFA2DMIJ.js.map +0 -1
- package/dist/UniversalFileService-CC4d3wkc.d.ts +0 -139
- package/dist/UniversalFileService-CzAE_G4V.d.mts +0 -139
- package/dist/ai/llm/core/index.d.mts +0 -70
- package/dist/ai/llm/core/index.d.ts +0 -70
- package/dist/ai/llm/core/index.js +0 -54
- package/dist/ai/llm/core/index.mjs +0 -5
- package/dist/ai/llm/electron/index.d.mts +0 -6
- package/dist/ai/llm/electron/index.d.ts +0 -6
- package/dist/ai/llm/electron/index.js +0 -66
- package/dist/ai/llm/electron/index.mjs +0 -9
- package/dist/ai/llm/index.d.mts +0 -3
- package/dist/ai/llm/index.d.ts +0 -3
- package/dist/ai/llm/index.js +0 -54
- package/dist/ai/llm/index.mjs +0 -5
- package/dist/ai/llm/miniapp/index.d.mts +0 -6
- package/dist/ai/llm/miniapp/index.d.ts +0 -6
- package/dist/ai/llm/miniapp/index.js +0 -59
- package/dist/ai/llm/miniapp/index.mjs +0 -6
- package/dist/ai/llm/rn/index.d.mts +0 -6
- package/dist/ai/llm/rn/index.d.ts +0 -6
- package/dist/ai/llm/rn/index.js +0 -59
- package/dist/ai/llm/rn/index.mjs +0 -6
- package/dist/ai/llm/ui/electron/index.d.mts +0 -5
- package/dist/ai/llm/ui/electron/index.d.ts +0 -5
- package/dist/ai/llm/ui/electron/index.js +0 -21
- package/dist/ai/llm/ui/electron/index.mjs +0 -8
- package/dist/ai/llm/ui/miniapp/index.d.mts +0 -9
- package/dist/ai/llm/ui/miniapp/index.d.ts +0 -9
- package/dist/ai/llm/ui/miniapp/index.js +0 -14
- package/dist/ai/llm/ui/miniapp/index.mjs +0 -5
- package/dist/ai/llm/ui/rn/index.d.mts +0 -9
- package/dist/ai/llm/ui/rn/index.d.ts +0 -9
- package/dist/ai/llm/ui/rn/index.js +0 -14
- package/dist/ai/llm/ui/rn/index.mjs +0 -5
- package/dist/ai/llm/ui/web/index.d.mts +0 -15
- package/dist/ai/llm/ui/web/index.d.ts +0 -15
- package/dist/ai/llm/ui/web/index.js +0 -20
- package/dist/ai/llm/ui/web/index.mjs +0 -7
- package/dist/ai/llm/web/index.d.mts +0 -6
- package/dist/ai/llm/web/index.d.ts +0 -6
- package/dist/ai/llm/web/index.js +0 -65
- package/dist/ai/llm/web/index.mjs +0 -8
- package/dist/analytics/index.d.mts +0 -2
- package/dist/analytics/index.d.ts +0 -2
- package/dist/analytics/index.js +0 -314
- package/dist/analytics/index.mjs +0 -5
- package/dist/analytics/server/index.js +0 -529
- package/dist/analytics/server/index.js.map +0 -1
- package/dist/analytics/server/index.mjs +0 -525
- package/dist/analytics/server/index.mjs.map +0 -1
- package/dist/api/index.d.mts +0 -3
- package/dist/api/index.d.ts +0 -3
- package/dist/api/index.js +0 -21
- package/dist/api/index.mjs +0 -4
- package/dist/audioDetection/index.d.mts +0 -449
- package/dist/audioDetection/index.d.ts +0 -449
- package/dist/audioDetection/index.js +0 -1244
- package/dist/audioDetection/index.js.map +0 -1
- package/dist/audioDetection/index.mjs +0 -1227
- package/dist/audioDetection/index.mjs.map +0 -1
- package/dist/auth/client/index.d.mts +0 -13
- package/dist/auth/client/index.d.ts +0 -13
- package/dist/auth/client/index.js +0 -26
- package/dist/auth/client/index.mjs +0 -5
- package/dist/auth/components/index.d.mts +0 -10
- package/dist/auth/components/index.d.ts +0 -10
- package/dist/auth/components/index.js +0 -70
- package/dist/auth/components/index.mjs +0 -9
- package/dist/auth/hooks/index.d.mts +0 -13
- package/dist/auth/hooks/index.d.ts +0 -13
- package/dist/auth/hooks/index.js +0 -28
- package/dist/auth/hooks/index.mjs +0 -7
- package/dist/auth/index.d.mts +0 -21
- package/dist/auth/index.d.ts +0 -21
- package/dist/auth/index.js +0 -112
- package/dist/auth/index.mjs +0 -11
- package/dist/auth/rn/index.d.mts +0 -3133
- package/dist/auth/rn/index.d.ts +0 -3133
- package/dist/auth/rn/index.js +0 -684
- package/dist/auth/rn/index.js.map +0 -1
- package/dist/auth/rn/index.mjs +0 -663
- package/dist/auth/rn/index.mjs.map +0 -1
- package/dist/auth/schema/index.d.mts +0 -4
- package/dist/auth/schema/index.d.ts +0 -4
- package/dist/auth/schema/index.js +0 -49
- package/dist/auth/schema/index.mjs +0 -4
- package/dist/auth/services/index.d.mts +0 -1
- package/dist/auth/services/index.d.ts +0 -1
- package/dist/auth/services/index.js +0 -17
- package/dist/auth/services/index.mjs +0 -4
- package/dist/base-api-client-BpmcQt4Q.d.ts +0 -103
- package/dist/base-api-client-CFIhZK4C.d.mts +0 -277
- package/dist/base-api-client-CFIhZK4C.d.ts +0 -277
- package/dist/base-api-client-DXLsq2yz.d.mts +0 -103
- package/dist/boothVaultService-Cn4WPhjg.d.mts +0 -83
- package/dist/boothVaultService-Cn4WPhjg.d.ts +0 -83
- package/dist/business/index.d.mts +0 -2
- package/dist/business/index.d.ts +0 -2
- package/dist/business/index.js +0 -581
- package/dist/business/index.js.map +0 -1
- package/dist/business/index.mjs +0 -575
- package/dist/business/index.mjs.map +0 -1
- package/dist/calendar/index.d.mts +0 -1325
- package/dist/calendar/index.d.ts +0 -1325
- package/dist/calendar/index.js +0 -5964
- package/dist/calendar/index.js.map +0 -1
- package/dist/calendar/index.mjs +0 -5878
- package/dist/calendar/index.mjs.map +0 -1
- package/dist/calendar/routes/index.d.mts +0 -191
- package/dist/calendar/routes/index.d.ts +0 -191
- package/dist/calendar/routes/index.js +0 -844
- package/dist/calendar/routes/index.js.map +0 -1
- package/dist/calendar/routes/index.mjs +0 -826
- package/dist/calendar/routes/index.mjs.map +0 -1
- package/dist/chunk-25OFOKNF.js +0 -171
- package/dist/chunk-25OFOKNF.js.map +0 -1
- package/dist/chunk-2Y7BKFKZ.js +0 -37
- package/dist/chunk-2Y7BKFKZ.js.map +0 -1
- package/dist/chunk-3DXPQ4YV.mjs +0 -165
- package/dist/chunk-3DXPQ4YV.mjs.map +0 -1
- package/dist/chunk-3FRAIS4T.mjs +0 -35
- package/dist/chunk-3FRAIS4T.mjs.map +0 -1
- package/dist/chunk-3NHAT7D4.mjs +0 -361
- package/dist/chunk-3NHAT7D4.mjs.map +0 -1
- package/dist/chunk-3Z43XGA4.mjs +0 -54
- package/dist/chunk-3Z43XGA4.mjs.map +0 -1
- package/dist/chunk-4FDUURSD.js +0 -22
- package/dist/chunk-4FDUURSD.js.map +0 -1
- package/dist/chunk-4WBCWJSN.js +0 -836
- package/dist/chunk-4WBCWJSN.js.map +0 -1
- package/dist/chunk-5GBDDXYL.mjs +0 -23
- package/dist/chunk-5GBDDXYL.mjs.map +0 -1
- package/dist/chunk-5USIS3UM.js +0 -4
- package/dist/chunk-5USIS3UM.js.map +0 -1
- package/dist/chunk-7E3J7VAD.mjs +0 -3
- package/dist/chunk-7E3J7VAD.mjs.map +0 -1
- package/dist/chunk-ACUFEDVQ.js +0 -345
- package/dist/chunk-ACUFEDVQ.js.map +0 -1
- package/dist/chunk-AQPU2AXH.js +0 -756
- package/dist/chunk-AQPU2AXH.js.map +0 -1
- package/dist/chunk-ATUCZXJY.js +0 -80
- package/dist/chunk-ATUCZXJY.js.map +0 -1
- package/dist/chunk-B3CZ3HXJ.mjs +0 -126
- package/dist/chunk-B3CZ3HXJ.mjs.map +0 -1
- package/dist/chunk-BCE6RUZV.js +0 -2695
- package/dist/chunk-BCE6RUZV.js.map +0 -1
- package/dist/chunk-BIHYZA67.mjs +0 -2613
- package/dist/chunk-BIHYZA67.mjs.map +0 -1
- package/dist/chunk-C6KV7VTZ.mjs +0 -152
- package/dist/chunk-C6KV7VTZ.mjs.map +0 -1
- package/dist/chunk-CAYOQDBR.js +0 -78
- package/dist/chunk-CAYOQDBR.js.map +0 -1
- package/dist/chunk-CIVO4R6N.mjs +0 -37
- package/dist/chunk-CIVO4R6N.mjs.map +0 -1
- package/dist/chunk-CX2GHCAI.mjs +0 -217
- package/dist/chunk-CX2GHCAI.mjs.map +0 -1
- package/dist/chunk-DIF5VRL3.mjs +0 -73
- package/dist/chunk-DIF5VRL3.mjs.map +0 -1
- package/dist/chunk-FCEBAWN6.js +0 -18
- package/dist/chunk-FCEBAWN6.js.map +0 -1
- package/dist/chunk-FHIE5MTC.mjs +0 -541
- package/dist/chunk-FHIE5MTC.mjs.map +0 -1
- package/dist/chunk-FHLTPXAR.js +0 -56
- package/dist/chunk-FHLTPXAR.js.map +0 -1
- package/dist/chunk-FIUBFREP.mjs +0 -298
- package/dist/chunk-FIUBFREP.mjs.map +0 -1
- package/dist/chunk-FOQEQWX5.js +0 -4
- package/dist/chunk-FOQEQWX5.js.map +0 -1
- package/dist/chunk-FXQOXLDE.js +0 -120
- package/dist/chunk-FXQOXLDE.js.map +0 -1
- package/dist/chunk-G4NFB2QA.mjs +0 -212
- package/dist/chunk-G4NFB2QA.mjs.map +0 -1
- package/dist/chunk-G5HJGXGC.mjs +0 -39
- package/dist/chunk-G5HJGXGC.mjs.map +0 -1
- package/dist/chunk-G6HXNQ2U.mjs +0 -336
- package/dist/chunk-G6HXNQ2U.mjs.map +0 -1
- package/dist/chunk-G6NSKJMH.js +0 -106
- package/dist/chunk-G6NSKJMH.js.map +0 -1
- package/dist/chunk-G7UBMCUT.mjs +0 -41
- package/dist/chunk-G7UBMCUT.mjs.map +0 -1
- package/dist/chunk-GQZHGSRR.js +0 -44
- package/dist/chunk-GQZHGSRR.js.map +0 -1
- package/dist/chunk-GS7XLKET.js +0 -41
- package/dist/chunk-GS7XLKET.js.map +0 -1
- package/dist/chunk-GWNBVGDT.mjs +0 -1232
- package/dist/chunk-GWNBVGDT.mjs.map +0 -1
- package/dist/chunk-HDMIOOZY.mjs +0 -546
- package/dist/chunk-HDMIOOZY.mjs.map +0 -1
- package/dist/chunk-HJ6MH7J7.js +0 -552
- package/dist/chunk-HJ6MH7J7.js.map +0 -1
- package/dist/chunk-HJZHQW5R.mjs +0 -146
- package/dist/chunk-HJZHQW5R.mjs.map +0 -1
- package/dist/chunk-I5ZPEDNR.mjs +0 -734
- package/dist/chunk-I5ZPEDNR.mjs.map +0 -1
- package/dist/chunk-IBWDBBX5.mjs +0 -16
- package/dist/chunk-IBWDBBX5.mjs.map +0 -1
- package/dist/chunk-J77KR2EV.mjs +0 -193
- package/dist/chunk-J77KR2EV.mjs.map +0 -1
- package/dist/chunk-KH6RQ4J5.js +0 -28
- package/dist/chunk-KH6RQ4J5.js.map +0 -1
- package/dist/chunk-KQ643L7Z.js +0 -144
- package/dist/chunk-KQ643L7Z.js.map +0 -1
- package/dist/chunk-LFB5EIIM.mjs +0 -31
- package/dist/chunk-LFB5EIIM.mjs.map +0 -1
- package/dist/chunk-LHJKLUM7.mjs +0 -18
- package/dist/chunk-LHJKLUM7.mjs.map +0 -1
- package/dist/chunk-MBANGIG3.mjs +0 -781
- package/dist/chunk-MBANGIG3.mjs.map +0 -1
- package/dist/chunk-MWSAH7ZG.mjs +0 -42
- package/dist/chunk-MWSAH7ZG.mjs.map +0 -1
- package/dist/chunk-MZOGYD4N.mjs +0 -186
- package/dist/chunk-MZOGYD4N.mjs.map +0 -1
- package/dist/chunk-NCRP2YHY.mjs +0 -1598
- package/dist/chunk-NCRP2YHY.mjs.map +0 -1
- package/dist/chunk-NDGHXVGS.js +0 -25
- package/dist/chunk-NDGHXVGS.js.map +0 -1
- package/dist/chunk-NDPO5OMC.js +0 -563
- package/dist/chunk-NDPO5OMC.js.map +0 -1
- package/dist/chunk-PBI7FKMB.js +0 -43
- package/dist/chunk-PBI7FKMB.js.map +0 -1
- package/dist/chunk-Q5EDCKQA.js +0 -336
- package/dist/chunk-Q5EDCKQA.js.map +0 -1
- package/dist/chunk-Q5VFBPMG.mjs +0 -76
- package/dist/chunk-Q5VFBPMG.mjs.map +0 -1
- package/dist/chunk-QDUBO567.js +0 -1148
- package/dist/chunk-QDUBO567.js.map +0 -1
- package/dist/chunk-QP5N3ER6.js +0 -18
- package/dist/chunk-QP5N3ER6.js.map +0 -1
- package/dist/chunk-QXAOXBVB.mjs +0 -135
- package/dist/chunk-QXAOXBVB.mjs.map +0 -1
- package/dist/chunk-R2DXTE2L.js +0 -249
- package/dist/chunk-R2DXTE2L.js.map +0 -1
- package/dist/chunk-RJP2BRJD.mjs +0 -6077
- package/dist/chunk-RJP2BRJD.mjs.map +0 -1
- package/dist/chunk-RTD2WHQQ.mjs +0 -16
- package/dist/chunk-RTD2WHQQ.mjs.map +0 -1
- package/dist/chunk-RWCD2CAD.mjs +0 -1132
- package/dist/chunk-RWCD2CAD.mjs.map +0 -1
- package/dist/chunk-S37OK2QG.js +0 -216
- package/dist/chunk-S37OK2QG.js.map +0 -1
- package/dist/chunk-S3PUP7N4.js +0 -20
- package/dist/chunk-S3PUP7N4.js.map +0 -1
- package/dist/chunk-S6YSGVWD.js +0 -224
- package/dist/chunk-S6YSGVWD.js.map +0 -1
- package/dist/chunk-S732H246.js +0 -6154
- package/dist/chunk-S732H246.js.map +0 -1
- package/dist/chunk-SFDJNKWC.js +0 -22
- package/dist/chunk-SFDJNKWC.js.map +0 -1
- package/dist/chunk-SKFEJPMJ.mjs +0 -226
- package/dist/chunk-SKFEJPMJ.mjs.map +0 -1
- package/dist/chunk-SLKOEYFH.js +0 -303
- package/dist/chunk-SLKOEYFH.js.map +0 -1
- package/dist/chunk-TC5YU6A4.mjs +0 -243
- package/dist/chunk-TC5YU6A4.mjs.map +0 -1
- package/dist/chunk-TXMX6PZR.js +0 -190
- package/dist/chunk-TXMX6PZR.js.map +0 -1
- package/dist/chunk-UCOE6SET.js +0 -148
- package/dist/chunk-UCOE6SET.js.map +0 -1
- package/dist/chunk-UIYKZ73N.js +0 -36
- package/dist/chunk-UIYKZ73N.js.map +0 -1
- package/dist/chunk-V7EVKD5G.mjs +0 -116
- package/dist/chunk-V7EVKD5G.mjs.map +0 -1
- package/dist/chunk-VHN7PF5I.js +0 -20
- package/dist/chunk-VHN7PF5I.js.map +0 -1
- package/dist/chunk-VMTEDX5H.js +0 -1275
- package/dist/chunk-VMTEDX5H.js.map +0 -1
- package/dist/chunk-VRN76M56.mjs +0 -3
- package/dist/chunk-VRN76M56.mjs.map +0 -1
- package/dist/chunk-VXFUXZN5.mjs +0 -20
- package/dist/chunk-VXFUXZN5.mjs.map +0 -1
- package/dist/chunk-WEEXCPSE.mjs +0 -86
- package/dist/chunk-WEEXCPSE.mjs.map +0 -1
- package/dist/chunk-WW4GE6CZ.js +0 -1647
- package/dist/chunk-WW4GE6CZ.js.map +0 -1
- package/dist/chunk-WZDTNDYR.js +0 -207
- package/dist/chunk-WZDTNDYR.js.map +0 -1
- package/dist/chunk-XBZIS3MV.mjs +0 -13
- package/dist/chunk-XBZIS3MV.mjs.map +0 -1
- package/dist/chunk-XFOZ56FB.mjs +0 -20
- package/dist/chunk-XFOZ56FB.mjs.map +0 -1
- package/dist/chunk-XJ7ZAGC5.js +0 -88
- package/dist/chunk-XJ7ZAGC5.js.map +0 -1
- package/dist/chunk-XUS5ACKR.mjs +0 -100
- package/dist/chunk-XUS5ACKR.mjs.map +0 -1
- package/dist/chunk-YOTQG4NP.mjs +0 -314
- package/dist/chunk-YOTQG4NP.mjs.map +0 -1
- package/dist/chunk-Z23HAXHL.js +0 -136
- package/dist/chunk-Z23HAXHL.js.map +0 -1
- package/dist/chunk-ZGVB35L2.mjs +0 -25
- package/dist/chunk-ZGVB35L2.mjs.map +0 -1
- package/dist/chunk-ZLYPALF3.js +0 -242
- package/dist/chunk-ZLYPALF3.js.map +0 -1
- package/dist/chunk-ZM2SZJTZ.js +0 -158
- package/dist/chunk-ZM2SZJTZ.js.map +0 -1
- package/dist/chunk-ZRAW3HXA.js +0 -43
- package/dist/chunk-ZRAW3HXA.js.map +0 -1
- package/dist/chunk-ZWQJSZEY.js +0 -371
- package/dist/chunk-ZWQJSZEY.js.map +0 -1
- package/dist/components/index.d.mts +0 -405
- package/dist/components/index.d.ts +0 -405
- package/dist/components/index.js +0 -2516
- package/dist/components/index.js.map +0 -1
- package/dist/components/index.mjs +0 -2396
- package/dist/components/index.mjs.map +0 -1
- package/dist/config/index.d.mts +0 -1
- package/dist/config/index.d.ts +0 -1
- package/dist/config/index.js +0 -21
- package/dist/config/index.mjs +0 -4
- package/dist/config/server/index.js +0 -1177
- package/dist/config/server/index.js.map +0 -1
- package/dist/config/server/index.mjs +0 -1138
- package/dist/config/server/index.mjs.map +0 -1
- package/dist/drizzle-schema-BNhqj2AZ.d.mts +0 -1114
- package/dist/drizzle-schema-BNhqj2AZ.d.ts +0 -1114
- package/dist/festivalCard/index.d.mts +0 -76
- package/dist/festivalCard/index.d.ts +0 -76
- package/dist/festivalCard/index.js +0 -1492
- package/dist/festivalCard/index.js.map +0 -1
- package/dist/festivalCard/index.mjs +0 -1475
- package/dist/festivalCard/index.mjs.map +0 -1
- package/dist/festivalCard/routes/index.d.mts +0 -42
- package/dist/festivalCard/routes/index.d.ts +0 -42
- package/dist/festivalCard/routes/index.js +0 -361
- package/dist/festivalCard/routes/index.js.map +0 -1
- package/dist/festivalCard/routes/index.mjs +0 -356
- package/dist/festivalCard/routes/index.mjs.map +0 -1
- package/dist/festivalCard/server/index.d.mts +0 -120
- package/dist/festivalCard/server/index.d.ts +0 -120
- package/dist/festivalCard/server/index.js +0 -272
- package/dist/festivalCard/server/index.js.map +0 -1
- package/dist/festivalCard/server/index.mjs +0 -265
- package/dist/festivalCard/server/index.mjs.map +0 -1
- package/dist/festivalCardService-B3GsnNpV.d.ts +0 -13
- package/dist/festivalCardService-CWhrLNE9.d.mts +0 -13
- package/dist/i18n/index.d.mts +0 -2
- package/dist/i18n/index.d.ts +0 -2
- package/dist/i18n/index.js +0 -73
- package/dist/i18n/index.mjs +0 -4
- package/dist/imageCrop/index.d.mts +0 -165
- package/dist/imageCrop/index.d.ts +0 -165
- package/dist/imageCrop/index.js +0 -560
- package/dist/imageCrop/index.js.map +0 -1
- package/dist/imageCrop/index.mjs +0 -541
- package/dist/imageCrop/index.mjs.map +0 -1
- package/dist/index-2G9Dxjvt.d.ts +0 -81
- package/dist/index-BcjDRcKp.d.mts +0 -40
- package/dist/index-Bjem5rWn.d.mts +0 -17
- package/dist/index-BlpXrrTy.d.ts +0 -40
- package/dist/index-C5U-2hJq.d.ts +0 -23
- package/dist/index-CYuUB8aF.d.mts +0 -67
- package/dist/index-CifSBBP2.d.ts +0 -17
- package/dist/index-D0K4ehme.d.mts +0 -20
- package/dist/index-DLnfKN-a.d.mts +0 -23
- package/dist/index-DSel44Ke.d.mts +0 -93
- package/dist/index-DSel44Ke.d.ts +0 -93
- package/dist/index-DZ5iJtNO.d.mts +0 -102
- package/dist/index-DZ5iJtNO.d.ts +0 -102
- package/dist/index-Da7qdkgW.d.ts +0 -20
- package/dist/index-DrPcMJPc.d.mts +0 -250
- package/dist/index-DrPcMJPc.d.ts +0 -250
- package/dist/index-WrR57hKT.d.ts +0 -67
- package/dist/index-oLUvfqT8.d.ts +0 -20
- package/dist/index-pe38RDgC.d.mts +0 -20
- package/dist/index-qcOvRVuN.d.mts +0 -81
- package/dist/index.d.mts +0 -11590
- package/dist/index.d.ts +0 -11590
- package/dist/index.js +0 -17679
- package/dist/index.js.map +0 -1
- package/dist/index.mjs +0 -17403
- package/dist/index.mjs.map +0 -1
- package/dist/logger/index.d.mts +0 -125
- package/dist/logger/index.d.ts +0 -125
- package/dist/logger/index.js +0 -29
- package/dist/logger/index.mjs +0 -4
- package/dist/mikuContest/ui/web/index.d.mts +0 -2
- package/dist/mikuContest/ui/web/index.d.ts +0 -2
- package/dist/mikuContest/ui/web/index.js +0 -353
- package/dist/mikuContest/ui/web/index.js.map +0 -1
- package/dist/mikuContest/ui/web/index.mjs +0 -343
- package/dist/mikuContest/ui/web/index.mjs.map +0 -1
- package/dist/mikuFireworks3D/index.d.mts +0 -268
- package/dist/mikuFireworks3D/index.d.ts +0 -268
- package/dist/mikuFireworks3D/index.js +0 -1267
- package/dist/mikuFireworks3D/index.js.map +0 -1
- package/dist/mikuFireworks3D/index.mjs +0 -1228
- package/dist/mikuFireworks3D/index.mjs.map +0 -1
- package/dist/mikuFusionGame/index.d.mts +0 -117
- package/dist/mikuFusionGame/index.d.ts +0 -117
- package/dist/mikuFusionGame/index.js +0 -1208
- package/dist/mikuFusionGame/index.js.map +0 -1
- package/dist/mikuFusionGame/index.mjs +0 -1195
- package/dist/mikuFusionGame/index.mjs.map +0 -1
- package/dist/mmd/admin/index.d.mts +0 -487
- package/dist/mmd/admin/index.d.ts +0 -487
- package/dist/mmd/admin/index.js +0 -1058
- package/dist/mmd/admin/index.js.map +0 -1
- package/dist/mmd/admin/index.mjs +0 -1027
- package/dist/mmd/admin/index.mjs.map +0 -1
- package/dist/mmd/index.d.mts +0 -2467
- package/dist/mmd/index.d.ts +0 -2467
- package/dist/mmd/index.js +0 -10119
- package/dist/mmd/index.js.map +0 -1
- package/dist/mmd/index.mjs +0 -10028
- package/dist/mmd/index.mjs.map +0 -1
- package/dist/mmd/server/index.d.mts +0 -139
- package/dist/mmd/server/index.d.ts +0 -139
- package/dist/mmd/server/index.js +0 -424
- package/dist/mmd/server/index.js.map +0 -1
- package/dist/mmd/server/index.mjs +0 -404
- package/dist/mmd/server/index.mjs.map +0 -1
- package/dist/music/index.d.mts +0 -74
- package/dist/music/index.d.ts +0 -74
- package/dist/music/index.js +0 -830
- package/dist/music/index.js.map +0 -1
- package/dist/music/index.mjs +0 -809
- package/dist/music/index.mjs.map +0 -1
- package/dist/music/server/index.d.mts +0 -1
- package/dist/music/server/index.d.ts +0 -1
- package/dist/music/server/index.js +0 -194
- package/dist/music/server/index.js.map +0 -1
- package/dist/music/server/index.mjs +0 -182
- package/dist/music/server/index.mjs.map +0 -1
- package/dist/navigation/index.d.mts +0 -93
- package/dist/navigation/index.d.ts +0 -93
- package/dist/navigation/index.js +0 -453
- package/dist/navigation/index.js.map +0 -1
- package/dist/navigation/index.mjs +0 -443
- package/dist/navigation/index.mjs.map +0 -1
- package/dist/ossFile/index.d.mts +0 -61
- package/dist/ossFile/index.d.ts +0 -61
- package/dist/ossFile/index.js +0 -96
- package/dist/ossFile/index.js.map +0 -1
- package/dist/ossFile/index.mjs +0 -7
- package/dist/ossFile/index.mjs.map +0 -1
- package/dist/ossFile/server/index.d.mts +0 -94
- package/dist/ossFile/server/index.d.ts +0 -94
- package/dist/ossFile/server/index.js +0 -213
- package/dist/ossFile/server/index.js.map +0 -1
- package/dist/ossFile/server/index.mjs +0 -12
- package/dist/ossFile/server/index.mjs.map +0 -1
- package/dist/path-DkaHQSyW.d.mts +0 -41
- package/dist/path-qjVnH8qU.d.ts +0 -41
- package/dist/portfolio/index.d.mts +0 -66
- package/dist/portfolio/index.d.ts +0 -66
- package/dist/portfolio/index.js +0 -736
- package/dist/portfolio/index.js.map +0 -1
- package/dist/portfolio/index.mjs +0 -724
- package/dist/portfolio/index.mjs.map +0 -1
- package/dist/qqbot/server/index.d.mts +0 -216
- package/dist/qqbot/server/index.d.ts +0 -216
- package/dist/qqbot/server/index.js +0 -394
- package/dist/qqbot/server/index.js.map +0 -1
- package/dist/qqbot/server/index.mjs +0 -385
- package/dist/qqbot/server/index.mjs.map +0 -1
- package/dist/qqbot/ui/web/index.d.mts +0 -10
- package/dist/qqbot/ui/web/index.d.ts +0 -10
- package/dist/qqbot/ui/web/index.js +0 -105
- package/dist/qqbot/ui/web/index.js.map +0 -1
- package/dist/qqbot/ui/web/index.mjs +0 -99
- package/dist/qqbot/ui/web/index.mjs.map +0 -1
- package/dist/request/index.d.mts +0 -59
- package/dist/request/index.d.ts +0 -59
- package/dist/request/index.js +0 -23
- package/dist/request/index.js.map +0 -1
- package/dist/request/index.mjs +0 -6
- package/dist/request/index.mjs.map +0 -1
- package/dist/screenReceiver/index.d.mts +0 -86
- package/dist/screenReceiver/index.d.ts +0 -86
- package/dist/screenReceiver/index.js +0 -281
- package/dist/screenReceiver/index.js.map +0 -1
- package/dist/screenReceiver/index.mjs +0 -273
- package/dist/screenReceiver/index.mjs.map +0 -1
- package/dist/session-BCXvGCnm.d.mts +0 -81
- package/dist/session-BCXvGCnm.d.ts +0 -81
- package/dist/storage/index.d.mts +0 -136
- package/dist/storage/index.d.ts +0 -136
- package/dist/storage/index.js +0 -48
- package/dist/storage/index.js.map +0 -1
- package/dist/storage/index.mjs +0 -7
- package/dist/storage/index.mjs.map +0 -1
- package/dist/testYourself/admin/index.d.mts +0 -58
- package/dist/testYourself/admin/index.d.ts +0 -58
- package/dist/testYourself/admin/index.js +0 -1009
- package/dist/testYourself/admin/index.js.map +0 -1
- package/dist/testYourself/admin/index.mjs +0 -1002
- package/dist/testYourself/admin/index.mjs.map +0 -1
- package/dist/testYourself/index.d.mts +0 -53
- package/dist/testYourself/index.d.ts +0 -53
- package/dist/testYourself/index.js +0 -2551
- package/dist/testYourself/index.js.map +0 -1
- package/dist/testYourself/index.mjs +0 -2531
- package/dist/testYourself/index.mjs.map +0 -1
- package/dist/testYourself/server/index.d.mts +0 -1029
- package/dist/testYourself/server/index.d.ts +0 -1029
- package/dist/testYourself/server/index.js +0 -825
- package/dist/testYourself/server/index.js.map +0 -1
- package/dist/testYourself/server/index.mjs +0 -816
- package/dist/testYourself/server/index.mjs.map +0 -1
- package/dist/types-3ujSNAXb.d.mts +0 -286
- package/dist/types-3ujSNAXb.d.ts +0 -286
- package/dist/types-B6B210gX.d.mts +0 -270
- package/dist/types-B6B210gX.d.ts +0 -270
- package/dist/types-Bdnte5EN.d.mts +0 -292
- package/dist/types-C_W_CoUD.d.ts +0 -99
- package/dist/types-Cs0CLvrH.d.mts +0 -70
- package/dist/types-Cs0CLvrH.d.ts +0 -70
- package/dist/types-DCRvasyH.d.mts +0 -99
- package/dist/types-HorDyIRv.d.mts +0 -303
- package/dist/types-HorDyIRv.d.ts +0 -303
- package/dist/types-_rFX1atk.d.ts +0 -292
- package/dist/types.legacy-J-j-_ig_.d.mts +0 -25
- package/dist/types.legacy-J-j-_ig_.d.ts +0 -25
- package/dist/universalExport/index.d.mts +0 -312
- package/dist/universalExport/index.d.ts +0 -312
- package/dist/universalExport/index.js +0 -178
- package/dist/universalExport/index.js.map +0 -1
- package/dist/universalExport/index.mjs +0 -5
- package/dist/universalExport/index.mjs.map +0 -1
- package/dist/universalExport/server/index.d.mts +0 -1270
- package/dist/universalExport/server/index.d.ts +0 -1270
- package/dist/universalExport/server/index.js +0 -123
- package/dist/universalExport/server/index.js.map +0 -1
- package/dist/universalExport/server/index.mjs +0 -6
- package/dist/universalExport/server/index.mjs.map +0 -1
- package/dist/universalFile/index.d.mts +0 -409
- package/dist/universalFile/index.d.ts +0 -409
- package/dist/universalFile/index.js +0 -1742
- package/dist/universalFile/index.js.map +0 -1
- package/dist/universalFile/index.mjs +0 -1497
- package/dist/universalFile/index.mjs.map +0 -1
- package/dist/universalFile/server/index.d.mts +0 -1064
- package/dist/universalFile/server/index.d.ts +0 -1064
- package/dist/universalFile/server/index.js +0 -311
- package/dist/universalFile/server/index.js.map +0 -1
- package/dist/universalFile/server/index.mjs +0 -10
- package/dist/universalFile/server/index.mjs.map +0 -1
- package/dist/utils/index.d.mts +0 -192
- package/dist/utils/index.d.ts +0 -192
- package/dist/utils/index.js +0 -46
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/index.mjs +0 -5
- package/dist/utils/index.mjs.map +0 -1
- package/dist/vocaloidBooth/index.d.mts +0 -64
- package/dist/vocaloidBooth/index.d.ts +0 -64
- package/dist/vocaloidBooth/index.js +0 -376
- package/dist/vocaloidBooth/index.js.map +0 -1
- package/dist/vocaloidBooth/index.mjs +0 -362
- package/dist/vocaloidBooth/index.mjs.map +0 -1
- package/dist/vocaloidBooth/server/index.d.mts +0 -111
- package/dist/vocaloidBooth/server/index.d.ts +0 -111
- package/dist/vocaloidBooth/server/index.js +0 -247
- package/dist/vocaloidBooth/server/index.js.map +0 -1
- package/dist/vocaloidBooth/server/index.mjs +0 -237
- package/dist/vocaloidBooth/server/index.mjs.map +0 -1
- package/dist/vocaloidBooth/web/index.d.mts +0 -3
- package/dist/vocaloidBooth/web/index.d.ts +0 -3
- package/dist/vocaloidBooth/web/index.js +0 -376
- package/dist/vocaloidBooth/web/index.js.map +0 -1
- package/dist/vocaloidBooth/web/index.mjs +0 -362
- package/dist/vocaloidBooth/web/index.mjs.map +0 -1
- /package/dist/{ai → common/ai}/llm/core/index.js.map +0 -0
- /package/dist/{ai → common/ai}/llm/core/index.mjs.map +0 -0
- /package/dist/{ai → common/ai}/llm/electron/index.js.map +0 -0
- /package/dist/{ai → common/ai}/llm/electron/index.mjs.map +0 -0
- /package/dist/{ai → common/ai}/llm/index.js.map +0 -0
- /package/dist/{ai → common/ai}/llm/index.mjs.map +0 -0
- /package/dist/{ai → common/ai}/llm/miniapp/index.js.map +0 -0
- /package/dist/{ai → common/ai}/llm/miniapp/index.mjs.map +0 -0
- /package/dist/{ai → common/ai}/llm/rn/index.js.map +0 -0
- /package/dist/{ai → common/ai}/llm/rn/index.mjs.map +0 -0
- /package/dist/{ai → common/ai}/llm/ui/electron/index.js.map +0 -0
- /package/dist/{ai → common/ai}/llm/ui/electron/index.mjs.map +0 -0
- /package/dist/{ai → common/ai}/llm/ui/miniapp/index.js.map +0 -0
- /package/dist/{ai → common/ai}/llm/ui/miniapp/index.mjs.map +0 -0
- /package/dist/{ai → common/ai}/llm/ui/rn/index.js.map +0 -0
- /package/dist/{ai → common/ai}/llm/ui/rn/index.mjs.map +0 -0
- /package/dist/{ai → common/ai}/llm/ui/web/index.js.map +0 -0
- /package/dist/{ai → common/ai}/llm/ui/web/index.mjs.map +0 -0
- /package/dist/{ai → common/ai}/llm/web/index.js.map +0 -0
- /package/dist/{ai → common/ai}/llm/web/index.mjs.map +0 -0
- /package/dist/{analytics → common/analytics}/index.js.map +0 -0
- /package/dist/{analytics → common/analytics}/index.mjs.map +0 -0
- /package/dist/{analytics → common/analytics}/server/index.d.mts +0 -0
- /package/dist/{analytics → common/analytics}/server/index.d.ts +0 -0
- /package/dist/{api → common/api}/index.js.map +0 -0
- /package/dist/{api → common/api}/index.mjs.map +0 -0
- /package/dist/{auth/client → common/components}/index.js.map +0 -0
- /package/dist/{auth/client → common/components}/index.mjs.map +0 -0
- /package/dist/{auth/components → common/config}/index.js.map +0 -0
- /package/dist/{auth/components → common/config}/index.mjs.map +0 -0
- /package/dist/{config → common/config}/server/index.d.mts +0 -0
- /package/dist/{config → common/config}/server/index.d.ts +0 -0
- /package/dist/{auth/hooks → common/i18n}/index.js.map +0 -0
- /package/dist/{auth/hooks → common/i18n}/index.mjs.map +0 -0
- /package/dist/{auth → common/imageCrop}/index.js.map +0 -0
- /package/dist/{auth → common/imageCrop}/index.mjs.map +0 -0
- /package/dist/{auth/schema → common/ossFile}/index.js.map +0 -0
- /package/dist/{auth/schema → common/ossFile}/index.mjs.map +0 -0
- /package/dist/{auth/services → common/ossFile/server}/index.js.map +0 -0
- /package/dist/{auth/services → common/ossFile/server}/index.mjs.map +0 -0
- /package/dist/{config → common/universalExport}/index.js.map +0 -0
- /package/dist/{config → common/universalExport}/index.mjs.map +0 -0
- /package/dist/{i18n → common/universalExport/server}/index.js.map +0 -0
- /package/dist/{i18n → common/universalExport/server}/index.mjs.map +0 -0
- /package/dist/{logger → common/universalFile/server}/index.js.map +0 -0
- /package/dist/{logger → common/universalFile/server}/index.mjs.map +0 -0
|
@@ -0,0 +1,336 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkZ2SNB5LJ_js = require('./chunk-Z2SNB5LJ.js');
|
|
4
|
+
var chunkF2BZIU67_js = require('./chunk-F2BZIU67.js');
|
|
5
|
+
var fs = require('fs');
|
|
6
|
+
var path = require('path');
|
|
7
|
+
var promises = require('stream/promises');
|
|
8
|
+
|
|
9
|
+
function _interopNamespace(e) {
|
|
10
|
+
if (e && e.__esModule) return e;
|
|
11
|
+
var n = Object.create(null);
|
|
12
|
+
if (e) {
|
|
13
|
+
Object.keys(e).forEach(function (k) {
|
|
14
|
+
if (k !== 'default') {
|
|
15
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
16
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
17
|
+
enumerable: true,
|
|
18
|
+
get: function () { return e[k]; }
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
n.default = e;
|
|
24
|
+
return Object.freeze(n);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
var path__namespace = /*#__PURE__*/_interopNamespace(path);
|
|
28
|
+
|
|
29
|
+
var logger = chunkF2BZIU67_js.createLogger("LocalStorageProvider");
|
|
30
|
+
var LocalStorageProvider = class {
|
|
31
|
+
constructor() {
|
|
32
|
+
this.type = "local";
|
|
33
|
+
this.config = null;
|
|
34
|
+
this.isInitialized = false;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* 初始化存储提供者
|
|
38
|
+
*/
|
|
39
|
+
async initialize(config) {
|
|
40
|
+
if (config.type !== "local") {
|
|
41
|
+
throw new chunkZ2SNB5LJ_js.StorageProviderError("\u914D\u7F6E\u7C7B\u578B\u4E0D\u5339\u914D\uFF1A\u671F\u671B local");
|
|
42
|
+
}
|
|
43
|
+
this.config = config;
|
|
44
|
+
logger.info("\u{1F4C2} [LocalStorageProvider] \u521D\u59CB\u5316\u672C\u5730\u5B58\u50A8\uFF0C\u6839\u76EE\u5F55: " + this.config.rootPath);
|
|
45
|
+
try {
|
|
46
|
+
await this.ensureDirectoryExists(this.config.rootPath);
|
|
47
|
+
await this.validateDirectoryAccess(this.config.rootPath);
|
|
48
|
+
this.isInitialized = true;
|
|
49
|
+
logger.info("\u2705 [LocalStorageProvider] \u672C\u5730\u5B58\u50A8\u521D\u59CB\u5316\u5B8C\u6210");
|
|
50
|
+
} catch (error) {
|
|
51
|
+
logger.error("\u274C [LocalStorageProvider] \u672C\u5730\u5B58\u50A8\u521D\u59CB\u5316\u5931\u8D25:", error);
|
|
52
|
+
throw new chunkZ2SNB5LJ_js.StorageProviderError(`\u672C\u5730\u5B58\u50A8\u521D\u59CB\u5316\u5931\u8D25`);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* 上传文件
|
|
57
|
+
*/
|
|
58
|
+
async upload(fileInfo, filePath) {
|
|
59
|
+
this.ensureInitialized();
|
|
60
|
+
const startTime = Date.now();
|
|
61
|
+
logger.info("\u{1F4E4} [LocalStorageProvider] \u5F00\u59CB\u4E0A\u4F20\u6587\u4EF6: " + filePath);
|
|
62
|
+
try {
|
|
63
|
+
const fullPath = this.getFullPath(filePath);
|
|
64
|
+
await this.ensureDirectoryExists(path__namespace.dirname(fullPath));
|
|
65
|
+
const buffer = Buffer.from(await fileInfo.file.arrayBuffer());
|
|
66
|
+
await fs.promises.writeFile(fullPath, buffer);
|
|
67
|
+
const stats = await fs.promises.stat(fullPath);
|
|
68
|
+
if (stats.size !== fileInfo.file.size) {
|
|
69
|
+
throw new chunkZ2SNB5LJ_js.StorageProviderError(
|
|
70
|
+
"\u6587\u4EF6\u5927\u5C0F\u4E0D\u5339\u914D: \u671F\u671B " + fileInfo.file.size + ", \u5B9E\u9645 " + stats.size
|
|
71
|
+
);
|
|
72
|
+
}
|
|
73
|
+
const accessUrl = this.generateAccessUrl(filePath);
|
|
74
|
+
const uploadTime = Date.now() - startTime;
|
|
75
|
+
logger.info("\u2705 [LocalStorageProvider] \u6587\u4EF6\u4E0A\u4F20\u5B8C\u6210: " + filePath + ", \u8017\u65F6: " + uploadTime + "ms");
|
|
76
|
+
return {
|
|
77
|
+
success: true,
|
|
78
|
+
path: filePath,
|
|
79
|
+
url: accessUrl,
|
|
80
|
+
size: stats.size,
|
|
81
|
+
data: {
|
|
82
|
+
fullPath,
|
|
83
|
+
uploadTime
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
} catch (error) {
|
|
87
|
+
logger.error("\u274C [LocalStorageProvider] \u6587\u4EF6\u4E0A\u4F20\u5931\u8D25: " + filePath + ":", error);
|
|
88
|
+
return {
|
|
89
|
+
success: false,
|
|
90
|
+
error: error instanceof Error ? error.message : "\u4E0A\u4F20\u5931\u8D25"
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* 下载文件
|
|
96
|
+
*/
|
|
97
|
+
async download(path2) {
|
|
98
|
+
this.ensureInitialized();
|
|
99
|
+
logger.info("\u{1F4E5} [LocalStorageProvider] \u5F00\u59CB\u4E0B\u8F7D\u6587\u4EF6: " + path2);
|
|
100
|
+
try {
|
|
101
|
+
const fullPath = this.getFullPath(path2);
|
|
102
|
+
if (!fs.existsSync(fullPath)) {
|
|
103
|
+
throw new chunkZ2SNB5LJ_js.StorageProviderError("\u6587\u4EF6\u4E0D\u5B58\u5728: " + path2);
|
|
104
|
+
}
|
|
105
|
+
const buffer = await fs.promises.readFile(fullPath);
|
|
106
|
+
logger.info("\u2705 [LocalStorageProvider] \u6587\u4EF6\u4E0B\u8F7D\u5B8C\u6210: " + path2 + ", \u5927\u5C0F: " + buffer.length);
|
|
107
|
+
return buffer;
|
|
108
|
+
} catch (error) {
|
|
109
|
+
logger.error("\u274C [LocalStorageProvider] \u6587\u4EF6\u4E0B\u8F7D\u5931\u8D25: " + path2 + ":", error);
|
|
110
|
+
throw new chunkZ2SNB5LJ_js.StorageProviderError(
|
|
111
|
+
"\u6587\u4EF6\u4E0B\u8F7D\u5931\u8D25: " + (error instanceof Error ? error.message : "\u672A\u77E5\u9519\u8BEF")
|
|
112
|
+
);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* 删除文件
|
|
117
|
+
*/
|
|
118
|
+
async delete(path2) {
|
|
119
|
+
this.ensureInitialized();
|
|
120
|
+
logger.info("\u{1F5D1}\uFE0F [LocalStorageProvider] \u5F00\u59CB\u5220\u9664\u6587\u4EF6: " + path2);
|
|
121
|
+
try {
|
|
122
|
+
const fullPath = this.getFullPath(path2);
|
|
123
|
+
if (!fs.existsSync(fullPath)) {
|
|
124
|
+
logger.warn("\u26A0\uFE0F [LocalStorageProvider] \u6587\u4EF6\u4E0D\u5B58\u5728: " + path2);
|
|
125
|
+
return {
|
|
126
|
+
success: true,
|
|
127
|
+
// 文件不存在也视为删除成功
|
|
128
|
+
data: { reason: "file_not_exists" }
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
await fs.promises.unlink(fullPath);
|
|
132
|
+
logger.info("\u2705 [LocalStorageProvider] \u6587\u4EF6\u5220\u9664\u5B8C\u6210: " + path2);
|
|
133
|
+
return {
|
|
134
|
+
success: true,
|
|
135
|
+
data: { deletedPath: fullPath }
|
|
136
|
+
};
|
|
137
|
+
} catch (error) {
|
|
138
|
+
logger.error("\u274C [LocalStorageProvider] \u6587\u4EF6\u5220\u9664\u5931\u8D25: " + path2 + ":", error);
|
|
139
|
+
return {
|
|
140
|
+
success: false,
|
|
141
|
+
error: error instanceof Error ? error.message : "\u5220\u9664\u5931\u8D25"
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* 获取文件信息
|
|
147
|
+
*/
|
|
148
|
+
async getFileInfo(path2) {
|
|
149
|
+
this.ensureInitialized();
|
|
150
|
+
try {
|
|
151
|
+
const fullPath = this.getFullPath(path2);
|
|
152
|
+
if (!fs.existsSync(fullPath)) {
|
|
153
|
+
return {
|
|
154
|
+
success: false,
|
|
155
|
+
error: "\u6587\u4EF6\u4E0D\u5B58\u5728"
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
const stats = await fs.promises.stat(fullPath);
|
|
159
|
+
return {
|
|
160
|
+
success: true,
|
|
161
|
+
size: stats.size,
|
|
162
|
+
data: {
|
|
163
|
+
fullPath,
|
|
164
|
+
size: stats.size,
|
|
165
|
+
mtime: stats.mtime,
|
|
166
|
+
ctime: stats.ctime,
|
|
167
|
+
isFile: stats.isFile(),
|
|
168
|
+
isDirectory: stats.isDirectory()
|
|
169
|
+
}
|
|
170
|
+
};
|
|
171
|
+
} catch (error) {
|
|
172
|
+
return {
|
|
173
|
+
success: false,
|
|
174
|
+
error: error instanceof Error ? error.message : "\u83B7\u53D6\u6587\u4EF6\u4FE1\u606F\u5931\u8D25"
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* 生成访问URL
|
|
180
|
+
*/
|
|
181
|
+
async getAccessUrl(path2, _expiresIn) {
|
|
182
|
+
this.ensureInitialized();
|
|
183
|
+
return this.generateAccessUrl(path2);
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* 生成预签名上传URL
|
|
187
|
+
*/
|
|
188
|
+
async getUploadUrl(path2, _expiresIn) {
|
|
189
|
+
this.ensureInitialized();
|
|
190
|
+
logger.warn(`\u26A0\uFE0F [LocalStorageProvider] \u672C\u5730\u5B58\u50A8\u4E0D\u652F\u6301\u9884\u7B7E\u540D\u4E0A\u4F20URL`);
|
|
191
|
+
return this.generateAccessUrl(path2);
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* 检查文件是否存在
|
|
195
|
+
*/
|
|
196
|
+
async exists(path2) {
|
|
197
|
+
this.ensureInitialized();
|
|
198
|
+
try {
|
|
199
|
+
const fullPath = this.getFullPath(path2);
|
|
200
|
+
return fs.existsSync(fullPath);
|
|
201
|
+
} catch {
|
|
202
|
+
return false;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* 列出文件
|
|
207
|
+
*/
|
|
208
|
+
async list(prefix, maxKeys) {
|
|
209
|
+
this.ensureInitialized();
|
|
210
|
+
try {
|
|
211
|
+
const fullPrefix = this.getFullPath(prefix);
|
|
212
|
+
const baseDir = path__namespace.dirname(fullPrefix);
|
|
213
|
+
const filePattern = path__namespace.basename(fullPrefix);
|
|
214
|
+
if (!fs.existsSync(baseDir)) {
|
|
215
|
+
return [];
|
|
216
|
+
}
|
|
217
|
+
const entries = await fs.promises.readdir(baseDir, { withFileTypes: true });
|
|
218
|
+
let files = entries.filter((entry) => entry.isFile()).map((entry) => entry.name).filter((name) => name.startsWith(filePattern)).map((name) => path__namespace.join(path__namespace.dirname(prefix), name));
|
|
219
|
+
if (maxKeys && maxKeys > 0) {
|
|
220
|
+
files = files.slice(0, maxKeys);
|
|
221
|
+
}
|
|
222
|
+
return files;
|
|
223
|
+
} catch (error) {
|
|
224
|
+
logger.error("\u274C [LocalStorageProvider] \u5217\u51FA\u6587\u4EF6\u5931\u8D25: " + prefix + ":", error);
|
|
225
|
+
return [];
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
// ============= 私有方法 =============
|
|
229
|
+
/**
|
|
230
|
+
* 确保已初始化
|
|
231
|
+
*/
|
|
232
|
+
ensureInitialized() {
|
|
233
|
+
if (!this.isInitialized || !this.config) {
|
|
234
|
+
throw new chunkZ2SNB5LJ_js.StorageProviderError("\u5B58\u50A8\u63D0\u4F9B\u8005\u672A\u521D\u59CB\u5316");
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* 获取完整文件路径
|
|
239
|
+
*/
|
|
240
|
+
getFullPath(relativePath) {
|
|
241
|
+
if (!this.config) {
|
|
242
|
+
throw new chunkZ2SNB5LJ_js.StorageProviderError("\u5B58\u50A8\u63D0\u4F9B\u8005\u672A\u521D\u59CB\u5316");
|
|
243
|
+
}
|
|
244
|
+
const normalizedPath = path__namespace.normalize(relativePath);
|
|
245
|
+
if (normalizedPath.includes("..")) {
|
|
246
|
+
throw new chunkZ2SNB5LJ_js.StorageProviderError("\u975E\u6CD5\u8DEF\u5F84\uFF1A\u4E0D\u5141\u8BB8\u4F7F\u7528\u7236\u76EE\u5F55\u5F15\u7528");
|
|
247
|
+
}
|
|
248
|
+
return path__namespace.join(this.config.rootPath, normalizedPath);
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* 生成访问URL
|
|
252
|
+
*/
|
|
253
|
+
generateAccessUrl(relativePath) {
|
|
254
|
+
if (!this.config) {
|
|
255
|
+
throw new chunkZ2SNB5LJ_js.StorageProviderError("\u5B58\u50A8\u63D0\u4F9B\u8005\u672A\u521D\u59CB\u5316");
|
|
256
|
+
}
|
|
257
|
+
const urlPath = relativePath.replace(/\\/g, "/");
|
|
258
|
+
const normalizedUrlPath = urlPath.startsWith("/") ? urlPath : "/" + urlPath;
|
|
259
|
+
return this.config.baseUrl + normalizedUrlPath;
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* 确保目录存在
|
|
263
|
+
*/
|
|
264
|
+
async ensureDirectoryExists(dirPath) {
|
|
265
|
+
try {
|
|
266
|
+
await fs.promises.mkdir(dirPath, { recursive: true });
|
|
267
|
+
} catch (error) {
|
|
268
|
+
if (error instanceof Error && "code" in error && error.code !== "EEXIST") {
|
|
269
|
+
throw error;
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* 验证目录访问权限
|
|
275
|
+
*/
|
|
276
|
+
async validateDirectoryAccess(dirPath) {
|
|
277
|
+
try {
|
|
278
|
+
await fs.promises.access(dirPath, fs.promises.constants.R_OK | fs.promises.constants.W_OK);
|
|
279
|
+
} catch (error) {
|
|
280
|
+
throw new chunkZ2SNB5LJ_js.StorageProviderError(
|
|
281
|
+
"\u76EE\u5F55\u8BBF\u95EE\u6743\u9650\u4E0D\u8DB3: " + dirPath + ", " + (error instanceof Error ? error.message : "\u672A\u77E5\u9519\u8BEF")
|
|
282
|
+
);
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
/**
|
|
286
|
+
* 流式上传大文件(可选实现)
|
|
287
|
+
*/
|
|
288
|
+
async uploadStream(readableStream, filePath) {
|
|
289
|
+
this.ensureInitialized();
|
|
290
|
+
const startTime = Date.now();
|
|
291
|
+
logger.info("\u{1F4E4} [LocalStorageProvider] \u5F00\u59CB\u6D41\u5F0F\u4E0A\u4F20\u6587\u4EF6: " + filePath);
|
|
292
|
+
try {
|
|
293
|
+
const fullPath = this.getFullPath(filePath);
|
|
294
|
+
await this.ensureDirectoryExists(path__namespace.dirname(fullPath));
|
|
295
|
+
const writeStream = fs.createWriteStream(fullPath);
|
|
296
|
+
await promises.pipeline(readableStream, writeStream);
|
|
297
|
+
const stats = await fs.promises.stat(fullPath);
|
|
298
|
+
const accessUrl = this.generateAccessUrl(filePath);
|
|
299
|
+
const uploadTime = Date.now() - startTime;
|
|
300
|
+
logger.info(
|
|
301
|
+
"\u2705 [LocalStorageProvider] \u6D41\u5F0F\u4E0A\u4F20\u5B8C\u6210: " + filePath + ", \u5927\u5C0F: " + stats.size + ", \u8017\u65F6: " + uploadTime + "ms"
|
|
302
|
+
);
|
|
303
|
+
return {
|
|
304
|
+
success: true,
|
|
305
|
+
path: filePath,
|
|
306
|
+
url: accessUrl,
|
|
307
|
+
size: stats.size,
|
|
308
|
+
data: {
|
|
309
|
+
fullPath,
|
|
310
|
+
uploadTime
|
|
311
|
+
}
|
|
312
|
+
};
|
|
313
|
+
} catch (error) {
|
|
314
|
+
logger.error("\u274C [LocalStorageProvider] \u6D41\u5F0F\u4E0A\u4F20\u5931\u8D25: " + filePath + ":", error);
|
|
315
|
+
return {
|
|
316
|
+
success: false,
|
|
317
|
+
error: error instanceof Error ? error.message : "\u6D41\u5F0F\u4E0A\u4F20\u5931\u8D25"
|
|
318
|
+
};
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
/**
|
|
322
|
+
* 流式下载大文件(可选实现)
|
|
323
|
+
*/
|
|
324
|
+
createDownloadStream(path2) {
|
|
325
|
+
this.ensureInitialized();
|
|
326
|
+
const fullPath = this.getFullPath(path2);
|
|
327
|
+
if (!fs.existsSync(fullPath)) {
|
|
328
|
+
throw new chunkZ2SNB5LJ_js.StorageProviderError("\u6587\u4EF6\u4E0D\u5B58\u5728: " + path2);
|
|
329
|
+
}
|
|
330
|
+
return fs.createReadStream(fullPath);
|
|
331
|
+
}
|
|
332
|
+
};
|
|
333
|
+
|
|
334
|
+
exports.LocalStorageProvider = LocalStorageProvider;
|
|
335
|
+
//# sourceMappingURL=chunk-6HL54I2B.js.map
|
|
336
|
+
//# sourceMappingURL=chunk-6HL54I2B.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/common/universalFile/server/providers/LocalStorageProvider.ts"],"names":["createLogger","StorageProviderError","path","fs","existsSync","createWriteStream","pipeline","createReadStream"],"mappings":"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","file":"chunk-6HL54I2B.js","sourcesContent":["/**\n * 本地存储提供者实现\n */\n\nimport { promises as fs } from 'fs';\nimport { existsSync, createReadStream, createWriteStream } from 'fs';\nimport * as path from 'path';\nimport { pipeline } from 'stream/promises';\nimport { createLogger } from '../../../logger';\n\nimport type {\n IStorageProvider,\n StorageConfig,\n LocalStorageConfig,\n StorageResult,\n UploadFileInfo,\n StorageType,\n} from '../types';\n\nimport { StorageProviderError } from '../types';\n\nconst logger = createLogger('LocalStorageProvider');\n\n/**\n * 本地文件系统存储提供者\n */\nexport class LocalStorageProvider implements IStorageProvider {\n readonly type: StorageType = 'local';\n\n private config: LocalStorageConfig | null = null;\n private isInitialized = false;\n\n /**\n * 初始化存储提供者\n */\n async initialize(config: StorageConfig): Promise<void> {\n if (config.type !== 'local') {\n throw new StorageProviderError('配置类型不匹配:期望 local');\n }\n\n this.config = config as LocalStorageConfig;\n\n logger.info('📂 [LocalStorageProvider] 初始化本地存储,根目录: ' + (this.config.rootPath));\n\n try {\n // 确保根目录存在\n await this.ensureDirectoryExists(this.config.rootPath);\n\n // 验证目录访问权限\n await this.validateDirectoryAccess(this.config.rootPath);\n\n this.isInitialized = true;\n logger.info('✅ [LocalStorageProvider] 本地存储初始化完成');\n } catch (error) {\n logger.error('❌ [LocalStorageProvider] 本地存储初始化失败:', error);\n throw new StorageProviderError(`本地存储初始化失败`);\n }\n }\n\n /**\n * 上传文件\n */\n async upload(fileInfo: UploadFileInfo, filePath: string): Promise<StorageResult> {\n this.ensureInitialized();\n\n const startTime = Date.now();\n logger.info('📤 [LocalStorageProvider] 开始上传文件: ' + (filePath));\n\n try {\n // 生成完整文件路径\n const fullPath = this.getFullPath(filePath);\n\n // 确保父目录存在\n await this.ensureDirectoryExists(path.dirname(fullPath));\n\n // 将File对象转换为Buffer\n const buffer = Buffer.from(await fileInfo.file.arrayBuffer());\n\n // 写入文件\n await fs.writeFile(fullPath, buffer);\n\n // 验证文件写入\n const stats = await fs.stat(fullPath);\n\n if (stats.size !== fileInfo.file.size) {\n throw new StorageProviderError(\n '文件大小不匹配: 期望 ' + (fileInfo.file.size) + ', 实际 ' + (stats.size)\n );\n }\n\n // 生成访问URL\n const accessUrl = this.generateAccessUrl(filePath);\n\n const uploadTime = Date.now() - startTime;\n logger.info('✅ [LocalStorageProvider] 文件上传完成: ' + (filePath) + ', 耗时: ' + (uploadTime) + 'ms');\n\n return {\n success: true,\n path: filePath,\n url: accessUrl,\n size: stats.size,\n data: {\n fullPath,\n uploadTime,\n },\n };\n } catch (error) {\n logger.error('❌ [LocalStorageProvider] 文件上传失败: ' + (filePath) + ':', error);\n\n return {\n success: false,\n error: error instanceof Error ? error.message : '上传失败',\n };\n }\n }\n\n /**\n * 下载文件\n */\n async download(path: string): Promise<Buffer> {\n this.ensureInitialized();\n\n logger.info('📥 [LocalStorageProvider] 开始下载文件: ' + (path));\n\n try {\n const fullPath = this.getFullPath(path);\n\n // 检查文件是否存在\n if (!existsSync(fullPath)) {\n throw new StorageProviderError('文件不存在: ' + (path));\n }\n\n // 读取文件\n const buffer = await fs.readFile(fullPath);\n\n logger.info('✅ [LocalStorageProvider] 文件下载完成: ' + (path) + ', 大小: ' + (buffer.length));\n\n return buffer;\n } catch (error) {\n logger.error('❌ [LocalStorageProvider] 文件下载失败: ' + (path) + ':', error);\n throw new StorageProviderError(\n '文件下载失败: ' + (error instanceof Error ? error.message : '未知错误')\n );\n }\n }\n\n /**\n * 删除文件\n */\n async delete(path: string): Promise<StorageResult> {\n this.ensureInitialized();\n\n logger.info('🗑️ [LocalStorageProvider] 开始删除文件: ' + (path));\n\n try {\n const fullPath = this.getFullPath(path);\n\n // 检查文件是否存在\n if (!existsSync(fullPath)) {\n logger.warn('⚠️ [LocalStorageProvider] 文件不存在: ' + (path));\n return {\n success: true, // 文件不存在也视为删除成功\n data: { reason: 'file_not_exists' },\n };\n }\n\n // 删除文件\n await fs.unlink(fullPath);\n\n logger.info('✅ [LocalStorageProvider] 文件删除完成: ' + (path));\n\n return {\n success: true,\n data: { deletedPath: fullPath },\n };\n } catch (error) {\n logger.error('❌ [LocalStorageProvider] 文件删除失败: ' + (path) + ':', error);\n\n return {\n success: false,\n error: error instanceof Error ? error.message : '删除失败',\n };\n }\n }\n\n /**\n * 获取文件信息\n */\n async getFileInfo(path: string): Promise<StorageResult> {\n this.ensureInitialized();\n\n try {\n const fullPath = this.getFullPath(path);\n\n if (!existsSync(fullPath)) {\n return {\n success: false,\n error: '文件不存在',\n };\n }\n\n const stats = await fs.stat(fullPath);\n\n return {\n success: true,\n size: stats.size,\n data: {\n fullPath,\n size: stats.size,\n mtime: stats.mtime,\n ctime: stats.ctime,\n isFile: stats.isFile(),\n isDirectory: stats.isDirectory(),\n },\n };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error.message : '获取文件信息失败',\n };\n }\n }\n\n /**\n * 生成访问URL\n */\n async getAccessUrl(path: string, _expiresIn?: number): Promise<string> {\n this.ensureInitialized();\n\n // 本地存储不支持过期时间,忽略expiresIn参数\n return this.generateAccessUrl(path);\n }\n\n /**\n * 生成预签名上传URL\n */\n async getUploadUrl(path: string, _expiresIn?: number): Promise<string> {\n this.ensureInitialized();\n\n // 本地存储不支持预签名上传,返回普通访问URL\n logger.warn(`⚠️ [LocalStorageProvider] 本地存储不支持预签名上传URL`);\n return this.generateAccessUrl(path);\n }\n\n /**\n * 检查文件是否存在\n */\n async exists(path: string): Promise<boolean> {\n this.ensureInitialized();\n\n try {\n const fullPath = this.getFullPath(path);\n return existsSync(fullPath);\n } catch {\n return false;\n }\n }\n\n /**\n * 列出文件\n */\n async list(prefix: string, maxKeys?: number): Promise<string[]> {\n this.ensureInitialized();\n\n try {\n const fullPrefix = this.getFullPath(prefix);\n const baseDir = path.dirname(fullPrefix);\n const filePattern = path.basename(fullPrefix);\n\n if (!existsSync(baseDir)) {\n return [];\n }\n\n const entries = await fs.readdir(baseDir, { withFileTypes: true });\n let files = entries\n .filter((entry) => entry.isFile())\n .map((entry) => entry.name)\n .filter((name) => name.startsWith(filePattern))\n .map((name) => path.join(path.dirname(prefix), name));\n\n // 限制返回数量\n if (maxKeys && maxKeys > 0) {\n files = files.slice(0, maxKeys);\n }\n\n return files;\n } catch (error) {\n logger.error('❌ [LocalStorageProvider] 列出文件失败: ' + (prefix) + ':', error);\n return [];\n }\n }\n\n // ============= 私有方法 =============\n\n /**\n * 确保已初始化\n */\n private ensureInitialized(): void {\n if (!this.isInitialized || !this.config) {\n throw new StorageProviderError('存储提供者未初始化');\n }\n }\n\n /**\n * 获取完整文件路径\n */\n private getFullPath(relativePath: string): string {\n if (!this.config) {\n throw new StorageProviderError('存储提供者未初始化');\n }\n\n // 防止路径遍历攻击\n const normalizedPath = path.normalize(relativePath);\n if (normalizedPath.includes('..')) {\n throw new StorageProviderError('非法路径:不允许使用父目录引用');\n }\n\n return path.join(this.config.rootPath, normalizedPath);\n }\n\n /**\n * 生成访问URL\n */\n private generateAccessUrl(relativePath: string): string {\n if (!this.config) {\n throw new StorageProviderError('存储提供者未初始化');\n }\n\n // 规范化路径分隔符为URL格式\n const urlPath = relativePath.replace(/\\\\/g, '/');\n\n // 确保URL路径以/开头\n const normalizedUrlPath = urlPath.startsWith('/') ? urlPath : '/' + (urlPath);\n\n return (this.config.baseUrl) + (normalizedUrlPath);\n }\n\n /**\n * 确保目录存在\n */\n private async ensureDirectoryExists(dirPath: string): Promise<void> {\n try {\n await fs.mkdir(dirPath, { recursive: true });\n } catch (error) {\n // 如果目录已存在,忽略错误\n if (error instanceof Error && 'code' in error && error.code !== 'EEXIST') {\n throw error;\n }\n }\n }\n\n /**\n * 验证目录访问权限\n */\n private async validateDirectoryAccess(dirPath: string): Promise<void> {\n try {\n // 检查读写权限\n await fs.access(dirPath, fs.constants.R_OK | fs.constants.W_OK);\n } catch (error) {\n throw new StorageProviderError(\n '目录访问权限不足: ' + (dirPath) + ', ' + (error instanceof Error ? error.message : '未知错误')\n );\n }\n }\n\n /**\n * 流式上传大文件(可选实现)\n */\n async uploadStream(\n readableStream: NodeJS.ReadableStream,\n filePath: string\n ): Promise<StorageResult> {\n this.ensureInitialized();\n\n const startTime = Date.now();\n logger.info('📤 [LocalStorageProvider] 开始流式上传文件: ' + (filePath));\n\n try {\n const fullPath = this.getFullPath(filePath);\n\n // 确保父目录存在\n await this.ensureDirectoryExists(path.dirname(fullPath));\n\n // 创建写入流\n const writeStream = createWriteStream(fullPath);\n\n // 使用pipeline进行流式传输\n await pipeline(readableStream, writeStream);\n\n // 获取文件信息\n const stats = await fs.stat(fullPath);\n\n // 生成访问URL\n const accessUrl = this.generateAccessUrl(filePath);\n\n const uploadTime = Date.now() - startTime;\n logger.info(\n '✅ [LocalStorageProvider] 流式上传完成: ' + (filePath) + ', 大小: ' + (stats.size) + ', 耗时: ' + (uploadTime) + 'ms'\n );\n\n return {\n success: true,\n path: filePath,\n url: accessUrl,\n size: stats.size,\n data: {\n fullPath,\n uploadTime,\n },\n };\n } catch (error) {\n logger.error('❌ [LocalStorageProvider] 流式上传失败: ' + (filePath) + ':', error);\n\n return {\n success: false,\n error: error instanceof Error ? error.message : '流式上传失败',\n };\n }\n }\n\n /**\n * 流式下载大文件(可选实现)\n */\n createDownloadStream(path: string): NodeJS.ReadableStream {\n this.ensureInitialized();\n\n const fullPath = this.getFullPath(path);\n\n if (!existsSync(fullPath)) {\n throw new StorageProviderError('文件不存在: ' + (path));\n }\n\n return createReadStream(fullPath);\n }\n}\n\n"]}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { WebStorageAdapter } from './chunk-WB4H6ZUW.mjs';
|
|
2
|
+
import { useState, useEffect, useCallback } from 'react';
|
|
3
|
+
|
|
4
|
+
function useStorage(storage, key, defaultValue) {
|
|
5
|
+
const [value, setValue] = useState(defaultValue);
|
|
6
|
+
const [loading, setLoading] = useState(true);
|
|
7
|
+
useEffect(() => {
|
|
8
|
+
const loadValue = async () => {
|
|
9
|
+
try {
|
|
10
|
+
const stored = await storage.getItem(key);
|
|
11
|
+
if (stored !== null) {
|
|
12
|
+
setValue(JSON.parse(stored));
|
|
13
|
+
}
|
|
14
|
+
} catch (error) {
|
|
15
|
+
console.error('Error reading storage key "' + key + '":', error);
|
|
16
|
+
} finally {
|
|
17
|
+
setLoading(false);
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
void loadValue();
|
|
21
|
+
}, [storage, key]);
|
|
22
|
+
const updateValue = useCallback(
|
|
23
|
+
async (newValue) => {
|
|
24
|
+
try {
|
|
25
|
+
setValue(newValue);
|
|
26
|
+
await storage.setItem(key, JSON.stringify(newValue));
|
|
27
|
+
if ("dispatchChange" in storage && typeof storage.dispatchChange === "function") {
|
|
28
|
+
storage.dispatchChange(key, JSON.stringify(newValue));
|
|
29
|
+
}
|
|
30
|
+
} catch (error) {
|
|
31
|
+
console.error('Error setting storage key "' + key + '":', error);
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
[storage, key]
|
|
35
|
+
);
|
|
36
|
+
const removeValue = useCallback(async () => {
|
|
37
|
+
try {
|
|
38
|
+
setValue(defaultValue);
|
|
39
|
+
await storage.removeItem(key);
|
|
40
|
+
if ("dispatchChange" in storage && typeof storage.dispatchChange === "function") {
|
|
41
|
+
storage.dispatchChange(key, null);
|
|
42
|
+
}
|
|
43
|
+
} catch (error) {
|
|
44
|
+
console.error('Error removing storage key "' + key + '":', error);
|
|
45
|
+
}
|
|
46
|
+
}, [storage, key, defaultValue]);
|
|
47
|
+
useEffect(() => {
|
|
48
|
+
if (!storage.addChangeListener) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
const cleanup = storage.addChangeListener((changedKey, newValue) => {
|
|
52
|
+
if (changedKey === key) {
|
|
53
|
+
try {
|
|
54
|
+
if (newValue === null) {
|
|
55
|
+
setValue(defaultValue);
|
|
56
|
+
} else {
|
|
57
|
+
setValue(JSON.parse(newValue));
|
|
58
|
+
}
|
|
59
|
+
} catch (error) {
|
|
60
|
+
console.error("Error parsing storage change event:", error);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
return cleanup;
|
|
65
|
+
}, [storage, key, defaultValue]);
|
|
66
|
+
return [value, updateValue, removeValue, loading];
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// src/common/storage/hooks/useLocalStorage.ts
|
|
70
|
+
var webStorage = new WebStorageAdapter();
|
|
71
|
+
function useLocalStorage(key, defaultValue) {
|
|
72
|
+
return useStorage(webStorage, key, defaultValue);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export { useLocalStorage, useStorage };
|
|
76
|
+
//# sourceMappingURL=chunk-6V2MIQPF.mjs.map
|
|
77
|
+
//# sourceMappingURL=chunk-6V2MIQPF.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/common/storage/hooks/useStorage.ts","../src/common/storage/hooks/useLocalStorage.ts"],"names":[],"mappings":"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","file":"chunk-6V2MIQPF.mjs","sourcesContent":["/**\n * 通用存储 Hook\n * 支持多平台:Web、React Native、小程序\n *\n * 优点:\n * 1. 异步读取,不阻塞渲染\n * 2. 统一的错误处理\n * 3. 类型安全\n * 4. 跨平台支持\n * 5. 自动同步(支持的平台)\n */\n\nimport { useState, useEffect, useCallback } from 'react';\nimport type { StorageAdapter } from '../types';\n\nexport function useStorage<T>(\n storage: StorageAdapter,\n key: string,\n defaultValue: T\n): [T, (value: T) => void, () => void, boolean] {\n const [value, setValue] = useState<T>(defaultValue);\n const [loading, setLoading] = useState(true);\n\n // 初始化时从存储读取\n useEffect(() => {\n const loadValue = async () => {\n try {\n const stored = await storage.getItem(key);\n if (stored !== null) {\n setValue(JSON.parse(stored));\n }\n } catch (error) {\n console.error('Error reading storage key \"' + (key) + '\":', error);\n } finally {\n setLoading(false);\n }\n };\n\n void loadValue();\n }, [storage, key]);\n\n // 更新值并同步到存储\n const updateValue = useCallback(\n async (newValue: T) => {\n try {\n setValue(newValue);\n await storage.setItem(key, JSON.stringify(newValue));\n\n // 如果是 Web 适配器,触发自定义事件\n if ('dispatchChange' in storage && typeof storage.dispatchChange === 'function') {\n (storage as any).dispatchChange(key, JSON.stringify(newValue));\n }\n } catch (error) {\n console.error('Error setting storage key \"' + (key) + '\":', error);\n }\n },\n [storage, key]\n );\n\n // 删除值\n const removeValue = useCallback(async () => {\n try {\n setValue(defaultValue);\n await storage.removeItem(key);\n\n // 如果是 Web 适配器,触发自定义事件\n if ('dispatchChange' in storage && typeof storage.dispatchChange === 'function') {\n (storage as any).dispatchChange(key, null);\n }\n } catch (error) {\n console.error('Error removing storage key \"' + (key) + '\":', error);\n }\n }, [storage, key, defaultValue]);\n\n // 监听存储变化\n useEffect(() => {\n if (!storage.addChangeListener) {\n return;\n }\n\n const cleanup = storage.addChangeListener((changedKey: string, newValue: string | null) => {\n if (changedKey === key) {\n try {\n if (newValue === null) {\n setValue(defaultValue);\n } else {\n setValue(JSON.parse(newValue));\n }\n } catch (error) {\n console.error('Error parsing storage change event:', error);\n }\n }\n });\n\n return cleanup;\n }, [storage, key, defaultValue]);\n\n return [value, updateValue, removeValue, loading];\n}\n\n","/**\n * Web 平台 localStorage Hook\n * 基于通用 useStorage 的便捷封装\n */\n\nimport { useStorage } from './useStorage';\nimport { WebStorageAdapter } from '../adapters/web-adapter';\n\n// 创建单例适配器\nconst webStorage = new WebStorageAdapter();\n\n/**\n * Web 平台的 localStorage Hook\n *\n * @param key - 存储键名\n * @param defaultValue - 默认值\n * @returns [value, setValue, removeValue, isLoading]\n */\nexport function useLocalStorage<T>(\n key: string,\n defaultValue: T\n): [T, (value: T) => void, () => void, boolean] {\n return useStorage(webStorage, key, defaultValue);\n}\n\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/common/auth/hooks/useSession.ts"],"names":[],"mappings":";AAOO,SAAS,WAAW,UAAA,EAA8B;AACvD,EAAA,OAAO,WAAW,UAAA,EAAW;AAC/B","file":"chunk-6YLCRWKM.mjs","sourcesContent":["'use client';\n\nimport type { Sa2kitAuthClient } from '../react';\n\n/**\n * 薄封装 Better Auth React `useSession`\n */\nexport function useSession(authClient: Sa2kitAuthClient) {\n return authClient.useSession();\n}\n\nexport type UseSessionReturn = ReturnType<typeof useSession>;\n"]}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { ElectronStorageAdapter } from './chunk-ZUZLWHH5.mjs';
|
|
2
|
+
import { WebStorageAdapter } from './chunk-WB4H6ZUW.mjs';
|
|
3
|
+
import { WebRequestAdapter } from './chunk-LZ5YTMMP.mjs';
|
|
4
|
+
import { __export } from './chunk-MAI35PU6.mjs';
|
|
5
|
+
|
|
6
|
+
// src/common/platform/index.ts
|
|
7
|
+
var platform_exports = {};
|
|
8
|
+
__export(platform_exports, {
|
|
9
|
+
createElectronPlatformAdapter: () => createElectronPlatformAdapter,
|
|
10
|
+
createNodeHonoPlatformAdapter: () => createNodeHonoPlatformAdapter,
|
|
11
|
+
createTaroPlatformAdapter: () => createTaroPlatformAdapter,
|
|
12
|
+
createWebPlatformAdapter: () => createWebPlatformAdapter
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
// src/common/platform/adapters/web.ts
|
|
16
|
+
function createWebFilePickAdapter() {
|
|
17
|
+
return {
|
|
18
|
+
async pickFiles(options) {
|
|
19
|
+
if (typeof document === "undefined") {
|
|
20
|
+
throw new Error("[PlatformAdapter:web] filePick \u9700\u8981\u6D4F\u89C8\u5668 document");
|
|
21
|
+
}
|
|
22
|
+
return new Promise((resolve, reject) => {
|
|
23
|
+
const input = document.createElement("input");
|
|
24
|
+
input.type = "file";
|
|
25
|
+
input.style.display = "none";
|
|
26
|
+
if (options?.accept) {
|
|
27
|
+
input.accept = options.accept;
|
|
28
|
+
}
|
|
29
|
+
if (options?.multiple) {
|
|
30
|
+
input.multiple = true;
|
|
31
|
+
}
|
|
32
|
+
input.onchange = () => {
|
|
33
|
+
const files = Array.from(input.files ?? []);
|
|
34
|
+
input.remove();
|
|
35
|
+
resolve(
|
|
36
|
+
files.map((file) => ({
|
|
37
|
+
name: file.name,
|
|
38
|
+
mimeType: file.type || void 0,
|
|
39
|
+
size: file.size,
|
|
40
|
+
blob: file
|
|
41
|
+
}))
|
|
42
|
+
);
|
|
43
|
+
};
|
|
44
|
+
input.oncancel = () => {
|
|
45
|
+
input.remove();
|
|
46
|
+
resolve([]);
|
|
47
|
+
};
|
|
48
|
+
document.body.appendChild(input);
|
|
49
|
+
input.click();
|
|
50
|
+
input.addEventListener("error", () => {
|
|
51
|
+
input.remove();
|
|
52
|
+
reject(new Error("[PlatformAdapter:web] filePick \u5931\u8D25"));
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
function createWebPlatformAdapter(options = {}) {
|
|
59
|
+
return {
|
|
60
|
+
storage: new WebStorageAdapter(),
|
|
61
|
+
fetch: new WebRequestAdapter(),
|
|
62
|
+
filePick: options.filePick === false ? void 0 : createWebFilePickAdapter()
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// src/common/platform/adapters/taro.ts
|
|
67
|
+
function createTaroPlatformAdapter(partial) {
|
|
68
|
+
if (!partial.storage || !partial.fetch) {
|
|
69
|
+
throw new Error(
|
|
70
|
+
"[PlatformAdapter:taro] \u8BF7\u6CE8\u5165 storage \u4E0E fetch\uFF08\u57FA\u4E8E Taro.getStorage / Taro.request\uFF09"
|
|
71
|
+
);
|
|
72
|
+
}
|
|
73
|
+
return {
|
|
74
|
+
storage: partial.storage,
|
|
75
|
+
fetch: partial.fetch,
|
|
76
|
+
filePick: partial.filePick
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
// src/common/platform/adapters/electron.ts
|
|
81
|
+
function createElectronPlatformAdapter(options = {}) {
|
|
82
|
+
try {
|
|
83
|
+
return {
|
|
84
|
+
storage: new ElectronStorageAdapter(),
|
|
85
|
+
fetch: new WebRequestAdapter(),
|
|
86
|
+
filePick: options.filePick === false ? void 0 : createWebPlatformAdapter({ filePick: true }).filePick
|
|
87
|
+
};
|
|
88
|
+
} catch {
|
|
89
|
+
return createWebPlatformAdapter(options);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
// src/common/platform/adapters/node-hono.ts
|
|
94
|
+
var MemoryStorageAdapter = class {
|
|
95
|
+
constructor() {
|
|
96
|
+
this.store = /* @__PURE__ */ new Map();
|
|
97
|
+
}
|
|
98
|
+
async getItem(key) {
|
|
99
|
+
return this.store.get(key) ?? null;
|
|
100
|
+
}
|
|
101
|
+
async setItem(key, value) {
|
|
102
|
+
this.store.set(key, value);
|
|
103
|
+
}
|
|
104
|
+
async removeItem(key) {
|
|
105
|
+
this.store.delete(key);
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
var NodeFetchAdapter = class {
|
|
109
|
+
async request(config) {
|
|
110
|
+
let fullUrl = config.url;
|
|
111
|
+
if (config.params) {
|
|
112
|
+
const search = new URLSearchParams();
|
|
113
|
+
for (const [key, value] of Object.entries(config.params)) {
|
|
114
|
+
if (value !== void 0 && value !== null) {
|
|
115
|
+
search.append(key, String(value));
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
const qs = search.toString();
|
|
119
|
+
if (qs) {
|
|
120
|
+
fullUrl += (fullUrl.includes("?") ? "&" : "?") + qs;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
const response = await fetch(fullUrl, {
|
|
124
|
+
method: config.method ?? "GET",
|
|
125
|
+
headers: {
|
|
126
|
+
"Content-Type": "application/json",
|
|
127
|
+
...config.headers
|
|
128
|
+
},
|
|
129
|
+
body: config.body ? JSON.stringify(config.body) : void 0
|
|
130
|
+
});
|
|
131
|
+
if (!response.ok) {
|
|
132
|
+
throw new Error(`[PlatformAdapter:node-hono] HTTP ${response.status}`);
|
|
133
|
+
}
|
|
134
|
+
return await response.json();
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
var unsupportedFilePick = {
|
|
138
|
+
async pickFiles() {
|
|
139
|
+
throw new Error("[PlatformAdapter:node-hono] filePick \u9700\u5728\u5BBF\u4E3B\u6CE8\u5165");
|
|
140
|
+
}
|
|
141
|
+
};
|
|
142
|
+
function createNodeHonoPlatformAdapter(overrides = {}) {
|
|
143
|
+
return {
|
|
144
|
+
storage: overrides.storage ?? new MemoryStorageAdapter(),
|
|
145
|
+
fetch: overrides.fetch ?? new NodeFetchAdapter(),
|
|
146
|
+
filePick: overrides.filePick ?? unsupportedFilePick
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
export { createElectronPlatformAdapter, createNodeHonoPlatformAdapter, createTaroPlatformAdapter, createWebPlatformAdapter, platform_exports };
|
|
151
|
+
//# sourceMappingURL=chunk-7CRU2Y5X.mjs.map
|
|
152
|
+
//# sourceMappingURL=chunk-7CRU2Y5X.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/common/platform/index.ts","../src/common/platform/adapters/web.ts","../src/common/platform/adapters/taro.ts","../src/common/platform/adapters/electron.ts","../src/common/platform/adapters/node-hono.ts"],"names":[],"mappings":"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","file":"chunk-7CRU2Y5X.mjs","sourcesContent":["/**\n * @package sa2kit/common/platform\n *\n * 跨平台运行时适配(storage / fetch / filePick)\n */\nexport type {\n PlatformAdapter,\n PlatformId,\n FilePickAdapter,\n FilePickOptions,\n PickedFile,\n} from './types';\n\nexport {\n createWebPlatformAdapter,\n createTaroPlatformAdapter,\n createElectronPlatformAdapter,\n createNodeHonoPlatformAdapter,\n} from './adapters';\n","import { WebRequestAdapter } from '../../request/adapters/web-adapter';\nimport { WebStorageAdapter } from '../../storage/adapters/web-adapter';\nimport type {\n FilePickAdapter,\n FilePickOptions,\n PlatformAdapter,\n PickedFile,\n} from '../types';\n\nfunction createWebFilePickAdapter(): FilePickAdapter {\n return {\n async pickFiles(options?: FilePickOptions): Promise<PickedFile[]> {\n if (typeof document === 'undefined') {\n throw new Error('[PlatformAdapter:web] filePick 需要浏览器 document');\n }\n\n return new Promise((resolve, reject) => {\n const input = document.createElement('input');\n input.type = 'file';\n input.style.display = 'none';\n if (options?.accept) {\n input.accept = options.accept;\n }\n if (options?.multiple) {\n input.multiple = true;\n }\n\n input.onchange = () => {\n const files = Array.from(input.files ?? []);\n input.remove();\n resolve(\n files.map(file => ({\n name: file.name,\n mimeType: file.type || undefined,\n size: file.size,\n blob: file,\n })),\n );\n };\n\n input.oncancel = () => {\n input.remove();\n resolve([]);\n };\n\n document.body.appendChild(input);\n input.click();\n input.addEventListener('error', () => {\n input.remove();\n reject(new Error('[PlatformAdapter:web] filePick 失败'));\n });\n });\n },\n };\n}\n\n/** 浏览器 / Next.js CSR 官方 adapter */\nexport function createWebPlatformAdapter(\n options: { filePick?: boolean } = {},\n): PlatformAdapter {\n return {\n storage: new WebStorageAdapter(),\n fetch: new WebRequestAdapter(),\n filePick: options.filePick === false ? undefined : createWebFilePickAdapter(),\n };\n}\n","import type { PlatformAdapter } from '../types';\n\n/**\n * Taro 小程序 adapter 骨架(R2-222)\n *\n * 宿主需传入已初始化的 Taro storage / request 实现。\n */\nexport function createTaroPlatformAdapter(partial: PlatformAdapter): PlatformAdapter {\n if (!partial.storage || !partial.fetch) {\n throw new Error(\n '[PlatformAdapter:taro] 请注入 storage 与 fetch(基于 Taro.getStorage / Taro.request)',\n );\n }\n return {\n storage: partial.storage,\n fetch: partial.fetch,\n filePick: partial.filePick,\n };\n}\n","import { WebRequestAdapter } from '../../request/adapters/web-adapter';\nimport { ElectronStorageAdapter } from '../../storage/adapters/electron-adapter';\nimport { createWebPlatformAdapter } from './web';\nimport type { PlatformAdapter } from '../types';\n\n/**\n * Electron 桌面 adapter 骨架(R2-222)\n *\n * 默认复用 Web fetch + Electron storage;filePick 回退 Web input。\n */\nexport function createElectronPlatformAdapter(\n options: { filePick?: boolean } = {},\n): PlatformAdapter {\n try {\n return {\n storage: new ElectronStorageAdapter(),\n fetch: new WebRequestAdapter(),\n filePick:\n options.filePick === false\n ? undefined\n : createWebPlatformAdapter({ filePick: true }).filePick,\n };\n } catch {\n return createWebPlatformAdapter(options);\n }\n}\n","import type { FilePickAdapter, PlatformAdapter } from '../types';\nimport type { RequestAdapter } from '../../request/types/types';\nimport type { StorageAdapter } from '../../storage/types';\n\n/** 内存 storage,适用于无持久化需求的 Node / Hono SSR */\nclass MemoryStorageAdapter implements StorageAdapter {\n private readonly store = new Map<string, string>();\n\n async getItem(key: string): Promise<string | null> {\n return this.store.get(key) ?? null;\n }\n\n async setItem(key: string, value: string): Promise<void> {\n this.store.set(key, value);\n }\n\n async removeItem(key: string): Promise<void> {\n this.store.delete(key);\n }\n}\n\n/** 基于全局 fetch 的 Node 请求适配器 */\nclass NodeFetchAdapter implements RequestAdapter {\n async request<T>(config: {\n url: string;\n method?: string;\n headers?: Record<string, string>;\n body?: unknown;\n params?: Record<string, unknown>;\n }): Promise<T> {\n let fullUrl = config.url;\n if (config.params) {\n const search = new URLSearchParams();\n for (const [key, value] of Object.entries(config.params)) {\n if (value !== undefined && value !== null) {\n search.append(key, String(value));\n }\n }\n const qs = search.toString();\n if (qs) {\n fullUrl += (fullUrl.includes('?') ? '&' : '?') + qs;\n }\n }\n\n const response = await fetch(fullUrl, {\n method: config.method ?? 'GET',\n headers: {\n 'Content-Type': 'application/json',\n ...config.headers,\n },\n body: config.body ? JSON.stringify(config.body) : undefined,\n });\n\n if (!response.ok) {\n throw new Error(`[PlatformAdapter:node-hono] HTTP ${response.status}`);\n }\n\n return (await response.json()) as T;\n }\n}\n\nconst unsupportedFilePick: FilePickAdapter = {\n async pickFiles() {\n throw new Error('[PlatformAdapter:node-hono] filePick 需在宿主注入');\n },\n};\n\n/** Hono / Node API 官方 adapter 骨架(R2-222) */\nexport function createNodeHonoPlatformAdapter(\n overrides: Partial<Pick<PlatformAdapter, 'storage' | 'fetch' | 'filePick'>> = {},\n): PlatformAdapter {\n return {\n storage: overrides.storage ?? new MemoryStorageAdapter(),\n fetch: overrides.fetch ?? new NodeFetchAdapter(),\n filePick: overrides.filePick ?? unsupportedFilePick,\n };\n}\n"]}
|