@loaders.gl/crypto 3.3.0-alpha.4 → 3.3.0-alpha.6

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 (64) hide show
  1. package/dist/crypto-worker.js.map +1 -1
  2. package/dist/es5/bundle.js +0 -1
  3. package/dist/es5/bundle.js.map +1 -1
  4. package/dist/es5/index.js +16 -21
  5. package/dist/es5/index.js.map +1 -1
  6. package/dist/es5/lib/algorithms/crc32.js +0 -9
  7. package/dist/es5/lib/algorithms/crc32.js.map +1 -1
  8. package/dist/es5/lib/algorithms/crc32c.js +1 -10
  9. package/dist/es5/lib/algorithms/crc32c.js.map +1 -1
  10. package/dist/es5/lib/algorithms/md5-wasm.js +32 -66
  11. package/dist/es5/lib/algorithms/md5-wasm.js.map +1 -1
  12. package/dist/es5/lib/crc32-hash.js +32 -90
  13. package/dist/es5/lib/crc32-hash.js.map +1 -1
  14. package/dist/es5/lib/crc32c-hash.js +36 -91
  15. package/dist/es5/lib/crc32c-hash.js.map +1 -1
  16. package/dist/es5/lib/crypto-hash.js +30 -98
  17. package/dist/es5/lib/crypto-hash.js.map +1 -1
  18. package/dist/es5/lib/hash.js +35 -82
  19. package/dist/es5/lib/hash.js.map +1 -1
  20. package/dist/es5/lib/md5-hash.js +3 -25
  21. package/dist/es5/lib/md5-hash.js.map +1 -1
  22. package/dist/es5/lib/node-hash.js +30 -86
  23. package/dist/es5/lib/node-hash.js.map +1 -1
  24. package/dist/es5/lib/sha256-hash.js +4 -19
  25. package/dist/es5/lib/sha256-hash.js.map +1 -1
  26. package/dist/es5/lib/utils/base64-utils.js +0 -13
  27. package/dist/es5/lib/utils/base64-utils.js.map +1 -1
  28. package/dist/es5/lib/utils/digest-utils.js +1 -4
  29. package/dist/es5/lib/utils/digest-utils.js.map +1 -1
  30. package/dist/es5/types.js.map +1 -1
  31. package/dist/es5/workers/worker.js +6 -22
  32. package/dist/es5/workers/worker.js.map +1 -1
  33. package/dist/esm/bundle.js +1 -1
  34. package/dist/esm/bundle.js.map +1 -1
  35. package/dist/esm/index.js +6 -1
  36. package/dist/esm/index.js.map +1 -1
  37. package/dist/esm/lib/algorithms/crc32.js +2 -6
  38. package/dist/esm/lib/algorithms/crc32.js.map +1 -1
  39. package/dist/esm/lib/algorithms/crc32c.js +4 -9
  40. package/dist/esm/lib/algorithms/crc32c.js.map +1 -1
  41. package/dist/esm/lib/algorithms/md5-wasm.js +34 -64
  42. package/dist/esm/lib/algorithms/md5-wasm.js.map +1 -1
  43. package/dist/esm/lib/crc32-hash.js +3 -14
  44. package/dist/esm/lib/crc32-hash.js.map +1 -1
  45. package/dist/esm/lib/crc32c-hash.js +3 -13
  46. package/dist/esm/lib/crc32c-hash.js.map +1 -1
  47. package/dist/esm/lib/crypto-hash.js +2 -21
  48. package/dist/esm/lib/crypto-hash.js.map +1 -1
  49. package/dist/esm/lib/hash.js +2 -9
  50. package/dist/esm/lib/hash.js.map +1 -1
  51. package/dist/esm/lib/md5-hash.js +5 -6
  52. package/dist/esm/lib/md5-hash.js.map +1 -1
  53. package/dist/esm/lib/node-hash.js +2 -13
  54. package/dist/esm/lib/node-hash.js.map +1 -1
  55. package/dist/esm/lib/sha256-hash.js +5 -3
  56. package/dist/esm/lib/sha256-hash.js.map +1 -1
  57. package/dist/esm/lib/utils/base64-utils.js +1 -12
  58. package/dist/esm/lib/utils/base64-utils.js.map +1 -1
  59. package/dist/esm/lib/utils/digest-utils.js +2 -1
  60. package/dist/esm/lib/utils/digest-utils.js.map +1 -1
  61. package/dist/esm/types.js.map +1 -1
  62. package/dist/esm/workers/worker.js +3 -5
  63. package/dist/esm/workers/worker.js.map +1 -1
  64. package/package.json +4 -4
