@loaders.gl/crypto 3.0.13 → 3.0.14

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.
Files changed (37) hide show
  1. package/dist/dist.es5.min.js +1 -1
  2. package/dist/dist.es5.min.js.map +1 -1
  3. package/dist/dist.min.js +1 -1
  4. package/dist/es5/bundle.js +2 -2
  5. package/dist/es5/bundle.js.map +1 -1
  6. package/dist/es5/index.js +11 -11
  7. package/dist/es5/index.js.map +1 -1
  8. package/dist/es5/lib/algorithms/crc32.js +29 -18
  9. package/dist/es5/lib/algorithms/crc32.js.map +1 -1
  10. package/dist/es5/lib/algorithms/crc32c.js +30 -18
  11. package/dist/es5/lib/algorithms/crc32c.js.map +1 -1
  12. package/dist/es5/lib/algorithms/md5-wasm.js +36 -25
  13. package/dist/es5/lib/algorithms/md5-wasm.js.map +1 -1
  14. package/dist/es5/lib/crc32-hash.js +185 -39
  15. package/dist/es5/lib/crc32-hash.js.map +1 -1
  16. package/dist/es5/lib/crc32c-hash.js +184 -38
  17. package/dist/es5/lib/crc32c-hash.js.map +1 -1
  18. package/dist/es5/lib/crypto-hash.js +225 -49
  19. package/dist/es5/lib/crypto-hash.js.map +1 -1
  20. package/dist/es5/lib/hash.js +175 -21
  21. package/dist/es5/lib/hash.js.map +1 -1
  22. package/dist/es5/lib/md5-hash.js +71 -13
  23. package/dist/es5/lib/md5-hash.js.map +1 -1
  24. package/dist/es5/lib/node-hash.js +181 -33
  25. package/dist/es5/lib/node-hash.js.map +1 -1
  26. package/dist/es5/lib/sha256-hash.js +33 -7
  27. package/dist/es5/lib/sha256-hash.js.map +1 -1
  28. package/dist/es5/lib/utils/base64-utils.js +13 -13
  29. package/dist/es5/lib/utils/base64-utils.js.map +1 -1
  30. package/dist/es5/lib/utils/digest-utils.js +4 -2
  31. package/dist/es5/lib/utils/digest-utils.js.map +1 -1
  32. package/dist/es5/workers/worker.js +55 -17
  33. package/dist/es5/workers/worker.js.map +1 -1
  34. package/dist/esm/index.js +1 -1
  35. package/dist/worker.js +22 -22
  36. package/dist/worker.js.map +1 -1
  37. package/package.json +4 -4
@@ -7,79 +7,255 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.CryptoHash = void 0;
9
9
 
10
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
+
12
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
+
14
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
+
16
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
+
18
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
19
+
20
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
21
+
22
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
23
+
24
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
25
+
10
26
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
27
 
12
- var _hash = require("./hash");
28
+ var _awaitAsyncGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/awaitAsyncGenerator"));
29
+
30
+ var _wrapAsyncGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapAsyncGenerator"));
31
+
32
+ var _asyncIterator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncIterator"));
33
+
34
+ var _hash2 = require("./hash");
35
+
36
+ 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); }; }
37
+
38
+ 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; } }
13
39
 
14
- let CryptoJS;
40
+ var CryptoJS;
15
41
 
