@wener/utils 1.1.51 → 1.1.54
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/lib/arrays/MaybeArray.js +58 -8
- package/lib/arrays/arrayFromAsync.js +254 -6
- package/lib/asyncs/AsyncInterval.js +145 -9
- package/lib/asyncs/MaybePromise.js +0 -2
- package/lib/asyncs/Promises.js +95 -48
- package/lib/asyncs/createAsyncIterator.js +313 -23
- package/lib/asyncs/createLazyPromise.js +72 -31
- package/lib/asyncs/createLazyPromise.test.js +367 -0
- package/lib/asyncs/firstOfAsyncIterator.js +6 -6
- package/lib/asyncs/generatorOfStream.js +125 -14
- package/lib/asyncs/isIterator.js +1 -3
- package/lib/asyncs/isPromise.js +2 -4
- package/lib/asyncs/isThenable.js +0 -2
- package/lib/asyncs/nextOfAsyncIterator.js +15 -9
- package/lib/asyncs/promiseOfCallback.js +2 -4
- package/lib/asyncs/timeout.js +122 -13
- package/lib/browsers/copy.js +7 -8
- package/lib/browsers/download.js +215 -40
- package/lib/browsers/getFileFromDataTransfer.js +17 -14
- package/lib/browsers/loaders.js +251 -18
- package/lib/crypto/base.js +3 -3
- package/lib/crypto/getNodeCrypto.js +3 -5
- package/lib/crypto/hashing.js +236 -30
- package/lib/crypto/hashing.test.js +323 -0
- package/lib/crypto/md5.bench.js +11 -11
- package/lib/crypto/md5.d.js +0 -2
- package/lib/crypto/md5.js +0 -2
- package/lib/crypto/md5.test.js +7 -0
- package/lib/crypto/pem/pem.js +197 -35
- package/lib/crypto/pem/pem.test.js +104 -0
- package/lib/crypto/randomUUIDv7.js +0 -2
- package/lib/crypto/ulid.js +84 -48
- package/lib/crypto/ulid.test.js +115 -0
- package/lib/emitter/types.js +0 -2
- package/lib/errors/DetailError.js +297 -0
- package/lib/errors/Errors.js +136 -137
- package/lib/errors/Errors.test.js +24 -0
- package/lib/fetch/HttpStatus.js +1 -3
- package/lib/fetch/createFetchWith.js +188 -19
- package/lib/fetch/createFetchWithLogging.js +17 -16
- package/lib/fetch/createFetchWithRetry.js +40 -24
- package/lib/fetch/dumpRequest.js +467 -41
- package/lib/fetch/dumpRequest.test.js +384 -0
- package/lib/fetch/dumpResponse.js +271 -16
- package/lib/fetch/dumpResponse.test.js +393 -0
- package/lib/fetch/http.types.js +0 -2
- package/lib/fetch/index.js +5 -7
- package/lib/fetch/isTextContentType.js +5 -0
- package/lib/fetch/resolveRequest.js +7 -0
- package/lib/fetch/types.js +0 -2
- package/lib/i18n/createTranslate.js +40 -20
- package/lib/i18n/createTranslate.test.js +177 -0
- package/lib/index.js +75 -76
- package/lib/io/AbstractEncoding.js +0 -2
- package/lib/io/ArrayBuffer.test-d.js +4 -6
- package/lib/io/ArrayBuffers.base64.test.js +60 -0
- package/lib/io/ArrayBuffers.js +396 -171
- package/lib/io/ArrayBuffers.test.js +77 -0
- package/lib/io/Buffer.js +190 -20
- package/lib/io/Buffer.test.js +22 -0
- package/lib/io/ByteBuffer.js +752 -441
- package/lib/io/ByteBuffer.test.js +184 -0
- package/lib/io/base64.js +17 -19
- package/lib/io/dump.js +16 -16
- package/lib/io/isBuffer.js +2 -3
- package/lib/io/isBuffer.test.js +8 -0
- package/lib/io/isTransferable.js +16 -8
- package/lib/io/isTransferable.test.js +17 -0
- package/lib/io/parseDataUri.js +288 -40
- package/lib/io/parseDataUri.test.js +286 -0
- package/lib/io/types.js +1 -0
- package/lib/langs/AsyncCloser.js +270 -34
- package/lib/langs/Closer.js +95 -29
- package/lib/langs/MaybeFunction.js +38 -5
- package/lib/langs/classOf.js +0 -2
- package/lib/langs/deepEqual.js +82 -22
- package/lib/langs/deepEqual.test.js +11 -0
- package/lib/langs/deepFreeze.js +28 -9
- package/lib/langs/getGlobalStates.js +14 -10
- package/lib/langs/getObjectId.js +4 -6
- package/lib/langs/ifPresent.js +0 -2
- package/lib/langs/isClass.js +0 -2
- package/lib/langs/isDefined.js +0 -2
- package/lib/langs/isEmptyObject.js +1 -3
- package/lib/langs/isFunction.js +0 -2
- package/lib/langs/isNil.js +3 -0
- package/lib/langs/isPlainObject.js +2 -4
- package/lib/langs/langs.test.js +126 -0
- package/lib/langs/memoize.js +11 -7
- package/lib/langs/mixin.js +7 -4
- package/lib/langs/mixin.test.js +135 -0
- package/lib/langs/parseBoolean.js +11 -8
- package/lib/langs/parseDate.js +20 -0
- package/lib/langs/shallowClone.js +5 -3
- package/lib/langs/shallowEqual.js +8 -6
- package/lib/libs/ms.js +28 -26
- package/lib/libs/ms.test.js +301 -0
- package/lib/logger/const.js +15 -0
- package/lib/logger/index.js +1 -0
- package/lib/logger/types.js +1 -0
- package/lib/maths/clamp.js +81 -12
- package/lib/maths/clamp.test.js +186 -0
- package/lib/maths/createRandom.test.js +36 -0
- package/lib/maths/random.js +162 -13
- package/lib/modules/isModule.js +0 -2
- package/lib/modules/parseModuleId.js +14 -15
- package/lib/modules/parseModuleId.test.js +153 -0
- package/lib/objects/computeIfAbsent.js +8 -3
- package/lib/objects/get.js +26 -8
- package/lib/objects/get.test-d.js +23 -25
- package/lib/objects/merge/index.js +1 -3
- package/lib/objects/merge/isMergeableObject.js +5 -3
- package/lib/objects/merge/merge.js +82 -26
- package/lib/objects/merge/merge.test.js +1397 -0
- package/lib/objects/parseObjectPath.js +47 -15
- package/lib/objects/parseObjectPath.test.js +138 -0
- package/lib/objects/set.js +25 -19
- package/lib/objects/set.test.js +522 -0
- package/lib/schema/typebox/index.js +2 -3
- package/lib/schema/typebox/typebox.js +6 -6
- package/lib/scripts/getGenerateContext.js +386 -77
- package/lib/server/crypto/md5.js +0 -2
- package/lib/server/fetch/createFetchWithProxy.js +2 -4
- package/lib/server/fetch/createFetchWithProxyByNodeFetch.js +258 -31
- package/lib/server/fetch/createFetchWithProxyByUndici.js +307 -49
- package/lib/server/getPackageDir.js +2 -3
- package/lib/server/index.js +5 -7
- package/lib/server/jsdom.js +1 -3
- package/lib/server/node-fetch.js +2 -4
- package/lib/server/polyfill/polyfillBrowser.js +163 -9
- package/lib/server/polyfill/polyfillBrowser.test.js +164 -0
- package/lib/server/polyfill/polyfillCrypto.js +157 -9
- package/lib/server/polyfill/polyfillFetch.js +13 -13
- package/lib/server/polyfill/polyfillJsDom.js +264 -58
- package/lib/server/polyfill/polyfillWebSocket.js +11 -11
- package/lib/server/ws.js +1 -3
- package/lib/strings/bytes.test.js +327 -0
- package/lib/strings/camelCase.js +23 -14
- package/lib/strings/formatBytes.js +29 -20
- package/lib/strings/parseBytes.js +54 -0
- package/lib/strings/renderTemplate.js +17 -12
- package/lib/strings/renderTemplate.test.js +104 -0
- package/lib/typedoc.js +2 -4
- package/lib/types.d.js +0 -2
- package/lib/validations/asserts.js +0 -2
- package/lib/validations/isUUID.js +0 -2
- package/lib/validations/isUUID.test.js +87 -0
- package/lib/validations/parseTimestamp.js +12 -7
- package/lib/validations/parseTimestamp.test.js +6 -0
- package/lib/web/getGlobalThis.js +3 -4
- package/lib/web/getRandomValues.js +28 -20
- package/lib/web/randomUUID.js +7 -8
- package/lib/web/requestIdleCallback.js +13 -9
- package/lib/web/structuredClone.js +35 -28
- package/lib/web/structuredClone.test.js +81 -0
- package/package.json +9 -14
- package/src/arrays/MaybeArray.ts +22 -22
- package/src/arrays/arrayFromAsync.ts +3 -3
- package/src/asyncs/AsyncInterval.ts +8 -8
- package/src/asyncs/Promises.ts +51 -51
- package/src/asyncs/createAsyncIterator.ts +33 -33
- package/src/asyncs/createLazyPromise.test.ts +73 -73
- package/src/asyncs/createLazyPromise.ts +68 -73
- package/src/asyncs/firstOfAsyncIterator.ts +5 -5
- package/src/asyncs/generatorOfStream.ts +12 -12
- package/src/asyncs/isIterator.ts +1 -1
- package/src/asyncs/isThenable.ts +2 -2
- package/src/asyncs/nextOfAsyncIterator.ts +20 -20
- package/src/asyncs/promiseOfCallback.ts +13 -13
- package/src/asyncs/timeout.ts +23 -23
- package/src/browsers/copy.ts +48 -48
- package/src/browsers/download.ts +38 -36
- package/src/browsers/getFileFromDataTransfer.ts +35 -35
- package/src/browsers/loaders.ts +49 -49
- package/src/crypto/base.ts +3 -3
- package/src/crypto/getNodeCrypto.ts +2 -2
- package/src/crypto/hashing.test.ts +33 -47
- package/src/crypto/hashing.ts +67 -67
- package/src/crypto/md5.bench.ts +20 -24
- package/src/crypto/md5.test.ts +3 -3
- package/src/crypto/pem/pem.test.ts +26 -42
- package/src/crypto/pem/pem.ts +65 -65
- package/src/crypto/ulid.test.ts +31 -31
- package/src/crypto/ulid.ts +116 -116
- package/src/emitter/types.ts +6 -6
- package/src/errors/DetailError.ts +151 -0
- package/src/errors/Errors.test.ts +15 -15
- package/src/errors/Errors.ts +97 -238
- package/src/fetch/HttpStatus.ts +77 -77
- package/src/fetch/createFetchWith.ts +25 -25
- package/src/fetch/createFetchWithLogging.ts +12 -15
- package/src/fetch/createFetchWithRetry.ts +79 -79
- package/src/fetch/dumpRequest.test.ts +176 -0
- package/src/fetch/dumpRequest.ts +149 -52
- package/src/fetch/dumpResponse.test.ts +160 -0
- package/src/fetch/dumpResponse.ts +48 -20
- package/src/fetch/http.types.ts +35 -35
- package/src/fetch/isTextContentType.ts +12 -0
- package/src/fetch/resolveRequest.ts +1 -0
- package/src/fetch/types.ts +2 -2
- package/src/i18n/createTranslate.test.ts +90 -113
- package/src/i18n/createTranslate.ts +55 -55
- package/src/index.ts +26 -26
- package/src/io/AbstractEncoding.ts +12 -12
- package/src/io/ArrayBuffer.test-d.ts +1 -1
- package/src/io/ArrayBuffers.base64.test.ts +52 -52
- package/src/io/ArrayBuffers.test.ts +14 -14
- package/src/io/ArrayBuffers.ts +645 -415
- package/src/io/Buffer.test.ts +17 -17
- package/src/io/Buffer.ts +17 -17
- package/src/io/ByteBuffer.test.ts +37 -37
- package/src/io/ByteBuffer.ts +574 -566
- package/src/io/base64.ts +46 -44
- package/src/io/dump.ts +22 -22
- package/src/io/isBuffer.test.ts +2 -2
- package/src/io/isBuffer.ts +1 -1
- package/src/io/isTransferable.test.ts +4 -4
- package/src/io/isTransferable.ts +29 -29
- package/src/io/parseDataUri.test.ts +22 -27
- package/src/io/parseDataUri.ts +57 -57
- package/src/io/types.ts +13 -0
- package/src/langs/AsyncCloser.ts +34 -34
- package/src/langs/Closer.ts +28 -28
- package/src/langs/MaybeFunction.ts +5 -5
- package/src/langs/classOf.ts +1 -1
- package/src/langs/deepEqual.test.ts +1 -12
- package/src/langs/deepEqual.ts +82 -82
- package/src/langs/deepFreeze.ts +11 -11
- package/src/langs/getGlobalStates.ts +16 -16
- package/src/langs/getObjectId.ts +10 -13
- package/src/langs/ifPresent.ts +2 -2
- package/src/langs/isClass.ts +1 -1
- package/src/langs/isDefined.ts +1 -1
- package/src/langs/isEmptyObject.ts +1 -1
- package/src/langs/isFunction.ts +1 -1
- package/src/langs/isNil.ts +3 -0
- package/src/langs/isPlainObject.ts +4 -4
- package/src/langs/langs.test.ts +18 -18
- package/src/langs/memoize.ts +21 -21
- package/src/langs/mixin.test.ts +22 -26
- package/src/langs/mixin.ts +6 -9
- package/src/langs/parseBoolean.ts +30 -26
- package/src/langs/parseDate.ts +13 -0
- package/src/langs/shallowClone.ts +11 -11
- package/src/langs/shallowEqual.ts +19 -19
- package/src/libs/ms.test.ts +274 -274
- package/src/libs/ms.ts +137 -137
- package/src/logger/const.ts +18 -0
- package/src/logger/index.ts +2 -0
- package/src/logger/types.ts +10 -0
- package/src/maths/clamp.test.ts +18 -18
- package/src/maths/clamp.ts +17 -17
- package/src/maths/createRandom.test.ts +12 -0
- package/src/maths/random.ts +50 -14
- package/src/modules/isModule.ts +4 -4
- package/src/modules/parseModuleId.test.ts +61 -68
- package/src/modules/parseModuleId.ts +29 -43
- package/src/objects/computeIfAbsent.ts +10 -10
- package/src/objects/get.test-d.ts +33 -51
- package/src/objects/get.ts +31 -31
- package/src/objects/merge/isMergeableObject.ts +5 -5
- package/src/objects/merge/merge.test.ts +658 -880
- package/src/objects/merge/merge.ts +84 -84
- package/src/objects/parseObjectPath.test.ts +13 -13
- package/src/objects/parseObjectPath.ts +25 -25
- package/src/objects/set.test.ts +271 -366
- package/src/objects/set.ts +36 -36
- package/src/schema/typebox/typebox.ts +20 -26
- package/src/scripts/getGenerateContext.ts +79 -79
- package/src/server/crypto/md5.ts +1 -1
- package/src/server/fetch/createFetchWithProxyByNodeFetch.ts +28 -31
- package/src/server/fetch/createFetchWithProxyByUndici.ts +63 -69
- package/src/server/getPackageDir.ts +7 -7
- package/src/server/polyfill/polyfillBrowser.test.ts +10 -10
- package/src/server/polyfill/polyfillBrowser.ts +3 -3
- package/src/server/polyfill/polyfillCrypto.ts +6 -6
- package/src/server/polyfill/polyfillFetch.ts +11 -21
- package/src/server/polyfill/polyfillJsDom.ts +59 -71
- package/src/server/polyfill/polyfillWebSocket.ts +14 -14
- package/src/strings/bytes.test.ts +69 -0
- package/src/strings/camelCase.ts +58 -63
- package/src/strings/formatBytes.ts +50 -29
- package/src/strings/parseBytes.ts +66 -0
- package/src/strings/renderTemplate.test.ts +10 -17
- package/src/strings/renderTemplate.ts +19 -22
- package/src/types.d.ts +9 -9
- package/src/validations/asserts.ts +8 -8
- package/src/validations/isUUID.test.ts +8 -8
- package/src/validations/isUUID.ts +1 -1
- package/src/validations/parseTimestamp.test.ts +2 -2
- package/src/validations/parseTimestamp.ts +21 -21
- package/src/web/getGlobalThis.ts +6 -6
- package/src/web/getRandomValues.ts +29 -29
- package/src/web/randomUUID.ts +5 -5
- package/src/web/requestIdleCallback.ts +7 -10
- package/src/web/structuredClone.test.ts +8 -8
- package/src/web/structuredClone.ts +62 -62
- package/tsconfig.json +26 -34
- package/lib/arrays/MaybeArray.js.map +0 -1
- package/lib/arrays/arrayFromAsync.js.map +0 -1
- package/lib/asyncs/AsyncInterval.js.map +0 -1
- package/lib/asyncs/MaybePromise.js.map +0 -1
- package/lib/asyncs/Promises.js.map +0 -1
- package/lib/asyncs/createAsyncIterator.js.map +0 -1
- package/lib/asyncs/createLazyPromise.js.map +0 -1
- package/lib/asyncs/firstOfAsyncIterator.js.map +0 -1
- package/lib/asyncs/generatorOfStream.js.map +0 -1
- package/lib/asyncs/isIterator.js.map +0 -1
- package/lib/asyncs/isPromise.js.map +0 -1
- package/lib/asyncs/isThenable.js.map +0 -1
- package/lib/asyncs/nextOfAsyncIterator.js.map +0 -1
- package/lib/asyncs/promiseOfCallback.js.map +0 -1
- package/lib/asyncs/timeout.js.map +0 -1
- package/lib/browsers/copy.js.map +0 -1
- package/lib/browsers/download.js.map +0 -1
- package/lib/browsers/getFileFromDataTransfer.js.map +0 -1
- package/lib/browsers/loaders.js.map +0 -1
- package/lib/cn/division/DivisionCode.js +0 -215
- package/lib/cn/division/DivisionCode.js.map +0 -1
- package/lib/cn/division/binarySearch.js +0 -27
- package/lib/cn/division/binarySearch.js.map +0 -1
- package/lib/cn/formatChineseAmount.js +0 -77
- package/lib/cn/formatChineseAmount.js.map +0 -1
- package/lib/cn/id/Mod11.js +0 -43
- package/lib/cn/id/Mod11.js.map +0 -1
- package/lib/cn/id/ResidentIdNumber.js +0 -98
- package/lib/cn/id/ResidentIdNumber.js.map +0 -1
- package/lib/cn/id/types.js +0 -8
- package/lib/cn/id/types.js.map +0 -1
- package/lib/cn/index.js +0 -14
- package/lib/cn/index.js.map +0 -1
- package/lib/cn/parseChineseNumber.js +0 -94
- package/lib/cn/parseChineseNumber.js.map +0 -1
- package/lib/cn/pinyin/cartesianProduct.js +0 -22
- package/lib/cn/pinyin/cartesianProduct.js.map +0 -1
- package/lib/cn/pinyin/data.json +0 -413
- package/lib/cn/pinyin/loader.js +0 -15
- package/lib/cn/pinyin/loader.js.map +0 -1
- package/lib/cn/pinyin/preload.js +0 -4
- package/lib/cn/pinyin/preload.js.map +0 -1
- package/lib/cn/pinyin/toPinyinPure.js +0 -32
- package/lib/cn/pinyin/toPinyinPure.js.map +0 -1
- package/lib/cn/pinyin/transform.js +0 -14
- package/lib/cn/pinyin/transform.js.map +0 -1
- package/lib/cn/types.js +0 -3
- package/lib/cn/types.js.map +0 -1
- package/lib/cn/uscc/Mod31.js +0 -49
- package/lib/cn/uscc/Mod31.js.map +0 -1
- package/lib/cn/uscc/USCC.js +0 -94
- package/lib/cn/uscc/USCC.js.map +0 -1
- package/lib/cn/uscc/isUSCC.js +0 -8
- package/lib/cn/uscc/isUSCC.js.map +0 -1
- package/lib/crypto/base.js.map +0 -1
- package/lib/crypto/getNodeCrypto.js.map +0 -1
- package/lib/crypto/hashing.js.map +0 -1
- package/lib/crypto/md5.bench.js.map +0 -1
- package/lib/crypto/md5.d.js.map +0 -1
- package/lib/crypto/md5.js.map +0 -1
- package/lib/crypto/pem/pem.js.map +0 -1
- package/lib/crypto/randomUUIDv7.js.map +0 -1
- package/lib/crypto/ulid.js.map +0 -1
- package/lib/emitter/types.js.map +0 -1
- package/lib/errors/Errors.js.map +0 -1
- package/lib/fetch/HttpStatus.js.map +0 -1
- package/lib/fetch/createFetchWith.js.map +0 -1
- package/lib/fetch/createFetchWithLogging.js.map +0 -1
- package/lib/fetch/createFetchWithRetry.js.map +0 -1
- package/lib/fetch/dumpRequest.js.map +0 -1
- package/lib/fetch/dumpResponse.js.map +0 -1
- package/lib/fetch/http.types.js.map +0 -1
- package/lib/fetch/index.js.map +0 -1
- package/lib/fetch/types.js.map +0 -1
- package/lib/i18n/createTranslate.js.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/io/AbstractEncoding.js.map +0 -1
- package/lib/io/ArrayBuffer.test-d.js.map +0 -1
- package/lib/io/ArrayBuffers.js.map +0 -1
- package/lib/io/Buffer.js.map +0 -1
- package/lib/io/ByteBuffer.js.map +0 -1
- package/lib/io/base64.js.map +0 -1
- package/lib/io/dump.js.map +0 -1
- package/lib/io/isBuffer.js.map +0 -1
- package/lib/io/isTransferable.js.map +0 -1
- package/lib/io/parseDataUri.js.map +0 -1
- package/lib/langs/AsyncCloser.js.map +0 -1
- package/lib/langs/Closer.js.map +0 -1
- package/lib/langs/MaybeFunction.js.map +0 -1
- package/lib/langs/classOf.js.map +0 -1
- package/lib/langs/deepEqual.js.map +0 -1
- package/lib/langs/deepFreeze.js.map +0 -1
- package/lib/langs/getGlobalStates.js.map +0 -1
- package/lib/langs/getObjectId.js.map +0 -1
- package/lib/langs/ifPresent.js.map +0 -1
- package/lib/langs/isClass.js.map +0 -1
- package/lib/langs/isDefined.js.map +0 -1
- package/lib/langs/isEmptyObject.js.map +0 -1
- package/lib/langs/isFunction.js.map +0 -1
- package/lib/langs/isNullish.js +0 -5
- package/lib/langs/isNullish.js.map +0 -1
- package/lib/langs/isPlainObject.js.map +0 -1
- package/lib/langs/memoize.js.map +0 -1
- package/lib/langs/mixin.js.map +0 -1
- package/lib/langs/parseBoolean.js.map +0 -1
- package/lib/langs/shallowClone.js.map +0 -1
- package/lib/langs/shallowEqual.js.map +0 -1
- 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.map +0 -1
- package/lib/maths/random.js.map +0 -1
- package/lib/mitt/index.js +0 -77
- package/lib/mitt/index.js.map +0 -1
- package/lib/modules/isModule.js.map +0 -1
- package/lib/modules/parseModuleId.js.map +0 -1
- package/lib/objects/computeIfAbsent.js.map +0 -1
- package/lib/objects/get.js.map +0 -1
- package/lib/objects/get.test-d.js.map +0 -1
- package/lib/objects/merge/index.js.map +0 -1
- package/lib/objects/merge/isMergeableObject.js.map +0 -1
- package/lib/objects/merge/merge.js.map +0 -1
- package/lib/objects/parseObjectPath.js.map +0 -1
- package/lib/objects/set.js.map +0 -1
- package/lib/schema/typebox/index.js.map +0 -1
- package/lib/schema/typebox/typebox.js.map +0 -1
- package/lib/scripts/getGenerateContext.js.map +0 -1
- package/lib/server/crypto/md5.js.map +0 -1
- package/lib/server/fetch/createFetchWithProxy.js.map +0 -1
- package/lib/server/fetch/createFetchWithProxyByNodeFetch.js.map +0 -1
- package/lib/server/fetch/createFetchWithProxyByUndici.js.map +0 -1
- package/lib/server/getPackageDir.js.map +0 -1
- package/lib/server/index.js.map +0 -1
- package/lib/server/jsdom.js.map +0 -1
- package/lib/server/node-fetch.js.map +0 -1
- package/lib/server/polyfill/polyfillBrowser.js.map +0 -1
- package/lib/server/polyfill/polyfillCrypto.js.map +0 -1
- package/lib/server/polyfill/polyfillFetch.js.map +0 -1
- package/lib/server/polyfill/polyfillJsDom.js.map +0 -1
- package/lib/server/polyfill/polyfillWebSocket.js.map +0 -1
- package/lib/server/ws.js.map +0 -1
- package/lib/strings/camelCase.js.map +0 -1
- package/lib/strings/formatBytes.js.map +0 -1
- package/lib/strings/renderTemplate.js.map +0 -1
- package/lib/typedoc.js.map +0 -1
- package/lib/types.d.js.map +0 -1
- package/lib/validations/asserts.js.map +0 -1
- package/lib/validations/isUUID.js.map +0 -1
- package/lib/validations/parseTimestamp.js.map +0 -1
- package/lib/web/getGlobalThis.js.map +0 -1
- package/lib/web/getRandomValues.js.map +0 -1
- package/lib/web/randomUUID.js.map +0 -1
- package/lib/web/requestIdleCallback.js.map +0 -1
- package/lib/web/structuredClone.js.map +0 -1
- package/src/cn/README.md +0 -3
- package/src/cn/division/DivisionCode.ts +0 -173
- package/src/cn/division/binarySearch.test.ts +0 -64
- package/src/cn/division/binarySearch.ts +0 -25
- package/src/cn/division/division.test.ts +0 -22
- package/src/cn/formatChineseAmount.ts +0 -61
- package/src/cn/id/Mod11.ts +0 -26
- package/src/cn/id/ResidentIdNumber.ts +0 -126
- package/src/cn/id/id.test.ts +0 -20
- package/src/cn/id/types.ts +0 -26
- package/src/cn/index.ts +0 -17
- package/src/cn/parseChineseNumber.test.ts +0 -159
- package/src/cn/parseChineseNumber.ts +0 -97
- package/src/cn/pinyin/cartesianProduct.test.ts +0 -64
- package/src/cn/pinyin/cartesianProduct.ts +0 -24
- package/src/cn/pinyin/data.json +0 -413
- package/src/cn/pinyin/loader.ts +0 -12
- package/src/cn/pinyin/preload.ts +0 -3
- package/src/cn/pinyin/toPinyin.test.ts +0 -12
- package/src/cn/pinyin/toPinyinPure.ts +0 -43
- package/src/cn/pinyin/transform.ts +0 -12
- package/src/cn/scripts/gen.test.ts +0 -131
- package/src/cn/types.ts +0 -11
- package/src/cn/uscc/Mod31.ts +0 -38
- package/src/cn/uscc/USCC.ts +0 -94
- package/src/cn/uscc/isUSCC.ts +0 -8
- package/src/cn/uscc/uscc.test.ts +0 -16
- package/src/langs/isNullish.ts +0 -3
- package/src/logging/Logger.ts +0 -25
- package/src/logging/createChildLogger.ts +0 -16
- package/src/logging/createLogger.ts +0 -50
- package/src/logging/createNoopLogger.ts +0 -13
- package/src/logging/logger.test.ts +0 -36
- package/src/logging/slog.test.ts +0 -8
- package/src/logging/slog.ts +0 -221
- package/src/mitt/README.md +0 -1
- package/src/mitt/index.ts +0 -114
package/lib/io/ArrayBuffers.js
CHANGED
|
@@ -1,18 +1,39 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
function _instanceof(left, right) {
|
|
2
|
+
if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
|
|
3
|
+
return !!right[Symbol.hasInstance](left);
|
|
4
|
+
}
|
|
5
|
+
else {
|
|
6
|
+
return left instanceof right;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
import { classOf } from "../langs/classOf.js";
|
|
10
|
+
import { getGlobalThis } from "../web/getGlobalThis.js";
|
|
11
|
+
import { decodeBase64ToUint8Array, encodeArrayBufferToBase64 } from "./base64.js";
|
|
12
|
+
import { isBuffer } from "./isBuffer.js";
|
|
13
|
+
(function (ArrayBuffers) {
|
|
14
|
+
var nativeBufferAllowed = true;
|
|
15
|
+
var isBufferAvailable;
|
|
16
|
+
var textEncoder;
|
|
17
|
+
var textDecoder;
|
|
18
|
+
function decode(v) {
|
|
19
|
+
// need icu full data
|
|
20
|
+
// if (encoding) return new TextDecoder(encoding).decode(v);
|
|
21
|
+
return (textDecoder || (textDecoder = new TextDecoder())).decode(v);
|
|
22
|
+
}
|
|
23
|
+
function encode(v) {
|
|
24
|
+
if (typeof v === "string") {
|
|
25
|
+
return (textEncoder || (textEncoder = new TextEncoder())).encode(v);
|
|
26
|
+
}
|
|
27
|
+
return v;
|
|
28
|
+
}
|
|
9
29
|
function isNativeBufferAvailable() {
|
|
30
|
+
var _getGlobalThis_Buffer_isPollyfill, _getGlobalThis_Buffer;
|
|
10
31
|
// eslint-disable-next-line no-return-assign
|
|
11
|
-
return isBufferAvailable
|
|
32
|
+
return isBufferAvailable !== null && isBufferAvailable !== void 0 ? isBufferAvailable : isBufferAvailable = !((_getGlobalThis_Buffer = getGlobalThis().Buffer) === null || _getGlobalThis_Buffer === void 0 ? void 0 : (_getGlobalThis_Buffer_isPollyfill = _getGlobalThis_Buffer.isPollyfill) === null || _getGlobalThis_Buffer_isPollyfill === void 0 ? void 0 : _getGlobalThis_Buffer_isPollyfill.call(_getGlobalThis_Buffer));
|
|
12
33
|
}
|
|
13
34
|
/**
|
|
14
|
-
|
|
15
|
-
|
|
35
|
+
* isNativeBufferAvailable check if the native {@link Buffer} is available
|
|
36
|
+
*/ ArrayBuffers.isNativeBufferAvailable = isNativeBufferAvailable;
|
|
16
37
|
function isNativeBufferAllowed() {
|
|
17
38
|
return Boolean(nativeBufferAllowed && isBufferAvailable);
|
|
18
39
|
}
|
|
@@ -22,11 +43,9 @@ export var ArrayBuffers;
|
|
|
22
43
|
}
|
|
23
44
|
ArrayBuffers.setNativeBufferAllowed = setNativeBufferAllowed;
|
|
24
45
|
function isArrayBuffer(v) {
|
|
25
|
-
return v
|
|
46
|
+
return _instanceof(v, ArrayBuffer);
|
|
26
47
|
}
|
|
27
|
-
|
|
28
|
-
* isArrayBuffer check if the given value is an {@link ArrayBuffer}
|
|
29
|
-
*/ ArrayBuffers.isArrayBuffer = isArrayBuffer;
|
|
48
|
+
ArrayBuffers.isArrayBuffer = isArrayBuffer;
|
|
30
49
|
function slice(o, start, end) {
|
|
31
50
|
// NodeJS Buffer slice is not the same as UInt8Array slice
|
|
32
51
|
// https://nodejs.org/api/buffer.html#bufslicestart-end
|
|
@@ -36,12 +55,12 @@ export var ArrayBuffers;
|
|
|
36
55
|
return o.slice(start, end);
|
|
37
56
|
}
|
|
38
57
|
/**
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
58
|
+
* slice the given view with the given offset and length, will handle the {@link Buffer} as well
|
|
59
|
+
*
|
|
60
|
+
* @see {@link https://nodejs.org/api/buffer.html#bufslicestart-end Buffer.slice}
|
|
61
|
+
*/ ArrayBuffers.slice = slice;
|
|
43
62
|
function asView(TypedArray, v, byteOffset, byteLength) {
|
|
44
|
-
if (v
|
|
63
|
+
if (_instanceof(v, TypedArray) && (byteOffset !== null && byteOffset !== void 0 ? byteOffset : 0) === 0 && byteLength === undefined) {
|
|
45
64
|
return v;
|
|
46
65
|
}
|
|
47
66
|
if (ArrayBuffer.isView(v) || isBuffer(v)) {
|
|
@@ -49,95 +68,86 @@ export var ArrayBuffers;
|
|
|
49
68
|
// new Buffer() is deprecated
|
|
50
69
|
return Buffer.from(v.buffer, byteOffset, byteLength);
|
|
51
70
|
}
|
|
52
|
-
return new TypedArray(v.buffer, v.byteOffset + (byteOffset
|
|
71
|
+
return new TypedArray(v.buffer, v.byteOffset + (byteOffset !== null && byteOffset !== void 0 ? byteOffset : 0), byteLength !== null && byteLength !== void 0 ? byteLength : v.byteLength);
|
|
53
72
|
}
|
|
54
73
|
return new TypedArray(v, byteOffset, byteLength);
|
|
55
74
|
}
|
|
56
75
|
/**
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
function toString(source
|
|
62
|
-
|
|
63
|
-
if (typeof source ===
|
|
64
|
-
switch(encoding){
|
|
65
|
-
case
|
|
76
|
+
* asView convert the given value to given {@link TypedArray} view
|
|
77
|
+
*
|
|
78
|
+
* TypedArray can be {@link Buffer}, will avoid copy
|
|
79
|
+
*/ ArrayBuffers.asView = asView;
|
|
80
|
+
function toString(source) {
|
|
81
|
+
var encoding = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "utf8";
|
|
82
|
+
if (typeof source === "string") {
|
|
83
|
+
switch (encoding) {
|
|
84
|
+
case "base64":
|
|
66
85
|
return btoa(source);
|
|
67
|
-
case
|
|
68
|
-
case
|
|
86
|
+
case "utf-8":
|
|
87
|
+
case "utf8":
|
|
69
88
|
return source;
|
|
70
89
|
default:
|
|
71
|
-
throw new Error(
|
|
90
|
+
throw new Error("[ArrayBuffers.toString] Unsupported encoding for string: ".concat(encoding));
|
|
72
91
|
}
|
|
73
92
|
}
|
|
74
|
-
|
|
93
|
+
var u8 = asView(Uint8Array, source);
|
|
75
94
|
if (isNativeBufferAllowed()) {
|
|
76
95
|
return Buffer.from(u8).toString(encoding);
|
|
77
96
|
}
|
|
78
|
-
// reference
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
case 'hex':
|
|
97
|
+
// reference: https://github.com/feross/buffer/blob/master/index.js
|
|
98
|
+
switch (encoding) {
|
|
99
|
+
case "hex":
|
|
82
100
|
{
|
|
83
|
-
return
|
|
84
|
-
...u8
|
|
85
|
-
].map((b)=>hexLookupTable[b]).join('');
|
|
101
|
+
return toHexString(u8);
|
|
86
102
|
}
|
|
87
|
-
case
|
|
103
|
+
case "base64":
|
|
88
104
|
{
|
|
89
|
-
return
|
|
105
|
+
return toBase64(u8);
|
|
90
106
|
}
|
|
91
|
-
case
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
case 'ascii':
|
|
107
|
+
case "utf8":
|
|
108
|
+
case "utf-8":
|
|
109
|
+
return decode(source);
|
|
110
|
+
case "ascii":
|
|
96
111
|
{
|
|
97
|
-
return
|
|
112
|
+
return toAsciiString(u8);
|
|
98
113
|
}
|
|
99
|
-
case
|
|
100
|
-
|
|
101
|
-
case 'binary':
|
|
114
|
+
case "latin1":
|
|
115
|
+
case "binary":
|
|
102
116
|
{
|
|
103
|
-
return
|
|
117
|
+
return toLatin1String(u8);
|
|
104
118
|
}
|
|
105
|
-
case
|
|
106
|
-
|
|
107
|
-
case
|
|
108
|
-
// case 'utf-16le':
|
|
109
|
-
// falls through
|
|
110
|
-
case 'utf16le':
|
|
119
|
+
case "ucs2":
|
|
120
|
+
case "ucs-2":
|
|
121
|
+
case "utf16le":
|
|
111
122
|
{
|
|
112
|
-
|
|
113
|
-
// If length is odd, the last 8 bits must be ignored (same as node.js)
|
|
114
|
-
for(let i = 0; i < u8.length - 1; i += 2){
|
|
115
|
-
res += String.fromCharCode(u8[i] + u8[i + 1] * 256);
|
|
116
|
-
}
|
|
117
|
-
return res;
|
|
123
|
+
return toUtf16LeString(u8);
|
|
118
124
|
}
|
|
119
125
|
default:
|
|
120
|
-
throw new Error(
|
|
126
|
+
throw new Error("[ArrayBuffers.toString] Unknown encoding: ".concat(encoding));
|
|
121
127
|
}
|
|
122
128
|
}
|
|
123
129
|
/**
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
case
|
|
133
|
-
case
|
|
134
|
-
return
|
|
135
|
-
case
|
|
136
|
-
case
|
|
137
|
-
case
|
|
138
|
-
|
|
139
|
-
case
|
|
140
|
-
case
|
|
130
|
+
* toString convert the given {@link BufferSource} to string
|
|
131
|
+
*/ ArrayBuffers.toString = toString;
|
|
132
|
+
/**
|
|
133
|
+
* Normalize encoding string to standard form
|
|
134
|
+
* @param encoding - The encoding string to normalize
|
|
135
|
+
* @returns Normalized encoding or undefined if invalid
|
|
136
|
+
*/ function normalizeEncoding(encoding) {
|
|
137
|
+
switch (encoding === null || encoding === void 0 ? void 0 : encoding.toLowerCase()) {
|
|
138
|
+
case "utf-8":
|
|
139
|
+
case "utf8":
|
|
140
|
+
return "utf8";
|
|
141
|
+
case "utf-16le":
|
|
142
|
+
case "ucs2":
|
|
143
|
+
case "ucs-2":
|
|
144
|
+
return "utf16le";
|
|
145
|
+
case "hex":
|
|
146
|
+
case "ascii":
|
|
147
|
+
case "latin1":
|
|
148
|
+
case "binary":
|
|
149
|
+
case "base64":
|
|
150
|
+
case "utf16le":
|
|
141
151
|
return encoding;
|
|
142
152
|
default:
|
|
143
153
|
return undefined;
|
|
@@ -147,13 +157,16 @@ export var ArrayBuffers;
|
|
|
147
157
|
return normalizeEncoding(v) !== undefined;
|
|
148
158
|
}
|
|
149
159
|
/**
|
|
150
|
-
|
|
151
|
-
|
|
160
|
+
* Check if the given string is a supported character encoding
|
|
161
|
+
* @param v - The string to check
|
|
162
|
+
* @returns True if the encoding is supported, false otherwise
|
|
163
|
+
*/ ArrayBuffers.isEncoding = isEncoding;
|
|
152
164
|
function toJSON(v, reviver) {
|
|
153
165
|
return JSON.parse(toString(v), reviver);
|
|
154
166
|
}
|
|
155
167
|
ArrayBuffers.toJSON = toJSON;
|
|
156
|
-
function from(src
|
|
168
|
+
function from(src) {
|
|
169
|
+
var encoding = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "utf8", view = arguments.length > 2 ? arguments[2] : void 0;
|
|
157
170
|
if (!src) {
|
|
158
171
|
return new (view || ArrayBuffer)(0);
|
|
159
172
|
}
|
|
@@ -161,139 +174,179 @@ export var ArrayBuffers;
|
|
|
161
174
|
return view ? asView(view, src) : src;
|
|
162
175
|
}
|
|
163
176
|
// Array<number> | Iterable<number>
|
|
164
|
-
if (typeof src !==
|
|
177
|
+
if (typeof src !== "string" && isIterable(src) || Array.isArray(src)) {
|
|
165
178
|
return (view || Uint8Array).from(src);
|
|
166
179
|
}
|
|
167
180
|
if (view) {
|
|
168
181
|
return asView(view, from(src, encoding));
|
|
169
182
|
}
|
|
170
|
-
if (typeof src ===
|
|
171
|
-
// is string
|
|
183
|
+
if (typeof src === "string") {
|
|
172
184
|
if (isNativeBufferAllowed()) {
|
|
173
185
|
return Buffer.from(src, encoding);
|
|
174
186
|
}
|
|
175
|
-
switch(encoding){
|
|
176
|
-
case
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
case 'base64':
|
|
181
|
-
// replaceAll need higher version of nodejs
|
|
182
|
-
// return decodeBase64ToArrayBuffer(v.replace(/[^0-9a-zA-Z=+/_]/g, ''));
|
|
187
|
+
switch (encoding) {
|
|
188
|
+
case "utf-8":
|
|
189
|
+
case "utf8":
|
|
190
|
+
return encode(src).buffer;
|
|
191
|
+
case "base64":
|
|
183
192
|
return fromBase64(src);
|
|
184
|
-
case
|
|
185
|
-
// return new Uint8Array(v.match(/.{1,2}/g)!.map((byte) => parseInt(byte, 16))).buffer;
|
|
193
|
+
case "hex":
|
|
186
194
|
return fromHex(src);
|
|
187
195
|
default:
|
|
188
|
-
throw new Error(
|
|
196
|
+
throw new Error("ArrayBuffers.from unsupported encoding: ".concat(encoding));
|
|
189
197
|
}
|
|
190
198
|
}
|
|
191
|
-
|
|
192
|
-
throw new TypeError(
|
|
199
|
+
var type = classOf(src);
|
|
200
|
+
throw new TypeError("ArrayBuffers.from unsupported type ".concat(type));
|
|
193
201
|
}
|
|
194
202
|
ArrayBuffers.from = from;
|
|
195
|
-
function concat(buffers, result
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
203
|
+
function concat(buffers, result) {
|
|
204
|
+
var offset = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 0;
|
|
205
|
+
if (!Array.isArray(buffers) || buffers.length === 0) {
|
|
206
|
+
return new ArrayBuffer(0);
|
|
207
|
+
}
|
|
208
|
+
var length = buffers.reduce(function (a, b) {
|
|
209
|
+
var _b_byteLength;
|
|
210
|
+
return a + ((_b_byteLength = b === null || b === void 0 ? void 0 : b.byteLength) !== null && _b_byteLength !== void 0 ? _b_byteLength : 0);
|
|
211
|
+
}, 0);
|
|
212
|
+
var r = result ? new Uint8Array(result) : new Uint8Array(length);
|
|
213
|
+
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
214
|
+
try {
|
|
215
|
+
for (var _iterator = buffers[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
216
|
+
var buffer = _step.value;
|
|
217
|
+
if (!(buffer === null || buffer === void 0 ? void 0 : buffer.byteLength))
|
|
218
|
+
continue;
|
|
219
|
+
var n = void 0;
|
|
220
|
+
if (_instanceof(buffer, ArrayBuffer)) {
|
|
221
|
+
n = new Uint8Array(buffer);
|
|
222
|
+
}
|
|
223
|
+
else if (ArrayBuffer.isView(buffer)) {
|
|
224
|
+
n = new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);
|
|
225
|
+
}
|
|
226
|
+
else {
|
|
227
|
+
throw new Error("ArrayBuffers.concat unsupported type ".concat(classOf(buffer)));
|
|
228
|
+
}
|
|
229
|
+
r.set(n, offset);
|
|
230
|
+
offset += buffer.byteLength;
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
catch (err) {
|
|
234
|
+
_didIteratorError = true;
|
|
235
|
+
_iteratorError = err;
|
|
236
|
+
}
|
|
237
|
+
finally {
|
|
238
|
+
try {
|
|
239
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
240
|
+
_iterator.return();
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
finally {
|
|
244
|
+
if (_didIteratorError) {
|
|
245
|
+
throw _iteratorError;
|
|
246
|
+
}
|
|
208
247
|
}
|
|
209
|
-
r.set(n, offset);
|
|
210
|
-
offset += buffer.byteLength;
|
|
211
248
|
}
|
|
212
249
|
return r.buffer;
|
|
213
250
|
}
|
|
214
251
|
/**
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
function fromBase64(v) {
|
|
218
|
-
if (
|
|
252
|
+
* concat the given {@link BufferSource} to a new {@link ArrayBuffer}
|
|
253
|
+
*/ ArrayBuffers.concat = concat;
|
|
254
|
+
function fromBase64(v, encoding) {
|
|
255
|
+
if (encoding) {
|
|
256
|
+
return toString(fromBase64(v), encoding);
|
|
257
|
+
}
|
|
258
|
+
if ("fromBase64" in Uint8Array && typeof Uint8Array.fromBase64 === "function") {
|
|
219
259
|
return Uint8Array.fromBase64(v);
|
|
220
260
|
}
|
|
221
261
|
if (isNativeBufferAllowed()) {
|
|
222
|
-
return Buffer.from(v,
|
|
262
|
+
return Buffer.from(v, "base64");
|
|
223
263
|
}
|
|
224
|
-
|
|
264
|
+
// Clean the base64 string by removing invalid characters
|
|
265
|
+
return decodeBase64ToUint8Array(v.replace(/[^0-9a-zA-Z=+/_]/g, ""));
|
|
225
266
|
}
|
|
226
267
|
ArrayBuffers.fromBase64 = fromBase64;
|
|
227
|
-
function fromHex(v) {
|
|
228
|
-
if (
|
|
268
|
+
function fromHex(v, encoding) {
|
|
269
|
+
if (encoding) {
|
|
270
|
+
return toString(fromHex(v), encoding);
|
|
271
|
+
}
|
|
272
|
+
if ("fromHex" in Uint8Array && typeof Uint8Array.fromHex === "function") {
|
|
229
273
|
return Uint8Array.fromHex(v);
|
|
230
274
|
}
|
|
231
275
|
if (isNativeBufferAllowed()) {
|
|
232
|
-
return Buffer.from(v,
|
|
276
|
+
return Buffer.from(v, "hex");
|
|
233
277
|
}
|
|
234
|
-
|
|
278
|
+
// Handle odd-length hex strings by padding with leading zero
|
|
279
|
+
var cleanHex = v.length % 2 === 1 ? "0" + v : v;
|
|
280
|
+
var matches = cleanHex.match(/.{1,2}/g);
|
|
281
|
+
if (!matches) {
|
|
282
|
+
throw new Error("Invalid hex string");
|
|
283
|
+
}
|
|
284
|
+
var num = matches.map(function (byte) {
|
|
285
|
+
return parseInt(byte, 16);
|
|
286
|
+
});
|
|
287
|
+
return new Uint8Array(num);
|
|
235
288
|
}
|
|
236
289
|
ArrayBuffers.fromHex = fromHex;
|
|
237
290
|
function toBase64(source) {
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
}
|
|
241
|
-
if ('toBase64' in Uint8Array.prototype) {
|
|
291
|
+
source = encode(source);
|
|
292
|
+
if ("toBase64" in Uint8Array.prototype) {
|
|
242
293
|
return toUint8Array(source).toBase64();
|
|
243
294
|
}
|
|
244
295
|
if (isNativeBufferAllowed()) {
|
|
245
|
-
return Buffer.from(asView(Uint8Array, source)).toString(
|
|
296
|
+
return Buffer.from(asView(Uint8Array, source)).toString("base64");
|
|
246
297
|
}
|
|
247
298
|
return encodeArrayBufferToBase64(toArrayBuffer(source));
|
|
248
299
|
}
|
|
249
300
|
/**
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
301
|
+
* toBase64 convert the given {@link BufferSource} to base64 string
|
|
302
|
+
* @param source if string, will be encoded as utf8
|
|
303
|
+
*/ ArrayBuffers.toBase64 = toBase64;
|
|
253
304
|
function toHex(v) {
|
|
254
|
-
|
|
305
|
+
v = encode(v);
|
|
306
|
+
if ("toHex" in Uint8Array.prototype) {
|
|
255
307
|
return toUint8Array(v).toHex();
|
|
256
308
|
}
|
|
257
309
|
if (isNativeBufferAllowed()) {
|
|
258
|
-
return Buffer.from(asView(Uint8Array, v)).toString(
|
|
310
|
+
return Buffer.from(asView(Uint8Array, v)).toString("hex");
|
|
259
311
|
}
|
|
260
|
-
return toString(v,
|
|
312
|
+
return toString(v, "hex");
|
|
261
313
|
}
|
|
262
314
|
ArrayBuffers.toHex = toHex;
|
|
263
315
|
function resize(v, newByteLength, maxByteLength) {
|
|
264
316
|
if (newByteLength === undefined || newByteLength === null) {
|
|
265
317
|
return v;
|
|
266
318
|
}
|
|
267
|
-
// Chrome 111, Nodejs 20
|
|
268
|
-
if (
|
|
269
|
-
if (
|
|
270
|
-
if (
|
|
319
|
+
// Chrome 111, Nodejs 20 - use native resize if available
|
|
320
|
+
if ("resize" in v && typeof v.resize === "function") {
|
|
321
|
+
if ("resizable" in v && v.resizable) {
|
|
322
|
+
if ("maxByteLength" in v && typeof v.maxByteLength === "number" && v.maxByteLength >= newByteLength) {
|
|
271
323
|
v.resize(newByteLength);
|
|
272
324
|
return v;
|
|
273
325
|
}
|
|
274
326
|
}
|
|
275
327
|
}
|
|
276
|
-
|
|
277
|
-
|
|
328
|
+
// Fallback: create new buffer and copy data
|
|
329
|
+
var old = v;
|
|
330
|
+
var newBuf = new ArrayBuffer(newByteLength, {
|
|
278
331
|
maxByteLength: maxByteLength
|
|
279
332
|
});
|
|
280
|
-
|
|
281
|
-
|
|
333
|
+
var oldView = new Uint8Array(old);
|
|
334
|
+
var newView = new Uint8Array(newBuf);
|
|
282
335
|
newView.set(oldView);
|
|
283
336
|
return newBuf;
|
|
284
337
|
}
|
|
285
338
|
ArrayBuffers.resize = resize;
|
|
286
339
|
function toArrayBuffer(v) {
|
|
287
|
-
if (v
|
|
340
|
+
if (_instanceof(v, ArrayBuffer)) {
|
|
288
341
|
return v;
|
|
289
342
|
}
|
|
290
343
|
if (ArrayBuffer.isView(v)) {
|
|
291
344
|
if (v.byteOffset > 0) {
|
|
292
|
-
throw new Error(
|
|
345
|
+
throw new Error("ArrayBuffers.toArrayBuffer does not support view with offset");
|
|
293
346
|
}
|
|
294
347
|
return v.buffer;
|
|
295
348
|
}
|
|
296
|
-
throw new Error(
|
|
349
|
+
throw new Error("ArrayBuffers.toArrayBuffer unsupported type ".concat(classOf(v)));
|
|
297
350
|
}
|
|
298
351
|
ArrayBuffers.toArrayBuffer = toArrayBuffer;
|
|
299
352
|
function toUint8Array(v) {
|
|
@@ -302,33 +355,205 @@ export var ArrayBuffers;
|
|
|
302
355
|
ArrayBuffers.toUint8Array = toUint8Array;
|
|
303
356
|
function alloc(size, fill, encoding) {
|
|
304
357
|
if (fill !== undefined) {
|
|
305
|
-
if (typeof fill ===
|
|
358
|
+
if (typeof fill === "number") {
|
|
306
359
|
return new Uint8Array(size).fill(fill);
|
|
307
360
|
}
|
|
308
|
-
//
|
|
361
|
+
// Convert string to buffer and slice to size
|
|
309
362
|
// https://stackoverflow.com/questions/73994091
|
|
310
363
|
return asView(Uint8Array, from(fill, encoding)).slice(0, size);
|
|
311
364
|
}
|
|
312
365
|
return new ArrayBuffer(size);
|
|
313
366
|
}
|
|
314
|
-
|
|
367
|
+
/**
|
|
368
|
+
* Allocate a new ArrayBuffer or Uint8Array with optional fill value
|
|
369
|
+
* @param size - The size in bytes to allocate
|
|
370
|
+
* @param fill - Optional fill value (number or string)
|
|
371
|
+
* @param encoding - Encoding for string fill value (default: 'utf8')
|
|
372
|
+
* @returns ArrayBuffer or Uint8Array
|
|
373
|
+
*/ ArrayBuffers.alloc = alloc;
|
|
374
|
+
// Helper functions for string conversion
|
|
375
|
+
/**
|
|
376
|
+
* Convert Uint8Array to hex string efficiently
|
|
377
|
+
* @param u8 - The Uint8Array to convert
|
|
378
|
+
* @returns Hex string representation
|
|
379
|
+
*/ function toHexString(u8) {
|
|
380
|
+
var result = "";
|
|
381
|
+
for (var i = 0; i < u8.length; i++) {
|
|
382
|
+
result += hexLookupTable[u8[i]];
|
|
383
|
+
}
|
|
384
|
+
return result;
|
|
385
|
+
}
|
|
386
|
+
/**
|
|
387
|
+
* Convert Uint8Array to ASCII string
|
|
388
|
+
* @param u8 - The Uint8Array to convert
|
|
389
|
+
* @returns ASCII string representation
|
|
390
|
+
*/ function toAsciiString(u8) {
|
|
391
|
+
var result = "";
|
|
392
|
+
for (var i = 0; i < u8.length; i++) {
|
|
393
|
+
result += String.fromCharCode(u8[i] & 127);
|
|
394
|
+
}
|
|
395
|
+
return result;
|
|
396
|
+
}
|
|
397
|
+
/**
|
|
398
|
+
* Convert Uint8Array to Latin1 string
|
|
399
|
+
* @param u8 - The Uint8Array to convert
|
|
400
|
+
* @returns Latin1 string representation
|
|
401
|
+
*/ function toLatin1String(u8) {
|
|
402
|
+
var result = "";
|
|
403
|
+
for (var i = 0; i < u8.length; i++) {
|
|
404
|
+
result += String.fromCharCode(u8[i]);
|
|
405
|
+
}
|
|
406
|
+
return result;
|
|
407
|
+
}
|
|
408
|
+
/**
|
|
409
|
+
* Convert Uint8Array to UTF-16LE string
|
|
410
|
+
* @param u8 - The Uint8Array to convert
|
|
411
|
+
* @returns UTF-16LE string representation
|
|
412
|
+
*/ function toUtf16LeString(u8) {
|
|
413
|
+
var result = "";
|
|
414
|
+
// If length is odd, the last 8 bits must be ignored (same as node.js)
|
|
415
|
+
for (var i = 0; i < u8.length - 1; i += 2) {
|
|
416
|
+
result += String.fromCharCode(u8[i] + u8[i + 1] * 256);
|
|
417
|
+
}
|
|
418
|
+
return result;
|
|
419
|
+
}
|
|
420
|
+
// base16 lookup table for efficient hex conversion
|
|
421
|
+
var hexLookupTable = function () {
|
|
422
|
+
var alphabet = "0123456789abcdef";
|
|
423
|
+
var table = new Array(256);
|
|
424
|
+
for (var i = 0; i < 16; ++i) {
|
|
425
|
+
var i16 = i * 16;
|
|
426
|
+
for (var j = 0; j < 16; ++j) {
|
|
427
|
+
table[i16 + j] = alphabet[i] + alphabet[j];
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
return table;
|
|
431
|
+
}();
|
|
432
|
+
// Helper functions for internal use
|
|
433
|
+
function isIterable(obj) {
|
|
434
|
+
return obj != null && typeof (obj === null || obj === void 0 ? void 0 : obj[Symbol.iterator]) === "function";
|
|
435
|
+
}
|
|
436
|
+
function isBufferSource(value) {
|
|
437
|
+
return ArrayBuffer.isView(value) || _instanceof(value, ArrayBuffer);
|
|
438
|
+
}
|
|
439
|
+
function equals(a, b) {
|
|
440
|
+
if (a === b)
|
|
441
|
+
return true;
|
|
442
|
+
var aView = asView(Uint8Array, a);
|
|
443
|
+
var bView = asView(Uint8Array, b);
|
|
444
|
+
if (aView.length !== bView.length) {
|
|
445
|
+
return false;
|
|
446
|
+
}
|
|
447
|
+
for (var i = 0; i < aView.length; i++) {
|
|
448
|
+
if (aView[i] !== bView[i]) {
|
|
449
|
+
return false;
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
return true;
|
|
453
|
+
}
|
|
454
|
+
/**
|
|
455
|
+
* Check if two BufferSources are equal
|
|
456
|
+
* @param a - First buffer source
|
|
457
|
+
* @param b - Second buffer source
|
|
458
|
+
* @returns True if buffers are equal, false otherwise
|
|
459
|
+
*/ ArrayBuffers.equals = equals;
|
|
460
|
+
function compare(a, b) {
|
|
461
|
+
if (a === b)
|
|
462
|
+
return 0;
|
|
463
|
+
var aView = asView(Uint8Array, a);
|
|
464
|
+
var bView = asView(Uint8Array, b);
|
|
465
|
+
var minLength = Math.min(aView.length, bView.length);
|
|
466
|
+
for (var i = 0; i < minLength; i++) {
|
|
467
|
+
if (aView[i] < bView[i])
|
|
468
|
+
return -1;
|
|
469
|
+
if (aView[i] > bView[i])
|
|
470
|
+
return 1;
|
|
471
|
+
}
|
|
472
|
+
return aView.length - bView.length;
|
|
473
|
+
}
|
|
474
|
+
/**
|
|
475
|
+
* Compare two BufferSources lexicographically
|
|
476
|
+
* @param a - First buffer source
|
|
477
|
+
* @param b - Second buffer source
|
|
478
|
+
* @returns -1 if a < b, 0 if a === b, 1 if a > b
|
|
479
|
+
*/ ArrayBuffers.compare = compare;
|
|
480
|
+
function startsWith(buffer, prefix) {
|
|
481
|
+
var bufferView = asView(Uint8Array, buffer);
|
|
482
|
+
var prefixView = asView(Uint8Array, prefix);
|
|
483
|
+
if (prefixView.length > bufferView.length) {
|
|
484
|
+
return false;
|
|
485
|
+
}
|
|
486
|
+
for (var i = 0; i < prefixView.length; i++) {
|
|
487
|
+
if (bufferView[i] !== prefixView[i]) {
|
|
488
|
+
return false;
|
|
489
|
+
}
|
|
490
|
+
}
|
|
491
|
+
return true;
|
|
492
|
+
}
|
|
493
|
+
/**
|
|
494
|
+
* Check if a BufferSource starts with another BufferSource
|
|
495
|
+
* @param buffer - The buffer to check
|
|
496
|
+
* @param prefix - The prefix to check for
|
|
497
|
+
* @returns True if buffer starts with prefix, false otherwise
|
|
498
|
+
*/ ArrayBuffers.startsWith = startsWith;
|
|
499
|
+
function endsWith(buffer, suffix) {
|
|
500
|
+
var bufferView = asView(Uint8Array, buffer);
|
|
501
|
+
var suffixView = asView(Uint8Array, suffix);
|
|
502
|
+
if (suffixView.length > bufferView.length) {
|
|
503
|
+
return false;
|
|
504
|
+
}
|
|
505
|
+
var offset = bufferView.length - suffixView.length;
|
|
506
|
+
for (var i = 0; i < suffixView.length; i++) {
|
|
507
|
+
if (bufferView[offset + i] !== suffixView[i]) {
|
|
508
|
+
return false;
|
|
509
|
+
}
|
|
510
|
+
}
|
|
511
|
+
return true;
|
|
512
|
+
}
|
|
513
|
+
/**
|
|
514
|
+
* Check if a BufferSource ends with another BufferSource
|
|
515
|
+
* @param buffer - The buffer to check
|
|
516
|
+
* @param suffix - The suffix to check for
|
|
517
|
+
* @returns True if buffer ends with suffix, false otherwise
|
|
518
|
+
*/ ArrayBuffers.endsWith = endsWith;
|
|
519
|
+
function indexOf(buffer, search) {
|
|
520
|
+
var startIndex = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 0;
|
|
521
|
+
var bufferView = asView(Uint8Array, buffer);
|
|
522
|
+
var searchView = asView(Uint8Array, search);
|
|
523
|
+
if (searchView.length === 0)
|
|
524
|
+
return startIndex;
|
|
525
|
+
if (searchView.length > bufferView.length)
|
|
526
|
+
return -1;
|
|
527
|
+
for (var i = startIndex; i <= bufferView.length - searchView.length; i++) {
|
|
528
|
+
var found = true;
|
|
529
|
+
for (var j = 0; j < searchView.length; j++) {
|
|
530
|
+
if (bufferView[i + j] !== searchView[j]) {
|
|
531
|
+
found = false;
|
|
532
|
+
break;
|
|
533
|
+
}
|
|
534
|
+
}
|
|
535
|
+
if (found)
|
|
536
|
+
return i;
|
|
537
|
+
}
|
|
538
|
+
return -1;
|
|
539
|
+
}
|
|
540
|
+
/**
|
|
541
|
+
* Find the index of a sub-buffer within a buffer
|
|
542
|
+
* @param buffer - The buffer to search in
|
|
543
|
+
* @param search - The sub-buffer to search for
|
|
544
|
+
* @param startIndex - Starting index for search (default: 0)
|
|
545
|
+
* @returns Index of first occurrence, or -1 if not found
|
|
546
|
+
*/ ArrayBuffers.indexOf = indexOf;
|
|
547
|
+
function subarray(buffer, start, end) {
|
|
548
|
+
var view = asView(Uint8Array, buffer);
|
|
549
|
+
return view.subarray(start, end);
|
|
550
|
+
}
|
|
551
|
+
/**
|
|
552
|
+
* Get a sub-buffer from a buffer
|
|
553
|
+
* @param buffer - The source buffer
|
|
554
|
+
* @param start - Start index (inclusive)
|
|
555
|
+
* @param end - End index (exclusive, optional)
|
|
556
|
+
* @returns New Uint8Array containing the sub-buffer
|
|
557
|
+
*/ ArrayBuffers.subarray = subarray;
|
|
315
558
|
})(ArrayBuffers || (ArrayBuffers = {}));
|
|
316
|
-
|
|
317
|
-
const alphabet = '0123456789abcdef';
|
|
318
|
-
const table = new Array(256);
|
|
319
|
-
for(let i = 0; i < 16; ++i){
|
|
320
|
-
const i16 = i * 16;
|
|
321
|
-
for(let j = 0; j < 16; ++j){
|
|
322
|
-
table[i16 + j] = alphabet[i] + alphabet[j];
|
|
323
|
-
}
|
|
324
|
-
}
|
|
325
|
-
return table;
|
|
326
|
-
}();
|
|
327
|
-
function isIterable(obj) {
|
|
328
|
-
return typeof obj?.[Symbol.iterator] === 'function';
|
|
329
|
-
}
|
|
330
|
-
function isBufferSource(v) {
|
|
331
|
-
return ArrayBuffer.isView(v) || v instanceof ArrayBuffer;
|
|
332
|
-
}
|
|
333
|
-
|
|
334
|
-
//# sourceMappingURL=ArrayBuffers.js.map
|
|
559
|
+
export var ArrayBuffers;
|