zcw-shared 1.20.0 → 1.21.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 (114) hide show
  1. package/dist/functions/array-object/deepClone.d.ts +12 -0
  2. package/dist/functions/array-object/deepClone.js +131 -0
  3. package/dist/functions/array-object/deepClone.js.map +1 -0
  4. package/dist/functions/array-object/flatten.d.ts +7 -0
  5. package/dist/functions/array-object/flatten.js +60 -0
  6. package/dist/functions/array-object/flatten.js.map +1 -0
  7. package/dist/functions/array-object/unique.d.ts +10 -0
  8. package/dist/functions/array-object/unique.js +85 -0
  9. package/dist/functions/array-object/unique.js.map +1 -0
  10. package/dist/functions/data-structures/Heap.d.ts +11 -0
  11. package/dist/functions/data-structures/Heap.js +91 -0
  12. package/dist/functions/data-structures/Heap.js.map +1 -0
  13. package/dist/functions/data-structures/LinkedList.d.ts +18 -0
  14. package/dist/functions/data-structures/LinkedList.js +135 -0
  15. package/dist/functions/data-structures/LinkedList.js.map +1 -0
  16. package/dist/functions/data-structures/PriorityQueue.d.ts +14 -0
  17. package/dist/functions/data-structures/PriorityQueue.js +77 -0
  18. package/dist/functions/data-structures/PriorityQueue.js.map +1 -0
  19. package/dist/functions/data-structures/Queue.d.ts +10 -0
  20. package/dist/functions/data-structures/Queue.js +27 -0
  21. package/dist/functions/data-structures/Queue.js.map +1 -0
  22. package/dist/functions/data-structures/Stack.d.ts +10 -0
  23. package/dist/functions/data-structures/Stack.js +27 -0
  24. package/dist/functions/data-structures/Stack.js.map +1 -0
  25. package/dist/functions/design-tokens/buildTokens.d.ts +76 -0
  26. package/dist/functions/design-tokens/buildTokens.js +183 -0
  27. package/dist/functions/design-tokens/buildTokens.js.map +1 -0
  28. package/dist/functions/design-tokens/generateVariables.d.ts +7 -0
  29. package/dist/functions/design-tokens/generateVariables.js +135 -0
  30. package/dist/functions/design-tokens/generateVariables.js.map +1 -0
  31. package/dist/functions/design-tokens/mixColors.d.ts +1 -0
  32. package/dist/functions/design-tokens/mixColors.js +38 -0
  33. package/dist/functions/design-tokens/mixColors.js.map +1 -0
  34. package/dist/functions/design-tokens/parseDesignTokens.d.ts +10 -0
  35. package/dist/functions/design-tokens/parseDesignTokens.js +216 -0
  36. package/dist/functions/design-tokens/parseDesignTokens.js.map +1 -0
  37. package/dist/functions/functional/compose.d.ts +1 -0
  38. package/dist/functions/functional/compose.js +10 -0
  39. package/dist/functions/functional/compose.js.map +1 -0
  40. package/dist/functions/functional/curry.d.ts +1 -0
  41. package/dist/functions/functional/curry.js +13 -0
  42. package/dist/functions/functional/curry.js.map +1 -0
  43. package/dist/functions/functional/pipe.d.ts +1 -0
  44. package/dist/functions/functional/pipe.js +10 -0
  45. package/dist/functions/functional/pipe.js.map +1 -0
  46. package/dist/functions/performance/debounce.d.ts +5 -0
  47. package/dist/functions/performance/debounce.js +12 -0
  48. package/dist/functions/performance/debounce.js.map +1 -0
  49. package/dist/functions/performance/memoize.d.ts +1 -0
  50. package/dist/functions/performance/memoize.js +13 -0
  51. package/dist/functions/performance/memoize.js.map +1 -0
  52. package/dist/functions/performance/throttle.d.ts +1 -0
  53. package/dist/functions/performance/throttle.js +11 -0
  54. package/dist/functions/performance/throttle.js.map +1 -0
  55. package/dist/functions/platform/tencent-cloud/deploy.tcb.d.ts +13 -0
  56. package/dist/functions/platform/tencent-cloud/deploy.tcb.js +46 -0
  57. package/dist/functions/platform/tencent-cloud/deploy.tcb.js.map +1 -0
  58. package/dist/functions/platform/tencent-cloud/getSecret.d.ts +4 -0
  59. package/dist/functions/platform/tencent-cloud/getSecret.js +19 -0
  60. package/dist/functions/platform/tencent-cloud/getSecret.js.map +1 -0
  61. package/dist/functions/platform/uniapp/app-plus/buildAndroidApp.d.ts +27 -0
  62. package/dist/functions/platform/uniapp/app-plus/buildAndroidApp.js +287 -0
  63. package/dist/functions/platform/uniapp/app-plus/buildAndroidApp.js.map +1 -0
  64. package/dist/functions/platform/uniapp/build.d.ts +21 -0
  65. package/dist/functions/platform/uniapp/build.js +83 -0
  66. package/dist/functions/platform/uniapp/build.js.map +1 -0
  67. package/dist/functions/platform/uniapp/detectAndroidProjectStructure.d.ts +11 -0
  68. package/dist/functions/platform/uniapp/detectAndroidProjectStructure.js +30 -0
  69. package/dist/functions/platform/uniapp/detectAndroidProjectStructure.js.map +1 -0
  70. package/dist/functions/platform/uniapp/detectProjectType.d.ts +20 -0
  71. package/dist/functions/platform/uniapp/detectProjectType.js +68 -0
  72. package/dist/functions/platform/uniapp/detectProjectType.js.map +1 -0
  73. package/dist/functions/platform/uniapp/parseManifest.d.ts +18 -0
  74. package/dist/functions/platform/uniapp/parseManifest.js +49 -0
  75. package/dist/functions/platform/uniapp/parseManifest.js.map +1 -0
  76. package/dist/functions/platform/uniapp/waitForPages.d.ts +7 -0
  77. package/dist/functions/platform/uniapp/waitForPages.js +20 -0
  78. package/dist/functions/platform/uniapp/waitForPages.js.map +1 -0
  79. package/dist/functions/principles/functionBind.d.ts +4 -0
  80. package/dist/functions/principles/functionBind.js +33 -0
  81. package/dist/functions/principles/functionBind.js.map +1 -0
  82. package/dist/functions/principles/myInstanceof.d.ts +5 -0
  83. package/dist/functions/principles/myInstanceof.js +56 -0
  84. package/dist/functions/principles/myInstanceof.js.map +1 -0
  85. package/dist/functions/principles/myNew.d.ts +3 -0
  86. package/dist/functions/principles/myNew.js +19 -0
  87. package/dist/functions/principles/myNew.js.map +1 -0
  88. package/dist/functions/utils/createI18n.d.ts +2 -0
  89. package/dist/functions/utils/createI18n.js +97 -0
  90. package/dist/functions/utils/createI18n.js.map +1 -0
  91. package/dist/functions/utils/createReactive.d.ts +10 -0
  92. package/dist/functions/utils/createReactive.js +50 -0
  93. package/dist/functions/utils/createReactive.js.map +1 -0
  94. package/dist/functions/utils/diff.d.ts +25 -0
  95. package/dist/functions/utils/diff.js +316 -0
  96. package/dist/functions/utils/diff.js.map +1 -0
  97. package/dist/functions/utils/formatString.d.ts +5 -0
  98. package/dist/functions/utils/formatString.js +9 -0
  99. package/dist/functions/utils/formatString.js.map +1 -0
  100. package/dist/functions/utils/i18n.d.ts +27 -0
  101. package/dist/functions/utils/i18n.js +119 -0
  102. package/dist/functions/utils/i18n.js.map +1 -0
  103. package/dist/functions/utils/permission.d.ts +40 -0
  104. package/dist/functions/utils/permission.js +189 -0
  105. package/dist/functions/utils/permission.js.map +1 -0
  106. package/dist/functions/utils/pinia.d.ts +52 -0
  107. package/dist/functions/utils/pinia.js +183 -0
  108. package/dist/functions/utils/pinia.js.map +1 -0
  109. package/dist/hooks/usePermission.d.ts +7 -0
  110. package/dist/hooks/usePermission.js +123 -0
  111. package/dist/hooks/usePermission.js.map +1 -0
  112. package/package.json +12 -2
  113. package/references/xlsx.d.ts +51 -0
  114. package/types/reactive.d.ts +67 -0