16
- class CryptoHash extends _hash.Hash {
17
- constructor(options) {
18
- var _this$options, _this$options$crypto;
42
+ var CryptoHash = function (_Hash) {
43
+ (0, _inherits2.default)(CryptoHash, _Hash);
19
44
 
20
- super();
21
- (0, _defineProperty2.default)(this, "name", void 0);
22
- (0, _defineProperty2.default)(this, "options", void 0);
23
- (0, _defineProperty2.default)(this, "_algorithm", void 0);
24
- (0, _defineProperty2.default)(this, "_hash", void 0);
25
- this.options = options;
26
- this._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.algorithm;
45
+ var _super = _createSuper(CryptoHash);
27
46
 
28
- if (!this._algorithm) {
29
- throw new Error(this.name);
47
+ function CryptoHash(options) {
48
+ var _this2$options, _this2$options$crypto;
49
+
50
+ var _this2;
51
+
52
+ (0, _classCallCheck2.default)(this, CryptoHash);
53
+ _this2 = _super.call(this);
54
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this2), "name", void 0);
55
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this2), "options", void 0);
56
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this2), "_algorithm", void 0);
57
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this2), "_hash", void 0);
58
+ _this2.options = options;
59
+ _this2._algorithm = (_this2$options = _this2.options) === null || _this2$options === void 0 ? void 0 : (_this2$options$crypto = _this2$options.crypto) === null || _this2$options$crypto === void 0 ? void 0 : _this2$options$crypto.algorithm;
60
+
61
+ if (!_this2._algorithm) {
62
+ throw new Error(_this2.name);
30
63
  }
31
64
 
32
- this.name = this._algorithm.toLowerCase();
65
+ _this2.name = _this2._algorithm.toLowerCase();
66
+ return _this2;
33
67
  }
34
68
 
