zcw-shared 1.32.6 → 1.34.1

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 (300) hide show
  1. package/README.md +13 -13
  2. package/dist/functions/android/integrateFacebookLogin.d.ts +12 -0
  3. package/dist/functions/android/integrateFacebookLogin.js +91 -0
  4. package/dist/functions/android/integrateFacebookLogin.js.map +1 -0
  5. package/dist/functions/android/integrateGoogleLogin.d.ts +10 -0
  6. package/dist/functions/android/integrateGoogleLogin.js +199 -0
  7. package/dist/functions/android/integrateGoogleLogin.js.map +1 -0
  8. package/dist/functions/android/integrateMiuiLogin.d.ts +13 -0
  9. package/dist/functions/android/integrateMiuiLogin.js +115 -0
  10. package/dist/functions/android/integrateMiuiLogin.js.map +1 -0
  11. package/dist/functions/android/integrateQQLogin.d.ts +12 -0
  12. package/dist/functions/android/integrateQQLogin.js +130 -0
  13. package/dist/functions/android/integrateQQLogin.js.map +1 -0
  14. package/dist/functions/android/integrateShareTrace.d.ts +10 -0
  15. package/dist/functions/android/integrateShareTrace.js +181 -0
  16. package/dist/functions/android/integrateShareTrace.js.map +1 -0
  17. package/dist/functions/android/integrateSinaLogin.d.ts +13 -0
  18. package/dist/functions/android/integrateSinaLogin.js +85 -0
  19. package/dist/functions/android/integrateSinaLogin.js.map +1 -0
  20. package/dist/functions/android/integrateThirdPartyModule.d.ts +46 -0
  21. package/dist/functions/android/integrateThirdPartyModule.js +251 -0
  22. package/dist/functions/android/integrateThirdPartyModule.js.map +1 -0
  23. package/dist/functions/android/integrateUniverifyLogin.d.ts +11 -0
  24. package/dist/functions/android/integrateUniverifyLogin.js +314 -0
  25. package/dist/functions/android/integrateUniverifyLogin.js.map +1 -0
  26. package/dist/functions/android/integrateWechatLogin.d.ts +13 -0
  27. package/dist/functions/android/integrateWechatLogin.js +154 -0
  28. package/dist/functions/android/integrateWechatLogin.js.map +1 -0
  29. package/dist/functions/android/modifyManifest.d.ts +7 -0
  30. package/dist/functions/android/modifyManifest.js +24 -0
  31. package/dist/functions/android/modifyManifest.js.map +1 -1
  32. package/dist/functions/image/compressImageToWidth.d.ts +12 -0
  33. package/dist/functions/image/compressImageToWidth.js +44 -0
  34. package/dist/functions/image/compressImageToWidth.js.map +1 -0
  35. package/dist/functions/image/generateFavIcon.d.ts +8 -0
  36. package/dist/functions/image/generateFavIcon.js +13 -0
  37. package/dist/functions/image/generateFavIcon.js.map +1 -0
  38. package/dist/functions/image/renderBusinessLicense.d.ts +47 -0
  39. package/dist/functions/image/renderBusinessLicense.js +187 -0
  40. package/dist/functions/image/renderBusinessLicense.js.map +1 -0
  41. package/dist/functions/image/renderDrivingLicense.d.ts +48 -0
  42. package/dist/functions/image/renderDrivingLicense.js +201 -0
  43. package/dist/functions/image/renderDrivingLicense.js.map +1 -0
  44. package/dist/functions/image/renderLicensePlate.d.ts +47 -0
  45. package/dist/functions/image/renderLicensePlate.js +85 -0
  46. package/dist/functions/image/renderLicensePlate.js.map +1 -0
  47. package/dist/functions/tencent-cloud/deploy.tcb.js +1 -1
  48. package/dist/functions/tencent-cloud/deploy.tcb.js.map +1 -1
  49. package/dist/functions/uniapp/app-plus/buildAndroidApp.js +258 -0
  50. package/dist/functions/uniapp/app-plus/buildAndroidApp.js.map +1 -1
  51. package/dist/functions/validation/generateFakeBusinessLicense.d.ts +21 -0
  52. package/dist/functions/validation/generateFakeBusinessLicense.js +160 -0
  53. package/dist/functions/validation/generateFakeBusinessLicense.js.map +1 -0
  54. package/dist/functions/validation/generateFakeDrivingLicense.d.ts +31 -0
  55. package/dist/functions/validation/generateFakeDrivingLicense.js +119 -0
  56. package/dist/functions/validation/generateFakeDrivingLicense.js.map +1 -0
  57. package/dist/functions/validation/generateFakeLicensePlate.d.ts +13 -0
  58. package/dist/functions/validation/generateFakeLicensePlate.js +87 -0
  59. package/dist/functions/validation/generateFakeLicensePlate.js.map +1 -0
  60. package/dist/functions/wechat/useWxWebShare.d.ts +26 -0
  61. package/dist/functions/wechat/useWxWebShare.js +141 -0
  62. package/dist/functions/wechat/useWxWebShare.js.map +1 -0
  63. package/package.json +21 -4
  64. package/references/sharp.d.ts +1 -0
  65. package/references/wechat.d.ts +35 -0
  66. package/types/uniapp-android-build.d.ts +108 -0
  67. package/dist/functions/platform/tencent-cloud/deploy.tcb.d.ts +0 -13
  68. package/dist/functions/platform/tencent-cloud/deploy.tcb.js +0 -46
  69. package/dist/functions/platform/tencent-cloud/deploy.tcb.js.map +0 -1
  70. package/dist/functions/platform/tencent-cloud/getSecret.d.ts +0 -4
  71. package/dist/functions/platform/tencent-cloud/getSecret.js +0 -19
  72. package/dist/functions/platform/tencent-cloud/getSecret.js.map +0 -1
  73. package/dist/functions/platform/uniapp/app-plus/buildAndroidApp.d.ts +0 -27
  74. package/dist/functions/platform/uniapp/app-plus/buildAndroidApp.js +0 -287
  75. package/dist/functions/platform/uniapp/app-plus/buildAndroidApp.js.map +0 -1
  76. package/dist/functions/platform/uniapp/build.d.ts +0 -21
  77. package/dist/functions/platform/uniapp/build.js +0 -83
  78. package/dist/functions/platform/uniapp/build.js.map +0 -1
  79. package/dist/functions/platform/uniapp/detectAndroidProjectStructure.d.ts +0 -11
  80. package/dist/functions/platform/uniapp/detectAndroidProjectStructure.js +0 -30
  81. package/dist/functions/platform/uniapp/detectAndroidProjectStructure.js.map +0 -1
  82. package/dist/functions/platform/uniapp/detectProjectType.d.ts +0 -20
  83. package/dist/functions/platform/uniapp/detectProjectType.js +0 -68
  84. package/dist/functions/platform/uniapp/detectProjectType.js.map +0 -1
  85. package/dist/functions/platform/uniapp/parseManifest.d.ts +0 -18
  86. package/dist/functions/platform/uniapp/parseManifest.js +0 -49
  87. package/dist/functions/platform/uniapp/parseManifest.js.map +0 -1
  88. package/dist/functions/platform/uniapp/waitForPages.d.ts +0 -7
  89. package/dist/functions/platform/uniapp/waitForPages.js +0 -20
  90. package/dist/functions/platform/uniapp/waitForPages.js.map +0 -1
  91. package/dist/functions/string/visualizeRegexSteps.d.ts +0 -39
  92. package/dist/functions/string/visualizeRegexSteps.js +0 -446
  93. package/dist/functions/string/visualizeRegexSteps.js.map +0 -1
  94. package/dist/functions/utils/AVLTree.d.ts +0 -19
  95. package/dist/functions/utils/AVLTree.js +0 -197
  96. package/dist/functions/utils/AVLTree.js.map +0 -1
  97. package/dist/functions/utils/BinarySearchTree.d.ts +0 -19
  98. package/dist/functions/utils/BinarySearchTree.js +0 -150
  99. package/dist/functions/utils/BinarySearchTree.js.map +0 -1
  100. package/dist/functions/utils/EventEmitter.d.ts +0 -32
  101. package/dist/functions/utils/EventEmitter.js +0 -108
  102. package/dist/functions/utils/EventEmitter.js.map +0 -1
  103. package/dist/functions/utils/Graph.d.ts +0 -19
  104. package/dist/functions/utils/Graph.js +0 -190
  105. package/dist/functions/utils/Graph.js.map +0 -1
  106. package/dist/functions/utils/HashMap.d.ts +0 -13
  107. package/dist/functions/utils/HashMap.js +0 -128
  108. package/dist/functions/utils/HashMap.js.map +0 -1
  109. package/dist/functions/utils/Heap.d.ts +0 -11
  110. package/dist/functions/utils/Heap.js +0 -91
  111. package/dist/functions/utils/Heap.js.map +0 -1
  112. package/dist/functions/utils/LRUCache.d.ts +0 -41
  113. package/dist/functions/utils/LRUCache.js +0 -182
  114. package/dist/functions/utils/LRUCache.js.map +0 -1
  115. package/dist/functions/utils/LinkedList.d.ts +0 -18
  116. package/dist/functions/utils/LinkedList.js +0 -135
  117. package/dist/functions/utils/LinkedList.js.map +0 -1
  118. package/dist/functions/utils/MyPromise.d.ts +0 -32
  119. package/dist/functions/utils/MyPromise.js +0 -254
  120. package/dist/functions/utils/MyPromise.js.map +0 -1
  121. package/dist/functions/utils/PriorityQueue.d.ts +0 -14
  122. package/dist/functions/utils/PriorityQueue.js +0 -77
  123. package/dist/functions/utils/PriorityQueue.js.map +0 -1
  124. package/dist/functions/utils/Queue.d.ts +0 -10
  125. package/dist/functions/utils/Queue.js +0 -27
  126. package/dist/functions/utils/Queue.js.map +0 -1
  127. package/dist/functions/utils/Stack.d.ts +0 -10
  128. package/dist/functions/utils/Stack.js +0 -27
  129. package/dist/functions/utils/Stack.js.map +0 -1
  130. package/dist/functions/utils/Trie.d.ts +0 -16
  131. package/dist/functions/utils/Trie.js +0 -127
  132. package/dist/functions/utils/Trie.js.map +0 -1
  133. package/dist/functions/utils/UnionFind.d.ts +0 -8
  134. package/dist/functions/utils/UnionFind.js +0 -53
  135. package/dist/functions/utils/UnionFind.js.map +0 -1
  136. package/dist/functions/utils/cachedAsync.d.ts +0 -27
  137. package/dist/functions/utils/cachedAsync.js +0 -123
  138. package/dist/functions/utils/cachedAsync.js.map +0 -1
  139. package/dist/functions/utils/compose.d.ts +0 -1
  140. package/dist/functions/utils/compose.js +0 -10
  141. package/dist/functions/utils/compose.js.map +0 -1
  142. package/dist/functions/utils/cond.d.ts +0 -1
  143. package/dist/functions/utils/cond.js +0 -15
  144. package/dist/functions/utils/cond.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/createReactive.d.ts +0 -10
  149. package/dist/functions/utils/createReactive.js +0 -50
  150. package/dist/functions/utils/createReactive.js.map +0 -1
  151. package/dist/functions/utils/curry.d.ts +0 -1
  152. package/dist/functions/utils/curry.js +0 -13
  153. package/dist/functions/utils/curry.js.map +0 -1
  154. package/dist/functions/utils/curryAdvanced.d.ts +0 -8
  155. package/dist/functions/utils/curryAdvanced.js +0 -87
  156. package/dist/functions/utils/curryAdvanced.js.map +0 -1
  157. package/dist/functions/utils/debounce.d.ts +0 -5
  158. package/dist/functions/utils/debounce.js +0 -12
  159. package/dist/functions/utils/debounce.js.map +0 -1
  160. package/dist/functions/utils/deepClone.d.ts +0 -12
  161. package/dist/functions/utils/deepClone.js +0 -131
  162. package/dist/functions/utils/deepClone.js.map +0 -1
  163. package/dist/functions/utils/errorManager.d.ts +0 -63
  164. package/dist/functions/utils/errorManager.js +0 -199
  165. package/dist/functions/utils/errorManager.js.map +0 -1
  166. package/dist/functions/utils/evolve.d.ts +0 -3
  167. package/dist/functions/utils/evolve.js +0 -15
  168. package/dist/functions/utils/evolve.js.map +0 -1
  169. package/dist/functions/utils/flatten.d.ts +0 -7
  170. package/dist/functions/utils/flatten.js +0 -60
  171. package/dist/functions/utils/flatten.js.map +0 -1
  172. package/dist/functions/utils/flattenObject.d.ts +0 -5
  173. package/dist/functions/utils/flattenObject.js +0 -102
  174. package/dist/functions/utils/flattenObject.js.map +0 -1
  175. package/dist/functions/utils/flow.d.ts +0 -1
  176. package/dist/functions/utils/flow.js +0 -14
  177. package/dist/functions/utils/flow.js.map +0 -1
  178. package/dist/functions/utils/formatString.d.ts +0 -5
  179. package/dist/functions/utils/formatString.js +0 -9
  180. package/dist/functions/utils/formatString.js.map +0 -1
  181. package/dist/functions/utils/functionBind.d.ts +0 -4
  182. package/dist/functions/utils/functionBind.js +0 -33
  183. package/dist/functions/utils/functionBind.js.map +0 -1
  184. package/dist/functions/utils/i18n.d.ts +0 -27
  185. package/dist/functions/utils/i18n.js +0 -119
  186. package/dist/functions/utils/i18n.js.map +0 -1
  187. package/dist/functions/utils/memoize.d.ts +0 -1
  188. package/dist/functions/utils/memoize.js +0 -13
  189. package/dist/functions/utils/memoize.js.map +0 -1
  190. package/dist/functions/utils/myInstanceof.d.ts +0 -5
  191. package/dist/functions/utils/myInstanceof.js +0 -56
  192. package/dist/functions/utils/myInstanceof.js.map +0 -1
  193. package/dist/functions/utils/myNew.d.ts +0 -3
  194. package/dist/functions/utils/myNew.js +0 -19
  195. package/dist/functions/utils/myNew.js.map +0 -1
  196. package/dist/functions/utils/once.d.ts +0 -1
  197. package/dist/functions/utils/once.js +0 -13
  198. package/dist/functions/utils/once.js.map +0 -1
  199. package/dist/functions/utils/partial.d.ts +0 -1
  200. package/dist/functions/utils/partial.js +0 -13
  201. package/dist/functions/utils/partial.js.map +0 -1
  202. package/dist/functions/utils/permission.d.ts +0 -40
  203. package/dist/functions/utils/permission.js +0 -189
  204. package/dist/functions/utils/permission.js.map +0 -1
  205. package/dist/functions/utils/pinia.d.ts +0 -52
  206. package/dist/functions/utils/pinia.js +0 -183
  207. package/dist/functions/utils/pinia.js.map +0 -1
  208. package/dist/functions/utils/pipe.d.ts +0 -1
  209. package/dist/functions/utils/pipe.js +0 -10
  210. package/dist/functions/utils/pipe.js.map +0 -1
  211. package/dist/functions/utils/promiseLimit.d.ts +0 -10
  212. package/dist/functions/utils/promiseLimit.js +0 -125
  213. package/dist/functions/utils/promiseLimit.js.map +0 -1
  214. package/dist/functions/utils/retryWithBackoff.d.ts +0 -12
  215. package/dist/functions/utils/retryWithBackoff.js +0 -29
  216. package/dist/functions/utils/retryWithBackoff.js.map +0 -1
  217. package/dist/functions/utils/tap.d.ts +0 -1
  218. package/dist/functions/utils/tap.js +0 -14
  219. package/dist/functions/utils/tap.js.map +0 -1
  220. package/dist/functions/utils/throttle.d.ts +0 -1
  221. package/dist/functions/utils/throttle.js +0 -11
  222. package/dist/functions/utils/throttle.js.map +0 -1
  223. package/dist/functions/utils/unique.d.ts +0 -10
  224. package/dist/functions/utils/unique.js +0 -85
  225. package/dist/functions/utils/unique.js.map +0 -1
  226. package/dist/functions/utils/until.d.ts +0 -1
  227. package/dist/functions/utils/until.js +0 -10
  228. package/dist/functions/utils/until.js.map +0 -1
  229. package/dist/hooks/createGlobalState.d.ts +0 -2
  230. package/dist/hooks/createGlobalState.js +0 -11
  231. package/dist/hooks/createGlobalState.js.map +0 -1
  232. package/dist/hooks/createInjectionState.d.ts +0 -14
  233. package/dist/hooks/createInjectionState.js +0 -20
  234. package/dist/hooks/createInjectionState.js.map +0 -1
  235. package/dist/hooks/createSharedComposable.d.ts +0 -2
  236. package/dist/hooks/createSharedComposable.js +0 -13
  237. package/dist/hooks/createSharedComposable.js.map +0 -1
  238. package/dist/hooks/injectLocal.d.ts +0 -10
  239. package/dist/hooks/injectLocal.js +0 -12
  240. package/dist/hooks/injectLocal.js.map +0 -1
  241. package/dist/hooks/provideLocal.d.ts +0 -9
  242. package/dist/hooks/provideLocal.js +0 -7
  243. package/dist/hooks/provideLocal.js.map +0 -1
  244. package/dist/hooks/useAltool.d.ts +0 -39
  245. package/dist/hooks/useAltool.js +0 -350
  246. package/dist/hooks/useAltool.js.map +0 -1
  247. package/dist/hooks/useAsyncState.d.ts +0 -30
  248. package/dist/hooks/useAsyncState.js +0 -46
  249. package/dist/hooks/useAsyncState.js.map +0 -1
  250. package/dist/hooks/useCache.d.ts +0 -18
  251. package/dist/hooks/useCache.js +0 -82
  252. package/dist/hooks/useCache.js.map +0 -1
  253. package/dist/hooks/useDebouncedRefHistory.d.ts +0 -22
  254. package/dist/hooks/useDebouncedRefHistory.js +0 -46
  255. package/dist/hooks/useDebouncedRefHistory.js.map +0 -1
  256. package/dist/hooks/useDraggable.d.ts +0 -37
  257. package/dist/hooks/useDraggable.js +0 -163
  258. package/dist/hooks/useDraggable.js.map +0 -1
  259. package/dist/hooks/useLocalStorage.d.ts +0 -8
  260. package/dist/hooks/useLocalStorage.js +0 -101
  261. package/dist/hooks/useLocalStorage.js.map +0 -1
  262. package/dist/hooks/useManualRefHistory.d.ts +0 -26
  263. package/dist/hooks/useManualRefHistory.js +0 -80
  264. package/dist/hooks/useManualRefHistory.js.map +0 -1
  265. package/dist/hooks/usePermission.d.ts +0 -7
  266. package/dist/hooks/usePermission.js +0 -123
  267. package/dist/hooks/usePermission.js.map +0 -1
  268. package/dist/hooks/usePluginSystem.d.ts +0 -11
  269. package/dist/hooks/usePluginSystem.js +0 -34
  270. package/dist/hooks/usePluginSystem.js.map +0 -1
  271. package/dist/hooks/useRefHistory.d.ts +0 -21
  272. package/dist/hooks/useRefHistory.js +0 -41
  273. package/dist/hooks/useRefHistory.js.map +0 -1
  274. package/dist/hooks/useResizable.d.ts +0 -54
  275. package/dist/hooks/useResizable.js +0 -178
  276. package/dist/hooks/useResizable.js.map +0 -1
  277. package/dist/hooks/useSessionStorage.d.ts +0 -8
  278. package/dist/hooks/useSessionStorage.js +0 -101
  279. package/dist/hooks/useSessionStorage.js.map +0 -1
  280. package/dist/hooks/useStorage.d.ts +0 -13
  281. package/dist/hooks/useStorage.js +0 -62
  282. package/dist/hooks/useStorage.js.map +0 -1
  283. package/dist/hooks/useStorageWithIndexedDB.d.ts +0 -8
  284. package/dist/hooks/useStorageWithIndexedDB.js +0 -132
  285. package/dist/hooks/useStorageWithIndexedDB.js.map +0 -1
  286. package/dist/hooks/useWebWorker.d.ts +0 -25
  287. package/dist/hooks/useWebWorker.js +0 -207
  288. package/dist/hooks/useWebWorker.js.map +0 -1
  289. package/dist/hooks/useWorkerFunction.d.ts +0 -26
  290. package/dist/hooks/useWorkerFunction.js +0 -191
  291. package/dist/hooks/useWorkerFunction.js.map +0 -1
  292. package/dist/hooks/useWorkerPool.d.ts +0 -33
  293. package/dist/hooks/useWorkerPool.js +0 -247
  294. package/dist/hooks/useWorkerPool.js.map +0 -1
  295. package/dist/vue-hooks/dom/useKeyboard.d.ts +0 -29
  296. package/dist/vue-hooks/dom/useKeyboard.js +0 -129
  297. package/dist/vue-hooks/dom/useKeyboard.js.map +0 -1
  298. package/dist/vue-hooks/state/useFileUpload.d.ts +0 -23
  299. package/dist/vue-hooks/state/useFileUpload.js +0 -93
  300. package/dist/vue-hooks/state/useFileUpload.js.map +0 -1