@@ -1,58 +1,35 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.CRC32CHash = void 0;
9
-
10
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
-
12
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
-
14
10
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
-
16
11
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
-
18
12
  var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
19
-
20
13
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
21
-
22
14
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
23
-
24
15
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
25
-
26
16
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
27
-
28
17
  var _awaitAsyncGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/awaitAsyncGenerator"));
29
-
30
18
  var _wrapAsyncGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapAsyncGenerator"));
31
-
32
- var _asyncIterator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncIterator"));
33
-
34
19
  var _hash2 = require("./hash");
35
-
36
20
  var _crc32c = _interopRequireDefault(require("./algorithms/crc32c"));
37
-
38
21
  var _digestUtils = require("./utils/digest-utils");
39
-
40
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
41
-
42
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
43
-
22
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
23
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
44
24
  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); }; }
45
-
46
25
  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; } }
47
-
26
+ function _asyncIterator(iterable) { var method, async, sync, retry = 2; for ("undefined" != typeof Symbol && (async = Symbol.asyncIterator, sync = Symbol.iterator); retry--;) { if (async && null != (method = iterable[async])) return method.call(iterable); if (sync && null != (method = iterable[sync])) return new AsyncFromSyncIterator(method.call(iterable)); async = "@@asyncIterator", sync = "@@iterator"; } throw new TypeError("Object is not async iterable"); }
27
+ function AsyncFromSyncIterator(s) { function AsyncFromSyncIteratorContinuation(r) { if (Object(r) !== r) return Promise.reject(new TypeError(r + " is not an object.")); var done = r.done; return Promise.resolve(r.value).then(function (value) { return { value: value, done: done }; }); } return AsyncFromSyncIterator = function AsyncFromSyncIterator(s) { this.s = s, this.n = s.next; }, AsyncFromSyncIterator.prototype = { s: null, n: null, next: function next() { return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments)); }, return: function _return(value) { var ret = this.s.return; return void 0 === ret ? Promise.resolve({ value: value, done: !0 }) : AsyncFromSyncIteratorContinuation(ret.apply(this.s, arguments)); }, throw: function _throw(value) { var thr = this.s.return; return void 0 === thr ? Promise.reject(value) : AsyncFromSyncIteratorContinuation(thr.apply(this.s, arguments)); } }, new AsyncFromSyncIterator(s); }
48
28
  var CRC32CHash = function (_Hash) {
49
29
  (0, _inherits2.default)(CRC32CHash, _Hash);
50
-
51
30
  var _super = _createSuper(CRC32CHash);
52
-
53
31
  function CRC32CHash() {
54
32
  var _this2;
55
-
56
33
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
57
34
  (0, _classCallCheck2.default)(this, CRC32CHash);
58
35
  _this2 = _super.call(this);
@@ -75,7 +52,6 @@ var CRC32CHash = function (_Hash) {
75
52
  switch (_context.prev = _context.next) {
76
53
  case 0:
77
54
  return _context.abrupt("return", this.hashSync(input));
78
-
79
55
  case 1:
80
56
  case "end":
81
57
  return _context.stop();
@@ -83,130 +59,99 @@ var CRC32CHash = function (_Hash) {
83
59
  }
84
60
  }, _callee, this);
85
61
  }));
86
-
87
62
  function hash(_x) {
88
63
  return _hash.apply(this, arguments);
89
64
  }
90
-
91
65
  return hash;
