zcw-shared 1.32.6 → 1.33.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 (239) hide show
  1. package/dist/functions/wechat/useWxWebShare.d.ts +26 -0
  2. package/dist/functions/wechat/useWxWebShare.js +141 -0
  3. package/dist/functions/wechat/useWxWebShare.js.map +1 -0
  4. package/package.json +5 -3
  5. package/references/wechat.d.ts +35 -0
  6. package/dist/functions/platform/tencent-cloud/deploy.tcb.d.ts +0 -13
  7. package/dist/functions/platform/tencent-cloud/deploy.tcb.js +0 -46
  8. package/dist/functions/platform/tencent-cloud/deploy.tcb.js.map +0 -1
  9. package/dist/functions/platform/tencent-cloud/getSecret.d.ts +0 -4
  10. package/dist/functions/platform/tencent-cloud/getSecret.js +0 -19
  11. package/dist/functions/platform/tencent-cloud/getSecret.js.map +0 -1
  12. package/dist/functions/platform/uniapp/app-plus/buildAndroidApp.d.ts +0 -27
  13. package/dist/functions/platform/uniapp/app-plus/buildAndroidApp.js +0 -287
  14. package/dist/functions/platform/uniapp/app-plus/buildAndroidApp.js.map +0 -1
  15. package/dist/functions/platform/uniapp/build.d.ts +0 -21
  16. package/dist/functions/platform/uniapp/build.js +0 -83
  17. package/dist/functions/platform/uniapp/build.js.map +0 -1
  18. package/dist/functions/platform/uniapp/detectAndroidProjectStructure.d.ts +0 -11
  19. package/dist/functions/platform/uniapp/detectAndroidProjectStructure.js +0 -30
  20. package/dist/functions/platform/uniapp/detectAndroidProjectStructure.js.map +0 -1
  21. package/dist/functions/platform/uniapp/detectProjectType.d.ts +0 -20
  22. package/dist/functions/platform/uniapp/detectProjectType.js +0 -68
  23. package/dist/functions/platform/uniapp/detectProjectType.js.map +0 -1
  24. package/dist/functions/platform/uniapp/parseManifest.d.ts +0 -18
  25. package/dist/functions/platform/uniapp/parseManifest.js +0 -49
  26. package/dist/functions/platform/uniapp/parseManifest.js.map +0 -1
  27. package/dist/functions/platform/uniapp/waitForPages.d.ts +0 -7
  28. package/dist/functions/platform/uniapp/waitForPages.js +0 -20
  29. package/dist/functions/platform/uniapp/waitForPages.js.map +0 -1
  30. package/dist/functions/string/visualizeRegexSteps.d.ts +0 -39
  31. package/dist/functions/string/visualizeRegexSteps.js +0 -446
  32. package/dist/functions/string/visualizeRegexSteps.js.map +0 -1
  33. package/dist/functions/utils/AVLTree.d.ts +0 -19
  34. package/dist/functions/utils/AVLTree.js +0 -197
  35. package/dist/functions/utils/AVLTree.js.map +0 -1
  36. package/dist/functions/utils/BinarySearchTree.d.ts +0 -19
  37. package/dist/functions/utils/BinarySearchTree.js +0 -150
  38. package/dist/functions/utils/BinarySearchTree.js.map +0 -1
  39. package/dist/functions/utils/EventEmitter.d.ts +0 -32
  40. package/dist/functions/utils/EventEmitter.js +0 -108
  41. package/dist/functions/utils/EventEmitter.js.map +0 -1
  42. package/dist/functions/utils/Graph.d.ts +0 -19
  43. package/dist/functions/utils/Graph.js +0 -190
  44. package/dist/functions/utils/Graph.js.map +0 -1
  45. package/dist/functions/utils/HashMap.d.ts +0 -13
  46. package/dist/functions/utils/HashMap.js +0 -128
  47. package/dist/functions/utils/HashMap.js.map +0 -1
  48. package/dist/functions/utils/Heap.d.ts +0 -11
  49. package/dist/functions/utils/Heap.js +0 -91
  50. package/dist/functions/utils/Heap.js.map +0 -1
  51. package/dist/functions/utils/LRUCache.d.ts +0 -41
  52. package/dist/functions/utils/LRUCache.js +0 -182
  53. package/dist/functions/utils/LRUCache.js.map +0 -1
  54. package/dist/functions/utils/LinkedList.d.ts +0 -18
  55. package/dist/functions/utils/LinkedList.js +0 -135
  56. package/dist/functions/utils/LinkedList.js.map +0 -1
  57. package/dist/functions/utils/MyPromise.d.ts +0 -32
  58. package/dist/functions/utils/MyPromise.js +0 -254
  59. package/dist/functions/utils/MyPromise.js.map +0 -1
  60. package/dist/functions/utils/PriorityQueue.d.ts +0 -14
  61. package/dist/functions/utils/PriorityQueue.js +0 -77
  62. package/dist/functions/utils/PriorityQueue.js.map +0 -1
  63. package/dist/functions/utils/Queue.d.ts +0 -10
  64. package/dist/functions/utils/Queue.js +0 -27
  65. package/dist/functions/utils/Queue.js.map +0 -1
  66. package/dist/functions/utils/Stack.d.ts +0 -10
  67. package/dist/functions/utils/Stack.js +0 -27
  68. package/dist/functions/utils/Stack.js.map +0 -1
  69. package/dist/functions/utils/Trie.d.ts +0 -16
  70. package/dist/functions/utils/Trie.js +0 -127
  71. package/dist/functions/utils/Trie.js.map +0 -1
  72. package/dist/functions/utils/UnionFind.d.ts +0 -8
  73. package/dist/functions/utils/UnionFind.js +0 -53
  74. package/dist/functions/utils/UnionFind.js.map +0 -1
  75. package/dist/functions/utils/cachedAsync.d.ts +0 -27
  76. package/dist/functions/utils/cachedAsync.js +0 -123
  77. package/dist/functions/utils/cachedAsync.js.map +0 -1
  78. package/dist/functions/utils/compose.d.ts +0 -1
  79. package/dist/functions/utils/compose.js +0 -10
  80. package/dist/functions/utils/compose.js.map +0 -1
  81. package/dist/functions/utils/cond.d.ts +0 -1
  82. package/dist/functions/utils/cond.js +0 -15
  83. package/dist/functions/utils/cond.js.map +0 -1
  84. package/dist/functions/utils/createI18n.d.ts +0 -2
  85. package/dist/functions/utils/createI18n.js +0 -97
  86. package/dist/functions/utils/createI18n.js.map +0 -1
  87. package/dist/functions/utils/createReactive.d.ts +0 -10
  88. package/dist/functions/utils/createReactive.js +0 -50
  89. package/dist/functions/utils/createReactive.js.map +0 -1
  90. package/dist/functions/utils/curry.d.ts +0 -1
  91. package/dist/functions/utils/curry.js +0 -13
  92. package/dist/functions/utils/curry.js.map +0 -1
  93. package/dist/functions/utils/curryAdvanced.d.ts +0 -8
  94. package/dist/functions/utils/curryAdvanced.js +0 -87
  95. package/dist/functions/utils/curryAdvanced.js.map +0 -1
  96. package/dist/functions/utils/debounce.d.ts +0 -5
  97. package/dist/functions/utils/debounce.js +0 -12
  98. package/dist/functions/utils/debounce.js.map +0 -1
  99. package/dist/functions/utils/deepClone.d.ts +0 -12
  100. package/dist/functions/utils/deepClone.js +0 -131
  101. package/dist/functions/utils/deepClone.js.map +0 -1
  102. package/dist/functions/utils/errorManager.d.ts +0 -63
  103. package/dist/functions/utils/errorManager.js +0 -199
  104. package/dist/functions/utils/errorManager.js.map +0 -1
  105. package/dist/functions/utils/evolve.d.ts +0 -3
  106. package/dist/functions/utils/evolve.js +0 -15
  107. package/dist/functions/utils/evolve.js.map +0 -1
  108. package/dist/functions/utils/flatten.d.ts +0 -7
  109. package/dist/functions/utils/flatten.js +0 -60
  110. package/dist/functions/utils/flatten.js.map +0 -1
  111. package/dist/functions/utils/flattenObject.d.ts +0 -5
  112. package/dist/functions/utils/flattenObject.js +0 -102
  113. package/dist/functions/utils/flattenObject.js.map +0 -1
  114. package/dist/functions/utils/flow.d.ts +0 -1
  115. package/dist/functions/utils/flow.js +0 -14
  116. package/dist/functions/utils/flow.js.map +0 -1
  117. package/dist/functions/utils/formatString.d.ts +0 -5
  118. package/dist/functions/utils/formatString.js +0 -9
  119. package/dist/functions/utils/formatString.js.map +0 -1
  120. package/dist/functions/utils/functionBind.d.ts +0 -4
  121. package/dist/functions/utils/functionBind.js +0 -33
  122. package/dist/functions/utils/functionBind.js.map +0 -1
  123. package/dist/functions/utils/i18n.d.ts +0 -27
  124. package/dist/functions/utils/i18n.js +0 -119
  125. package/dist/functions/utils/i18n.js.map +0 -1
  126. package/dist/functions/utils/memoize.d.ts +0 -1
  127. package/dist/functions/utils/memoize.js +0 -13
  128. package/dist/functions/utils/memoize.js.map +0 -1
  129. package/dist/functions/utils/myInstanceof.d.ts +0 -5
  130. package/dist/functions/utils/myInstanceof.js +0 -56
  131. package/dist/functions/utils/myInstanceof.js.map +0 -1
  132. package/dist/functions/utils/myNew.d.ts +0 -3
  133. package/dist/functions/utils/myNew.js +0 -19
  134. package/dist/functions/utils/myNew.js.map +0 -1
  135. package/dist/functions/utils/once.d.ts +0 -1
  136. package/dist/functions/utils/once.js +0 -13
  137. package/dist/functions/utils/once.js.map +0 -1
  138. package/dist/functions/utils/partial.d.ts +0 -1
  139. package/dist/functions/utils/partial.js +0 -13
  140. package/dist/functions/utils/partial.js.map +0 -1
  141. package/dist/functions/utils/permission.d.ts +0 -40
  142. package/dist/functions/utils/permission.js +0 -189
  143. package/dist/functions/utils/permission.js.map +0 -1
  144. package/dist/functions/utils/pinia.d.ts +0 -52
  145. package/dist/functions/utils/pinia.js +0 -183
  146. package/dist/functions/utils/pinia.js.map +0 -1
  147. package/dist/functions/utils/pipe.d.ts +0 -1
  148. package/dist/functions/utils/pipe.js +0 -10
  149. package/dist/functions/utils/pipe.js.map +0 -1
  150. package/dist/functions/utils/promiseLimit.d.ts +0 -10
  151. package/dist/functions/utils/promiseLimit.js +0 -125
  152. package/dist/functions/utils/promiseLimit.js.map +0 -1
  153. package/dist/functions/utils/retryWithBackoff.d.ts +0 -12
  154. package/dist/functions/utils/retryWithBackoff.js +0 -29
  155. package/dist/functions/utils/retryWithBackoff.js.map +0 -1
  156. package/dist/functions/utils/tap.d.ts +0 -1
  157. package/dist/functions/utils/tap.js +0 -14
  158. package/dist/functions/utils/tap.js.map +0 -1
  159. package/dist/functions/utils/throttle.d.ts +0 -1
  160. package/dist/functions/utils/throttle.js +0 -11
  161. package/dist/functions/utils/throttle.js.map +0 -1
  162. package/dist/functions/utils/unique.d.ts +0 -10
  163. package/dist/functions/utils/unique.js +0 -85
  164. package/dist/functions/utils/unique.js.map +0 -1
  165. package/dist/functions/utils/until.d.ts +0 -1
  166. package/dist/functions/utils/until.js +0 -10
  167. package/dist/functions/utils/until.js.map +0 -1
  168. package/dist/hooks/createGlobalState.d.ts +0 -2
  169. package/dist/hooks/createGlobalState.js +0 -11
  170. package/dist/hooks/createGlobalState.js.map +0 -1
  171. package/dist/hooks/createInjectionState.d.ts +0 -14
  172. package/dist/hooks/createInjectionState.js +0 -20
  173. package/dist/hooks/createInjectionState.js.map +0 -1
  174. package/dist/hooks/createSharedComposable.d.ts +0 -2
  175. package/dist/hooks/createSharedComposable.js +0 -13
  176. package/dist/hooks/createSharedComposable.js.map +0 -1
  177. package/dist/hooks/injectLocal.d.ts +0 -10
  178. package/dist/hooks/injectLocal.js +0 -12
  179. package/dist/hooks/injectLocal.js.map +0 -1
  180. package/dist/hooks/provideLocal.d.ts +0 -9
  181. package/dist/hooks/provideLocal.js +0 -7
  182. package/dist/hooks/provideLocal.js.map +0 -1
  183. package/dist/hooks/useAltool.d.ts +0 -39
  184. package/dist/hooks/useAltool.js +0 -350
  185. package/dist/hooks/useAltool.js.map +0 -1
  186. package/dist/hooks/useAsyncState.d.ts +0 -30
  187. package/dist/hooks/useAsyncState.js +0 -46
  188. package/dist/hooks/useAsyncState.js.map +0 -1
  189. package/dist/hooks/useCache.d.ts +0 -18
  190. package/dist/hooks/useCache.js +0 -82
  191. package/dist/hooks/useCache.js.map +0 -1
  192. package/dist/hooks/useDebouncedRefHistory.d.ts +0 -22
  193. package/dist/hooks/useDebouncedRefHistory.js +0 -46
  194. package/dist/hooks/useDebouncedRefHistory.js.map +0 -1
  195. package/dist/hooks/useDraggable.d.ts +0 -37
  196. package/dist/hooks/useDraggable.js +0 -163
  197. package/dist/hooks/useDraggable.js.map +0 -1
  198. package/dist/hooks/useLocalStorage.d.ts +0 -8
  199. package/dist/hooks/useLocalStorage.js +0 -101
  200. package/dist/hooks/useLocalStorage.js.map +0 -1
  201. package/dist/hooks/useManualRefHistory.d.ts +0 -26
  202. package/dist/hooks/useManualRefHistory.js +0 -80
  203. package/dist/hooks/useManualRefHistory.js.map +0 -1
  204. package/dist/hooks/usePermission.d.ts +0 -7
  205. package/dist/hooks/usePermission.js +0 -123
  206. package/dist/hooks/usePermission.js.map +0 -1
  207. package/dist/hooks/usePluginSystem.d.ts +0 -11
  208. package/dist/hooks/usePluginSystem.js +0 -34
  209. package/dist/hooks/usePluginSystem.js.map +0 -1
  210. package/dist/hooks/useRefHistory.d.ts +0 -21
  211. package/dist/hooks/useRefHistory.js +0 -41
  212. package/dist/hooks/useRefHistory.js.map +0 -1
  213. package/dist/hooks/useResizable.d.ts +0 -54
  214. package/dist/hooks/useResizable.js +0 -178
  215. package/dist/hooks/useResizable.js.map +0 -1
  216. package/dist/hooks/useSessionStorage.d.ts +0 -8
  217. package/dist/hooks/useSessionStorage.js +0 -101
  218. package/dist/hooks/useSessionStorage.js.map +0 -1
  219. package/dist/hooks/useStorage.d.ts +0 -13
  220. package/dist/hooks/useStorage.js +0 -62
  221. package/dist/hooks/useStorage.js.map +0 -1
  222. package/dist/hooks/useStorageWithIndexedDB.d.ts +0 -8
  223. package/dist/hooks/useStorageWithIndexedDB.js +0 -132
  224. package/dist/hooks/useStorageWithIndexedDB.js.map +0 -1
  225. package/dist/hooks/useWebWorker.d.ts +0 -25
  226. package/dist/hooks/useWebWorker.js +0 -207
  227. package/dist/hooks/useWebWorker.js.map +0 -1
  228. package/dist/hooks/useWorkerFunction.d.ts +0 -26
  229. package/dist/hooks/useWorkerFunction.js +0 -191
  230. package/dist/hooks/useWorkerFunction.js.map +0 -1
  231. package/dist/hooks/useWorkerPool.d.ts +0 -33
  232. package/dist/hooks/useWorkerPool.js +0 -247
  233. package/dist/hooks/useWorkerPool.js.map +0 -1
  234. package/dist/vue-hooks/dom/useKeyboard.d.ts +0 -29
  235. package/dist/vue-hooks/dom/useKeyboard.js +0 -129
  236. package/dist/vue-hooks/dom/useKeyboard.js.map +0 -1
  237. package/dist/vue-hooks/state/useFileUpload.d.ts +0 -23
  238. package/dist/vue-hooks/state/useFileUpload.js +0 -93
  239. package/dist/vue-hooks/state/useFileUpload.js.map +0 -1
