@wener/utils 1.1.32 → 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
package/lib/index.js
DELETED
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
export { firstOfMaybeArray, lastOfMaybeArray, arrayOfMaybeArray, objectOfMaybeArray } from './arrays/MaybeArray.js';
|
|
2
|
-
export { arrayFromAsync } from './arrays/arrayFromAsync.js';
|
|
3
|
-
// object
|
|
4
|
-
export { get } from './objects/get.js';
|
|
5
|
-
export { set } from './objects/set.js';
|
|
6
|
-
export { parseObjectPath } from './objects/parseObjectPath.js';
|
|
7
|
-
export { merge } from './objects/merge/index.js';
|
|
8
|
-
// async
|
|
9
|
-
export { createLazyPromise } from './asyncs/createLazyPromise.js';
|
|
10
|
-
export { setAsyncInterval, clearAsyncInterval } from './asyncs/AsyncInterval.js';
|
|
11
|
-
// async - iterator
|
|
12
|
-
export { createAsyncIterator } from './asyncs/createAsyncIterator.js';
|
|
13
|
-
export { firstOfAsyncIterator } from './asyncs/firstOfAsyncIterator.js';
|
|
14
|
-
export { nextOfAsyncIterator } from './asyncs/nextOfAsyncIterator.js';
|
|
15
|
-
export { isIterator } from './asyncs/isIterator.js';
|
|
16
|
-
export { sleep } from './asyncs/sleep.js';
|
|
17
|
-
export { timeout, TimeoutError } from './asyncs/timeout.js';
|
|
18
|
-
export { isPromise } from './asyncs/isPromise.js';
|
|
19
|
-
// export * from './async/promiseOfCallback';
|
|
20
|
-
// langs
|
|
21
|
-
export { shallowEqual } from './langs/shallowEqual.js';
|
|
22
|
-
export { deepEqual } from './langs/deepEqual.js';
|
|
23
|
-
export { deepFreeze } from './langs/deepFreeze.js';
|
|
24
|
-
export { classOf } from './langs/classOf.js';
|
|
25
|
-
export { shallowClone } from './langs/shallowClone.js';
|
|
26
|
-
export { isClass } from './langs/isClass.js';
|
|
27
|
-
export { isDefined } from './langs/isDefined.js';
|
|
28
|
-
export { isEmptyObject } from './langs/isEmptyObject.js';
|
|
29
|
-
export { isPlainObject } from './langs/isPlainObject.js';
|
|
30
|
-
export { parseBoolean } from './langs/parseBoolean.js';
|
|
31
|
-
export { maybeFunction } from './langs/MaybeFunction.js';
|
|
32
|
-
export { memoize } from './langs/memoize.js';
|
|
33
|
-
export { isUUID } from './validations/isUUID.js';
|
|
34
|
-
export { parseTimestamp } from './validations/parseTimestamp.js';
|
|
35
|
-
// modules
|
|
36
|
-
export { parseModuleId } from './modules/parseModuleId.js';
|
|
37
|
-
export { isModule } from './modules/isModule.js';
|
|
38
|
-
export { createLogger } from './logging/createLogger.js';
|
|
39
|
-
export { createNoopLogger } from './logging/createNoopLogger.js';
|
|
40
|
-
export { createChildLogger } from './logging/createChildLogger.js';
|
|
41
|
-
// strings
|
|
42
|
-
export { pascalCase, camelCase } from './strings/camelCase.js';
|
|
43
|
-
export { renderTemplate } from './strings/renderTemplate.js';
|
|
44
|
-
export { formatBytes } from './strings/formatBytes.js';
|
|
45
|
-
// i18n
|
|
46
|
-
export { createTranslate } from './i18n/createTranslate.js';
|
|
47
|
-
// io
|
|
48
|
-
export { isBuffer } from './io/isBuffer.js';
|
|
49
|
-
export { isTransferable } from './io/isTransferable.js';
|
|
50
|
-
export { ArrayBuffers } from './io/ArrayBuffers.js';
|
|
51
|
-
export { Buffer } from './io/Buffer.js';
|
|
52
|
-
// browser
|
|
53
|
-
export { copy } from './browsers/copy.js';
|
|
54
|
-
export { download } from './browsers/download.js';
|
|
55
|
-
export { loadScripts, loadStyles } from './browsers/loaders.js';
|
|
56
|
-
export { getFileFromDataTransfer } from './browsers/getFileFromDataTransfer.js';
|
|
57
|
-
// polyfills
|
|
58
|
-
export { getGlobalThis } from './isomorphics/getGlobalThis.js';
|
|
59
|
-
export { structuredClone } from './isomorphics/structuredClone.js';
|
|
60
|
-
// crypto
|
|
61
|
-
export { randomUUID } from './crypto/randomUUID.js';
|
|
62
|
-
export { getRandomValues } from './crypto/getRandomValues.js';
|
|
63
|
-
export { sha1, sha256, sha384, sha512, hmac } from './crypto/hashing.js';
|
|
64
|
-
export { md5 } from './crypto/md5.js';
|
|
65
|
-
export { hex } from './crypto/base.js';
|
|
66
|
-
export { isULID, createULID, ulid, parseULID } from './crypto/ulid.js';
|
|
67
|
-
export { PEM } from './crypto/pem/pem.js';
|
|
68
|
-
// math
|
|
69
|
-
export { createRandom } from './maths/random.js';
|
|
70
|
-
export { clamp } from './maths/clamp.js';
|
|
71
|
-
// network
|
|
72
|
-
export { createFetchWith, createFetchWithLogging, dumpResponse, dumpRequest, createFetchWithRetry } from './fetch/index.js';
|
|
73
|
-
// bundled
|
|
74
|
-
export { default as ms } from './libs/ms.js';
|
|
75
|
-
// error
|
|
76
|
-
export { Errors, DetailError } from './errors/Errors.js';
|
|
77
|
-
// http
|
|
78
|
-
export { getHttpStatusText, isRetryableHttpStatus } from './http/HttpStatus.js';
|
|
79
|
-
|
|
80
|
-
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["// arrays\nexport {\n firstOfMaybeArray,\n lastOfMaybeArray,\n arrayOfMaybeArray,\n objectOfMaybeArray,\n type MaybeArray,\n} from './arrays/MaybeArray';\nexport { arrayFromAsync } from './arrays/arrayFromAsync';\n\n// object\nexport { get } from './objects/get';\nexport { set } from './objects/set';\nexport { parseObjectPath } from './objects/parseObjectPath';\nexport { merge, type MergeOptions } from './objects/merge';\n\n// async\nexport { createLazyPromise, type LazyPromise } from './asyncs/createLazyPromise';\nexport { setAsyncInterval, clearAsyncInterval } from './asyncs/AsyncInterval';\nexport { type MaybePromise } from './asyncs/MaybePromise';\n// async - iterator\nexport { createAsyncIterator } from './asyncs/createAsyncIterator';\nexport { firstOfAsyncIterator } from './asyncs/firstOfAsyncIterator';\nexport { nextOfAsyncIterator } from './asyncs/nextOfAsyncIterator';\nexport { isIterator } from './asyncs/isIterator';\n\nexport { sleep } from './asyncs/sleep';\nexport { timeout, TimeoutError } from './asyncs/timeout';\nexport { isPromise } from './asyncs/isPromise';\n// export * from './async/promiseOfCallback';\n\n// langs\nexport { shallowEqual } from './langs/shallowEqual';\nexport { deepEqual } from './langs/deepEqual';\nexport { deepFreeze } from './langs/deepFreeze';\nexport { classOf } from './langs/classOf';\nexport { shallowClone } from './langs/shallowClone';\nexport { isClass } from './langs/isClass';\nexport { isDefined } from './langs/isDefined';\nexport { isEmptyObject } from './langs/isEmptyObject';\nexport { isPlainObject } from './langs/isPlainObject';\nexport { parseBoolean } from './langs/parseBoolean';\nexport { maybeFunction, type MaybeFunction } from './langs/MaybeFunction';\nexport { memoize } from './langs/memoize';\n\nexport { isUUID } from './validations/isUUID';\nexport { parseTimestamp } from './validations/parseTimestamp';\n\n// modules\nexport { parseModuleId, type ParsedModuleId } from './modules/parseModuleId';\nexport { isModule, type Module } from './modules/isModule';\n\n// logging\nexport { type Logger, type LogLevel } from './logging/Logger';\nexport { createLogger } from './logging/createLogger';\nexport { createNoopLogger } from './logging/createNoopLogger';\nexport { createChildLogger } from './logging/createChildLogger';\n\n// strings\nexport { pascalCase, camelCase } from './strings/camelCase';\nexport { renderTemplate } from './strings/renderTemplate';\nexport { formatBytes } from './strings/formatBytes';\n\n// i18n\nexport { createTranslate } from './i18n/createTranslate';\n\n// io\nexport { isBuffer } from './io/isBuffer';\nexport { isTransferable } from './io/isTransferable';\nexport { ArrayBuffers } from './io/ArrayBuffers';\nexport { Buffer } from './io/Buffer';\nexport type { AbstractEncoding } from './io/AbstractEncoding';\n\n// browser\nexport { copy } from './browsers/copy';\nexport { download } from './browsers/download';\nexport { loadScripts, loadStyles } from './browsers/loaders';\nexport { getFileFromDataTransfer } from './browsers/getFileFromDataTransfer';\n\n// polyfills\nexport { getGlobalThis } from './isomorphics/getGlobalThis';\nexport { structuredClone } from './isomorphics/structuredClone';\n\n// crypto\nexport { randomUUID } from './crypto/randomUUID';\nexport { getRandomValues } from './crypto/getRandomValues';\nexport { sha1, sha256, sha384, sha512, hmac, type DigestOptions } from './crypto/hashing';\nexport { md5 } from './crypto/md5';\nexport { hex } from './crypto/base';\nexport { isULID, createULID, ulid, parseULID } from './crypto/ulid';\nexport { PEM } from './crypto/pem/pem';\n\n// math\nexport { createRandom } from './maths/random';\nexport { clamp } from './maths/clamp';\n\n// network\nexport {\n type FetchLike,\n createFetchWith,\n createFetchWithLogging,\n dumpResponse,\n dumpRequest,\n createFetchWithRetry,\n type FetchWithRetryOptions,\n} from './fetch';\n\n// bundled\nexport { default as ms } from './libs/ms';\n\n// error\nexport { Errors, DetailError, type ErrorDetail, type ErrorDetailInit } from './errors/Errors';\n// http\nexport { getHttpStatusText, isRetryableHttpStatus } from './http/HttpStatus';\n\nexport type * from './types';\n"],"names":["firstOfMaybeArray","lastOfMaybeArray","arrayOfMaybeArray","objectOfMaybeArray","arrayFromAsync","get","set","parseObjectPath","merge","createLazyPromise","setAsyncInterval","clearAsyncInterval","createAsyncIterator","firstOfAsyncIterator","nextOfAsyncIterator","isIterator","sleep","timeout","TimeoutError","isPromise","shallowEqual","deepEqual","deepFreeze","classOf","shallowClone","isClass","isDefined","isEmptyObject","isPlainObject","parseBoolean","maybeFunction","memoize","isUUID","parseTimestamp","parseModuleId","isModule","createLogger","createNoopLogger","createChildLogger","pascalCase","camelCase","renderTemplate","formatBytes","createTranslate","isBuffer","isTransferable","ArrayBuffers","Buffer","copy","download","loadScripts","loadStyles","getFileFromDataTransfer","getGlobalThis","structuredClone","randomUUID","getRandomValues","sha1","sha256","sha384","sha512","hmac","md5","hex","isULID","createULID","ulid","parseULID","PEM","createRandom","clamp","createFetchWith","createFetchWithLogging","dumpResponse","dumpRequest","createFetchWithRetry","default","ms","Errors","DetailError","getHttpStatusText","isRetryableHttpStatus"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/io/AbstractEncoding.ts"],"sourcesContent":["/**\n * AbstractEncoding contract\n *\n * @see https://github.com/mafintosh/abstract-encoding\n */\nexport interface AbstractEncoding<T> {\n /**\n * encode a value to a buffer\n */\n encode(data: T, buffer?: ArrayBuffer, offset?: number): BufferSource;\n\n /**\n * decode data from buffer\n */\n decode(buffer: BufferSource, start?: number, end?: number): T;\n\n /**\n * byteLength of data\n */\n byteLength?: (data: T) => number;\n}\n"],"names":[],"mappings":"AAAA;;;;CAIC,GACD,WAeC"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { expectTypeOf, test } from 'vitest';
|
|
2
|
-
import { ArrayBuffers } from './ArrayBuffers.js';
|
|
3
|
-
test('my types work properly', ()=>{
|
|
4
|
-
expectTypeOf(ArrayBuffers.asView(Buffer, new Uint8Array())).toMatchTypeOf();
|
|
5
|
-
});
|
|
6
|
-
|
|
7
|
-
//# sourceMappingURL=ArrayBuffer.test-d.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/io/ArrayBuffer.test-d.ts"],"sourcesContent":["import { expectTypeOf, test } from 'vitest';\nimport { ArrayBuffers } from './ArrayBuffers';\n\ntest('my types work properly', () => {\n expectTypeOf(ArrayBuffers.asView(Buffer, new Uint8Array())).toMatchTypeOf<Buffer>();\n});\n"],"names":["expectTypeOf","test","ArrayBuffers","asView","Buffer","Uint8Array","toMatchTypeOf"],"mappings":"AAAA,SAASA,YAAY,EAAEC,IAAI,QAAQ,SAAS;AAC5C,SAASC,YAAY,QAAQ,iBAAiB;AAE9CD,KAAK,0BAA0B;IAC7BD,aAAaE,aAAaC,MAAM,CAACC,QAAQ,IAAIC,eAAeC,aAAa;AAC3E"}
|
package/lib/io/ArrayBuffers.js
DELETED
|
@@ -1,210 +0,0 @@
|
|
|
1
|
-
import { getGlobalThis } from '../isomorphics/getGlobalThis.js';
|
|
2
|
-
import { classOf } from '../langs/classOf.js';
|
|
3
|
-
import { decodeBase64ToArrayBuffer, encodeArrayBufferToBase64 } from './base64.js';
|
|
4
|
-
import { isBuffer } from './isBuffer.js';
|
|
5
|
-
export class ArrayBuffers {
|
|
6
|
-
static #nativeBufferAllowed = true;
|
|
7
|
-
static #isBufferAvailable;
|
|
8
|
-
static isNativeBufferAvailable() {
|
|
9
|
-
// eslint-disable-next-line no-return-assign
|
|
10
|
-
return this.#isBufferAvailable ??= !getGlobalThis().Buffer?.isPollyfill?.();
|
|
11
|
-
}
|
|
12
|
-
static isNativeBufferAllowed() {
|
|
13
|
-
return this.#nativeBufferAllowed && this.#isBufferAvailable;
|
|
14
|
-
}
|
|
15
|
-
static setNativeBufferAllowed(v) {
|
|
16
|
-
this.#nativeBufferAllowed = v;
|
|
17
|
-
}
|
|
18
|
-
static isArrayBuffer = (v)=>{
|
|
19
|
-
return v instanceof ArrayBuffer;
|
|
20
|
-
};
|
|
21
|
-
static slice = (o, start, end)=>{
|
|
22
|
-
// NodeJS Buffer slice is not the same as UInt8Array slice
|
|
23
|
-
// https://nodejs.org/api/buffer.html#bufslicestart-end
|
|
24
|
-
if (isBuffer(o)) {
|
|
25
|
-
return Uint8Array.prototype.slice.call(o, start, end);
|
|
26
|
-
}
|
|
27
|
-
return o.slice(start, end);
|
|
28
|
-
};
|
|
29
|
-
static asView = (TypedArray, v, byteOffset, byteLength)=>{
|
|
30
|
-
if (v instanceof TypedArray && (byteOffset ?? 0) === 0 && byteLength === undefined) {
|
|
31
|
-
return v;
|
|
32
|
-
}
|
|
33
|
-
if (ArrayBuffer.isView(v) || isBuffer(v)) {
|
|
34
|
-
if (ArrayBuffers.isNativeBufferAllowed() && TypedArray === Buffer) {
|
|
35
|
-
// new Buffer() is deprecated
|
|
36
|
-
return Buffer.from(v.buffer, byteOffset, byteLength);
|
|
37
|
-
}
|
|
38
|
-
return new TypedArray(v.buffer, v.byteOffset + (byteOffset ?? 0), byteLength ?? v.byteLength);
|
|
39
|
-
}
|
|
40
|
-
return new TypedArray(v, byteOffset, byteLength);
|
|
41
|
-
};
|
|
42
|
-
static toString = (buf, encoding = 'utf8')=>{
|
|
43
|
-
// 'ascii' 'utf16le' | 'ucs2' | 'ucs-2' | 'base64' | 'base64url' | 'latin1' | 'binary' | 'hex'
|
|
44
|
-
if (typeof buf === 'string') {
|
|
45
|
-
switch(encoding){
|
|
46
|
-
case 'base64':
|
|
47
|
-
return btoa(buf);
|
|
48
|
-
case 'utf-8':
|
|
49
|
-
case 'utf8':
|
|
50
|
-
return buf;
|
|
51
|
-
default:
|
|
52
|
-
throw new Error(`[ArrayBuffers.toString] Unsupported encoding for string: ${encoding}`);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
if (ArrayBuffers.isNativeBufferAllowed()) {
|
|
56
|
-
return Buffer.from(ArrayBuffers.asView(Uint8Array, buf)).toString(encoding);
|
|
57
|
-
}
|
|
58
|
-
// reference
|
|
59
|
-
// https://github.com/feross/buffer/blob/master/index.js
|
|
60
|
-
switch(encoding){
|
|
61
|
-
case 'hex':
|
|
62
|
-
{
|
|
63
|
-
const view = ArrayBuffers.asView(Uint8Array, buf);
|
|
64
|
-
return [
|
|
65
|
-
...view
|
|
66
|
-
].map((b)=>hexLookupTable[b]).join('');
|
|
67
|
-
}
|
|
68
|
-
case 'base64':
|
|
69
|
-
{
|
|
70
|
-
return encodeArrayBufferToBase64(ArrayBuffers.asView(Uint8Array, buf));
|
|
71
|
-
}
|
|
72
|
-
case 'utf8':
|
|
73
|
-
// falls through
|
|
74
|
-
case 'utf-8':
|
|
75
|
-
return new TextDecoder().decode(buf);
|
|
76
|
-
case 'ascii':
|
|
77
|
-
{
|
|
78
|
-
const view = ArrayBuffers.asView(Uint8Array, buf);
|
|
79
|
-
return String.fromCharCode(...view.map((v)=>v & 0x7f));
|
|
80
|
-
}
|
|
81
|
-
case 'latin1':
|
|
82
|
-
// falls through
|
|
83
|
-
case 'binary':
|
|
84
|
-
{
|
|
85
|
-
const view = ArrayBuffers.asView(Uint8Array, buf);
|
|
86
|
-
return String.fromCharCode(...view);
|
|
87
|
-
}
|
|
88
|
-
case 'ucs2':
|
|
89
|
-
// falls through
|
|
90
|
-
case 'ucs-2':
|
|
91
|
-
// case 'utf-16le':
|
|
92
|
-
// falls through
|
|
93
|
-
case 'utf16le':
|
|
94
|
-
{
|
|
95
|
-
const view = ArrayBuffers.asView(Uint8Array, buf);
|
|
96
|
-
let res = '';
|
|
97
|
-
// If length is odd, the last 8 bits must be ignored (same as node.js)
|
|
98
|
-
for(let i = 0; i < view.length - 1; i += 2){
|
|
99
|
-
res += String.fromCharCode(view[i] + view[i + 1] * 256);
|
|
100
|
-
}
|
|
101
|
-
return res;
|
|
102
|
-
}
|
|
103
|
-
default:
|
|
104
|
-
throw new Error(`[ArrayBuffers.toString] Unknown encoding: ${encoding}`);
|
|
105
|
-
}
|
|
106
|
-
};
|
|
107
|
-
static toJSON = (v, reviver)=>{
|
|
108
|
-
return JSON.parse(ArrayBuffers.toString(v), reviver);
|
|
109
|
-
};
|
|
110
|
-
static alloc = (size, fill, encoding)=>{
|
|
111
|
-
if (fill !== undefined) {
|
|
112
|
-
if (typeof fill === 'number') {
|
|
113
|
-
return new Uint8Array(size).fill(fill);
|
|
114
|
-
}
|
|
115
|
-
// as cast
|
|
116
|
-
// https://stackoverflow.com/questions/73994091
|
|
117
|
-
return ArrayBuffers.asView(Uint8Array, ArrayBuffers.from(fill, encoding)).slice(0, size);
|
|
118
|
-
}
|
|
119
|
-
return new ArrayBuffer(size);
|
|
120
|
-
};
|
|
121
|
-
static from = (v, encoding = 'utf8')=>{
|
|
122
|
-
if (!v) {
|
|
123
|
-
return new ArrayBuffer(0);
|
|
124
|
-
}
|
|
125
|
-
if (typeof v === 'string') {
|
|
126
|
-
if (ArrayBuffers.isNativeBufferAllowed()) {
|
|
127
|
-
return Buffer.from(v, encoding);
|
|
128
|
-
}
|
|
129
|
-
switch(encoding){
|
|
130
|
-
case 'utf-8':
|
|
131
|
-
// falls through
|
|
132
|
-
case 'utf8':
|
|
133
|
-
return new TextEncoder().encode(v).buffer;
|
|
134
|
-
case 'base64':
|
|
135
|
-
// replaceAll need higher version of nodejs
|
|
136
|
-
return decodeBase64ToArrayBuffer(v.replace(/[^0-9a-zA-Z=+/_]/g, ''));
|
|
137
|
-
// error in nodejs 18
|
|
138
|
-
// return Uint8Array.from(atob(v.replace(/[^0-9a-zA-Z=+/_ \r\n]/g, '')), (c) => c.charCodeAt(0));
|
|
139
|
-
default:
|
|
140
|
-
throw new Error(`[ArrayBuffers.from] Unknown encoding: ${encoding}`);
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
if (v instanceof ArrayBuffer) {
|
|
144
|
-
return v;
|
|
145
|
-
}
|
|
146
|
-
// lost length
|
|
147
|
-
if (ArrayBuffer.isView(v) || isBuffer(v)) {
|
|
148
|
-
if (v.byteOffset !== 0) {
|
|
149
|
-
// return v.buffer.slice(v.byteOffset, v.byteOffset + v.byteLength)
|
|
150
|
-
throw new Error('ArrayBuffers.from do not support view with offset');
|
|
151
|
-
}
|
|
152
|
-
return v.buffer;
|
|
153
|
-
}
|
|
154
|
-
if (Array.isArray(v)) {
|
|
155
|
-
return new Uint8Array(v);
|
|
156
|
-
}
|
|
157
|
-
const type = classOf(v);
|
|
158
|
-
throw new TypeError(`ArrayBuffers.from unsupported type ${type}`);
|
|
159
|
-
};
|
|
160
|
-
static isEncoding = (encoding)=>{
|
|
161
|
-
switch(String(encoding).toLowerCase()){
|
|
162
|
-
case 'hex':
|
|
163
|
-
case 'utf8':
|
|
164
|
-
case 'utf-8':
|
|
165
|
-
case 'ascii':
|
|
166
|
-
case 'latin1':
|
|
167
|
-
case 'binary':
|
|
168
|
-
case 'base64':
|
|
169
|
-
case 'ucs2':
|
|
170
|
-
case 'ucs-2':
|
|
171
|
-
case 'utf16le':
|
|
172
|
-
// case 'utf-16le':
|
|
173
|
-
return true;
|
|
174
|
-
default:
|
|
175
|
-
return false;
|
|
176
|
-
}
|
|
177
|
-
};
|
|
178
|
-
static concat = (buffers, result, offset = 0)=>{
|
|
179
|
-
// https://stackoverflow.com/questions/10786128/appending-arraybuffers
|
|
180
|
-
const length = buffers.reduce((a, b)=>a + b.byteLength, 0);
|
|
181
|
-
const r = result ? new Uint8Array(result) : new Uint8Array(length);
|
|
182
|
-
for (const buffer of buffers){
|
|
183
|
-
if (!buffer?.byteLength) continue;
|
|
184
|
-
let n;
|
|
185
|
-
if (buffer instanceof ArrayBuffer) {
|
|
186
|
-
n = new Uint8Array(buffer);
|
|
187
|
-
} else if (ArrayBuffer.isView(buffer)) {
|
|
188
|
-
n = new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);
|
|
189
|
-
} else {
|
|
190
|
-
throw new Error(`ArrayBuffers.concat unsupported type ${classOf(buffer)}`);
|
|
191
|
-
}
|
|
192
|
-
r.set(n, offset);
|
|
193
|
-
offset += buffer.byteLength;
|
|
194
|
-
}
|
|
195
|
-
return r.buffer;
|
|
196
|
-
};
|
|
197
|
-
}
|
|
198
|
-
const hexLookupTable = function() {
|
|
199
|
-
const alphabet = '0123456789abcdef';
|
|
200
|
-
const table = new Array(256);
|
|
201
|
-
for(let i = 0; i < 16; ++i){
|
|
202
|
-
const i16 = i * 16;
|
|
203
|
-
for(let j = 0; j < 16; ++j){
|
|
204
|
-
table[i16 + j] = alphabet[i] + alphabet[j];
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
return table;
|
|
208
|
-
}();
|
|
209
|
-
|
|
210
|
-
//# sourceMappingURL=ArrayBuffers.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/io/ArrayBuffers.ts"],"sourcesContent":["import { getGlobalThis } from '../isomorphics/getGlobalThis';\nimport { classOf } from '../langs/classOf';\nimport { decodeBase64ToArrayBuffer, encodeArrayBufferToBase64 } from './base64';\nimport { isBuffer } from './isBuffer';\n\n/**\n * Various utils to work with {@link ArrayBuffer}\n */\nexport interface ArrayBuffers {\n /**\n * isArrayBuffer check if the given value is an {@link ArrayBuffer}\n */\n isArrayBuffer(v: any): v is ArrayBuffer;\n\n /**\n * slice the given view with the given offset and length, will handle the {@link Buffer} as well\n *\n * @see {@link https://nodejs.org/api/buffer.html#bufslicestart-end Buffer.slice}\n */\n slice<T extends ArrayBufferView>(o: T, start?: number, end?: number): T;\n\n /**\n * asView convert the given value to given {@link TypedArray} view\n *\n * TypedArray can be {@link Buffer}, will avoid copy\n */\n asView<C extends ArrayBufferViewConstructor<unknown>>(\n TypedArray: C,\n v: BufferSource,\n byteOffset?: number,\n byteLength?: number,\n ): InstanceType<C>;\n\n /**\n * toString convert the given {@link BufferSource} to string\n */\n toString(v: BufferSource | string, encoding?: ToStringEncoding): string;\n\n /**\n * Returns true if encoding is the name of a supported character encoding, or false otherwise.\n */\n isEncoding(v?: string): v is ToStringEncoding;\n\n toJSON<T = any>(v: BufferSource | string, reviver?: (this: any, key: string, value: any) => any): T;\n\n /**\n * from convert the given value to {@link ArrayBuffer}\n */\n from(v: string | BufferSource, encoding?: ToStringEncoding): ArrayBuffer;\n\n /**\n * concat the given {@link BufferSource} to a new {@link ArrayBuffer}\n */\n concat(buffers: Array<BufferSource>, result?: ArrayBuffer, offset?: number): ArrayBuffer;\n}\n\ntype ToStringEncoding =\n | 'ascii'\n | 'utf16le'\n // | 'utf-16le'\n | 'ucs2'\n | 'ucs-2'\n | 'base64'\n | 'base64url'\n | 'latin1'\n | 'binary'\n | 'utf8'\n | 'utf-8'\n | 'hex';\n\nexport class ArrayBuffers {\n static #nativeBufferAllowed: boolean = true;\n static #isBufferAvailable: undefined | boolean;\n\n static isNativeBufferAvailable() {\n // eslint-disable-next-line no-return-assign\n return (this.#isBufferAvailable ??= !(getGlobalThis().Buffer as any)?.isPollyfill?.());\n }\n\n static isNativeBufferAllowed() {\n return this.#nativeBufferAllowed && this.#isBufferAvailable;\n }\n\n static setNativeBufferAllowed(v: boolean) {\n this.#nativeBufferAllowed = v;\n }\n\n static isArrayBuffer = (v: any): v is ArrayBuffer => {\n return v instanceof ArrayBuffer;\n };\n\n static slice = (o: TypedArray, start?: number, end?: number) => {\n // NodeJS Buffer slice is not the same as UInt8Array slice\n // https://nodejs.org/api/buffer.html#bufslicestart-end\n if (isBuffer(o)) {\n return Uint8Array.prototype.slice.call(o, start, end);\n }\n return o.slice(start, end);\n };\n\n static asView = <C extends ArrayBufferViewConstructor<unknown>, I extends InstanceType<C>>(\n TypedArray: C,\n v: BufferSource,\n byteOffset?: number,\n byteLength?: number,\n ): I => {\n if (v instanceof TypedArray && (byteOffset ?? 0) === 0 && byteLength === undefined) {\n return v as I;\n }\n if (ArrayBuffer.isView(v) || isBuffer(v)) {\n if (ArrayBuffers.isNativeBufferAllowed() && (TypedArray as any) === Buffer) {\n // new Buffer() is deprecated\n return Buffer.from(v.buffer, byteOffset, byteLength) as I;\n }\n return new TypedArray(v.buffer, v.byteOffset + (byteOffset ?? 0), byteLength ?? v.byteLength) as I;\n }\n return new TypedArray(v, byteOffset, byteLength) as I;\n };\n\n static toString = (buf: BufferSource | string, encoding: ToStringEncoding = 'utf8') => {\n // 'ascii' 'utf16le' | 'ucs2' | 'ucs-2' | 'base64' | 'base64url' | 'latin1' | 'binary' | 'hex'\n if (typeof buf === 'string') {\n switch (encoding) {\n case 'base64':\n return btoa(buf);\n case 'utf-8':\n case 'utf8':\n return buf;\n default:\n throw new Error(`[ArrayBuffers.toString] Unsupported encoding for string: ${encoding}`);\n }\n }\n if (ArrayBuffers.isNativeBufferAllowed()) {\n return Buffer.from(ArrayBuffers.asView(Uint8Array, buf)).toString(encoding);\n }\n // reference\n // https://github.com/feross/buffer/blob/master/index.js\n switch (encoding) {\n case 'hex': {\n const view: Uint8Array = ArrayBuffers.asView(Uint8Array, buf);\n return [...view].map((b) => hexLookupTable[b]).join('');\n }\n case 'base64': {\n return encodeArrayBufferToBase64(ArrayBuffers.asView(Uint8Array, buf));\n }\n case 'utf8':\n // falls through\n case 'utf-8':\n return new TextDecoder().decode(buf as any);\n case 'ascii': {\n const view: Uint8Array = ArrayBuffers.asView(Uint8Array, buf);\n return String.fromCharCode(...view.map((v) => v & 0x7f));\n }\n case 'latin1':\n // falls through\n case 'binary': {\n const view: Uint8Array = ArrayBuffers.asView(Uint8Array, buf);\n return String.fromCharCode(...view);\n }\n case 'ucs2':\n // falls through\n case 'ucs-2':\n // case 'utf-16le':\n // falls through\n case 'utf16le': {\n const view: Uint8Array = ArrayBuffers.asView(Uint8Array, buf);\n let res = '';\n // If length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < view.length - 1; i += 2) {\n res += String.fromCharCode(view[i] + view[i + 1] * 256);\n }\n return res;\n }\n default:\n throw new Error(`[ArrayBuffers.toString] Unknown encoding: ${encoding}`);\n }\n };\n\n static toJSON = (v: BufferSource | string, reviver?: (this: any, key: string, value: any) => any) => {\n return JSON.parse(ArrayBuffers.toString(v), reviver);\n };\n\n static alloc = (size: number, fill?: string | number, encoding?: ToStringEncoding) => {\n if (fill !== undefined) {\n if (typeof fill === 'number') {\n return new Uint8Array(size).fill(fill);\n }\n // as cast\n // https://stackoverflow.com/questions/73994091\n return ArrayBuffers.asView(Uint8Array, ArrayBuffers.from(fill, encoding)).slice(0, size);\n }\n return new ArrayBuffer(size);\n };\n\n static from = (\n v: string | BufferSource | ArrayLike<number> | Iterable<number>,\n encoding: ToStringEncoding = 'utf8',\n ): BufferSource => {\n if (!v) {\n return new ArrayBuffer(0);\n }\n if (typeof v === 'string') {\n if (ArrayBuffers.isNativeBufferAllowed()) {\n return Buffer.from(v, encoding);\n }\n\n switch (encoding) {\n case 'utf-8':\n // falls through\n case 'utf8':\n return new TextEncoder().encode(v).buffer;\n case 'base64':\n // replaceAll need higher version of nodejs\n return decodeBase64ToArrayBuffer(v.replace(/[^0-9a-zA-Z=+/_]/g, ''));\n // error in nodejs 18\n // return Uint8Array.from(atob(v.replace(/[^0-9a-zA-Z=+/_ \\r\\n]/g, '')), (c) => c.charCodeAt(0));\n default:\n throw new Error(`[ArrayBuffers.from] Unknown encoding: ${encoding}`);\n }\n }\n if (v instanceof ArrayBuffer) {\n return v;\n }\n // lost length\n if (ArrayBuffer.isView(v) || isBuffer(v)) {\n if (v.byteOffset !== 0) {\n // return v.buffer.slice(v.byteOffset, v.byteOffset + v.byteLength)\n throw new Error('ArrayBuffers.from do not support view with offset');\n }\n return v.buffer;\n }\n if (Array.isArray(v)) {\n return new Uint8Array(v);\n }\n const type = classOf(v);\n throw new TypeError(`ArrayBuffers.from unsupported type ${type}`);\n };\n\n static isEncoding = (encoding?: string) => {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n // case 'utf-16le':\n return true;\n default:\n return false;\n }\n };\n\n static concat = (buffers: Array<BufferSource>, result?: ArrayBuffer, offset = 0) => {\n // https://stackoverflow.com/questions/10786128/appending-arraybuffers\n\n const length = buffers.reduce((a, b) => a + b.byteLength, 0);\n const r = result ? new Uint8Array(result) : new Uint8Array(length);\n for (const buffer of buffers) {\n if (!buffer?.byteLength) continue;\n let n: Uint8Array;\n if (buffer instanceof ArrayBuffer) {\n n = new Uint8Array(buffer);\n } else if (ArrayBuffer.isView(buffer)) {\n n = new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n } else {\n throw new Error(`ArrayBuffers.concat unsupported type ${classOf(buffer)}`);\n }\n r.set(n, offset);\n offset += buffer.byteLength;\n }\n return r.buffer;\n };\n}\n\nexport type TypedArray =\n | Uint8Array\n | Uint8ClampedArray\n | Uint16Array\n | Uint32Array\n | Int8Array\n | Int16Array\n | Int32Array\n | BigUint64Array\n | BigInt64Array\n | Float32Array\n | Float64Array;\n\ntype ArrayBufferViewConstructor<T> = new (buffer: ArrayBufferLike, byteOffset?: number, byteLength?: number) => T;\n\nconst hexLookupTable = (function () {\n const alphabet = '0123456789abcdef';\n const table = new Array(256);\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16;\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j];\n }\n }\n return table;\n})();\n"],"names":["getGlobalThis","classOf","decodeBase64ToArrayBuffer","encodeArrayBufferToBase64","isBuffer","ArrayBuffers","nativeBufferAllowed","isBufferAvailable","isNativeBufferAvailable","Buffer","isPollyfill","isNativeBufferAllowed","setNativeBufferAllowed","v","isArrayBuffer","ArrayBuffer","slice","o","start","end","Uint8Array","prototype","call","asView","TypedArray","byteOffset","byteLength","undefined","isView","from","buffer","toString","buf","encoding","btoa","Error","view","map","b","hexLookupTable","join","TextDecoder","decode","String","fromCharCode","res","i","length","toJSON","reviver","JSON","parse","alloc","size","fill","TextEncoder","encode","replace","Array","isArray","type","TypeError","isEncoding","toLowerCase","concat","buffers","result","offset","reduce","a","r","n","set","alphabet","table","i16","j"],"mappings":"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"}
|
package/lib/io/Buffer.js
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { ArrayBuffers } from './ArrayBuffers.js';
|
|
2
|
-
import { isBuffer } from './isBuffer.js';
|
|
3
|
-
/**
|
|
4
|
-
* Buffer is a polyfill version of NodeJS Buffer
|
|
5
|
-
*/ export class Buffer extends Uint8Array {
|
|
6
|
-
// constructor(buffer: ArrayBufferLike, byteOffset?: number, length?: number) {
|
|
7
|
-
// super(buffer, byteOffset, length);
|
|
8
|
-
// }
|
|
9
|
-
static get isPolyfill() {
|
|
10
|
-
return true;
|
|
11
|
-
}
|
|
12
|
-
static isBuffer(v) {
|
|
13
|
-
return v instanceof Buffer || isBuffer(v);
|
|
14
|
-
}
|
|
15
|
-
static from(array, arg2) {
|
|
16
|
-
// todo mapfn
|
|
17
|
-
return new Buffer(ArrayBuffers.from(array, arg2));
|
|
18
|
-
}
|
|
19
|
-
static isEncoding = ArrayBuffers.isEncoding;
|
|
20
|
-
toString(encoding) {
|
|
21
|
-
return ArrayBuffers.toString(this, encoding);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
//# sourceMappingURL=Buffer.js.map
|
package/lib/io/Buffer.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/io/Buffer.ts"],"sourcesContent":["import { ArrayBuffers } from './ArrayBuffers';\nimport { isBuffer } from './isBuffer';\n\n/**\n * Buffer is a polyfill version of NodeJS Buffer\n */\nexport class Buffer extends Uint8Array {\n // constructor(buffer: ArrayBufferLike, byteOffset?: number, length?: number) {\n // super(buffer, byteOffset, length);\n // }\n\n static get isPolyfill() {\n return true;\n }\n\n static isBuffer(v: any): v is Buffer {\n return v instanceof Buffer || isBuffer(v);\n }\n\n static from(array: string | BufferSource | ArrayLike<number> | Iterable<number>, arg2?: any): Buffer {\n // todo mapfn\n return new Buffer(ArrayBuffers.from(array, arg2) as ArrayBuffer);\n }\n\n static isEncoding = ArrayBuffers.isEncoding;\n\n toString(encoding?: string): string {\n return ArrayBuffers.toString(this, encoding as any);\n }\n}\n"],"names":["ArrayBuffers","isBuffer","Buffer","Uint8Array","isPolyfill","v","from","array","arg2","isEncoding","toString","encoding"],"mappings":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,QAAQ,QAAQ,aAAa;AAEtC;;CAEC,GACD,OAAO,MAAMC,eAAeC;IAC1B,+EAA+E;IAC/E,uCAAuC;IACvC,IAAI;IAEJ,WAAWC,aAAa;QACtB,OAAO;IACT;IAEA,OAAOH,SAASI,CAAM,EAAe;QACnC,OAAOA,aAAaH,UAAUD,SAASI;IACzC;IAEA,OAAOC,KAAKC,KAAmE,EAAEC,IAAU,EAAU;QACnG,aAAa;QACb,OAAO,IAAIN,OAAOF,aAAaM,IAAI,CAACC,OAAOC;IAC7C;IAEA,OAAOC,aAAaT,aAAaS,UAAU,CAAC;IAE5CC,SAASC,QAAiB,EAAU;QAClC,OAAOX,aAAaU,QAAQ,CAAC,IAAI,EAAEC;IACrC;AACF"}
|
package/lib/io/base64.js
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
// https://github.com/niklasvh/base64-arraybuffer/blob/master/src/index.ts
|
|
2
|
-
const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
|
|
3
|
-
// Use a lookup table to find the index.
|
|
4
|
-
const lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);
|
|
5
|
-
for(let i = 0; i < chars.length; i++){
|
|
6
|
-
lookup[chars.charCodeAt(i)] = i;
|
|
7
|
-
}
|
|
8
|
-
export function encodeArrayBufferToBase64(arraybuffer) {
|
|
9
|
-
const bytes = new Uint8Array(arraybuffer);
|
|
10
|
-
const len = bytes.length;
|
|
11
|
-
let base64 = '';
|
|
12
|
-
for(let i = 0; i < len; i += 3){
|
|
13
|
-
base64 += chars[bytes[i] >> 2];
|
|
14
|
-
base64 += chars[(bytes[i] & 3) << 4 | bytes[i + 1] >> 4];
|
|
15
|
-
base64 += chars[(bytes[i + 1] & 15) << 2 | bytes[i + 2] >> 6];
|
|
16
|
-
base64 += chars[bytes[i + 2] & 63];
|
|
17
|
-
}
|
|
18
|
-
if (len % 3 === 2) {
|
|
19
|
-
base64 = base64.substring(0, base64.length - 1) + '=';
|
|
20
|
-
} else if (len % 3 === 1) {
|
|
21
|
-
base64 = base64.substring(0, base64.length - 2) + '==';
|
|
22
|
-
}
|
|
23
|
-
return base64;
|
|
24
|
-
}
|
|
25
|
-
export function decodeBase64ToArrayBuffer(base64) {
|
|
26
|
-
const len = base64.length;
|
|
27
|
-
let bufferLength = base64.length * 0.75;
|
|
28
|
-
let i;
|
|
29
|
-
let p = 0;
|
|
30
|
-
let encoded1;
|
|
31
|
-
let encoded2;
|
|
32
|
-
let encoded3;
|
|
33
|
-
let encoded4;
|
|
34
|
-
if (base64[base64.length - 1] === '=') {
|
|
35
|
-
bufferLength--;
|
|
36
|
-
if (base64[base64.length - 2] === '=') {
|
|
37
|
-
bufferLength--;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
const arraybuffer = new ArrayBuffer(bufferLength);
|
|
41
|
-
const bytes = new Uint8Array(arraybuffer);
|
|
42
|
-
for(i = 0; i < len; i += 4){
|
|
43
|
-
encoded1 = lookup[base64.charCodeAt(i)];
|
|
44
|
-
encoded2 = lookup[base64.charCodeAt(i + 1)];
|
|
45
|
-
encoded3 = lookup[base64.charCodeAt(i + 2)];
|
|
46
|
-
encoded4 = lookup[base64.charCodeAt(i + 3)];
|
|
47
|
-
bytes[p++] = encoded1 << 2 | encoded2 >> 4;
|
|
48
|
-
bytes[p++] = (encoded2 & 15) << 4 | encoded3 >> 2;
|
|
49
|
-
bytes[p++] = (encoded3 & 3) << 6 | encoded4 & 63;
|
|
50
|
-
}
|
|
51
|
-
return arraybuffer;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
//# sourceMappingURL=base64.js.map
|
package/lib/io/base64.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/io/base64.ts"],"sourcesContent":["// https://github.com/niklasvh/base64-arraybuffer/blob/master/src/index.ts\n\nconst chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\n\nexport function encodeArrayBufferToBase64(arraybuffer: ArrayBuffer): string {\n const bytes = new Uint8Array(arraybuffer);\n const len = bytes.length;\n let base64 = '';\n\n for (let i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n } else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n\n return base64;\n}\n\nexport function decodeBase64ToArrayBuffer(base64: string): ArrayBuffer {\n const len = base64.length;\n let bufferLength = base64.length * 0.75;\n let i;\n let p = 0;\n let encoded1;\n let encoded2;\n let encoded3;\n let encoded4;\n\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n const arraybuffer = new ArrayBuffer(bufferLength);\n const bytes = new Uint8Array(arraybuffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return arraybuffer;\n}\n"],"names":["chars","lookup","Uint8Array","i","length","charCodeAt","encodeArrayBufferToBase64","arraybuffer","bytes","len","base64","substring","decodeBase64ToArrayBuffer","bufferLength","p","encoded1","encoded2","encoded3","encoded4","ArrayBuffer"],"mappings":"AAAA,0EAA0E;AAE1E,MAAMA,QAAQ;AAEd,wCAAwC;AACxC,MAAMC,SAAS,OAAOC,eAAe,cAAc,EAAE,GAAG,IAAIA,WAAW;AACvE,IAAK,IAAIC,IAAI,GAAGA,IAAIH,MAAMI,MAAM,EAAED,IAAK;IACrCF,MAAM,CAACD,MAAMK,UAAU,CAACF,GAAG,GAAGA;AAChC;AAEA,OAAO,SAASG,0BAA0BC,WAAwB;IAChE,MAAMC,QAAQ,IAAIN,WAAWK;IAC7B,MAAME,MAAMD,MAAMJ,MAAM;IACxB,IAAIM,SAAS;IAEb,IAAK,IAAIP,IAAI,GAAGA,IAAIM,KAAKN,KAAK,EAAG;QAC/BO,UAAUV,KAAK,CAACQ,KAAK,CAACL,EAAE,IAAI,EAAE;QAC9BO,UAAUV,KAAK,CAAC,AAAEQ,CAAAA,KAAK,CAACL,EAAE,GAAG,CAAA,KAAM,IAAMK,KAAK,CAACL,IAAI,EAAE,IAAI,EAAG;QAC5DO,UAAUV,KAAK,CAAC,AAAEQ,CAAAA,KAAK,CAACL,IAAI,EAAE,GAAG,EAAC,KAAM,IAAMK,KAAK,CAACL,IAAI,EAAE,IAAI,EAAG;QACjEO,UAAUV,KAAK,CAACQ,KAAK,CAACL,IAAI,EAAE,GAAG,GAAG;IACpC;IAEA,IAAIM,MAAM,MAAM,GAAG;QACjBC,SAASA,OAAOC,SAAS,CAAC,GAAGD,OAAON,MAAM,GAAG,KAAK;IACpD,OAAO,IAAIK,MAAM,MAAM,GAAG;QACxBC,SAASA,OAAOC,SAAS,CAAC,GAAGD,OAAON,MAAM,GAAG,KAAK;IACpD;IAEA,OAAOM;AACT;AAEA,OAAO,SAASE,0BAA0BF,MAAc;IACtD,MAAMD,MAAMC,OAAON,MAAM;IACzB,IAAIS,eAAeH,OAAON,MAAM,GAAG;IACnC,IAAID;IACJ,IAAIW,IAAI;IACR,IAAIC;IACJ,IAAIC;IACJ,IAAIC;IACJ,IAAIC;IAEJ,IAAIR,MAAM,CAACA,OAAON,MAAM,GAAG,EAAE,KAAK,KAAK;QACrCS;QACA,IAAIH,MAAM,CAACA,OAAON,MAAM,GAAG,EAAE,KAAK,KAAK;YACrCS;QACF;IACF;IAEA,MAAMN,cAAc,IAAIY,YAAYN;IACpC,MAAML,QAAQ,IAAIN,WAAWK;IAE7B,IAAKJ,IAAI,GAAGA,IAAIM,KAAKN,KAAK,EAAG;QAC3BY,WAAWd,MAAM,CAACS,OAAOL,UAAU,CAACF,GAAG;QACvCa,WAAWf,MAAM,CAACS,OAAOL,UAAU,CAACF,IAAI,GAAG;QAC3Cc,WAAWhB,MAAM,CAACS,OAAOL,UAAU,CAACF,IAAI,GAAG;QAC3Ce,WAAWjB,MAAM,CAACS,OAAOL,UAAU,CAACF,IAAI,GAAG;QAE3CK,KAAK,CAACM,IAAI,GAAG,AAACC,YAAY,IAAMC,YAAY;QAC5CR,KAAK,CAACM,IAAI,GAAG,AAAEE,CAAAA,WAAW,EAAC,KAAM,IAAMC,YAAY;QACnDT,KAAK,CAACM,IAAI,GAAG,AAAEG,CAAAA,WAAW,CAAA,KAAM,IAAMC,WAAW;IACnD;IAEA,OAAOX;AACT"}
|
package/lib/io/isBuffer.js
DELETED
package/lib/io/isBuffer.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/io/isBuffer.ts"],"sourcesContent":["/**\n * check {@link obj} is Buffer\n *\n * @see {@link https://github.com/feross/is-buffer feross/is-buffer}\n */\nexport function isBuffer(obj: any): obj is Buffer {\n return obj?.constructor?.isBuffer?.(obj);\n}\n"],"names":["isBuffer","obj","constructor"],"mappings":"AAAA;;;;CAIC,GACD,OAAO,SAASA,SAASC,GAAQ;IAC/B,OAAOA,KAAKC,aAAaF,WAAWC;AACtC"}
|
package/lib/io/isTransferable.js
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { getGlobalThis } from '../isomorphics/getGlobalThis.js';
|
|
2
|
-
const globalThis = getGlobalThis();
|
|
3
|
-
/**
|
|
4
|
-
* transferable object pass between workers, can work with structuredClone
|
|
5
|
-
*
|
|
6
|
-
* - Chrome 87, FF 103, Safari X, NodeJS X
|
|
7
|
-
*
|
|
8
|
-
* @see {@link https://developer.mozilla.org/en-US/docs/Glossary/Transferable_objects | Transferable objects}
|
|
9
|
-
*/ export function isTransferable(v) {
|
|
10
|
-
_ctors ||= ctors();
|
|
11
|
-
return _ctors.some((ctor)=>v instanceof ctor);
|
|
12
|
-
}
|
|
13
|
-
let _ctors;
|
|
14
|
-
function ctors() {
|
|
15
|
-
const o = globalThis.window || globalThis || global;
|
|
16
|
-
return [
|
|
17
|
-
o.ArrayBuffer,
|
|
18
|
-
o.MessagePort,
|
|
19
|
-
o.ReadableStream,
|
|
20
|
-
o.WritableStream,
|
|
21
|
-
o.TransformStream,
|
|
22
|
-
o.AudioData,
|
|
23
|
-
o.ImageBitmap,
|
|
24
|
-
o.VideoFrame,
|
|
25
|
-
o.OffscreenCanvas,
|
|
26
|
-
o.RTCDataChannel
|
|
27
|
-
].filter(Boolean);
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
//# sourceMappingURL=isTransferable.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/io/isTransferable.ts"],"sourcesContent":["import { getGlobalThis } from '../isomorphics/getGlobalThis';\n\nconst globalThis = getGlobalThis();\n\n/**\n * transferable object pass between workers, can work with structuredClone\n *\n * - Chrome 87, FF 103, Safari X, NodeJS X\n *\n * @see {@link https://developer.mozilla.org/en-US/docs/Glossary/Transferable_objects | Transferable objects}\n */\nexport function isTransferable(v: any): v is TransferableObject {\n _ctors ||= ctors();\n return _ctors.some((ctor) => v instanceof ctor);\n}\n\nlet _ctors: any[];\n\nfunction ctors() {\n const o: any = globalThis.window || globalThis || global;\n return [\n o.ArrayBuffer,\n o.MessagePort,\n o.ReadableStream,\n o.WritableStream,\n o.TransformStream,\n o.AudioData,\n o.ImageBitmap,\n o.VideoFrame,\n o.OffscreenCanvas,\n o.RTCDataChannel,\n ].filter(Boolean);\n}\n\nexport type TransferableObject =\n | Transferable\n | ArrayBuffer\n | MessagePort\n | ReadableStream\n | WritableStream\n | TransformStream\n | AudioData\n | ImageBitmap\n | VideoFrame\n | OffscreenCanvas\n | RTCDataChannel;\n\ndeclare global {\n interface OffscreenCanvas {}\n\n interface VideoFrame {}\n\n interface AudioData {}\n}\n"],"names":["getGlobalThis","globalThis","isTransferable","v","_ctors","ctors","some","ctor","o","window","global","ArrayBuffer","MessagePort","ReadableStream","WritableStream","TransformStream","AudioData","ImageBitmap","VideoFrame","OffscreenCanvas","RTCDataChannel","filter","Boolean"],"mappings":"AAAA,SAASA,aAAa,QAAQ,+BAA+B;AAE7D,MAAMC,aAAaD;AAEnB;;;;;;CAMC,GACD,OAAO,SAASE,eAAeC,CAAM;IACnCC,WAAWC;IACX,OAAOD,OAAOE,IAAI,CAAC,CAACC,OAASJ,aAAaI;AAC5C;AAEA,IAAIH;AAEJ,SAASC;IACP,MAAMG,IAASP,WAAWQ,MAAM,IAAIR,cAAcS;IAClD,OAAO;QACLF,EAAEG,WAAW;QACbH,EAAEI,WAAW;QACbJ,EAAEK,cAAc;QAChBL,EAAEM,cAAc;QAChBN,EAAEO,eAAe;QACjBP,EAAEQ,SAAS;QACXR,EAAES,WAAW;QACbT,EAAEU,UAAU;QACZV,EAAEW,eAAe;QACjBX,EAAEY,cAAc;KACjB,CAACC,MAAM,CAACC;AACX"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* isomorphic globalThis
|
|
3
|
-
*
|
|
4
|
-
* globalThis supported by ff 65, Chrome 71, Node 12, babel
|
|
5
|
-
*
|
|
6
|
-
* non-standard globalThis supported for Alipay Miniprogram
|
|
7
|
-
*
|
|
8
|
-
* @see https://caniuse.com/#search=globalThis
|
|
9
|
-
* @see https://v8.dev/features/globalthis
|
|
10
|
-
*/ export const getGlobalThis = ()=>{
|
|
11
|
-
if (typeof globalThis !== 'undefined') return globalThis;
|
|
12
|
-
if (typeof self !== 'undefined') return self;
|
|
13
|
-
if (typeof window !== 'undefined') return window;
|
|
14
|
-
if (typeof global !== 'undefined') return global;
|
|
15
|
-
if (typeof this !== 'undefined') return this;
|
|
16
|
-
throw new Error('Unable to locate global `this`');
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
//# sourceMappingURL=getGlobalThis.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/isomorphics/getGlobalThis.ts"],"sourcesContent":["declare const global: typeof globalThis;\n\n/**\n * isomorphic globalThis\n *\n * globalThis supported by ff 65, Chrome 71, Node 12, babel\n *\n * non-standard globalThis supported for Alipay Miniprogram\n *\n * @see https://caniuse.com/#search=globalThis\n * @see https://v8.dev/features/globalthis\n */\nexport const getGlobalThis = (): typeof globalThis => {\n if (typeof globalThis !== 'undefined') return globalThis;\n if (typeof self !== 'undefined') return self;\n if (typeof window !== 'undefined') return window;\n if (typeof global !== 'undefined') return global as any;\n if (typeof this !== 'undefined') return this as any;\n throw new Error('Unable to locate global `this`');\n};\n"],"names":["getGlobalThis","globalThis","self","window","global","Error"],"mappings":"AAEA;;;;;;;;;CASC,GACD,OAAO,MAAMA,gBAAgB;IAC3B,IAAI,OAAOC,eAAe,aAAa,OAAOA;IAC9C,IAAI,OAAOC,SAAS,aAAa,OAAOA;IACxC,IAAI,OAAOC,WAAW,aAAa,OAAOA;IAC1C,IAAI,OAAOC,WAAW,aAAa,OAAOA;IAC1C,IAAI,OAAO,IAAI,KAAK,aAAa,OAAO,IAAI;IAC5C,MAAM,IAAIC,MAAM;AAClB,EAAE"}
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import { classOf } from '../langs/classOf.js';
|
|
2
|
-
import { getGlobalThis } from './getGlobalThis.js';
|
|
3
|
-
const globalThis = getGlobalThis();
|
|
4
|
-
/**
|
|
5
|
-
* Clone an object using structured cloning algorithm
|
|
6
|
-
*
|
|
7
|
-
* - Chrome 98, Safari 15.4, NodeJS 17
|
|
8
|
-
*
|
|
9
|
-
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/structuredClone structuredClone}
|
|
10
|
-
* @see {@link https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.structured-clone.js core-js}
|
|
11
|
-
*/ export const structuredClone = globalThis.structuredClone || _clone;
|
|
12
|
-
function set(obj, key, val) {
|
|
13
|
-
if (typeof val.value === 'object') val.value = _clone(val.value);
|
|
14
|
-
if (!val.enumerable || val.get || val.set || !val.configurable || !val.writable || key === '__proto__') {
|
|
15
|
-
Object.defineProperty(obj, key, val);
|
|
16
|
-
} else obj[key] = val.value;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* @see {@link https://github.com/lukeed/klona/blob/master/src/full.js klona}
|
|
20
|
-
*/ export function _clone(x) {
|
|
21
|
-
// too complex
|
|
22
|
-
// https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.structured-clone.js
|
|
23
|
-
if (typeof x !== 'object') return x;
|
|
24
|
-
let i = 0;
|
|
25
|
-
let k;
|
|
26
|
-
let list;
|
|
27
|
-
let tmp;
|
|
28
|
-
const str = classOf(x);
|
|
29
|
-
switch(str){
|
|
30
|
-
case 'Array':
|
|
31
|
-
tmp = Array(x.length);
|
|
32
|
-
break;
|
|
33
|
-
case 'Object':
|
|
34
|
-
tmp = Object.create(x.__proto__ || null);
|
|
35
|
-
break;
|
|
36
|
-
case 'Set':
|
|
37
|
-
tmp = new Set();
|
|
38
|
-
x.forEach(function(val) {
|
|
39
|
-
tmp.add(_clone(val));
|
|
40
|
-
});
|
|
41
|
-
break;
|
|
42
|
-
case 'Map':
|
|
43
|
-
tmp = new Map();
|
|
44
|
-
x.forEach(function(val, key) {
|
|
45
|
-
tmp.set(_clone(key), _clone(val));
|
|
46
|
-
});
|
|
47
|
-
break;
|
|
48
|
-
case 'Date':
|
|
49
|
-
tmp = new Date(+x);
|
|
50
|
-
break;
|
|
51
|
-
case 'RegExp':
|
|
52
|
-
tmp = new RegExp(x.source, x.flags);
|
|
53
|
-
break;
|
|
54
|
-
case 'DataView':
|
|
55
|
-
tmp = new x.constructor(_clone(x.buffer));
|
|
56
|
-
break;
|
|
57
|
-
case 'ArrayBuffer':
|
|
58
|
-
tmp = x.slice(0);
|
|
59
|
-
break;
|
|
60
|
-
default:
|
|
61
|
-
// typed arrays
|
|
62
|
-
if (str.endsWith('Array')) {
|
|
63
|
-
// ArrayBuffer.isView(x)
|
|
64
|
-
// ~> `new` bcuz `Buffer.slice` => ref
|
|
65
|
-
tmp = new x.constructor(x);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
if (tmp) {
|
|
69
|
-
for(list = Object.getOwnPropertySymbols(x); i < list.length; i++){
|
|
70
|
-
set(tmp, list[i], Object.getOwnPropertyDescriptor(x, list[i]));
|
|
71
|
-
}
|
|
72
|
-
for(i = 0, list = Object.getOwnPropertyNames(x); i < list.length; i++){
|
|
73
|
-
if (Object.hasOwnProperty.call(tmp, k = list[i]) && tmp[k] === x[k]) continue;
|
|
74
|
-
set(tmp, k, Object.getOwnPropertyDescriptor(x, k));
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
return tmp || x;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
//# sourceMappingURL=structuredClone.js.map
|