92
66
  }()
93
67
  }, {
94
68
  key: "hashSync",
95
69
  value: function hashSync(input) {
96
70
  this._hash.update(input);
97
-
98
71
  var hashValue = this._hash.finalize();
99
-
100
72
  var hex = (0, _digestUtils.toHex)(hashValue);
101
73
  var hash = (0, _digestUtils.hexToBase64)(hex);
102
74
  return hash;
103
75
  }
76
+
104
77
  }, {
105
78
  key: "hashBatches",
106
- value: function hashBatches(asyncIterator) {
107
- var _this = this;
79
+ value:
108
80
 
81
+ function hashBatches(asyncIterator) {
82
+ var _this = this;
109
83
  return (0, _wrapAsyncGenerator2.default)(_regenerator.default.mark(function _callee2() {
110
84
  var _this$options$crypto, _this$options$crypto$;
111
-
112
- var _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, _value, chunk, hashValue, hex, hash;
113
-
85
+ var _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, chunk, hashValue, hex, hash;
114
86
  return _regenerator.default.wrap(function _callee2$(_context2) {
115
87
  while (1) {
116
88
  switch (_context2.prev = _context2.next) {
117
89
  case 0:
118
- _iteratorNormalCompletion = true;
90
+ _iteratorAbruptCompletion = false;
119
91
  _didIteratorError = false;
120
92
  _context2.prev = 2;
121
- _iterator = (0, _asyncIterator2.default)(asyncIterator);
122
-
93
+ _iterator = _asyncIterator(asyncIterator);
123
94
  case 4:
124
95
  _context2.next = 6;
125
96
  return (0, _awaitAsyncGenerator2.default)(_iterator.next());
126
-
127
97
  case 6:
128
- _step = _context2.sent;
129
- _iteratorNormalCompletion = _step.done;
130
- _context2.next = 10;
131
- return (0, _awaitAsyncGenerator2.default)(_step.value);
132
-
133
- case 10:
134
- _value = _context2.sent;
135
-
136
- if (_iteratorNormalCompletion) {
137
- _context2.next = 19;
98
+ if (!(_iteratorAbruptCompletion = !(_step = _context2.sent).done)) {
99
+ _context2.next = 14;
138
100
  break;
139
101
  }
140
-
141
- chunk = _value;
142
-
102
+ chunk = _step.value;
143
103
  _this._hash.update(chunk);
144
-
145
- _context2.next = 16;
104
+ _context2.next = 11;
146
105
  return chunk;
147
-
148
- case 16:
149
- _iteratorNormalCompletion = true;
106
+ case 11:
107
+ _iteratorAbruptCompletion = false;
150
108
  _context2.next = 4;
151
109
  break;
152
-
153
- case 19:
154
- _context2.next = 25;
110
+ case 14:
111
+ _context2.next = 20;
155
112
  break;
156
-
157
- case 21:
158
- _context2.prev = 21;
113
+ case 16:
114
+ _context2.prev = 16;
159
115
  _context2.t0 = _context2["catch"](2);
160
116
  _didIteratorError = true;
161
117
  _iteratorError = _context2.t0;
162
-
163
- case 25:
164
- _context2.prev = 25;
165
- _context2.prev = 26;
166
-
167
- if (!(!_iteratorNormalCompletion && _iterator.return != null)) {
168
- _context2.next = 30;
118
+ case 20:
119
+ _context2.prev = 20;
120
+ _context2.prev = 21;
121
+ if (!(_iteratorAbruptCompletion && _iterator.return != null)) {
122
+ _context2.next = 25;
169
123
  break;
170
124
  }
171
-
172
- _context2.next = 30;
125
+ _context2.next = 25;
173
126
  return (0, _awaitAsyncGenerator2.default)(_iterator.return());
174
-
175
- case 30:
176
- _context2.prev = 30;
177
-
127
+ case 25:
128
+ _context2.prev = 25;
178
129
  if (!_didIteratorError) {
179
- _context2.next = 33;
130
+ _context2.next = 28;
180
131
  break;
181
132
  }
182
-
183
133
  throw _iteratorError;
184
-
185
- case 33:
186
- return _context2.finish(30);
187
-
188
- case 34:
134
+ case 28:
189
135
  return _context2.finish(25);
190
-
191
- case 35:
136
+ case 29:
137
+ return _context2.finish(20);
138
+ case 30:
192
139
  hashValue = _this._hash.finalize();
193
140
  hex = (0, _digestUtils.toHex)(hashValue);
194
141
  hash = (0, _digestUtils.hexToBase64)(hex);
195
142
  (_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, {
196
143
  hash: hash
197
144
  });
198
-
199
- case 39:
145
+ case 34:
200
146
  case "end":
201
147
  return _context2.stop();
202
148
  }
203
149
  }
204
- }, _callee2, null, [[2, 21, 25, 35], [26,, 30, 34]]);
150
+ }, _callee2, null, [[2, 16, 20, 30], [21,, 25, 29]]);
205
151
  }))();
206
152
  }
207
153
  }]);
