sa2kit 1.6.29 → 1.6.31
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/dist/AliyunOSSProvider-P6TOVKMM.mjs +6 -0
- package/dist/{AliyunOSSProvider-I7I5YGLB.mjs.map → AliyunOSSProvider-P6TOVKMM.mjs.map} +1 -1
- package/dist/AliyunOSSProvider-Z5BRBCG6.js +15 -0
- package/dist/{AliyunOSSProvider-L7JWMKS4.js.map → AliyunOSSProvider-Z5BRBCG6.js.map} +1 -1
- package/dist/ConfigService-3DIC6C3Q.js +21 -0
- package/dist/{ConfigService-7MEZXKJ5.js.map → ConfigService-3DIC6C3Q.js.map} +1 -1
- package/dist/ConfigService-V6ZK273Z.mjs +4 -0
- package/dist/{ConfigService-BV57YYFW.mjs.map → ConfigService-V6ZK273Z.mjs.map} +1 -1
- package/dist/LocalStorageProvider-3RVPCQB3.mjs +6 -0
- package/dist/{LocalStorageProvider-FVLLHBHO.mjs.map → LocalStorageProvider-3RVPCQB3.mjs.map} +1 -1
- package/dist/LocalStorageProvider-PP7MA5OT.js +15 -0
- package/dist/{LocalStorageProvider-NBNHHWLY.js.map → LocalStorageProvider-PP7MA5OT.js.map} +1 -1
- package/dist/PMXParser-2VTA737I.js +13 -0
- package/dist/{PMXParser-YBS3B6HM.js.map → PMXParser-2VTA737I.js.map} +1 -1
- package/dist/PMXParser-RNVQL76A.mjs +4 -0
- package/dist/{PMXParser-L6IWHL4I.mjs.map → PMXParser-RNVQL76A.mjs.map} +1 -1
- package/dist/analytics/index.js +46 -45
- package/dist/analytics/index.js.map +1 -1
- package/dist/analytics/index.mjs +45 -44
- package/dist/analytics/index.mjs.map +1 -1
- package/dist/analytics/server/index.js +4 -4
- package/dist/analytics/server/index.js.map +1 -1
- package/dist/analytics/server/index.mjs +4 -4
- package/dist/analytics/server/index.mjs.map +1 -1
- package/dist/api/index.js +5 -5
- package/dist/api/index.js.map +1 -1
- package/dist/api/index.mjs +5 -5
- package/dist/api/index.mjs.map +1 -1
- package/dist/audioDetection/index.js +17 -16
- package/dist/audioDetection/index.js.map +1 -1
- package/dist/audioDetection/index.mjs +17 -16
- package/dist/audioDetection/index.mjs.map +1 -1
- package/dist/auth/client/index.js +4 -4
- package/dist/auth/client/index.mjs +1 -1
- package/dist/auth/components/index.js +3 -3
- package/dist/auth/components/index.js.map +1 -1
- package/dist/auth/components/index.mjs +3 -3
- package/dist/auth/components/index.mjs.map +1 -1
- package/dist/auth/index.js +29 -29
- package/dist/auth/index.mjs +5 -5
- package/dist/auth/middleware/index.js +3 -3
- package/dist/auth/middleware/index.mjs +2 -2
- package/dist/auth/routes/index.js +14 -14
- package/dist/auth/routes/index.mjs +2 -2
- package/dist/auth/services/index.js +7 -7
- package/dist/auth/services/index.mjs +1 -1
- package/dist/calendar/index.js +146 -182
- package/dist/calendar/index.js.map +1 -1
- package/dist/calendar/index.mjs +139 -175
- package/dist/calendar/index.mjs.map +1 -1
- package/dist/calendar/routes/index.js +1 -1
- package/dist/calendar/routes/index.js.map +1 -1
- package/dist/calendar/routes/index.mjs +1 -1
- package/dist/calendar/routes/index.mjs.map +1 -1
- package/dist/{chunk-5YQ5B7IZ.js → chunk-24HGREE6.js} +5 -5
- package/dist/{chunk-5YQ5B7IZ.js.map → chunk-24HGREE6.js.map} +1 -1
- package/dist/{chunk-6PRFP5EG.js → chunk-25OFOKNF.js} +6 -6
- package/dist/chunk-25OFOKNF.js.map +1 -0
- package/dist/{chunk-KQGP6BTS.mjs → chunk-3DXPQ4YV.mjs} +6 -6
- package/dist/chunk-3DXPQ4YV.mjs.map +1 -0
- package/dist/{chunk-3BGPZN4X.mjs → chunk-3NHAT7D4.mjs} +12 -12
- package/dist/chunk-3NHAT7D4.mjs.map +1 -0
- package/dist/{chunk-MW4BCIZC.mjs → chunk-4HC6M7FK.mjs} +3 -3
- package/dist/chunk-4HC6M7FK.mjs.map +1 -0
- package/dist/{chunk-ESRCX5TQ.mjs → chunk-52TN2QSS.mjs} +3 -3
- package/dist/{chunk-ESRCX5TQ.mjs.map → chunk-52TN2QSS.mjs.map} +1 -1
- package/dist/{chunk-DW2ZTOCV.js → chunk-5A7ERLKK.js} +105 -106
- package/dist/chunk-5A7ERLKK.js.map +1 -0
- package/dist/{chunk-CNTILN5J.mjs → chunk-5YQ62BKX.mjs} +20 -19
- package/dist/chunk-5YQ62BKX.mjs.map +1 -0
- package/dist/{chunk-6W5BMXJG.js → chunk-6OWNMJKG.js} +4 -4
- package/dist/{chunk-6W5BMXJG.js.map → chunk-6OWNMJKG.js.map} +1 -1
- package/dist/{chunk-WSNM4EU5.mjs → chunk-77M5AQG3.mjs} +37 -41
- package/dist/chunk-77M5AQG3.mjs.map +1 -0
- package/dist/{chunk-DUHZ7VZP.js → chunk-7VRT55ZD.js} +3 -3
- package/dist/chunk-7VRT55ZD.js.map +1 -0
- package/dist/{chunk-LX4XX6W7.js → chunk-C54W2CMK.js} +16 -16
- package/dist/chunk-C54W2CMK.js.map +1 -0
- package/dist/{chunk-3WOAPLEG.mjs → chunk-EB4NR623.mjs} +27 -26
- package/dist/chunk-EB4NR623.mjs.map +1 -0
- package/dist/{chunk-CD77U7LZ.js → chunk-GBPLX42J.js} +9 -9
- package/dist/chunk-GBPLX42J.js.map +1 -0
- package/dist/{chunk-TFQF2HDO.mjs → chunk-HDEOCX2L.mjs} +12 -12
- package/dist/chunk-HDEOCX2L.mjs.map +1 -0
- package/dist/{chunk-LFG6FPM5.mjs → chunk-KIP2CERU.mjs} +37 -38
- package/dist/chunk-KIP2CERU.mjs.map +1 -0
- package/dist/{chunk-6YKMCPQI.mjs → chunk-KZKIH4AS.mjs} +4 -4
- package/dist/chunk-KZKIH4AS.mjs.map +1 -0
- package/dist/{chunk-6MQUBPKB.mjs → chunk-LJ4CCSSY.mjs} +3 -3
- package/dist/{chunk-6MQUBPKB.mjs.map → chunk-LJ4CCSSY.mjs.map} +1 -1
- package/dist/{chunk-TOC5FSHP.js → chunk-NJ2SNXBJ.js} +12 -12
- package/dist/chunk-NJ2SNXBJ.js.map +1 -0
- package/dist/{chunk-OCR5DS4C.mjs → chunk-PE5EAHZK.mjs} +3 -3
- package/dist/chunk-PE5EAHZK.mjs.map +1 -0
- package/dist/{chunk-TKCYPDWU.js → chunk-Q5EDCKQA.js} +27 -29
- package/dist/chunk-Q5EDCKQA.js.map +1 -0
- package/dist/{chunk-CLKKZSPZ.js → chunk-RBKGYWME.js} +20 -19
- package/dist/chunk-RBKGYWME.js.map +1 -0
- package/dist/{chunk-VRTRSEEH.mjs → chunk-RSJSZ7QH.mjs} +11 -11
- package/dist/chunk-RSJSZ7QH.mjs.map +1 -0
- package/dist/{chunk-E7RGBAYJ.js → chunk-TDCDEBGP.js} +30 -29
- package/dist/chunk-TDCDEBGP.js.map +1 -0
- package/dist/{chunk-T5OZHYVM.mjs → chunk-TVROG2Q4.mjs} +15 -15
- package/dist/chunk-TVROG2Q4.mjs.map +1 -0
- package/dist/{chunk-JZXJQMVE.js → chunk-UIFFDRTE.js} +11 -11
- package/dist/chunk-UIFFDRTE.js.map +1 -0
- package/dist/{chunk-UOFTHYIH.js → chunk-UL6XJGUZ.js} +4 -4
- package/dist/chunk-UL6XJGUZ.js.map +1 -0
- package/dist/{chunk-A3UP56MS.js → chunk-WA67GZSZ.js} +3 -3
- package/dist/chunk-WA67GZSZ.js.map +1 -0
- package/dist/{chunk-OLHGZXN3.mjs → chunk-WEEXCPSE.mjs} +5 -5
- package/dist/chunk-WEEXCPSE.mjs.map +1 -0
- package/dist/{chunk-5GCHAXY5.js → chunk-X3UU7JHT.js} +38 -42
- package/dist/chunk-X3UU7JHT.js.map +1 -0
- package/dist/{chunk-QU5OT4DF.js → chunk-XJ7ZAGC5.js} +5 -5
- package/dist/chunk-XJ7ZAGC5.js.map +1 -0
- package/dist/{chunk-GSTLV3MB.mjs → chunk-YOTQG4NP.mjs} +26 -28
- package/dist/chunk-YOTQG4NP.mjs.map +1 -0
- package/dist/{chunk-QAT2RWAO.mjs → chunk-Z36R3P62.mjs} +7 -7
- package/dist/chunk-Z36R3P62.mjs.map +1 -0
- package/dist/{chunk-7Z5LLJ3A.js → chunk-ZWQJSZEY.js} +13 -13
- package/dist/chunk-ZWQJSZEY.js.map +1 -0
- package/dist/config/index.js +6 -6
- package/dist/config/index.js.map +1 -1
- package/dist/config/index.mjs +6 -6
- package/dist/config/index.mjs.map +1 -1
- package/dist/config/server/index.js +37 -37
- package/dist/config/server/index.js.map +1 -1
- package/dist/config/server/index.mjs +37 -37
- package/dist/config/server/index.mjs.map +1 -1
- package/dist/i18n/index.d.mts +2 -2
- package/dist/i18n/index.d.ts +2 -2
- package/dist/i18n/index.js +16 -17
- package/dist/i18n/index.js.map +1 -1
- package/dist/i18n/index.mjs +16 -17
- package/dist/i18n/index.mjs.map +1 -1
- package/dist/imageCrop/index.js +11 -10
- package/dist/imageCrop/index.js.map +1 -1
- package/dist/imageCrop/index.mjs +11 -10
- package/dist/imageCrop/index.mjs.map +1 -1
- package/dist/index.js +221 -246
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +79 -104
- package/dist/index.mjs.map +1 -1
- package/dist/logger/index.js +6 -6
- package/dist/logger/index.mjs +1 -1
- package/dist/mmd/admin/index.js +11 -10
- package/dist/mmd/admin/index.js.map +1 -1
- package/dist/mmd/admin/index.mjs +11 -10
- package/dist/mmd/admin/index.mjs.map +1 -1
- package/dist/mmd/index.js +223 -241
- package/dist/mmd/index.js.map +1 -1
- package/dist/mmd/index.mjs +220 -238
- package/dist/mmd/index.mjs.map +1 -1
- package/dist/mmd/server/index.js +6 -6
- package/dist/mmd/server/index.js.map +1 -1
- package/dist/mmd/server/index.mjs +6 -6
- package/dist/mmd/server/index.mjs.map +1 -1
- package/dist/music/index.js +16 -16
- package/dist/music/index.mjs +2 -2
- package/dist/music/server/index.js +8 -8
- package/dist/music/server/index.mjs +1 -1
- package/dist/request/index.js +2 -2
- package/dist/request/index.js.map +1 -1
- package/dist/request/index.mjs +2 -2
- package/dist/request/index.mjs.map +1 -1
- package/dist/storage/index.js +11 -11
- package/dist/storage/index.mjs +2 -2
- package/dist/testYourself/admin/index.js +3 -3
- package/dist/testYourself/admin/index.mjs +1 -1
- package/dist/testYourself/index.js +22 -22
- package/dist/testYourself/index.js.map +1 -1
- package/dist/testYourself/index.mjs +14 -14
- package/dist/testYourself/index.mjs.map +1 -1
- package/dist/testYourself/server/index.js +4 -4
- package/dist/testYourself/server/index.mjs +1 -1
- package/dist/universalExport/index.d.mts +3 -3
- package/dist/universalExport/index.d.ts +3 -3
- package/dist/universalExport/index.js +48 -47
- package/dist/universalExport/index.js.map +1 -1
- package/dist/universalExport/index.mjs +48 -47
- package/dist/universalExport/index.mjs.map +1 -1
- package/dist/universalExport/server/index.js +29 -29
- package/dist/universalExport/server/index.js.map +1 -1
- package/dist/universalExport/server/index.mjs +28 -28
- package/dist/universalExport/server/index.mjs.map +1 -1
- package/dist/universalFile/index.d.mts +3 -3
- package/dist/universalFile/index.d.ts +3 -3
- package/dist/universalFile/index.js +73 -72
- package/dist/universalFile/index.js.map +1 -1
- package/dist/universalFile/index.mjs +73 -72
- package/dist/universalFile/index.mjs.map +1 -1
- package/dist/universalFile/server/index.js +258 -260
- package/dist/universalFile/server/index.js.map +1 -1
- package/dist/universalFile/server/index.mjs +244 -246
- package/dist/universalFile/server/index.mjs.map +1 -1
- package/dist/utils/index.js +11 -11
- package/dist/utils/index.mjs +2 -2
- package/package.json +1 -1
- package/dist/AliyunOSSProvider-I7I5YGLB.mjs +0 -6
- package/dist/AliyunOSSProvider-L7JWMKS4.js +0 -15
- package/dist/ConfigService-7MEZXKJ5.js +0 -21
- package/dist/ConfigService-BV57YYFW.mjs +0 -4
- package/dist/LocalStorageProvider-FVLLHBHO.mjs +0 -6
- package/dist/LocalStorageProvider-NBNHHWLY.js +0 -15
- package/dist/PMXParser-L6IWHL4I.mjs +0 -4
- package/dist/PMXParser-YBS3B6HM.js +0 -13
- package/dist/chunk-3BGPZN4X.mjs.map +0 -1
- package/dist/chunk-3WOAPLEG.mjs.map +0 -1
- package/dist/chunk-5GCHAXY5.js.map +0 -1
- package/dist/chunk-6PRFP5EG.js.map +0 -1
- package/dist/chunk-6YKMCPQI.mjs.map +0 -1
- package/dist/chunk-7Z5LLJ3A.js.map +0 -1
- package/dist/chunk-A3UP56MS.js.map +0 -1
- package/dist/chunk-CD77U7LZ.js.map +0 -1
- package/dist/chunk-CLKKZSPZ.js.map +0 -1
- package/dist/chunk-CNTILN5J.mjs.map +0 -1
- package/dist/chunk-DUHZ7VZP.js.map +0 -1
- package/dist/chunk-DW2ZTOCV.js.map +0 -1
- package/dist/chunk-E7RGBAYJ.js.map +0 -1
- package/dist/chunk-GSTLV3MB.mjs.map +0 -1
- package/dist/chunk-JZXJQMVE.js.map +0 -1
- package/dist/chunk-KQGP6BTS.mjs.map +0 -1
- package/dist/chunk-LFG6FPM5.mjs.map +0 -1
- package/dist/chunk-LX4XX6W7.js.map +0 -1
- package/dist/chunk-MW4BCIZC.mjs.map +0 -1
- package/dist/chunk-OCR5DS4C.mjs.map +0 -1
- package/dist/chunk-OLHGZXN3.mjs.map +0 -1
- package/dist/chunk-QAT2RWAO.mjs.map +0 -1
- package/dist/chunk-QU5OT4DF.js.map +0 -1
- package/dist/chunk-T5OZHYVM.mjs.map +0 -1
- package/dist/chunk-TFQF2HDO.mjs.map +0 -1
- package/dist/chunk-TKCYPDWU.js.map +0 -1
- package/dist/chunk-TOC5FSHP.js.map +0 -1
- package/dist/chunk-UOFTHYIH.js.map +0 -1
- package/dist/chunk-VRTRSEEH.mjs.map +0 -1
- package/dist/chunk-WSNM4EU5.mjs.map +0 -1
package/dist/config/index.mjs
CHANGED
|
@@ -12,9 +12,9 @@ function createUseConfigs(options) {
|
|
|
12
12
|
} = options;
|
|
13
13
|
const fetcher = async (url) => {
|
|
14
14
|
const token = await getAuthToken();
|
|
15
|
-
const res = await fetch(
|
|
15
|
+
const res = await fetch(apiBaseUrl + url, {
|
|
16
16
|
headers: {
|
|
17
|
-
Authorization:
|
|
17
|
+
Authorization: "Bearer " + token,
|
|
18
18
|
"Content-Type": "application/json"
|
|
19
19
|
},
|
|
20
20
|
credentials: "include"
|
|
@@ -80,10 +80,10 @@ function createUseConfigs(options) {
|
|
|
80
80
|
// 不立即重新验证
|
|
81
81
|
);
|
|
82
82
|
try {
|
|
83
|
-
const res = await fetch(
|
|
83
|
+
const res = await fetch(apiBaseUrl + "/api/admin/config/" + category, {
|
|
84
84
|
method: "POST",
|
|
85
85
|
headers: {
|
|
86
|
-
Authorization:
|
|
86
|
+
Authorization: "Bearer " + token,
|
|
87
87
|
"Content-Type": "application/json"
|
|
88
88
|
},
|
|
89
89
|
credentials: "include",
|
|
@@ -113,11 +113,11 @@ function createUseConfigs(options) {
|
|
|
113
113
|
};
|
|
114
114
|
}
|
|
115
115
|
function prefetchConfigs(apiBaseUrl = "") {
|
|
116
|
-
mutate(
|
|
116
|
+
mutate(apiBaseUrl + "/api/admin/config");
|
|
117
117
|
}
|
|
118
118
|
function invalidateAllConfigs(apiBaseUrl = "") {
|
|
119
119
|
mutate(
|
|
120
|
-
(key) => typeof key === "string" && key.startsWith(
|
|
120
|
+
(key) => typeof key === "string" && key.startsWith(apiBaseUrl + "/api/admin/config"),
|
|
121
121
|
void 0,
|
|
122
122
|
{ revalidate: true }
|
|
123
123
|
);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/config/hooks/useConfigs.ts"],"names":["error"],"mappings":";;;;AAyBO,SAAS,iBAAiB,OAAA,EAA4B;AAC3D,EAAA,MAAM;AAAA,IACJ,UAAA,GAAa,EAAA;AAAA,IACb,YAAA;AAAA,IACA,cAAA;AAAA,IACA,gBAAA,GAAmB,GAAA;AAAA,IACnB,iBAAA,GAAoB;AAAA,GACtB,GAAI,OAAA;AAGJ,EAAA,MAAM,OAAA,GAAU,OAAO,GAAA,KAAgB;AACrC,IAAA,MAAM,KAAA,GAAQ,MAAM,YAAA,EAAa;AAEjC,IAAA,MAAM,
|
|
1
|
+
{"version":3,"sources":["../../src/config/hooks/useConfigs.ts"],"names":["error"],"mappings":"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","file":"index.mjs","sourcesContent":["'use client';\n\n/**\n * 配置缓存优化 Hook\n *\n * 使用 SWR 实现智能缓存和自动重新验证\n * 支持多平台:Web、React Native、小程序\n *\n * 优点:\n * 1. 自动缓存,减少网络请求\n * 2. 自动重新验证(可配置)\n * 3. 乐观更新\n * 4. 错误重试\n * 5. 防抖和去重\n */\n\nimport { default as useSWR, mutate } from 'swr';\nimport { useCallback } from 'react';\nimport type { AllConfigs, UseConfigsOptions, ConfigItem } from '../types';\n\nexport type { AllConfigs, UseConfigsOptions, ConfigItem };\n\n/**\n * 创建 useConfigs Hook\n */\nexport function createUseConfigs(options: UseConfigsOptions) {\n const {\n apiBaseUrl = '',\n getAuthToken,\n onUnauthorized,\n dedupingInterval = 60000,\n revalidateOnFocus = false,\n } = options;\n\n // Fetcher 函数\n const fetcher = async (url: string) => {\n const token = await getAuthToken();\n\n const res = await fetch((apiBaseUrl) + (url), {\n headers: {\n Authorization: 'Bearer ' + (token),\n 'Content-Type': 'application/json',\n },\n credentials: 'include',\n });\n\n if (!res.ok) {\n if (res.status === 401) {\n onUnauthorized?.();\n throw new Error('Unauthorized');\n }\n throw new Error('Failed to fetch configs');\n }\n\n const data = await res.json();\n return data.data as AllConfigs;\n };\n\n // 返回 Hook 函数\n return function useConfigs() {\n const {\n data,\n error,\n mutate: mutateConfigs,\n } = useSWR<AllConfigs>('/api/admin/config', fetcher, {\n // 配置选项\n revalidateOnFocus,\n revalidateOnReconnect: true, // 网络重连时重新验证\n dedupingInterval, // 缓存去重时间\n errorRetryCount: 3, // 错误重试3次\n errorRetryInterval: 5000, // 重试间隔5秒\n shouldRetryOnError: true, // 启用错误重试\n\n // 成功时的回调\n onSuccess: (_data: AllConfigs) => {\n console.log('✅ Configs loaded from cache or network');\n },\n\n // 错误时的回调\n onError: (err: Error) => {\n console.error('❌ Failed to load configs:', err);\n },\n });\n\n // 更新配置(乐观更新)\n const updateConfigs = useCallback(\n async (category: string, updates: Record<string, any>) => {\n const token = await getAuthToken();\n\n // 乐观更新:立即更新本地缓存\n mutateConfigs(\n (current: AllConfigs | undefined) => {\n if (!current) return current;\n return {\n ...current,\n [category]: {\n ...current[category],\n ...Object.entries(updates).reduce((acc, [key, value]) => {\n acc[key] = {\n ...current[category]?.[key],\n value,\n };\n return acc;\n }, {} as any),\n },\n };\n },\n false // 不立即重新验证\n );\n\n try {\n // 发送到服务器\n const res = await fetch((apiBaseUrl) + '/api/admin/config/' + (category), {\n method: 'POST',\n headers: {\n Authorization: 'Bearer ' + (token),\n 'Content-Type': 'application/json',\n },\n credentials: 'include',\n body: JSON.stringify({ configs: updates }),\n });\n\n if (!res.ok) throw new Error('Update failed');\n\n // 更新成功,重新验证缓存\n mutateConfigs();\n\n return { success: true };\n } catch (error) {\n // 更新失败,回滚\n mutateConfigs(); // 从服务器重新获取\n throw error;\n }\n },\n [mutateConfigs, getAuthToken, apiBaseUrl]\n );\n\n // 手动刷新\n const refresh = useCallback(() => {\n mutateConfigs();\n }, [mutateConfigs]);\n\n return {\n configs: data,\n isLoading: !error && !data,\n isError: !!error,\n error,\n updateConfigs,\n refresh,\n };\n };\n}\n\n/**\n * 预加载配置\n */\nexport function prefetchConfigs(apiBaseUrl: string = '') {\n mutate((apiBaseUrl) + '/api/admin/config');\n}\n\n/**\n * 全局缓存失效\n */\nexport function invalidateAllConfigs(apiBaseUrl: string = '') {\n mutate(\n (key: any) => typeof key === 'string' && key.startsWith((apiBaseUrl) + '/api/admin/config'),\n undefined,\n { revalidate: true }\n );\n}\n\n"]}
|
|
@@ -152,9 +152,9 @@ var configHistory = pgCore.pgTable(
|
|
|
152
152
|
]
|
|
153
153
|
);
|
|
154
154
|
var defaultLogger = {
|
|
155
|
-
info: (message, ...args) => console.log(
|
|
156
|
-
warn: (message, ...args) => console.warn(
|
|
157
|
-
error: (message, ...args) => console.error(
|
|
155
|
+
info: (message, ...args) => console.log("[ConfigEngine] " + message, ...args),
|
|
156
|
+
warn: (message, ...args) => console.warn("[ConfigEngine] " + message, ...args),
|
|
157
|
+
error: (message, ...args) => console.error("[ConfigEngine] " + message, ...args)
|
|
158
158
|
};
|
|
159
159
|
var ConfigEngine = class {
|
|
160
160
|
constructor(options) {
|
|
@@ -219,7 +219,7 @@ var ConfigEngine = class {
|
|
|
219
219
|
};
|
|
220
220
|
this.definitionsCache.set(def.key, definition);
|
|
221
221
|
});
|
|
222
|
-
this.logger.info(
|
|
222
|
+
this.logger.info("\u2705 \u5DF2\u52A0\u8F7D " + definitions.length + " \u4E2A\u914D\u7F6E\u5B9A\u4E49");
|
|
223
223
|
} catch (error) {
|
|
224
224
|
this.logger.error("\u274C \u52A0\u8F7D\u914D\u7F6E\u5B9A\u4E49\u5931\u8D25:", error);
|
|
225
225
|
throw error;
|
|
@@ -293,7 +293,7 @@ var ConfigEngine = class {
|
|
|
293
293
|
value = this.decrypt(value);
|
|
294
294
|
displayValue = this.maskValue(value);
|
|
295
295
|
} catch (error) {
|
|
296
|
-
this.logger.warn(
|
|
296
|
+
this.logger.warn("\u89E3\u5BC6\u914D\u7F6E " + def.key + " \u5931\u8D25:", error);
|
|
297
297
|
}
|
|
298
298
|
}
|
|
299
299
|
return {
|
|
@@ -321,7 +321,7 @@ var ConfigEngine = class {
|
|
|
321
321
|
try {
|
|
322
322
|
value = this.decrypt(value);
|
|
323
323
|
} catch (error) {
|
|
324
|
-
this.logger.warn(
|
|
324
|
+
this.logger.warn("\u89E3\u5BC6\u914D\u7F6E " + key + " \u5931\u8D25:", error);
|
|
325
325
|
}
|
|
326
326
|
}
|
|
327
327
|
return value;
|
|
@@ -332,7 +332,7 @@ var ConfigEngine = class {
|
|
|
332
332
|
async setValue(key, value, userId = 0, options) {
|
|
333
333
|
const validation = await this.validate(key, value);
|
|
334
334
|
if (!validation.valid) {
|
|
335
|
-
throw new Error(
|
|
335
|
+
throw new Error("\u914D\u7F6E\u9A8C\u8BC1\u5931\u8D25: " + validation.errors.join(", "));
|
|
336
336
|
}
|
|
337
337
|
const definition = this.getDefinition(key);
|
|
338
338
|
if (!definition) {
|
|
@@ -370,7 +370,7 @@ var ConfigEngine = class {
|
|
|
370
370
|
ipAddress: options?.ipAddress,
|
|
371
371
|
userAgent: options?.userAgent
|
|
372
372
|
});
|
|
373
|
-
this.logger.info(
|
|
373
|
+
this.logger.info("\u2705 \u914D\u7F6E\u5DF2" + (oldValue ? "\u66F4\u65B0" : "\u521B\u5EFA") + ": " + key);
|
|
374
374
|
}
|
|
375
375
|
/**
|
|
376
376
|
* 批量设置配置值
|
|
@@ -411,7 +411,7 @@ var ConfigEngine = class {
|
|
|
411
411
|
updatedAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
412
412
|
});
|
|
413
413
|
await this.loadDefinitions();
|
|
414
|
-
this.logger.info(
|
|
414
|
+
this.logger.info("\u2705 \u6CE8\u518C\u65B0\u914D\u7F6E\u5B9A\u4E49: " + definition.key);
|
|
415
415
|
} catch (error) {
|
|
416
416
|
this.logger.error(`\u274C \u6CE8\u518C\u914D\u7F6E\u5B9A\u4E49\u5931\u8D25:`, error);
|
|
417
417
|
throw error;
|
|
@@ -493,16 +493,16 @@ var ConfigEngine = class {
|
|
|
493
493
|
validateRules(value, rules) {
|
|
494
494
|
const errors = [];
|
|
495
495
|
if (rules.min !== void 0 && value < rules.min) {
|
|
496
|
-
errors.push(
|
|
496
|
+
errors.push("\u503C\u4E0D\u80FD\u5C0F\u4E8E " + rules.min);
|
|
497
497
|
}
|
|
498
498
|
if (rules.max !== void 0 && value > rules.max) {
|
|
499
|
-
errors.push(
|
|
499
|
+
errors.push("\u503C\u4E0D\u80FD\u5927\u4E8E " + rules.max);
|
|
500
500
|
}
|
|
501
501
|
if (rules.minLength !== void 0 && String(value).length < rules.minLength) {
|
|
502
|
-
errors.push(
|
|
502
|
+
errors.push("\u957F\u5EA6\u4E0D\u80FD\u5C0F\u4E8E " + rules.minLength);
|
|
503
503
|
}
|
|
504
504
|
if (rules.maxLength !== void 0 && String(value).length > rules.maxLength) {
|
|
505
|
-
errors.push(
|
|
505
|
+
errors.push("\u957F\u5EA6\u4E0D\u80FD\u5927\u4E8E " + rules.maxLength);
|
|
506
506
|
}
|
|
507
507
|
if (rules.pattern && !new RegExp(rules.pattern).test(String(value))) {
|
|
508
508
|
errors.push("\u503C\u4E0D\u7B26\u5408\u8981\u6C42\u7684\u683C\u5F0F");
|
|
@@ -551,9 +551,9 @@ var ConfigEngine = class {
|
|
|
551
551
|
}
|
|
552
552
|
};
|
|
553
553
|
var defaultLogger2 = {
|
|
554
|
-
info: (message, ...args) => console.log(
|
|
555
|
-
warn: (message, ...args) => console.warn(
|
|
556
|
-
error: (message, ...args) => console.error(
|
|
554
|
+
info: (message, ...args) => console.log("[ConfigService] " + message, ...args),
|
|
555
|
+
warn: (message, ...args) => console.warn("[ConfigService] " + message, ...args),
|
|
556
|
+
error: (message, ...args) => console.error("[ConfigService] " + message, ...args)
|
|
557
557
|
};
|
|
558
558
|
var ConfigService = class {
|
|
559
559
|
constructor(options) {
|
|
@@ -584,7 +584,7 @@ var ConfigService = class {
|
|
|
584
584
|
defaultDescription: meta.defaultDescription || void 0
|
|
585
585
|
});
|
|
586
586
|
});
|
|
587
|
-
this.logger.info(
|
|
587
|
+
this.logger.info("\u5DF2\u52A0\u8F7D " + metadata.length + " \u6761\u914D\u7F6E\u5143\u6570\u636E");
|
|
588
588
|
} catch (error) {
|
|
589
589
|
this.logger.warn(
|
|
590
590
|
"\u914D\u7F6E\u5143\u6570\u636E\u8868\u4E0D\u5B58\u5728\uFF0C\u4F7F\u7528\u6A21\u677F\u6570\u636E",
|
|
@@ -601,15 +601,15 @@ var ConfigService = class {
|
|
|
601
601
|
if (this.isSensitiveConfig(config.key)) {
|
|
602
602
|
try {
|
|
603
603
|
value = this.decrypt(config.value);
|
|
604
|
-
this.logger.info(
|
|
604
|
+
this.logger.info("\u2705 \u6210\u529F\u89E3\u5BC6\u914D\u7F6E: " + config.key);
|
|
605
605
|
} catch (error) {
|
|
606
|
-
this.logger.error(
|
|
606
|
+
this.logger.error("\u274C \u89E3\u5BC6\u914D\u7F6E\u5931\u8D25: " + config.key, error);
|
|
607
607
|
return;
|
|
608
608
|
}
|
|
609
609
|
}
|
|
610
610
|
this.configCache.set(config.key, value);
|
|
611
611
|
});
|
|
612
|
-
this.logger.info(
|
|
612
|
+
this.logger.info("\u5DF2\u52A0\u8F7D " + configs.length + " \u4E2A\u914D\u7F6E\u9879");
|
|
613
613
|
} catch (error) {
|
|
614
614
|
this.logger.error("\u52A0\u8F7D\u914D\u7F6E\u5931\u8D25", error instanceof Error ? error : new Error(String(error)));
|
|
615
615
|
}
|
|
@@ -633,10 +633,10 @@ var ConfigService = class {
|
|
|
633
633
|
if (this.isSensitiveConfig(key)) {
|
|
634
634
|
try {
|
|
635
635
|
value = this.decrypt(config.value);
|
|
636
|
-
this.logger.info(
|
|
636
|
+
this.logger.info("\u2705 \u6210\u529F\u89E3\u5BC6\u914D\u7F6E: " + key + ", \u957F\u5EA6: " + value?.length);
|
|
637
637
|
} catch (error) {
|
|
638
|
-
this.logger.error(
|
|
639
|
-
throw new Error(
|
|
638
|
+
this.logger.error("\u274C \u89E3\u5BC6\u914D\u7F6E\u5931\u8D25: " + key, error);
|
|
639
|
+
throw new Error("\u914D\u7F6E " + key + " \u89E3\u5BC6\u5931\u8D25");
|
|
640
640
|
}
|
|
641
641
|
}
|
|
642
642
|
this.configCache.set(key, value);
|
|
@@ -644,7 +644,7 @@ var ConfigService = class {
|
|
|
644
644
|
}
|
|
645
645
|
} catch (error) {
|
|
646
646
|
this.logger.error(
|
|
647
|
-
|
|
647
|
+
"\u83B7\u53D6\u914D\u7F6E " + key + " \u5931\u8D25",
|
|
648
648
|
error instanceof Error ? error : new Error(String(error))
|
|
649
649
|
);
|
|
650
650
|
}
|
|
@@ -676,10 +676,10 @@ var ConfigService = class {
|
|
|
676
676
|
});
|
|
677
677
|
}
|
|
678
678
|
this.configCache.set(key, validatedValue);
|
|
679
|
-
this.logger.info(
|
|
679
|
+
this.logger.info("\u914D\u7F6E " + key + " \u5DF2\u66F4\u65B0");
|
|
680
680
|
} catch (error) {
|
|
681
681
|
this.logger.error(
|
|
682
|
-
|
|
682
|
+
"\u8BBE\u7F6E\u914D\u7F6E " + key + " \u5931\u8D25",
|
|
683
683
|
error instanceof Error ? error : new Error(String(error))
|
|
684
684
|
);
|
|
685
685
|
throw error;
|
|
@@ -705,10 +705,10 @@ var ConfigService = class {
|
|
|
705
705
|
try {
|
|
706
706
|
await this.db.delete(this.tables.systemConfigs).where(drizzleOrm.eq(this.tables.systemConfigs.key, key));
|
|
707
707
|
this.configCache.delete(key);
|
|
708
|
-
this.logger.info(
|
|
708
|
+
this.logger.info("\u914D\u7F6E " + key + " \u5DF2\u5220\u9664");
|
|
709
709
|
} catch (error) {
|
|
710
710
|
this.logger.error(
|
|
711
|
-
|
|
711
|
+
"\u5220\u9664\u914D\u7F6E " + key + " \u5931\u8D25",
|
|
712
712
|
error instanceof Error ? error : new Error(String(error))
|
|
713
713
|
);
|
|
714
714
|
throw error;
|
|
@@ -746,13 +746,13 @@ var ConfigService = class {
|
|
|
746
746
|
const type = this.getConfigType(key);
|
|
747
747
|
const isRequired = this.isRequiredConfig(key);
|
|
748
748
|
if (isRequired && (value === void 0 || value === null || value === "")) {
|
|
749
|
-
throw new Error(
|
|
749
|
+
throw new Error("\u914D\u7F6E " + key + " \u662F\u5FC5\u9700\u7684");
|
|
750
750
|
}
|
|
751
751
|
try {
|
|
752
752
|
this.validateValue(value, type);
|
|
753
753
|
return true;
|
|
754
754
|
} catch (error) {
|
|
755
|
-
throw new Error(
|
|
755
|
+
throw new Error("\u914D\u7F6E " + key + " \u503C\u65E0\u6548: " + error.message);
|
|
756
756
|
}
|
|
757
757
|
}
|
|
758
758
|
// 私有方法:加密
|
|
@@ -875,10 +875,10 @@ var ConfigService = class {
|
|
|
875
875
|
isRequired: options.isRequired ?? false,
|
|
876
876
|
defaultDescription: options.defaultDescription
|
|
877
877
|
});
|
|
878
|
-
this.logger.info(
|
|
878
|
+
this.logger.info("\u914D\u7F6E\u5143\u6570\u636E " + key + " \u5DF2\u66F4\u65B0");
|
|
879
879
|
} catch (error) {
|
|
880
880
|
this.logger.error(
|
|
881
|
-
|
|
881
|
+
"\u8BBE\u7F6E\u914D\u7F6E\u5143\u6570\u636E " + key + " \u5931\u8D25",
|
|
882
882
|
error instanceof Error ? error : new Error(String(error))
|
|
883
883
|
);
|
|
884
884
|
throw error;
|
|
@@ -1109,7 +1109,7 @@ function getRedisConfig() {
|
|
|
1109
1109
|
}
|
|
1110
1110
|
function buildDatabaseUrl(config) {
|
|
1111
1111
|
const { host, port, database, username, password, ssl } = config;
|
|
1112
|
-
let url =
|
|
1112
|
+
let url = "postgresql://" + username + ":" + password + "@" + host + ":" + port + "/" + database;
|
|
1113
1113
|
if (ssl) {
|
|
1114
1114
|
url += "?sslmode=require";
|
|
1115
1115
|
}
|
|
@@ -1119,11 +1119,11 @@ function buildRedisUrl(config) {
|
|
|
1119
1119
|
const { host, port, password, database } = config;
|
|
1120
1120
|
let url = `redis://`;
|
|
1121
1121
|
if (password) {
|
|
1122
|
-
url +=
|
|
1122
|
+
url += ":" + password + "@";
|
|
1123
1123
|
}
|
|
1124
|
-
url +=
|
|
1124
|
+
url += host + ":" + port;
|
|
1125
1125
|
if (database && database !== 0) {
|
|
1126
|
-
url +=
|
|
1126
|
+
url += "/" + database;
|
|
1127
1127
|
}
|
|
1128
1128
|
return url;
|
|
1129
1129
|
}
|
|
@@ -1149,7 +1149,7 @@ function getDatabaseConfigForDisplay() {
|
|
|
1149
1149
|
poolSize: config.poolSize,
|
|
1150
1150
|
queryTimeout: config.queryTimeout,
|
|
1151
1151
|
// 连接状态
|
|
1152
|
-
connectionString:
|
|
1152
|
+
connectionString: "postgresql://" + config.username + ":***@" + config.host + ":" + config.port + "/" + config.database,
|
|
1153
1153
|
source: process.env.DATABASE_URL ? "DATABASE_URL" : "Environment Variables"
|
|
1154
1154
|
};
|
|
1155
1155
|
}
|