zcw-shared 1.31.1 → 1.32.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (159) hide show
  1. package/dist/functions/algorithm/lcsVisual.d.ts +6 -0
  2. package/dist/functions/algorithm/lcsVisual.js +88 -0
  3. package/dist/functions/algorithm/lcsVisual.js.map +1 -0
  4. package/dist/functions/algorithm/mergeSortVisual.d.ts +5 -0
  5. package/dist/functions/algorithm/mergeSortVisual.js +103 -0
  6. package/dist/functions/algorithm/mergeSortVisual.js.map +1 -0
  7. package/dist/functions/algorithm/nQueensVisual.d.ts +14 -0
  8. package/dist/functions/algorithm/nQueensVisual.js +94 -0
  9. package/dist/functions/algorithm/nQueensVisual.js.map +1 -0
  10. package/dist/functions/algorithm/numIslandsVisual.d.ts +17 -0
  11. package/dist/functions/algorithm/numIslandsVisual.js +102 -0
  12. package/dist/functions/algorithm/numIslandsVisual.js.map +1 -0
  13. package/dist/functions/algorithm/quickSortVisual.d.ts +18 -0
  14. package/dist/functions/algorithm/quickSortVisual.js +104 -0
  15. package/dist/functions/algorithm/quickSortVisual.js.map +1 -0
  16. package/dist/functions/browser/detectDevice.d.ts +10 -0
  17. package/dist/functions/browser/detectDevice.js +49 -0
  18. package/dist/functions/browser/detectDevice.js.map +1 -0
  19. package/dist/functions/cookie/getCookie.d.ts +5 -0
  20. package/dist/functions/cookie/getCookie.js +14 -0
  21. package/dist/functions/cookie/getCookie.js.map +1 -0
  22. package/dist/functions/cookie/removeCookie.d.ts +8 -0
  23. package/dist/functions/cookie/removeCookie.js +12 -0
  24. package/dist/functions/cookie/removeCookie.js.map +1 -0
  25. package/dist/functions/cookie/setCookie.d.ts +11 -0
  26. package/dist/functions/cookie/setCookie.js +23 -0
  27. package/dist/functions/cookie/setCookie.js.map +1 -0
  28. package/dist/functions/data-structures/EventEmitter.d.ts +32 -0
  29. package/dist/functions/data-structures/EventEmitter.js +108 -0
  30. package/dist/functions/data-structures/EventEmitter.js.map +1 -0
  31. package/dist/functions/data-structures/MyPromise.d.ts +32 -0
  32. package/dist/functions/data-structures/MyPromise.js +254 -0
  33. package/dist/functions/data-structures/MyPromise.js.map +1 -0
  34. package/dist/functions/reactive/useReactiveCookie.d.ts +19 -0
  35. package/dist/functions/reactive/useReactiveCookie.js +84 -0
  36. package/dist/functions/reactive/useReactiveCookie.js.map +1 -0
  37. package/dist/hooks/useClickOutside.d.ts +12 -0
  38. package/dist/hooks/useClickOutside.js +16 -0
  39. package/dist/hooks/useClickOutside.js.map +1 -0
  40. package/dist/hooks/useClipboard.d.ts +20 -0
  41. package/dist/hooks/useClipboard.js +33 -0
  42. package/dist/hooks/useClipboard.js.map +1 -0
  43. package/dist/hooks/useCounter.d.ts +19 -0
  44. package/dist/hooks/useCounter.js +44 -0
  45. package/dist/hooks/useCounter.js.map +1 -0
  46. package/dist/hooks/useEventListener.d.ts +14 -0
  47. package/dist/hooks/useEventListener.js +18 -0
  48. package/dist/hooks/useEventListener.js.map +1 -0
  49. package/dist/hooks/useInterval.d.ts +19 -0
  50. package/dist/hooks/useInterval.js +33 -0
  51. package/dist/hooks/useInterval.js.map +1 -0
  52. package/dist/hooks/useTimeout.d.ts +20 -0
  53. package/dist/hooks/useTimeout.js +40 -0
  54. package/dist/hooks/useTimeout.js.map +1 -0
  55. package/dist/hooks/useToggle.d.ts +15 -0
  56. package/dist/hooks/useToggle.js +23 -0
  57. package/dist/hooks/useToggle.js.map +1 -0
  58. package/dist/reactive/createGlobalState.d.ts +2 -0
  59. package/dist/reactive/createGlobalState.js +11 -0
  60. package/dist/reactive/createGlobalState.js.map +1 -0
  61. package/dist/reactive/createSharedComposable.d.ts +2 -0
  62. package/dist/reactive/createSharedComposable.js +13 -0
  63. package/dist/reactive/createSharedComposable.js.map +1 -0
  64. package/dist/reactive/errorManager.d.ts +63 -0
  65. package/dist/reactive/errorManager.js +199 -0
  66. package/dist/reactive/errorManager.js.map +1 -0
  67. package/dist/reactive/i18n.d.ts +27 -0
  68. package/dist/reactive/i18n.js +119 -0
  69. package/dist/reactive/i18n.js.map +1 -0
  70. package/dist/reactive/permission.d.ts +40 -0
  71. package/dist/reactive/permission.js +189 -0
  72. package/dist/reactive/permission.js.map +1 -0
  73. package/dist/reactive/pinia.d.ts +52 -0
  74. package/dist/reactive/pinia.js +183 -0
  75. package/dist/reactive/pinia.js.map +1 -0
  76. package/dist/reactive/useAltool.d.ts +39 -0
  77. package/dist/reactive/useAltool.js +350 -0
  78. package/dist/reactive/useAltool.js.map +1 -0
  79. package/dist/reactive/useCache.d.ts +18 -0
  80. package/dist/reactive/useCache.js +82 -0
  81. package/dist/reactive/useCache.js.map +1 -0
  82. package/dist/reactive/useLocalStorage.d.ts +8 -0
  83. package/dist/reactive/useLocalStorage.js +101 -0
  84. package/dist/reactive/useLocalStorage.js.map +1 -0
  85. package/dist/reactive/usePluginSystem.d.ts +11 -0
  86. package/dist/reactive/usePluginSystem.js +34 -0
  87. package/dist/reactive/usePluginSystem.js.map +1 -0
  88. package/dist/reactive/useSessionStorage.d.ts +8 -0
  89. package/dist/reactive/useSessionStorage.js +101 -0
  90. package/dist/reactive/useSessionStorage.js.map +1 -0
  91. package/dist/reactive/useStorage.d.ts +13 -0
  92. package/dist/reactive/useStorage.js +62 -0
  93. package/dist/reactive/useStorage.js.map +1 -0
  94. package/dist/reactive/useStorageWithIndexedDB.d.ts +8 -0
  95. package/dist/reactive/useStorageWithIndexedDB.js +132 -0
  96. package/dist/reactive/useStorageWithIndexedDB.js.map +1 -0
  97. package/dist/vue-hooks/browser/useFileUpload.js +10 -5
  98. package/dist/vue-hooks/browser/useFileUpload.js.map +1 -1
  99. package/dist/vue-hooks/state/handleUserInvalid.d.ts +10 -0
  100. package/dist/vue-hooks/state/handleUserInvalid.js +7 -0
  101. package/dist/vue-hooks/state/handleUserInvalid.js.map +1 -0
  102. package/dist/vue-hooks/state/useGlobalSettingsManager.d.ts +50 -0
  103. package/dist/vue-hooks/state/useGlobalSettingsManager.js +129 -0
  104. package/dist/vue-hooks/state/useGlobalSettingsManager.js.map +1 -0
  105. package/dist/vue-hooks/state/useSystemSettingsManager.d.ts +45 -0
  106. package/dist/vue-hooks/state/useSystemSettingsManager.js +102 -0
  107. package/dist/vue-hooks/state/useSystemSettingsManager.js.map +1 -0
  108. package/dist/vue-hooks/state/useToken.d.ts +36 -0
  109. package/dist/vue-hooks/state/useToken.js +121 -0
  110. package/dist/vue-hooks/state/useToken.js.map +1 -0
  111. package/dist/vue-hooks/state/useTokenManager.d.ts +55 -0
  112. package/dist/vue-hooks/state/useTokenManager.js +146 -0
  113. package/dist/vue-hooks/state/useTokenManager.js.map +1 -0
  114. package/dist/vue-hooks/state/useUserManager.d.ts +41 -0
  115. package/dist/vue-hooks/state/useUserManager.js +77 -0
  116. package/dist/vue-hooks/state/useUserManager.js.map +1 -0
  117. package/package.json +6 -1
  118. package/dist/functions/platform/tencent-cloud/deploy.tcb.d.ts +0 -13
  119. package/dist/functions/platform/tencent-cloud/deploy.tcb.js +0 -46
  120. package/dist/functions/platform/tencent-cloud/deploy.tcb.js.map +0 -1
  121. package/dist/functions/platform/tencent-cloud/getSecret.d.ts +0 -4
  122. package/dist/functions/platform/tencent-cloud/getSecret.js +0 -19
  123. package/dist/functions/platform/tencent-cloud/getSecret.js.map +0 -1
  124. package/dist/functions/platform/uniapp/app-plus/buildAndroidApp.d.ts +0 -27
  125. package/dist/functions/platform/uniapp/app-plus/buildAndroidApp.js +0 -287
  126. package/dist/functions/platform/uniapp/app-plus/buildAndroidApp.js.map +0 -1
  127. package/dist/functions/platform/uniapp/build.d.ts +0 -21
  128. package/dist/functions/platform/uniapp/build.js +0 -83
  129. package/dist/functions/platform/uniapp/build.js.map +0 -1
  130. package/dist/functions/platform/uniapp/detectAndroidProjectStructure.d.ts +0 -11
  131. package/dist/functions/platform/uniapp/detectAndroidProjectStructure.js +0 -30
  132. package/dist/functions/platform/uniapp/detectAndroidProjectStructure.js.map +0 -1
  133. package/dist/functions/platform/uniapp/detectProjectType.d.ts +0 -20
  134. package/dist/functions/platform/uniapp/detectProjectType.js +0 -68
  135. package/dist/functions/platform/uniapp/detectProjectType.js.map +0 -1
  136. package/dist/functions/platform/uniapp/parseManifest.d.ts +0 -18
  137. package/dist/functions/platform/uniapp/parseManifest.js +0 -49
  138. package/dist/functions/platform/uniapp/parseManifest.js.map +0 -1
  139. package/dist/functions/platform/uniapp/waitForPages.d.ts +0 -7
  140. package/dist/functions/platform/uniapp/waitForPages.js +0 -20
  141. package/dist/functions/platform/uniapp/waitForPages.js.map +0 -1
  142. package/dist/functions/string/visualizeRegexSteps.d.ts +0 -39
  143. package/dist/functions/string/visualizeRegexSteps.js +0 -446
  144. package/dist/functions/string/visualizeRegexSteps.js.map +0 -1
  145. package/dist/functions/utils/createI18n.d.ts +0 -2
  146. package/dist/functions/utils/createI18n.js +0 -97
  147. package/dist/functions/utils/createI18n.js.map +0 -1
  148. package/dist/functions/utils/formatString.d.ts +0 -5
  149. package/dist/functions/utils/formatString.js +0 -9
  150. package/dist/functions/utils/formatString.js.map +0 -1
  151. package/dist/hooks/usePermission.d.ts +0 -7
  152. package/dist/hooks/usePermission.js +0 -123
  153. package/dist/hooks/usePermission.js.map +0 -1
  154. package/dist/vue-hooks/dom/useKeyboard.d.ts +0 -29
  155. package/dist/vue-hooks/dom/useKeyboard.js +0 -129
  156. package/dist/vue-hooks/dom/useKeyboard.js.map +0 -1
  157. package/dist/vue-hooks/state/useFileUpload.d.ts +0 -23
  158. package/dist/vue-hooks/state/useFileUpload.js +0 -93
  159. package/dist/vue-hooks/state/useFileUpload.js.map +0 -1