208
154
  return CRC32CHash;
209
155
  }(_hash2.Hash);
210
-
211
156
  exports.CRC32CHash = CRC32CHash;
212
157
  //# sourceMappingURL=crc32c-hash.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/crc32c-hash.ts"],"names":["CRC32CHash","options","crypto","_hash","CRC32C","input","hashSync","update","hashValue","finalize","hex","hash","asyncIterator","chunk","onEnd","Hash"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AACA;;AACA;;;;;;;;;;IAKaA,U;;;;;AAUX,wBAA0B;AAAA;;AAAA,QAAdC,OAAc,uEAAJ,EAAI;AAAA;AACxB;AADwB,wFATV,QASU;AAAA;AAAA;AAExB,WAAKA,OAAL;AAAgBC,MAAAA,MAAM,EAAE;AAAxB,OAA+BD,OAA/B;AACA,WAAKE,KAAL,GAAa,IAAIC,eAAJ,CAAWH,OAAX,CAAb;AAHwB;AAIzB;;;;;4EAMD,iBAAWI,KAAX;AAAA;AAAA;AAAA;AAAA;AAAA,iDACS,KAAKC,QAAL,CAAcD,KAAd,CADT;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;WAIA,kBAASA,KAAT,EAAqC;AACnC,WAAKF,KAAL,CAAWI,MAAX,CAAkBF,KAAlB;;AACA,UAAMG,SAAS,GAAG,KAAKL,KAAL,CAAWM,QAAX,EAAlB;;AACA,UAAMC,GAAG,GAAG,wBAAMF,SAAN,CAAZ;AACA,UAAMG,IAAI,GAAG,8BAAYD,GAAZ,CAAb;AACA,aAAOC,IAAP;AACD;;;WAID,qBACEC,aADF,EAE8B;AAAA;;AAAA;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yDACFA,aADE;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AACXC,gBAAAA,KADW;;AAE1B,gBAAA,KAAI,CAACV,KAAL,CAAWI,MAAX,CAAkBM,KAAlB;;AAF0B;AAG1B,uBAAMA,KAAN;;AAH0B;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;AAKtBL,gBAAAA,SALsB,GAKV,KAAI,CAACL,KAAL,CAAWM,QAAX,EALU;AAMtBC,gBAAAA,GANsB,GAMhB,wBAAMF,SAAN,CANgB;AAOtBG,gBAAAA,IAPsB,GAOf,8BAAYD,GAAZ,CAPe;AAQ5B,wCAAA,KAAI,CAACT,OAAL,CAAaC,MAAb,uGAAqBY,KAArB,2GAA6B;AAACH,kBAAAA,IAAI,EAAJA;AAAD,iBAA7B;;AAR4B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAS7B;;;EA7C6BI,W","sourcesContent":["// CRC32c\nimport {Hash} from './hash';\nimport CRC32C from './algorithms/crc32c';\nimport {toHex, hexToBase64} from './utils/digest-utils';\n\n/**\n * A transform that calculates CRC32c Hash\n */\nexport class CRC32CHash extends Hash {\n readonly name = 'crc32c';\n\n options;\n private _hash: CRC32C;\n\n /**\n * Atomic hash calculation\n * @returns base64 encoded hash\n */\n constructor(options = {}) {\n super();\n this.options = {crypto: {}, ...options};\n this._hash = new CRC32C(options);\n }\n\n /**\n * Atomic hash calculation\n * @returns base64 encoded hash\n */\n async hash(input: ArrayBuffer): Promise<string> {\n return this.hashSync(input);\n }\n\n hashSync(input: ArrayBuffer): string {\n this._hash.update(input);\n const hashValue = this._hash.finalize();\n const hex = toHex(hashValue);\n const hash = hexToBase64(hex);\n return hash;\n }\n\n // runInBatches inherited\n\n async *hashBatches(\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>\n ): AsyncIterable<ArrayBuffer> {\n for await (const chunk of asyncIterator) {\n this._hash.update(chunk);\n yield chunk;\n }\n const hashValue = this._hash.finalize();\n const hex = toHex(hashValue);\n const hash = hexToBase64(hex);\n this.options.crypto?.onEnd?.({hash});\n }\n}\n"],"file":"crc32c-hash.js"}