35
- async preload() {
36
- if (!CryptoJS) {
37
- var _this$options2, _this$options2$module;
69
+ (0, _createClass2.default)(CryptoHash, [{
70
+ key: "preload",
71
+ value: function () {
72
+ var _preload = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee() {
73
+ var _this$options, _this$options$modules, algo;
74
+
75
+ return _regenerator.default.wrap(function _callee$(_context) {
76
+ while (1) {
77
+ switch (_context.prev = _context.next) {
78
+ case 0:
79
+ if (CryptoJS) {
80
+ _context.next = 4;
81
+ break;
82
+ }
83
+
84
+ CryptoJS = (_this$options = this.options) === null || _this$options === void 0 ? void 0 : (_this$options$modules = _this$options.modules) === null || _this$options$modules === void 0 ? void 0 : _this$options$modules.CryptoJS;
85
+
86
+ if (CryptoJS) {
87
+ _context.next = 4;
88
+ break;
89
+ }
38
90
 
39
- CryptoJS = (_this$options2 = this.options) === null || _this$options2 === void 0 ? void 0 : (_this$options2$module = _this$options2.modules) === null || _this$options2$module === void 0 ? void 0 : _this$options2$module.CryptoJS;
91
+ throw new Error(this.name);
40
92
 
41
- if (!CryptoJS) {
42
- throw new Error(this.name);
93
+ case 4:
94
+ if (!this._hash) {
95
+ algo = CryptoJS.algo[this._algorithm];
96
+ this._hash = algo.create();
97
+ }
98
+
99
+ if (this._hash) {
100
+ _context.next = 7;
101
+ break;
102
+ }
103
+
104
+ throw new Error(this.name);
105
+
106
+ case 7:
107
+ case "end":
108
+ return _context.stop();
109
+ }
110
+ }
111
+ }, _callee, this);
112
+ }));
113
+
114
+ function preload() {
115
+ return _preload.apply(this, arguments);
43
116
  }
44
- }
45
117
 
46
- if (!this._hash) {
47
- const algo = CryptoJS.algo[this._algorithm];
48
- this._hash = algo.create();
49
- }
118
+ return preload;
119
+ }()
120
+ }, {
121
+ key: "hash",
122
+ value: function () {
123
+ var _hash = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(input) {
124
+ var typedWordArray;
125
+ return _regenerator.default.wrap(function _callee2$(_context2) {
126
+ while (1) {
127
+ switch (_context2.prev = _context2.next) {
128
+ case 0:
129
+ _context2.next = 2;
130
+ return this.preload();
50
131
 
51
- if (!this._hash) {
52
- throw new Error(this.name);
53
- }
54
- }
132
+ case 2:
133
+ typedWordArray = CryptoJS.lib.WordArray.create(input);
134
+ return _context2.abrupt("return", this._hash.update(typedWordArray).finalize().toString(CryptoJS.enc.Base64));
55
135
 
56
- async hash(input) {
57
- await this.preload();
58
- const typedWordArray = CryptoJS.lib.WordArray.create(input);
59
- return this._hash.update(typedWordArray).finalize().toString(CryptoJS.enc.Base64);
60
- }
136
+ case 4:
137
+ case "end":
138
+ return _context2.stop();
139
+ }
140
+ }
141
+ }, _callee2, this);
142
+ }));
61
143
 
62
- async *hashBatches(asyncIterator) {
63
- var _this$options3, _this$options3$crypto, _this$options3$crypto2;
144
+ function hash(_x) {
145
+ return _hash.apply(this, arguments);
146
+ }
64
147
 
65
- await this.preload();
148
+ return hash;
149
+ }()
150
+ }, {
151
+ key: "hashBatches",
152
+ value: function hashBatches(asyncIterator) {
153
+ var _this = this;
66
154
 
67
- for await (const chunk of asyncIterator) {
68
- const typedWordArray = CryptoJS.lib.WordArray.create(chunk);
155
+ return (0, _wrapAsyncGenerator2.default)(_regenerator.default.mark(function _callee3() {
156
+ var _this$options2, _this$options2$crypto, _this$options2$crypto2;
69
157
 
70
- this._hash.update(typedWordArray);
158
+ var _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, _value, chunk, typedWordArray, hash;
71
159
 
72
- yield chunk;
73
- }
160
+ return _regenerator.default.wrap(function _callee3$(_context3) {
161
+ while (1) {
162
+ switch (_context3.prev = _context3.next) {
163
+ case 0:
164
+ _context3.next = 2;
165
+ return (0, _awaitAsyncGenerator2.default)(_this.preload());
74
166
 
75
- const hash = this._hash.finalize().toString(CryptoJS.enc.Base64);
167
+ case 2:
168
+ _iteratorNormalCompletion = true;
169
+ _didIteratorError = false;
170
+ _context3.prev = 4;
171
+ _iterator = (0, _asyncIterator2.default)(asyncIterator);
76
172
 
77
- (_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, {
78
- hash
79
- });
80
- }
173
+ case 6:
174
+ _context3.next = 8;
175
+ return (0, _awaitAsyncGenerator2.default)(_iterator.next());
176
+
177
+ case 8:
178
+ _step = _context3.sent;
179
+ _iteratorNormalCompletion = _step.done;
180
+ _context3.next = 12;
181
+ return (0, _awaitAsyncGenerator2.default)(_step.value);
182
+
183
+ case 12:
184
+ _value = _context3.sent;
185
+
186
+ if (_iteratorNormalCompletion) {
187
+ _context3.next = 22;
188
+ break;
189
+ }
190
+
191
+ chunk = _value;
192
+ typedWordArray = CryptoJS.lib.WordArray.create(chunk);
193
+
194
+ _this._hash.update(typedWordArray);
195
+
196
+ _context3.next = 19;
197
+ return chunk;
198
+
199
+ case 19:
200
+ _iteratorNormalCompletion = true;
201
+ _context3.next = 6;
202
+ break;
81
203
 
82
- }
204
+ case 22:
205
+ _context3.next = 28;
206
+ break;
207
+
208
+ case 24:
209
+ _context3.prev = 24;
210
+ _context3.t0 = _context3["catch"](4);
211
+ _didIteratorError = true;
212
+ _iteratorError = _context3.t0;
213
+
214
+ case 28:
215
+ _context3.prev = 28;
216
+ _context3.prev = 29;
217
+
218
+ if (!(!_iteratorNormalCompletion && _iterator.return != null)) {
219
+ _context3.next = 33;
220
+ break;
221
+ }
222
+
223
+ _context3.next = 33;
224
+ return (0, _awaitAsyncGenerator2.default)(_iterator.return());
225
+
226
+ case 33:
227
+ _context3.prev = 33;
228
+
229
+ if (!_didIteratorError) {
230
+ _context3.next = 36;
231
+ break;
232
+ }
233
+
234
+ throw _iteratorError;
235
+
236
+ case 36:
237
+ return _context3.finish(33);
238
+
239
+ case 37:
240
+ return _context3.finish(28);
241
+
242
+ case 38:
243
+ hash = _this._hash.finalize().toString(CryptoJS.enc.Base64);
244
+ (_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, {
245
+ hash: hash
246
+ });
247
+
248
+ case 40:
249
+ case "end":
250
+ return _context3.stop();
251
+ }
252
+ }
253
+ }, _callee3, null, [[4, 24, 28, 38], [29,, 33, 37]]);
254
+ }))();
255
+ }
256
+ }]);
257
+ return CryptoHash;
258
+ }(_hash2.Hash);
83
259
 
84
260
  exports.CryptoHash = CryptoHash;
85
261
  //# sourceMappingURL=crypto-hash.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/crypto-hash.ts"],"names":["CryptoJS","CryptoHash","Hash","constructor","options","_algorithm","crypto","algorithm","Error","name","toLowerCase","preload","modules","_hash","algo","create","hash","input","typedWordArray","lib","WordArray","update","finalize","toString","enc","Base64","hashBatches","asyncIterator","chunk","onEnd"],"mappings":";;;;;;;;;;;AAEA;;AAUA,IAAIA,QAAJ;;AAMO,MAAMC,UAAN,SAAyBC,UAAzB,CAA8B;AAOnCC,EAAAA,WAAW,CAACC,OAAD,EAA6B;AAAA;;AACtC;AADsC;AAAA;AAAA;AAAA;AAEtC,SAAKA,OAAL,GAAeA,OAAf;AACA,SAAKC,UAAL,oBAAkB,KAAKD,OAAvB,0EAAkB,cAAcE,MAAhC,yDAAkB,qBAAsBC,SAAxC;;AACA,QAAI,CAAC,KAAKF,UAAV,EAAsB;AACpB,YAAM,IAAIG,KAAJ,CAAU,KAAKC,IAAf,CAAN;AACD;;AACD,SAAKA,IAAL,GAAY,KAAKJ,UAAL,CAAgBK,WAAhB,EAAZ;AACD;;AAEY,QAAPC,OAAO,GAAkB;AAC7B,QAAI,CAACX,QAAL,EAAe;AAAA;;AACbA,MAAAA,QAAQ,qBAAG,KAAKI,OAAR,4EAAG,eAAcQ,OAAjB,0DAAG,sBAAuBZ,QAAlC;;AACA,UAAI,CAACA,QAAL,EAAe;AACb,cAAM,IAAIQ,KAAJ,CAAU,KAAKC,IAAf,CAAN;AACD;AACF;;AACD,QAAI,CAAC,KAAKI,KAAV,EAAiB;AACf,YAAMC,IAAI,GAAGd,QAAQ,CAACc,IAAT,CAAc,KAAKT,UAAnB,CAAb;AACA,WAAKQ,KAAL,GAAaC,IAAI,CAACC,MAAL,EAAb;AACD;;AACD,QAAI,CAAC,KAAKF,KAAV,EAAiB;AACf,YAAM,IAAIL,KAAJ,CAAU,KAAKC,IAAf,CAAN;AACD;AACF;;AAMS,QAAJO,IAAI,CAACC,KAAD,EAAsC;AAC9C,UAAM,KAAKN,OAAL,EAAN;AAIA,UAAMO,cAAc,GAAGlB,QAAQ,CAACmB,GAAT,CAAaC,SAAb,CAAuBL,MAAvB,CAA8BE,KAA9B,CAAvB;AACA,WAAO,KAAKJ,KAAL,CAAWQ,MAAX,CAAkBH,cAAlB,EAAkCI,QAAlC,GAA6CC,QAA7C,CAAsDvB,QAAQ,CAACwB,GAAT,CAAaC,MAAnE,CAAP;AACD;;AAEiB,SAAXC,WAAW,CAChBC,aADgB,EAEY;AAAA;;AAC5B,UAAM,KAAKhB,OAAL,EAAN;;AACA,eAAW,MAAMiB,KAAjB,IAA0BD,aAA1B,EAAyC;AAIvC,YAAMT,cAAc,GAAGlB,QAAQ,CAACmB,GAAT,CAAaC,SAAb,CAAuBL,MAAvB,CAA8Ba,KAA9B,CAAvB;;AACA,WAAKf,KAAL,CAAWQ,MAAX,CAAkBH,cAAlB;;AACA,YAAMU,KAAN;AACD;;AACD,UAAMZ,IAAI,GAAG,KAAKH,KAAL,CAAWS,QAAX,GAAsBC,QAAtB,CAA+BvB,QAAQ,CAACwB,GAAT,CAAaC,MAA5C,CAAb;;AACA,2BAAKrB,OAAL,2FAAcE,MAAd,0GAAsBuB,KAAtB,8GAA8B;AAACb,MAAAA;AAAD,KAA9B;AACD;;AA5DkC","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"],"file":"crypto-hash.js"}
1
+ {"version":3,"sources":["../../../src/lib/crypto-hash.ts"],"names":["CryptoJS","CryptoHash","options","_algorithm","crypto","algorithm","Error","name","toLowerCase","modules","_hash","algo","create","input","preload","typedWordArray","lib","WordArray","update","finalize","toString","enc","Base64","asyncIterator","chunk","hash","onEnd","Hash"],"mappings":"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","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"],"file":"crypto-hash.js"}
@@ -7,43 +7,197 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.Hash = void 0;
9
9
 
10
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
+
12
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
+
14
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
+
16
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
+
10
18
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
19
 
20
+ var _awaitAsyncGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/awaitAsyncGenerator"));
21
+
22
+ var _wrapAsyncGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapAsyncGenerator"));
23
+
24
+ var _asyncIterator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncIterator"));
25
+
12
26
  var _loaderUtils = require("@loaders.gl/loader-utils");
13
27
 
14
- class Hash {
15
- constructor(options = {}) {
28
+ var Hash = function () {
29
+ function Hash() {
30
+ var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
31
+ (0, _classCallCheck2.default)(this, Hash);
16
32
  (0, _defineProperty2.default)(this, "name", void 0);
17
33
  (0, _defineProperty2.default)(this, "options", void 0);
18
34
  this.hashBatches = this.hashBatches.bind(this);
19
35
  }
20
36
 
21
- async preload() {
22
- return;
23
- }
37
+ (0, _createClass2.default)(Hash, [{
38
+ key: "preload",
39
+ value: function () {
40
+ var _preload = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee() {
41
+ return _regenerator.default.wrap(function _callee$(_context) {
42
+ while (1) {
43
+ switch (_context.prev = _context.next) {
44
+ case 0:
45
+ return _context.abrupt("return");
46
+
47
+ case 1:
48
+ case "end":
49
+ return _context.stop();
50
+ }
51
+ }
52
+ }, _callee);
53
+ }));
54
+
55
+ function preload() {
56
+ return _preload.apply(this, arguments);
57
+ }
58
+
59
+ return preload;
60
+ }()
61
+ }, {
62
+ key: "hashBatches",
63
+ value: function hashBatches(asyncIterator) {
64
+ var _this = this;
65
+
66
+ return (0, _wrapAsyncGenerator2.default)(_regenerator.default.mark(function _callee2() {
67
+ var _this$options, _this$options$crypto, _this$options$crypto$;
68
+
69
+ var arrayBuffers, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, _value, _arrayBuffer, output, hash;
70
+
71
+ return _regenerator.default.wrap(function _callee2$(_context2) {
72
+ while (1) {
73
+ switch (_context2.prev = _context2.next) {
74
+ case 0:
75
+ arrayBuffers = [];
76
+ _iteratorNormalCompletion = true;
77
+ _didIteratorError = false;
78
+ _context2.prev = 3;
79
+ _iterator = (0, _asyncIterator2.default)(asyncIterator);
80
+
81
+ case 5:
82
+ _context2.next = 7;
83
+ return (0, _awaitAsyncGenerator2.default)(_iterator.next());
84
+
85
+ case 7:
86
+ _step = _context2.sent;
87
+ _iteratorNormalCompletion = _step.done;
88
+ _context2.next = 11;
89
+ return (0, _awaitAsyncGenerator2.default)(_step.value);
90
+
91
+ case 11:
92
+ _value = _context2.sent;
24
93
 
25
- async *hashBatches(asyncIterator) {
26
- var _this$options, _this$options$crypto, _this$options$crypto$;
94
+ if (_iteratorNormalCompletion) {
95
+ _context2.next = 20;
96
+ break;
97
+ }
27
98
 
28
- const arrayBuffers = [];
99
+ _arrayBuffer = _value;
100
+ arrayBuffers.push(_arrayBuffer);
101
+ _context2.next = 17;
102
+ return _arrayBuffer;
29
103
 
30
- for await (const arrayBuffer of asyncIterator) {
31
- arrayBuffers.push(arrayBuffer);
32
- yield arrayBuffer;
104
+ case 17:
105
+ _iteratorNormalCompletion = true;
106
+ _context2.next = 5;
107
+ break;
108
+
109
+ case 20:
110
+ _context2.next = 26;
111
+ break;
112
+
113
+ case 22:
114
+ _context2.prev = 22;
115
+ _context2.t0 = _context2["catch"](3);
116
+ _didIteratorError = true;
117
+ _iteratorError = _context2.t0;
118
+
119
+ case 26:
120
+ _context2.prev = 26;
121
+ _context2.prev = 27;
122
+
123
+ if (!(!_iteratorNormalCompletion && _iterator.return != null)) {
124
+ _context2.next = 31;
125
+ break;
126
+ }
127
+
128
+ _context2.next = 31;
129
+ return (0, _awaitAsyncGenerator2.default)(_iterator.return());
130
+
131
+ case 31:
132
+ _context2.prev = 31;
133
+
134
+ if (!_didIteratorError) {
135
+ _context2.next = 34;
136
+ break;
137
+ }
138
+
139
+ throw _iteratorError;
140
+
141
+ case 34:
142
+ return _context2.finish(31);
143
+
144
+ case 35:
145
+ return _context2.finish(26);
146
+
147
+ case 36:
148
+ _context2.next = 38;
149
+ return (0, _awaitAsyncGenerator2.default)(_this.concatenate(arrayBuffers));
150
+
151
+ case 38:
152
+ output = _context2.sent;
153
+ _context2.next = 41;
154
+ return (0, _awaitAsyncGenerator2.default)(_this.hash(output));
155
+
156
+ case 41:
157
+ hash = _context2.sent;
158
+ (_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.onEnd) === null || _this$options$crypto$ === void 0 ? void 0 : _this$options$crypto$.call(_this$options$crypto, {
159
+ hash: hash
160
+ });
161
+
162
+ case 43:
163
+ case "end":
164
+ return _context2.stop();
165
+ }
166
+ }
167
+ }, _callee2, null, [[3, 22, 26, 36], [27,, 31, 35]]);
168
+ }))();
33
169
  }
170
+ }, {
171
+ key: "concatenate",
172
+ value: function () {
173
+ var _concatenate = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3(asyncIterator) {
174
+ return _regenerator.default.wrap(function _callee3$(_context3) {
175
+ while (1) {
176
+ switch (_context3.prev = _context3.next) {
177
+ case 0:
178
+ _context3.next = 2;
179
+ return (0, _loaderUtils.concatenateArrayBuffersAsync)(asyncIterator);
34
180
 
35
- const output = await this.concatenate(arrayBuffers);
36
- const hash = await this.hash(output);
37
- (_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.onEnd) === null || _this$options$crypto$ === void 0 ? void 0 : _this$options$crypto$.call(_this$options$crypto, {
38
- hash
39
- });
40
- }
181
+ case 2:
182
+ return _context3.abrupt("return", _context3.sent);
41
183
 
42
- async concatenate(asyncIterator) {
43
- return await (0, _loaderUtils.concatenateArrayBuffersAsync)(asyncIterator);
44
- }
184
+ case 3:
185
+ case "end":
186
+ return _context3.stop();
187
+ }
188
+ }
189
+ }, _callee3);
190
+ }));
191
+
192
+ function concatenate(_x) {
193
+ return _concatenate.apply(this, arguments);
194
+ }
45
195
 
46
- }
196
+ return concatenate;
197
+ }()
198
+ }]);
199
+ return Hash;
200
+ }();
47
201
 
