@loaders.gl/crypto 4.0.0-alpha.9 → 4.0.0-beta.2
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/crypto-worker-node.js +1 -1
- package/dist/crypto-worker-node.js.map +2 -2
- package/dist/crypto-worker.js +1 -1
- package/dist/crypto-worker.js.map +2 -2
- package/dist/dist.min.js +1 -1
- package/dist/dist.min.js.map +2 -2
- package/dist/es5/index.js +24 -5
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/lib/algorithms/md5-wasm.js +3 -3
- package/dist/es5/lib/algorithms/md5-wasm.js.map +1 -1
- package/dist/es5/lib/crc32-hash.js +11 -13
- package/dist/es5/lib/crc32-hash.js.map +1 -1
- package/dist/es5/lib/crc32c-hash.js +11 -13
- package/dist/es5/lib/crc32c-hash.js.map +1 -1
- package/dist/es5/lib/crypto-hash.js +12 -9
- package/dist/es5/lib/crypto-hash.js.map +1 -1
- package/dist/es5/lib/hash.js +2 -1
- package/dist/es5/lib/hash.js.map +1 -1
- package/dist/es5/lib/md5-hash.js +3 -3
- package/dist/es5/lib/md5-hash.js.map +1 -1
- package/dist/es5/lib/node-hash.js +20 -12
- package/dist/es5/lib/node-hash.js.map +1 -1
- package/dist/es5/lib/utils/base64-utils.js +41 -2
- package/dist/es5/lib/utils/base64-utils.js.map +1 -1
- package/dist/es5/lib/utils/digest-utils.js +45 -7
- package/dist/es5/lib/utils/digest-utils.js.map +1 -1
- package/dist/es5/workers/worker.js +6 -4
- package/dist/es5/workers/worker.js.map +1 -1
- package/dist/esm/index.js +3 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/algorithms/md5-wasm.js +3 -3
- package/dist/esm/lib/algorithms/md5-wasm.js.map +1 -1
- package/dist/esm/lib/crc32-hash.js +24 -19
- package/dist/esm/lib/crc32-hash.js.map +1 -1
- package/dist/esm/lib/crc32c-hash.js +24 -19
- package/dist/esm/lib/crc32c-hash.js.map +1 -1
- package/dist/esm/lib/crypto-hash.js +23 -13
- package/dist/esm/lib/crypto-hash.js.map +1 -1
- package/dist/esm/lib/hash.js +19 -11
- package/dist/esm/lib/hash.js.map +1 -1
- package/dist/esm/lib/md5-hash.js +3 -3
- package/dist/esm/lib/md5-hash.js.map +1 -1
- package/dist/esm/lib/node-hash.js +29 -15
- package/dist/esm/lib/node-hash.js.map +1 -1
- package/dist/esm/lib/utils/base64-utils.js +39 -1
- package/dist/esm/lib/utils/base64-utils.js.map +1 -1
- package/dist/esm/lib/utils/digest-utils.js +39 -6
- package/dist/esm/lib/utils/digest-utils.js.map +1 -1
- package/dist/esm/workers/worker.js +5 -4
- package/dist/esm/workers/worker.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/lib/crc32-hash.d.ts +3 -3
- package/dist/lib/crc32-hash.d.ts.map +1 -1
- package/dist/lib/crc32c-hash.d.ts +3 -3
- package/dist/lib/crc32c-hash.d.ts.map +1 -1
- package/dist/lib/crypto-hash.d.ts +2 -2
- package/dist/lib/crypto-hash.d.ts.map +1 -1
- package/dist/lib/hash.d.ts +2 -2
- package/dist/lib/hash.d.ts.map +1 -1
- package/dist/lib/md5-hash.d.ts +1 -1
- package/dist/lib/md5-hash.d.ts.map +1 -1
- package/dist/lib/node-hash.d.ts +2 -2
- package/dist/lib/node-hash.d.ts.map +1 -1
- package/dist/lib/utils/base64-utils.d.ts +8 -1
- package/dist/lib/utils/base64-utils.d.ts.map +1 -1
- package/dist/lib/utils/digest-utils.d.ts +6 -6
- package/dist/lib/utils/digest-utils.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/index.ts +10 -7
- package/src/lib/algorithms/md5-wasm.ts +4 -3
- package/src/lib/crc32-hash.ts +10 -12
- package/src/lib/crc32c-hash.ts +10 -12
- package/src/lib/crypto-hash.ts +10 -5
- package/src/lib/hash.ts +4 -3
- package/src/lib/md5-hash.ts +3 -3
- package/src/lib/node-hash.ts +14 -6
- package/src/lib/utils/base64-utils.ts +97 -1
- package/src/lib/utils/digest-utils.ts +57 -8
- package/src/workers/worker.ts +4 -4
- package/dist/bundle.js +0 -5
- package/dist/index.js +0 -47
- package/dist/lib/algorithms/crc32.js +0 -30
- package/dist/lib/algorithms/crc32c.js +0 -38
- package/dist/lib/algorithms/md5-wasm.js +0 -435
- package/dist/lib/crc32-hash.js +0 -47
- package/dist/lib/crc32c-hash.js +0 -51
- package/dist/lib/crypto-hash.js +0 -61
- package/dist/lib/hash.js +0 -29
- package/dist/lib/md5-hash.js +0 -32
- package/dist/lib/node-hash.js +0 -42
- package/dist/lib/sha256-hash.js +0 -14
- package/dist/lib/utils/base64-utils.js +0 -67
- package/dist/lib/utils/digest-utils.js +0 -27
- package/dist/types.js +0 -2
- package/dist/workers/worker.js +0 -23
|
@@ -84,8 +84,8 @@ var CryptoHash = function (_Hash) {
|
|
|
84
84
|
}, {
|
|
85
85
|
key: "hash",
|
|
86
86
|
value: function () {
|
|
87
|
-
var _hash = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(input) {
|
|
88
|
-
var typedWordArray;
|
|
87
|
+
var _hash = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(input, encoding) {
|
|
88
|
+
var typedWordArray, enc;
|
|
89
89
|
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
90
90
|
while (1) switch (_context2.prev = _context2.next) {
|
|
91
91
|
case 0:
|
|
@@ -93,14 +93,15 @@ var CryptoHash = function (_Hash) {
|
|
|
93
93
|
return this.preload();
|
|
94
94
|
case 2:
|
|
95
95
|
typedWordArray = CryptoJS.lib.WordArray.create(input);
|
|
96
|
-
|
|
97
|
-
|
|
96
|
+
enc = encoding === 'base64' ? CryptoJS.enc.Base64 : CryptoJS.enc.Hex;
|
|
97
|
+
return _context2.abrupt("return", this._hash.update(typedWordArray).finalize().toString(enc));
|
|
98
|
+
case 5:
|
|
98
99
|
case "end":
|
|
99
100
|
return _context2.stop();
|
|
100
101
|
}
|
|
101
102
|
}, _callee2, this);
|
|
102
103
|
}));
|
|
103
|
-
function hash(_x) {
|
|
104
|
+
function hash(_x, _x2) {
|
|
104
105
|
return _hash.apply(this, arguments);
|
|
105
106
|
}
|
|
106
107
|
return hash;
|
|
@@ -109,9 +110,10 @@ var CryptoHash = function (_Hash) {
|
|
|
109
110
|
key: "hashBatches",
|
|
110
111
|
value: function hashBatches(asyncIterator) {
|
|
111
112
|
var _this = this;
|
|
113
|
+
var encoding = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'base64';
|
|
112
114
|
return (0, _wrapAsyncGenerator2.default)(_regenerator.default.mark(function _callee3() {
|
|
113
115
|
var _this$options2, _this$options2$crypto, _this$options2$crypto2;
|
|
114
|
-
var _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, chunk, typedWordArray,
|
|
116
|
+
var _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, chunk, typedWordArray, enc, digest;
|
|
115
117
|
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
116
118
|
while (1) switch (_context3.prev = _context3.next) {
|
|
117
119
|
case 0:
|
|
@@ -168,11 +170,12 @@ var CryptoHash = function (_Hash) {
|
|
|
168
170
|
case 32:
|
|
169
171
|
return _context3.finish(23);
|
|
170
172
|
case 33:
|
|
171
|
-
|
|
173
|
+
enc = encoding === 'base64' ? CryptoJS.enc.Base64 : CryptoJS.enc.Hex;
|
|
174
|
+
digest = _this._hash.finalize().toString(enc);
|
|
172
175
|
(_this$options2 = _this.options) === null || _this$options2 === void 0 ? void 0 : (_this$options2$crypto = _this$options2.crypto) === null || _this$options2$crypto === void 0 ? void 0 : (_this$options2$crypto2 = _this$options2$crypto.onEnd) === null || _this$options2$crypto2 === void 0 ? void 0 : _this$options2$crypto2.call(_this$options2$crypto, {
|
|
173
|
-
hash:
|
|
176
|
+
hash: digest
|
|
174
177
|
});
|
|
175
|
-
case
|
|
178
|
+
case 36:
|
|
176
179
|
case "end":
|
|
177
180
|
return _context3.stop();
|
|
178
181
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crypto-hash.js","names":["_hash2","require","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","Reflect","construct","arguments","apply","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","_asyncIterator","iterable","method","async","sync","retry","Symbol","asyncIterator","iterator","AsyncFromSyncIterator","TypeError","s","AsyncFromSyncIteratorContinuation","r","Object","Promise","reject","done","resolve","value","then","n","next","return","_return","ret","throw","_throw","thr","CryptoJS","CryptoHash","_Hash","_inherits2","_super","options","_this2$options","_this2$options$crypto","_this2","_classCallCheck2","_defineProperty2","_assertThisInitialized2","_algorithm","crypto","algorithm","Error","name","toLowerCase","_createClass2","key","_preload","_asyncToGenerator2","_regenerator","mark","_callee","_this$options","_this$options$modules","algo","wrap","_callee$","_context","prev","modules","_hash","create","stop","preload","_callee2","input","typedWordArray","_callee2$","_context2","lib","WordArray","abrupt","update","finalize","toString","enc","Base64","hash","_x","hashBatches","_this","_wrapAsyncGenerator2","_callee3","_this$options2","_this$options2$crypto","_this$options2$crypto2","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_iterator","_step","chunk","_callee3$","_context3","_awaitAsyncGenerator2","sent","t0","finish","onEnd","Hash","exports"],"sources":["../../../src/lib/crypto-hash.ts"],"sourcesContent":["// This dependency is too big, application must provide it\nimport type * as CryptoJSNamespace from 'crypto-js';\nimport {Hash} from './hash';\n\ntype CryptoHashOptions = {\n modules: {[moduleName: string]: any};\n crypto: {\n algorithm: string;\n onEnd?: (result: {hash: string}) => any;\n };\n};\n\nlet CryptoJS: typeof CryptoJSNamespace;\n\n/**\n * A transform that calculates Cryptographic Hash using Crypto JS library\n * @deprecated Warning, experimental class\n */\nexport class CryptoHash extends Hash {\n readonly name;\n\n options: CryptoHashOptions;\n private _algorithm;\n private _hash;\n\n constructor(options: CryptoHashOptions) {\n super();\n this.options = options;\n this._algorithm = this.options?.crypto?.algorithm;\n if (!this._algorithm) {\n throw new Error(this.name);\n }\n this.name = this._algorithm.toLowerCase();\n }\n\n async preload(): Promise<void> {\n if (!CryptoJS) {\n CryptoJS = this.options?.modules?.CryptoJS;\n if (!CryptoJS) {\n throw new Error(this.name);\n }\n }\n if (!this._hash) {\n const algo = CryptoJS.algo[this._algorithm];\n this._hash = algo.create();\n }\n if (!this._hash) {\n throw new Error(this.name);\n }\n }\n\n /**\n * Atomic hash calculation\n * @returns base64 encoded hash\n */\n async hash(input: ArrayBuffer): Promise<string> {\n await this.preload();\n // arrayBuffer is accepted, even though types and docs say no\n // https://stackoverflow.com/questions/25567468/how-to-decrypt-an-arraybuffer\n // @ts-expect-error\n const typedWordArray = CryptoJS.lib.WordArray.create(input);\n return this._hash.update(typedWordArray).finalize().toString(CryptoJS.enc.Base64);\n }\n\n async *hashBatches(\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>\n ): AsyncIterable<ArrayBuffer> {\n await this.preload();\n for await (const chunk of asyncIterator) {\n // arrayBuffer is accepted, even though types and docs say no\n // https://stackoverflow.com/questions/25567468/how-to-decrypt-an-arraybuffer\n // @ts-expect-error\n const typedWordArray = CryptoJS.lib.WordArray.create(chunk);\n this._hash.update(typedWordArray);\n yield chunk;\n }\n const hash = this._hash.finalize().toString(CryptoJS.enc.Base64);\n this.options?.crypto?.onEnd?.({hash});\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"crypto-hash.js","names":["_hash2","require","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","Reflect","construct","arguments","apply","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","_asyncIterator","iterable","method","async","sync","retry","Symbol","asyncIterator","iterator","AsyncFromSyncIterator","TypeError","s","AsyncFromSyncIteratorContinuation","r","Object","Promise","reject","done","resolve","value","then","n","next","return","_return","ret","throw","_throw","thr","CryptoJS","CryptoHash","_Hash","_inherits2","_super","options","_this2$options","_this2$options$crypto","_this2","_classCallCheck2","_defineProperty2","_assertThisInitialized2","_algorithm","crypto","algorithm","Error","name","toLowerCase","_createClass2","key","_preload","_asyncToGenerator2","_regenerator","mark","_callee","_this$options","_this$options$modules","algo","wrap","_callee$","_context","prev","modules","_hash","create","stop","preload","_callee2","input","encoding","typedWordArray","enc","_callee2$","_context2","lib","WordArray","Base64","Hex","abrupt","update","finalize","toString","hash","_x","_x2","hashBatches","_this","length","undefined","_wrapAsyncGenerator2","_callee3","_this$options2","_this$options2$crypto","_this$options2$crypto2","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_iterator","_step","chunk","digest","_callee3$","_context3","_awaitAsyncGenerator2","sent","t0","finish","onEnd","Hash","exports"],"sources":["../../../src/lib/crypto-hash.ts"],"sourcesContent":["// This dependency is too big, application must provide it\nimport type * as CryptoJSNamespace from 'crypto-js';\nimport {Hash} from './hash';\n\ntype CryptoHashOptions = {\n modules: {[moduleName: string]: any};\n crypto: {\n algorithm: string;\n onEnd?: (result: {hash: string}) => any;\n };\n};\n\nlet CryptoJS: typeof CryptoJSNamespace;\n\n/**\n * A transform that calculates Cryptographic Hash using Crypto JS library\n * @deprecated Warning, experimental class\n */\nexport class CryptoHash extends Hash {\n readonly name;\n\n options: CryptoHashOptions;\n private _algorithm;\n private _hash;\n\n constructor(options: CryptoHashOptions) {\n super();\n this.options = options;\n this._algorithm = this.options?.crypto?.algorithm;\n if (!this._algorithm) {\n throw new Error(this.name);\n }\n this.name = this._algorithm.toLowerCase();\n }\n\n async preload(): Promise<void> {\n if (!CryptoJS) {\n CryptoJS = this.options?.modules?.CryptoJS;\n if (!CryptoJS) {\n throw new Error(this.name);\n }\n }\n if (!this._hash) {\n const algo = CryptoJS.algo[this._algorithm];\n this._hash = algo.create();\n }\n if (!this._hash) {\n throw new Error(this.name);\n }\n }\n\n /**\n * Atomic hash calculation\n * @returns base64 encoded hash\n */\n async hash(input: ArrayBuffer, encoding: 'hex' | 'base64'): Promise<string> {\n await this.preload();\n // arrayBuffer is accepted, even though types and docs say no\n // https://stackoverflow.com/questions/25567468/how-to-decrypt-an-arraybuffer\n // @ts-expect-error\n const typedWordArray = CryptoJS.lib.WordArray.create(input);\n // Map our encoding constant to Crypto library\n const enc = encoding === 'base64' ? CryptoJS.enc.Base64 : CryptoJS.enc.Hex;\n return this._hash.update(typedWordArray).finalize().toString(enc);\n }\n\n async *hashBatches(\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>,\n encoding: 'hex' | 'base64' = 'base64'\n ): AsyncIterable<ArrayBuffer> {\n await this.preload();\n for await (const chunk of asyncIterator) {\n // arrayBuffer is accepted, even though types and docs say no\n // https://stackoverflow.com/questions/25567468/how-to-decrypt-an-arraybuffer\n // @ts-expect-error\n const typedWordArray = CryptoJS.lib.WordArray.create(chunk);\n this._hash.update(typedWordArray);\n yield chunk;\n }\n // Map our encoding constant to Crypto library\n const enc = encoding === 'base64' ? CryptoJS.enc.Base64 : CryptoJS.enc.Hex;\n const digest = this._hash.finalize().toString(enc);\n this.options?.crypto?.onEnd?.({hash: digest});\n }\n}\n"],"mappings":"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"}
|
package/dist/es5/lib/hash.js
CHANGED
|
@@ -46,6 +46,7 @@ var Hash = function () {
|
|
|
46
46
|
key: "hashBatches",
|
|
47
47
|
value: function hashBatches(asyncIterator) {
|
|
48
48
|
var _this = this;
|
|
49
|
+
var encoding = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'base64';
|
|
49
50
|
return (0, _wrapAsyncGenerator2.default)(_regenerator.default.mark(function _callee2() {
|
|
50
51
|
var _this$options$crypto, _this$options$crypto$;
|
|
51
52
|
var arrayBuffers, _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, _arrayBuffer, output, hash;
|
|
@@ -107,7 +108,7 @@ var Hash = function () {
|
|
|
107
108
|
case 33:
|
|
108
109
|
output = _context2.sent;
|
|
109
110
|
_context2.next = 36;
|
|
110
|
-
return (0, _awaitAsyncGenerator2.default)(_this.hash(output));
|
|
111
|
+
return (0, _awaitAsyncGenerator2.default)(_this.hash(output, encoding));
|
|
111
112
|
case 36:
|
|
112
113
|
hash = _context2.sent;
|
|
113
114
|
(_this$options$crypto = _this.options.crypto) === null || _this$options$crypto === void 0 ? void 0 : (_this$options$crypto$ = _this$options$crypto.onEnd) === null || _this$options$crypto$ === void 0 ? void 0 : _this$options$crypto$.call(_this$options$crypto, {
|
package/dist/es5/lib/hash.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hash.js","names":["_loaderUtils","require","_asyncIterator","iterable","method","async","sync","retry","Symbol","asyncIterator","iterator","call","AsyncFromSyncIterator","TypeError","s","AsyncFromSyncIteratorContinuation","r","Object","Promise","reject","done","resolve","value","then","n","next","prototype","apply","arguments","return","_return","ret","throw","_throw","thr","Hash","options","length","undefined","_classCallCheck2","default","_defineProperty2","hashBatches","bind","_createClass2","key","_preload","_asyncToGenerator2","_regenerator","mark","_callee","wrap","_callee$","_context","prev","abrupt","stop","preload","_this","_wrapAsyncGenerator2","_callee2","_this$options$crypto","_this$options$crypto$","arrayBuffers","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_iterator","_step","_arrayBuffer","output","hash","_callee2$","_context2","_awaitAsyncGenerator2","sent","arrayBuffer","push","t0","finish","concatenate","crypto","onEnd","_concatenate","_callee3","_callee3$","_context3","concatenateArrayBuffersAsync","_x","exports"],"sources":["../../../src/lib/hash.ts"],"sourcesContent":["// Hash\nimport {concatenateArrayBuffersAsync} from '@loaders.gl/loader-utils';\n\ntype HashOptions = {\n modules?: {[moduleName: string]: any};\n crypto?: {\n onEnd?: (result: {hash: string}) => any;\n };\n};\n\n/** Abstract hash base class */\nexport abstract class Hash {\n abstract readonly name: string;\n abstract readonly options: HashOptions;\n\n constructor(options: HashOptions = {}) {\n this.hashBatches = this.hashBatches.bind(this);\n }\n\n async preload(): Promise<void> {\n return;\n }\n\n abstract hash(arrayBuffer: ArrayBuffer): Promise<string>;\n\n async *hashBatches(\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer
|
|
1
|
+
{"version":3,"file":"hash.js","names":["_loaderUtils","require","_asyncIterator","iterable","method","async","sync","retry","Symbol","asyncIterator","iterator","call","AsyncFromSyncIterator","TypeError","s","AsyncFromSyncIteratorContinuation","r","Object","Promise","reject","done","resolve","value","then","n","next","prototype","apply","arguments","return","_return","ret","throw","_throw","thr","Hash","options","length","undefined","_classCallCheck2","default","_defineProperty2","hashBatches","bind","_createClass2","key","_preload","_asyncToGenerator2","_regenerator","mark","_callee","wrap","_callee$","_context","prev","abrupt","stop","preload","_this","encoding","_wrapAsyncGenerator2","_callee2","_this$options$crypto","_this$options$crypto$","arrayBuffers","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_iterator","_step","_arrayBuffer","output","hash","_callee2$","_context2","_awaitAsyncGenerator2","sent","arrayBuffer","push","t0","finish","concatenate","crypto","onEnd","_concatenate","_callee3","_callee3$","_context3","concatenateArrayBuffersAsync","_x","exports"],"sources":["../../../src/lib/hash.ts"],"sourcesContent":["// Hash\nimport {concatenateArrayBuffersAsync} from '@loaders.gl/loader-utils';\n\ntype HashOptions = {\n modules?: {[moduleName: string]: any};\n crypto?: {\n onEnd?: (result: {hash: string}) => any;\n };\n};\n\n/** Abstract hash base class */\nexport abstract class Hash {\n abstract readonly name: string;\n abstract readonly options: HashOptions;\n\n constructor(options: HashOptions = {}) {\n this.hashBatches = this.hashBatches.bind(this);\n }\n\n async preload(): Promise<void> {\n return;\n }\n\n abstract hash(arrayBuffer: ArrayBuffer, encoding: 'hex' | 'base64'): Promise<string>;\n\n async *hashBatches(\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>,\n encoding: 'hex' | 'base64' = 'base64'\n ): AsyncIterable<ArrayBuffer> {\n const arrayBuffers: ArrayBuffer[] = [];\n for await (const arrayBuffer of asyncIterator) {\n arrayBuffers.push(arrayBuffer);\n yield arrayBuffer;\n }\n const output = await this.concatenate(arrayBuffers);\n const hash = await this.hash(output, encoding);\n this.options.crypto?.onEnd?.({hash});\n }\n\n // HELPERS\n\n protected async concatenate(asyncIterator): Promise<ArrayBuffer> {\n return await concatenateArrayBuffersAsync(asyncIterator);\n }\n}\n"],"mappings":"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"}
|
package/dist/es5/lib/md5-hash.js
CHANGED
|
@@ -35,7 +35,7 @@ var MD5Hash = function (_Hash) {
|
|
|
35
35
|
(0, _createClass2.default)(MD5Hash, [{
|
|
36
36
|
key: "hash",
|
|
37
37
|
value: function () {
|
|
38
|
-
var _hash = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(input) {
|
|
38
|
+
var _hash = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(input, encoding) {
|
|
39
39
|
var md5Promise, hex;
|
|
40
40
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
41
41
|
while (1) switch (_context.prev = _context.next) {
|
|
@@ -47,14 +47,14 @@ var MD5Hash = function (_Hash) {
|
|
|
47
47
|
return md5Promise;
|
|
48
48
|
case 3:
|
|
49
49
|
hex = _context.sent;
|
|
50
|
-
return _context.abrupt("return", (0, _digestUtils.
|
|
50
|
+
return _context.abrupt("return", (0, _digestUtils.encodeHex)(hex, encoding));
|
|
51
51
|
case 5:
|
|
52
52
|
case "end":
|
|
53
53
|
return _context.stop();
|
|
54
54
|
}
|
|
55
55
|
}, _callee);
|
|
56
56
|
}));
|
|
57
|
-
function hash(_x) {
|
|
57
|
+
function hash(_x, _x2) {
|
|
58
58
|
return _hash.apply(this, arguments);
|
|
59
59
|
}
|
|
60
60
|
return hash;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"md5-hash.js","names":["_hash2","require","_md5Wasm","_interopRequireDefault","_digestUtils","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","Reflect","construct","arguments","apply","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","MD5Hash","_Hash","_inherits2","_super","_this","options","length","undefined","_classCallCheck2","_defineProperty2","_assertThisInitialized2","_createClass2","key","value","_hash","_asyncToGenerator2","_regenerator","mark","_callee","input","md5Promise","hex","wrap","_callee$","_context","prev","next","Promise","resolve","reject","md5WASM","then","catch","sent","abrupt","
|
|
1
|
+
{"version":3,"file":"md5-hash.js","names":["_hash2","require","_md5Wasm","_interopRequireDefault","_digestUtils","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","Reflect","construct","arguments","apply","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","MD5Hash","_Hash","_inherits2","_super","_this","options","length","undefined","_classCallCheck2","_defineProperty2","_assertThisInitialized2","_createClass2","key","value","_hash","_asyncToGenerator2","_regenerator","mark","_callee","input","encoding","md5Promise","hex","wrap","_callee$","_context","prev","next","Promise","resolve","reject","md5WASM","then","catch","sent","abrupt","encodeHex","stop","hash","_x","_x2","Hash","exports"],"sources":["../../../src/lib/md5-hash.ts"],"sourcesContent":["// Fork of https://github.com/briantbutton/md5-wasm under MIT license\nimport {Hash} from './hash';\nimport md5WASM from './algorithms/md5-wasm';\nimport {encodeHex} from './utils/digest-utils';\n\n/**\n * A transform that calculates MD5 hashes, passing data through\n */\nexport class MD5Hash extends Hash {\n readonly name = 'md5';\n readonly options;\n\n constructor(options = {}) {\n super();\n this.options = options;\n }\n\n /**\n * Atomic hash calculation\n * @returns base64 encoded hash\n */\n async hash(input: ArrayBuffer, encoding: 'hex' | 'base64'): Promise<string> {\n const md5Promise = new Promise<string>((resolve, reject) =>\n // @ts-expect-error\n md5WASM(input).then(resolve).catch(reject)\n );\n const hex = await md5Promise;\n return encodeHex(hex, encoding);\n }\n}\n"],"mappings":"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"}
|
|
@@ -16,7 +16,7 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/ge
|
|
|
16
16
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
17
17
|
var _awaitAsyncGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/awaitAsyncGenerator"));
|
|
18
18
|
var _wrapAsyncGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapAsyncGenerator"));
|
|
19
|
-
var
|
|
19
|
+
var _hash3 = require("./hash");
|
|
20
20
|
var _crypto = require("crypto");
|
|
21
21
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
22
22
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
@@ -43,25 +43,31 @@ var NodeHash = function (_Hash) {
|
|
|
43
43
|
(0, _createClass2.default)(NodeHash, [{
|
|
44
44
|
key: "hash",
|
|
45
45
|
value: function () {
|
|
46
|
-
var _hash = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(input) {
|
|
46
|
+
var _hash = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(input, encoding) {
|
|
47
47
|
var _this$options, _this$options$crypto, _this$options$crypto$;
|
|
48
|
-
var
|
|
48
|
+
var algorithm, _hash2, inputArray;
|
|
49
49
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
50
50
|
while (1) switch (_context.prev = _context.next) {
|
|
51
51
|
case 0:
|
|
52
52
|
_context.next = 2;
|
|
53
53
|
return this.preload();
|
|
54
54
|
case 2:
|
|
55
|
-
|
|
55
|
+
algorithm = (_this$options = this.options) === null || _this$options === void 0 ? void 0 : (_this$options$crypto = _this$options.crypto) === null || _this$options$crypto === void 0 ? void 0 : (_this$options$crypto$ = _this$options$crypto.algorithm) === null || _this$options$crypto$ === void 0 ? void 0 : _this$options$crypto$.toLowerCase();
|
|
56
|
+
_context.prev = 3;
|
|
57
|
+
_hash2 = (0, _crypto.createHash)(algorithm);
|
|
56
58
|
inputArray = new Uint8Array(input);
|
|
57
|
-
return _context.abrupt("return",
|
|
58
|
-
case
|
|
59
|
+
return _context.abrupt("return", _hash2.update(inputArray).digest('base64'));
|
|
60
|
+
case 9:
|
|
61
|
+
_context.prev = 9;
|
|
62
|
+
_context.t0 = _context["catch"](3);
|
|
63
|
+
throw Error("".concat(algorithm, " hash not available. ").concat(_context.t0));
|
|
64
|
+
case 12:
|
|
59
65
|
case "end":
|
|
60
66
|
return _context.stop();
|
|
61
67
|
}
|
|
62
|
-
}, _callee, this);
|
|
68
|
+
}, _callee, this, [[3, 9]]);
|
|
63
69
|
}));
|
|
64
|
-
function hash(_x) {
|
|
70
|
+
function hash(_x, _x2) {
|
|
65
71
|
return _hash.apply(this, arguments);
|
|
66
72
|
}
|
|
67
73
|
return hash;
|
|
@@ -70,9 +76,10 @@ var NodeHash = function (_Hash) {
|
|
|
70
76
|
key: "hashBatches",
|
|
71
77
|
value: function hashBatches(asyncIterator) {
|
|
72
78
|
var _this = this;
|
|
79
|
+
var encoding = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'base64';
|
|
73
80
|
return (0, _wrapAsyncGenerator2.default)(_regenerator.default.mark(function _callee2() {
|
|
74
81
|
var _this$options2, _this$options2$crypto, _this$options2$crypto2, _this$options3, _this$options3$crypto, _this$options3$crypto2;
|
|
75
|
-
var hash, _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, chunk, inputArray;
|
|
82
|
+
var hash, _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, chunk, inputArray, digest;
|
|
76
83
|
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
77
84
|
while (1) switch (_context2.prev = _context2.next) {
|
|
78
85
|
case 0:
|
|
@@ -130,10 +137,11 @@ var NodeHash = function (_Hash) {
|
|
|
130
137
|
case 33:
|
|
131
138
|
return _context2.finish(24);
|
|
132
139
|
case 34:
|
|
140
|
+
digest = hash.digest(encoding);
|
|
133
141
|
(_this$options3 = _this.options) === null || _this$options3 === void 0 ? void 0 : (_this$options3$crypto = _this$options3.crypto) === null || _this$options3$crypto === void 0 ? void 0 : (_this$options3$crypto2 = _this$options3$crypto.onEnd) === null || _this$options3$crypto2 === void 0 ? void 0 : _this$options3$crypto2.call(_this$options3$crypto, {
|
|
134
|
-
hash:
|
|
142
|
+
hash: digest
|
|
135
143
|
});
|
|
136
|
-
case
|
|
144
|
+
case 36:
|
|
137
145
|
case "end":
|
|
138
146
|
return _context2.stop();
|
|
139
147
|
}
|
|
@@ -142,6 +150,6 @@ var NodeHash = function (_Hash) {
|
|
|
142
150
|
}
|
|
143
151
|
}]);
|
|
144
152
|
return NodeHash;
|
|
145
|
-
}(
|
|
153
|
+
}(_hash3.Hash);
|
|
146
154
|
exports.NodeHash = NodeHash;
|
|
147
155
|
//# sourceMappingURL=node-hash.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-hash.js","names":["
|
|
1
|
+
{"version":3,"file":"node-hash.js","names":["_hash3","require","_crypto","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","Reflect","construct","arguments","apply","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","_asyncIterator","iterable","method","async","sync","retry","Symbol","asyncIterator","iterator","AsyncFromSyncIterator","TypeError","s","AsyncFromSyncIteratorContinuation","r","Object","Promise","reject","done","resolve","value","then","n","next","return","_return","ret","throw","_throw","thr","NodeHash","_Hash","_inherits2","_super","options","_this2$options","_this2$options$crypto","_this2","_classCallCheck2","_defineProperty2","_assertThisInitialized2","crypto","algorithm","Error","name","_createClass2","key","_hash","_asyncToGenerator2","_regenerator","mark","_callee","input","encoding","_this$options","_this$options$crypto","_this$options$crypto$","_hash2","inputArray","wrap","_callee$","_context","prev","preload","toLowerCase","hash","createHash","Uint8Array","abrupt","update","digest","t0","concat","stop","_x","_x2","hashBatches","_this","length","undefined","_wrapAsyncGenerator2","_callee2","_this$options2","_this$options2$crypto","_this$options2$crypto2","_this$options3","_this$options3$crypto","_this$options3$crypto2","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_iterator","_step","chunk","_callee2$","_context2","_awaitAsyncGenerator2","sent","finish","onEnd","Hash","exports"],"sources":["../../../src/lib/node-hash.ts"],"sourcesContent":["// This dependency is too big, application must provide it\nimport {Hash} from './hash';\nimport {createHash} from 'crypto'; // Node.js builtin\n\ntype CryptoHashOptions = {\n crypto: {\n algorithm: string;\n onEnd?: (result: {hash: string}) => any;\n };\n};\n\n/**\n * Calculates Cryptographic Hash using Node.js crypto library\n * @deprecated Warning, experimental class\n */\nexport class NodeHash extends Hash {\n readonly name = 'crypto-node';\n\n options: CryptoHashOptions;\n // @ts-ignore\n private _algorithm;\n // @ts-ignore\n private _hash;\n\n constructor(options: CryptoHashOptions) {\n super();\n this.options = options;\n if (!this.options?.crypto?.algorithm) {\n throw new Error(this.name);\n }\n }\n\n /**\n * Atomic hash calculation\n * @returns base64 encoded hash\n */\n async hash(input: ArrayBuffer, encoding: 'hex' | 'base64'): Promise<string> {\n await this.preload();\n const algorithm = this.options?.crypto?.algorithm?.toLowerCase();\n try {\n const hash = createHash(algorithm);\n const inputArray = new Uint8Array(input);\n return hash.update(inputArray).digest('base64');\n } catch (error) {\n throw Error(`${algorithm} hash not available. ${error}`);\n }\n }\n\n async *hashBatches(\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>,\n encoding: 'hex' | 'base64' = 'base64'\n ): AsyncIterable<ArrayBuffer> {\n await this.preload();\n const hash = createHash(this.options?.crypto?.algorithm?.toLowerCase());\n for await (const chunk of asyncIterator) {\n // https://stackoverflow.com/questions/25567468/how-to-decrypt-an-arraybuffer\n const inputArray = new Uint8Array(chunk);\n hash.update(inputArray);\n yield chunk;\n }\n // We can pass our encoding constant directly to Node.js digest as it already supports `hex` and `base64`\n const digest = hash.digest(encoding);\n this.options?.crypto?.onEnd?.({hash: digest});\n }\n}\n"],"mappings":"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"}
|
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
7
|
-
|
|
6
|
+
exports.asciiToBase64 = asciiToBase64;
|
|
7
|
+
exports.base64ToAscii = base64ToAscii;
|
|
8
|
+
function asciiToBase64(string) {
|
|
8
9
|
string = "".concat(string);
|
|
9
10
|
for (var i = 0; i < string.length; i++) {
|
|
10
11
|
if (string.charCodeAt(i) > 255) {
|
|
@@ -34,6 +35,44 @@ function toBase64(string) {
|
|
|
34
35
|
}
|
|
35
36
|
return out;
|
|
36
37
|
}
|
|
38
|
+
function base64ToAscii(data) {
|
|
39
|
+
data = "".concat(data);
|
|
40
|
+
data = data.replace(/[ \t\n\f\r]/g, '');
|
|
41
|
+
if (data.length % 4 === 0) {
|
|
42
|
+
data = data.replace(/[=]=?$/, '');
|
|
43
|
+
}
|
|
44
|
+
if (data.length % 4 === 1 || /[^+/0-9A-Za-z]/.test(data)) {
|
|
45
|
+
return '';
|
|
46
|
+
}
|
|
47
|
+
var output = '';
|
|
48
|
+
var buffer = 0;
|
|
49
|
+
var accumulatedBits = 0;
|
|
50
|
+
for (var i = 0; i < data.length; i++) {
|
|
51
|
+
buffer <<= 6;
|
|
52
|
+
buffer |= atobLookup(data[i]);
|
|
53
|
+
accumulatedBits += 6;
|
|
54
|
+
if (accumulatedBits === 24) {
|
|
55
|
+
output += String.fromCharCode((buffer & 0xff0000) >> 16);
|
|
56
|
+
output += String.fromCharCode((buffer & 0xff00) >> 8);
|
|
57
|
+
output += String.fromCharCode(buffer & 0xff);
|
|
58
|
+
buffer = accumulatedBits = 0;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
if (accumulatedBits === 12) {
|
|
62
|
+
buffer >>= 4;
|
|
63
|
+
output += String.fromCharCode(buffer);
|
|
64
|
+
} else if (accumulatedBits === 18) {
|
|
65
|
+
buffer >>= 2;
|
|
66
|
+
output += String.fromCharCode((buffer & 0xff00) >> 8);
|
|
67
|
+
output += String.fromCharCode(buffer & 0xff);
|
|
68
|
+
}
|
|
69
|
+
return output;
|
|
70
|
+
}
|
|
71
|
+
var keystr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
|
|
72
|
+
function atobLookup(chr) {
|
|
73
|
+
var index = keystr.indexOf(chr);
|
|
74
|
+
return index < 0 ? undefined : index;
|
|
75
|
+
}
|
|
37
76
|
function btoaLookup(idx) {
|
|
38
77
|
if (idx < 26) {
|
|
39
78
|
return String.fromCharCode(idx + 'A'.charCodeAt(0));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base64-utils.js","names":["
|
|
1
|
+
{"version":3,"file":"base64-utils.js","names":["asciiToBase64","string","concat","i","length","charCodeAt","out","groupsOfSix","undefined","j","btoaLookup","base64ToAscii","data","replace","test","output","buffer","accumulatedBits","atobLookup","String","fromCharCode","keystr","chr","index","indexOf","idx"],"sources":["../../../../src/lib/utils/base64-utils.ts"],"sourcesContent":["/**\n * `btoa()` polyfill as defined by the HTML and Infra specs, which mostly just references\n * RFC 4648.\n */\nexport function asciiToBase64(string: string): string | null {\n // String conversion as required by Web IDL.\n string = `${string}`;\n // \"The btoa() method must throw an \"InvalidCharacterError\" DOMException if\n // data contains any character whose code point is greater than U+00FF.\"\n for (let i = 0; i < string.length; i++) {\n if (string.charCodeAt(i) > 255) {\n return null;\n }\n }\n let out = '';\n for (let i = 0; i < string.length; i += 3) {\n /** @type {Array[4]} */\n const groupsOfSix: (number | undefined)[] = [undefined, undefined, undefined, undefined];\n groupsOfSix[0] = string.charCodeAt(i) >> 2;\n groupsOfSix[1] = (string.charCodeAt(i) & 0x03) << 4;\n if (string.length > i + 1) {\n groupsOfSix[1] |= string.charCodeAt(i + 1) >> 4;\n groupsOfSix[2] = (string.charCodeAt(i + 1) & 0x0f) << 2;\n }\n if (string.length > i + 2) {\n // @ts-expect-error\n groupsOfSix[2] |= string.charCodeAt(i + 2) >> 6;\n groupsOfSix[3] = string.charCodeAt(i + 2) & 0x3f;\n }\n for (let j = 0; j < groupsOfSix.length; j++) {\n if (typeof groupsOfSix[j] === 'undefined') {\n out += '=';\n } else {\n out += btoaLookup(groupsOfSix[j]);\n }\n }\n }\n return out;\n}\n\n/**\n * Implementation of atob() according to the HTML and Infra specs, except that\n * instead of throwing INVALID_CHARACTER_ERR we return null.\n *\n * @note Forked from https://github.com/jsdom/abab under BSD 3 clause license\n */\nexport function base64ToAscii(data: string): string {\n // Web IDL requires DOMStrings to just be converted using ECMAScript\n // ToString, which in our case amounts to using a template literal.\n data = `${data}`;\n // \"Remove all ASCII whitespace from data.\"\n data = data.replace(/[ \\t\\n\\f\\r]/g, '');\n // \"If data's code point length divides by 4 leaving no remainder, then: if data ends\n // with one or two U+003D (=) code points, then remove them from data.\"\n if (data.length % 4 === 0) {\n data = data.replace(/[=]=?$/, '');\n }\n // \"If data's code point length divides by 4 leaving a remainder of 1, then return\n // failure.\"\n //\n // \"If data contains a code point that is not one of\n //\n // U+002B (+)\n // U+002F (/)\n // ASCII alphanumeric\n //\n // then return failure.\"\n if (data.length % 4 === 1 || /[^+/0-9A-Za-z]/.test(data)) {\n return '';\n }\n // \"Let output be an empty byte sequence.\"\n let output = '';\n // \"Let buffer be an empty buffer that can have bits appended to it.\"\n //\n // We append bits via left-shift and or. accumulatedBits is used to track\n // when we've gotten to 24 bits.\n let buffer = 0;\n let accumulatedBits = 0;\n // \"Let position be a position variable for data, initially pointing at the\n // start of data.\"\n //\n // \"While position does not point past the end of data:\"\n for (let i = 0; i < data.length; i++) {\n // \"Find the code point pointed to by position in the second column of\n // Table 1: The Base 64 Alphabet of RFC 4648. Let n be the number given in\n // the first cell of the same row.\n //\n // \"Append to buffer the six bits corresponding to n, most significant bit\n // first.\"\n //\n // atobLookup() implements the table from RFC 4648.\n buffer <<= 6;\n // @ts-expect-error\n buffer |= atobLookup(data[i]);\n accumulatedBits += 6;\n // \"If buffer has accumulated 24 bits, interpret them as three 8-bit\n // big-endian numbers. Append three bytes with values equal to those\n // numbers to output, in the same order, and then empty buffer.\"\n if (accumulatedBits === 24) {\n output += String.fromCharCode((buffer & 0xff0000) >> 16);\n output += String.fromCharCode((buffer & 0xff00) >> 8);\n output += String.fromCharCode(buffer & 0xff);\n buffer = accumulatedBits = 0;\n }\n // \"Advance position by 1.\"\n }\n // \"If buffer is not empty, it contains either 12 or 18 bits. If it contains\n // 12 bits, then discard the last four and interpret the remaining eight as\n // an 8-bit big-endian number. If it contains 18 bits, then discard the last\n // two and interpret the remaining 16 as two 8-bit big-endian numbers. Append\n // the one or two bytes with values equal to those one or two numbers to\n // output, in the same order.\"\n if (accumulatedBits === 12) {\n buffer >>= 4;\n output += String.fromCharCode(buffer);\n } else if (accumulatedBits === 18) {\n buffer >>= 2;\n output += String.fromCharCode((buffer & 0xff00) >> 8);\n output += String.fromCharCode(buffer & 0xff);\n }\n // \"Return output.\"\n return output;\n}\n/**\n * A lookup table for atob(), which converts an ASCII character to the\n * corresponding six-bit number.\n */\n\nconst keystr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\nfunction atobLookup(chr: string): number | undefined {\n const index = keystr.indexOf(chr);\n // Throw exception if character is not in the lookup string; should not be hit in tests\n return index < 0 ? undefined : index;\n}\n\n/**\n * Lookup table for btoa(), which converts a six-bit number into the\n * corresponding ASCII character.\n */\nfunction btoaLookup(idx) {\n if (idx < 26) {\n return String.fromCharCode(idx + 'A'.charCodeAt(0));\n }\n if (idx < 52) {\n return String.fromCharCode(idx - 26 + 'a'.charCodeAt(0));\n }\n if (idx < 62) {\n return String.fromCharCode(idx - 52 + '0'.charCodeAt(0));\n }\n if (idx === 62) {\n return '+';\n }\n if (idx === 63) {\n return '/';\n }\n // Throw INVALID_CHARACTER_ERR exception here -- won't be hit in the teststring.\n return undefined;\n}\n"],"mappings":";;;;;;;AAIO,SAASA,aAAaA,CAACC,MAAc,EAAiB;EAE3DA,MAAM,MAAAC,MAAA,CAAMD,MAAM,CAAE;EAGpB,KAAK,IAAIE,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,MAAM,CAACG,MAAM,EAAED,CAAC,EAAE,EAAE;IACtC,IAAIF,MAAM,CAACI,UAAU,CAACF,CAAC,CAAC,GAAG,GAAG,EAAE;MAC9B,OAAO,IAAI;IACb;EACF;EACA,IAAIG,GAAG,GAAG,EAAE;EACZ,KAAK,IAAIH,EAAC,GAAG,CAAC,EAAEA,EAAC,GAAGF,MAAM,CAACG,MAAM,EAAED,EAAC,IAAI,CAAC,EAAE;IAEzC,IAAMI,WAAmC,GAAG,CAACC,SAAS,EAAEA,SAAS,EAAEA,SAAS,EAAEA,SAAS,CAAC;IACxFD,WAAW,CAAC,CAAC,CAAC,GAAGN,MAAM,CAACI,UAAU,CAACF,EAAC,CAAC,IAAI,CAAC;IAC1CI,WAAW,CAAC,CAAC,CAAC,GAAG,CAACN,MAAM,CAACI,UAAU,CAACF,EAAC,CAAC,GAAG,IAAI,KAAK,CAAC;IACnD,IAAIF,MAAM,CAACG,MAAM,GAAGD,EAAC,GAAG,CAAC,EAAE;MACzBI,WAAW,CAAC,CAAC,CAAC,IAAIN,MAAM,CAACI,UAAU,CAACF,EAAC,GAAG,CAAC,CAAC,IAAI,CAAC;MAC/CI,WAAW,CAAC,CAAC,CAAC,GAAG,CAACN,MAAM,CAACI,UAAU,CAACF,EAAC,GAAG,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC;IACzD;IACA,IAAIF,MAAM,CAACG,MAAM,GAAGD,EAAC,GAAG,CAAC,EAAE;MAEzBI,WAAW,CAAC,CAAC,CAAC,IAAIN,MAAM,CAACI,UAAU,CAACF,EAAC,GAAG,CAAC,CAAC,IAAI,CAAC;MAC/CI,WAAW,CAAC,CAAC,CAAC,GAAGN,MAAM,CAACI,UAAU,CAACF,EAAC,GAAG,CAAC,CAAC,GAAG,IAAI;IAClD;IACA,KAAK,IAAIM,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,WAAW,CAACH,MAAM,EAAEK,CAAC,EAAE,EAAE;MAC3C,IAAI,OAAOF,WAAW,CAACE,CAAC,CAAC,KAAK,WAAW,EAAE;QACzCH,GAAG,IAAI,GAAG;MACZ,CAAC,MAAM;QACLA,GAAG,IAAII,UAAU,CAACH,WAAW,CAACE,CAAC,CAAC,CAAC;MACnC;IACF;EACF;EACA,OAAOH,GAAG;AACZ;AAQO,SAASK,aAAaA,CAACC,IAAY,EAAU;EAGlDA,IAAI,MAAAV,MAAA,CAAMU,IAAI,CAAE;EAEhBA,IAAI,GAAGA,IAAI,CAACC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;EAGvC,IAAID,IAAI,CAACR,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE;IACzBQ,IAAI,GAAGA,IAAI,CAACC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;EACnC;EAWA,IAAID,IAAI,CAACR,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAACU,IAAI,CAACF,IAAI,CAAC,EAAE;IACxD,OAAO,EAAE;EACX;EAEA,IAAIG,MAAM,GAAG,EAAE;EAKf,IAAIC,MAAM,GAAG,CAAC;EACd,IAAIC,eAAe,GAAG,CAAC;EAKvB,KAAK,IAAId,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGS,IAAI,CAACR,MAAM,EAAED,CAAC,EAAE,EAAE;IASpCa,MAAM,KAAK,CAAC;IAEZA,MAAM,IAAIE,UAAU,CAACN,IAAI,CAACT,CAAC,CAAC,CAAC;IAC7Bc,eAAe,IAAI,CAAC;IAIpB,IAAIA,eAAe,KAAK,EAAE,EAAE;MAC1BF,MAAM,IAAII,MAAM,CAACC,YAAY,CAAC,CAACJ,MAAM,GAAG,QAAQ,KAAK,EAAE,CAAC;MACxDD,MAAM,IAAII,MAAM,CAACC,YAAY,CAAC,CAACJ,MAAM,GAAG,MAAM,KAAK,CAAC,CAAC;MACrDD,MAAM,IAAII,MAAM,CAACC,YAAY,CAACJ,MAAM,GAAG,IAAI,CAAC;MAC5CA,MAAM,GAAGC,eAAe,GAAG,CAAC;IAC9B;EAEF;EAOA,IAAIA,eAAe,KAAK,EAAE,EAAE;IAC1BD,MAAM,KAAK,CAAC;IACZD,MAAM,IAAII,MAAM,CAACC,YAAY,CAACJ,MAAM,CAAC;EACvC,CAAC,MAAM,IAAIC,eAAe,KAAK,EAAE,EAAE;IACjCD,MAAM,KAAK,CAAC;IACZD,MAAM,IAAII,MAAM,CAACC,YAAY,CAAC,CAACJ,MAAM,GAAG,MAAM,KAAK,CAAC,CAAC;IACrDD,MAAM,IAAII,MAAM,CAACC,YAAY,CAACJ,MAAM,GAAG,IAAI,CAAC;EAC9C;EAEA,OAAOD,MAAM;AACf;AAMA,IAAMM,MAAM,GAAG,kEAAkE;AAEjF,SAASH,UAAUA,CAACI,GAAW,EAAsB;EACnD,IAAMC,KAAK,GAAGF,MAAM,CAACG,OAAO,CAACF,GAAG,CAAC;EAEjC,OAAOC,KAAK,GAAG,CAAC,GAAGf,SAAS,GAAGe,KAAK;AACtC;AAMA,SAASb,UAAUA,CAACe,GAAG,EAAE;EACvB,IAAIA,GAAG,GAAG,EAAE,EAAE;IACZ,OAAON,MAAM,CAACC,YAAY,CAACK,GAAG,GAAG,GAAG,CAACpB,UAAU,CAAC,CAAC,CAAC,CAAC;EACrD;EACA,IAAIoB,GAAG,GAAG,EAAE,EAAE;IACZ,OAAON,MAAM,CAACC,YAAY,CAACK,GAAG,GAAG,EAAE,GAAG,GAAG,CAACpB,UAAU,CAAC,CAAC,CAAC,CAAC;EAC1D;EACA,IAAIoB,GAAG,GAAG,EAAE,EAAE;IACZ,OAAON,MAAM,CAACC,YAAY,CAACK,GAAG,GAAG,EAAE,GAAG,GAAG,CAACpB,UAAU,CAAC,CAAC,CAAC,CAAC;EAC1D;EACA,IAAIoB,GAAG,KAAK,EAAE,EAAE;IACd,OAAO,GAAG;EACZ;EACA,IAAIA,GAAG,KAAK,EAAE,EAAE;IACd,OAAO,GAAG;EACZ;EAEA,OAAOjB,SAAS;AAClB"}
|
|
@@ -1,16 +1,45 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
5
6
|
});
|
|
6
|
-
exports.
|
|
7
|
-
exports.
|
|
7
|
+
exports.encodeBase64 = encodeBase64;
|
|
8
|
+
exports.encodeHex = encodeHex;
|
|
9
|
+
exports.encodeNumber = encodeNumber;
|
|
10
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
8
11
|
var _base64Utils = require("./base64-utils");
|
|
9
|
-
function
|
|
10
|
-
|
|
11
|
-
|
|
12
|
+
function encodeNumber(number, encoding) {
|
|
13
|
+
switch (encoding) {
|
|
14
|
+
case 'hex':
|
|
15
|
+
return convertNumberToHex(number);
|
|
16
|
+
case 'base64':
|
|
17
|
+
return convertHexToBase64(convertNumberToHex(number));
|
|
18
|
+
default:
|
|
19
|
+
throw new Error(encoding);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
function encodeHex(hex, encoding) {
|
|
23
|
+
switch (encoding) {
|
|
24
|
+
case 'hex':
|
|
25
|
+
return hex;
|
|
26
|
+
case 'base64':
|
|
27
|
+
return convertHexToBase64(hex);
|
|
28
|
+
default:
|
|
29
|
+
throw new Error(encoding);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
function encodeBase64(base64, encoding) {
|
|
33
|
+
switch (encoding) {
|
|
34
|
+
case 'hex':
|
|
35
|
+
return convertBase64ToHex(base64);
|
|
36
|
+
case 'base64':
|
|
37
|
+
return base64;
|
|
38
|
+
default:
|
|
39
|
+
throw new Error(encoding);
|
|
40
|
+
}
|
|
12
41
|
}
|
|
13
|
-
function
|
|
42
|
+
function convertHexToBase64(hexstring) {
|
|
14
43
|
if (hexstring.length % 2 !== 0) {
|
|
15
44
|
hexstring = "0".concat(hexstring);
|
|
16
45
|
}
|
|
@@ -18,6 +47,15 @@ function hexToBase64(hexstring) {
|
|
|
18
47
|
var string = matches.map(function (a) {
|
|
19
48
|
return String.fromCharCode(parseInt(a, 16));
|
|
20
49
|
}).join('');
|
|
21
|
-
return (0, _base64Utils.
|
|
50
|
+
return (0, _base64Utils.asciiToBase64)(string) || '';
|
|
51
|
+
}
|
|
52
|
+
function convertBase64ToHex(base64String) {
|
|
53
|
+
return (0, _toConsumableArray2.default)((0, _base64Utils.base64ToAscii)(base64String)).map(function (c) {
|
|
54
|
+
return c.charCodeAt(0).toString(16).padStart(2, '0');
|
|
55
|
+
}).join('');
|
|
56
|
+
}
|
|
57
|
+
function convertNumberToHex(cipher) {
|
|
58
|
+
var hexString = cipher.toString(16);
|
|
59
|
+
return hexString === '0' ? "0".concat(hexString) : hexString;
|
|
22
60
|
}
|
|
23
61
|
//# sourceMappingURL=digest-utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"digest-utils.js","names":["_base64Utils","require","
|
|
1
|
+
{"version":3,"file":"digest-utils.js","names":["_base64Utils","require","encodeNumber","number","encoding","convertNumberToHex","convertHexToBase64","Error","encodeHex","hex","encodeBase64","base64","convertBase64ToHex","hexstring","length","concat","matches","match","string","map","a","String","fromCharCode","parseInt","join","asciiToBase64","base64String","_toConsumableArray2","default","base64ToAscii","c","charCodeAt","toString","padStart","cipher","hexString"],"sources":["../../../../src/lib/utils/digest-utils.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport {asciiToBase64, base64ToAscii} from './base64-utils';\n\n/**\n * Encode a number (usually a digest from a hash function / cipher) as either hex or base64\n * Suitable for hashes like CRC32 where the number of required bits fit withing a JavaScript number.\n */\nexport function encodeNumber(number: number, encoding: 'hex' | 'base64'): string {\n switch (encoding) {\n case 'hex':\n return convertNumberToHex(number);\n case 'base64':\n return convertHexToBase64(convertNumberToHex(number));\n default:\n throw new Error(encoding);\n }\n}\n\n/** Encode a hex string, aeither return hex or re-encode as base64 */\nexport function encodeHex(hex: string, encoding: 'hex' | 'base64'): string {\n switch (encoding) {\n case 'hex':\n return hex;\n case 'base64':\n return convertHexToBase64(hex);\n default:\n throw new Error(encoding);\n }\n}\n\nexport function encodeBase64(base64: string, encoding: 'hex' | 'base64'): string {\n switch (encoding) {\n case 'hex':\n return convertBase64ToHex(base64);\n case 'base64':\n return base64;\n default:\n throw new Error(encoding);\n }\n}\n\n/**\n * Convert a hexadecimal string to base64 encoded string representation\n */\nfunction convertHexToBase64(hexstring: string): string {\n // Add leading zero to keep even count of digits\n // eg. f85d741 => 0f85d741\n if (hexstring.length % 2 !== 0) {\n hexstring = `0${hexstring}`;\n }\n const matches = hexstring.match(/\\w{2}/g) || [];\n const string = matches.map((a) => String.fromCharCode(parseInt(a, 16))).join('');\n // TODO - define how to handle failures\n return asciiToBase64(string) || '';\n}\n\n/**\n * Convert a base64 encoded string to hexadecimal encoded string representation\n */\nfunction convertBase64ToHex(base64String: string): string {\n return [...base64ToAscii(base64String)]\n .map((c) => c.charCodeAt(0).toString(16).padStart(2, '0'))\n .join('');\n}\n\n/**\n * Converts a number to hex\n */\nfunction convertNumberToHex(cipher: number): string {\n const hexString = cipher.toString(16);\n return hexString === '0' ? `0${hexString}` : hexString;\n}\n"],"mappings":";;;;;;;;;;AAEA,IAAAA,YAAA,GAAAC,OAAA;AAMO,SAASC,YAAYA,CAACC,MAAc,EAAEC,QAA0B,EAAU;EAC/E,QAAQA,QAAQ;IACd,KAAK,KAAK;MACR,OAAOC,kBAAkB,CAACF,MAAM,CAAC;IACnC,KAAK,QAAQ;MACX,OAAOG,kBAAkB,CAACD,kBAAkB,CAACF,MAAM,CAAC,CAAC;IACvD;MACE,MAAM,IAAII,KAAK,CAACH,QAAQ,CAAC;EAC7B;AACF;AAGO,SAASI,SAASA,CAACC,GAAW,EAAEL,QAA0B,EAAU;EACzE,QAAQA,QAAQ;IACd,KAAK,KAAK;MACR,OAAOK,GAAG;IACZ,KAAK,QAAQ;MACX,OAAOH,kBAAkB,CAACG,GAAG,CAAC;IAChC;MACE,MAAM,IAAIF,KAAK,CAACH,QAAQ,CAAC;EAC7B;AACF;AAEO,SAASM,YAAYA,CAACC,MAAc,EAAEP,QAA0B,EAAU;EAC/E,QAAQA,QAAQ;IACd,KAAK,KAAK;MACR,OAAOQ,kBAAkB,CAACD,MAAM,CAAC;IACnC,KAAK,QAAQ;MACX,OAAOA,MAAM;IACf;MACE,MAAM,IAAIJ,KAAK,CAACH,QAAQ,CAAC;EAC7B;AACF;AAKA,SAASE,kBAAkBA,CAACO,SAAiB,EAAU;EAGrD,IAAIA,SAAS,CAACC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE;IAC9BD,SAAS,OAAAE,MAAA,CAAOF,SAAS,CAAE;EAC7B;EACA,IAAMG,OAAO,GAAGH,SAAS,CAACI,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE;EAC/C,IAAMC,MAAM,GAAGF,OAAO,CAACG,GAAG,CAAC,UAACC,CAAC;IAAA,OAAKC,MAAM,CAACC,YAAY,CAACC,QAAQ,CAACH,CAAC,EAAE,EAAE,CAAC,CAAC;EAAA,EAAC,CAACI,IAAI,CAAC,EAAE,CAAC;EAEhF,OAAO,IAAAC,0BAAa,EAACP,MAAM,CAAC,IAAI,EAAE;AACpC;AAKA,SAASN,kBAAkBA,CAACc,YAAoB,EAAU;EACxD,OAAO,IAAAC,mBAAA,CAAAC,OAAA,EAAI,IAAAC,0BAAa,EAACH,YAAY,CAAC,EACnCP,GAAG,CAAC,UAACW,CAAC;IAAA,OAAKA,CAAC,CAACC,UAAU,CAAC,CAAC,CAAC,CAACC,QAAQ,CAAC,EAAE,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;EAAA,EAAC,CACzDT,IAAI,CAAC,EAAE,CAAC;AACb;AAKA,SAASnB,kBAAkBA,CAAC6B,MAAc,EAAU;EAClD,IAAMC,SAAS,GAAGD,MAAM,CAACF,QAAQ,CAAC,EAAE,CAAC;EACrC,OAAOG,SAAS,KAAK,GAAG,OAAApB,MAAA,CAAOoB,SAAS,IAAKA,SAAS;AACxD"}
|
|
@@ -26,28 +26,30 @@ var _md5Hash = require("../lib/md5-hash");
|
|
|
26
26
|
var _ref = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(data) {
|
|
27
27
|
var options,
|
|
28
28
|
operation,
|
|
29
|
+
_options$encoding,
|
|
30
|
+
encoding,
|
|
29
31
|
_args = arguments;
|
|
30
32
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
31
33
|
while (1) switch (_context.prev = _context.next) {
|
|
32
34
|
case 0:
|
|
33
35
|
options = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};
|
|
34
|
-
operation = options.operation;
|
|
36
|
+
operation = options.operation, _options$encoding = options.encoding, encoding = _options$encoding === void 0 ? 'base64' : _options$encoding;
|
|
35
37
|
_context.t0 = operation;
|
|
36
38
|
_context.next = _context.t0 === 'crc32' ? 5 : _context.t0 === 'crc32c' ? 8 : _context.t0 === 'md5' ? 11 : 14;
|
|
37
39
|
break;
|
|
38
40
|
case 5:
|
|
39
41
|
_context.next = 7;
|
|
40
|
-
return new _crc32Hash.CRC32Hash(options).hash(data);
|
|
42
|
+
return new _crc32Hash.CRC32Hash(options).hash(data, encoding);
|
|
41
43
|
case 7:
|
|
42
44
|
return _context.abrupt("return", _context.sent);
|
|
43
45
|
case 8:
|
|
44
46
|
_context.next = 10;
|
|
45
|
-
return new _crc32cHash.CRC32CHash(options).hash(data);
|
|
47
|
+
return new _crc32cHash.CRC32CHash(options).hash(data, encoding);
|
|
46
48
|
case 10:
|
|
47
49
|
return _context.abrupt("return", _context.sent);
|
|
48
50
|
case 11:
|
|
49
51
|
_context.next = 13;
|
|
50
|
-
return new _md5Hash.MD5Hash(options).hash(data);
|
|
52
|
+
return new _md5Hash.MD5Hash(options).hash(data, encoding);
|
|
51
53
|
case 13:
|
|
52
54
|
return _context.abrupt("return", _context.sent);
|
|
53
55
|
case 14:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.js","names":["_workerUtils","require","_crc32Hash","_crc32cHash","_md5Hash","createWorker","_ref","_asyncToGenerator2","default","_regenerator","mark","_callee","data","options","operation","_args","arguments","wrap","_callee$","_context","prev","next","length","undefined","t0","CRC32Hash","hash","abrupt","sent","CRC32CHash","MD5Hash","Error","concat","stop","_x","apply"],"sources":["../../../src/workers/worker.ts"],"sourcesContent":["import {createWorker} from '@loaders.gl/worker-utils';\nimport {CRC32Hash} from '../lib/crc32-hash';\nimport {CRC32CHash} from '../lib/crc32c-hash';\nimport {MD5Hash} from '../lib/md5-hash';\n\n// Assuming we can bundle as module\nexport {CRC32Hash, CRC32CHash};\n\ncreateWorker(async (data, options = {}) => {\n // @ts-ignore\n const {operation} = options;\n\n switch (operation) {\n case 'crc32':\n return await new CRC32Hash(options).hash(data);\n case 'crc32c':\n return await new CRC32CHash(options).hash(data);\n case 'md5':\n return await new MD5Hash(options).hash(data);\n default:\n throw new Error(`invalid option: ${operation}`);\n }\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AAKA,IAAAI,yBAAY;EAAA,IAAAC,IAAA,OAAAC,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAC,SAAAC,QAAOC,IAAI;IAAA,IAAAC,OAAA;MAAAC,SAAA;MAAAC,KAAA,GAAAC,SAAA;IAAA,
|
|
1
|
+
{"version":3,"file":"worker.js","names":["_workerUtils","require","_crc32Hash","_crc32cHash","_md5Hash","createWorker","_ref","_asyncToGenerator2","default","_regenerator","mark","_callee","data","options","operation","_options$encoding","encoding","_args","arguments","wrap","_callee$","_context","prev","next","length","undefined","t0","CRC32Hash","hash","abrupt","sent","CRC32CHash","MD5Hash","Error","concat","stop","_x","apply"],"sources":["../../../src/workers/worker.ts"],"sourcesContent":["import {createWorker} from '@loaders.gl/worker-utils';\nimport {CRC32Hash} from '../lib/crc32-hash';\nimport {CRC32CHash} from '../lib/crc32c-hash';\nimport {MD5Hash} from '../lib/md5-hash';\n\n// Assuming we can bundle as module\nexport {CRC32Hash, CRC32CHash};\n\ncreateWorker(async (data, options = {}) => {\n // @ts-ignore\n const {operation, encoding = 'base64'} = options;\n\n switch (operation) {\n case 'crc32':\n return await new CRC32Hash(options).hash(data, encoding);\n case 'crc32c':\n return await new CRC32CHash(options).hash(data, encoding);\n case 'md5':\n return await new MD5Hash(options).hash(data, encoding);\n default:\n throw new Error(`invalid option: ${operation}`);\n }\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AAKA,IAAAI,yBAAY;EAAA,IAAAC,IAAA,OAAAC,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAC,SAAAC,QAAOC,IAAI;IAAA,IAAAC,OAAA;MAAAC,SAAA;MAAAC,iBAAA;MAAAC,QAAA;MAAAC,KAAA,GAAAC,SAAA;IAAA,OAAAT,YAAA,CAAAD,OAAA,CAAAW,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAAEV,OAAO,GAAAI,KAAA,CAAAO,MAAA,QAAAP,KAAA,QAAAQ,SAAA,GAAAR,KAAA,MAAG,CAAC,CAAC;UAE7BH,SAAS,GAAyBD,OAAO,CAAzCC,SAAS,EAAAC,iBAAA,GAAyBF,OAAO,CAA9BG,QAAQ,EAARA,QAAQ,GAAAD,iBAAA,cAAG,QAAQ,GAAAA,iBAAA;UAAAM,QAAA,CAAAK,EAAA,GAE7BZ,SAAS;UAAAO,QAAA,CAAAE,IAAA,GAAAF,QAAA,CAAAK,EAAA,KACV,OAAO,OAAAL,QAAA,CAAAK,EAAA,KAEP,QAAQ,OAAAL,QAAA,CAAAK,EAAA,KAER,KAAK;UAAA;QAAA;UAAAL,QAAA,CAAAE,IAAA;UAAA,OAHK,IAAII,oBAAS,CAACd,OAAO,CAAC,CAACe,IAAI,CAAChB,IAAI,EAAEI,QAAQ,CAAC;QAAA;UAAA,OAAAK,QAAA,CAAAQ,MAAA,WAAAR,QAAA,CAAAS,IAAA;QAAA;UAAAT,QAAA,CAAAE,IAAA;UAAA,OAE3C,IAAIQ,sBAAU,CAAClB,OAAO,CAAC,CAACe,IAAI,CAAChB,IAAI,EAAEI,QAAQ,CAAC;QAAA;UAAA,OAAAK,QAAA,CAAAQ,MAAA,WAAAR,QAAA,CAAAS,IAAA;QAAA;UAAAT,QAAA,CAAAE,IAAA;UAAA,OAE5C,IAAIS,gBAAO,CAACnB,OAAO,CAAC,CAACe,IAAI,CAAChB,IAAI,EAAEI,QAAQ,CAAC;QAAA;UAAA,OAAAK,QAAA,CAAAQ,MAAA,WAAAR,QAAA,CAAAS,IAAA;QAAA;UAAA,MAEhD,IAAIG,KAAK,oBAAAC,MAAA,CAAoBpB,SAAS,CAAE,CAAC;QAAA;QAAA;UAAA,OAAAO,QAAA,CAAAc,IAAA;MAAA;IAAA,GAAAxB,OAAA;EAAA,CAEpD;EAAA,iBAAAyB,EAAA;IAAA,OAAA9B,IAAA,CAAA+B,KAAA,OAAAnB,SAAA;EAAA;AAAA,IAAC"}
|