@wener/utils 1.1.31 → 1.1.33
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.
- package/dist/LICENSE.txt +1 -0
- package/dist/cjs/index.cjs +21 -0
- package/dist/cjs/index.cjs.map +1 -0
- package/dist/esm/index.js +21 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/system/index.js +21 -0
- package/dist/system/index.js.map +1 -0
- package/package.json +37 -69
- package/src/asyncs/nextOfAsyncIterator.ts +13 -1
- package/src/asyncs/timeout.ts +15 -12
- package/src/cn/index.ts +1 -0
- package/src/cn/parseChineseNumber.test.ts +24 -0
- package/src/cn/parseChineseNumber.ts +97 -0
- package/src/crypto/getRandomValues.ts +5 -3
- package/src/crypto/hashing.test.ts +1 -1
- package/src/errors/Errors.test.ts +22 -0
- package/src/errors/Errors.ts +1 -4
- package/src/index.ts +2 -0
- package/src/io/Bytes.ts +64 -0
- package/src/isomorphics/structuredClone.ts +0 -3
- package/src/langs/AsyncCloser.ts +45 -0
- package/src/langs/Closer.ts +39 -0
- package/src/server/index.ts +6 -0
- package/src/{servers → server}/polyfill/polyfillWebSocket.ts +5 -0
- package/src/{types/index.d.ts → types.d.ts} +12 -0
- package/tsconfig.json +7 -5
- package/index.ts +0 -1
- package/lib/arrays/MaybeArray.js +0 -41
- package/lib/arrays/MaybeArray.js.map +0 -1
- package/lib/arrays/arrayFromAsync.js +0 -7
- package/lib/arrays/arrayFromAsync.js.map +0 -1
- package/lib/asyncs/AsyncInterval.js +0 -14
- package/lib/asyncs/AsyncInterval.js.map +0 -1
- package/lib/asyncs/MaybePromise.js +0 -3
- package/lib/asyncs/MaybePromise.js.map +0 -1
- package/lib/asyncs/createAsyncIterator.js +0 -41
- package/lib/asyncs/createAsyncIterator.js.map +0 -1
- package/lib/asyncs/createLazyPromise.js +0 -65
- package/lib/asyncs/createLazyPromise.js.map +0 -1
- package/lib/asyncs/firstOfAsyncIterator.js +0 -11
- package/lib/asyncs/firstOfAsyncIterator.js.map +0 -1
- package/lib/asyncs/generatorOfStream.js +0 -16
- package/lib/asyncs/generatorOfStream.js.map +0 -1
- package/lib/asyncs/isIterator.js +0 -5
- package/lib/asyncs/isIterator.js.map +0 -1
- package/lib/asyncs/isPromise.js +0 -5
- package/lib/asyncs/isPromise.js.map +0 -1
- package/lib/asyncs/isThenable.js +0 -6
- package/lib/asyncs/isThenable.js.map +0 -1
- package/lib/asyncs/nextOfAsyncIterator.js +0 -25
- package/lib/asyncs/nextOfAsyncIterator.js.map +0 -1
- package/lib/asyncs/promiseOfCallback.js +0 -17
- package/lib/asyncs/promiseOfCallback.js.map +0 -1
- package/lib/asyncs/sleep.js +0 -3
- package/lib/asyncs/sleep.js.map +0 -1
- package/lib/asyncs/timeout.js +0 -25
- package/lib/asyncs/timeout.js.map +0 -1
- package/lib/browsers/copy.js +0 -53
- package/lib/browsers/copy.js.map +0 -1
- package/lib/browsers/download.js +0 -41
- package/lib/browsers/download.js.map +0 -1
- package/lib/browsers/getFileFromDataTransfer.js +0 -45
- package/lib/browsers/getFileFromDataTransfer.js.map +0 -1
- package/lib/browsers/loaders.js +0 -49
- package/lib/browsers/loaders.js.map +0 -1
- package/lib/crypto/base.js +0 -7
- package/lib/crypto/base.js.map +0 -1
- package/lib/crypto/getNodeCrypto.js +0 -18
- package/lib/crypto/getNodeCrypto.js.map +0 -1
- package/lib/crypto/getRandomValues.js +0 -29
- package/lib/crypto/getRandomValues.js.map +0 -1
- package/lib/crypto/hashing.js +0 -57
- package/lib/crypto/hashing.js.map +0 -1
- package/lib/crypto/md5.bench.js +0 -21
- package/lib/crypto/md5.bench.js.map +0 -1
- package/lib/crypto/md5.d.js +0 -3
- package/lib/crypto/md5.d.js.map +0 -1
- package/lib/crypto/md5.js +0 -121
- package/lib/crypto/md5.js.map +0 -1
- package/lib/crypto/pem/pem.js +0 -35
- package/lib/crypto/pem/pem.js.map +0 -1
- package/lib/crypto/randomUUID.js +0 -16
- package/lib/crypto/randomUUID.js.map +0 -1
- package/lib/crypto/ulid.js +0 -153
- package/lib/crypto/ulid.js.map +0 -1
- package/lib/errors/Errors.js +0 -181
- package/lib/errors/Errors.js.map +0 -1
- package/lib/fetch/createFetchWith.js +0 -23
- package/lib/fetch/createFetchWith.js.map +0 -1
- package/lib/fetch/createFetchWithLogging.js +0 -25
- package/lib/fetch/createFetchWithLogging.js.map +0 -1
- package/lib/fetch/createFetchWithRetry.js +0 -66
- package/lib/fetch/createFetchWithRetry.js.map +0 -1
- package/lib/fetch/dumpRequest.js +0 -45
- package/lib/fetch/dumpRequest.js.map +0 -1
- package/lib/fetch/dumpResponse.js +0 -16
- package/lib/fetch/dumpResponse.js.map +0 -1
- package/lib/fetch/index.js +0 -7
- package/lib/fetch/index.js.map +0 -1
- package/lib/fetch/types.js +0 -3
- package/lib/fetch/types.js.map +0 -1
- package/lib/http/HttpStatus.js +0 -94
- package/lib/http/HttpStatus.js.map +0 -1
- package/lib/i18n/createTranslate.js +0 -54
- package/lib/i18n/createTranslate.js.map +0 -1
- package/lib/index.js +0 -80
- package/lib/index.js.map +0 -1
- package/lib/io/AbstractEncoding.js +0 -7
- package/lib/io/AbstractEncoding.js.map +0 -1
- package/lib/io/ArrayBuffer.test-d.js +0 -7
- package/lib/io/ArrayBuffer.test-d.js.map +0 -1
- package/lib/io/ArrayBuffers.js +0 -210
- package/lib/io/ArrayBuffers.js.map +0 -1
- package/lib/io/Buffer.js +0 -25
- package/lib/io/Buffer.js.map +0 -1
- package/lib/io/base64.js +0 -54
- package/lib/io/base64.js.map +0 -1
- package/lib/io/isBuffer.js +0 -9
- package/lib/io/isBuffer.js.map +0 -1
- package/lib/io/isTransferable.js +0 -30
- package/lib/io/isTransferable.js.map +0 -1
- package/lib/isomorphics/getGlobalThis.js +0 -19
- package/lib/isomorphics/getGlobalThis.js.map +0 -1
- package/lib/isomorphics/structuredClone.js +0 -80
- package/lib/isomorphics/structuredClone.js.map +0 -1
- package/lib/langs/MaybeFunction.js +0 -9
- package/lib/langs/MaybeFunction.js.map +0 -1
- package/lib/langs/classOf.js +0 -5
- package/lib/langs/classOf.js.map +0 -1
- package/lib/langs/deepEqual.js +0 -87
- package/lib/langs/deepEqual.js.map +0 -1
- package/lib/langs/deepFreeze.js +0 -20
- package/lib/langs/deepFreeze.js.map +0 -1
- package/lib/langs/hashCode.ignored.js +0 -112
- package/lib/langs/hashCode.ignored.js.map +0 -1
- package/lib/langs/isClass.js +0 -5
- package/lib/langs/isClass.js.map +0 -1
- package/lib/langs/isDefined.js +0 -5
- package/lib/langs/isDefined.js.map +0 -1
- package/lib/langs/isEmptyObject.js +0 -6
- package/lib/langs/isEmptyObject.js.map +0 -1
- package/lib/langs/isFunction.js +0 -5
- package/lib/langs/isFunction.js.map +0 -1
- package/lib/langs/isPlainObject.js +0 -10
- package/lib/langs/isPlainObject.js.map +0 -1
- package/lib/langs/memoize.js +0 -22
- package/lib/langs/memoize.js.map +0 -1
- package/lib/langs/parseBoolean.js +0 -30
- package/lib/langs/parseBoolean.js.map +0 -1
- package/lib/langs/shallowClone.js +0 -15
- package/lib/langs/shallowClone.js.map +0 -1
- package/lib/langs/shallowEqual.js +0 -24
- package/lib/langs/shallowEqual.js.map +0 -1
- package/lib/libs/ms.js +0 -137
- package/lib/libs/ms.js.map +0 -1
- package/lib/logging/Logger.js +0 -5
- package/lib/logging/Logger.js.map +0 -1
- package/lib/logging/createChildLogger.js +0 -16
- package/lib/logging/createChildLogger.js.map +0 -1
- package/lib/logging/createLogger.js +0 -63
- package/lib/logging/createLogger.js.map +0 -1
- package/lib/logging/createNoopLogger.js +0 -13
- package/lib/logging/createNoopLogger.js.map +0 -1
- package/lib/logging/slog.js +0 -143
- package/lib/logging/slog.js.map +0 -1
- package/lib/maths/clamp.js +0 -21
- package/lib/maths/clamp.js.map +0 -1
- package/lib/maths/random.js +0 -17
- package/lib/maths/random.js.map +0 -1
- package/lib/modules/isModule.js +0 -7
- package/lib/modules/isModule.js.map +0 -1
- package/lib/modules/parseModuleId.js +0 -39
- package/lib/modules/parseModuleId.js.map +0 -1
- package/lib/objects/get.js +0 -16
- package/lib/objects/get.js.map +0 -1
- package/lib/objects/get.test-d.js +0 -33
- package/lib/objects/get.test-d.js.map +0 -1
- package/lib/objects/merge/index.js +0 -3
- package/lib/objects/merge/index.js.map +0 -1
- package/lib/objects/merge/isMergeableObject.js +0 -19
- package/lib/objects/merge/isMergeableObject.js.map +0 -1
- package/lib/objects/merge/merge.js +0 -89
- package/lib/objects/merge/merge.js.map +0 -1
- package/lib/objects/parseObjectPath.js +0 -39
- package/lib/objects/parseObjectPath.js.map +0 -1
- package/lib/objects/set.js +0 -38
- package/lib/objects/set.js.map +0 -1
- package/lib/schema/typebox/gen/codegen/common/encoder.js +0 -100
- package/lib/schema/typebox/gen/codegen/common/encoder.js.map +0 -1
- package/lib/schema/typebox/gen/codegen/common/formatter.js +0 -33
- package/lib/schema/typebox/gen/codegen/common/formatter.js.map +0 -1
- package/lib/schema/typebox/gen/codegen/common/index.js +0 -5
- package/lib/schema/typebox/gen/codegen/common/index.js.map +0 -1
- package/lib/schema/typebox/gen/codegen/common/jsdoc.js +0 -117
- package/lib/schema/typebox/gen/codegen/common/jsdoc.js.map +0 -1
- package/lib/schema/typebox/gen/codegen/expression/compiler.js +0 -367
- package/lib/schema/typebox/gen/codegen/expression/compiler.js.map +0 -1
- package/lib/schema/typebox/gen/codegen/expression/errors.js +0 -259
- package/lib/schema/typebox/gen/codegen/expression/errors.js.map +0 -1
- package/lib/schema/typebox/gen/codegen/expression/evaluator.js +0 -254
- package/lib/schema/typebox/gen/codegen/expression/evaluator.js.map +0 -1
- package/lib/schema/typebox/gen/codegen/expression/expression.js +0 -384
- package/lib/schema/typebox/gen/codegen/expression/expression.js.map +0 -1
- package/lib/schema/typebox/gen/codegen/expression/index.js +0 -6
- package/lib/schema/typebox/gen/codegen/expression/index.js.map +0 -1
- package/lib/schema/typebox/gen/codegen/index.js +0 -5
- package/lib/schema/typebox/gen/codegen/index.js.map +0 -1
- package/lib/schema/typebox/gen/codegen/model/index.js +0 -16
- package/lib/schema/typebox/gen/codegen/model/index.js.map +0 -1
- package/lib/schema/typebox/gen/codegen/model/model-to-arktype.js +0 -239
- package/lib/schema/typebox/gen/codegen/model/model-to-arktype.js.map +0 -1
- package/lib/schema/typebox/gen/codegen/model/model-to-expression.js +0 -359
- package/lib/schema/typebox/gen/codegen/model/model-to-expression.js.map +0 -1
- package/lib/schema/typebox/gen/codegen/model/model-to-grpc.js +0 -217
- package/lib/schema/typebox/gen/codegen/model/model-to-grpc.js.map +0 -1
- package/lib/schema/typebox/gen/codegen/model/model-to-io-ts.js +0 -253
- package/lib/schema/typebox/gen/codegen/model/model-to-io-ts.js.map +0 -1
- package/lib/schema/typebox/gen/codegen/model/model-to-javascript.js +0 -47
- package/lib/schema/typebox/gen/codegen/model/model-to-javascript.js.map +0 -1
- package/lib/schema/typebox/gen/codegen/model/model-to-json-schema.js +0 -171
- package/lib/schema/typebox/gen/codegen/model/model-to-json-schema.js.map +0 -1
- package/lib/schema/typebox/gen/codegen/model/model-to-typebox.js +0 -33
- package/lib/schema/typebox/gen/codegen/model/model-to-typebox.js.map +0 -1
- package/lib/schema/typebox/gen/codegen/model/model-to-typescript.js +0 -164
- package/lib/schema/typebox/gen/codegen/model/model-to-typescript.js.map +0 -1
- package/lib/schema/typebox/gen/codegen/model/model-to-valibot.js +0 -218
- package/lib/schema/typebox/gen/codegen/model/model-to-valibot.js.map +0 -1
- package/lib/schema/typebox/gen/codegen/model/model-to-value.js +0 -43
- package/lib/schema/typebox/gen/codegen/model/model-to-value.js.map +0 -1
- package/lib/schema/typebox/gen/codegen/model/model-to-yrel.js +0 -206
- package/lib/schema/typebox/gen/codegen/model/model-to-yrel.js.map +0 -1
- package/lib/schema/typebox/gen/codegen/model/model-to-yup.js +0 -204
- package/lib/schema/typebox/gen/codegen/model/model-to-yup.js.map +0 -1
- package/lib/schema/typebox/gen/codegen/model/model-to-zod.js +0 -227
- package/lib/schema/typebox/gen/codegen/model/model-to-zod.js.map +0 -1
- package/lib/schema/typebox/gen/codegen/model/model.js +0 -27
- package/lib/schema/typebox/gen/codegen/model/model.js.map +0 -1
- package/lib/schema/typebox/gen/codegen/typescript/index.js +0 -4
- package/lib/schema/typebox/gen/codegen/typescript/index.js.map +0 -1
- package/lib/schema/typebox/gen/codegen/typescript/typescript-to-model.js +0 -48
- package/lib/schema/typebox/gen/codegen/typescript/typescript-to-model.js.map +0 -1
- package/lib/schema/typebox/gen/codegen/typescript/typescript-to-typebox.js +0 -596
- package/lib/schema/typebox/gen/codegen/typescript/typescript-to-typebox.js.map +0 -1
- package/lib/schema/typebox/gen/index.js +0 -3
- package/lib/schema/typebox/gen/index.js.map +0 -1
- package/lib/schema/typebox/index.js +0 -3
- package/lib/schema/typebox/index.js.map +0 -1
- package/lib/schema/typebox/typebox.js +0 -23
- package/lib/schema/typebox/typebox.js.map +0 -1
- package/lib/server.js +0 -7
- package/lib/server.js.map +0 -1
- package/lib/servers/crypto/md5.js +0 -6
- package/lib/servers/crypto/md5.js.map +0 -1
- package/lib/servers/fetch/createFetchWithProxy.js +0 -4
- package/lib/servers/fetch/createFetchWithProxy.js.map +0 -1
- package/lib/servers/fetch/createFetchWithProxyByNodeFetch.js +0 -38
- package/lib/servers/fetch/createFetchWithProxyByNodeFetch.js.map +0 -1
- package/lib/servers/fetch/createFetchWithProxyByUndici.js +0 -64
- package/lib/servers/fetch/createFetchWithProxyByUndici.js.map +0 -1
- package/lib/servers/getPackageDir.js +0 -16
- package/lib/servers/getPackageDir.js.map +0 -1
- package/lib/servers/jsdom.js +0 -3
- package/lib/servers/jsdom.js.map +0 -1
- package/lib/servers/node-fetch.js +0 -4
- package/lib/servers/node-fetch.js.map +0 -1
- package/lib/servers/polyfill/polyfillBrowser.js +0 -17
- package/lib/servers/polyfill/polyfillBrowser.js.map +0 -1
- package/lib/servers/polyfill/polyfillCrypto.js +0 -11
- package/lib/servers/polyfill/polyfillCrypto.js.map +0 -1
- package/lib/servers/polyfill/polyfillFetch.js +0 -25
- package/lib/servers/polyfill/polyfillFetch.js.map +0 -1
- package/lib/servers/polyfill/polyfillJsDom.js +0 -64
- package/lib/servers/polyfill/polyfillJsDom.js.map +0 -1
- package/lib/servers/polyfill/polyfillWebSocket.js +0 -16
- package/lib/servers/polyfill/polyfillWebSocket.js.map +0 -1
- package/lib/servers/ws.js +0 -3
- package/lib/servers/ws.js.map +0 -1
- package/lib/strings/camelCase.js +0 -58
- package/lib/strings/camelCase.js.map +0 -1
- package/lib/strings/formatBytes.js +0 -43
- package/lib/strings/formatBytes.js.map +0 -1
- package/lib/strings/renderTemplate.js +0 -32
- package/lib/strings/renderTemplate.js.map +0 -1
- package/lib/typedoc.js +0 -4
- package/lib/typedoc.js.map +0 -1
- package/lib/types/global.d.js +0 -2
- package/lib/types/global.d.js.map +0 -1
- package/lib/types/index.d.js +0 -6
- package/lib/types/index.d.js.map +0 -1
- package/lib/validations/asserts.js +0 -14
- package/lib/validations/asserts.js.map +0 -1
- package/lib/validations/isUUID.js +0 -5
- package/lib/validations/isUUID.js.map +0 -1
- package/lib/validations/parseTimestamp.js +0 -29
- package/lib/validations/parseTimestamp.js.map +0 -1
- package/schema/typebox/gen/index.ts +0 -1
- package/schema/typebox/index.ts +0 -1
- package/server/jsdom.ts +0 -1
- package/server/node-fetch.ts +0 -1
- package/server/ws.ts +0 -1
- package/server.ts +0 -1
- package/src/server.ts +0 -6
- package/src/types/global.d.ts +0 -11
- package/types.d.ts +0 -1
- /package/src/{servers → server}/crypto/md5.ts +0 -0
- /package/src/{servers → server}/fetch/createFetchWithProxy.ts +0 -0
- /package/src/{servers → server}/fetch/createFetchWithProxyByNodeFetch.ts +0 -0
- /package/src/{servers → server}/fetch/createFetchWithProxyByUndici.ts +0 -0
- /package/src/{servers → server}/getPackageDir.ts +0 -0
- /package/src/{servers → server}/jsdom.ts +0 -0
- /package/src/{servers → server}/node-fetch.ts +0 -0
- /package/src/{servers → server}/polyfill/polyfillBrowser.test.ts +0 -0
- /package/src/{servers → server}/polyfill/polyfillBrowser.ts +0 -0
- /package/src/{servers → server}/polyfill/polyfillCrypto.ts +0 -0
- /package/src/{servers → server}/polyfill/polyfillFetch.ts +0 -0
- /package/src/{servers → server}/polyfill/polyfillJsDom.ts +0 -0
- /package/src/{servers → server}/ws.ts +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/isomorphics/structuredClone.ts"],"sourcesContent":["/* eslint no-proto:0 */\nimport { classOf } from '../langs/classOf';\nimport { getGlobalThis } from './getGlobalThis';\n\nconst globalThis = getGlobalThis();\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","getGlobalThis","globalThis","structuredClone","_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;AAC3C,SAASC,aAAa,QAAQ,kBAAkB;AAEhD,MAAMC,aAAaD;AAEnB;;;;;;;CAOC,GACD,OAAO,MAAME,kBACXD,WAAWC,eAAe,IAAIC,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,MAAMrB,QAAQgB;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/MaybeFunction.ts"],"sourcesContent":["export type MaybeFunction<T, P extends any[] = any[]> = T | ((...args: P) => T);\n\nexport function maybeFunction<T, P extends any[] = any[]>(v: MaybeFunction<T, P>, ...args: P): T {\n // https://github.com/microsoft/TypeScript/issues/37663#issuecomment-759728342\n if (v instanceof Function) {\n return v(...args);\n }\n return v;\n}\n"],"names":["maybeFunction","v","args","Function"],"mappings":"AAEA,OAAO,SAASA,cAA0CC,CAAsB,EAAE,GAAGC,IAAO;IAC1F,8EAA8E;IAC9E,IAAID,aAAaE,UAAU;QACzB,OAAOF,KAAKC;IACd;IACA,OAAOD;AACT"}
|
package/lib/langs/classOf.js
DELETED
package/lib/langs/classOf.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/langs/classOf.ts"],"sourcesContent":["export function classOf(o: any) {\n return Object.prototype.toString.call(o).slice(8, -1);\n}\n"],"names":["classOf","o","Object","prototype","toString","call","slice"],"mappings":"AAAA,OAAO,SAASA,QAAQC,CAAM;IAC5B,OAAOC,OAAOC,SAAS,CAACC,QAAQ,CAACC,IAAI,CAACJ,GAAGK,KAAK,CAAC,GAAG,CAAC;AACrD"}
|
package/lib/langs/deepEqual.js
DELETED
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
const has = Object.prototype.hasOwnProperty;
|
|
2
|
-
const hasElementType = typeof Element !== 'undefined';
|
|
3
|
-
function find(iter, tar, key) {
|
|
4
|
-
for (key of iter.keys()){
|
|
5
|
-
if (deepEqual(key, tar)) return key;
|
|
6
|
-
}
|
|
7
|
-
}
|
|
8
|
-
/**
|
|
9
|
-
* deep equal - support react, dom, Date, RegExp, Array, ArrayBuffer, Set, Map, Object
|
|
10
|
-
* @see {@link https://github.com/lukeed/dequal/blob/master/src/lite.js dequal/src/lite.js}
|
|
11
|
-
* @see {@link https://github.com/FormidableLabs/react-fast-compare/blob/master/index.js react-fast-compare/index.js}
|
|
12
|
-
*/ export function deepEqual(foo, bar) {
|
|
13
|
-
let ctor, len, tmp;
|
|
14
|
-
if (foo === bar) return true;
|
|
15
|
-
if (foo && bar && (ctor = foo.constructor) === bar.constructor) {
|
|
16
|
-
if (ctor === Date) return foo.getTime() === bar.getTime();
|
|
17
|
-
if (ctor === RegExp) return foo.toString() === bar.toString();
|
|
18
|
-
if (ctor === Array) {
|
|
19
|
-
if ((len = foo.length) === bar.length) {
|
|
20
|
-
while(len-- && deepEqual(foo[len], bar[len]));
|
|
21
|
-
}
|
|
22
|
-
return len === -1;
|
|
23
|
-
}
|
|
24
|
-
if (ctor === Set) {
|
|
25
|
-
if (foo.size !== bar.size) {
|
|
26
|
-
return false;
|
|
27
|
-
}
|
|
28
|
-
for (len of foo){
|
|
29
|
-
tmp = len;
|
|
30
|
-
if (tmp && typeof tmp === 'object') {
|
|
31
|
-
tmp = find(bar, tmp);
|
|
32
|
-
if (!tmp) return false;
|
|
33
|
-
}
|
|
34
|
-
if (!bar.has(tmp)) return false;
|
|
35
|
-
}
|
|
36
|
-
return true;
|
|
37
|
-
}
|
|
38
|
-
if (ctor === Map) {
|
|
39
|
-
if (foo.size !== bar.size) {
|
|
40
|
-
return false;
|
|
41
|
-
}
|
|
42
|
-
for (len of foo){
|
|
43
|
-
tmp = len[0];
|
|
44
|
-
if (tmp && typeof tmp === 'object') {
|
|
45
|
-
tmp = find(bar, tmp);
|
|
46
|
-
if (!tmp) return false;
|
|
47
|
-
}
|
|
48
|
-
if (!deepEqual(len[1], bar.get(tmp))) {
|
|
49
|
-
return false;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
return true;
|
|
53
|
-
}
|
|
54
|
-
if (ctor === ArrayBuffer) {
|
|
55
|
-
foo = new Uint8Array(foo);
|
|
56
|
-
bar = new Uint8Array(bar);
|
|
57
|
-
} else if (ctor === DataView) {
|
|
58
|
-
if ((len = foo.byteLength) === bar.byteLength) {
|
|
59
|
-
while(len-- && foo.getInt8(len) === bar.getInt8(len));
|
|
60
|
-
}
|
|
61
|
-
return len === -1;
|
|
62
|
-
}
|
|
63
|
-
if (ArrayBuffer.isView(foo)) {
|
|
64
|
-
if ((len = foo.byteLength) === bar.byteLength) {
|
|
65
|
-
while(len-- && foo[len] === bar[len]);
|
|
66
|
-
}
|
|
67
|
-
return len === -1;
|
|
68
|
-
}
|
|
69
|
-
// react & dom
|
|
70
|
-
if (hasElementType && foo instanceof Element) return false;
|
|
71
|
-
if (!ctor || typeof foo === 'object') {
|
|
72
|
-
len = 0;
|
|
73
|
-
for(ctor in foo){
|
|
74
|
-
if ((ctor === '_owner' || ctor === '__v' || ctor === '__o') && foo.$$typeof) {
|
|
75
|
-
continue;
|
|
76
|
-
}
|
|
77
|
-
if (has.call(foo, ctor) && ++len && !has.call(bar, ctor)) return false;
|
|
78
|
-
if (!(ctor in bar) || !deepEqual(foo[ctor], bar[ctor])) return false;
|
|
79
|
-
}
|
|
80
|
-
return Object.keys(bar).length === len;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
// eslint-disable-next-line no-self-compare
|
|
84
|
-
return foo !== foo && bar !== bar;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
//# sourceMappingURL=deepEqual.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/langs/deepEqual.ts"],"sourcesContent":["const has = Object.prototype.hasOwnProperty;\nconst hasElementType = typeof Element !== 'undefined';\n\nfunction find(iter: any, tar: any, key?: any) {\n for (key of iter.keys()) {\n if (deepEqual(key, tar)) return key;\n }\n}\n\n/**\n * deep equal - support react, dom, Date, RegExp, Array, ArrayBuffer, Set, Map, Object\n * @see {@link https://github.com/lukeed/dequal/blob/master/src/lite.js dequal/src/lite.js}\n * @see {@link https://github.com/FormidableLabs/react-fast-compare/blob/master/index.js react-fast-compare/index.js}\n */\nexport function deepEqual(foo: any, bar: any) {\n let ctor, len, tmp;\n if (foo === bar) return true;\n\n if (foo && bar && (ctor = foo.constructor) === bar.constructor) {\n if (ctor === Date) return foo.getTime() === bar.getTime();\n if (ctor === RegExp) return foo.toString() === bar.toString();\n\n if (ctor === Array) {\n if ((len = foo.length) === bar.length) {\n while (len-- && deepEqual(foo[len], bar[len]));\n }\n return len === -1;\n }\n\n if (ctor === Set) {\n if (foo.size !== bar.size) {\n return false;\n }\n for (len of foo) {\n tmp = len;\n if (tmp && typeof tmp === 'object') {\n tmp = find(bar, tmp);\n if (!tmp) return false;\n }\n if (!bar.has(tmp)) return false;\n }\n return true;\n }\n\n if (ctor === Map) {\n if (foo.size !== bar.size) {\n return false;\n }\n for (len of foo) {\n tmp = len[0];\n if (tmp && typeof tmp === 'object') {\n tmp = find(bar, tmp);\n if (!tmp) return false;\n }\n if (!deepEqual(len[1], bar.get(tmp))) {\n return false;\n }\n }\n return true;\n }\n\n if (ctor === ArrayBuffer) {\n foo = new Uint8Array(foo);\n bar = new Uint8Array(bar);\n } else if (ctor === DataView) {\n if ((len = foo.byteLength) === bar.byteLength) {\n while (len-- && foo.getInt8(len) === bar.getInt8(len));\n }\n return len === -1;\n }\n\n if (ArrayBuffer.isView(foo)) {\n if ((len = foo.byteLength) === bar.byteLength) {\n while (len-- && (foo as any)[len] === bar[len]);\n }\n return len === -1;\n }\n\n // react & dom\n if (hasElementType && foo instanceof Element) return false;\n\n if (!ctor || typeof foo === 'object') {\n len = 0;\n for (ctor in foo) {\n if ((ctor === '_owner' || ctor === '__v' || ctor === '__o') && foo.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n if (has.call(foo, ctor) && ++len && !has.call(bar, ctor)) return false;\n if (!(ctor in bar) || !deepEqual(foo[ctor], bar[ctor])) return false;\n }\n return Object.keys(bar).length === len;\n }\n }\n\n // eslint-disable-next-line no-self-compare\n return foo !== foo && bar !== bar;\n}\n"],"names":["has","Object","prototype","hasOwnProperty","hasElementType","Element","find","iter","tar","key","keys","deepEqual","foo","bar","ctor","len","tmp","constructor","Date","getTime","RegExp","toString","Array","length","Set","size","Map","get","ArrayBuffer","Uint8Array","DataView","byteLength","getInt8","isView","$$typeof","call"],"mappings":"AAAA,MAAMA,MAAMC,OAAOC,SAAS,CAACC,cAAc;AAC3C,MAAMC,iBAAiB,OAAOC,YAAY;AAE1C,SAASC,KAAKC,IAAS,EAAEC,GAAQ,EAAEC,GAAS;IAC1C,KAAKA,OAAOF,KAAKG,IAAI,GAAI;QACvB,IAAIC,UAAUF,KAAKD,MAAM,OAAOC;IAClC;AACF;AAEA;;;;CAIC,GACD,OAAO,SAASE,UAAUC,GAAQ,EAAEC,GAAQ;IAC1C,IAAIC,MAAMC,KAAKC;IACf,IAAIJ,QAAQC,KAAK,OAAO;IAExB,IAAID,OAAOC,OAAO,AAACC,CAAAA,OAAOF,IAAIK,WAAW,AAAD,MAAOJ,IAAII,WAAW,EAAE;QAC9D,IAAIH,SAASI,MAAM,OAAON,IAAIO,OAAO,OAAON,IAAIM,OAAO;QACvD,IAAIL,SAASM,QAAQ,OAAOR,IAAIS,QAAQ,OAAOR,IAAIQ,QAAQ;QAE3D,IAAIP,SAASQ,OAAO;YAClB,IAAI,AAACP,CAAAA,MAAMH,IAAIW,MAAM,AAAD,MAAOV,IAAIU,MAAM,EAAE;gBACrC,MAAOR,SAASJ,UAAUC,GAAG,CAACG,IAAI,EAAEF,GAAG,CAACE,IAAI;YAC9C;YACA,OAAOA,QAAQ,CAAC;QAClB;QAEA,IAAID,SAASU,KAAK;YAChB,IAAIZ,IAAIa,IAAI,KAAKZ,IAAIY,IAAI,EAAE;gBACzB,OAAO;YACT;YACA,KAAKV,OAAOH,IAAK;gBACfI,MAAMD;gBACN,IAAIC,OAAO,OAAOA,QAAQ,UAAU;oBAClCA,MAAMV,KAAKO,KAAKG;oBAChB,IAAI,CAACA,KAAK,OAAO;gBACnB;gBACA,IAAI,CAACH,IAAIb,GAAG,CAACgB,MAAM,OAAO;YAC5B;YACA,OAAO;QACT;QAEA,IAAIF,SAASY,KAAK;YAChB,IAAId,IAAIa,IAAI,KAAKZ,IAAIY,IAAI,EAAE;gBACzB,OAAO;YACT;YACA,KAAKV,OAAOH,IAAK;gBACfI,MAAMD,GAAG,CAAC,EAAE;gBACZ,IAAIC,OAAO,OAAOA,QAAQ,UAAU;oBAClCA,MAAMV,KAAKO,KAAKG;oBAChB,IAAI,CAACA,KAAK,OAAO;gBACnB;gBACA,IAAI,CAACL,UAAUI,GAAG,CAAC,EAAE,EAAEF,IAAIc,GAAG,CAACX,OAAO;oBACpC,OAAO;gBACT;YACF;YACA,OAAO;QACT;QAEA,IAAIF,SAASc,aAAa;YACxBhB,MAAM,IAAIiB,WAAWjB;YACrBC,MAAM,IAAIgB,WAAWhB;QACvB,OAAO,IAAIC,SAASgB,UAAU;YAC5B,IAAI,AAACf,CAAAA,MAAMH,IAAImB,UAAU,AAAD,MAAOlB,IAAIkB,UAAU,EAAE;gBAC7C,MAAOhB,SAASH,IAAIoB,OAAO,CAACjB,SAASF,IAAImB,OAAO,CAACjB;YACnD;YACA,OAAOA,QAAQ,CAAC;QAClB;QAEA,IAAIa,YAAYK,MAAM,CAACrB,MAAM;YAC3B,IAAI,AAACG,CAAAA,MAAMH,IAAImB,UAAU,AAAD,MAAOlB,IAAIkB,UAAU,EAAE;gBAC7C,MAAOhB,SAAS,AAACH,GAAW,CAACG,IAAI,KAAKF,GAAG,CAACE,IAAI;YAChD;YACA,OAAOA,QAAQ,CAAC;QAClB;QAEA,cAAc;QACd,IAAIX,kBAAkBQ,eAAeP,SAAS,OAAO;QAErD,IAAI,CAACS,QAAQ,OAAOF,QAAQ,UAAU;YACpCG,MAAM;YACN,IAAKD,QAAQF,IAAK;gBAChB,IAAI,AAACE,CAAAA,SAAS,YAAYA,SAAS,SAASA,SAAS,KAAI,KAAMF,IAAIsB,QAAQ,EAAE;oBAS3E;gBACF;gBAEA,IAAIlC,IAAImC,IAAI,CAACvB,KAAKE,SAAS,EAAEC,OAAO,CAACf,IAAImC,IAAI,CAACtB,KAAKC,OAAO,OAAO;gBACjE,IAAI,CAAEA,CAAAA,QAAQD,GAAE,KAAM,CAACF,UAAUC,GAAG,CAACE,KAAK,EAAED,GAAG,CAACC,KAAK,GAAG,OAAO;YACjE;YACA,OAAOb,OAAOS,IAAI,CAACG,KAAKU,MAAM,KAAKR;QACrC;IACF;IAEA,2CAA2C;IAC3C,OAAOH,QAAQA,OAAOC,QAAQA;AAChC"}
|
package/lib/langs/deepFreeze.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Freezes the given object and all its nested objects recursively.
|
|
3
|
-
*
|
|
4
|
-
* @param {T} obj - The object to freeze.
|
|
5
|
-
* @returns {T} - The frozen object.
|
|
6
|
-
*/ export function deepFreeze(obj) {
|
|
7
|
-
if (obj === null || typeof obj !== 'object') {
|
|
8
|
-
return obj;
|
|
9
|
-
}
|
|
10
|
-
const props = Object.getOwnPropertyNames(obj);
|
|
11
|
-
for (const prop of props){
|
|
12
|
-
const value = obj[prop];
|
|
13
|
-
if (value && typeof value === 'object') {
|
|
14
|
-
deepFreeze(value);
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
return Object.freeze(obj);
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
//# sourceMappingURL=deepFreeze.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/langs/deepFreeze.ts"],"sourcesContent":["/**\n * Freezes the given object and all its nested objects recursively.\n *\n * @param {T} obj - The object to freeze.\n * @returns {T} - The frozen object.\n */\nexport function deepFreeze<T>(obj: T): T {\n if (obj === null || typeof obj !== 'object') {\n return obj;\n }\n const props = Object.getOwnPropertyNames(obj);\n for (const prop of props) {\n const value = (obj as any)[prop];\n if (value && typeof value === 'object') {\n deepFreeze(value);\n }\n }\n return Object.freeze(obj);\n}\n"],"names":["deepFreeze","obj","props","Object","getOwnPropertyNames","prop","value","freeze"],"mappings":"AAAA;;;;;CAKC,GACD,OAAO,SAASA,WAAcC,GAAM;IAClC,IAAIA,QAAQ,QAAQ,OAAOA,QAAQ,UAAU;QAC3C,OAAOA;IACT;IACA,MAAMC,QAAQC,OAAOC,mBAAmB,CAACH;IACzC,KAAK,MAAMI,QAAQH,MAAO;QACxB,MAAMI,QAAQ,AAACL,GAAW,CAACI,KAAK;QAChC,IAAIC,SAAS,OAAOA,UAAU,UAAU;YACtCN,WAAWM;QACb;IACF;IACA,OAAOH,OAAOI,MAAM,CAACN;AACvB"}
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
function sortObjectKeys(obj) {
|
|
2
|
-
if (obj === null || obj === undefined) {
|
|
3
|
-
return obj;
|
|
4
|
-
}
|
|
5
|
-
if (typeof obj !== 'object') {
|
|
6
|
-
// it is a primitive: number/string (in an array)
|
|
7
|
-
return obj;
|
|
8
|
-
}
|
|
9
|
-
return Object.keys(obj).sort().reduce((acc, key)=>{
|
|
10
|
-
if (Array.isArray(obj[key])) {
|
|
11
|
-
acc[key] = obj[key].map(sortObjectKeys);
|
|
12
|
-
} else if (typeof obj[key] === 'object') {
|
|
13
|
-
acc[key] = sortObjectKeys(obj[key]);
|
|
14
|
-
} else {
|
|
15
|
-
acc[key] = obj[key];
|
|
16
|
-
}
|
|
17
|
-
return acc;
|
|
18
|
-
}, {});
|
|
19
|
-
}
|
|
20
|
-
function toDeterministicJson(o) {
|
|
21
|
-
// https://github.com/kikobeats/json-stringify-deterministic
|
|
22
|
-
// https://stackoverflow.com/a/54902696/1870054
|
|
23
|
-
// https://github.com/sinclairzx81/typebox#hash
|
|
24
|
-
// https://github.com/sinclairzx81/typebox/blob/master/src/value/hash.ts
|
|
25
|
-
// LCS longest common subsequence
|
|
26
|
-
// https://github.com/sinclairzx81/typebox/issues/272
|
|
27
|
-
let sorted = sortObjectKeys(o);
|
|
28
|
-
let out = JSON.stringify(sorted, function(_, v) {
|
|
29
|
-
return v === undefined ? 'undef' : v;
|
|
30
|
-
});
|
|
31
|
-
// Remove all whitespace
|
|
32
|
-
return out.replace(/\s+/g, '');
|
|
33
|
-
}
|
|
34
|
-
function visit(o, _v, ctx) {
|
|
35
|
-
const v = {
|
|
36
|
-
array: (o, ctx)=>o.map((x)=>v.visit(x, ctx)),
|
|
37
|
-
object: (o, ctx)=>{
|
|
38
|
-
return Object.fromEntries(Object.entries(o).map(([k, v])=>[
|
|
39
|
-
k,
|
|
40
|
-
v.visit(v, ctx)
|
|
41
|
-
]));
|
|
42
|
-
},
|
|
43
|
-
buffer: (o)=>{
|
|
44
|
-
return o;
|
|
45
|
-
},
|
|
46
|
-
boolean: (o)=>o,
|
|
47
|
-
number: (o)=>o,
|
|
48
|
-
string: (o)=>o,
|
|
49
|
-
symbol: (o)=>o,
|
|
50
|
-
bigint: (o)=>o,
|
|
51
|
-
date: (o)=>o,
|
|
52
|
-
null: (o)=>o,
|
|
53
|
-
undefined: (o)=>o,
|
|
54
|
-
unknown: (o, ctx)=>{
|
|
55
|
-
if (o instanceof Map) {
|
|
56
|
-
return new Map([
|
|
57
|
-
...o.entries()
|
|
58
|
-
].map(([k, v])=>[
|
|
59
|
-
k,
|
|
60
|
-
v.visit(v, ctx)
|
|
61
|
-
]));
|
|
62
|
-
}
|
|
63
|
-
if (o instanceof Set) {
|
|
64
|
-
return new Set([
|
|
65
|
-
...o.values()
|
|
66
|
-
].map((v)=>v.visit(v, ctx)));
|
|
67
|
-
}
|
|
68
|
-
return o;
|
|
69
|
-
},
|
|
70
|
-
visit: (o, ctx)=>{
|
|
71
|
-
if (o === null) {
|
|
72
|
-
return v.null(o, ctx);
|
|
73
|
-
}
|
|
74
|
-
switch(typeof o){
|
|
75
|
-
case 'object':
|
|
76
|
-
if (o instanceof ArrayBuffer) {
|
|
77
|
-
return v.buffer(o, ctx);
|
|
78
|
-
}
|
|
79
|
-
if (Array.isArray(o)) {
|
|
80
|
-
return v.array(o, ctx);
|
|
81
|
-
}
|
|
82
|
-
if (o instanceof Date) {
|
|
83
|
-
return v.date(o, ctx);
|
|
84
|
-
}
|
|
85
|
-
// plain object
|
|
86
|
-
if (o.constructor === Object) {
|
|
87
|
-
return v.object(o, ctx);
|
|
88
|
-
}
|
|
89
|
-
//
|
|
90
|
-
return v.unknown(o, ctx);
|
|
91
|
-
case 'boolean':
|
|
92
|
-
return v.boolean(o, ctx);
|
|
93
|
-
case 'number':
|
|
94
|
-
return v.number(o, ctx);
|
|
95
|
-
case 'string':
|
|
96
|
-
return v.string(o, ctx);
|
|
97
|
-
case 'symbol':
|
|
98
|
-
return v.symbol(o, ctx);
|
|
99
|
-
case 'bigint':
|
|
100
|
-
return v.bigint(o, ctx);
|
|
101
|
-
case 'undefined':
|
|
102
|
-
return v.undefined(o, ctx);
|
|
103
|
-
default:
|
|
104
|
-
return v.unknown(o, ctx);
|
|
105
|
-
}
|
|
106
|
-
},
|
|
107
|
-
..._v
|
|
108
|
-
};
|
|
109
|
-
return v.visit(o, ctx);
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
//# sourceMappingURL=hashCode.ignored.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/langs/hashCode.ignored.ts"],"sourcesContent":["function sortObjectKeys(obj?: Record<string, any>) {\n if (obj === null || obj === undefined) {\n return obj;\n }\n if (typeof obj !== 'object') {\n // it is a primitive: number/string (in an array)\n return obj;\n }\n return Object.keys(obj)\n .sort()\n .reduce(\n (acc, key) => {\n if (Array.isArray(obj[key])) {\n acc[key] = obj[key].map(sortObjectKeys);\n } else if (typeof obj[key] === 'object') {\n acc[key] = sortObjectKeys(obj[key]);\n } else {\n acc[key] = obj[key];\n }\n return acc;\n },\n {} as Record<string, any>,\n );\n}\n\nfunction toDeterministicJson(o: any) {\n // https://github.com/kikobeats/json-stringify-deterministic\n // https://stackoverflow.com/a/54902696/1870054\n // https://github.com/sinclairzx81/typebox#hash\n // https://github.com/sinclairzx81/typebox/blob/master/src/value/hash.ts\n // LCS longest common subsequence\n // https://github.com/sinclairzx81/typebox/issues/272\n let sorted: any = sortObjectKeys(o);\n let out = JSON.stringify(sorted, function (_, v) {\n return v === undefined ? 'undef' : v;\n });\n\n // Remove all whitespace\n return out.replace(/\\s+/g, '');\n}\n\ninterface Visitor<C> {\n array: (o: any[], ctx: C) => any;\n object: (o: Record<string, any>, ctx: C) => any;\n boolean: (o: boolean, ctx: C) => any;\n number: (o: number, ctx: C) => any;\n string: (o: string, ctx: C) => any;\n symbol: (o: symbol, ctx: C) => any;\n bigint: (o: bigint, ctx: C) => any;\n date: (o: Date, ctx: C) => any;\n buffer: (o: ArrayBuffer, ctx: C) => any;\n null: (o: null, ctx: C) => any;\n undefined: (o: undefined, ctx: C) => any;\n unknown: (o: unknown, ctx: C) => any;\n visit: (o: any, ctx: C) => any;\n}\n\nfunction visit<C>(o: any, _v: Partial<Visitor<C>>, ctx: C) {\n const v = {\n array: (o: any[], ctx: C): any => o.map((x) => v.visit(x, ctx)),\n object: (o: Record<string, any>, ctx: C) => {\n return Object.fromEntries(Object.entries(o).map(([k, v]) => [k, v.visit(v, ctx)]));\n },\n buffer: (o: ArrayBuffer) => {\n return o;\n },\n boolean: (o: boolean) => o,\n number: (o: number) => o,\n string: (o: string) => o,\n symbol: (o: symbol) => o,\n bigint: (o: bigint) => o,\n date: (o: Date) => o,\n null: (o: null) => o,\n undefined: (o: undefined) => o,\n unknown: (o: unknown, ctx: C): any => {\n if (o instanceof Map) {\n return new Map([...o.entries()].map(([k, v]) => [k, v.visit(v, ctx)]));\n }\n if (o instanceof Set) {\n return new Set([...o.values()].map((v) => v.visit(v, ctx)));\n }\n return o;\n },\n visit: (o: any, ctx: C): any => {\n if (o === null) {\n return v.null(o, ctx);\n }\n switch (typeof o) {\n case 'object':\n if (o instanceof ArrayBuffer) {\n return v.buffer(o, ctx);\n }\n if (Array.isArray(o)) {\n return v.array(o, ctx);\n }\n if (o instanceof Date) {\n return v.date(o, ctx);\n }\n // plain object\n if (o.constructor === Object) {\n return v.object(o, ctx);\n }\n //\n return v.unknown(o, ctx);\n case 'boolean':\n return v.boolean(o, ctx);\n case 'number':\n return v.number(o, ctx);\n case 'string':\n return v.string(o, ctx);\n case 'symbol':\n return v.symbol(o, ctx);\n case 'bigint':\n return v.bigint(o, ctx);\n case 'undefined':\n return v.undefined(o, ctx);\n default:\n return v.unknown(o, ctx);\n }\n },\n ..._v,\n };\n\n return v.visit(o, ctx);\n}\n"],"names":["sortObjectKeys","obj","undefined","Object","keys","sort","reduce","acc","key","Array","isArray","map","toDeterministicJson","o","sorted","out","JSON","stringify","_","v","replace","visit","_v","ctx","array","x","object","fromEntries","entries","k","buffer","boolean","number","string","symbol","bigint","date","null","unknown","Map","Set","values","ArrayBuffer","Date","constructor"],"mappings":"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"}
|
package/lib/langs/isClass.js
DELETED
package/lib/langs/isClass.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/langs/isClass.ts"],"sourcesContent":["export function isClass(func: any) {\n return typeof func === 'function' && /^class\\s/.test(Function.prototype.toString.call(func));\n}\n"],"names":["isClass","func","test","Function","prototype","toString","call"],"mappings":"AAAA,OAAO,SAASA,QAAQC,IAAS;IAC/B,OAAO,OAAOA,SAAS,cAAc,WAAWC,IAAI,CAACC,SAASC,SAAS,CAACC,QAAQ,CAACC,IAAI,CAACL;AACxF"}
|
package/lib/langs/isDefined.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/langs/isDefined.ts"],"sourcesContent":["export function isDefined<T = any>(v: T): v is NonNullable<T> {\n return v !== null && v !== undefined;\n}\n"],"names":["isDefined","v","undefined"],"mappings":"AAAA,OAAO,SAASA,UAAmBC,CAAI;IACrC,OAAOA,MAAM,QAAQA,MAAMC;AAC7B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/langs/isEmptyObject.ts"],"sourcesContent":["import { isPlainObject } from './isPlainObject';\n\nexport function isEmptyObject(o: any) {\n return isPlainObject(o) && Object.keys(o).length === 0;\n}\n"],"names":["isPlainObject","isEmptyObject","o","Object","keys","length"],"mappings":"AAAA,SAASA,aAAa,QAAQ,kBAAkB;AAEhD,OAAO,SAASC,cAAcC,CAAM;IAClC,OAAOF,cAAcE,MAAMC,OAAOC,IAAI,CAACF,GAAGG,MAAM,KAAK;AACvD"}
|
package/lib/langs/isFunction.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/langs/isFunction.ts"],"sourcesContent":["export function isFunction(value: any): value is Function {\n return typeof value === 'function';\n}\n"],"names":["isFunction","value"],"mappings":"AAAA,OAAO,SAASA,WAAWC,KAAU;IACnC,OAAO,OAAOA,UAAU;AAC1B"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { classOf } from './classOf.js';
|
|
2
|
-
// see: https://github.com/mesqueeb/is-what/blob/88d6e4ca92fb2baab6003c54e02eedf4e729e5ab/src/index.ts
|
|
3
|
-
export function isPlainObject(value) {
|
|
4
|
-
if (classOf(value) !== 'Object') {
|
|
5
|
-
return false;
|
|
6
|
-
}
|
|
7
|
-
return value.constructor === Object && Object.getPrototypeOf(value) === Object.prototype;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
//# sourceMappingURL=isPlainObject.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/langs/isPlainObject.ts"],"sourcesContent":["import { classOf } from './classOf';\n\n// see: https://github.com/mesqueeb/is-what/blob/88d6e4ca92fb2baab6003c54e02eedf4e729e5ab/src/index.ts\n\nexport function isPlainObject(value: any): value is Record<string, any> {\n if (classOf(value) !== 'Object') {\n return false;\n }\n return value.constructor === Object && Object.getPrototypeOf(value) === Object.prototype;\n}\n"],"names":["classOf","isPlainObject","value","constructor","Object","getPrototypeOf","prototype"],"mappings":"AAAA,SAASA,OAAO,QAAQ,YAAY;AAEpC,sGAAsG;AAEtG,OAAO,SAASC,cAAcC,KAAU;IACtC,IAAIF,QAAQE,WAAW,UAAU;QAC/B,OAAO;IACT;IACA,OAAOA,MAAMC,WAAW,KAAKC,UAAUA,OAAOC,cAAc,CAACH,WAAWE,OAAOE,SAAS;AAC1F"}
|
package/lib/langs/memoize.js
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
// https://github.com/angus-c/just/blob/master/packages/function-memoize/index.mjs
|
|
2
|
-
export function memoize(callback, { resolver = (...args)=>JSON.stringify(args) } = {}) {
|
|
3
|
-
if (typeof callback !== 'function') {
|
|
4
|
-
throw new Error('`callback` should be a function');
|
|
5
|
-
}
|
|
6
|
-
if (resolver !== undefined && typeof resolver !== 'function') {
|
|
7
|
-
throw new Error('`resolver` should be a function');
|
|
8
|
-
}
|
|
9
|
-
const cache = {};
|
|
10
|
-
const memoized = function() {
|
|
11
|
-
const args = Array.prototype.slice.call(arguments); // to simplify JSON.stringify
|
|
12
|
-
const key = resolver.apply(this, args);
|
|
13
|
-
if (!(key in cache)) {
|
|
14
|
-
cache[key] = callback.apply(this, args);
|
|
15
|
-
}
|
|
16
|
-
return cache[key];
|
|
17
|
-
};
|
|
18
|
-
memoized.cache = cache;
|
|
19
|
-
return memoized;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
//# sourceMappingURL=memoize.js.map
|
package/lib/langs/memoize.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/langs/memoize.ts"],"sourcesContent":["// https://github.com/angus-c/just/blob/master/packages/function-memoize/index.mjs\ntype func = (...args: any) => any;\n\nexport function memoize<T extends func>(\n callback: T,\n {\n resolver = (...args: Parameters<T>) => JSON.stringify(args),\n }: { resolver?: (...args: Parameters<T>) => string } = {},\n): T {\n if (typeof callback !== 'function') {\n throw new Error('`callback` should be a function');\n }\n\n if (resolver !== undefined && typeof resolver !== 'function') {\n throw new Error('`resolver` should be a function');\n }\n\n const cache: Record<string, any> = {};\n\n const memoized = function (this: any) {\n const args = Array.prototype.slice.call(arguments); // to simplify JSON.stringify\n const key = resolver.apply(this, args as Parameters<T>);\n\n if (!(key in cache)) {\n cache[key] = callback.apply(this, args);\n }\n\n return cache[key];\n };\n memoized.cache = cache;\n return memoized as func as T;\n}\n"],"names":["memoize","callback","resolver","args","JSON","stringify","Error","undefined","cache","memoized","Array","prototype","slice","call","arguments","key","apply"],"mappings":"AAAA,kFAAkF;AAGlF,OAAO,SAASA,QACdC,QAAW,EACX,EACEC,WAAW,CAAC,GAAGC,OAAwBC,KAAKC,SAAS,CAACF,KAAK,EACT,GAAG,CAAC,CAAC;IAEzD,IAAI,OAAOF,aAAa,YAAY;QAClC,MAAM,IAAIK,MAAM;IAClB;IAEA,IAAIJ,aAAaK,aAAa,OAAOL,aAAa,YAAY;QAC5D,MAAM,IAAII,MAAM;IAClB;IAEA,MAAME,QAA6B,CAAC;IAEpC,MAAMC,WAAW;QACf,MAAMN,OAAOO,MAAMC,SAAS,CAACC,KAAK,CAACC,IAAI,CAACC,YAAY,6BAA6B;QACjF,MAAMC,MAAMb,SAASc,KAAK,CAAC,IAAI,EAAEb;QAEjC,IAAI,CAAEY,CAAAA,OAAOP,KAAI,GAAI;YACnBA,KAAK,CAACO,IAAI,GAAGd,SAASe,KAAK,CAAC,IAAI,EAAEb;QACpC;QAEA,OAAOK,KAAK,CAACO,IAAI;IACnB;IACAN,SAASD,KAAK,GAAGA;IACjB,OAAOC;AACT"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
export function parseBoolean(s, strict = false) {
|
|
2
|
-
if (typeof s === 'boolean') {
|
|
3
|
-
return s;
|
|
4
|
-
}
|
|
5
|
-
if (typeof s === 'string') {
|
|
6
|
-
switch(s.toLowerCase()){
|
|
7
|
-
case 'f':
|
|
8
|
-
case 'false':
|
|
9
|
-
case '0':
|
|
10
|
-
return false;
|
|
11
|
-
case '1':
|
|
12
|
-
case 't':
|
|
13
|
-
case 'true':
|
|
14
|
-
return true;
|
|
15
|
-
}
|
|
16
|
-
} else if (typeof s === 'number') {
|
|
17
|
-
switch(s){
|
|
18
|
-
case 0:
|
|
19
|
-
return false;
|
|
20
|
-
case 1:
|
|
21
|
-
return true;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
if (strict) {
|
|
25
|
-
return undefined;
|
|
26
|
-
}
|
|
27
|
-
return Boolean(s);
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
//# sourceMappingURL=parseBoolean.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/langs/parseBoolean.ts"],"sourcesContent":["export function parseBoolean(s: string | boolean | number | null | undefined, strict: true): boolean | undefined;\nexport function parseBoolean(s: string | boolean | number | null | undefined | any): boolean;\nexport function parseBoolean(s?: string | boolean | number | null, strict = false): boolean | undefined {\n if (typeof s === 'boolean') {\n return s;\n }\n if (typeof s === 'string') {\n switch (s.toLowerCase()) {\n case 'f':\n case 'false':\n case '0':\n return false;\n case '1':\n case 't':\n case 'true':\n return true;\n }\n } else if (typeof s === 'number') {\n switch (s) {\n case 0:\n return false;\n case 1:\n return true;\n }\n }\n if (strict) {\n return undefined;\n }\n return Boolean(s);\n}\n"],"names":["parseBoolean","s","strict","toLowerCase","undefined","Boolean"],"mappings":"AAEA,OAAO,SAASA,aAAaC,CAAoC,EAAEC,SAAS,KAAK;IAC/E,IAAI,OAAOD,MAAM,WAAW;QAC1B,OAAOA;IACT;IACA,IAAI,OAAOA,MAAM,UAAU;QACzB,OAAQA,EAAEE,WAAW;YACnB,KAAK;YACL,KAAK;YACL,KAAK;gBACH,OAAO;YACT,KAAK;YACL,KAAK;YACL,KAAK;gBACH,OAAO;QACX;IACF,OAAO,IAAI,OAAOF,MAAM,UAAU;QAChC,OAAQA;YACN,KAAK;gBACH,OAAO;YACT,KAAK;gBACH,OAAO;QACX;IACF;IACA,IAAIC,QAAQ;QACV,OAAOE;IACT;IACA,OAAOC,QAAQJ;AACjB"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export function shallowClone(obj) {
|
|
2
|
-
if (!obj) {
|
|
3
|
-
return obj;
|
|
4
|
-
}
|
|
5
|
-
if (Array.isArray(obj)) {
|
|
6
|
-
return obj.slice();
|
|
7
|
-
}
|
|
8
|
-
if (typeof obj === 'object') {
|
|
9
|
-
return Object.assign({}, obj);
|
|
10
|
-
}
|
|
11
|
-
// skip Map, Set, WeakMap, WeakSet, Date, RegExp, etc.
|
|
12
|
-
return obj;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
//# sourceMappingURL=shallowClone.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/langs/shallowClone.ts"],"sourcesContent":["export function shallowClone<T>(obj: T): T {\n if (!obj) {\n return obj;\n }\n if (Array.isArray(obj)) {\n return obj.slice() as T;\n }\n if (typeof obj === 'object') {\n return Object.assign({}, obj);\n }\n // skip Map, Set, WeakMap, WeakSet, Date, RegExp, etc.\n return obj;\n}\n"],"names":["shallowClone","obj","Array","isArray","slice","Object","assign"],"mappings":"AAAA,OAAO,SAASA,aAAgBC,GAAM;IACpC,IAAI,CAACA,KAAK;QACR,OAAOA;IACT;IACA,IAAIC,MAAMC,OAAO,CAACF,MAAM;QACtB,OAAOA,IAAIG,KAAK;IAClB;IACA,IAAI,OAAOH,QAAQ,UAAU;QAC3B,OAAOI,OAAOC,MAAM,CAAC,CAAC,GAAGL;IAC3B;IACA,sDAAsD;IACtD,OAAOA;AACT"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* shallow compare - support object, array
|
|
3
|
-
*
|
|
4
|
-
* @see {@link https://github.com/pmndrs/zustand/blob/main/src/shallow.ts zustand/src/shallow.ts}
|
|
5
|
-
*/ export function shallowEqual(objA, objB) {
|
|
6
|
-
if (Object.is(objA, objB)) {
|
|
7
|
-
return true;
|
|
8
|
-
}
|
|
9
|
-
if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {
|
|
10
|
-
return false;
|
|
11
|
-
}
|
|
12
|
-
const keysA = Object.keys(objA);
|
|
13
|
-
if (keysA.length !== Object.keys(objB).length) {
|
|
14
|
-
return false;
|
|
15
|
-
}
|
|
16
|
-
for(let i = 0; i < keysA.length; i++){
|
|
17
|
-
if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !Object.is(objA[keysA[i]], objB[keysA[i]])) {
|
|
18
|
-
return false;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
return true;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
//# sourceMappingURL=shallowEqual.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/langs/shallowEqual.ts"],"sourcesContent":["/**\n * shallow compare - support object, array\n *\n * @see {@link https://github.com/pmndrs/zustand/blob/main/src/shallow.ts zustand/src/shallow.ts}\n */\nexport function shallowEqual<T, U>(objA: T, objB: U) {\n if (Object.is(objA, objB)) {\n return true;\n }\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n const keysA = Object.keys(objA);\n if (keysA.length !== Object.keys(objB).length) {\n return false;\n }\n for (let i = 0; i < keysA.length; i++) {\n if (\n !Object.prototype.hasOwnProperty.call(objB, keysA[i]) ||\n !Object.is(objA[keysA[i] as keyof T], objB[keysA[i] as keyof U])\n ) {\n return false;\n }\n }\n return true;\n}\n"],"names":["shallowEqual","objA","objB","Object","is","keysA","keys","length","i","prototype","hasOwnProperty","call"],"mappings":"AAAA;;;;CAIC,GACD,OAAO,SAASA,aAAmBC,IAAO,EAAEC,IAAO;IACjD,IAAIC,OAAOC,EAAE,CAACH,MAAMC,OAAO;QACzB,OAAO;IACT;IACA,IAAI,OAAOD,SAAS,YAAYA,SAAS,QAAQ,OAAOC,SAAS,YAAYA,SAAS,MAAM;QAC1F,OAAO;IACT;IACA,MAAMG,QAAQF,OAAOG,IAAI,CAACL;IAC1B,IAAII,MAAME,MAAM,KAAKJ,OAAOG,IAAI,CAACJ,MAAMK,MAAM,EAAE;QAC7C,OAAO;IACT;IACA,IAAK,IAAIC,IAAI,GAAGA,IAAIH,MAAME,MAAM,EAAEC,IAAK;QACrC,IACE,CAACL,OAAOM,SAAS,CAACC,cAAc,CAACC,IAAI,CAACT,MAAMG,KAAK,CAACG,EAAE,KACpD,CAACL,OAAOC,EAAE,CAACH,IAAI,CAACI,KAAK,CAACG,EAAE,CAAY,EAAEN,IAAI,CAACG,KAAK,CAACG,EAAE,CAAY,GAC/D;YACA,OAAO;QACT;IACF;IACA,OAAO;AACT"}
|
package/lib/libs/ms.js
DELETED
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
// Helpers.
|
|
2
|
-
const s = 1000;
|
|
3
|
-
const m = s * 60;
|
|
4
|
-
const h = m * 60;
|
|
5
|
-
const d = h * 24;
|
|
6
|
-
const w = d * 7;
|
|
7
|
-
const y = d * 365.25;
|
|
8
|
-
function msFn(value, options) {
|
|
9
|
-
try {
|
|
10
|
-
if (typeof value === 'string' && value.length > 0) {
|
|
11
|
-
return parse(value);
|
|
12
|
-
} else if (typeof value === 'number' && isFinite(value)) {
|
|
13
|
-
return options?.long ? fmtLong(value) : fmtShort(value);
|
|
14
|
-
}
|
|
15
|
-
throw new Error('Value is not a string or number.');
|
|
16
|
-
} catch (error) {
|
|
17
|
-
const message = isError(error) ? `${error.message}. value=${JSON.stringify(value)}` : 'An unknown error has occurred.';
|
|
18
|
-
throw new Error(message);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Parse the given string and return milliseconds.
|
|
23
|
-
*
|
|
24
|
-
* @param str - A string to parse to milliseconds
|
|
25
|
-
* @returns The parsed value in milliseconds, or `NaN` if the string can't be
|
|
26
|
-
* parsed
|
|
27
|
-
*/ function parse(str) {
|
|
28
|
-
if (str.length > 100) {
|
|
29
|
-
throw new Error('Value exceeds the maximum length of 100 characters.');
|
|
30
|
-
}
|
|
31
|
-
const match = /^(?<value>-?(?:\d+)?\.?\d+) *(?<type>milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(str);
|
|
32
|
-
// Named capture groups need to be manually typed today.
|
|
33
|
-
// https://github.com/microsoft/TypeScript/issues/32098
|
|
34
|
-
const groups = match?.groups;
|
|
35
|
-
if (!groups) {
|
|
36
|
-
return NaN;
|
|
37
|
-
}
|
|
38
|
-
const n = parseFloat(groups.value);
|
|
39
|
-
const type = (groups.type || 'ms').toLowerCase();
|
|
40
|
-
switch(type){
|
|
41
|
-
case 'years':
|
|
42
|
-
case 'year':
|
|
43
|
-
case 'yrs':
|
|
44
|
-
case 'yr':
|
|
45
|
-
case 'y':
|
|
46
|
-
return n * y;
|
|
47
|
-
case 'weeks':
|
|
48
|
-
case 'week':
|
|
49
|
-
case 'w':
|
|
50
|
-
return n * w;
|
|
51
|
-
case 'days':
|
|
52
|
-
case 'day':
|
|
53
|
-
case 'd':
|
|
54
|
-
return n * d;
|
|
55
|
-
case 'hours':
|
|
56
|
-
case 'hour':
|
|
57
|
-
case 'hrs':
|
|
58
|
-
case 'hr':
|
|
59
|
-
case 'h':
|
|
60
|
-
return n * h;
|
|
61
|
-
case 'minutes':
|
|
62
|
-
case 'minute':
|
|
63
|
-
case 'mins':
|
|
64
|
-
case 'min':
|
|
65
|
-
case 'm':
|
|
66
|
-
return n * m;
|
|
67
|
-
case 'seconds':
|
|
68
|
-
case 'second':
|
|
69
|
-
case 'secs':
|
|
70
|
-
case 'sec':
|
|
71
|
-
case 's':
|
|
72
|
-
return n * s;
|
|
73
|
-
case 'milliseconds':
|
|
74
|
-
case 'millisecond':
|
|
75
|
-
case 'msecs':
|
|
76
|
-
case 'msec':
|
|
77
|
-
case 'ms':
|
|
78
|
-
return n;
|
|
79
|
-
default:
|
|
80
|
-
// This should never occur.
|
|
81
|
-
throw new Error(`The unit ${type} was matched, but no matching case exists.`);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
// eslint-disable-next-line import/no-default-export
|
|
85
|
-
export default msFn;
|
|
86
|
-
/**
|
|
87
|
-
* Short format for `ms`.
|
|
88
|
-
*/ function fmtShort(ms) {
|
|
89
|
-
const msAbs = Math.abs(ms);
|
|
90
|
-
if (msAbs >= d) {
|
|
91
|
-
return `${Math.round(ms / d)}d`;
|
|
92
|
-
}
|
|
93
|
-
if (msAbs >= h) {
|
|
94
|
-
return `${Math.round(ms / h)}h`;
|
|
95
|
-
}
|
|
96
|
-
if (msAbs >= m) {
|
|
97
|
-
return `${Math.round(ms / m)}m`;
|
|
98
|
-
}
|
|
99
|
-
if (msAbs >= s) {
|
|
100
|
-
return `${Math.round(ms / s)}s`;
|
|
101
|
-
}
|
|
102
|
-
return `${ms}ms`;
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Long format for `ms`.
|
|
106
|
-
*/ function fmtLong(ms) {
|
|
107
|
-
const msAbs = Math.abs(ms);
|
|
108
|
-
if (msAbs >= d) {
|
|
109
|
-
return plural(ms, msAbs, d, 'day');
|
|
110
|
-
}
|
|
111
|
-
if (msAbs >= h) {
|
|
112
|
-
return plural(ms, msAbs, h, 'hour');
|
|
113
|
-
}
|
|
114
|
-
if (msAbs >= m) {
|
|
115
|
-
return plural(ms, msAbs, m, 'minute');
|
|
116
|
-
}
|
|
117
|
-
if (msAbs >= s) {
|
|
118
|
-
return plural(ms, msAbs, s, 'second');
|
|
119
|
-
}
|
|
120
|
-
return `${ms} ms`;
|
|
121
|
-
}
|
|
122
|
-
/**
|
|
123
|
-
* Pluralization helper.
|
|
124
|
-
*/ function plural(ms, msAbs, n, name) {
|
|
125
|
-
const isPlural = msAbs >= n * 1.5;
|
|
126
|
-
return `${Math.round(ms / n)} ${name}${isPlural ? 's' : ''}`;
|
|
127
|
-
}
|
|
128
|
-
/**
|
|
129
|
-
* A type guard for errors.
|
|
130
|
-
*
|
|
131
|
-
* @param value - The value to test
|
|
132
|
-
* @returns A boolean `true` if the provided value is an Error-like object
|
|
133
|
-
*/ function isError(value) {
|
|
134
|
-
return typeof value === 'object' && value !== null && 'message' in value;
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
//# sourceMappingURL=ms.js.map
|
package/lib/libs/ms.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/libs/ms.ts"],"sourcesContent":["// Helpers.\nconst s = 1000;\nconst m = s * 60;\nconst h = m * 60;\nconst d = h * 24;\nconst w = d * 7;\nconst y = d * 365.25;\n\ntype Unit =\n | 'Years'\n | 'Year'\n | 'Yrs'\n | 'Yr'\n | 'Y'\n | 'Weeks'\n | 'Week'\n | 'W'\n | 'Days'\n | 'Day'\n | 'D'\n | 'Hours'\n | 'Hour'\n | 'Hrs'\n | 'Hr'\n | 'H'\n | 'Minutes'\n | 'Minute'\n | 'Mins'\n | 'Min'\n | 'M'\n | 'Seconds'\n | 'Second'\n | 'Secs'\n | 'Sec'\n | 's'\n | 'Milliseconds'\n | 'Millisecond'\n | 'Msecs'\n | 'Msec'\n | 'Ms';\n\ntype UnitAnyCase = Unit | Uppercase<Unit> | Lowercase<Unit>;\n\nexport type StringValue = `${number}` | `${number}${UnitAnyCase}` | `${number} ${UnitAnyCase}`;\n\ninterface Options {\n /**\n * Set to `true` to use verbose formatting. Defaults to `false`.\n */\n long?: boolean;\n}\n\n/**\n * Parse or format the given value.\n *\n * @param value - The string or number to convert\n * @param options - Options for the conversion\n * @throws Error if `value` is not a non-empty string or a number\n */\nfunction msFn(value: StringValue, options?: Options): number;\nfunction msFn(value: number, options?: Options): string;\nfunction msFn(value: StringValue | number, options?: Options): number | string {\n try {\n if (typeof value === 'string' && value.length > 0) {\n return parse(value);\n } else if (typeof value === 'number' && isFinite(value)) {\n return options?.long ? fmtLong(value) : fmtShort(value);\n }\n throw new Error('Value is not a string or number.');\n } catch (error) {\n const message = isError(error)\n ? `${error.message}. value=${JSON.stringify(value)}`\n : 'An unknown error has occurred.';\n throw new Error(message);\n }\n}\n\n/**\n * Parse the given string and return milliseconds.\n *\n * @param str - A string to parse to milliseconds\n * @returns The parsed value in milliseconds, or `NaN` if the string can't be\n * parsed\n */\nfunction parse(str: string): number {\n if (str.length > 100) {\n throw new Error('Value exceeds the maximum length of 100 characters.');\n }\n const match =\n /^(?<value>-?(?:\\d+)?\\.?\\d+) *(?<type>milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str,\n );\n // Named capture groups need to be manually typed today.\n // https://github.com/microsoft/TypeScript/issues/32098\n const groups = match?.groups as { value: string; type?: string } | undefined;\n if (!groups) {\n return NaN;\n }\n const n = parseFloat(groups.value);\n const type = (groups.type || 'ms').toLowerCase() as Lowercase<Unit>;\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n // This should never occur.\n throw new Error(`The unit ${type as string} was matched, but no matching case exists.`);\n }\n}\n\n// eslint-disable-next-line import/no-default-export\nexport default msFn;\n\n/**\n * Short format for `ms`.\n */\nfunction fmtShort(ms: number): StringValue {\n const msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return `${Math.round(ms / d)}d`;\n }\n if (msAbs >= h) {\n return `${Math.round(ms / h)}h`;\n }\n if (msAbs >= m) {\n return `${Math.round(ms / m)}m`;\n }\n if (msAbs >= s) {\n return `${Math.round(ms / s)}s`;\n }\n return `${ms}ms`;\n}\n\n/**\n * Long format for `ms`.\n */\nfunction fmtLong(ms: number): StringValue {\n const msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return `${ms} ms`;\n}\n\n/**\n * Pluralization helper.\n */\nfunction plural(ms: number, msAbs: number, n: number, name: string): StringValue {\n const isPlural = msAbs >= n * 1.5;\n return `${Math.round(ms / n)} ${name}${isPlural ? 's' : ''}` as StringValue;\n}\n\n/**\n * A type guard for errors.\n *\n * @param value - The value to test\n * @returns A boolean `true` if the provided value is an Error-like object\n */\nfunction isError(value: unknown): value is Error {\n return typeof value === 'object' && value !== null && 'message' in value;\n}\n"],"names":["s","m","h","d","w","y","msFn","value","options","length","parse","isFinite","long","fmtLong","fmtShort","Error","error","message","isError","JSON","stringify","str","match","exec","groups","NaN","n","parseFloat","type","toLowerCase","ms","msAbs","Math","abs","round","plural","name","isPlural"],"mappings":"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"}
|