@@ -0,0 +1,20 @@
1
+ export function waitForPages(deps, timeout = 5000) {
2
+ return new Promise((resolve, reject) => {
3
+ const startTime = Date.now();
4
+ const checkPages = () => {
5
+ const pages = deps.getCurrentPages();
6
+ if (pages.length > 0) {
7
+ resolve(pages);
8
+ return;
9
+ }
10
+ if (Date.now() - startTime > timeout) {
11
+ reject(new Error('等待页面栈超时'));
12
+ return;
13
+ }
14
+ deps.setTimeout(checkPages, 100);
15
+ };
16
+ checkPages();
17
+ });
18
+ }
19
+ ;
20
+ //# sourceMappingURL=waitForPages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"waitForPages.js","sourceRoot":"","sources":["../../../../src/functions/platform/uniapp/waitForPages.ts"],"names":[],"mappings":"AAwBA,MAAM,UAAU,YAAY,CAAC,IAAsB,EAAE,OAAO,GAAG,IAAI;IACjE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,MAAM,UAAU,GAAG,GAAG,EAAE;YACtB,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;YAErC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,OAAO,CAAC,KAAK,CAAC,CAAC;gBACf,OAAO;YACT,CAAC;YAGD,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,OAAO,EAAE,CAAC;gBACrC,MAAM,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC7B,OAAO;YACT,CAAC;YAGD,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QACnC,CAAC,CAAC;QAEF,UAAU,EAAE,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC;AAAA,CAAC"}
@@ -0,0 +1,4 @@
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;
@@ -0,0 +1,33 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functionBind.js","sourceRoot":"","sources":["../../../src/functions/principles/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"}
@@ -0,0 +1,5 @@
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;
@@ -0,0 +1,56 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"myInstanceof.js","sourceRoot":"","sources":["../../../src/functions/principles/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"}
@@ -0,0 +1,3 @@
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;
@@ -0,0 +1,19 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"myNew.js","sourceRoot":"","sources":["../../../src/functions/principles/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"}
@@ -0,0 +1,2 @@
1
+ import type { CreateI18n } from '../../../types/i18n.d';
2
+ export declare const createI18n: CreateI18n;
@@ -0,0 +1,97 @@
1
+ import { createReactive } from './createReactive';
2
+ export const createI18n = (initialState, deps) => {
3
+ const reactiveI18n = createReactive(initialState, {
4
+ subscribers: new Set(),
5
+ notify: () => {
6
+ },
7
+ subscribe: (listener) => {
8
+ reactiveI18n.subscribers.add(listener);
9
+ return () => reactiveI18n.subscribers.delete(listener);
10
+ },
11
+ dispose: () => reactiveI18n.subscribers.clear(),
12
+ createProxy: (target, deps) => new Proxy(target, {
13
+ get(target, property) {
14
+ if (property === 'subscribe' || property === 'notify' ||
15
+ property === 'dispose' || property === 'subscribers') {
16
+ return deps[property];
17
+ }
18
+ return target[property];
19
+ },
20
+ set(target, property, value) {
21
+ if (property === 'currentLang') {
22
+ const newLang = String(value);
23
+ if (newLang !== target.currentLang) {
24
+ ;
25
+ target[property] = newLang;
26
+ deps.notify();
27
+ return true;
28
+ }
29
+ return true;
30
+ }
31
+ ;
32
+ target[property] = value;
33
+ deps.notify();
34
+ return true;
35
+ }
36
+ }),
37
+ getChangePath: (target, property) => [String(property)]
38
+ });
39
+ const t = (key, params) => {
40
+ const { currentLang, messages, fallbackLang } = reactiveI18n;
41
+ let message = messages[currentLang]?.[key];
42
+ if (!message && fallbackLang) {
43
+ message = messages[fallbackLang]?.[key];
44
+ }
45
+ if (!message) {
46
+ message = key;
47
+ }
48
+ if (params && Object.keys(params).length > 0) {
49
+ message = deps.format(message, params);
50
+ }
51
+ return message;
52
+ };
53
+ const addMessages = (lang, messages) => {
54
+ if (!reactiveI18n.messages[lang]) {
55
+ ;
56
+ reactiveI18n.messages[lang] = {};
57
+ }
58
+ Object.assign(reactiveI18n.messages[lang], messages);
59
+ };
60
+ const removeMessages = (lang) => {
61
+ if (reactiveI18n.messages[lang]) {
62
+ delete reactiveI18n.messages[lang];
63
+ if (reactiveI18n.currentLang === lang) {
64
+ const fallbackLang = reactiveI18n.fallbackLang;
65
+ if (fallbackLang && reactiveI18n.messages[fallbackLang]) {
66
+ reactiveI18n.currentLang = fallbackLang;
67
+ }
68
+ else {
69
+ const availableLangs = Object.keys(reactiveI18n.messages);
70
+ if (availableLangs.length > 0) {
71
+ reactiveI18n.currentLang = availableLangs[0];
72
+ }
73
+ }
74
+ }
75
+ }
76
+ };
77
+ const setLang = (lang) => {
78
+ if (reactiveI18n.messages[lang]) {
79
+ reactiveI18n.currentLang = lang;
80
+ }
81
+ else {
82
+ deps.console?.warn(`Language "${lang}" is not available. Available languages:`, Object.keys(reactiveI18n.messages));
83
+ }
84
+ };
85
+ const getSupportedLangs = () => {
86
+ return Object.keys(reactiveI18n.messages);
87
+ };
88
+ Object.assign(reactiveI18n, {
89
+ t,
90
+ addMessages,
91
+ removeMessages,
92
+ setLang,
93
+ getSupportedLangs
94
+ });
95
+ return reactiveI18n;
96
+ };
97
+ //# sourceMappingURL=createI18n.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createI18n.js","sourceRoot":"","sources":["../../../src/functions/utils/createI18n.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { CreateReactive, ReactiveDeps } from '../../../types/reactive';
2
+ export interface CreateReactiveDeps {
3
+ subscribers: Set<(...args: any[]) => void>;
4
+ notify: () => void;
5
+ subscribe: (listener: () => void) => () => void;
6
+ dispose: () => void;
7
+ createProxy: <T extends Record<string, any>>(target: T, deps: ReactiveDeps) => T;
8
+ getChangePath: (target: any, property: string | symbol) => string[];
9
+ }
10
+ export declare const createReactive: CreateReactive;
@@ -0,0 +1,50 @@
1
+ export const createReactive = (target, deps) => {
2
+ const subscribers = new Set();
3
+ const notify = () => {
4
+ subscribers.forEach(listener => listener());
5
+ };
6
+ const subscribe = (listener) => {
7
+ subscribers.add(listener);
8
+ return () => subscribers.delete(listener);
9
+ };
10
+ const dispose = () => {
11
+ subscribers.clear();
12
+ };
13
+ const getChangePath = (target, property) => {
14
+ return [String(property)];
15
+ };
16
+ const createProxy = (target, deps) => {
17
+ return new Proxy(target, {
18
+ get(target, property) {
19
+ if (property === 'subscribe' || property === 'notify' || property === 'dispose' || property === 'subscribers') {
20
+ return deps[property];
21
+ }
22
+ return target[property];
23
+ },
24
+ set(target, property, value) {
25
+ const oldValue = target[property];
26
+ target[property] = value;
27
+ deps.notify();
28
+ return true;
29
+ },
30
+ deleteProperty(target, property) {
31
+ if (property in target) {
32
+ delete target[property];
33
+ deps.notify();
34
+ return true;
35
+ }
36
+ return false;
37
+ }
38
+ });
39
+ };
40
+ const reactiveDeps = {
41
+ subscribers,
42
+ notify,
43
+ subscribe,
44
+ dispose,
45
+ getChangePath,
46
+ createProxy
47
+ };
48
+ return createProxy(target, reactiveDeps);
49
+ };
50
+ //# sourceMappingURL=createReactive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createReactive.js","sourceRoot":"","sources":["../../../src/functions/utils/createReactive.ts"],"names":[],"mappings":"AA4EA,MAAM,CAAC,MAAM,cAAc,GAAmB,CAC5C,MAAS,EACT,IAAwB,EACX,EAAE;IAEf,MAAM,WAAW,GAAG,IAAI,GAAG,EAA4B,CAAA;IAGvD,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC7C,CAAC,CAAA;IAGD,MAAM,SAAS,GAAG,CAAC,QAAoB,EAAgB,EAAE;QACvD,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACzB,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAC3C,CAAC,CAAA;IAGD,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,WAAW,CAAC,KAAK,EAAE,CAAA;IACrB,CAAC,CAAA;IAGD,MAAM,aAAa,GAAG,CAAC,MAAW,EAAE,QAAyB,EAAY,EAAE;QACzE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC3B,CAAC,CAAA;IAGD,MAAM,WAAW,GAAG,CAClB,MAAS,EACT,IAAkB,EACf,EAAE;QACL,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;YACvB,GAAG,CAAC,MAAM,EAAE,QAAQ;gBAElB,IAAI,QAAQ,KAAK,WAAW,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,aAAa,EAAE,CAAC;oBAC9G,OAAO,IAAI,CAAC,QAA8B,CAAC,CAAA;gBAC7C,CAAC;gBACD,OAAO,MAAM,CAAC,QAAmB,CAAC,CAAA;YACpC,CAAC;YACD,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK;gBACzB,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAmB,CAAC,CAC3C;gBAAC,MAAc,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAA;gBAGlC,IAAI,CAAC,MAAM,EAAE,CAAA;gBAEb,OAAO,IAAI,CAAA;YACb,CAAC;YACD,cAAc,CAAC,MAAM,EAAE,QAAQ;gBAC7B,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC;oBACvB,OAAO,MAAM,CAAC,QAAmB,CAAC,CAAA;oBAClC,IAAI,CAAC,MAAM,EAAE,CAAA;oBACb,OAAO,IAAI,CAAA;gBACb,CAAC;gBACD,OAAO,KAAK,CAAA;YACd,CAAC;SACF,CAAC,CAAA;IACJ,CAAC,CAAA;IAGD,MAAM,YAAY,GAAuB;QACvC,WAAW;QACX,MAAM;QACN,SAAS;QACT,OAAO;QACP,aAAa;QACb,WAAW;KACZ,CAAA;IAGD,OAAO,WAAW,CAAC,MAAM,EAAE,YAAY,CAAgB,CAAA;AACzD,CAAC,CAAA"}
@@ -0,0 +1,25 @@
1
+ export type DiffType = 'added' | 'deleted' | 'modified' | 'unchanged';
2
+ export interface DiffItem {
3
+ path: string;
4
+ type: DiffType;
5
+ oldValue?: any;
6
+ newValue?: any;
7
+ }
8
+ export interface DiffResult {
9
+ hasChanges: boolean;
10
+ changes: DiffItem[];
11
+ added: DiffItem[];
12
+ deleted: DiffItem[];
13
+ modified: DiffItem[];
14
+ unchanged: DiffItem[];
15
+ }
16
+ export interface DiffOptions {
17
+ deep?: boolean;
18
+ ignoreArrayOrder?: boolean;
19
+ includeUnchanged?: boolean;
20
+ maxDepth?: number;
21
+ comparator?: (a: any, b: any) => boolean;
22
+ }
23
+ export declare function diff(oldValue: any, newValue: any, options?: DiffOptions): DiffResult;
24
+ export declare function applyDiff(target: any, changes: DiffItem[]): any;
25
+ export declare function mergeDiff(...results: DiffResult[]): DiffResult;