@vope/utils 1.9.0 → 1.9.2

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 (53) hide show
  1. package/CHANGELOG.md +95 -0
  2. package/README.md +3 -0
  3. package/dist/each.d.ts +44 -0
  4. package/dist/each.js +33 -0
  5. package/dist/index.cjs.js +33 -0
  6. package/dist/{src/index.d.ts → index.d.ts} +1 -1
  7. package/dist/index.js +4 -1
  8. package/package.json +82 -81
  9. package/sub_storage/package.json +1 -0
  10. package/dist/src/each.d.ts +0 -22
  11. /package/dist/{src/async-lock.d.ts → async-lock.d.ts} +0 -0
  12. /package/dist/{src/calc.d.ts → calc.d.ts} +0 -0
  13. /package/dist/{src/clamp.d.ts → clamp.d.ts} +0 -0
  14. /package/dist/{src/classnames.d.ts → classnames.d.ts} +0 -0
  15. /package/dist/{src/compare → compare}/version.d.ts +0 -0
  16. /package/dist/{src/compare → compare}/weak-equal.d.ts +0 -0
  17. /package/dist/{src/convert → convert}/json.d.ts +0 -0
  18. /package/dist/{src/convert → convert}/object.d.ts +0 -0
  19. /package/dist/{src/convert → convert}/strings.d.ts +0 -0
  20. /package/dist/{src/cron.d.ts → cron.d.ts} +0 -0
  21. /package/dist/{src/desens.d.ts → desens.d.ts} +0 -0
  22. /package/dist/{src/dic.d.ts → dic.d.ts} +0 -0
  23. /package/dist/{src/disable-enumerable.d.ts → disable-enumerable.d.ts} +0 -0
  24. /package/dist/{src/encoding.d.ts → encoding.d.ts} +0 -0
  25. /package/dist/{src/flat-tree.d.ts → flat-tree.d.ts} +0 -0
  26. /package/dist/{src/index-sort.d.ts → index-sort.d.ts} +0 -0
  27. /package/dist/{src/input-regex.d.ts → input-regex.d.ts} +0 -0
  28. /package/dist/{src/is → is}/class.d.ts +0 -0
  29. /package/dist/{src/is → is}/empty.d.ts +0 -0
  30. /package/dist/{src/is → is}/key.d.ts +0 -0
  31. /package/dist/{src/is → is}/null.d.ts +0 -0
  32. /package/dist/{src/load → load}/image.d.ts +0 -0
  33. /package/dist/{src/memory → memory}/basic.d.ts +0 -0
  34. /package/dist/{src/memory → memory}/list.d.ts +0 -0
  35. /package/dist/{src/memory → memory}/power.d.ts +0 -0
  36. /package/dist/{src/memory → memory}/simple.d.ts +0 -0
  37. /package/dist/{src/neo4j-anchors.d.ts → neo4j-anchors.d.ts} +0 -0
  38. /package/dist/{src/neo4j.d.ts → neo4j.d.ts} +0 -0
  39. /package/dist/{src/once.d.ts → once.d.ts} +0 -0
  40. /package/dist/{src/parse → parse}/num.d.ts +0 -0
  41. /package/dist/{src/power → power}/decon.d.ts +0 -0
  42. /package/dist/{src/rotate → rotate}/angle.d.ts +0 -0
  43. /package/dist/{src/rotate → rotate}/rad.d.ts +0 -0
  44. /package/dist/{src/serialize → serialize}/url-params.d.ts +0 -0
  45. /package/dist/{src/storage → storage}/offline.d.ts +0 -0
  46. /package/dist/{src/style → style}/css.d.ts +0 -0
  47. /package/dist/{src/subscriber.d.ts → subscriber.d.ts} +0 -0
  48. /package/dist/{src/table → table}/flex.d.ts +0 -0
  49. /package/dist/{src/union.d.ts → union.d.ts} +0 -0
  50. /package/dist/{src/url → url}/join.d.ts +0 -0
  51. /package/dist/{src/url → url}/params.d.ts +0 -0
  52. /package/dist/{src/wait.d.ts → wait.d.ts} +0 -0
  53. /package/sub_storage/{src/storage/offline.d.ts → offline.d.ts} +0 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,95 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [1.9.2] - 2026-09-15