1
+ {"version":3,"file":"crc32c-hash.js","names":["CRC32CHash","options","crypto","_hash","CRC32C","input","hashSync","update","hashValue","finalize","hex","toHex","hash","hexToBase64","asyncIterator","chunk","onEnd","Hash"],"sources":["../../../src/lib/crc32c-hash.ts"],"sourcesContent":["// CRC32c\nimport {Hash} from './hash';\nimport CRC32C from './algorithms/crc32c';\nimport {toHex, hexToBase64} from './utils/digest-utils';\n\n/**\n * A transform that calculates CRC32c Hash\n */\nexport class CRC32CHash extends Hash {\n readonly name = 'crc32c';\n\n options;\n private _hash: CRC32C;\n\n /**\n * Atomic hash calculation\n * @returns base64 encoded hash\n */\n constructor(options = {}) {\n super();\n this.options = {crypto: {}, ...options};\n this._hash = new CRC32C(options);\n }\n\n /**\n * Atomic hash calculation\n * @returns base64 encoded hash\n */\n async hash(input: ArrayBuffer): Promise<string> {\n return this.hashSync(input);\n }\n\n hashSync(input: ArrayBuffer): string {\n this._hash.update(input);\n const hashValue = this._hash.finalize();\n const hex = toHex(hashValue);\n const hash = hexToBase64(hex);\n return hash;\n }\n\n // runInBatches inherited\n\n async *hashBatches(\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>\n ): AsyncIterable<ArrayBuffer> {\n for await (const chunk of asyncIterator) {\n this._hash.update(chunk);\n yield chunk;\n }\n const hashValue = this._hash.finalize();\n const hex = toHex(hashValue);\n const hash = hexToBase64(hex);\n this.options.crypto?.onEnd?.({hash});\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AACA;AACA;AACA;AAAwD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAK3CA,UAAU;EAAA;EAAA;EAUrB,sBAA0B;IAAA;IAAA,IAAdC,OAAO,uEAAG,CAAC,CAAC;IAAA;IACtB;IAAQ,oFAVM,QAAQ;IAAA;IAAA;IAWtB,OAAKA,OAAO;MAAIC,MAAM,EAAE,CAAC;IAAC,GAAKD,OAAO,CAAC;IACvC,OAAKE,KAAK,GAAG,IAAIC,eAAM,CAACH,OAAO,CAAC;IAAC;EACnC;;EAAC;IAAA;IAAA;MAAA,sEAMD,iBAAWI,KAAkB;QAAA;UAAA;YAAA;cAAA;gBAAA,iCACpB,IAAI,CAACC,QAAQ,CAACD,KAAK,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAC5B;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA,OAED,kBAASA,KAAkB,EAAU;MACnC,IAAI,CAACF,KAAK,CAACI,MAAM,CAACF,KAAK,CAAC;MACxB,IAAMG,SAAS,GAAG,IAAI,CAACL,KAAK,CAACM,QAAQ,EAAE;MACvC,IAAMC,GAAG,GAAG,IAAAC,kBAAK,EAACH,SAAS,CAAC;MAC5B,IAAMI,IAAI,GAAG,IAAAC,wBAAW,EAACH,GAAG,CAAC;MAC7B,OAAOE,IAAI;IACb;;EAAC;IAAA;IAAA;;IAID,qBACEE,aAAiE,EACrC;MAAA;MAAA;QAAA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA;gBAAA;gBAAA,2BACFA,aAAa;cAAA;gBAAA;gBAAA;cAAA;gBAAA;kBAAA;kBAAA;gBAAA;gBAAtBC,KAAK;gBACpB,KAAI,CAACZ,KAAK,CAACI,MAAM,CAACQ,KAAK,CAAC;gBAAC;gBACzB,OAAMA,KAAK;cAAA;gBAAA;gBAAA;gBAAA;cAAA;gBAAA;gBAAA;cAAA;gBAAA;gBAAA;gBAAA;gBAAA;cAAA;gBAAA;gBAAA;gBAAA;kBAAA;kBAAA;gBAAA;gBAAA;gBAAA;cAAA;gBAAA;gBAAA;kBAAA;kBAAA;gBAAA;gBAAA;cAAA;gBAAA;cAAA;gBAAA;cAAA;gBAEPP,SAAS,GAAG,KAAI,CAACL,KAAK,CAACM,QAAQ,EAAE;gBACjCC,GAAG,GAAG,IAAAC,kBAAK,EAACH,SAAS,CAAC;gBACtBI,IAAI,GAAG,IAAAC,wBAAW,EAACH,GAAG,CAAC;gBAC7B,6BAAI,CAACT,OAAO,CAACC,MAAM,kFAAnB,qBAAqBc,KAAK,0DAA1B,iDAA6B;kBAACJ,IAAI,EAAJA;gBAAI,CAAC,CAAC;cAAC;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA;IACvC;EAAC;EAAA;AAAA,EA7C6BK,WAAI;AAAA"}
@@ -1,54 +1,34 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.CryptoHash = void 0;
9
-
10
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
-
12
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
-
14
10
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
-
16
11
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
-
18
12
  var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
19
-
20
13
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
21
-
22
14
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
23
-
24
15
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
25
-
26
16
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
27
-
28
17
  var _awaitAsyncGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/awaitAsyncGenerator"));
29
-
30
18
  var _wrapAsyncGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapAsyncGenerator"));
31
-
32
- var _asyncIterator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncIterator"));
33
-
34
19
  var _hash2 = require("./hash");
35
-
36
20
  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
21
  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; } }