@@ -1,9 +0,0 @@
1
- export function formatString(template, params, deps) {
2
- let result = template;
3
- for (const [key, value] of Object.entries(params)) {
4
- const placeholder = `{${key}}`;
5
- result = deps.replace(result, placeholder, String(value));
6
- }
7
- return result;
8
- }
9
- //# sourceMappingURL=formatString.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"formatString.js","sourceRoot":"","sources":["../../../src/functions/utils/formatString.ts"],"names":[],"mappings":"AAkCA,MAAM,UAAU,YAAY,CAC1B,QAAgB,EAChB,MAAuC,EACvC,IAAsB;IAEtB,IAAI,MAAM,GAAG,QAAQ,CAAA;IAGrB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,MAAM,WAAW,GAAG,IAAI,GAAG,GAAG,CAAA;QAC9B,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IAC3D,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -1,4 +0,0 @@
1
- export declare function myBind<T extends (...args: any[]) => any>(func: T, thisArg: any, ...args: any[]): T;
2
- export declare function myCall<T extends (...args: any[]) => any>(func: T, thisArg: any, ...args: Parameters<T>): ReturnType<T>;
3
- export declare function myApply<T extends (...args: any[]) => any>(func: T, thisArg: any, args?: Parameters<T>): ReturnType<T>;
4
- export declare function myBindSimple<T extends (...args: any[]) => any>(func: T, thisArg: any, ...args: any[]): T;
@@ -1,33 +0,0 @@
1
- export function myBind(func, thisArg, ...args) {
2
- const self = func;
3
- const bound = function (...innerArgs) {
4
- const context = this instanceof bound ? this : thisArg;
5
- return self.apply(context, args.concat(innerArgs));
6
- };
7
- if (func.prototype) {
8
- bound.prototype = Object.create(func.prototype);
9
- }
10
- return bound;
11
- }
12
- export function myCall(func, thisArg, ...args) {
13
- const context = Object(thisArg);
14
- const uniqueKey = Symbol('fn');
15
- context[uniqueKey] = func;
16
- const result = context[uniqueKey](...args);
17
- delete context[uniqueKey];
18
- return result;
19
- }
20
- export function myApply(func, thisArg, args) {
21
- const context = Object(thisArg);
22
- const uniqueKey = Symbol('fn');
23
- context[uniqueKey] = func;
24
- const result = args ? context[uniqueKey](...args) : context[uniqueKey]();
25
- delete context[uniqueKey];
26
- return result;
27
- }
28
- export function myBindSimple(func, thisArg, ...args) {
29
- return function (...innerArgs) {
30
- return func.apply(thisArg, args.concat(innerArgs));
31
- };
32
- }
33
- //# sourceMappingURL=functionBind.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"functionBind.js","sourceRoot":"","sources":["../../../src/functions/utils/functionBind.ts"],"names":[],"mappings":"AAwBA,MAAM,UAAU,MAAM,CACpB,IAAO,EACP,OAAY,EACZ,GAAG,IAAW;IAGd,MAAM,IAAI,GAAG,IAAI,CAAA;IAGjB,MAAM,KAAK,GAAG,UAAqB,GAAG,SAAgB;QAGpD,MAAM,OAAO,GAAG,IAAI,YAAY,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAA;QAGtD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAA;IACpD,CAAC,CAAA;IAGD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACjD,CAAC;IAED,OAAO,KAAU,CAAA;AACnB,CAAC;AA+BD,MAAM,UAAU,MAAM,CACpB,IAAO,EACP,OAAY,EACZ,GAAG,IAAmB;IAItB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;IAG/B,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;IAG9B,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAAA;IAGzB,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;IAG1C,OAAO,OAAO,CAAC,SAAS,CAAC,CAAA;IAEzB,OAAO,MAAM,CAAA;AACf,CAAC;AAwBD,MAAM,UAAU,OAAO,CACrB,IAAO,EACP,OAAY,EACZ,IAAoB;IAGpB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;IAG/B,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;IAG9B,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAAA;IAGzB,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAA;IAGxE,OAAO,OAAO,CAAC,SAAS,CAAC,CAAA;IAEzB,OAAO,MAAM,CAAA;AACf,CAAC;AAKD,MAAM,UAAU,YAAY,CAC1B,IAAO,EACP,OAAY,EACZ,GAAG,IAAW;IAEd,OAAO,UAAqB,GAAG,SAAgB;QAC7C,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAA;IACpD,CAAM,CAAA;AACR,CAAC"}
@@ -1,27 +0,0 @@
1
- import type { CreateReactive } from '../../../types/reactive';
2
- export interface I18nTranslation {
3
- [key: string]: string | I18nTranslation;
4
- }
5
- export interface I18nMessages {
6
- [locale: string]: I18nTranslation;
7
- }
8
- export interface I18nConfig {
9
- defaultLocale: string;
10
- fallbackLocale?: string;
11
- messages: I18nMessages;
12
- }
13
- export interface I18nDeps {
14
- createReactive: CreateReactive;
15
- log: (...args: any[]) => void;
16
- warn: (...args: any[]) => void;
17
- }
18
- export interface I18nInstance {
19
- locale: string;
20
- t: (key: string, params?: Record<string, any>) => string;
21
- setLocale: (locale: string) => void;
22
- getLocales: () => string[];
23
- hasLocale: (locale: string) => boolean;
24
- addMessages: (locale: string, messages: I18nTranslation) => void;
25
- getMessages: () => I18nTranslation;
26
- }
27
- export declare function createI18n(config: I18nConfig, deps: I18nDeps): I18nInstance;
@@ -1,119 +0,0 @@
1
- export function createI18n(config, deps) {
2
- if (!config.defaultLocale) {
3
- throw new Error('defaultLocale is required');
4
- }
5
- if (!config.messages || Object.keys(config.messages).length === 0) {
6
- throw new Error('messages is required and cannot be empty');
7
- }
8
- if (!config.messages[config.defaultLocale]) {
9
- throw new Error(`Default locale "${config.defaultLocale}" not found in messages`);
10
- }
11
- const state = {
12
- locale: config.defaultLocale,
13
- fallbackLocale: config.fallbackLocale || config.defaultLocale,
14
- messages: config.messages
15
- };
16
- const reactiveState = deps.createReactive(state, {
17
- subscribers: new Set(),
18
- notify: () => {
19
- },
20
- subscribe: (listener) => {
21
- reactiveState.subscribers.add(listener);
22
- return () => reactiveState.subscribers.delete(listener);
23
- },
24
- dispose: () => reactiveState.subscribers.clear(),
25
- createProxy: (target, reactiveDeps) => new Proxy(target, {
26
- get(target, property) {
27
- if (property === 'subscribe' || property === 'notify' ||
28
- property === 'dispose' || property === 'subscribers') {
29
- return reactiveDeps[property];
30
- }
31
- return target[property];
32
- },
33
- set(target, property, value) {
34
- const oldValue = target[property];
35
- target[property] = value;
36
- if (property === 'locale') {
37
- reactiveDeps.notify();
38
- deps.log(`语言已切换到: ${value}`);
39
- }
40
- return true;
41
- },
42
- deleteProperty(target, property) {
43
- if (property in target) {
44
- delete target[property];
45
- reactiveDeps.notify();
46
- return true;
47
- }
48
- return false;
49
- }
50
- }),
51
- getChangePath: (target, property) => [String(property)]
52
- });
53
- function getNestedValue(obj, path) {
54
- return path.split('.').reduce((current, key) => {
55
- return current && current[key] !== undefined ? current[key] : undefined;
56
- }, obj);
57
- }
58
- function t(key, params) {
59
- let message = getNestedValue(reactiveState.messages[reactiveState.locale], key);
60
- if (message === undefined && reactiveState.fallbackLocale !== reactiveState.locale) {
61
- message = getNestedValue(reactiveState.messages[reactiveState.fallbackLocale], key);
62
- }
63
- if (message === undefined) {
64
- deps.warn(`Translation key "${key}" not found for locale "${reactiveState.locale}"`);
65
- return key;
66
- }
67
- if (params && typeof message === 'string') {
68
- return message.replace(/\{(\w+)\}/g, (match, paramKey) => {
69
- return params[paramKey] !== undefined ? String(params[paramKey]) : match;
70
- });
71
- }
72
- return String(message);
73
- }
74
- function setLocale(locale) {
75
- if (!reactiveState.messages[locale]) {
76
- deps.warn(`Locale "${locale}" not found in messages`);
77
- return;
78
- }
79
- reactiveState.locale = locale;
80
- }
81
- function getLocales() {
82
- return Object.keys(reactiveState.messages);
83
- }
84
- function hasLocale(locale) {
85
- return locale in reactiveState.messages;
86
- }
87
- function addMessages(locale, messages) {
88
- if (reactiveState.messages[locale]) {
89
- reactiveState.messages[locale] = {
90
- ...reactiveState.messages[locale],
91
- ...messages
92
- };
93
- }
94
- else {
95
- reactiveState.messages[locale] = messages;
96
- }
97
- deps.log(`已添加语言包: ${locale}`);
98
- }
99
- function getMessages() {
100
- return reactiveState.messages[reactiveState.locale] || {};
101
- }
102
- return {
103
- get locale() {
104
- return reactiveState.locale;
105
- },
106
- set locale(value) {
107
- setLocale(value);
108
- },
109
- t,
110
- setLocale,
111
- getLocales,
112
- hasLocale,
113
- addMessages,
114
- getMessages,
115
- subscribe: reactiveState.subscribe,
116
- dispose: reactiveState.dispose
117
- };
118
- }
119
- //# sourceMappingURL=i18n.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../../src/functions/utils/i18n.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export declare function memoize<T extends (...args: any[]) => any>(func: T): T;
@@ -1,13 +0,0 @@
1
- export function memoize(func) {
2
- const cache = new Map();
3
- return ((...args) => {
4
- const key = JSON.stringify(args);
5
- if (cache.has(key)) {
6
- return cache.get(key);
7
- }
8
- const result = func(...args);
9
- cache.set(key, result);
10
- return result;
11
- });
12
- }
13
- //# sourceMappingURL=memoize.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"memoize.js","sourceRoot":"","sources":["../../../src/functions/utils/memoize.ts"],"names":[],"mappings":"AAWA,MAAM,UAAU,OAAO,CACrB,IAAO;IAEP,MAAM,KAAK,GAAG,IAAI,GAAG,EAAyB,CAAA;IAE9C,OAAO,CAAC,CAAC,GAAG,IAAmB,EAAiB,EAAE;QAChD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QAEhC,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAE,CAAA;QACxB,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAA;QAC5B,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;QACtB,OAAO,MAAM,CAAA;IACf,CAAC,CAAM,CAAA;AACT,CAAC"}
@@ -1,5 +0,0 @@
1
- export declare function myInstanceof(obj: any, constructor: any): boolean;
2
- export declare function myInstanceofLegacy(obj: any, constructor: any): boolean;
3
- export declare function myInstanceofSymbol(obj: any, constructor: any): boolean;
4
- export declare function getPrototypeChain(obj: any): any[];
5
- export declare function isDirectInstanceof(obj: any, constructor: any): boolean;
@@ -1,56 +0,0 @@
1
- export function myInstanceof(obj, constructor) {
2
- if (obj === null || obj === undefined) {
3
- return false;
4
- }
5
- if (typeof constructor !== 'function') {
6
- throw new TypeError('Right-hand side of instanceof is not callable');
7
- }
8
- const prototype = constructor.prototype;
9
- let proto = Object.getPrototypeOf(obj);
10
- while (proto !== null) {
11
- if (proto === prototype) {
12
- return true;
13
- }
14
- proto = Object.getPrototypeOf(proto);
15
- }
16
- return false;
17
- }
18
- export function myInstanceofLegacy(obj, constructor) {
19
- if (obj === null || obj === undefined) {
20
- return false;
21
- }
22
- if (typeof constructor !== 'function') {
23
- throw new TypeError('Right-hand side of instanceof is not callable');
24
- }
25
- const prototype = constructor.prototype;
26
- let proto = obj.__proto__;
27
- while (proto) {
28
- if (proto === prototype) {
29
- return true;
30
- }
31
- proto = proto.__proto__;
32
- }
33
- return false;
34
- }
35
- export function myInstanceofSymbol(obj, constructor) {
36
- if (constructor[Symbol.hasInstance]) {
37
- return constructor[Symbol.hasInstance](obj);
38
- }
39
- return myInstanceof(obj, constructor);
40
- }
41
- export function getPrototypeChain(obj) {
42
- const chain = [];
43
- let proto = Object.getPrototypeOf(obj);
44
- while (proto !== null) {
45
- chain.push(proto);
46
- proto = Object.getPrototypeOf(proto);
47
- }
48
- return chain;
49
- }
50
- export function isDirectInstanceof(obj, constructor) {
51
- if (obj === null || obj === undefined) {
52
- return false;
53
- }
54
- return Object.getPrototypeOf(obj) === constructor.prototype;
55
- }
56
- //# sourceMappingURL=myInstanceof.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"myInstanceof.js","sourceRoot":"","sources":["../../../src/functions/utils/myInstanceof.ts"],"names":[],"mappings":"AA0BA,MAAM,UAAU,YAAY,CAAC,GAAQ,EAAE,WAAgB;IAErD,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtC,OAAO,KAAK,CAAA;IACd,CAAC;IAGD,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE,CAAC;QACtC,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAA;IACtE,CAAC;IAGD,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,CAAA;IAGvC,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;IAGtC,OAAO,KAAK,KAAK,IAAI,EAAE,CAAC;QACtB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,IAAI,CAAA;QACb,CAAC;QACD,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;IACtC,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAKD,MAAM,UAAU,kBAAkB,CAAC,GAAQ,EAAE,WAAgB;IAC3D,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtC,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE,CAAC;QACtC,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAA;IACtE,CAAC;IAED,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,CAAA;IACvC,IAAI,KAAK,GAAI,GAAW,CAAC,SAAS,CAAA;IAElC,OAAO,KAAK,EAAE,CAAC;QACb,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,IAAI,CAAA;QACb,CAAC;QACD,KAAK,GAAG,KAAK,CAAC,SAAS,CAAA;IACzB,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAKD,MAAM,UAAU,kBAAkB,CAAC,GAAQ,EAAE,WAAgB;IAE3D,IAAI,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;QACpC,OAAO,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAA;IAC7C,CAAC;IAGD,OAAO,YAAY,CAAC,GAAG,EAAE,WAAW,CAAC,CAAA;AACvC,CAAC;AAKD,MAAM,UAAU,iBAAiB,CAAC,GAAQ;IACxC,MAAM,KAAK,GAAU,EAAE,CAAA;IACvB,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;IAEtC,OAAO,KAAK,KAAK,IAAI,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACjB,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;IACtC,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAKD,MAAM,UAAU,kBAAkB,CAAC,GAAQ,EAAE,WAAgB;IAC3D,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtC,OAAO,KAAK,CAAA;IACd,CAAC;IAED,OAAO,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,WAAW,CAAC,SAAS,CAAA;AAC7D,CAAC"}
@@ -1,3 +0,0 @@
1
- export declare function myNew<T>(constructor: new (...args: any[]) => T, ...args: any[]): T;
2
- export declare function myNewDetailed<T>(constructor: new (...args: any[]) => T, ...args: any[]): T;
3
- export declare function myNewReflect<T>(constructor: new (...args: any[]) => T, ...args: any[]): T;
@@ -1,19 +0,0 @@
1
- export function myNew(constructor, ...args) {
2
- const obj = Object.create(constructor.prototype);
3
- const result = constructor.apply(obj, args);
4
- return (result !== null && typeof result === 'object') ? result : obj;
5
- }
6
- export function myNewDetailed(constructor, ...args) {
7
- const obj = {};
8
- Object.setPrototypeOf(obj, constructor.prototype);
9
- const result = constructor.apply(obj, args);
10
- const isObject = result !== null && typeof result === 'object';
11
- const isFunction = typeof result === 'function';
12
- return (isObject || isFunction) ? result : obj;
13
- }
14
- export function myNewReflect(constructor, ...args) {
15
- const obj = Object.create(constructor.prototype);
16
- const result = Reflect.apply(constructor, obj, args);
17
- return (result !== null && typeof result === 'object') ? result : obj;
18
- }
19
- //# sourceMappingURL=myNew.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"myNew.js","sourceRoot":"","sources":["../../../src/functions/utils/myNew.ts"],"names":[],"mappings":"AA6BA,MAAM,UAAU,KAAK,CACnB,WAAsC,EACtC,GAAG,IAAW;IAGd,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;IAGhD,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IAG3C,OAAO,CAAC,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAA;AACvE,CAAC;AAKD,MAAM,UAAU,aAAa,CAC3B,WAAsC,EACtC,GAAG,IAAW;IAGd,MAAM,GAAG,GAAQ,EAAE,CAAA;IAInB,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,WAAW,CAAC,SAAS,CAAC,CAAA;IAKjD,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IAK3C,MAAM,QAAQ,GAAG,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAA;IAC9D,MAAM,UAAU,GAAG,OAAO,MAAM,KAAK,UAAU,CAAA;IAE/C,OAAO,CAAC,QAAQ,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAA;AAChD,CAAC;AAKD,MAAM,UAAU,YAAY,CAC1B,WAAsC,EACtC,GAAG,IAAW;IAEd,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;IAChD,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;IACpD,OAAO,CAAC,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAA;AACvE,CAAC"}
@@ -1 +0,0 @@
1
- export declare function once<T extends (...args: any[]) => any>(func: T): T;
@@ -1,13 +0,0 @@
1
- export function once(func) {
2
- let hasBeenCalled = false;
3
- let result;
4
- return ((...args) => {
5
- if (hasBeenCalled) {
6
- return result;
7
- }
8
- hasBeenCalled = true;
9
- result = func(...args);
10
- return result;
11
- });
12
- }
13
- //# sourceMappingURL=once.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"once.js","sourceRoot":"","sources":["../../../src/functions/utils/once.ts"],"names":[],"mappings":"AAWA,MAAM,UAAU,IAAI,CAAoC,IAAO;IAC7D,IAAI,aAAa,GAAG,KAAK,CAAA;IACzB,IAAI,MAAqB,CAAA;IAEzB,OAAO,CAAC,CAAC,GAAG,IAAmB,EAAiB,EAAE;QAChD,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO,MAAM,CAAA;QACf,CAAC;QAED,aAAa,GAAG,IAAI,CAAA;QACpB,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAA;QACtB,OAAO,MAAM,CAAA;IACf,CAAC,CAAM,CAAA;AACT,CAAC"}
@@ -1 +0,0 @@
1
- export declare function partial<T extends (...args: any[]) => any>(fn: T, args: any[], direction?: 'left' | 'right'): (...args: any[]) => any;
@@ -1,13 +0,0 @@
1
- export function partial(fn, args, direction = 'left') {
2
- if (args.length === 0)
3
- return fn;
4
- return (...moreArgs) => {
5
- if (direction === 'left') {
6
- return fn(...args, ...moreArgs);
7
- }
8
- else {
9
- return fn(...moreArgs, ...args);
10
- }
11
- };
12
- }
13
- //# sourceMappingURL=partial.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"partial.js","sourceRoot":"","sources":["../../../src/functions/utils/partial.ts"],"names":[],"mappings":"AAcA,MAAM,UAAU,OAAO,CACrB,EAAK,EACL,IAAW,EACX,YAA8B,MAAM;IAEpC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IAEhC,OAAO,CAAC,GAAG,QAAe,EAAE,EAAE;QAC5B,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;YACzB,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAA;QACjC,CAAC;aAAM,CAAC;YACN,OAAO,EAAE,CAAC,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAA;QACjC,CAAC;IACH,CAAC,CAAA;AACH,CAAC"}
@@ -1,40 +0,0 @@
1
- import type { CreateReactive } from '../../../types/reactive';
2
- export interface Permission {
3
- code: string;
4
- name: string;
5
- description?: string;
6
- }
7
- export interface Role {
8
- code: string;
9
- name: string;
10
- permissions: string[];
11
- description?: string;
12
- }
13
- export interface PermissionConfig {
14
- defaultRole: string;
15
- permissions: Permission[];
16
- roles: Role[];
17
- strict?: boolean;
18
- }
19
- export interface PermissionDeps {
20
- createReactive: CreateReactive;
21
- log: (...args: any[]) => void;
22
- warn: (...args: any[]) => void;
23
- }
24
- export interface PermissionInstance {
25
- currentRole: string;
26
- hasPermission: (permissionCode: string) => boolean;
27
- hasAllPermissions: (permissionCodes: string[]) => boolean;
28
- hasAnyPermission: (permissionCodes: string[]) => boolean;
29
- setRole: (roleCode: string) => void;
30
- getCurrentRole: () => Role | undefined;
31
- getCurrentPermissions: () => Permission[];
32
- getRoles: () => Role[];
33
- getPermissions: () => Permission[];
34
- hasRole: (roleCode: string) => boolean;
35
- addRole: (role: Role) => void;
36
- addPermission: (permission: Permission) => void;
37
- addPermissionToRole: (roleCode: string, permissionCode: string) => void;
38
- removePermissionFromRole: (roleCode: string, permissionCode: string) => void;
39
- }
40
- export declare function createPermission(config: PermissionConfig, deps: PermissionDeps): PermissionInstance;
@@ -1,189 +0,0 @@
1
- export function createPermission(config, deps) {
2
- if (!config.defaultRole) {
3
- throw new Error('defaultRole is required');
4
- }
5
- if (!config.roles || config.roles.length === 0) {
6
- throw new Error('roles is required and cannot be empty');
7
- }
8
- const defaultRoleExists = config.roles.some(role => role.code === config.defaultRole);
9
- if (!defaultRoleExists) {
10
- throw new Error(`Default role "${config.defaultRole}" not found in roles`);
11
- }
12
- const state = {
13
- currentRole: config.defaultRole,
14
- permissions: config.permissions || [],
15
- roles: config.roles,
16
- strict: config.strict || false
17
- };
18
- const permissionMap = new Map();
19
- state.permissions.forEach(permission => {
20
- permissionMap.set(permission.code, permission);
21
- });
22
- const roleMap = new Map();
23
- state.roles.forEach(role => {
24
- roleMap.set(role.code, role);
25
- });
26
- const reactiveState = deps.createReactive(state, {
27
- subscribers: new Set(),
28
- notify: () => {
29
- },
30
- subscribe: (listener) => {
31
- reactiveState.subscribers.add(listener);
32
- return () => reactiveState.subscribers.delete(listener);
33
- },
34
- dispose: () => reactiveState.subscribers.clear(),
35
- createProxy: (target, reactiveDeps) => new Proxy(target, {
36
- get(target, property) {
37
- if (property === 'subscribe' || property === 'notify' ||
38
- property === 'dispose' || property === 'subscribers') {
39
- return reactiveDeps[property];
40
- }
41
- return target[property];
42
- },
43
- set(target, property, value) {
44
- const oldValue = target[property];
45
- target[property] = value;
46
- if (property === 'currentRole') {
47
- reactiveDeps.notify();
48
- const role = roleMap.get(value);
49
- deps.log(`角色已切换到: ${role?.name || value}`);
50
- }
51
- return true;
52
- },
53
- deleteProperty(target, property) {
54
- if (property in target) {
55
- delete target[property];
56
- reactiveDeps.notify();
57
- return true;
58
- }
59
- return false;
60
- }
61
- }),
62
- getChangePath: (target, property) => [String(property)]
63
- });
64
- function hasPermission(permissionCode) {
65
- const role = roleMap.get(reactiveState.currentRole);
66
- if (!role) {
67
- deps.warn(`Role "${reactiveState.currentRole}" not found`);
68
- return false;
69
- }
70
- if (reactiveState.strict && !permissionMap.has(permissionCode)) {
71
- deps.warn(`Permission "${permissionCode}" not defined`);
72
- return false;
73
- }
74
- return role.permissions.includes(permissionCode);
75
- }
76
- function hasAllPermissions(permissionCodes) {
77
- return permissionCodes.every(code => hasPermission(code));
78
- }
79
- function hasAnyPermission(permissionCodes) {
80
- return permissionCodes.some(code => hasPermission(code));
81
- }
82
- function setRole(roleCode) {
83
- if (!roleMap.has(roleCode)) {
84
- deps.warn(`Role "${roleCode}" not found`);
85
- return;
86
- }
87
- reactiveState.currentRole = roleCode;
88
- }
89
- function getCurrentRole() {
90
- return roleMap.get(reactiveState.currentRole);
91
- }
92
- function getCurrentPermissions() {
93
- const role = getCurrentRole();
94
- if (!role) {
95
- return [];
96
- }
97
- return role.permissions
98
- .map(code => permissionMap.get(code))
99
- .filter((p) => p !== undefined);
100
- }
101
- function getRoles() {
102
- return reactiveState.roles;
103
- }
104
- function getPermissions() {
105
- return reactiveState.permissions;
106
- }
107
- function hasRole(roleCode) {
108
- return roleMap.has(roleCode);
109
- }
110
- function addRole(role) {
111
- if (roleMap.has(role.code)) {
112
- deps.warn(`Role "${role.code}" already exists`);
113
- return;
114
- }
115
- reactiveState.roles.push(role);
116
- roleMap.set(role.code, role);
117
- deps.log(`已添加角色: ${role.name} (${role.code})`);
118
- }
119
- function addPermission(permission) {
120
- if (permissionMap.has(permission.code)) {
121
- deps.warn(`Permission "${permission.code}" already exists`);
122
- return;
123
- }
124
- reactiveState.permissions.push(permission);
125
- permissionMap.set(permission.code, permission);
126
- deps.log(`已添加权限: ${permission.name} (${permission.code})`);
127
- }
128
- function addPermissionToRole(roleCode, permissionCode) {
129
- const role = roleMap.get(roleCode);
130
- if (!role) {
131
- deps.warn(`Role "${roleCode}" not found`);
132
- return;
133
- }
134
- if (reactiveState.strict && !permissionMap.has(permissionCode)) {
135
- deps.warn(`Permission "${permissionCode}" not defined`);
136
- return;
137
- }
138
- if (role.permissions.includes(permissionCode)) {
139
- deps.warn(`Role "${roleCode}" already has permission "${permissionCode}"`);
140
- return;
141
- }
142
- role.permissions.push(permissionCode);
143
- deps.log(`已为角色 "${role.name}" 添加权限 "${permissionCode}"`);
144
- if (roleCode === reactiveState.currentRole) {
145
- reactiveState.notify();
146
- }
147
- }
148
- function removePermissionFromRole(roleCode, permissionCode) {
149
- const role = roleMap.get(roleCode);
150
- if (!role) {
151
- deps.warn(`Role "${roleCode}" not found`);
152
- return;
153
- }
154
- const index = role.permissions.indexOf(permissionCode);
155
- if (index === -1) {
156
- deps.warn(`Role "${roleCode}" does not have permission "${permissionCode}"`);
157
- return;
158
- }
159
- role.permissions.splice(index, 1);
160
- deps.log(`已从角色 "${role.name}" 移除权限 "${permissionCode}"`);
161
- if (roleCode === reactiveState.currentRole) {
162
- reactiveState.notify();
163
- }
164
- }
165
- return {
166
- get currentRole() {
167
- return reactiveState.currentRole;
168
- },
169
- set currentRole(value) {
170
- setRole(value);
171
- },
172
- hasPermission,
173
- hasAllPermissions,
174
- hasAnyPermission,
175
- setRole,
176
- getCurrentRole,
177
- getCurrentPermissions,
178
- getRoles,
179
- getPermissions,
180
- hasRole,
181
- addRole,
182
- addPermission,
183
- addPermissionToRole,
184
- removePermissionFromRole,
185
- subscribe: reactiveState.subscribe,
186
- dispose: reactiveState.dispose
187
- };
188
- }
189
- //# sourceMappingURL=permission.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"permission.js","sourceRoot":"","sources":["../../../src/functions/utils/permission.ts"],"names":[],"mappings":"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"}