9
+ ### Added
10
+ - 添加 [forBfsAsyncEach](src/each.ts) 方法,[forBfsEach](src/each.ts) 异步版本
11
+ - 添加 [forDfsAsyncEach](src/each.ts) 方法,[forDfsEach](src/each.ts) 异步版本
12
+ - 添加 [forDfsStackAsyncEach](src/each.ts) 方法,[forDfsStackEach](src/each.ts) 异步版本
13
+
14
+ ## [1.9.1] - 2026-05-11
15
+ ### Fixed
16
+ - 修复升级依赖 typescript 引起的 .d.ts 文件生成路径错误问题
17
+
18
+ ### Changed
19
+ - 发布 [CHANGELOG.md](./CHANGELOG.md) 文件
20
+
21
+
22
+ ## [1.9.0] - 2026-05-11
23
+ ### Changed
24
+ - 升级依赖
25
+
26
+ ## [1.8.0] - 2026-05-11
27
+ ### Changed
28
+ - 优化 [forBfsEach](src/each.ts) ,减少迭代次数
29
+ - 重构 [inputRegex](src/input-regex.ts) ,优先使用浏览器自带的 RegExp.escape 方法,同时对 polyfill 进行强化
30
+ - 升级依赖 typescript 到 6.0.3
31
+
32
+
33
+ ## [1.7.6] - 2026-04-08
34
+
35
+ ### Added
36
+ - 添加 [forDfsStackEach](src/each.ts) 方法,支撑在树结构中类似于统计子节点的数据量场景
37
+
38
+ ### Changed
39
+ - [OfflineStorage](src/storage//offline.ts) 添加 @ts-ignore 忽略 ts 错误信息
40
+ - 将 shims.env.d.ts 重命名为 shime.env.d.ts
41
+
42
+
43
+ ## [1.7.5] - 2026-04-03
44
+
45
+ ### Added
46
+ - [`FlatTree.getSub`](src/flat-tree.ts) 方法支持设置参数value=null时获取所有顶级节点
47
+
48
+
49
+ ## [1.7.4] - 2026-04-01
50
+
51
+ ### Added
52
+ - 添加 [`FlatTree.getSub`](src/flat-tree.ts) 方法,支持获取子节点及回调处理
53
+
54
+
55
+ ## [1.7.3] - 2026-03-25
56
+
57
+ ### Changed
58
+ - 修改 README.md
59
+
60
+
61
+ ## [1.7.2] - 2026-03-24
62
+
63
+ ### Added
64
+ - 添加 [forBfsEach](src/each.ts) 和 [forDfsEach](src/each.ts) 函数及其测试
65
+ - 添加 [FlatTree](src/flat-tree.ts) 类及其测试,支持树结构的扁平化存储和遍历(包括 BFS 和 DFS 模式)
66
+ - 添加 [Union](src/union.ts) 命名空间导出,现在可通过 Union.Status 推导出 Union 实例的联合状态
67
+
68
+
69
+ ## [1.7.1] - 2026-01-06
70
+
71
+ ### Added
72
+ - [MemorySimple](src/memory/simple.ts) 添加 emit 配置参数
73
+
74
+
75
+ ## [1.7.0] - 2025-11-26
76
+
77
+ ### Added
78
+ - 添加 [asyncLock](src/async-lock.ts) 功能
79
+ - 添加 [calc.getExpMN](src/calc.ts) 计算函数
80
+ - 添加 [calc.multiply](src/calc.ts) 计算函数
81
+ - 添加 [calc.divide](src/calc.ts) 计算函数
82
+ - 添加 [disableEnumerable](src/disable-enumerable.ts) 功能
83
+ - 添加 [indexSort](src/index-sort.ts) 功能
84
+ - 添加 版本变更日志
85
+
86
+ ### Fixed
87
+ - 修复 [Subscriber.$off](src/subscriber.ts) 实例方法调用且之前未 $once 时报错的问题
88
+
89
+ ### Changed
90
+ - 优化 [calc.formatter](src/calc.ts) 函数
91
+ - 优化 [calc.clamp](src/calc.ts) 函数
92
+ - [MemoryBasic](src/memory/basic.ts) 添加 emit 配置项,原 list 和 memorys 属性改成 [LIST_SYMBOL] 和 [MEMORYS_SYMBOL]
93
+ - namespace [Memory](src/memory/basic.ts) 移到 memory/basic.ts 内
94
+ - 使用 AI 优化测试用例
95
+ - 更新 csstype 依赖到 3.2.3
package/README.md CHANGED
@@ -12,6 +12,9 @@ pnpm add @vope/utils
12
12
  yarn add @vope/utils
13
13
  ```
14
14
 
15
+ ## Logs
16
+ [CHANGELOG](./CHANGELOG.md)
17
+
15
18
  ## API 文档
16
19
 
17
20
  ### 异步控制
package/dist/each.d.ts ADDED
@@ -0,0 +1,44 @@
1
+ /**
2
+ * 广度优先搜索
3
+ * @param list 节点源
4
+ * @param up 节点下钻,返回当前节点的子节点
5
+ * @param callback 节点回调,返回false则停止搜索
6
+ */
7
+ export declare const forBfsEach: <T>(list: T[] | Set<T>, up: (data: T) => T[] | Set<T> | void, callback: (data: T) => boolean) => void;
8
+ /**
9
+ * 广度优先异步搜索
10
+ * @param list 节点源
11
+ * @param up 节点下钻,返回当前节点的子节点
12
+ * @param callback 节点回调,返回false/Promise<false>则停止搜索
13
+ */
14
+ export declare const forBfsAsyncEach: <T>(list: T[] | Set<T>, up: (data: T) => T[] | Set<T> | void, callback: (data: T) => boolean | Promise<boolean>) => Promise<void>;
15
+ /**
16
+ * 深度优先搜索
17
+ * @param list 节点源
18
+ * @param up 节点下钻,返回当前节点的子节点
19
+ * @param callback 节点回调,返回false则停止搜索
20
+ */
21
+ export declare const forDfsEach: <T>(list: T[] | Set<T>, up: (data: T) => T[] | Set<T> | void, callback: (data: T) => boolean) => void;
22
+ /**
23
+ * 深度优先异步搜索
24
+ * @param list 节点源
25
+ * @param up 节点下钻,返回当前节点的子节点
26
+ * @param callback 节点回调,返回false/Promise<false>则停止搜索
27
+ */
28
+ export declare const forDfsAsyncEach: <T>(list: T[] | Set<T>, up: (data: T) => T[] | Set<T> | void, callback: (data: T) => boolean | Promise<boolean>) => Promise<void>;
29
+ /**
30
+ * 深度优先搜索(栈模式),回调规则为从里到外
31
+ * @param list 节点源
32
+ * @param up 节点下钻,返回当前节点的子节点
33
+ * @param callback 节点回调,返回false则停止搜索
34
+ * @description 应用场景:统计子节点的数据量
35
+ */
36
+ export declare const forDfsStackEach: <T>(list: T[] | Set<T>, up: (data: T) => T[] | Set<T> | void, callback: (data: T) => boolean) => void;
37
+ /**
38
+ * 深度优先异步搜索(栈模式),回调规则为从里到外
39
+ * @param list 节点源
40
+ * @param up 节点下钻,返回当前节点的子节点
41
+ * @param callback 节点回调,返回false/Promise<false>则停止搜索
42
+ * @description 应用场景:统计子节点的数据量
43
+ */
44
+ export declare const forDfsStackAsyncEach: <T>(list: T[] | Set<T>, up: (data: T) => T[] | Set<T> | void, callback: (data: T) => boolean | Promise<boolean>) => Promise<void>;
package/dist/each.js CHANGED
@@ -8,6 +8,16 @@ const forBfsEach = (list, up, callback) => {
8
8
  }
9
9
  }
10
10
  };
11
+ const forBfsAsyncEach = async (list, up, callback) => {
12
+ const stack = [list];
13
+ for (const list2 of stack) {
14
+ for (const value of list2) {
15
+ if (!await callback(value)) break;
16
+ const result = up(value);
17
+ result === void 0 || stack.push(result);
18
+ }
19
+ }
20
+ };
11
21
  const reverseMergeIn = (from, to = []) => {
12
22
  let i = to.length + (Array.isArray(from) ? from.length : from.size);
13
23
  for (const value of from) {
@@ -24,6 +34,15 @@ const forDfsEach = (list, up, callback) => {
24
34
  result === void 0 || reverseMergeIn(result, stack);
25
35
  }
26
36
  };
37
+ const forDfsAsyncEach = async (list, up, callback) => {
38
+ const stack = reverseMergeIn(list);
39
+ while (stack.length > 0) {
40
+ const value = stack.pop();
41
+ if (!await callback(value)) break;
42
+ const result = up(value);
43
+ result === void 0 || reverseMergeIn(result, stack);
44
+ }
45
+ };
27
46
  const mergeIns = (from, asc, desc) => {
28
47
  let count = desc.length + (Array.isArray(from) ? from.length : from.size);
29
48
  for (const value of from) {
@@ -43,8 +62,22 @@ const forDfsStackEach = (list, up, callback) => {
43
62
  if (!callback(locals[--i])) break;
44
63
  }
45
64
  };
65
+ const forDfsStackAsyncEach = async (list, up, callback) => {
66
+ const [stack, locals] = mergeIns(list, [], []);
67
+ while (stack.length > 0) {
68
+ const value = stack.pop();
69
+ const result = up(value);
70
+ result === void 0 || mergeIns(result, stack, locals);
71
+ }
72
+ for (let i = locals.length; i > 0; ) {
73
+ if (!await callback(locals[--i])) break;
74
+ }
75
+ };
46
76
  export {
77
+ forBfsAsyncEach,
47
78
  forBfsEach,
79
+ forDfsAsyncEach,
48
80
  forDfsEach,
81
+ forDfsStackAsyncEach,
49
82
  forDfsStackEach
50
83
  };
package/dist/index.cjs.js CHANGED
@@ -65,8 +65,11 @@ __export(index_exports, {
65
65
  desensReplace: () => desensReplace,
66
66
  disableEnumerable: () => disable_enumerable_default,
67
67
  flatURLParams: () => flatURLParams,
68
+ forBfsAsyncEach: () => forBfsAsyncEach,
68
69
  forBfsEach: () => forBfsEach,
70
+ forDfsAsyncEach: () => forDfsAsyncEach,
69
71
  forDfsEach: () => forDfsEach,
72
+ forDfsStackAsyncEach: () => forDfsStackAsyncEach,
70
73
  forDfsStackEach: () => forDfsStackEach,
71
74
  getEncoding: () => getEncoding,
72
75
  hash8json: () => hash8json,
@@ -1190,6 +1193,16 @@ var forBfsEach = (list, up, callback) => {
1190
1193
  }
1191
1194
  }
1192
1195
  };
1196
+ var forBfsAsyncEach = async (list, up, callback) => {
1197
+ const stack = [list];
1198
+ for (const list2 of stack) {
1199
+ for (const value of list2) {
1200
+ if (!await callback(value)) break;
1201
+ const result = up(value);
1202
+ result === void 0 || stack.push(result);
1203
+ }
1204
+ }
1205
+ };
1193
1206
  var reverseMergeIn = (from, to = []) => {
1194
1207
  let i = to.length + (Array.isArray(from) ? from.length : from.size);
1195
1208
  for (const value of from) {
@@ -1206,6 +1219,15 @@ var forDfsEach = (list, up, callback) => {
1206
1219
  result === void 0 || reverseMergeIn(result, stack);
1207
1220
  }
1208
1221
  };
1222
+ var forDfsAsyncEach = async (list, up, callback) => {
1223
+ const stack = reverseMergeIn(list);
1224
+ while (stack.length > 0) {
1225
+ const value = stack.pop();
1226
+ if (!await callback(value)) break;
1227
+ const result = up(value);
1228
+ result === void 0 || reverseMergeIn(result, stack);
1229
+ }
1230
+ };
1209
1231
  var mergeIns = (from, asc, desc) => {
1210
1232
  let count = desc.length + (Array.isArray(from) ? from.length : from.size);
1211
1233
  for (const value of from) {
@@ -1225,6 +1247,17 @@ var forDfsStackEach = (list, up, callback) => {
1225
1247
  if (!callback(locals[--i])) break;
1226
1248
  }
1227
1249
  };
1250
+ var forDfsStackAsyncEach = async (list, up, callback) => {
1251
+ const [stack, locals] = mergeIns(list, [], []);
1252
+ while (stack.length > 0) {
1253
+ const value = stack.pop();
1254
+ const result = up(value);
1255
+ result === void 0 || mergeIns(result, stack, locals);
1256
+ }
1257
+ for (let i = locals.length; i > 0; ) {
1258
+ if (!await callback(locals[--i])) break;
1259
+ }
1260
+ };
1228
1261
 
1229
1262
  // src/encoding.ts
1230
1263
  var utf8_first_prefix = /^1{2,}/g;
@@ -11,7 +11,7 @@ export { weekDic, default_max_second, default_min_second, default_max_minute, de
11
11
  export { type DesensDecrypt, type DesensEncrypt, desensEncrypt, desensDecrypt, desensReplace } from './desens';
12
12
  export { type Dic, default as DicRollup } from './dic';
13
13
  export { default as disableEnumerable } from './disable-enumerable';
14
- export { forBfsEach, forDfsEach, forDfsStackEach } from './each';
14
+ export { forBfsEach, forBfsAsyncEach, forDfsEach, forDfsAsyncEach, forDfsStackEach, forDfsStackAsyncEach } from './each';
15
15
  export { getEncoding } from './encoding';
16
16
  export { FlatTree } from './flat-tree';
17
17
  export { default as indexSort } from './index-sort';
package/dist/index.js CHANGED
@@ -11,7 +11,7 @@ import { weekDic, default_max_second, default_min_second, default_max_minute, de
11
11
  import { desensEncrypt, desensDecrypt, desensReplace } from "./desens";
12
12
  import { default as default4 } from "./dic";
13
13
  import { default as default5 } from "./disable-enumerable";
14
- import { forBfsEach, forDfsEach, forDfsStackEach } from "./each";
14
+ import { forBfsEach, forBfsAsyncEach, forDfsEach, forDfsAsyncEach, forDfsStackEach, forDfsStackAsyncEach } from "./each";
15
15
  import { getEncoding } from "./encoding";
16
16
  import { FlatTree } from "./flat-tree";
17
17
  import { default as default6 } from "./index-sort";
@@ -87,8 +87,11 @@ export {
87
87
  desensReplace,
88
88
  default5 as disableEnumerable,
89
89
  flatURLParams,
90
+ forBfsAsyncEach,
90
91
  forBfsEach,
92
+ forDfsAsyncEach,
91
93
  forDfsEach,
94
+ forDfsStackAsyncEach,
92
95
  forDfsStackEach,
93
96
  getEncoding,
94
97
  hash8json,
package/package.json CHANGED
@@ -1,81 +1,82 @@
1
- {
2
- "name": "@vope/utils",
3
- "version": "1.9.0",
4
- "description": "",
5
- "publishConfig": {
6
- "access": "public",
7
- "registry": "https://registry.npmjs.org/"
8
- },
9
- "types": "./dist/index.d.ts",
10
- "typings": "./dist/index.d.ts",
11
- "module": "./dist/index.js",
12
- "main": "./dist/index.js",
13
- "scripts": {
14
- "start": "esbuild ./start.ts --outfile=start.cjs --format=cjs & node ./start.cjs",
15
- "poststart": "esbuild ./pre.ts --outfile=pre.cjs --format=cjs & node ./pre.cjs",
16
- "build": "npm run start & node ./build.cjs",
17
- "premocha": "node ./build.cjs --type=test",
18
- "mocha": "mocha __tests/**/*.js",
19
- "test": "npm run mocha",
20
- "prepublishOnly": "npm run build & npm run test",
21
- "debug": "npm run start & npm run premocha",
22
- "clean": "rimraf start.cjs pre.cjs build.cjs src/index.ts dist/ __tests/ __examples/ sub_storage/"
23
- },
24
- "exports": {
25
- ".": {
26
- "types": "./dist/index.d.ts",
27
- "import": "./dist/index.js",
28
- "require": "./dist/index.cjs.js"
29
- },
30
- "./storage": {
31
- "types": "./sub_storage/offline.d.ts",
32
- "import": "./sub_storage/offline.js",
33
- "require": "./sub_storage/offline.cjs.js"
34
- }
35
- },
36
- "author": "vope",
37
- "license": "ISC",
38
- "files": [
39
- "dist",
40
- "sub_storage"
41
- ],
42
- "devDependencies": {
43
- "@babel/parser": "^7.29.3",
44
- "@babel/traverse": "^7.29.0",
45
- "@babel/types": "^7.29.0",
46
- "@rollup/plugin-alias": "^5.1.1",
47
- "@rollup/plugin-commonjs": "^29.0.2",
48
- "@rollup/plugin-json": "^6.1.0",
49
- "@rollup/plugin-node-resolve": "^16.0.3",
50
- "@rollup/plugin-typescript": "^12.3.0",
51
- "@types/babel__traverse": "^7.28.0",
52
- "@types/mocha": "^10.0.10",
53
- "@types/node": "^24.12.3",
54
- "@types/sm-crypto": "^0.3.4",
55
- "esbuild": "^0.28.0",
56
- "glob": "^13.0.6",
57
- "iconv-lite": "^0.7.2",
58
- "mocha": "^11.7.5",
59
- "puppeteer": "^24.43.0",
60
- "rimraf": "^6.1.3",
61
- "rollup": "^4.60.3",
62
- "tslib": "^2.8.1",
63
- "typescript": "^6.0.3",
64
- "uuid": "^14.0.0"
65
- },
66
- "dependencies": {
67
- "@type-challenges/utils": "^0.1.1",
68
- "@types/lodash-es": "^4.17.12",
69
- "@vope/types": "^1.3.0",
70
- "csstype": "^3.2.3",
71
- "localforage": "^1.10.0",
72
- "lodash-es": "^4.18.1",
73
- "sm-crypto": "^0.4.0"
74
- },
75
- "pnpm": {
76
- "onlyBuiltDependencies": [
77
- "esbuild",
78
- "puppeteer"
79
- ]
80
- }
81
- }
1
+ {
2
+ "name": "@vope/utils",
3
+ "version": "1.9.2",
4
+ "description": "",
5
+ "publishConfig": {
6
+ "access": "public",
7
+ "registry": "https://registry.npmjs.org/"
8
+ },
9
+ "types": "./dist/index.d.ts",
10
+ "typings": "./dist/index.d.ts",
11
+ "module": "./dist/index.js",
12
+ "main": "./dist/index.js",
13
+ "scripts": {
14
+ "start": "esbuild ./start.ts --outfile=start.cjs --format=cjs & node ./start.cjs",
15
+ "poststart": "esbuild ./pre.ts --outfile=pre.cjs --format=cjs & node ./pre.cjs",
16
+ "build": "npm run start & node ./build.cjs",
17
+ "premocha": "node ./build.cjs --type=test",
18
+ "mocha": "mocha __tests/**/*.js",
19
+ "test": "npm run mocha",
20
+ "prepublishOnly": "npm run build & npm run test",
21
+ "debug": "npm run start & npm run premocha",
22
+ "clean": "rimraf start.cjs pre.cjs build.cjs src/index.ts dist/ __tests/ __examples/ sub_storage/"
23
+ },
24
+ "exports": {
25
+ ".": {
26
+ "types": "./dist/index.d.ts",
27
+ "import": "./dist/index.js",
28
+ "require": "./dist/index.cjs.js"
29
+ },
30
+ "./storage": {
31
+ "types": "./sub_storage/offline.d.ts",
32
+ "import": "./sub_storage/offline.js",
33
+ "require": "./sub_storage/offline.cjs.js"
34
+ }
35
+ },
36
+ "author": "vope",
37
+ "license": "ISC",
38
+ "files": [
39
+ "dist",
40
+ "sub_storage",
41
+ "CHANGELOG.md"
42
+ ],
43
+ "devDependencies": {
44
+ "@babel/parser": "^7.29.3",
45
+ "@babel/traverse": "^7.29.0",
46
+ "@babel/types": "^7.29.0",
47
+ "@rollup/plugin-alias": "^5.1.1",
48
+ "@rollup/plugin-commonjs": "^29.0.2",
49
+ "@rollup/plugin-json": "^6.1.0",
50
+ "@rollup/plugin-node-resolve": "^16.0.3",
51
+ "@rollup/plugin-typescript": "^12.3.0",
52
+ "@types/babel__traverse": "^7.28.0",
53
+ "@types/mocha": "^10.0.10",
54
+ "@types/node": "^24.12.3",
55
+ "@types/sm-crypto": "^0.3.4",
56
+ "esbuild": "^0.28.0",
57
+ "glob": "^13.0.6",
58
+ "iconv-lite": "^0.7.2",
59
+ "mocha": "^11.7.5",
60
+ "puppeteer": "^24.43.0",
61
+ "rimraf": "^6.1.3",
62
+ "rollup": "^4.60.3",
63
+ "tslib": "^2.8.1",
64
+ "typescript": "^6.0.3",
65
+ "uuid": "^14.0.0"
66
+ },
67
+ "dependencies": {
68
+ "@type-challenges/utils": "^0.1.1",
69
+ "@types/lodash-es": "^4.17.12",
70
+ "@vope/types": "^1.3.0",
71
+ "csstype": "^3.2.3",
72
+ "localforage": "^1.10.0",
73
+ "lodash-es": "^4.18.1",
74
+ "sm-crypto": "^0.4.0"
75
+ },
76
+ "pnpm": {
77
+ "onlyBuiltDependencies": [
78
+ "esbuild",
79
+ "puppeteer"
80
+ ]
81
+ }
82
+ }
@@ -1,4 +1,5 @@
1
1
  {
2
+ "types": "offline.d.ts",
2
3
  "import": "offline.js",
3
4
  "require": "offline.cjs.js"
4
5
  }
@@ -1,22 +0,0 @@
1
- /**
2
- * 广度优先搜索
3
- * @param list 节点源
4
- * @param up 节点下钻,返回当前节点的子节点
5
- * @param callback 节点回调,返回false则停止搜索
6
- */
7
- export declare const forBfsEach: <T>(list: T[] | Set<T>, up: (data: T) => T[] | Set<T> | void, callback: (data: T) => boolean) => void;
8
- /**
9
- * 深度优先搜索
10
- * @param list 节点源
11
- * @param up 节点下钻,返回当前节点的子节点
12
- * @param callback 节点回调,返回false则停止搜索
13
- */
14
- export declare const forDfsEach: <T>(list: T[] | Set<T>, up: (data: T) => T[] | Set<T> | void, callback: (data: T) => boolean) => void;
15
- /**
16
- * 深度优先搜索(栈模式),回调规则为从里到外
17
- * @param list 节点源
18
- * @param up 节点下钻,返回当前节点的子节点
19
- * @param callback 节点回调,返回false则停止搜索
20
- * @description 应用场景:统计子节点的数据量
21
- */
22
- export declare const forDfsStackEach: <T>(list: T[] | Set<T>, up: (data: T) => T[] | Set<T> | void, callback: (data: T) => boolean) => void;
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes