@loaders.gl/crypto 3.1.0-alpha.4 → 3.1.0-alpha.5

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 (57) hide show
  1. package/dist/bundle.d.ts +1 -0
  2. package/dist/dist.min.js +1 -1
  3. package/dist/es5/bundle.js +1 -1
  4. package/dist/es5/bundle.js.map +1 -1
  5. package/dist/es5/index.js +11 -11
  6. package/dist/es5/index.js.map +1 -1
  7. package/dist/es5/lib/algorithms/crc32.js +18 -29
  8. package/dist/es5/lib/algorithms/crc32.js.map +1 -1
  9. package/dist/es5/lib/algorithms/crc32c.js +18 -30
  10. package/dist/es5/lib/algorithms/crc32c.js.map +1 -1
  11. package/dist/es5/lib/algorithms/md5-wasm.js +25 -36
  12. package/dist/es5/lib/algorithms/md5-wasm.js.map +1 -1
  13. package/dist/es5/lib/crc32-hash.js +39 -185
  14. package/dist/es5/lib/crc32-hash.js.map +1 -1
  15. package/dist/es5/lib/crc32c-hash.js +38 -184
  16. package/dist/es5/lib/crc32c-hash.js.map +1 -1
  17. package/dist/es5/lib/crypto-hash.js +49 -225
  18. package/dist/es5/lib/crypto-hash.js.map +1 -1
  19. package/dist/es5/lib/hash.js +21 -175
  20. package/dist/es5/lib/hash.js.map +1 -1
  21. package/dist/es5/lib/md5-hash.js +13 -71
  22. package/dist/es5/lib/md5-hash.js.map +1 -1
  23. package/dist/es5/lib/node-hash.js +33 -181
  24. package/dist/es5/lib/node-hash.js.map +1 -1
  25. package/dist/es5/lib/sha256-hash.js +7 -33
  26. package/dist/es5/lib/sha256-hash.js.map +1 -1
  27. package/dist/es5/lib/utils/base64-utils.js +13 -13
  28. package/dist/es5/lib/utils/base64-utils.js.map +1 -1
  29. package/dist/es5/lib/utils/digest-utils.js +2 -4
  30. package/dist/es5/lib/utils/digest-utils.js.map +1 -1
  31. package/dist/es5/workers/worker.js +17 -55
  32. package/dist/es5/workers/worker.js.map +1 -1
  33. package/dist/esm/index.js +1 -1
  34. package/dist/esm/lib/utils/base64-utils.js +1 -1
  35. package/dist/esm/lib/utils/base64-utils.js.map +1 -1
  36. package/dist/esm/lib/utils/digest-utils.js +2 -2
  37. package/dist/esm/lib/utils/digest-utils.js.map +1 -1
  38. package/dist/esm/workers/worker.js +1 -1
  39. package/dist/esm/workers/worker.js.map +1 -1
  40. package/dist/index.d.ts +32 -0
  41. package/dist/lib/algorithms/crc32.d.ts +8 -0
  42. package/dist/lib/algorithms/crc32c.d.ts +10 -0
  43. package/dist/lib/algorithms/md5-wasm.d.ts +4 -0
  44. package/dist/lib/crc32-hash.d.ts +17 -0
  45. package/dist/lib/crc32c-hash.d.ts +21 -0
  46. package/dist/lib/crypto-hash.d.ts +31 -0
  47. package/dist/lib/hash.d.ts +21 -0
  48. package/dist/lib/md5-hash.d.ts +14 -0
  49. package/dist/lib/node-hash.d.ts +27 -0
  50. package/dist/lib/sha256-hash.d.ts +18 -0
  51. package/dist/lib/utils/base64-utils.d.ts +5 -0
  52. package/dist/lib/utils/digest-utils.d.ts +8 -0
  53. package/dist/types.d.ts +9 -0
  54. package/dist/worker.js +22 -22
  55. package/dist/worker.js.map +1 -1
  56. package/dist/workers/worker.d.ts +3 -0
  57. package/package.json +6 -5
@@ -7,255 +7,79 @@ 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
-
26
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
27
11
 
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; } }
12
+ var _hash = require("./hash");
39
13
 
40
- var CryptoJS;
14
+ let CryptoJS;
41
15
 
42
- var CryptoHash = function (_Hash) {
43
- (0, _inherits2.default)(CryptoHash, _Hash);
16
+ class CryptoHash extends _hash.Hash {
17
+ constructor(options) {
18
+ var _this$options, _this$options$crypto;
44
19
 
45
- var _super = _createSuper(CryptoHash);
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;
46
27
 
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);
28
+ if (!this._algorithm) {
29
+ throw new Error(this.name);
63
30
  }
64
31
 
65
- _this2.name = _this2._algorithm.toLowerCase();
66
- return _this2;
32
+ this.name = this._algorithm.toLowerCase();
67
33
  }
68
34
 
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
- }
90
-
91
- throw new Error(this.name);
92
-
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);
116
- }
117
-
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();
35
+ async preload() {
36
+ if (!CryptoJS) {
37
+ var _this$options2, _this$options2$module;
131
38
 
132
- case 2:
133
- typedWordArray = CryptoJS.lib.WordArray.create(input);
134
- return _context2.abrupt("return", this._hash.update(typedWordArray).finalize().toString(CryptoJS.enc.Base64));
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;
135
40
 
136
- case 4:
137
- case "end":
138
- return _context2.stop();
139
- }
140
- }
141
- }, _callee2, this);
142
- }));
143
-
144
- function hash(_x) {
145
- return _hash.apply(this, arguments);
41
+ if (!CryptoJS) {
42
+ throw new Error(this.name);
146
43
  }
44
+ }
147
45
 
148
- return hash;
149
- }()
150
- }, {
151
- key: "hashBatches",
152
- value: function hashBatches(asyncIterator) {
153
- var _this = this;
154
-
155
- return (0, _wrapAsyncGenerator2.default)(_regenerator.default.mark(function _callee3() {
156
- var _this$options2, _this$options2$crypto, _this$options2$crypto2;
157
-
158
- var _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, _value, chunk, typedWordArray, hash;
159
-
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());
166
-
167
- case 2:
168
- _iteratorNormalCompletion = true;
169
- _didIteratorError = false;
170
- _context3.prev = 4;
171
- _iterator = (0, _asyncIterator2.default)(asyncIterator);
172
-
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;
203
-
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;
46
+ if (!this._hash) {
47
+ const algo = CryptoJS.algo[this._algorithm];
48
+ this._hash = algo.create();
49
+ }
213
50
 
214
- case 28:
215
- _context3.prev = 28;
216
- _context3.prev = 29;
51
+ if (!this._hash) {
52
+ throw new Error(this.name);
53
+ }
54
+ }
217
55
 
218
- if (!(!_iteratorNormalCompletion && _iterator.return != null)) {
219
- _context3.next = 33;
220
- break;
221
- }
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
+ }
222
61
 
223
- _context3.next = 33;
224
- return (0, _awaitAsyncGenerator2.default)(_iterator.return());
62
+ async *hashBatches(asyncIterator) {
63
+ var _this$options3, _this$options3$crypto, _this$options3$crypto2;
225
64
 
226
- case 33:
227
- _context3.prev = 33;
65
+ await this.preload();
228
66
 
229
- if (!_didIteratorError) {
230
- _context3.next = 36;
231
- break;
232
- }
67
+ for await (const chunk of asyncIterator) {
68
+ const typedWordArray = CryptoJS.lib.WordArray.create(chunk);
233
69
 
234
- throw _iteratorError;
70
+ this._hash.update(typedWordArray);
235
71
 
236
- case 36:
237
- return _context3.finish(33);
72
+ yield chunk;
73
+ }
238
74
 
239
- case 37:
240
- return _context3.finish(28);
75
+ const hash = this._hash.finalize().toString(CryptoJS.enc.Base64);
241
76
 
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
- });
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
+ }
247
81
 
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);
82
+ }
259
83
 
260
84
  exports.CryptoHash = CryptoHash;
261
85
  //# sourceMappingURL=crypto-hash.js.map
@@ -1 +1 @@
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"}
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"}
@@ -7,197 +7,43 @@ 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
-
18
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
19
11
 
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
-
26
12
  var _loaderUtils = require("@loaders.gl/loader-utils");
27
13
 
28
- var Hash = function () {
29
- function Hash() {
30
- var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
31
- (0, _classCallCheck2.default)(this, Hash);
14
+ class Hash {
15
+ constructor(options = {}) {
32
16
  (0, _defineProperty2.default)(this, "name", void 0);
33
17
  (0, _defineProperty2.default)(this, "options", void 0);
34
18
  this.hashBatches = this.hashBatches.bind(this);
35
19
  }
36
20
 
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;
93
-
94
- if (_iteratorNormalCompletion) {
95
- _context2.next = 20;
96
- break;
97
- }
98
-
99
- _arrayBuffer = _value;
100
- arrayBuffers.push(_arrayBuffer);
101
- _context2.next = 17;
102
- return _arrayBuffer;
103
-
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));
21
+ async preload() {
22
+ return;
23
+ }
150
24
 
151
- case 38:
152
- output = _context2.sent;
153
- _context2.next = 41;
154
- return (0, _awaitAsyncGenerator2.default)(_this.hash(output));
25
+ async *hashBatches(asyncIterator) {
26
+ var _this$options, _this$options$crypto, _this$options$crypto$;
155
27
 
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
- });
28
+ const arrayBuffers = [];
161
29
 
162
- case 43:
163
- case "end":
164
- return _context2.stop();
165
- }
166
- }
167
- }, _callee2, null, [[3, 22, 26, 36], [27,, 31, 35]]);
168
- }))();
30
+ for await (const arrayBuffer of asyncIterator) {
31
+ arrayBuffers.push(arrayBuffer);
32
+ yield arrayBuffer;
169
33
  }
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);
180
-
181
- case 2:
182
- return _context3.abrupt("return", _context3.sent);
183
34
 
184
- case 3:
185
- case "end":
186
- return _context3.stop();
187
- }
188
- }
189
- }, _callee3);
190
- }));
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
+ }
191
41
 
192
- function concatenate(_x) {
193
- return _concatenate.apply(this, arguments);
194
- }
42
+ async concatenate(asyncIterator) {
43
+ return await (0, _loaderUtils.concatenateArrayBuffersAsync)(asyncIterator);
44
+ }
195
45
 
196
- return concatenate;
197
- }()
198
- }]);
199
- return Hash;
200
- }();
46
+ }
201
47
 
202
48
  exports.Hash = Hash;
203
49
  //# sourceMappingURL=hash.js.map
@@ -1 +1 @@
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"}
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"}