48
202
  exports.Hash = Hash;
49
203
  //# sourceMappingURL=hash.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/hash.ts"],"names":["Hash","constructor","options","hashBatches","bind","preload","asyncIterator","arrayBuffers","arrayBuffer","push","output","concatenate","hash","crypto","onEnd"],"mappings":";;;;;;;;;;;AACA;;AAUO,MAAeA,IAAf,CAAoB;AAIzBC,EAAAA,WAAW,CAACC,OAAoB,GAAG,EAAxB,EAA4B;AAAA;AAAA;AACrC,SAAKC,WAAL,GAAmB,KAAKA,WAAL,CAAiBC,IAAjB,CAAsB,IAAtB,CAAnB;AACD;;AAEY,QAAPC,OAAO,GAAkB;AAC7B;AACD;;AAIiB,SAAXF,WAAW,CAChBG,aADgB,EAEY;AAAA;;AAC5B,UAAMC,YAA2B,GAAG,EAApC;;AACA,eAAW,MAAMC,WAAjB,IAAgCF,aAAhC,EAA+C;AAC7CC,MAAAA,YAAY,CAACE,IAAb,CAAkBD,WAAlB;AACA,YAAMA,WAAN;AACD;;AACD,UAAME,MAAM,GAAG,MAAM,KAAKC,WAAL,CAAiBJ,YAAjB,CAArB;AACA,UAAMK,IAAI,GAAG,MAAM,KAAKA,IAAL,CAAUF,MAAV,CAAnB;AACA,0BAAKR,OAAL,wFAAcW,MAAd,uGAAsBC,KAAtB,2GAA8B;AAACF,MAAAA;AAAD,KAA9B;AACD;;AAI0B,QAAXD,WAAW,CAACL,aAAD,EAAsC;AAC/D,WAAO,MAAM,+CAA6BA,aAA7B,CAAb;AACD;;AA/BwB","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>\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);\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"],"file":"hash.js"}
