@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
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
let nodeCrypto;
|
|
2
|
-
// globalThis.process?.release?.name
|
|
3
|
-
// avoid process.browser
|
|
4
|
-
if (typeof window === 'undefined') {
|
|
5
|
-
try {
|
|
6
|
-
// avoid `node:` UnhandledSchemeError https://github.com/vercel/next.js/issues/28774
|
|
7
|
-
if (typeof require === 'undefined') {
|
|
8
|
-
void import('crypto').then((v)=>nodeCrypto = v.default);
|
|
9
|
-
} else {
|
|
10
|
-
nodeCrypto = require('crypto');
|
|
11
|
-
}
|
|
12
|
-
} catch (e) {}
|
|
13
|
-
}
|
|
14
|
-
export function getNodeCrypto() {
|
|
15
|
-
return nodeCrypto;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
//# sourceMappingURL=getNodeCrypto.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/crypto/getNodeCrypto.ts"],"sourcesContent":["let nodeCrypto: Awaited<typeof import('node:crypto')>;\n// globalThis.process?.release?.name\n\n// avoid process.browser\nif (typeof window === 'undefined') {\n try {\n // avoid `node:` UnhandledSchemeError https://github.com/vercel/next.js/issues/28774\n if (typeof require === 'undefined') {\n void import('crypto').then((v) => (nodeCrypto = v.default));\n } else {\n nodeCrypto = require('crypto');\n }\n } catch (e) {}\n}\nexport function getNodeCrypto() {\n return nodeCrypto;\n}\n"],"names":["nodeCrypto","window","require","then","v","default","e","getNodeCrypto"],"mappings":"AAAA,IAAIA;AACJ,oCAAoC;AAEpC,wBAAwB;AACxB,IAAI,OAAOC,WAAW,aAAa;IACjC,IAAI;QACF,oFAAoF;QACpF,IAAI,OAAOC,YAAY,aAAa;YAClC,KAAK,MAAM,CAAC,UAAUC,IAAI,CAAC,CAACC,IAAOJ,aAAaI,EAAEC,OAAO;QAC3D,OAAO;YACLL,aAAaE,QAAQ;QACvB;IACF,EAAE,OAAOI,GAAG,CAAC;AACf;AACA,OAAO,SAASC;IACd,OAAOP;AACT"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { getGlobalThis } from '../isomorphics/getGlobalThis.js';
|
|
2
|
-
import { getNodeCrypto } from './getNodeCrypto.js';
|
|
3
|
-
const globalThis = getGlobalThis();
|
|
4
|
-
export let getRandomValues = globalThis.crypto?.getRandomValues?.bind(globalThis.crypto) || globalThis.msCrypto?.getRandomValues?.bind(globalThis.msCrypto) || _getRandomValues;
|
|
5
|
-
function _getRandomValues(buf) {
|
|
6
|
-
const nodeCrypto = getNodeCrypto();
|
|
7
|
-
if (nodeCrypto?.webcrypto?.getRandomValues) {
|
|
8
|
-
getRandomValues = nodeCrypto?.webcrypto?.getRandomValues?.bind(nodeCrypto?.webcrypto);
|
|
9
|
-
return nodeCrypto.webcrypto.getRandomValues(buf);
|
|
10
|
-
}
|
|
11
|
-
if (nodeCrypto?.randomBytes) {
|
|
12
|
-
if (!(buf instanceof Uint8Array)) {
|
|
13
|
-
throw new TypeError('expected Uint8Array');
|
|
14
|
-
}
|
|
15
|
-
if (buf.length > 65536) {
|
|
16
|
-
const e = new Error();
|
|
17
|
-
e.code = 22;
|
|
18
|
-
e.message = `Failed to execute 'getRandomValues' on 'Crypto': The ArrayBufferView's byte length (${buf.length}) exceeds the number of bytes of entropy available via this API (65536).`;
|
|
19
|
-
e.name = 'QuotaExceededError';
|
|
20
|
-
throw e;
|
|
21
|
-
}
|
|
22
|
-
const bytes = nodeCrypto.randomBytes(buf.length);
|
|
23
|
-
buf.set(bytes);
|
|
24
|
-
return buf;
|
|
25
|
-
}
|
|
26
|
-
throw new Error('[getRandomValues]: No secure random number generator available.');
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
//# sourceMappingURL=getRandomValues.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/crypto/getRandomValues.ts"],"sourcesContent":["// eslint-disable-next-line @typescript-eslint/consistent-type-imports\nimport type { TypedArray } from '../io/ArrayBuffers';\nimport { getGlobalThis } from '../isomorphics/getGlobalThis';\nimport { getNodeCrypto } from './getNodeCrypto';\n\nconst globalThis = getGlobalThis();\nexport let getRandomValues: <T extends Exclude<TypedArray, Float32Array | Float64Array>>(typedArray: T) => T =\n globalThis.crypto?.getRandomValues?.bind(globalThis.crypto) ||\n (globalThis as any).msCrypto?.getRandomValues?.bind((globalThis as any).msCrypto) ||\n _getRandomValues;\n\nfunction _getRandomValues<T extends Exclude<TypedArray, Float32Array | Float64Array>>(buf: T) {\n const nodeCrypto = getNodeCrypto();\n if (nodeCrypto?.webcrypto?.getRandomValues) {\n getRandomValues = nodeCrypto?.webcrypto?.getRandomValues?.bind(nodeCrypto?.webcrypto);\n return nodeCrypto.webcrypto.getRandomValues(buf);\n }\n if (nodeCrypto?.randomBytes) {\n if (!(buf instanceof Uint8Array)) {\n throw new TypeError('expected Uint8Array');\n }\n if (buf.length > 65536) {\n const e: any = new Error();\n e.code = 22;\n e.message = `Failed to execute 'getRandomValues' on 'Crypto': The ArrayBufferView's byte length (${buf.length}) exceeds the number of bytes of entropy available via this API (65536).`;\n e.name = 'QuotaExceededError';\n throw e;\n }\n const bytes = nodeCrypto.randomBytes(buf.length);\n buf.set(bytes);\n return buf;\n }\n throw new Error('[getRandomValues]: No secure random number generator available.');\n}\n"],"names":["getGlobalThis","getNodeCrypto","globalThis","getRandomValues","crypto","bind","msCrypto","_getRandomValues","buf","nodeCrypto","webcrypto","randomBytes","Uint8Array","TypeError","length","e","Error","code","message","name","bytes","set"],"mappings":"AAAA,sEAAsE;AAEtE,SAASA,aAAa,QAAQ,+BAA+B;AAC7D,SAASC,aAAa,QAAQ,kBAAkB;AAEhD,MAAMC,aAAaF;AACnB,OAAO,IAAIG,kBACTD,WAAWE,MAAM,EAAED,iBAAiBE,KAAKH,WAAWE,MAAM,KAC1D,AAACF,WAAmBI,QAAQ,EAAEH,iBAAiBE,KAAK,AAACH,WAAmBI,QAAQ,KAChFC,iBAAiB;AAEnB,SAASA,iBAA6EC,GAAM;IAC1F,MAAMC,aAAaR;IACnB,IAAIQ,YAAYC,WAAWP,iBAAiB;QAC1CA,kBAAkBM,YAAYC,WAAWP,iBAAiBE,KAAKI,YAAYC;QAC3E,OAAOD,WAAWC,SAAS,CAACP,eAAe,CAACK;IAC9C;IACA,IAAIC,YAAYE,aAAa;QAC3B,IAAI,CAAEH,CAAAA,eAAeI,UAAS,GAAI;YAChC,MAAM,IAAIC,UAAU;QACtB;QACA,IAAIL,IAAIM,MAAM,GAAG,OAAO;YACtB,MAAMC,IAAS,IAAIC;YACnBD,EAAEE,IAAI,GAAG;YACTF,EAAEG,OAAO,GAAG,CAAC,oFAAoF,EAAEV,IAAIM,MAAM,CAAC,wEAAwE,CAAC;YACvLC,EAAEI,IAAI,GAAG;YACT,MAAMJ;QACR;QACA,MAAMK,QAAQX,WAAWE,WAAW,CAACH,IAAIM,MAAM;QAC/CN,IAAIa,GAAG,CAACD;QACR,OAAOZ;IACT;IACA,MAAM,IAAIQ,MAAM;AAClB"}
|
package/lib/crypto/hashing.js
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { ArrayBuffers } from '../io/ArrayBuffers.js';
|
|
2
|
-
export function sha1(s, o) {
|
|
3
|
-
return digestOf('SHA-1', s, o);
|
|
4
|
-
}
|
|
5
|
-
export function sha256(s, o) {
|
|
6
|
-
return digestOf('SHA-256', s, o);
|
|
7
|
-
}
|
|
8
|
-
export function sha384(s, o) {
|
|
9
|
-
return digestOf('SHA-384', s, o);
|
|
10
|
-
}
|
|
11
|
-
export function sha512(s, o) {
|
|
12
|
-
return digestOf('SHA-512', s, o);
|
|
13
|
-
}
|
|
14
|
-
function digestOf(a, s, o) {
|
|
15
|
-
let buffer = crypto.subtle.digest(a, binaryOf(s));
|
|
16
|
-
return o ? buffer.then((v)=>encode(v, o)) : buffer;
|
|
17
|
-
}
|
|
18
|
-
function binaryOf(s) {
|
|
19
|
-
// ArrayBuffer, TypedArray, DataView
|
|
20
|
-
if (typeof s === 'string') {
|
|
21
|
-
return new TextEncoder().encode(s);
|
|
22
|
-
}
|
|
23
|
-
// ArrayBuffer, Buffer, TypedArray, DataView
|
|
24
|
-
return s;
|
|
25
|
-
}
|
|
26
|
-
function encode(buf, o) {
|
|
27
|
-
if (o) {
|
|
28
|
-
switch(o){
|
|
29
|
-
case 'hex':
|
|
30
|
-
case 'base64':
|
|
31
|
-
return ArrayBuffers.toString(buf, o);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
return buf;
|
|
35
|
-
}
|
|
36
|
-
export async function hmac(hash, key, data, o) {
|
|
37
|
-
let ck = key instanceof CryptoKey ? key : await crypto.subtle.importKey('raw', binaryOf(key), {
|
|
38
|
-
name: 'HMAC',
|
|
39
|
-
hash: {
|
|
40
|
-
name: normalizeHash(hash)
|
|
41
|
-
}
|
|
42
|
-
}, false, [
|
|
43
|
-
'sign'
|
|
44
|
-
]);
|
|
45
|
-
let buffer = await crypto.subtle.sign({
|
|
46
|
-
name: 'HMAC',
|
|
47
|
-
hash: {
|
|
48
|
-
name: hash
|
|
49
|
-
}
|
|
50
|
-
}, ck, binaryOf(data));
|
|
51
|
-
return encode(buffer, o);
|
|
52
|
-
}
|
|
53
|
-
function normalizeHash(hash) {
|
|
54
|
-
return hash.replace(/^sha/i, 'SHA-');
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
//# sourceMappingURL=hashing.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/crypto/hashing.ts"],"sourcesContent":["import { ArrayBuffers } from '../io/ArrayBuffers';\n\nexport function sha1(s: BinaryLike, o?: undefined): Promise<Buffer>;\nexport function sha1(s: BinaryLike, o: 'hex' | 'base64'): Promise<string>;\n\nexport function sha1(s: BinaryLike, o?: DigestOptions) {\n return digestOf('SHA-1', s, o);\n}\n\nexport function sha256(s: BinaryLike, o?: undefined): Promise<Buffer>;\nexport function sha256(s: BinaryLike, o: 'hex' | 'base64'): Promise<string>;\n\nexport function sha256(s: BinaryLike, o?: DigestOptions) {\n return digestOf('SHA-256', s, o);\n}\n\nexport function sha384(s: BinaryLike, o?: undefined): Promise<Buffer>;\nexport function sha384(s: BinaryLike, o: 'hex' | 'base64'): Promise<string>;\n\nexport function sha384(s: BinaryLike, o?: DigestOptions) {\n return digestOf('SHA-384', s, o);\n}\n\nexport function sha512(s: BinaryLike, o?: undefined): Promise<Buffer>;\nexport function sha512(s: BinaryLike, o: 'hex' | 'base64'): Promise<string>;\n\nexport function sha512(s: BinaryLike, o?: DigestOptions) {\n return digestOf('SHA-512', s, o);\n}\n\nfunction digestOf(a: string, s: BinaryLike, o?: DigestOptions) {\n let buffer = crypto.subtle.digest(a, binaryOf(s));\n return o ? buffer.then((v) => encode(v, o)) : buffer;\n}\n\nexport type DigestOptions =\n | 'hex'\n | 'base64'\n | {\n encoding: 'hex' | 'base64';\n };\n\ntype BinaryLike = string | BufferSource;\n\nfunction binaryOf(s: BinaryLike) {\n // ArrayBuffer, TypedArray, DataView\n if (typeof s === 'string') {\n return new TextEncoder().encode(s);\n }\n // ArrayBuffer, Buffer, TypedArray, DataView\n return s;\n}\n\nfunction encode(buf: BufferSource, o?: DigestOptions) {\n if (o) {\n switch (o) {\n case 'hex':\n case 'base64':\n return ArrayBuffers.toString(buf, o);\n }\n }\n return buf;\n}\n\ntype StringEncoding = 'hex' | 'base64';\ntype IsStringCoding<T> = T extends StringEncoding ? true : T extends { encoding: StringEncoding } ? true : false;\n\nexport function hmac<O extends DigestOptions>(\n hash: 'SHA-1' | 'SHA-256' | 'SHA-384' | 'SHA-512' | 'sha1' | 'sha256' | 'sha384' | 'sha512',\n key: BinaryLike | CryptoKey,\n data: BinaryLike,\n o?: O,\n): Promise<IsStringCoding<O> extends true ? string : Buffer>;\n\nexport async function hmac(\n hash: 'SHA-1' | 'SHA-256' | 'SHA-384' | 'SHA-512' | 'sha1' | 'sha256' | 'sha384' | 'sha512',\n key: BinaryLike | CryptoKey,\n data: BinaryLike,\n o?: DigestOptions,\n) {\n let ck =\n key instanceof CryptoKey\n ? key\n : await crypto.subtle.importKey(\n 'raw',\n binaryOf(key),\n {\n name: 'HMAC',\n hash: {\n name: normalizeHash(hash),\n },\n },\n false,\n ['sign'],\n );\n let buffer = await crypto.subtle.sign(\n {\n name: 'HMAC',\n hash: {\n name: hash,\n },\n },\n ck,\n binaryOf(data),\n );\n\n return encode(buffer, o);\n}\n\nfunction normalizeHash(hash: string) {\n return hash.replace(/^sha/i, 'SHA-');\n}\n"],"names":["ArrayBuffers","sha1","s","o","digestOf","sha256","sha384","sha512","a","buffer","crypto","subtle","digest","binaryOf","then","v","encode","TextEncoder","buf","toString","hmac","hash","key","data","ck","CryptoKey","importKey","name","normalizeHash","sign","replace"],"mappings":"AAAA,SAASA,YAAY,QAAQ,qBAAqB;AAKlD,OAAO,SAASC,KAAKC,CAAa,EAAEC,CAAiB;IACnD,OAAOC,SAAS,SAASF,GAAGC;AAC9B;AAKA,OAAO,SAASE,OAAOH,CAAa,EAAEC,CAAiB;IACrD,OAAOC,SAAS,WAAWF,GAAGC;AAChC;AAKA,OAAO,SAASG,OAAOJ,CAAa,EAAEC,CAAiB;IACrD,OAAOC,SAAS,WAAWF,GAAGC;AAChC;AAKA,OAAO,SAASI,OAAOL,CAAa,EAAEC,CAAiB;IACrD,OAAOC,SAAS,WAAWF,GAAGC;AAChC;AAEA,SAASC,SAASI,CAAS,EAAEN,CAAa,EAAEC,CAAiB;IAC3D,IAAIM,SAASC,OAAOC,MAAM,CAACC,MAAM,CAACJ,GAAGK,SAASX;IAC9C,OAAOC,IAAIM,OAAOK,IAAI,CAAC,CAACC,IAAMC,OAAOD,GAAGZ,MAAMM;AAChD;AAWA,SAASI,SAASX,CAAa;IAC7B,oCAAoC;IACpC,IAAI,OAAOA,MAAM,UAAU;QACzB,OAAO,IAAIe,cAAcD,MAAM,CAACd;IAClC;IACA,6CAA6C;IAC7C,OAAOA;AACT;AAEA,SAASc,OAAOE,GAAiB,EAAEf,CAAiB;IAClD,IAAIA,GAAG;QACL,OAAQA;YACN,KAAK;YACL,KAAK;gBACH,OAAOH,aAAamB,QAAQ,CAACD,KAAKf;QACtC;IACF;IACA,OAAOe;AACT;AAYA,OAAO,eAAeE,KACpBC,IAA2F,EAC3FC,GAA2B,EAC3BC,IAAgB,EAChBpB,CAAiB;IAEjB,IAAIqB,KACFF,eAAeG,YACXH,MACA,MAAMZ,OAAOC,MAAM,CAACe,SAAS,CAC3B,OACAb,SAASS,MACT;QACEK,MAAM;QACNN,MAAM;YACJM,MAAMC,cAAcP;QACtB;IACF,GACA,OACA;QAAC;KAAO;IAEhB,IAAIZ,SAAS,MAAMC,OAAOC,MAAM,CAACkB,IAAI,CACnC;QACEF,MAAM;QACNN,MAAM;YACJM,MAAMN;QACR;IACF,GACAG,IACAX,SAASU;IAGX,OAAOP,OAAOP,QAAQN;AACxB;AAEA,SAASyB,cAAcP,IAAY;IACjC,OAAOA,KAAKS,OAAO,CAAC,SAAS;AAC/B"}
|
package/lib/crypto/md5.bench.js
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { createHash } from 'node:crypto';
|
|
2
|
-
import { bench, describe } from 'vitest';
|
|
3
|
-
import { md5 } from './md5.js';
|
|
4
|
-
describe('md5', ()=>{
|
|
5
|
-
const dataset = new Array(10000).fill(0).map((_, i)=>String(Math.random() * i));
|
|
6
|
-
let iterations = 0;
|
|
7
|
-
bench('js', function() {
|
|
8
|
-
iterations++;
|
|
9
|
-
md5(dataset[iterations % dataset.length]);
|
|
10
|
-
}, {
|
|
11
|
-
iterations: 10000
|
|
12
|
-
});
|
|
13
|
-
bench('native', function() {
|
|
14
|
-
iterations++;
|
|
15
|
-
createHash('md5').update(dataset[iterations % dataset.length]).digest('hex');
|
|
16
|
-
}, {
|
|
17
|
-
iterations: 10000
|
|
18
|
-
});
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
//# sourceMappingURL=md5.bench.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/crypto/md5.bench.ts"],"sourcesContent":["import { createHash } from 'node:crypto';\nimport { bench, describe } from 'vitest';\nimport { md5 } from './md5';\n\ndescribe('md5', () => {\n const dataset = new Array(10000).fill(0).map((_, i) => String(Math.random() * i));\n let iterations = 0;\n bench(\n 'js',\n function () {\n iterations++;\n md5(dataset[iterations % dataset.length]);\n },\n {\n iterations: 10000,\n },\n );\n\n bench(\n 'native',\n function () {\n iterations++;\n createHash('md5')\n .update(dataset[iterations % dataset.length])\n .digest('hex');\n },\n {\n iterations: 10000,\n },\n );\n});\n"],"names":["createHash","bench","describe","md5","dataset","Array","fill","map","_","i","String","Math","random","iterations","length","update","digest"],"mappings":"AAAA,SAASA,UAAU,QAAQ,cAAc;AACzC,SAASC,KAAK,EAAEC,QAAQ,QAAQ,SAAS;AACzC,SAASC,GAAG,QAAQ,QAAQ;AAE5BD,SAAS,OAAO;IACd,MAAME,UAAU,IAAIC,MAAM,OAAOC,IAAI,CAAC,GAAGC,GAAG,CAAC,CAACC,GAAGC,IAAMC,OAAOC,KAAKC,MAAM,KAAKH;IAC9E,IAAII,aAAa;IACjBZ,MACE,MACA;QACEY;QACAV,IAAIC,OAAO,CAACS,aAAaT,QAAQU,MAAM,CAAC;IAC1C,GACA;QACED,YAAY;IACd;IAGFZ,MACE,UACA;QACEY;QACAb,WAAW,OACRe,MAAM,CAACX,OAAO,CAACS,aAAaT,QAAQU,MAAM,CAAC,EAC3CE,MAAM,CAAC;IACZ,GACA;QACEH,YAAY;IACd;AAEJ"}
|
package/lib/crypto/md5.d.js
DELETED
package/lib/crypto/md5.d.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/crypto/md5.d.ts"],"sourcesContent":["export function md5(s: string): string;\n"],"names":[],"mappings":"AAAA,WAAuC"}
|
package/lib/crypto/md5.js
DELETED
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
// prettier-ignore
|
|
2
|
-
export function md5(inputString) {
|
|
3
|
-
// https://stackoverflow.com/a/60467595/1870054
|
|
4
|
-
var hc = "0123456789abcdef";
|
|
5
|
-
function rh(n) {
|
|
6
|
-
var j, s = "";
|
|
7
|
-
for(j = 0; j <= 3; j++)s += hc.charAt(n >> j * 8 + 4 & 0x0F) + hc.charAt(n >> j * 8 & 0x0F);
|
|
8
|
-
return s;
|
|
9
|
-
}
|
|
10
|
-
function ad(x, y) {
|
|
11
|
-
var l = (x & 0xFFFF) + (y & 0xFFFF);
|
|
12
|
-
var m = (x >> 16) + (y >> 16) + (l >> 16);
|
|
13
|
-
return m << 16 | l & 0xFFFF;
|
|
14
|
-
}
|
|
15
|
-
function rl(n, c) {
|
|
16
|
-
return n << c | n >>> 32 - c;
|
|
17
|
-
}
|
|
18
|
-
function cm(q, a, b, x, s, t) {
|
|
19
|
-
return ad(rl(ad(ad(a, q), ad(x, t)), s), b);
|
|
20
|
-
}
|
|
21
|
-
function ff(a, b, c, d, x, s, t) {
|
|
22
|
-
return cm(b & c | ~b & d, a, b, x, s, t);
|
|
23
|
-
}
|
|
24
|
-
function gg(a, b, c, d, x, s, t) {
|
|
25
|
-
return cm(b & d | c & ~d, a, b, x, s, t);
|
|
26
|
-
}
|
|
27
|
-
function hh(a, b, c, d, x, s, t) {
|
|
28
|
-
return cm(b ^ c ^ d, a, b, x, s, t);
|
|
29
|
-
}
|
|
30
|
-
function ii(a, b, c, d, x, s, t) {
|
|
31
|
-
return cm(c ^ (b | ~d), a, b, x, s, t);
|
|
32
|
-
}
|
|
33
|
-
function sb(x) {
|
|
34
|
-
var i;
|
|
35
|
-
var nblk = (x.length + 8 >> 6) + 1;
|
|
36
|
-
var blks = new Array(nblk * 16);
|
|
37
|
-
for(i = 0; i < nblk * 16; i++)blks[i] = 0;
|
|
38
|
-
for(i = 0; i < x.length; i++)blks[i >> 2] |= x.charCodeAt(i) << i % 4 * 8;
|
|
39
|
-
blks[i >> 2] |= 0x80 << i % 4 * 8;
|
|
40
|
-
blks[nblk * 16 - 2] = x.length * 8;
|
|
41
|
-
return blks;
|
|
42
|
-
}
|
|
43
|
-
var i, x = sb("" + inputString), a = 1732584193, b = -271733879, c = -1732584194, d = 271733878, olda, oldb, oldc, oldd;
|
|
44
|
-
for(i = 0; i < x.length; i += 16){
|
|
45
|
-
olda = a;
|
|
46
|
-
oldb = b;
|
|
47
|
-
oldc = c;
|
|
48
|
-
oldd = d;
|
|
49
|
-
a = ff(a, b, c, d, x[i + 0], 7, -680876936);
|
|
50
|
-
d = ff(d, a, b, c, x[i + 1], 12, -389564586);
|
|
51
|
-
c = ff(c, d, a, b, x[i + 2], 17, 606105819);
|
|
52
|
-
b = ff(b, c, d, a, x[i + 3], 22, -1044525330);
|
|
53
|
-
a = ff(a, b, c, d, x[i + 4], 7, -176418897);
|
|
54
|
-
d = ff(d, a, b, c, x[i + 5], 12, 1200080426);
|
|
55
|
-
c = ff(c, d, a, b, x[i + 6], 17, -1473231341);
|
|
56
|
-
b = ff(b, c, d, a, x[i + 7], 22, -45705983);
|
|
57
|
-
a = ff(a, b, c, d, x[i + 8], 7, 1770035416);
|
|
58
|
-
d = ff(d, a, b, c, x[i + 9], 12, -1958414417);
|
|
59
|
-
c = ff(c, d, a, b, x[i + 10], 17, -42063);
|
|
60
|
-
b = ff(b, c, d, a, x[i + 11], 22, -1990404162);
|
|
61
|
-
a = ff(a, b, c, d, x[i + 12], 7, 1804603682);
|
|
62
|
-
d = ff(d, a, b, c, x[i + 13], 12, -40341101);
|
|
63
|
-
c = ff(c, d, a, b, x[i + 14], 17, -1502002290);
|
|
64
|
-
b = ff(b, c, d, a, x[i + 15], 22, 1236535329);
|
|
65
|
-
a = gg(a, b, c, d, x[i + 1], 5, -165796510);
|
|
66
|
-
d = gg(d, a, b, c, x[i + 6], 9, -1069501632);
|
|
67
|
-
c = gg(c, d, a, b, x[i + 11], 14, 643717713);
|
|
68
|
-
b = gg(b, c, d, a, x[i + 0], 20, -373897302);
|
|
69
|
-
a = gg(a, b, c, d, x[i + 5], 5, -701558691);
|
|
70
|
-
d = gg(d, a, b, c, x[i + 10], 9, 38016083);
|
|
71
|
-
c = gg(c, d, a, b, x[i + 15], 14, -660478335);
|
|
72
|
-
b = gg(b, c, d, a, x[i + 4], 20, -405537848);
|
|
73
|
-
a = gg(a, b, c, d, x[i + 9], 5, 568446438);
|
|
74
|
-
d = gg(d, a, b, c, x[i + 14], 9, -1019803690);
|
|
75
|
-
c = gg(c, d, a, b, x[i + 3], 14, -187363961);
|
|
76
|
-
b = gg(b, c, d, a, x[i + 8], 20, 1163531501);
|
|
77
|
-
a = gg(a, b, c, d, x[i + 13], 5, -1444681467);
|
|
78
|
-
d = gg(d, a, b, c, x[i + 2], 9, -51403784);
|
|
79
|
-
c = gg(c, d, a, b, x[i + 7], 14, 1735328473);
|
|
80
|
-
b = gg(b, c, d, a, x[i + 12], 20, -1926607734);
|
|
81
|
-
a = hh(a, b, c, d, x[i + 5], 4, -378558);
|
|
82
|
-
d = hh(d, a, b, c, x[i + 8], 11, -2022574463);
|
|
83
|
-
c = hh(c, d, a, b, x[i + 11], 16, 1839030562);
|
|
84
|
-
b = hh(b, c, d, a, x[i + 14], 23, -35309556);
|
|
85
|
-
a = hh(a, b, c, d, x[i + 1], 4, -1530992060);
|
|
86
|
-
d = hh(d, a, b, c, x[i + 4], 11, 1272893353);
|
|
87
|
-
c = hh(c, d, a, b, x[i + 7], 16, -155497632);
|
|
88
|
-
b = hh(b, c, d, a, x[i + 10], 23, -1094730640);
|
|
89
|
-
a = hh(a, b, c, d, x[i + 13], 4, 681279174);
|
|
90
|
-
d = hh(d, a, b, c, x[i + 0], 11, -358537222);
|
|
91
|
-
c = hh(c, d, a, b, x[i + 3], 16, -722521979);
|
|
92
|
-
b = hh(b, c, d, a, x[i + 6], 23, 76029189);
|
|
93
|
-
a = hh(a, b, c, d, x[i + 9], 4, -640364487);
|
|
94
|
-
d = hh(d, a, b, c, x[i + 12], 11, -421815835);
|
|
95
|
-
c = hh(c, d, a, b, x[i + 15], 16, 530742520);
|
|
96
|
-
b = hh(b, c, d, a, x[i + 2], 23, -995338651);
|
|
97
|
-
a = ii(a, b, c, d, x[i + 0], 6, -198630844);
|
|
98
|
-
d = ii(d, a, b, c, x[i + 7], 10, 1126891415);
|
|
99
|
-
c = ii(c, d, a, b, x[i + 14], 15, -1416354905);
|
|
100
|
-
b = ii(b, c, d, a, x[i + 5], 21, -57434055);
|
|
101
|
-
a = ii(a, b, c, d, x[i + 12], 6, 1700485571);
|
|
102
|
-
d = ii(d, a, b, c, x[i + 3], 10, -1894986606);
|
|
103
|
-
c = ii(c, d, a, b, x[i + 10], 15, -1051523);
|
|
104
|
-
b = ii(b, c, d, a, x[i + 1], 21, -2054922799);
|
|
105
|
-
a = ii(a, b, c, d, x[i + 8], 6, 1873313359);
|
|
106
|
-
d = ii(d, a, b, c, x[i + 15], 10, -30611744);
|
|
107
|
-
c = ii(c, d, a, b, x[i + 6], 15, -1560198380);
|
|
108
|
-
b = ii(b, c, d, a, x[i + 13], 21, 1309151649);
|
|
109
|
-
a = ii(a, b, c, d, x[i + 4], 6, -145523070);
|
|
110
|
-
d = ii(d, a, b, c, x[i + 11], 10, -1120210379);
|
|
111
|
-
c = ii(c, d, a, b, x[i + 2], 15, 718787259);
|
|
112
|
-
b = ii(b, c, d, a, x[i + 9], 21, -343485551);
|
|
113
|
-
a = ad(a, olda);
|
|
114
|
-
b = ad(b, oldb);
|
|
115
|
-
c = ad(c, oldc);
|
|
116
|
-
d = ad(d, oldd);
|
|
117
|
-
}
|
|
118
|
-
return rh(a) + rh(b) + rh(c) + rh(d);
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
//# sourceMappingURL=md5.js.map
|
package/lib/crypto/md5.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/crypto/md5.js"],"sourcesContent":["// prettier-ignore\nexport function md5(inputString) {\n // https://stackoverflow.com/a/60467595/1870054\n var hc=\"0123456789abcdef\";\n function rh(n) {var j,s=\"\";for(j=0;j<=3;j++) s+=hc.charAt((n>>(j*8+4))&0x0F)+hc.charAt((n>>(j*8))&0x0F);return s;}\n function ad(x,y) {var l=(x&0xFFFF)+(y&0xFFFF);var m=(x>>16)+(y>>16)+(l>>16);return (m<<16)|(l&0xFFFF);}\n function rl(n,c) {return (n<<c)|(n>>>(32-c));}\n function cm(q,a,b,x,s,t) {return ad(rl(ad(ad(a,q),ad(x,t)),s),b);}\n function ff(a,b,c,d,x,s,t) {return cm((b&c)|((~b)&d),a,b,x,s,t);}\n function gg(a,b,c,d,x,s,t) {return cm((b&d)|(c&(~d)),a,b,x,s,t);}\n function hh(a,b,c,d,x,s,t) {return cm(b^c^d,a,b,x,s,t);}\n function ii(a,b,c,d,x,s,t) {return cm(c^(b|(~d)),a,b,x,s,t);}\n function sb(x) {\n var i;var nblk=((x.length+8)>>6)+1;var blks=new Array(nblk*16);for(i=0;i<nblk*16;i++) blks[i]=0;\n for(i=0;i<x.length;i++) blks[i>>2]|=x.charCodeAt(i)<<((i%4)*8);\n blks[i>>2]|=0x80<<((i%4)*8);blks[nblk*16-2]=x.length*8;return blks;\n }\n var i,x=sb(\"\"+inputString),a=1732584193,b=-271733879,c=-1732584194,d=271733878,olda,oldb,oldc,oldd;\n for(i=0;i<x.length;i+=16) {olda=a;oldb=b;oldc=c;oldd=d;\n a=ff(a,b,c,d,x[i+ 0], 7, -680876936);d=ff(d,a,b,c,x[i+ 1],12, -389564586);c=ff(c,d,a,b,x[i+ 2],17, 606105819);\n b=ff(b,c,d,a,x[i+ 3],22,-1044525330);a=ff(a,b,c,d,x[i+ 4], 7, -176418897);d=ff(d,a,b,c,x[i+ 5],12, 1200080426);\n c=ff(c,d,a,b,x[i+ 6],17,-1473231341);b=ff(b,c,d,a,x[i+ 7],22, -45705983);a=ff(a,b,c,d,x[i+ 8], 7, 1770035416);\n d=ff(d,a,b,c,x[i+ 9],12,-1958414417);c=ff(c,d,a,b,x[i+10],17, -42063);b=ff(b,c,d,a,x[i+11],22,-1990404162);\n a=ff(a,b,c,d,x[i+12], 7, 1804603682);d=ff(d,a,b,c,x[i+13],12, -40341101);c=ff(c,d,a,b,x[i+14],17,-1502002290);\n b=ff(b,c,d,a,x[i+15],22, 1236535329);a=gg(a,b,c,d,x[i+ 1], 5, -165796510);d=gg(d,a,b,c,x[i+ 6], 9,-1069501632);\n c=gg(c,d,a,b,x[i+11],14, 643717713);b=gg(b,c,d,a,x[i+ 0],20, -373897302);a=gg(a,b,c,d,x[i+ 5], 5, -701558691);\n d=gg(d,a,b,c,x[i+10], 9, 38016083);c=gg(c,d,a,b,x[i+15],14, -660478335);b=gg(b,c,d,a,x[i+ 4],20, -405537848);\n a=gg(a,b,c,d,x[i+ 9], 5, 568446438);d=gg(d,a,b,c,x[i+14], 9,-1019803690);c=gg(c,d,a,b,x[i+ 3],14, -187363961);\n b=gg(b,c,d,a,x[i+ 8],20, 1163531501);a=gg(a,b,c,d,x[i+13], 5,-1444681467);d=gg(d,a,b,c,x[i+ 2], 9, -51403784);\n c=gg(c,d,a,b,x[i+ 7],14, 1735328473);b=gg(b,c,d,a,x[i+12],20,-1926607734);a=hh(a,b,c,d,x[i+ 5], 4, -378558);\n d=hh(d,a,b,c,x[i+ 8],11,-2022574463);c=hh(c,d,a,b,x[i+11],16, 1839030562);b=hh(b,c,d,a,x[i+14],23, -35309556);\n a=hh(a,b,c,d,x[i+ 1], 4,-1530992060);d=hh(d,a,b,c,x[i+ 4],11, 1272893353);c=hh(c,d,a,b,x[i+ 7],16, -155497632);\n b=hh(b,c,d,a,x[i+10],23,-1094730640);a=hh(a,b,c,d,x[i+13], 4, 681279174);d=hh(d,a,b,c,x[i+ 0],11, -358537222);\n c=hh(c,d,a,b,x[i+ 3],16, -722521979);b=hh(b,c,d,a,x[i+ 6],23, 76029189);a=hh(a,b,c,d,x[i+ 9], 4, -640364487);\n d=hh(d,a,b,c,x[i+12],11, -421815835);c=hh(c,d,a,b,x[i+15],16, 530742520);b=hh(b,c,d,a,x[i+ 2],23, -995338651);\n a=ii(a,b,c,d,x[i+ 0], 6, -198630844);d=ii(d,a,b,c,x[i+ 7],10, 1126891415);c=ii(c,d,a,b,x[i+14],15,-1416354905);\n b=ii(b,c,d,a,x[i+ 5],21, -57434055);a=ii(a,b,c,d,x[i+12], 6, 1700485571);d=ii(d,a,b,c,x[i+ 3],10,-1894986606);\n c=ii(c,d,a,b,x[i+10],15, -1051523);b=ii(b,c,d,a,x[i+ 1],21,-2054922799);a=ii(a,b,c,d,x[i+ 8], 6, 1873313359);\n d=ii(d,a,b,c,x[i+15],10, -30611744);c=ii(c,d,a,b,x[i+ 6],15,-1560198380);b=ii(b,c,d,a,x[i+13],21, 1309151649);\n a=ii(a,b,c,d,x[i+ 4], 6, -145523070);d=ii(d,a,b,c,x[i+11],10,-1120210379);c=ii(c,d,a,b,x[i+ 2],15, 718787259);\n b=ii(b,c,d,a,x[i+ 9],21, -343485551);a=ad(a,olda);b=ad(b,oldb);c=ad(c,oldc);d=ad(d,oldd);\n }\n return rh(a)+rh(b)+rh(c)+rh(d);\n}\n"],"names":["md5","inputString","hc","rh","n","j","s","charAt","ad","x","y","l","m","rl","c","cm","q","a","b","t","ff","d","gg","hh","ii","sb","i","nblk","length","blks","Array","charCodeAt","olda","oldb","oldc","oldd"],"mappings":"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"}
|
package/lib/crypto/pem/pem.js
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { ArrayBuffers } from '../../io/ArrayBuffers.js';
|
|
2
|
-
export class PEM {
|
|
3
|
-
static decode(data) {
|
|
4
|
-
const match = data.match(/^-----BEGIN (?<type>[^\r\n-]+)-----$\r?\n(?<headers>(^[^:\r\n]+:[^\n\r]+\r?\n)+\r?\n)?(?<data>[a-zA-Z0-9/_=\n\r+]+?)^-----END \1-----$\r?\n?/ms);
|
|
5
|
-
if (!match?.groups) throw new Error('Invalid PEM data');
|
|
6
|
-
const { type, headers = '', data: b64 } = match.groups;
|
|
7
|
-
const header = headers.split('\n').filter((v)=>v.trim()).map((h)=>{
|
|
8
|
-
const [k, ...v] = h.split(':');
|
|
9
|
-
return [
|
|
10
|
-
k.trim(),
|
|
11
|
-
v.join(':').trim()
|
|
12
|
-
];
|
|
13
|
-
}).reduce((a, [k, v])=>({
|
|
14
|
-
...a,
|
|
15
|
-
[k]: v
|
|
16
|
-
}), {});
|
|
17
|
-
return {
|
|
18
|
-
block: {
|
|
19
|
-
type,
|
|
20
|
-
header,
|
|
21
|
-
// avoid replaceAll
|
|
22
|
-
bytes: ArrayBuffers.from(b64.replace(/[\r\n]/g, ''), 'base64')
|
|
23
|
-
},
|
|
24
|
-
head: data.slice(0, match.index || 0),
|
|
25
|
-
tail: data.slice((match.index || 0) + match[0].length)
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
static encode(block) {
|
|
29
|
-
const { type, header, bytes } = block;
|
|
30
|
-
const headers = Object.entries(header || {}).map(([k, v])=>`${k}: ${v}`).join('\n');
|
|
31
|
-
return `-----BEGIN ${type}-----\n${headers}${headers.length ? '\n\n' : ''}${ArrayBuffers.toString(bytes, 'base64').match(/.{1,64}/g)?.join('\n') || ''}\n-----END ${type}-----\n`;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
//# sourceMappingURL=pem.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/crypto/pem/pem.ts"],"sourcesContent":["import { ArrayBuffers } from '../../io/ArrayBuffers';\n\nexport interface Block {\n /**\n * @see https://github.com/openssl/openssl/blob/master/include/openssl/pem.h#L35-L60 openssl/pem.h\n */\n type:\n | string\n | `${'RSA' | 'DSA'} ${'PRIVATE' | 'PUBLIC'} KEY`\n | `${'X509' | 'TRUSTED'} CERTIFICATE`\n | 'CERTIFICATE'\n | 'X509 CRL'\n | 'CERTIFICATE REQUEST'\n | 'NEW CERTIFICATE REQUEST'\n | 'ANY PRIVATE KEY'\n | 'PUBLIC KEY'\n | 'PKCS7'\n | 'PKCS #7 SIGNED DATA'\n | 'ENCRYPTED PRIVATE KEY'\n | 'PRIVATE KEY'\n | 'DH PARAMETERS'\n | 'X9.42 DH PARAMETERS'\n | 'SSL SESSION PARAMETERS'\n | 'DSA PARAMETERS'\n | 'ECDSA PUBLIC KEY'\n | 'EC PARAMETERS'\n | 'EC PRIVATE KEY'\n | 'PARAMETERS'\n | 'CMS'\n | 'SM2 PARAMETERS';\n\n header: Record<string, string>;\n bytes: BufferSource;\n}\n\nexport class PEM {\n static decode(data: string): { block: Block; tail: string; head: string } {\n const match = data.match(\n /^-----BEGIN (?<type>[^\\r\\n-]+)-----$\\r?\\n(?<headers>(^[^:\\r\\n]+:[^\\n\\r]+\\r?\\n)+\\r?\\n)?(?<data>[a-zA-Z0-9/_=\\n\\r+]+?)^-----END \\1-----$\\r?\\n?/ms,\n );\n if (!match?.groups) throw new Error('Invalid PEM data');\n const { type, headers = '', data: b64 } = match.groups;\n const header = headers\n .split('\\n')\n .filter((v) => v.trim())\n .map((h) => {\n const [k, ...v] = h.split(':');\n return [k.trim(), v.join(':').trim()];\n })\n .reduce((a, [k, v]) => ({ ...a, [k]: v }), {});\n return {\n block: {\n type,\n header,\n // avoid replaceAll\n bytes: ArrayBuffers.from(b64.replace(/[\\r\\n]/g, ''), 'base64'),\n },\n head: data.slice(0, match.index || 0),\n tail: data.slice((match.index || 0) + match[0].length),\n };\n }\n\n static encode(block: { type: string; bytes: string | BufferSource; header?: Record<string, string> }): string {\n const { type, header, bytes } = block;\n const headers = Object.entries(header || {})\n .map(([k, v]) => `${k}: ${v}`)\n .join('\\n');\n return `-----BEGIN ${type}-----\\n${headers}${headers.length ? '\\n\\n' : ''}${\n ArrayBuffers.toString(bytes, 'base64')\n .match(/.{1,64}/g)\n ?.join('\\n') || ''\n }\\n-----END ${type}-----\\n`;\n }\n}\n"],"names":["ArrayBuffers","PEM","decode","data","match","groups","Error","type","headers","b64","header","split","filter","v","trim","map","h","k","join","reduce","a","block","bytes","from","replace","head","slice","index","tail","length","encode","Object","entries","toString"],"mappings":"AAAA,SAASA,YAAY,QAAQ,wBAAwB;AAmCrD,OAAO,MAAMC;IACX,OAAOC,OAAOC,IAAY,EAAgD;QACxE,MAAMC,QAAQD,KAAKC,KAAK,CACtB;QAEF,IAAI,CAACA,OAAOC,QAAQ,MAAM,IAAIC,MAAM;QACpC,MAAM,EAAEC,IAAI,EAAEC,UAAU,EAAE,EAAEL,MAAMM,GAAG,EAAE,GAAGL,MAAMC,MAAM;QACtD,MAAMK,SAASF,QACZG,KAAK,CAAC,MACNC,MAAM,CAAC,CAACC,IAAMA,EAAEC,IAAI,IACpBC,GAAG,CAAC,CAACC;YACJ,MAAM,CAACC,GAAG,GAAGJ,EAAE,GAAGG,EAAEL,KAAK,CAAC;YAC1B,OAAO;gBAACM,EAAEH,IAAI;gBAAID,EAAEK,IAAI,CAAC,KAAKJ,IAAI;aAAG;QACvC,GACCK,MAAM,CAAC,CAACC,GAAG,CAACH,GAAGJ,EAAE,GAAM,CAAA;gBAAE,GAAGO,CAAC;gBAAE,CAACH,EAAE,EAAEJ;YAAE,CAAA,GAAI,CAAC;QAC9C,OAAO;YACLQ,OAAO;gBACLd;gBACAG;gBACA,oBAAoB;gBACpBY,OAAOtB,aAAauB,IAAI,CAACd,IAAIe,OAAO,CAAC,WAAW,KAAK;YACvD;YACAC,MAAMtB,KAAKuB,KAAK,CAAC,GAAGtB,MAAMuB,KAAK,IAAI;YACnCC,MAAMzB,KAAKuB,KAAK,CAAC,AAACtB,CAAAA,MAAMuB,KAAK,IAAI,CAAA,IAAKvB,KAAK,CAAC,EAAE,CAACyB,MAAM;QACvD;IACF;IAEA,OAAOC,OAAOT,KAAsF,EAAU;QAC5G,MAAM,EAAEd,IAAI,EAAEG,MAAM,EAAEY,KAAK,EAAE,GAAGD;QAChC,MAAMb,UAAUuB,OAAOC,OAAO,CAACtB,UAAU,CAAC,GACvCK,GAAG,CAAC,CAAC,CAACE,GAAGJ,EAAE,GAAK,CAAC,EAAEI,EAAE,EAAE,EAAEJ,EAAE,CAAC,EAC5BK,IAAI,CAAC;QACR,OAAO,CAAC,WAAW,EAAEX,KAAK,OAAO,EAAEC,QAAQ,EAAEA,QAAQqB,MAAM,GAAG,SAAS,GAAG,EACxE7B,aAAaiC,QAAQ,CAACX,OAAO,UAC1BlB,KAAK,CAAC,aACLc,KAAK,SAAS,GACnB,WAAW,EAAEX,KAAK,OAAO,CAAC;IAC7B;AACF"}
|
package/lib/crypto/randomUUID.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { getGlobalThis } from '../isomorphics/getGlobalThis.js';
|
|
2
|
-
const globalThis = getGlobalThis();
|
|
3
|
-
/**
|
|
4
|
-
* generate random UUIDv4
|
|
5
|
-
*/ export const randomUUID = globalThis.crypto?.randomUUID?.bind(globalThis.crypto) || _randomUUID;
|
|
6
|
-
/**
|
|
7
|
-
* @internal
|
|
8
|
-
*/ export function _randomUUID() {
|
|
9
|
-
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c)=>{
|
|
10
|
-
const r = Math.random() * 16 | 0;
|
|
11
|
-
const v = c === 'x' ? r : r & 0x3 | 0x8;
|
|
12
|
-
return v.toString(16);
|
|
13
|
-
});
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
//# sourceMappingURL=randomUUID.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/crypto/randomUUID.ts"],"sourcesContent":["import { getGlobalThis } from '../isomorphics/getGlobalThis';\n\nconst globalThis = getGlobalThis();\n\n/**\n * generate random UUIDv4\n */\nexport const randomUUID: () => string = globalThis.crypto?.randomUUID?.bind(globalThis.crypto) || _randomUUID;\n\n/**\n * @internal\n */\nexport function _randomUUID() {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n const r = (Math.random() * 16) | 0;\n const v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n}\n"],"names":["getGlobalThis","globalThis","randomUUID","crypto","bind","_randomUUID","replace","c","r","Math","random","v","toString"],"mappings":"AAAA,SAASA,aAAa,QAAQ,+BAA+B;AAE7D,MAAMC,aAAaD;AAEnB;;CAEC,GACD,OAAO,MAAME,aAA2BD,WAAWE,MAAM,EAAED,YAAYE,KAAKH,WAAWE,MAAM,KAAKE,YAAY;AAE9G;;CAEC,GACD,OAAO,SAASA;IACd,OAAO,uCAAuCC,OAAO,CAAC,SAAS,CAACC;QAC9D,MAAMC,IAAI,AAACC,KAAKC,MAAM,KAAK,KAAM;QACjC,MAAMC,IAAIJ,MAAM,MAAMC,IAAI,AAACA,IAAI,MAAO;QACtC,OAAOG,EAAEC,QAAQ,CAAC;IACpB;AACF"}
|
package/lib/crypto/ulid.js
DELETED
|
@@ -1,153 +0,0 @@
|
|
|
1
|
-
import { getRandomValues } from './getRandomValues.js';
|
|
2
|
-
function createError(message) {
|
|
3
|
-
const err = new Error(message);
|
|
4
|
-
err.source = 'ulid';
|
|
5
|
-
return err;
|
|
6
|
-
}
|
|
7
|
-
// These values should NEVER change. If
|
|
8
|
-
// they do, we're no longer making ulids!
|
|
9
|
-
const ENCODING = '0123456789ABCDEFGHJKMNPQRSTVWXYZ'; // Crockford's Base32
|
|
10
|
-
const ENCODING_LEN = ENCODING.length;
|
|
11
|
-
const TIME_MAX = Math.pow(2, 48) - 1;
|
|
12
|
-
const TIME_LEN = 10;
|
|
13
|
-
const RANDOM_LEN = 16;
|
|
14
|
-
/**
|
|
15
|
-
* check give {@link str} is a valid ulid
|
|
16
|
-
*/ export function isULID(str) {
|
|
17
|
-
if (!str) {
|
|
18
|
-
return false;
|
|
19
|
-
}
|
|
20
|
-
// ttttttttttrrrrrrrrrrrrrrrr
|
|
21
|
-
return str.length === 26 && /^[0-9A-HJKMNP-TV-Z]{26}$/i.test(str);
|
|
22
|
-
}
|
|
23
|
-
function replaceCharAt(str, index, char) {
|
|
24
|
-
if (index > str.length - 1) {
|
|
25
|
-
return str;
|
|
26
|
-
}
|
|
27
|
-
return str.substr(0, index) + char + str.substr(index + 1);
|
|
28
|
-
}
|
|
29
|
-
function incrementBase32(str) {
|
|
30
|
-
let done;
|
|
31
|
-
let index = str.length;
|
|
32
|
-
let char;
|
|
33
|
-
let charIndex;
|
|
34
|
-
const maxCharIndex = ENCODING_LEN - 1;
|
|
35
|
-
while(!done && index-- >= 0){
|
|
36
|
-
char = str[index];
|
|
37
|
-
charIndex = ENCODING.indexOf(char);
|
|
38
|
-
if (charIndex === -1) {
|
|
39
|
-
throw createError('incorrectly encoded string');
|
|
40
|
-
}
|
|
41
|
-
if (charIndex === maxCharIndex) {
|
|
42
|
-
str = replaceCharAt(str, index, ENCODING[0]);
|
|
43
|
-
continue;
|
|
44
|
-
}
|
|
45
|
-
done = replaceCharAt(str, index, ENCODING[charIndex + 1]);
|
|
46
|
-
}
|
|
47
|
-
if (typeof done === 'string') {
|
|
48
|
-
return done;
|
|
49
|
-
}
|
|
50
|
-
throw createError('cannot increment this string');
|
|
51
|
-
}
|
|
52
|
-
function randomChar(prng) {
|
|
53
|
-
let rand = Math.floor(prng() * ENCODING_LEN);
|
|
54
|
-
if (rand === ENCODING_LEN) {
|
|
55
|
-
rand = ENCODING_LEN - 1;
|
|
56
|
-
}
|
|
57
|
-
return ENCODING.charAt(rand);
|
|
58
|
-
}
|
|
59
|
-
function encodeTime(now, len) {
|
|
60
|
-
if (isNaN(now)) {
|
|
61
|
-
throw new Error(`${now} must be a number`);
|
|
62
|
-
}
|
|
63
|
-
if (now > TIME_MAX) {
|
|
64
|
-
throw createError(`cannot encode time greater than ${TIME_MAX}`);
|
|
65
|
-
}
|
|
66
|
-
if (now < 0) {
|
|
67
|
-
throw createError('time must be positive');
|
|
68
|
-
}
|
|
69
|
-
if (!Number.isInteger(now)) {
|
|
70
|
-
throw createError('time must be an integer');
|
|
71
|
-
}
|
|
72
|
-
let mod;
|
|
73
|
-
let str = '';
|
|
74
|
-
for(; len > 0; len--){
|
|
75
|
-
mod = now % ENCODING_LEN;
|
|
76
|
-
str = ENCODING.charAt(mod) + str;
|
|
77
|
-
now = (now - mod) / ENCODING_LEN;
|
|
78
|
-
}
|
|
79
|
-
return str;
|
|
80
|
-
}
|
|
81
|
-
function encodeRandom(len, prng) {
|
|
82
|
-
let str = '';
|
|
83
|
-
for(; len > 0; len--){
|
|
84
|
-
str = randomChar(prng) + str;
|
|
85
|
-
}
|
|
86
|
-
return str;
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* extract time & random from ulid
|
|
90
|
-
*
|
|
91
|
-
* @throws ULIDError
|
|
92
|
-
*/ export function parseULID(id) {
|
|
93
|
-
if (id.length !== TIME_LEN + RANDOM_LEN) {
|
|
94
|
-
throw createError('malformed ulid');
|
|
95
|
-
}
|
|
96
|
-
const time = id.substr(0, TIME_LEN).split('').reverse().reduce((carry, char, index)=>{
|
|
97
|
-
const encodingIndex = ENCODING.indexOf(char);
|
|
98
|
-
if (encodingIndex === -1) {
|
|
99
|
-
throw createError('invalid character found: ' + char);
|
|
100
|
-
}
|
|
101
|
-
return carry += encodingIndex * Math.pow(ENCODING_LEN, index);
|
|
102
|
-
}, 0);
|
|
103
|
-
if (time > TIME_MAX) {
|
|
104
|
-
throw createError('malformed ulid, timestamp too large');
|
|
105
|
-
}
|
|
106
|
-
return {
|
|
107
|
-
timestamp: time,
|
|
108
|
-
random: id.substring(TIME_LEN)
|
|
109
|
-
};
|
|
110
|
-
}
|
|
111
|
-
function createPrng() {
|
|
112
|
-
return ()=>{
|
|
113
|
-
const buffer = new Uint8Array(1);
|
|
114
|
-
getRandomValues(buffer);
|
|
115
|
-
return buffer[0] / 0xff;
|
|
116
|
-
};
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* create a ulid generator
|
|
120
|
-
*/ export function createULID({ monotonic = true, random = createPrng(), now = Date.now } = {}) {
|
|
121
|
-
if (!monotonic) {
|
|
122
|
-
return function ulid(seedTime) {
|
|
123
|
-
seedTime ||= now();
|
|
124
|
-
return encodeTime(seedTime, TIME_LEN) + encodeRandom(RANDOM_LEN, random);
|
|
125
|
-
};
|
|
126
|
-
}
|
|
127
|
-
let lastTime = 0;
|
|
128
|
-
let lastRandom;
|
|
129
|
-
return function ulid(seedTime) {
|
|
130
|
-
seedTime ||= now();
|
|
131
|
-
if (seedTime <= lastTime && lastRandom) {
|
|
132
|
-
const incrementedRandom = lastRandom = incrementBase32(lastRandom);
|
|
133
|
-
return encodeTime(lastTime, TIME_LEN) + incrementedRandom;
|
|
134
|
-
}
|
|
135
|
-
lastTime = seedTime;
|
|
136
|
-
const newRandom = lastRandom = encodeRandom(RANDOM_LEN, random);
|
|
137
|
-
return encodeTime(seedTime, TIME_LEN) + newRandom;
|
|
138
|
-
};
|
|
139
|
-
}
|
|
140
|
-
/**
|
|
141
|
-
* default monotonic ulid generator
|
|
142
|
-
*/ export let ulid = (...args)=>{
|
|
143
|
-
if (_real) {
|
|
144
|
-
return _real(...args);
|
|
145
|
-
}
|
|
146
|
-
// delay initialize crypto
|
|
147
|
-
_real = createULID();
|
|
148
|
-
ulid = _real;
|
|
149
|
-
return _real(...args);
|
|
150
|
-
};
|
|
151
|
-
let _real;
|
|
152
|
-
|
|
153
|
-
//# sourceMappingURL=ulid.js.map
|
package/lib/crypto/ulid.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/crypto/ulid.ts"],"sourcesContent":["import { getRandomValues } from './getRandomValues';\n\ntype PRNG = () => number;\n\n/**\n * Universally Unique Lexicographically Sortable Identifier\n *\n * @see https://github.com/ulid/spec ulid/spec\n */\nexport type ULID = (seedTime?: number) => string;\n\nexport interface ULIDError extends Error {\n source: string;\n}\n\nfunction createError(message: string): ULIDError {\n const err = new Error(message) as ULIDError;\n err.source = 'ulid';\n return err;\n}\n\n// These values should NEVER change. If\n// they do, we're no longer making ulids!\nconst ENCODING = '0123456789ABCDEFGHJKMNPQRSTVWXYZ'; // Crockford's Base32\nconst ENCODING_LEN = ENCODING.length;\nconst TIME_MAX = Math.pow(2, 48) - 1;\nconst TIME_LEN = 10;\nconst RANDOM_LEN = 16;\n\n/**\n * check give {@link str} is a valid ulid\n */\nexport function isULID(str: string | undefined | null): boolean {\n if (!str) {\n return false;\n }\n // ttttttttttrrrrrrrrrrrrrrrr\n return str.length === 26 && /^[0-9A-HJKMNP-TV-Z]{26}$/i.test(str);\n}\n\nfunction replaceCharAt(str: string, index: number, char: string) {\n if (index > str.length - 1) {\n return str;\n }\n return str.substr(0, index) + char + str.substr(index + 1);\n}\n\nfunction incrementBase32(str: string): string {\n let done;\n let index = str.length;\n let char;\n let charIndex;\n const maxCharIndex = ENCODING_LEN - 1;\n while (!done && index-- >= 0) {\n char = str[index];\n charIndex = ENCODING.indexOf(char);\n if (charIndex === -1) {\n throw createError('incorrectly encoded string');\n }\n if (charIndex === maxCharIndex) {\n str = replaceCharAt(str, index, ENCODING[0]);\n continue;\n }\n done = replaceCharAt(str, index, ENCODING[charIndex + 1]);\n }\n if (typeof done === 'string') {\n return done;\n }\n throw createError('cannot increment this string');\n}\n\nfunction randomChar(prng: PRNG): string {\n let rand = Math.floor(prng() * ENCODING_LEN);\n if (rand === ENCODING_LEN) {\n rand = ENCODING_LEN - 1;\n }\n return ENCODING.charAt(rand);\n}\n\nfunction encodeTime(now: number, len: number): string {\n if (isNaN(now)) {\n throw new Error(`${now} must be a number`);\n }\n if (now > TIME_MAX) {\n throw createError(`cannot encode time greater than ${TIME_MAX}`);\n }\n if (now < 0) {\n throw createError('time must be positive');\n }\n if (!Number.isInteger(now)) {\n throw createError('time must be an integer');\n }\n let mod;\n let str = '';\n for (; len > 0; len--) {\n mod = now % ENCODING_LEN;\n str = ENCODING.charAt(mod) + str;\n now = (now - mod) / ENCODING_LEN;\n }\n return str;\n}\n\nfunction encodeRandom(len: number, prng: PRNG): string {\n let str = '';\n for (; len > 0; len--) {\n str = randomChar(prng) + str;\n }\n return str;\n}\n\n/**\n * extract time & random from ulid\n *\n * @throws ULIDError\n */\nexport function parseULID(id: string): { timestamp: number; random: string } {\n if (id.length !== TIME_LEN + RANDOM_LEN) {\n throw createError('malformed ulid');\n }\n const time = id\n .substr(0, TIME_LEN)\n .split('')\n .reverse()\n .reduce((carry, char, index) => {\n const encodingIndex = ENCODING.indexOf(char);\n if (encodingIndex === -1) {\n throw createError('invalid character found: ' + char);\n }\n return (carry += encodingIndex * Math.pow(ENCODING_LEN, index));\n }, 0);\n if (time > TIME_MAX) {\n throw createError('malformed ulid, timestamp too large');\n }\n return { timestamp: time, random: id.substring(TIME_LEN) };\n}\n\nfunction createPrng(): PRNG {\n return () => {\n const buffer = new Uint8Array(1);\n getRandomValues(buffer);\n return buffer[0] / 0xff;\n };\n}\n\n/**\n * create a ulid generator\n */\nexport function createULID({\n monotonic = true,\n random = createPrng(),\n now = Date.now,\n}: { monotonic?: boolean; now?: () => number; random?: () => number } = {}) {\n if (!monotonic) {\n return function ulid(seedTime?: number): string {\n seedTime ||= now();\n return encodeTime(seedTime, TIME_LEN) + encodeRandom(RANDOM_LEN, random);\n };\n }\n\n let lastTime: number = 0;\n let lastRandom: string;\n return function ulid(seedTime?: number): string {\n seedTime ||= now();\n if (seedTime <= lastTime && lastRandom) {\n const incrementedRandom = (lastRandom = incrementBase32(lastRandom));\n return encodeTime(lastTime, TIME_LEN) + incrementedRandom;\n }\n lastTime = seedTime;\n const newRandom = (lastRandom = encodeRandom(RANDOM_LEN, random));\n return encodeTime(seedTime, TIME_LEN) + newRandom;\n };\n}\n\n/**\n * default monotonic ulid generator\n */\nexport let ulid: ULID = (...args) => {\n if (_real) {\n return _real(...args);\n }\n // delay initialize crypto\n _real = createULID();\n ulid = _real;\n return _real(...args);\n};\nlet _real: ULID;\n"],"names":["getRandomValues","createError","message","err","Error","source","ENCODING","ENCODING_LEN","length","TIME_MAX","Math","pow","TIME_LEN","RANDOM_LEN","isULID","str","test","replaceCharAt","index","char","substr","incrementBase32","done","charIndex","maxCharIndex","indexOf","randomChar","prng","rand","floor","charAt","encodeTime","now","len","isNaN","Number","isInteger","mod","encodeRandom","parseULID","id","time","split","reverse","reduce","carry","encodingIndex","timestamp","random","substring","createPrng","buffer","Uint8Array","createULID","monotonic","Date","ulid","seedTime","lastTime","lastRandom","incrementedRandom","newRandom","args","_real"],"mappings":"AAAA,SAASA,eAAe,QAAQ,oBAAoB;AAepD,SAASC,YAAYC,OAAe;IAClC,MAAMC,MAAM,IAAIC,MAAMF;IACtBC,IAAIE,MAAM,GAAG;IACb,OAAOF;AACT;AAEA,uCAAuC;AACvC,yCAAyC;AACzC,MAAMG,WAAW,oCAAoC,qBAAqB;AAC1E,MAAMC,eAAeD,SAASE,MAAM;AACpC,MAAMC,WAAWC,KAAKC,GAAG,CAAC,GAAG,MAAM;AACnC,MAAMC,WAAW;AACjB,MAAMC,aAAa;AAEnB;;CAEC,GACD,OAAO,SAASC,OAAOC,GAA8B;IACnD,IAAI,CAACA,KAAK;QACR,OAAO;IACT;IACA,6BAA6B;IAC7B,OAAOA,IAAIP,MAAM,KAAK,MAAM,4BAA4BQ,IAAI,CAACD;AAC/D;AAEA,SAASE,cAAcF,GAAW,EAAEG,KAAa,EAAEC,IAAY;IAC7D,IAAID,QAAQH,IAAIP,MAAM,GAAG,GAAG;QAC1B,OAAOO;IACT;IACA,OAAOA,IAAIK,MAAM,CAAC,GAAGF,SAASC,OAAOJ,IAAIK,MAAM,CAACF,QAAQ;AAC1D;AAEA,SAASG,gBAAgBN,GAAW;IAClC,IAAIO;IACJ,IAAIJ,QAAQH,IAAIP,MAAM;IACtB,IAAIW;IACJ,IAAII;IACJ,MAAMC,eAAejB,eAAe;IACpC,MAAO,CAACe,QAAQJ,WAAW,EAAG;QAC5BC,OAAOJ,GAAG,CAACG,MAAM;QACjBK,YAAYjB,SAASmB,OAAO,CAACN;QAC7B,IAAII,cAAc,CAAC,GAAG;YACpB,MAAMtB,YAAY;QACpB;QACA,IAAIsB,cAAcC,cAAc;YAC9BT,MAAME,cAAcF,KAAKG,OAAOZ,QAAQ,CAAC,EAAE;YAC3C;QACF;QACAgB,OAAOL,cAAcF,KAAKG,OAAOZ,QAAQ,CAACiB,YAAY,EAAE;IAC1D;IACA,IAAI,OAAOD,SAAS,UAAU;QAC5B,OAAOA;IACT;IACA,MAAMrB,YAAY;AACpB;AAEA,SAASyB,WAAWC,IAAU;IAC5B,IAAIC,OAAOlB,KAAKmB,KAAK,CAACF,SAASpB;IAC/B,IAAIqB,SAASrB,cAAc;QACzBqB,OAAOrB,eAAe;IACxB;IACA,OAAOD,SAASwB,MAAM,CAACF;AACzB;AAEA,SAASG,WAAWC,GAAW,EAAEC,GAAW;IAC1C,IAAIC,MAAMF,MAAM;QACd,MAAM,IAAI5B,MAAM,CAAC,EAAE4B,IAAI,iBAAiB,CAAC;IAC3C;IACA,IAAIA,MAAMvB,UAAU;QAClB,MAAMR,YAAY,CAAC,gCAAgC,EAAEQ,SAAS,CAAC;IACjE;IACA,IAAIuB,MAAM,GAAG;QACX,MAAM/B,YAAY;IACpB;IACA,IAAI,CAACkC,OAAOC,SAAS,CAACJ,MAAM;QAC1B,MAAM/B,YAAY;IACpB;IACA,IAAIoC;IACJ,IAAItB,MAAM;IACV,MAAOkB,MAAM,GAAGA,MAAO;QACrBI,MAAML,MAAMzB;QACZQ,MAAMT,SAASwB,MAAM,CAACO,OAAOtB;QAC7BiB,MAAM,AAACA,CAAAA,MAAMK,GAAE,IAAK9B;IACtB;IACA,OAAOQ;AACT;AAEA,SAASuB,aAAaL,GAAW,EAAEN,IAAU;IAC3C,IAAIZ,MAAM;IACV,MAAOkB,MAAM,GAAGA,MAAO;QACrBlB,MAAMW,WAAWC,QAAQZ;IAC3B;IACA,OAAOA;AACT;AAEA;;;;CAIC,GACD,OAAO,SAASwB,UAAUC,EAAU;IAClC,IAAIA,GAAGhC,MAAM,KAAKI,WAAWC,YAAY;QACvC,MAAMZ,YAAY;IACpB;IACA,MAAMwC,OAAOD,GACVpB,MAAM,CAAC,GAAGR,UACV8B,KAAK,CAAC,IACNC,OAAO,GACPC,MAAM,CAAC,CAACC,OAAO1B,MAAMD;QACpB,MAAM4B,gBAAgBxC,SAASmB,OAAO,CAACN;QACvC,IAAI2B,kBAAkB,CAAC,GAAG;YACxB,MAAM7C,YAAY,8BAA8BkB;QAClD;QACA,OAAQ0B,SAASC,gBAAgBpC,KAAKC,GAAG,CAACJ,cAAcW;IAC1D,GAAG;IACL,IAAIuB,OAAOhC,UAAU;QACnB,MAAMR,YAAY;IACpB;IACA,OAAO;QAAE8C,WAAWN;QAAMO,QAAQR,GAAGS,SAAS,CAACrC;IAAU;AAC3D;AAEA,SAASsC;IACP,OAAO;QACL,MAAMC,SAAS,IAAIC,WAAW;QAC9BpD,gBAAgBmD;QAChB,OAAOA,MAAM,CAAC,EAAE,GAAG;IACrB;AACF;AAEA;;CAEC,GACD,OAAO,SAASE,WAAW,EACzBC,YAAY,IAAI,EAChBN,SAASE,YAAY,EACrBlB,MAAMuB,KAAKvB,GAAG,EACqD,GAAG,CAAC,CAAC;IACxE,IAAI,CAACsB,WAAW;QACd,OAAO,SAASE,KAAKC,QAAiB;YACpCA,aAAazB;YACb,OAAOD,WAAW0B,UAAU7C,YAAY0B,aAAazB,YAAYmC;QACnE;IACF;IAEA,IAAIU,WAAmB;IACvB,IAAIC;IACJ,OAAO,SAASH,KAAKC,QAAiB;QACpCA,aAAazB;QACb,IAAIyB,YAAYC,YAAYC,YAAY;YACtC,MAAMC,oBAAqBD,aAAatC,gBAAgBsC;YACxD,OAAO5B,WAAW2B,UAAU9C,YAAYgD;QAC1C;QACAF,WAAWD;QACX,MAAMI,YAAaF,aAAarB,aAAazB,YAAYmC;QACzD,OAAOjB,WAAW0B,UAAU7C,YAAYiD;IAC1C;AACF;AAEA;;CAEC,GACD,OAAO,IAAIL,OAAa,CAAC,GAAGM;IAC1B,IAAIC,OAAO;QACT,OAAOA,SAASD;IAClB;IACA,0BAA0B;IAC1BC,QAAQV;IACRG,OAAOO;IACP,OAAOA,SAASD;AAClB,EAAE;AACF,IAAIC"}
|