39
-
22
+ function _asyncIterator(iterable) { var method, async, sync, retry = 2; for ("undefined" != typeof Symbol && (async = Symbol.asyncIterator, sync = Symbol.iterator); retry--;) { if (async && null != (method = iterable[async])) return method.call(iterable); if (sync && null != (method = iterable[sync])) return new AsyncFromSyncIterator(method.call(iterable)); async = "@@asyncIterator", sync = "@@iterator"; } throw new TypeError("Object is not async iterable"); }
23
+ function AsyncFromSyncIterator(s) { function AsyncFromSyncIteratorContinuation(r) { if (Object(r) !== r) return Promise.reject(new TypeError(r + " is not an object.")); var done = r.done; return Promise.resolve(r.value).then(function (value) { return { value: value, done: done }; }); } return AsyncFromSyncIterator = function AsyncFromSyncIterator(s) { this.s = s, this.n = s.next; }, AsyncFromSyncIterator.prototype = { s: null, n: null, next: function next() { return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments)); }, return: function _return(value) { var ret = this.s.return; return void 0 === ret ? Promise.resolve({ value: value, done: !0 }) : AsyncFromSyncIteratorContinuation(ret.apply(this.s, arguments)); }, throw: function _throw(value) { var thr = this.s.return; return void 0 === thr ? Promise.reject(value) : AsyncFromSyncIteratorContinuation(thr.apply(this.s, arguments)); } }, new AsyncFromSyncIterator(s); }
40
24
  var CryptoJS;