1
+ {"version":3,"sources":["../../../src/lib/hash.ts"],"names":["Hash","options","hashBatches","bind","asyncIterator","arrayBuffers","arrayBuffer","push","concatenate","output","hash","crypto","onEnd"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AACA;;IAUsBA,I;AAIpB,kBAAuC;AAAA,QAA3BC,OAA2B,uEAAJ,EAAI;AAAA;AAAA;AAAA;AACrC,SAAKC,WAAL,GAAmB,KAAKA,WAAL,CAAiBC,IAAjB,CAAsB,IAAtB,CAAnB;AACD;;;;;+EAED;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;WAMA,qBACEC,aADF,EAE8B;AAAA;;AAAA;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA;AACtBC,gBAAAA,YADsB,GACQ,EADR;AAAA;AAAA;AAAA;AAAA,yDAEID,aAFJ;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAEXE,gBAAAA,YAFW;AAG1BD,gBAAAA,YAAY,CAACE,IAAb,CAAkBD,YAAlB;AAH0B;AAI1B,uBAAMA,YAAN;;AAJ0B;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA,0DAMP,KAAI,CAACE,WAAL,CAAiBH,YAAjB,CANO;;AAAA;AAMtBI,gBAAAA,MANsB;AAAA;AAAA,0DAOT,KAAI,CAACC,IAAL,CAAUD,MAAV,CAPS;;AAAA;AAOtBC,gBAAAA,IAPsB;AAQ5B,iCAAA,KAAI,CAACT,OAAL,wFAAcU,MAAd,uGAAsBC,KAAtB,2GAA8B;AAACF,kBAAAA,IAAI,EAAJA;AAAD,iBAA9B;;AAR4B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAS7B;;;;mFAID,kBAA4BN,aAA5B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBACe,+CAA6BA,aAA7B,CADf;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O","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>\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);\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"],"file":"hash.js"}
@@ -7,29 +7,87 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.MD5Hash = void 0;
9
9
 
10
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
+
12
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
+
14
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
+
16
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
+
18
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
19
+
20
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
21
+
22
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
23
+
24
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
25
+
10
26
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
27
 
12
- var _hash = require("./hash");
28
+ var _hash2 = require("./hash");
13
29
 
14
30
  var _md5Wasm = _interopRequireDefault(require("./algorithms/md5-wasm"));
15
31
 
16
32
  var _digestUtils = require("./utils/digest-utils");
17
33
 
18
- class MD5Hash extends _hash.Hash {
19
- constructor(options = {}) {
20
- super();
21
- (0, _defineProperty2.default)(this, "name", 'md5');
22
- (0, _defineProperty2.default)(this, "options", void 0);
23
- this.options = options;
24
- }
34
+ 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); }; }
25
35
 