@@ -0,0 +1,146 @@
1
+ export function useTokenManager(options, env) {
2
+ const refreshThresholdMs = options.refreshThresholdMs ?? 60_000;
3
+ const keyAccess = options.storageKeys?.access ?? 'token:access';
4
+ const keyRefresh = options.storageKeys?.refresh ?? 'token:refresh';
5
+ const keyExpiresAt = options.storageKeys?.expiresAt ?? 'token:expiresAt';
6
+ const accessToken = env.vue.ref(null);
7
+ const refreshToken = env.vue.ref(null);
8
+ const expiresAt = env.vue.ref(null);
9
+ const isRefreshing = env.vue.ref(false);
10
+ const error = env.vue.ref(null);
11
+ const isAuthenticated = env.vue.computed(() => {
12
+ if (!accessToken.value || !expiresAt.value)
13
+ return false;
14
+ return expiresAt.value > env.host.now();
15
+ });
16
+ let refreshTimer = null;
17
+ let hasHydrated = false;
18
+ function persist() {
19
+ try {
20
+ if (accessToken.value)
21
+ env.storage.setItem(keyAccess, accessToken.value);
22
+ else
23
+ env.storage.removeItem(keyAccess);
24
+ if (refreshToken.value)
25
+ env.storage.setItem(keyRefresh, refreshToken.value);
26
+ else
27
+ env.storage.removeItem(keyRefresh);
28
+ if (expiresAt.value != null)
29
+ env.storage.setItem(keyExpiresAt, String(expiresAt.value));
30
+ else
31
+ env.storage.removeItem(keyExpiresAt);
32
+ }
33
+ catch { }
34
+ }
35
+ function scheduleRefresh() {
36
+ if (refreshTimer) {
37
+ env.host.clearTimeout(refreshTimer);
38
+ refreshTimer = null;
39
+ }
40
+ if (!options.refreshFn)
41
+ return;
42
+ if (!refreshToken.value || !expiresAt.value)
43
+ return;
44
+ const now = env.host.now();
45
+ const dueIn = expiresAt.value - now;
46
+ const delay = Math.max(0, dueIn - refreshThresholdMs);
47
+ refreshTimer = env.host.setTimeout(() => {
48
+ void forceRefresh();
49
+ }, delay);
50
+ }
51
+ function setTokens(input) {
52
+ error.value = null;
53
+ accessToken.value = input.accessToken;
54
+ if (typeof input.refreshToken !== 'undefined') {
55
+ refreshToken.value = input.refreshToken;
56
+ }
57
+ let nextExpiresAt = null;
58
+ if (typeof input.expiresAt === 'number') {
59
+ nextExpiresAt = input.expiresAt;
60
+ }
61
+ else if (typeof input.expiresInSeconds === 'number') {
62
+ nextExpiresAt = env.host.now() + Math.max(0, input.expiresInSeconds) * 1000;
63
+ }
64
+ expiresAt.value = nextExpiresAt;
65
+ persist();
66
+ scheduleRefresh();
67
+ }
68
+ function clearTokens() {
69
+ accessToken.value = null;
70
+ refreshToken.value = null;
71
+ expiresAt.value = null;
72
+ error.value = null;
73
+ if (refreshTimer) {
74
+ env.host.clearTimeout(refreshTimer);
75
+ refreshTimer = null;
76
+ }
77
+ persist();
78
+ }
79
+ async function forceRefresh() {
80
+ if (!options.refreshFn)
81
+ return false;
82
+ if (!refreshToken.value)
83
+ return false;
84
+ try {
85
+ isRefreshing.value = true;
86
+ error.value = null;
87
+ const result = await options.refreshFn(refreshToken.value);
88
+ if (!result) {
89
+ error.value = 'refresh failed';
90
+ return false;
91
+ }
92
+ setTokens({
93
+ accessToken: result.accessToken,
94
+ refreshToken: typeof result.refreshToken === 'string' ? result.refreshToken : refreshToken.value,
95
+ expiresAt: result.expiresAt
96
+ });
97
+ return true;
98
+ }
99
+ catch (e) {
100
+ error.value = e?.message ?? 'refresh error';
101
+ return false;
102
+ }
103
+ finally {
104
+ isRefreshing.value = false;
105
+ }
106
+ }
107
+ function rehydrate() {
108
+ try {
109
+ const a = env.storage.getItem(keyAccess);
110
+ const r = env.storage.getItem(keyRefresh);
111
+ const expStr = env.storage.getItem(keyExpiresAt);
112
+ accessToken.value = a ?? null;
113
+ refreshToken.value = r ?? null;
114
+ expiresAt.value = expStr != null ? Number(expStr) : null;
115
+ }
116
+ catch { }
117
+ }
118
+ env.vue.onMounted(() => {
119
+ rehydrate();
120
+ hasHydrated = true;
121
+ scheduleRefresh();
122
+ });
123
+ env.vue.onUnmounted(() => {
124
+ if (refreshTimer) {
125
+ env.host.clearTimeout(refreshTimer);
126
+ refreshTimer = null;
127
+ }
128
+ });
129
+ env.vue.watchEffect(() => {
130
+ if (!hasHydrated)
131
+ return;
132
+ persist();
133
+ });
134
+ return {
135
+ accessToken,
136
+ refreshToken,
137
+ expiresAt,
138
+ isRefreshing,
139
+ error,
140
+ isAuthenticated,
141
+ setTokens,
142
+ clearTokens,
143
+ forceRefresh
144
+ };
145
+ }
146
+ //# sourceMappingURL=useTokenManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTokenManager.js","sourceRoot":"","sources":["../../../src/vue-hooks/state/useTokenManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import type { Ref } from 'vue';
2
+ import type { Storage } from '../../../references/storage.d';
3
+ export interface UserProfile {
4
+ id: string;
5
+ name?: string;
6
+ email?: string;
7
+ avatarUrl?: string;
8
+ [key: string]: any;
9
+ }
10
+ export interface UseUserManagerEnvironment {
11
+ vue: {
12
+ ref: <T>(value: T) => Ref<T>;
13
+ computed: <T>(getter: () => T) => Ref<T>;
14
+ watchEffect: (effect: () => void) => void;
15
+ onMounted: (cb: () => void) => void;
16
+ onUnmounted: (cb: () => void) => void;
17
+ };
18
+ storage: {
19
+ getItem: Storage['getItem'];
20
+ setItem: Storage['setItem'];
21
+ removeItem: Storage['removeItem'];
22
+ };
23
+ }
24
+ export interface UseUserManagerOptions {
25
+ storageKey?: string;
26
+ fetchUserFn?: (accessToken: string) => Promise<UserProfile | null>;
27
+ autoFetch?: boolean;
28
+ }
29
+ export interface TokenReadonly {
30
+ accessToken: Ref<string | null>;
31
+ isAuthenticated: Ref<boolean>;
32
+ }
33
+ export interface UseUserManagerReturn {
34
+ user: Ref<UserProfile | null>;
35
+ isLoading: Ref<boolean>;
36
+ error: Ref<string | null>;
37
+ hasUser: Ref<boolean>;
38
+ refreshUser: () => Promise<boolean>;
39
+ clearUser: () => void;
40
+ }
41
+ export declare function useUserManager(token: TokenReadonly, options: UseUserManagerOptions, env: UseUserManagerEnvironment): UseUserManagerReturn;
@@ -0,0 +1,77 @@
1
+ export function useUserManager(token, options, env) {
2
+ const key = options.storageKey ?? 'user:profile';
3
+ const autoFetch = options.autoFetch ?? true;
4
+ const user = env.vue.ref(null);
5
+ const isLoading = env.vue.ref(false);
6
+ const error = env.vue.ref(null);
7
+ const hasUser = env.vue.computed(() => user.value != null);
8
+ let hasMounted = false;
9
+ function persist() {
10
+ try {
11
+ if (user.value)
12
+ env.storage.setItem(key, JSON.stringify(user.value));
13
+ else
14
+ env.storage.removeItem(key);
15
+ }
16
+ catch { }
17
+ }
18
+ function rehydrate() {
19
+ try {
20
+ const raw = env.storage.getItem(key);
21
+ if (raw)
22
+ user.value = JSON.parse(raw);
23
+ }
24
+ catch { }
25
+ }
26
+ async function refreshUser() {
27
+ if (!options.fetchUserFn)
28
+ return false;
29
+ const tokenValue = token.accessToken.value;
30
+ if (!tokenValue)
31
+ return false;
32
+ try {
33
+ isLoading.value = true;
34
+ error.value = null;
35
+ const profile = await options.fetchUserFn(tokenValue);
36
+ if (!profile) {
37
+ user.value = null;
38
+ persist();
39
+ return false;
40
+ }
41
+ user.value = profile;
42
+ persist();
43
+ return true;
44
+ }
45
+ catch (e) {
46
+ error.value = e?.message ?? 'fetch user error';
47
+ return false;
48
+ }
49
+ finally {
50
+ isLoading.value = false;
51
+ }
52
+ }
53
+ function clearUser() {
54
+ user.value = null;
55
+ error.value = null;
56
+ persist();
57
+ }
58
+ env.vue.onMounted(() => {
59
+ rehydrate();
60
+ hasMounted = true;
61
+ if (autoFetch && token.isAuthenticated.value && token.accessToken.value) {
62
+ void refreshUser();
63
+ }
64
+ });
65
+ env.vue.watchEffect(() => {
66
+ if (!hasMounted || !autoFetch)
67
+ return;
68
+ if (token.isAuthenticated.value && token.accessToken.value) {
69
+ void refreshUser();
70
+ }
71
+ else {
72
+ clearUser();
73
+ }
74
+ });
75
+ return { user, isLoading, error, hasUser, refreshUser, clearUser };
76
+ }
77
+ //# sourceMappingURL=useUserManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useUserManager.js","sourceRoot":"","sources":["../../../src/vue-hooks/state/useUserManager.ts"],"names":[],"mappings":"AAqDA,MAAM,UAAU,cAAc,CAC5B,KAAoB,EACpB,OAA8B,EAC9B,GAA8B;IAE9B,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,IAAI,cAAc,CAAA;IAChD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAA;IAE3C,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAqB,IAAI,CAAC,CAAA;IAClD,MAAM,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAU,KAAK,CAAC,CAAA;IAC7C,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAgB,IAAI,CAAC,CAAA;IAC9C,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAU,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAA;IACnE,IAAI,UAAU,GAAG,KAAK,CAAA;IAEtB,SAAS,OAAO;QACd,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,KAAK;gBAAE,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;;gBAC/D,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QAClC,CAAC;QAAC,MAAM,CAAC,CAAc,CAAC;IAC1B,CAAC;IAED,SAAS,SAAS;QAChB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YACpC,IAAI,GAAG;gBAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACvC,CAAC;QAAC,MAAM,CAAC,CAAc,CAAC;IAC1B,CAAC;IAED,KAAK,UAAU,WAAW;QACxB,IAAI,CAAC,OAAO,CAAC,WAAW;YAAE,OAAO,KAAK,CAAA;QACtC,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,CAAA;QAC1C,IAAI,CAAC,UAAU;YAAE,OAAO,KAAK,CAAA;QAC7B,IAAI,CAAC;YACH,SAAS,CAAC,KAAK,GAAG,IAAI,CAAA;YACtB,KAAK,CAAC,KAAK,GAAG,IAAI,CAAA;YAClB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA;YACrD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;gBACjB,OAAO,EAAE,CAAA;gBACT,OAAO,KAAK,CAAA;YACd,CAAC;YACD,IAAI,CAAC,KAAK,GAAG,OAAO,CAAA;YACpB,OAAO,EAAE,CAAA;YACT,OAAO,IAAI,CAAA;QACb,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,OAAO,IAAI,kBAAkB,CAAA;YAC9C,OAAO,KAAK,CAAA;QACd,CAAC;gBAAS,CAAC;YACT,SAAS,CAAC,KAAK,GAAG,KAAK,CAAA;QACzB,CAAC;IACH,CAAC;IAED,SAAS,SAAS;QAChB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QACjB,KAAK,CAAC,KAAK,GAAG,IAAI,CAAA;QAClB,OAAO,EAAE,CAAA;IACX,CAAC;IAED,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;QAErB,SAAS,EAAE,CAAA;QACX,UAAU,GAAG,IAAI,CAAA;QAEjB,IAAI,SAAS,IAAI,KAAK,CAAC,eAAe,CAAC,KAAK,IAAI,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;YACxE,KAAK,WAAW,EAAE,CAAA;QACpB,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE;QAEvB,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS;YAAE,OAAM;QAErC,IAAI,KAAK,CAAC,eAAe,CAAC,KAAK,IAAI,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;YAC3D,KAAK,WAAW,EAAE,CAAA;QACpB,CAAC;aAAM,CAAC;YACN,SAAS,EAAE,CAAA;QACb,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,CAAA;AACpE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zcw-shared",
3
- "version": "1.31.1",
3
+ "version": "1.32.0",
4
4
  "files": [
5
5
  "references",
6
6
  "dist",
@@ -282,11 +282,16 @@
282
282
  "./vue-hooks/state/createGlobalState": "./dist/vue-hooks/state/createGlobalState.js",
283
283
  "./vue-hooks/state/createInjectionState": "./dist/vue-hooks/state/createInjectionState.js",
284
284
  "./vue-hooks/state/createSharedComposable": "./dist/vue-hooks/state/createSharedComposable.js",
285
+ "./vue-hooks/state/handleUserInvalid": "./dist/vue-hooks/state/handleUserInvalid.js",
285
286
  "./vue-hooks/state/injectLocal": "./dist/vue-hooks/state/injectLocal.js",
286
287
  "./vue-hooks/state/provideLocal": "./dist/vue-hooks/state/provideLocal.js",
287
288
  "./vue-hooks/state/useAsyncState": "./dist/vue-hooks/state/useAsyncState.js",
288
289
  "./vue-hooks/state/useCounter": "./dist/vue-hooks/state/useCounter.js",
290
+ "./vue-hooks/state/useGlobalSettingsManager": "./dist/vue-hooks/state/useGlobalSettingsManager.js",
291
+ "./vue-hooks/state/useSystemSettingsManager": "./dist/vue-hooks/state/useSystemSettingsManager.js",
289
292
  "./vue-hooks/state/useToggle": "./dist/vue-hooks/state/useToggle.js",
293
+ "./vue-hooks/state/useTokenManager": "./dist/vue-hooks/state/useTokenManager.js",
294
+ "./vue-hooks/state/useUserManager": "./dist/vue-hooks/state/useUserManager.js",
290
295
  "./vue-hooks/time/useInterval": "./dist/vue-hooks/time/useInterval.js",
291
296
  "./vue-hooks/time/useTimeout": "./dist/vue-hooks/time/useTimeout.js",
292
297
  "./vue-hooks/worker/useWebWorker": "./dist/vue-hooks/worker/useWebWorker.js",
@@ -1,13 +0,0 @@
1
- import type { DeployOptions, DeployResult, SecretType } from '../../../../types/tencent-cloud.d';
2
- import type { TencentCloudSecret, CloudBaseManager } from '../../../../references/tencent-cloud.d';
3
- import type { FileSystem } from '../../../../references/node.d';
4
- import type { Console } from '../../../../references/console.d';
5
- export interface DeployTCBDeps {
6
- existsSync: FileSystem['existsSync'];
7
- init: CloudBaseManager['init'];
8
- log: Console['log'];
9
- error: Console['error'];
10
- getSecret: (type: SecretType) => TencentCloudSecret | null;
11
- }
12
- export declare function deployToTCB(options: DeployOptions, deps: DeployTCBDeps): Promise<DeployResult>;
13
- export default deployToTCB;
@@ -1,46 +0,0 @@
1
- export async function deployToTCB(options, deps) {
2
- const { localPath, cloudPath = '/', envId, secretType, showProgress = true } = options;
3
- try {
4
- if (!deps.existsSync(localPath)) {
5
- return {
6
- success: false,
7
- error: `本地路径不存在: ${localPath}`
8
- };
9
- }
10
- const secret = deps.getSecret(secretType);
11
- if (!secret || !secret.secretId || !secret.secretKey) {
12
- return {
13
- success: false,
14
- error: `无效的密钥类型: ${secretType}`
15
- };
16
- }
17
- const app = deps.init({
18
- secretId: secret.secretId,
19
- secretKey: secret.secretKey,
20
- envId
21
- });
22
- const hosting = app.hosting;
23
- await hosting.uploadFiles({
24
- localPath,
25
- cloudPath,
26
- onProgress: showProgress ? (progressData) => {
27
- deps.log(`上传进度: ${progressData.percent}%`);
28
- } : undefined
29
- });
30
- deps.log('文件上传成功');
31
- return {
32
- success: true,
33
- message: '部署成功'
34
- };
35
- }
36
- catch (error) {
37
- const errorMessage = error instanceof Error ? error.message : String(error);
38
- deps.error('部署失败:', error);
39
- return {
40
- success: false,
41
- error: `部署失败: ${errorMessage}`
42
- };
43
- }
44
- }
45
- export default deployToTCB;
46
- //# sourceMappingURL=deploy.tcb.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deploy.tcb.js","sourceRoot":"","sources":["../../../../src/functions/platform/tencent-cloud/deploy.tcb.ts"],"names":[],"mappings":"AAuDA,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAAsB,EACtB,IAAmB;IAEnB,MAAM,EACJ,SAAS,EACT,SAAS,GAAG,GAAG,EACf,KAAK,EACL,UAAU,EACV,YAAY,GAAG,IAAI,EACpB,GAAG,OAAO,CAAA;IAEX,IAAI,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAChC,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,YAAY,SAAS,EAAE;aAC/B,CAAA;QACH,CAAC;QAGD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA;QACzC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACrD,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,YAAY,UAAU,EAAE;aAChC,CAAA;QACH,CAAC;QAGD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;YACpB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,KAAK;SACN,CAAC,CAAA;QAGF,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAA;QAG3B,MAAM,OAAO,CAAC,WAAW,CAAC;YACxB,SAAS;YACT,SAAS;YACT,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,YAAgC,EAAE,EAAE;gBAC7D,IAAI,CAAC,GAAG,CAAC,SAAS,YAAY,CAAC,OAAO,GAAG,CAAC,CAAA;YAC5C,CAAC,CAAC,CAAC,CAAC,SAAS;SACf,CAAC,CAAA;QAGF,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAClB,OAAO;YACL,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,MAAM;SAChB,CAAA;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC3E,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QAC1B,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,SAAS,YAAY,EAAE;SAC/B,CAAA;IACH,CAAC;AACH,CAAC;AAQD,eAAe,WAAW,CAAA"}
@@ -1,4 +0,0 @@
1
- import type { TencentCloudSecret } from '../../../../references/tencent-cloud.d';
2
- import type { SecretType } from '../../../../types/tencent-cloud.d';
3
- export declare function getSecret(type: SecretType): TencentCloudSecret;
4
- export default getSecret;
@@ -1,19 +0,0 @@
1
- const secretMap = {
2
- personal: {
3
- secretId: 'AKIDKVQ5VjiQu73j9IBnFRN2QYQ2MQEl22mI',
4
- secretKey: 'IL7cqoWy94lDsGSXP9gxzkGXcSFrDJ8h',
5
- },
6
- individual: {
7
- secretId: 'AKID2A6oIZcT5TcWBetteARULxKSM1ResARl',
8
- secretKey: 'INFtISN3VmocDZgYBZicIitpWyEG4f2B',
9
- },
10
- enterprise: {
11
- secretId: 'AKIDRhqpgKn46uVvACzd7ORGTbaLtHSSEn8H',
12
- secretKey: '95tV4Ql02wpY5QaaOzTlrjOr8OQFsHUW',
13
- },
14
- };
15
- export function getSecret(type) {
16
- return secretMap[type];
17
- }
18
- export default getSecret;
19
- //# sourceMappingURL=getSecret.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getSecret.js","sourceRoot":"","sources":["../../../../src/functions/platform/tencent-cloud/getSecret.ts"],"names":[],"mappings":"AAIA,MAAM,SAAS,GAA2C;IACxD,QAAQ,EAAE;QAER,QAAQ,EAAE,sCAAsC;QAChD,SAAS,EAAE,kCAAkC;KAC9C;IACD,UAAU,EAAE;QAEV,QAAQ,EAAE,sCAAsC;QAChD,SAAS,EAAE,kCAAkC;KAC9C;IACD,UAAU,EAAE;QAEV,QAAQ,EAAE,sCAAsC;QAChD,SAAS,EAAE,kCAAkC;KAC9C;CACF,CAAA;AAoCD,MAAM,UAAU,SAAS,CAAC,IAAgB;IACxC,OAAO,SAAS,CAAC,IAAI,CAAC,CAAA;AACxB,CAAC;AAKD,eAAe,SAAS,CAAA"}
@@ -1,27 +0,0 @@
1
- import type { UniAppAndroidBuildOptions, UniAppAndroidBuildResult } from '../../../../../types/uniapp-android-build.d';
2
- import type { FileSystem, Path, ChildProcess } from '../../../../../references/node.d';
3
- import type { XMLParserConstructor, XMLSerializerConstructor } from '../../../../../references/xml.d';
4
- import type { JSON5Parser } from '../../../../../references/json5.d';
5
- import type { XPath } from '../../../../../references/xpath.d';
6
- import type { setTimeout } from '../../../../../references/timer.d';
7
- export interface BuildAndroidAppDeps {
8
- existsSync: FileSystem['existsSync'];
9
- readFileSync: FileSystem['readFileSync'];
10
- writeFileSync: FileSystem['writeFileSync'];
11
- copyFileSync: FileSystem['copyFileSync'];
12
- mkdirSync: FileSystem['mkdirSync'];
13
- readdirSync: FileSystem['readdirSync'];
14
- statSync: FileSystem['statSync'];
15
- cp: FileSystem['promises']['cp'];
16
- join: Path['join'];
17
- dirname: Path['dirname'];
18
- basename: Path['basename'];
19
- exec: ChildProcess['exec'];
20
- platform: string;
21
- parse: JSON5Parser['parse'];
22
- xmlParser: XMLParserConstructor;
23
- xmlSerializer: XMLSerializerConstructor;
24
- xpath: XPath;
25
- setTimeout: typeof setTimeout;
26
- }
27
- export declare function buildAndroidApp(options: UniAppAndroidBuildOptions, deps: BuildAndroidAppDeps): Promise<UniAppAndroidBuildResult>;