41
25
 
42
26
  var CryptoHash = function (_Hash) {
43
27
  (0, _inherits2.default)(CryptoHash, _Hash);
44
-
45
28
  var _super = _createSuper(CryptoHash);
46
-
47
29
  function CryptoHash(options) {
48
30
  var _this2$options, _this2$options$crypto;
49
-
50
31
  var _this2;
51
-
52
32
  (0, _classCallCheck2.default)(this, CryptoHash);
53
33
  _this2 = _super.call(this);
54
34
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this2), "name", void 0);
@@ -57,21 +37,17 @@ var CryptoHash = function (_Hash) {
57
37
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this2), "_hash", void 0);
58
38
  _this2.options = options;
59
39
  _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
40
  if (!_this2._algorithm) {
62
41
  throw new Error(_this2.name);
63
42
  }
64
-
65
43
  _this2.name = _this2._algorithm.toLowerCase();
66
44
  return _this2;
67
45
  }
68
-
69
46
  (0, _createClass2.default)(CryptoHash, [{
70
47
  key: "preload",
71
48
  value: function () {
72
49
  var _preload = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee() {
73
50
  var _this$options, _this$options$modules, algo;
74
-
75
51
  return _regenerator.default.wrap(function _callee$(_context) {
76
52
  while (1) {
77
53
  switch (_context.prev = _context.next) {
@@ -80,29 +56,22 @@ var CryptoHash = function (_Hash) {
80
56
  _context.next = 4;
81
57
  break;
82
58
  }
83
-
84
59
  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
60
  if (CryptoJS) {
87
61
  _context.next = 4;
88
62
  break;
89
63
  }
90
-
91
64
  throw new Error(this.name);
92
-
93
65
  case 4:
94
66
  if (!this._hash) {
95
67
  algo = CryptoJS.algo[this._algorithm];
96
68
  this._hash = algo.create();
97
69
  }
98
-
99
70
  if (this._hash) {
100
71
  _context.next = 7;
101
72
  break;
102
73
  }
103
-
104
74
  throw new Error(this.name);
105
-
106
75
  case 7:
107
76
  case "end":
108
77
  return _context.stop();
@@ -110,11 +79,9 @@ var CryptoHash = function (_Hash) {
110
79
  }
111
80
  }, _callee, this);
112
81
  }));
113
-
114
82
  function preload() {
115
83
  return _preload.apply(this, arguments);
116
84
  }
117
-
118
85
  return preload;
119
86
  }()
120
87
  }, {
@@ -128,11 +95,9 @@ var CryptoHash = function (_Hash) {
128
95
  case 0:
129
96
  _context2.next = 2;
130
97
  return this.preload();
131
-
132
98
  case 2:
133
99
  typedWordArray = CryptoJS.lib.WordArray.create(input);
134
100
  return _context2.abrupt("return", this._hash.update(typedWordArray).finalize().toString(CryptoJS.enc.Base64));
135
-
136
101
  case 4:
137
102
  case "end":
138
103
  return _context2.stop();
@@ -140,122 +105,89 @@ var CryptoHash = function (_Hash) {
140
105
  }
141
106
  }, _callee2, this);
142
107
  }));
143
-
144
108
  function hash(_x) {
145
109
  return _hash.apply(this, arguments);
146
110
  }
147
-
148
111
  return hash;
149
112
  }()