26
- async hash(input) {
27
- const md5Promise = new Promise((resolve, reject) => (0, _md5Wasm.default)(input).then(resolve).catch(reject));
28
- const hex = await md5Promise;
29
- return (0, _digestUtils.hexToBase64)(hex);
36
+ 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; } }
37
+
38
+ var MD5Hash = function (_Hash) {
39
+ (0, _inherits2.default)(MD5Hash, _Hash);
40
+
41
+ var _super = _createSuper(MD5Hash);
42
+
43
+ function MD5Hash() {
44
+ var _this;
45
+
46
+ var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
47
+ (0, _classCallCheck2.default)(this, MD5Hash);
48
+ _this = _super.call(this);
49
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "name", 'md5');
50
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "options", void 0);
51
+ _this.options = options;
52
+ return _this;
30
53
  }
31
54
 
32
- }
55
+ (0, _createClass2.default)(MD5Hash, [{
56
+ key: "hash",
57
+ value: function () {
58
+ var _hash = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(input) {
59
+ var md5Promise, hex;
60
+ return _regenerator.default.wrap(function _callee$(_context) {
61
+ while (1) {
62
+ switch (_context.prev = _context.next) {
63
+ case 0:
64
+ md5Promise = new Promise(function (resolve, reject) {
65
+ return (0, _md5Wasm.default)(input).then(resolve).catch(reject);
66
+ });
67
+ _context.next = 3;
68
+ return md5Promise;
69
+
70
+ case 3:
71
+ hex = _context.sent;
72
+ return _context.abrupt("return", (0, _digestUtils.hexToBase64)(hex));
73
+
74
+ case 5:
75
+ case "end":
76
+ return _context.stop();
77
+ }
78
+ }
79
+ }, _callee);
80
+ }));
81
+
82
+ function hash(_x) {
83
+ return _hash.apply(this, arguments);
84
+ }
85
+
86
+ return hash;
87
+ }()
88
+ }]);
89
+ return MD5Hash;
90
+ }(_hash2.Hash);
33
91
 
34
92
  exports.MD5Hash = MD5Hash;
35
93
  //# sourceMappingURL=md5-hash.js.map