@@ -1,254 +0,0 @@
1
- export var PromiseState;
2
- (function (PromiseState) {
3
- PromiseState["PENDING"] = "pending";
4
- PromiseState["FULFILLED"] = "fulfilled";
5
- PromiseState["REJECTED"] = "rejected";
6
- })(PromiseState || (PromiseState = {}));
7
- export class MyPromise {
8
- state = PromiseState.PENDING;
9
- value = undefined;
10
- reason = undefined;
11
- onFulfilledCallbacks = [];
12
- onRejectedCallbacks = [];
13
- deps;
14
- constructor(executor, deps) {
15
- this.deps = deps;
16
- try {
17
- executor(this.resolve.bind(this), this.reject.bind(this));
18
- }
19
- catch (error) {
20
- this.reject(error);
21
- }
22
- }
23
- resolve(value) {
24
- if (this.state !== PromiseState.PENDING)
25
- return;
26
- if (value && typeof value.then === 'function') {
27
- ;
28
- value.then((v) => this.resolve(v), (r) => this.reject(r));
29
- return;
30
- }
31
- this.state = PromiseState.FULFILLED;
32
- this.value = value;
33
- this.onFulfilledCallbacks.forEach(callback => callback(this.value));
34
- }
35
- reject(reason) {
36
- if (this.state !== PromiseState.PENDING)
37
- return;
38
- this.state = PromiseState.REJECTED;
39
- this.reason = reason;
40
- this.onRejectedCallbacks.forEach(callback => callback(this.reason));
41
- }
42
- then(onFulfilled, onRejected) {
43
- const onFulfilledCallback = typeof onFulfilled === 'function'
44
- ? onFulfilled
45
- : (value) => value;
46
- const onRejectedCallback = typeof onRejected === 'function'
47
- ? onRejected
48
- : (reason) => { throw reason; };
49
- const promise2 = new MyPromise((resolve, reject) => {
50
- if (this.state === PromiseState.FULFILLED) {
51
- this.deps.scheduleMicrotask(() => {
52
- try {
53
- const x = onFulfilledCallback(this.value);
54
- this.resolvePromise(promise2, x, resolve, reject);
55
- }
56
- catch (error) {
57
- reject(error);
58
- }
59
- });
60
- }
61
- else if (this.state === PromiseState.REJECTED) {
62
- this.deps.scheduleMicrotask(() => {
63
- try {
64
- const x = onRejectedCallback(this.reason);
65
- this.resolvePromise(promise2, x, resolve, reject);
66
- }
67
- catch (error) {
68
- reject(error);
69
- }
70
- });
71
- }
72
- else {
73
- this.onFulfilledCallbacks.push((value) => {
74
- this.deps.scheduleMicrotask(() => {
75
- try {
76
- const x = onFulfilledCallback(value);
77
- this.resolvePromise(promise2, x, resolve, reject);
78
- }
79
- catch (error) {
80
- reject(error);
81
- }
82
- });
83
- });
84
- this.onRejectedCallbacks.push((reason) => {
85
- this.deps.scheduleMicrotask(() => {
86
- try {
87
- const x = onRejectedCallback(reason);
88
- this.resolvePromise(promise2, x, resolve, reject);
89
- }
90
- catch (error) {
91
- reject(error);
92
- }
93
- });
94
- });
95
- }
96
- }, this.deps);
97
- return promise2;
98
- }
99
- catch(onRejected) {
100
- return this.then(undefined, onRejected);
101
- }
102
- finally(onFinally) {
103
- return this.then((value) => {
104
- if (onFinally)
105
- onFinally();
106
- return value;
107
- }, (reason) => {
108
- if (onFinally)
109
- onFinally();
110
- throw reason;
111
- });
112
- }
113
- resolvePromise(promise2, x, resolve, reject) {
114
- if (promise2 === x) {
115
- reject(new TypeError('Chaining cycle detected for promise'));
116
- return;
117
- }
118
- if (x instanceof MyPromise) {
119
- x.then(resolve, reject);
120
- return;
121
- }
122
- if (x !== null && (typeof x === 'object' || typeof x === 'function')) {
123
- let called = false;
124
- try {
125
- const then = x.then;
126
- if (typeof then === 'function') {
127
- then.call(x, (y) => {
128
- if (called)
129
- return;
130
- called = true;
131
- this.resolvePromise(promise2, y, resolve, reject);
132
- }, (r) => {
133
- if (called)
134
- return;
135
- called = true;
136
- reject(r);
137
- });
138
- }
139
- else {
140
- resolve(x);
141
- }
142
- }
143
- catch (error) {
144
- if (called)
145
- return;
146
- called = true;
147
- reject(error);
148
- }
149
- }
150
- else {
151
- resolve(x);
152
- }
153
- }
154
- static resolve(value, deps) {
155
- if (value instanceof MyPromise) {
156
- return value;
157
- }
158
- return new MyPromise((resolve) => resolve(value), deps);
159
- }
160
- static reject(reason, deps) {
161
- return new MyPromise((_, reject) => reject(reason), deps);
162
- }
163
- static all(promises, deps) {
164
- return new MyPromise((resolve, reject) => {
165
- if (!Array.isArray(promises)) {
166
- reject(new TypeError('Argument must be an array'));
167
- return;
168
- }
169
- if (promises.length === 0) {
170
- resolve([]);
171
- return;
172
- }
173
- const results = [];
174
- let completedCount = 0;
175
- promises.forEach((promise, index) => {
176
- MyPromise.resolve(promise, deps).then((value) => {
177
- results[index] = value;
178
- completedCount++;
179
- if (completedCount === promises.length) {
180
- resolve(results);
181
- }
182
- }, (reason) => {
183
- reject(reason);
184
- });
185
- });
186
- }, deps);
187
- }
188
- static race(promises, deps) {
189
- return new MyPromise((resolve, reject) => {
190
- if (!Array.isArray(promises)) {
191
- reject(new TypeError('Argument must be an array'));
192
- return;
193
- }
194
- promises.forEach((promise) => {
195
- MyPromise.resolve(promise, deps).then(resolve, reject);
196
- });
197
- }, deps);
198
- }
199
- static allSettled(promises, deps) {
200
- return new MyPromise((resolve) => {
201
- if (!Array.isArray(promises)) {
202
- resolve([]);
203
- return;
204
- }
205
- if (promises.length === 0) {
206
- resolve([]);
207
- return;
208
- }
209
- const results = [];
210
- let completedCount = 0;
211
- promises.forEach((promise, index) => {
212
- MyPromise.resolve(promise, deps).then((value) => {
213
- results[index] = { status: 'fulfilled', value };
214
- completedCount++;
215
- if (completedCount === promises.length) {
216
- resolve(results);
217
- }
218
- }, (reason) => {
219
- results[index] = { status: 'rejected', reason };
220
- completedCount++;
221
- if (completedCount === promises.length) {
222
- resolve(results);
223
- }
224
- });
225
- });
226
- }, deps);
227
- }
228
- static any(promises, deps) {
229
- return new MyPromise((resolve, reject) => {
230
- if (!Array.isArray(promises)) {
231
- reject(new TypeError('Argument must be an array'));
232
- return;
233
- }
234
- if (promises.length === 0) {
235
- reject(new AggregateError([], 'All promises were rejected'));
236
- return;
237
- }
238
- const errors = [];
239
- let rejectedCount = 0;
240
- promises.forEach((promise, index) => {
241
- MyPromise.resolve(promise, deps).then((value) => {
242
- resolve(value);
243
- }, (reason) => {
244
- errors[index] = reason;
245
- rejectedCount++;
246
- if (rejectedCount === promises.length) {
247
- reject(new AggregateError(errors, 'All promises were rejected'));
248
- }
249
- });
250
- });
251
- }, deps);
252
- }
253
- }
254
- //# sourceMappingURL=MyPromise.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MyPromise.js","sourceRoot":"","sources":["../../../src/functions/utils/MyPromise.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- export interface PriorityQueueItem<T> {
2
- value: T;
3
- priority: number;
4
- }
5
- export interface PriorityQueue<T> {
6
- enqueue(item: T, priority: number): void;
7
- dequeue(): T | undefined;
8
- peek(): T | undefined;
9
- size(): number;
10
- isEmpty(): boolean;
11
- clear(): void;
12
- toArray(): PriorityQueueItem<T>[];
13
- }
14
- export declare function createPriorityQueue<T>(): PriorityQueue<T>;
@@ -1,77 +0,0 @@
1
- export function createPriorityQueue() {
2
- const heap = [];
3
- function getParentIndex(index) {
4
- return Math.floor((index - 1) / 2);
5
- }
6
- function getLeftChildIndex(index) {
7
- return 2 * index + 1;
8
- }
9
- function getRightChildIndex(index) {
10
- return 2 * index + 2;
11
- }
12
- function swap(i, j) {
13
- [heap[i], heap[j]] = [heap[j], heap[i]];
14
- }
15
- function heapifyUp(index) {
16
- while (index > 0) {
17
- const parentIndex = getParentIndex(index);
18
- if (heap[index].priority >= heap[parentIndex].priority) {
19
- break;
20
- }
21
- swap(index, parentIndex);
22
- index = parentIndex;
23
- }
24
- }
25
- function heapifyDown(index) {
26
- while (true) {
27
- let smallest = index;
28
- const leftIndex = getLeftChildIndex(index);
29
- const rightIndex = getRightChildIndex(index);
30
- if (leftIndex < heap.length && heap[leftIndex].priority < heap[smallest].priority) {
31
- smallest = leftIndex;
32
- }
33
- if (rightIndex < heap.length && heap[rightIndex].priority < heap[smallest].priority) {
34
- smallest = rightIndex;
35
- }
36
- if (smallest === index) {
37
- break;
38
- }
39
- swap(index, smallest);
40
- index = smallest;
41
- }
42
- }
43
- return {
44
- enqueue(item, priority) {
45
- heap.push({ value: item, priority });
46
- heapifyUp(heap.length - 1);
47
- },
48
- dequeue() {
49
- if (heap.length === 0) {
50
- return undefined;
51
- }
52
- if (heap.length === 1) {
53
- return heap.pop().value;
54
- }
55
- const root = heap[0].value;
56
- heap[0] = heap.pop();
57
- heapifyDown(0);
58
- return root;
59
- },
60
- peek() {
61
- return heap[0]?.value;
62
- },
63
- size() {
64
- return heap.length;
65
- },
66
- isEmpty() {
67
- return heap.length === 0;
68
- },
69
- clear() {
70
- heap.length = 0;
71
- },
72
- toArray() {
73
- return [...heap].sort((a, b) => a.priority - b.priority);
74
- }
75
- };
76
- }
77
- //# sourceMappingURL=PriorityQueue.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PriorityQueue.js","sourceRoot":"","sources":["../../../src/functions/utils/PriorityQueue.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- export interface Queue<T> {
2
- enqueue(item: T): void;
3
- dequeue(): T | undefined;
4
- peek(): T | undefined;
5
- size(): number;
6
- isEmpty(): boolean;
7
- clear(): void;
8
- toArray(): T[];
9
- }
10
- export declare function createQueue<T>(): Queue<T>;
@@ -1,27 +0,0 @@
1
- export function createQueue() {
2
- const items = [];
3
- return {
4
- enqueue(item) {
5
- items.push(item);
6
- },
7
- dequeue() {
8
- return items.shift();
9
- },
10
- peek() {
11
- return items[0];
12
- },
13
- size() {
14
- return items.length;
15
- },
16
- isEmpty() {
17
- return items.length === 0;
18
- },
19
- clear() {
20
- items.length = 0;
21
- },
22
- toArray() {
23
- return [...items];
24
- }
25
- };
26
- }
27
- //# sourceMappingURL=Queue.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Queue.js","sourceRoot":"","sources":["../../../src/functions/utils/Queue.ts"],"names":[],"mappings":"AA8CA,MAAM,UAAU,WAAW;IACzB,MAAM,KAAK,GAAQ,EAAE,CAAA;IAErB,OAAO;QACL,OAAO,CAAC,IAAO;YACb,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAClB,CAAC;QAED,OAAO;YACL,OAAO,KAAK,CAAC,KAAK,EAAE,CAAA;QACtB,CAAC;QAED,IAAI;YACF,OAAO,KAAK,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,IAAI;YACF,OAAO,KAAK,CAAC,MAAM,CAAA;QACrB,CAAC;QAED,OAAO;YACL,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAA;QAC3B,CAAC;QAED,KAAK;YACH,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA;QAClB,CAAC;QAED,OAAO;YACL,OAAO,CAAC,GAAG,KAAK,CAAC,CAAA;QACnB,CAAC;KACF,CAAA;AACH,CAAC"}
@@ -1,10 +0,0 @@
1
- export interface Stack<T> {
2
- push(item: T): void;
3
- pop(): T | undefined;
4
- peek(): T | undefined;
5
- size(): number;
6
- isEmpty(): boolean;
7
- clear(): void;
8
- toArray(): T[];
9
- }
10
- export declare function createStack<T>(): Stack<T>;
@@ -1,27 +0,0 @@
1
- export function createStack() {
2
- const items = [];
3
- return {
4
- push(item) {
5
- items.push(item);
6
- },
7
- pop() {
8
- return items.pop();
9
- },
10
- peek() {
11
- return items[items.length - 1];
12
- },
13
- size() {
14
- return items.length;
15
- },
16
- isEmpty() {
17
- return items.length === 0;
18
- },
19
- clear() {
20
- items.length = 0;
21
- },
22
- toArray() {
23
- return [...items].reverse();
24
- }
25
- };
26
- }
27
- //# sourceMappingURL=Stack.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Stack.js","sourceRoot":"","sources":["../../../src/functions/utils/Stack.ts"],"names":[],"mappings":"AA8CA,MAAM,UAAU,WAAW;IACzB,MAAM,KAAK,GAAQ,EAAE,CAAA;IAErB,OAAO;QACL,IAAI,CAAC,IAAO;YACV,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAClB,CAAC;QAED,GAAG;YACD,OAAO,KAAK,CAAC,GAAG,EAAE,CAAA;QACpB,CAAC;QAED,IAAI;YACF,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QAChC,CAAC;QAED,IAAI;YACF,OAAO,KAAK,CAAC,MAAM,CAAA;QACrB,CAAC;QAED,OAAO;YACL,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAA;QAC3B,CAAC;QAED,KAAK;YACH,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA;QAClB,CAAC;QAED,OAAO;YACL,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,OAAO,EAAE,CAAA;QAC7B,CAAC;KACF,CAAA;AACH,CAAC"}
@@ -1,16 +0,0 @@
1
- export interface TrieNode {
2
- children: Map<string, TrieNode>;
3
- isEndOfWord: boolean;
4
- word?: string;
5
- }
6
- export interface Trie {
7
- insert(word: string): void;
8
- search(word: string): boolean;
9
- startsWith(prefix: string): boolean;
10
- autocomplete(prefix: string): string[];
11
- delete(word: string): boolean;
12
- getAllWords(): string[];
13
- size(): number;
14
- clear(): void;
15
- }
16
- export declare function createTrie(): Trie;
@@ -1,127 +0,0 @@
1
- export function createTrie() {
2
- const root = {
3
- children: new Map(),
4
- isEndOfWord: false
5
- };
6
- let wordCount = 0;
7
- return {
8
- insert(word) {
9
- if (!word)
10
- return;
11
- let current = root;
12
- for (const char of word) {
13
- if (!current.children.has(char)) {
14
- current.children.set(char, {
15
- children: new Map(),
16
- isEndOfWord: false
17
- });
18
- }
19
- current = current.children.get(char);
20
- }
21
- if (!current.isEndOfWord) {
22
- current.isEndOfWord = true;
23
- current.word = word;
24
- wordCount++;
25
- }
26
- },
27
- search(word) {
28
- if (!word)
29
- return false;
30
- let current = root;
31
- for (const char of word) {
32
- if (!current.children.has(char)) {
33
- return false;
34
- }
35
- current = current.children.get(char);
36
- }
37
- return current.isEndOfWord;
38
- },
39
- startsWith(prefix) {
40
- if (!prefix)
41
- return true;
42
- let current = root;
43
- for (const char of prefix) {
44
- if (!current.children.has(char)) {
45
- return false;
46
- }
47
- current = current.children.get(char);
48
- }
49
- return true;
50
- },
51
- autocomplete(prefix) {
52
- const results = [];
53
- let current = root;
54
- for (const char of prefix) {
55
- if (!current.children.has(char)) {
56
- return results;
57
- }
58
- current = current.children.get(char);
59
- }
60
- function dfs(node) {
61
- if (node.isEndOfWord && node.word) {
62
- results.push(node.word);
63
- }
64
- for (const child of node.children.values()) {
65
- dfs(child);
66
- }
67
- }
68
- dfs(current);
69
- return results.sort();
70
- },
71
- delete(word) {
72
- if (!word || !this.search(word)) {
73
- return false;
74
- }
75
- function deleteHelper(node, word, index) {
76
- if (index === word.length) {
77
- if (!node.isEndOfWord) {
78
- return false;
79
- }
80
- node.isEndOfWord = false;
81
- node.word = undefined;
82
- return node.children.size === 0;
83
- }
84
- const char = word[index];
85
- const childNode = node.children.get(char);
86
- if (!childNode) {
87
- return false;
88
- }
89
- const shouldDeleteChild = deleteHelper(childNode, word, index + 1);
90
- if (shouldDeleteChild) {
91
- node.children.delete(char);
92
- return !node.isEndOfWord && node.children.size === 0;
93
- }
94
- return false;
95
- }
96
- const deleted = deleteHelper(root, word, 0);
97
- if (deleted || !this.search(word)) {
98
- wordCount--;
99
- return true;
100
- }
101
- return false;
102
- },
103
- getAllWords() {
104
- const words = [];
105
- function dfs(node) {
106
- if (node.isEndOfWord && node.word) {
107
- words.push(node.word);
108
- }
109
- for (const child of node.children.values()) {
110
- dfs(child);
111
- }
112
- }
113
- dfs(root);
114
- return words.sort();
115
- },
116
- size() {
117
- return wordCount;
118
- },
119
- clear() {
120
- root.children.clear();
121
- root.isEndOfWord = false;
122
- root.word = undefined;
123
- wordCount = 0;
124
- }
125
- };
126
- }
127
- //# sourceMappingURL=Trie.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Trie.js","sourceRoot":"","sources":["../../../src/functions/utils/Trie.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- export interface UnionFind {
2
- find(x: number): number;
3
- union(x: number, y: number): boolean;
4
- connected(x: number, y: number): boolean;
5
- count(): number;
6
- getSize(x: number): number;
7
- }
8
- export declare function createUnionFind(size: number): UnionFind;
@@ -1,53 +0,0 @@
1
- export function createUnionFind(size) {
2
- const parent = Array.from({ length: size }, (_, i) => i);
3
- const rank = Array(size).fill(0);
4
- const setSize = Array(size).fill(1);
5
- let setCount = size;
6
- function findRoot(x) {
7
- if (parent[x] !== x) {
8
- parent[x] = findRoot(parent[x]);
9
- }
10
- return parent[x];
11
- }
12
- return {
13
- find(x) {
14
- if (x < 0 || x >= size) {
15
- throw new Error(`Invalid element: ${x}`);
16
- }
17
- return findRoot(x);
18
- },
19
- union(x, y) {
20
- const rootX = findRoot(x);
21
- const rootY = findRoot(y);
22
- if (rootX === rootY) {
23
- return false;
24
- }
25
- if (rank[rootX] < rank[rootY]) {
26
- parent[rootX] = rootY;
27
- setSize[rootY] += setSize[rootX];
28
- }
29
- else if (rank[rootX] > rank[rootY]) {
30
- parent[rootY] = rootX;
31
- setSize[rootX] += setSize[rootY];
32
- }
33
- else {
34
- parent[rootY] = rootX;
35
- setSize[rootX] += setSize[rootY];
36
- rank[rootX]++;
37
- }
38
- setCount--;
39
- return true;
40
- },
41
- connected(x, y) {
42
- return findRoot(x) === findRoot(y);
43
- },
44
- count() {
45
- return setCount;
46
- },
47
- getSize(x) {
48
- const root = findRoot(x);
49
- return setSize[root];
50
- }
51
- };
52
- }
53
- //# sourceMappingURL=UnionFind.js.map