150
113
  }, {
151
114
  key: "hashBatches",
152
115
  value: function hashBatches(asyncIterator) {
153
116
  var _this = this;
154
-
155
117
  return (0, _wrapAsyncGenerator2.default)(_regenerator.default.mark(function _callee3() {
156
118
  var _this$options2, _this$options2$crypto, _this$options2$crypto2;
157
-
158
- var _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, _value, chunk, typedWordArray, hash;
159
-
119
+ var _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, chunk, typedWordArray, hash;
160
120
  return _regenerator.default.wrap(function _callee3$(_context3) {
161
121
  while (1) {
162
122
  switch (_context3.prev = _context3.next) {
163
123
  case 0:
164
124
  _context3.next = 2;
165
125
  return (0, _awaitAsyncGenerator2.default)(_this.preload());
166
-
167
126
  case 2:
168
- _iteratorNormalCompletion = true;
127
+ _iteratorAbruptCompletion = false;
169
128
  _didIteratorError = false;
170
129
  _context3.prev = 4;
171
- _iterator = (0, _asyncIterator2.default)(asyncIterator);
172
-
130
+ _iterator = _asyncIterator(asyncIterator);
173
131
  case 6:
174
132
  _context3.next = 8;
175
133
  return (0, _awaitAsyncGenerator2.default)(_iterator.next());
176
-
177
134
  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;
135
+ if (!(_iteratorAbruptCompletion = !(_step = _context3.sent).done)) {
136
+ _context3.next = 17;
188
137
  break;
189
138
  }
190
-
191
- chunk = _value;
139
+ chunk = _step.value;
192
140
  typedWordArray = CryptoJS.lib.WordArray.create(chunk);
193
-
194
141
  _this._hash.update(typedWordArray);
195
-
196
- _context3.next = 19;
142
+ _context3.next = 14;
197
143
  return chunk;
198
-
199
- case 19:
200
- _iteratorNormalCompletion = true;
144
+ case 14:
145
+ _iteratorAbruptCompletion = false;
201
146
  _context3.next = 6;
202
147
  break;
203
-
204
- case 22:
205
- _context3.next = 28;
148
+ case 17:
149
+ _context3.next = 23;
206
150
  break;
207
-
208
- case 24:
209
- _context3.prev = 24;
151
+ case 19:
152
+ _context3.prev = 19;
210
153
  _context3.t0 = _context3["catch"](4);
211
154
  _didIteratorError = true;
212
155
  _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;
156
+ case 23:
157
+ _context3.prev = 23;
158
+ _context3.prev = 24;
159
+ if (!(_iteratorAbruptCompletion && _iterator.return != null)) {
160
+ _context3.next = 28;
220
161
  break;
221
162
  }
222
-
223
- _context3.next = 33;
163
+ _context3.next = 28;
224
164
  return (0, _awaitAsyncGenerator2.default)(_iterator.return());
225
-
226
- case 33:
227
- _context3.prev = 33;
228
-
165
+ case 28:
166
+ _context3.prev = 28;
229
167
  if (!_didIteratorError) {
230
- _context3.next = 36;
168
+ _context3.next = 31;
231
169
  break;
232
170
  }
233
-
234
171
  throw _iteratorError;
235
-
236
- case 36:
237
- return _context3.finish(33);
238
-
239
- case 37:
172
+ case 31:
240
173
  return _context3.finish(28);
241
-
242
- case 38:
174
+ case 32:
175
+ return _context3.finish(23);
176
+ case 33:
243
177
  hash = _this._hash.finalize().toString(CryptoJS.enc.Base64);
244
178
  (_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
179
  hash: hash
246
180
  });
247
-
248
- case 40:
181
+ case 35:
249
182
  case "end":
250
183
  return _context3.stop();
251
184
  }
252
185
  }
253
- }, _callee3, null, [[4, 24, 28, 38], [29,, 33, 37]]);
186
+ }, _callee3, null, [[4, 19, 23, 33], [24,, 28, 32]]);
254
187
  }))();
255
188
  }
256
189
  }]);
257
190
  return CryptoHash;
258
191
  }(_hash2.Hash);
259
-
260
192
  exports.CryptoHash = CryptoHash;
261
193
  //# 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,"file":"crypto-hash.js","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"],"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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"}