@wener/utils 1.1.37 → 1.1.39

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 (108) hide show
  1. package/lib/browsers/download.js +20 -11
  2. package/lib/browsers/download.js.map +1 -1
  3. package/lib/cn/division/DivisionCode.js +204 -0
  4. package/lib/cn/division/DivisionCode.js.map +1 -0
  5. package/lib/cn/id/Mod11Checksum.js +46 -0
  6. package/lib/cn/id/Mod11Checksum.js.map +1 -0
  7. package/lib/cn/id/ResidentIdNumber.js +89 -0
  8. package/lib/cn/id/ResidentIdNumber.js.map +1 -0
  9. package/lib/cn/id/types.js +8 -0
  10. package/lib/cn/id/types.js.map +1 -0
  11. package/lib/cn/index.js +9 -1
  12. package/lib/cn/index.js.map +1 -1
  13. package/lib/cn/uscc/Mod31Checksum.js +52 -0
  14. package/lib/cn/uscc/Mod31Checksum.js.map +1 -0
  15. package/lib/cn/uscc/USCC.js +97 -0
  16. package/lib/cn/uscc/USCC.js.map +1 -0
  17. package/lib/cn/uscc/isUSCC.js +8 -0
  18. package/lib/cn/uscc/isUSCC.js.map +1 -0
  19. package/lib/crypto/getRandomValues.js +1 -1
  20. package/lib/crypto/getRandomValues.js.map +1 -1
  21. package/lib/crypto/randomUUID.js +1 -1
  22. package/lib/crypto/randomUUID.js.map +1 -1
  23. package/lib/crypto/randomUUIDv7.js +3 -0
  24. package/lib/crypto/randomUUIDv7.js.map +1 -0
  25. package/lib/errors/Errors.js +1 -1
  26. package/lib/errors/Errors.js.map +1 -1
  27. package/lib/fetch/HttpStatus.js.map +1 -0
  28. package/lib/fetch/createFetchWith.js +1 -1
  29. package/lib/fetch/createFetchWith.js.map +1 -1
  30. package/lib/fetch/createFetchWithRetry.js +1 -1
  31. package/lib/fetch/createFetchWithRetry.js.map +1 -1
  32. package/lib/index.js +7 -5
  33. package/lib/index.js.map +1 -1
  34. package/lib/io/ArrayBuffers.js +58 -4
  35. package/lib/io/ArrayBuffers.js.map +1 -1
  36. package/lib/io/isTransferable.js +1 -1
  37. package/lib/io/isTransferable.js.map +1 -1
  38. package/lib/io/parseDataUri.js +57 -0
  39. package/lib/io/parseDataUri.js.map +1 -0
  40. package/lib/objects/computeIfAbsent.js +14 -0
  41. package/lib/objects/computeIfAbsent.js.map +1 -0
  42. package/lib/runtime/AsyncCloser.js.map +1 -0
  43. package/lib/runtime/Closer.js.map +1 -0
  44. package/lib/runtime/getGlobalThis.js.map +1 -0
  45. package/lib/runtime/structuredClone.js.map +1 -0
  46. package/lib/server/fetch/createFetchWithProxyByNodeFetch.js +1 -1
  47. package/lib/server/fetch/createFetchWithProxyByNodeFetch.js.map +1 -1
  48. package/lib/server/fetch/createFetchWithProxyByUndici.js +1 -1
  49. package/lib/server/fetch/createFetchWithProxyByUndici.js.map +1 -1
  50. package/lib/server/getPackageDir.js +5 -4
  51. package/lib/server/getPackageDir.js.map +1 -1
  52. package/lib/server/polyfill/polyfillCrypto.js +1 -1
  53. package/lib/server/polyfill/polyfillCrypto.js.map +1 -1
  54. package/lib/server/polyfill/polyfillJsDom.js +1 -1
  55. package/lib/server/polyfill/polyfillJsDom.js.map +1 -1
  56. package/lib/server/polyfill/polyfillWebSocket.js +1 -1
  57. package/lib/server/polyfill/polyfillWebSocket.js.map +1 -1
  58. package/package.json +22 -15
  59. package/src/browsers/download.ts +20 -13
  60. package/src/cn/division/DivisionCode.ts +109 -0
  61. package/src/cn/id/Mod11Checksum.ts +29 -0
  62. package/src/cn/id/ResidentIdNumber.ts +102 -0
  63. package/src/cn/id/id.test.ts +20 -0
  64. package/src/cn/id/types.ts +26 -0
  65. package/src/cn/index.ts +13 -0
  66. package/src/cn/uscc/Mod31Checksum.ts +42 -0
  67. package/src/cn/uscc/USCC.ts +98 -0
  68. package/src/cn/uscc/isUSCC.ts +8 -0
  69. package/src/cn/uscc/uscc.test.ts +16 -0
  70. package/src/crypto/getRandomValues.ts +1 -1
  71. package/src/crypto/randomUUID.ts +1 -1
  72. package/src/crypto/randomUUIDv7.ts +1 -0
  73. package/src/errors/Errors.ts +1 -1
  74. package/src/fetch/createFetchWith.ts +1 -1
  75. package/src/fetch/createFetchWithRetry.ts +1 -1
  76. package/src/index.ts +7 -5
  77. package/src/io/ArrayBuffers.base64.test.ts +24 -0
  78. package/src/io/ArrayBuffers.ts +106 -4
  79. package/src/io/isTransferable.ts +1 -1
  80. package/src/io/parseDataUri.test.ts +34 -0
  81. package/src/io/parseDataUri.ts +66 -0
  82. package/src/objects/computeIfAbsent.ts +15 -0
  83. package/src/schema/typebox/gen/README.md +2 -0
  84. package/src/server/fetch/createFetchWithProxyByNodeFetch.ts +1 -1
  85. package/src/server/fetch/createFetchWithProxyByUndici.ts +1 -1
  86. package/src/server/getPackageDir.ts +6 -4
  87. package/src/server/polyfill/polyfillCrypto.ts +1 -1
  88. package/src/server/polyfill/polyfillJsDom.ts +1 -1
  89. package/src/server/polyfill/polyfillWebSocket.ts +1 -1
  90. package/lib/http/HttpStatus.js.map +0 -1
  91. package/lib/io/Bytes.js +0 -51
  92. package/lib/io/Bytes.js.map +0 -1
  93. package/lib/isomorphics/getGlobalThis.js.map +0 -1
  94. package/lib/isomorphics/structuredClone.js.map +0 -1
  95. package/lib/langs/AsyncCloser.js.map +0 -1
  96. package/lib/langs/Closer.js.map +0 -1
  97. package/src/io/Bytes.ts +0 -64
  98. /package/lib/{http → fetch}/HttpStatus.js +0 -0
  99. /package/lib/{langs → runtime}/AsyncCloser.js +0 -0
  100. /package/lib/{langs → runtime}/Closer.js +0 -0
  101. /package/lib/{isomorphics → runtime}/getGlobalThis.js +0 -0
  102. /package/lib/{isomorphics → runtime}/structuredClone.js +0 -0
  103. /package/src/{http → fetch}/HttpStatus.ts +0 -0
  104. /package/src/{langs → runtime}/AsyncCloser.ts +0 -0
  105. /package/src/{langs → runtime}/Closer.ts +0 -0
  106. /package/src/{isomorphics → runtime}/getGlobalThis.ts +0 -0
  107. /package/src/{isomorphics → runtime}/structuredClone.test.ts +0 -0
  108. /package/src/{isomorphics → runtime}/structuredClone.ts +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/isomorphics/structuredClone.ts"],"sourcesContent":["/* eslint no-proto:0 */\nimport { classOf } from '../langs/classOf';\n\n/**\n * Clone an object using structured cloning algorithm\n *\n * - Chrome 98, Safari 15.4, NodeJS 17\n *\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/structuredClone structuredClone}\n * @see {@link https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.structured-clone.js core-js}\n */\nexport const structuredClone: <T>(value: T, options?: StructuredSerializeOptions) => T =\n globalThis.structuredClone || _clone;\n\nfunction set(obj: any, key: any, val: any) {\n if (typeof val.value === 'object') val.value = _clone(val.value);\n if (!val.enumerable || val.get || val.set || !val.configurable || !val.writable || key === '__proto__') {\n Object.defineProperty(obj, key, val);\n } else obj[key] = val.value;\n}\n\n/**\n * @see {@link https://github.com/lukeed/klona/blob/master/src/full.js klona}\n */\nexport function _clone(x: any): any {\n // too complex\n // https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.structured-clone.js\n\n if (typeof x !== 'object') return x;\n\n let i = 0;\n let k;\n let list;\n let tmp: any;\n const str = classOf(x);\n switch (str) {\n case 'Array':\n tmp = Array(x.length);\n break;\n case 'Object':\n tmp = Object.create(x.__proto__ || null);\n break;\n case 'Set':\n tmp = new Set();\n x.forEach(function (val: any) {\n tmp.add(_clone(val));\n });\n break;\n case 'Map':\n tmp = new Map();\n x.forEach(function (val: any, key: any) {\n tmp.set(_clone(key), _clone(val));\n });\n break;\n case 'Date':\n tmp = new Date(+x);\n break;\n case 'RegExp':\n tmp = new RegExp(x.source, x.flags);\n break;\n case 'DataView':\n tmp = new x.constructor(_clone(x.buffer));\n break;\n case 'ArrayBuffer':\n tmp = x.slice(0);\n break;\n default:\n // typed arrays\n if (str.endsWith('Array')) {\n // ArrayBuffer.isView(x)\n // ~> `new` bcuz `Buffer.slice` => ref\n tmp = new x.constructor(x);\n }\n }\n\n if (tmp) {\n for (list = Object.getOwnPropertySymbols(x); i < list.length; i++) {\n set(tmp, list[i], Object.getOwnPropertyDescriptor(x, list[i]));\n }\n\n for (i = 0, list = Object.getOwnPropertyNames(x); i < list.length; i++) {\n if (Object.hasOwnProperty.call(tmp, (k = list[i])) && tmp[k] === x[k]) continue;\n set(tmp, k, Object.getOwnPropertyDescriptor(x, k));\n }\n }\n\n return tmp || x;\n}\n"],"names":["classOf","structuredClone","globalThis","_clone","set","obj","key","val","value","enumerable","get","configurable","writable","Object","defineProperty","x","i","k","list","tmp","str","Array","length","create","__proto__","Set","forEach","add","Map","Date","RegExp","source","flags","constructor","buffer","slice","endsWith","getOwnPropertySymbols","getOwnPropertyDescriptor","getOwnPropertyNames","hasOwnProperty","call"],"mappings":"AAAA,qBAAqB,GACrB,SAASA,OAAO,QAAQ,mBAAmB;AAE3C;;;;;;;CAOC,GACD,OAAO,MAAMC,kBACXC,WAAWD,eAAe,IAAIE,OAAO;AAEvC,SAASC,IAAIC,GAAQ,EAAEC,GAAQ,EAAEC,GAAQ;IACvC,IAAI,OAAOA,IAAIC,KAAK,KAAK,UAAUD,IAAIC,KAAK,GAAGL,OAAOI,IAAIC,KAAK;IAC/D,IAAI,CAACD,IAAIE,UAAU,IAAIF,IAAIG,GAAG,IAAIH,IAAIH,GAAG,IAAI,CAACG,IAAII,YAAY,IAAI,CAACJ,IAAIK,QAAQ,IAAIN,QAAQ,aAAa;QACtGO,OAAOC,cAAc,CAACT,KAAKC,KAAKC;IAClC,OAAOF,GAAG,CAACC,IAAI,GAAGC,IAAIC,KAAK;AAC7B;AAEA;;CAEC,GACD,OAAO,SAASL,OAAOY,CAAM;IAC3B,cAAc;IACd,mGAAmG;IAEnG,IAAI,OAAOA,MAAM,UAAU,OAAOA;IAElC,IAAIC,IAAI;IACR,IAAIC;IACJ,IAAIC;IACJ,IAAIC;IACJ,MAAMC,MAAMpB,QAAQe;IACpB,OAAQK;QACN,KAAK;YACHD,MAAME,MAAMN,EAAEO,MAAM;YACpB;QACF,KAAK;YACHH,MAAMN,OAAOU,MAAM,CAACR,EAAES,SAAS,IAAI;YACnC;QACF,KAAK;YACHL,MAAM,IAAIM;YACVV,EAAEW,OAAO,CAAC,SAAUnB,GAAQ;gBAC1BY,IAAIQ,GAAG,CAACxB,OAAOI;YACjB;YACA;QACF,KAAK;YACHY,MAAM,IAAIS;YACVb,EAAEW,OAAO,CAAC,SAAUnB,GAAQ,EAAED,GAAQ;gBACpCa,IAAIf,GAAG,CAACD,OAAOG,MAAMH,OAAOI;YAC9B;YACA;QACF,KAAK;YACHY,MAAM,IAAIU,KAAK,CAACd;YAChB;QACF,KAAK;YACHI,MAAM,IAAIW,OAAOf,EAAEgB,MAAM,EAAEhB,EAAEiB,KAAK;YAClC;QACF,KAAK;YACHb,MAAM,IAAIJ,EAAEkB,WAAW,CAAC9B,OAAOY,EAAEmB,MAAM;YACvC;QACF,KAAK;YACHf,MAAMJ,EAAEoB,KAAK,CAAC;YACd;QACF;YACE,eAAe;YACf,IAAIf,IAAIgB,QAAQ,CAAC,UAAU;gBACzB,wBAAwB;gBACxB,sCAAsC;gBACtCjB,MAAM,IAAIJ,EAAEkB,WAAW,CAAClB;YAC1B;IACJ;IAEA,IAAII,KAAK;QACP,IAAKD,OAAOL,OAAOwB,qBAAqB,CAACtB,IAAIC,IAAIE,KAAKI,MAAM,EAAEN,IAAK;YACjEZ,IAAIe,KAAKD,IAAI,CAACF,EAAE,EAAEH,OAAOyB,wBAAwB,CAACvB,GAAGG,IAAI,CAACF,EAAE;QAC9D;QAEA,IAAKA,IAAI,GAAGE,OAAOL,OAAO0B,mBAAmB,CAACxB,IAAIC,IAAIE,KAAKI,MAAM,EAAEN,IAAK;YACtE,IAAIH,OAAO2B,cAAc,CAACC,IAAI,CAACtB,KAAMF,IAAIC,IAAI,CAACF,EAAE,KAAMG,GAAG,CAACF,EAAE,KAAKF,CAAC,CAACE,EAAE,EAAE;YACvEb,IAAIe,KAAKF,GAAGJ,OAAOyB,wBAAwB,CAACvB,GAAGE;QACjD;IACF;IAEA,OAAOE,OAAOJ;AAChB"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/langs/AsyncCloser.ts"],"sourcesContent":["type AsyncClosable = { close(): void | Promise<void> } | (() => void | Promise<void>) | AsyncDisposable | Disposable;\n\n/**\n * @see AsyncDisposableStack\n */\nexport class AsyncCloser implements AsyncDisposable {\n closers: Array<AsyncClosable> = [];\n\n defer(closer: AsyncClosable | null | undefined) {\n if (!closer) {\n return;\n }\n this.closers.push(closer);\n }\n\n add<T extends AsyncClosable | null | undefined>(closer: T): T {\n if (!closer) {\n return closer;\n }\n this.closers.push(closer);\n return closer;\n }\n\n async [Symbol.asyncDispose]() {\n for (let closer of this.closers) {\n let o;\n if (typeof closer === 'function') {\n o = closer();\n } else if (Symbol.asyncDispose in closer) {\n o = closer[Symbol.asyncDispose]();\n } else if (Symbol.dispose in closer) {\n closer[Symbol.dispose]();\n } else {\n o = closer.close();\n }\n if (o && typeof o.then === 'function') {\n await o;\n }\n }\n }\n\n close() {\n return this[Symbol.asyncDispose]();\n }\n}\n"],"names":["AsyncCloser","closers","defer","closer","push","add","Symbol","asyncDispose","o","dispose","close","then"],"mappings":"AAEA;;CAEC,GACD,OAAO,MAAMA;IACXC,UAAgC,EAAE,CAAC;IAEnCC,MAAMC,MAAwC,EAAE;QAC9C,IAAI,CAACA,QAAQ;YACX;QACF;QACA,IAAI,CAACF,OAAO,CAACG,IAAI,CAACD;IACpB;IAEAE,IAAgDF,MAAS,EAAK;QAC5D,IAAI,CAACA,QAAQ;YACX,OAAOA;QACT;QACA,IAAI,CAACF,OAAO,CAACG,IAAI,CAACD;QAClB,OAAOA;IACT;IAEA,MAAM,CAACG,OAAOC,YAAY,CAAC,GAAG;QAC5B,KAAK,IAAIJ,UAAU,IAAI,CAACF,OAAO,CAAE;YAC/B,IAAIO;YACJ,IAAI,OAAOL,WAAW,YAAY;gBAChCK,IAAIL;YACN,OAAO,IAAIG,OAAOC,YAAY,IAAIJ,QAAQ;gBACxCK,IAAIL,MAAM,CAACG,OAAOC,YAAY,CAAC;YACjC,OAAO,IAAID,OAAOG,OAAO,IAAIN,QAAQ;gBACnCA,MAAM,CAACG,OAAOG,OAAO,CAAC;YACxB,OAAO;gBACLD,IAAIL,OAAOO,KAAK;YAClB;YACA,IAAIF,KAAK,OAAOA,EAAEG,IAAI,KAAK,YAAY;gBACrC,MAAMH;YACR;QACF;IACF;IAEAE,QAAQ;QACN,OAAO,IAAI,CAACJ,OAAOC,YAAY,CAAC;IAClC;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/langs/Closer.ts"],"sourcesContent":["type Closable = { close(): void } | (() => void) | Disposable;\n\n/**\n * @see DisposableStack\n */\nexport class Closer implements Disposable {\n closers: Array<Closable> = [];\n\n defer(closer: Closable | null | undefined) {\n if (!closer) {\n return;\n }\n this.closers.push(closer);\n }\n\n add<T extends Closable | null | undefined>(closer: T): T {\n if (!closer) {\n return closer;\n }\n this.closers.push(closer);\n return closer;\n }\n\n [Symbol.dispose]() {\n for (let closer of this.closers) {\n if (typeof closer === 'function') {\n closer();\n } else if (Symbol.dispose in closer) {\n closer[Symbol.dispose]();\n } else {\n closer.close();\n }\n }\n }\n\n close() {\n this[Symbol.dispose]();\n }\n}\n"],"names":["Closer","closers","defer","closer","push","add","Symbol","dispose","close"],"mappings":"AAEA;;CAEC,GACD,OAAO,MAAMA;IACXC,UAA2B,EAAE,CAAC;IAE9BC,MAAMC,MAAmC,EAAE;QACzC,IAAI,CAACA,QAAQ;YACX;QACF;QACA,IAAI,CAACF,OAAO,CAACG,IAAI,CAACD;IACpB;IAEAE,IAA2CF,MAAS,EAAK;QACvD,IAAI,CAACA,QAAQ;YACX,OAAOA;QACT;QACA,IAAI,CAACF,OAAO,CAACG,IAAI,CAACD;QAClB,OAAOA;IACT;IAEA,CAACG,OAAOC,OAAO,CAAC,GAAG;QACjB,KAAK,IAAIJ,UAAU,IAAI,CAACF,OAAO,CAAE;YAC/B,IAAI,OAAOE,WAAW,YAAY;gBAChCA;YACF,OAAO,IAAIG,OAAOC,OAAO,IAAIJ,QAAQ;gBACnCA,MAAM,CAACG,OAAOC,OAAO,CAAC;YACxB,OAAO;gBACLJ,OAAOK,KAAK;YACd;QACF;IACF;IAEAA,QAAQ;QACN,IAAI,CAACF,OAAOC,OAAO,CAAC;IACtB;AACF"}
package/src/io/Bytes.ts DELETED
@@ -1,64 +0,0 @@
1
- const objectToString = Object.prototype.toString;
2
- const uint8ArrayStringified = '[object Uint8Array]';
3
-
4
- /**
5
- * Utils for UInt8Array
6
- *
7
- * @see https://github.com/sindresorhus/uint8array-extras/blob/main/index.js
8
- */
9
- export class Bytes {
10
- static #decoder = new globalThis.TextDecoder();
11
-
12
- static isUint8Array(value: any): value is Uint8Array {
13
- if (!value) {
14
- return false;
15
- }
16
-
17
- if (value.constructor === Uint8Array) {
18
- return true;
19
- }
20
-
21
- return objectToString.call(value) === uint8ArrayStringified;
22
- }
23
-
24
- static require(value: any): Uint8Array {
25
- if (!this.isUint8Array(value)) {
26
- throw new TypeError(`Expected \`Uint8Array\`, got \`${typeof value}\``);
27
- }
28
- return value;
29
- }
30
-
31
- static toUint8Array(value: ArrayBuffer | ArrayBufferView): Uint8Array {
32
- if (value instanceof ArrayBuffer) {
33
- return new Uint8Array(value);
34
- }
35
-
36
- if (ArrayBuffer.isView(value)) {
37
- return new Uint8Array(value.buffer, value.byteOffset, value.byteLength);
38
- }
39
-
40
- throw new TypeError(`Unsupported value, got \`${typeof value}\`.`);
41
- }
42
-
43
- static concat(arrays: Uint8Array[], totalLength: number): Uint8Array {
44
- if (arrays.length === 0) {
45
- return new Uint8Array(0);
46
- }
47
-
48
- totalLength ??= arrays.reduce((accumulator, currentValue) => accumulator + currentValue.length, 0);
49
-
50
- const returnValue = new Uint8Array(totalLength);
51
-
52
- let offset = 0;
53
- for (const array of arrays) {
54
- returnValue.set(this.require(array), offset);
55
- offset += array.length;
56
- }
57
-
58
- return returnValue;
59
- }
60
-
61
- static toString(value: Uint8Array) {
62
- return this.#decoder.decode(value);
63
- }
64
- }
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