@loaders.gl/crypto 3.3.0-alpha.1 → 3.3.0-alpha.11

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 (76) hide show
  1. package/dist/crypto-worker.js +1 -1
  2. package/dist/crypto-worker.js.map +1 -1
  3. package/dist/dist.min.js.map +1 -1
  4. package/dist/es5/bundle.js +0 -1
  5. package/dist/es5/bundle.js.map +1 -1
  6. package/dist/es5/index.js +16 -21
  7. package/dist/es5/index.js.map +1 -1
  8. package/dist/es5/lib/algorithms/crc32.js +0 -9
  9. package/dist/es5/lib/algorithms/crc32.js.map +1 -1
  10. package/dist/es5/lib/algorithms/crc32c.js +1 -10
  11. package/dist/es5/lib/algorithms/crc32c.js.map +1 -1
  12. package/dist/es5/lib/algorithms/md5-wasm.js +32 -66
  13. package/dist/es5/lib/algorithms/md5-wasm.js.map +1 -1
  14. package/dist/es5/lib/crc32-hash.js +32 -90
  15. package/dist/es5/lib/crc32-hash.js.map +1 -1
  16. package/dist/es5/lib/crc32c-hash.js +36 -91
  17. package/dist/es5/lib/crc32c-hash.js.map +1 -1
  18. package/dist/es5/lib/crypto-hash.js +30 -98
  19. package/dist/es5/lib/crypto-hash.js.map +1 -1
  20. package/dist/es5/lib/hash.js +35 -82
  21. package/dist/es5/lib/hash.js.map +1 -1
  22. package/dist/es5/lib/md5-hash.js +3 -25
  23. package/dist/es5/lib/md5-hash.js.map +1 -1
  24. package/dist/es5/lib/node-hash.js +30 -86
  25. package/dist/es5/lib/node-hash.js.map +1 -1
  26. package/dist/es5/lib/sha256-hash.js +4 -19
  27. package/dist/es5/lib/sha256-hash.js.map +1 -1
  28. package/dist/es5/lib/utils/base64-utils.js +0 -13
  29. package/dist/es5/lib/utils/base64-utils.js.map +1 -1
  30. package/dist/es5/lib/utils/digest-utils.js +1 -4
  31. package/dist/es5/lib/utils/digest-utils.js.map +1 -1
  32. package/dist/es5/types.js.map +1 -1
  33. package/dist/es5/workers/worker.js +6 -22
  34. package/dist/es5/workers/worker.js.map +1 -1
  35. package/dist/esm/bundle.js +1 -1
  36. package/dist/esm/bundle.js.map +1 -1
  37. package/dist/esm/index.js +6 -1
  38. package/dist/esm/index.js.map +1 -1
  39. package/dist/esm/lib/algorithms/crc32.js +2 -6
  40. package/dist/esm/lib/algorithms/crc32.js.map +1 -1
  41. package/dist/esm/lib/algorithms/crc32c.js +4 -9
  42. package/dist/esm/lib/algorithms/crc32c.js.map +1 -1
  43. package/dist/esm/lib/algorithms/md5-wasm.js +34 -64
  44. package/dist/esm/lib/algorithms/md5-wasm.js.map +1 -1
  45. package/dist/esm/lib/crc32-hash.js +3 -14
  46. package/dist/esm/lib/crc32-hash.js.map +1 -1
  47. package/dist/esm/lib/crc32c-hash.js +3 -13
  48. package/dist/esm/lib/crc32c-hash.js.map +1 -1
  49. package/dist/esm/lib/crypto-hash.js +2 -21
  50. package/dist/esm/lib/crypto-hash.js.map +1 -1
  51. package/dist/esm/lib/hash.js +2 -9
  52. package/dist/esm/lib/hash.js.map +1 -1
  53. package/dist/esm/lib/md5-hash.js +5 -6
  54. package/dist/esm/lib/md5-hash.js.map +1 -1
  55. package/dist/esm/lib/node-hash.js +2 -13
  56. package/dist/esm/lib/node-hash.js.map +1 -1
  57. package/dist/esm/lib/sha256-hash.js +5 -3
  58. package/dist/esm/lib/sha256-hash.js.map +1 -1
  59. package/dist/esm/lib/utils/base64-utils.js +1 -12
  60. package/dist/esm/lib/utils/base64-utils.js.map +1 -1
  61. package/dist/esm/lib/utils/digest-utils.js +2 -1
  62. package/dist/esm/lib/utils/digest-utils.js.map +1 -1
  63. package/dist/esm/types.js.map +1 -1
  64. package/dist/esm/workers/worker.js +3 -5
  65. package/dist/esm/workers/worker.js.map +1 -1
  66. package/dist/lib/crypto-hash.d.ts +1 -1
  67. package/dist/lib/crypto-hash.d.ts.map +1 -1
  68. package/dist/lib/hash.d.ts +1 -1
  69. package/dist/lib/hash.d.ts.map +1 -1
  70. package/dist/lib/node-hash.d.ts +1 -1
  71. package/dist/lib/node-hash.d.ts.map +1 -1
  72. package/dist/lib/sha256-hash.d.ts +1 -1
  73. package/dist/lib/sha256-hash.d.ts.map +1 -1
  74. package/dist/types.d.ts +1 -1
  75. package/dist/types.d.ts.map +1 -1
  76. 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.CRC32Hash = 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 _crc = _interopRequireDefault(require("./algorithms/crc32"));
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 CRC32Hash = function (_Hash) {
49
29
  (0, _inherits2.default)(CRC32Hash, _Hash);
50
-
51
30
  var _super = _createSuper(CRC32Hash);
52
-
53
31
  function CRC32Hash() {
54
32
  var _this2;
55
-
56
33
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
57
34
  (0, _classCallCheck2.default)(this, CRC32Hash);
58
35
  _this2 = _super.call(this);
@@ -76,7 +53,6 @@ var CRC32Hash = function (_Hash) {
76
53
  switch (_context.prev = _context.next) {
77
54
  case 0:
78
55
  return _context.abrupt("return", this.hashSync(input));
79
-
80
56
  case 1:
81
57
  case "end":
82
58
  return _context.stop();
@@ -84,20 +60,16 @@ var CRC32Hash = function (_Hash) {
84
60
  }
85
61
  }, _callee, this);
86
62
  }));
87
-
88
63
  function hash(_x) {
89
64
  return _hash.apply(this, arguments);
90
65
  }
91
-
92
66
  return hash;
93
67
  }()
94
68
  }, {
95
69
  key: "hashSync",
96
70
  value: function hashSync(input) {
97
71
  this._hash.update(input);
98
-
99
72
  var hashValue = this._hash.finalize();
100
-
101
73
  var hex = (0, _digestUtils.toHex)(hashValue);
102
74
  var hash = (0, _digestUtils.hexToBase64)(hex);
103
75
  return hash;
@@ -106,108 +78,78 @@ var CRC32Hash = function (_Hash) {
106
78
  key: "hashBatches",
107
79
  value: function hashBatches(asyncIterator) {
108
80
  var _this = this;
109
-
110
81
  return (0, _wrapAsyncGenerator2.default)(_regenerator.default.mark(function _callee2() {
111
82
  var _this$options$crypto, _this$options$crypto$;
112
-
113
- var _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, _value, chunk, hashValue, hex, hash;
114
-
83
+ var _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, chunk, hashValue, hex, hash;
115
84
  return _regenerator.default.wrap(function _callee2$(_context2) {
116
85
  while (1) {
117
86
  switch (_context2.prev = _context2.next) {
118
87
  case 0:
119
- _iteratorNormalCompletion = true;
88
+ _iteratorAbruptCompletion = false;
120
89
  _didIteratorError = false;
121
90
  _context2.prev = 2;
122
- _iterator = (0, _asyncIterator2.default)(asyncIterator);
123
-
91
+ _iterator = _asyncIterator(asyncIterator);
124
92
  case 4:
125
93
  _context2.next = 6;
126
94
  return (0, _awaitAsyncGenerator2.default)(_iterator.next());
127
-
128
95
  case 6:
129
- _step = _context2.sent;
130
- _iteratorNormalCompletion = _step.done;
131
- _context2.next = 10;
132
- return (0, _awaitAsyncGenerator2.default)(_step.value);
133
-
134
- case 10:
135
- _value = _context2.sent;
136
-
137
- if (_iteratorNormalCompletion) {
138
- _context2.next = 19;
96
+ if (!(_iteratorAbruptCompletion = !(_step = _context2.sent).done)) {
97
+ _context2.next = 14;
139
98
  break;
140
99
  }
141
-
142
- chunk = _value;
143
-
100
+ chunk = _step.value;
144
101
  _this._hash.update(chunk);
145
-
146
- _context2.next = 16;
102
+ _context2.next = 11;
147
103
  return chunk;
148
-
149
- case 16:
150
- _iteratorNormalCompletion = true;
104
+ case 11:
105
+ _iteratorAbruptCompletion = false;
151
106
  _context2.next = 4;
152
107
  break;
153
-
154
- case 19:
155
- _context2.next = 25;
108
+ case 14:
109
+ _context2.next = 20;
156
110
  break;
157
-
158
- case 21:
159
- _context2.prev = 21;
111
+ case 16:
112
+ _context2.prev = 16;
160
113
  _context2.t0 = _context2["catch"](2);
161
114
  _didIteratorError = true;
162
115
  _iteratorError = _context2.t0;
163
-
164
- case 25:
165
- _context2.prev = 25;
166
- _context2.prev = 26;
167
-
168
- if (!(!_iteratorNormalCompletion && _iterator.return != null)) {
169
- _context2.next = 30;
116
+ case 20:
117
+ _context2.prev = 20;
118
+ _context2.prev = 21;
119
+ if (!(_iteratorAbruptCompletion && _iterator.return != null)) {
120
+ _context2.next = 25;
170
121
  break;
171
122
  }
172
-
173
- _context2.next = 30;
123
+ _context2.next = 25;
174
124
  return (0, _awaitAsyncGenerator2.default)(_iterator.return());
175
-
176
- case 30:
177
- _context2.prev = 30;
178
-
125
+ case 25:
126
+ _context2.prev = 25;
179
127
  if (!_didIteratorError) {
180
- _context2.next = 33;
128
+ _context2.next = 28;
181
129
  break;
182
130
  }
183
-
184
131
  throw _iteratorError;
185
-
186
- case 33:
187
- return _context2.finish(30);
188
-
189
- case 34:
132
+ case 28:
190
133
  return _context2.finish(25);
191
-
192
- case 35:
134
+ case 29:
135
+ return _context2.finish(20);
136
+ case 30:
193
137
  hashValue = _this._hash.finalize();
194
138
  hex = (0, _digestUtils.toHex)(hashValue);
195
139
  hash = (0, _digestUtils.hexToBase64)(hex);
196
140
  (_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, {
197
141
  hash: hash
198
142
  });
199
-
200
- case 39:
143
+ case 34:
201
144
  case "end":
202
145
  return _context2.stop();
203
146
  }
204
147
  }
205
- }, _callee2, null, [[2, 21, 25, 35], [26,, 30, 34]]);
148
+ }, _callee2, null, [[2, 16, 20, 30], [21,, 25, 29]]);
206
149
  }))();
207
150
  }
208
151
  }]);
209
152
  return CRC32Hash;
210
153
  }(_hash2.Hash);
211
-
212
154
  exports.CRC32Hash = CRC32Hash;
213
155
  //# sourceMappingURL=crc32-hash.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/crc32-hash.ts"],"names":["CRC32Hash","options","crypto","_hash","CRC32","hashBatches","bind","input","hashSync","update","hashValue","finalize","hex","hash","asyncIterator","chunk","onEnd","Hash"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AACA;;AACA;;;;;;;;;;IAKaA,S;;;;;AAMX,uBAA0B;AAAA;;AAAA,QAAdC,OAAc,uEAAJ,EAAI;AAAA;AACxB;AADwB,wFALV,OAKU;AAAA;AAAA;AAExB,WAAKA,OAAL;AAAgBC,MAAAA,MAAM,EAAE;AAAxB,OAA+BD,OAA/B;AACA,WAAKE,KAAL,GAAa,IAAIC,YAAJ,EAAb;AACA,WAAKC,WAAL,GAAmB,OAAKA,WAAL,CAAiBC,IAAjB,8CAAnB;AAJwB;AAKzB;;;;;4EAMD,iBAAWC,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,WAAKJ,KAAL,CAAWM,MAAX,CAAkBF,KAAlB;;AACA,UAAMG,SAAS,GAAG,KAAKP,KAAL,CAAWQ,QAAX,EAAlB;;AACA,UAAMC,GAAG,GAAG,wBAAMF,SAAN,CAAZ;AACA,UAAMG,IAAI,GAAG,8BAAYD,GAAZ,CAAb;AACA,aAAOC,IAAP;AACD;;;WAED,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,CAACZ,KAAL,CAAWM,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,CAACP,KAAL,CAAWQ,QAAX,EALU;AAMtBC,gBAAAA,GANsB,GAMhB,wBAAMF,SAAN,CANgB;AAOtBG,gBAAAA,IAPsB,GAOf,8BAAYD,GAAZ,CAPe;AAQ5B,wCAAA,KAAI,CAACX,OAAL,CAAaC,MAAb,uGAAqBc,KAArB,2GAA6B;AAACH,kBAAAA,IAAI,EAAJA;AAAD,iBAA7B;;AAR4B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAS7B;;;EAxC4BI,W","sourcesContent":["// CRC32\nimport {Hash} from './hash';\nimport CRC32 from './algorithms/crc32';\nimport {toHex, hexToBase64} from './utils/digest-utils';\n\n/**\n * Calculates CRC32 Cryptographic Hash\n */\nexport class CRC32Hash extends Hash {\n readonly name = 'crc32';\n\n options;\n private _hash: CRC32;\n\n constructor(options = {}) {\n super();\n this.options = {crypto: {}, ...options};\n this._hash = new CRC32();\n this.hashBatches = this.hashBatches.bind(this);\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 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":"crc32-hash.js"}
1
+ {"version":3,"file":"crc32-hash.js","names":["CRC32Hash","options","crypto","_hash","CRC32","hashBatches","bind","input","hashSync","update","hashValue","finalize","hex","toHex","hash","hexToBase64","asyncIterator","chunk","onEnd","Hash"],"sources":["../../../src/lib/crc32-hash.ts"],"sourcesContent":["// CRC32\nimport {Hash} from './hash';\nimport CRC32 from './algorithms/crc32';\nimport {toHex, hexToBase64} from './utils/digest-utils';\n\n/**\n * Calculates CRC32 Cryptographic Hash\n */\nexport class CRC32Hash extends Hash {\n readonly name = 'crc32';\n\n options;\n private _hash: CRC32;\n\n constructor(options = {}) {\n super();\n this.options = {crypto: {}, ...options};\n this._hash = new CRC32();\n this.hashBatches = this.hashBatches.bind(this);\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 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,SAAS;EAAA;EAAA;EAMpB,qBAA0B;IAAA;IAAA,IAAdC,OAAO,uEAAG,CAAC,CAAC;IAAA;IACtB;IAAQ,oFANM,OAAO;IAAA;IAAA;IAOrB,OAAKA,OAAO;MAAIC,MAAM,EAAE,CAAC;IAAC,GAAKD,OAAO,CAAC;IACvC,OAAKE,KAAK,GAAG,IAAIC,YAAK,EAAE;IACxB,OAAKC,WAAW,GAAG,OAAKA,WAAW,CAACC,IAAI,8CAAM;IAAC;EACjD;;EAAC;IAAA;IAAA;MAAA,sEAMD,iBAAWC,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,CAACJ,KAAK,CAACM,MAAM,CAACF,KAAK,CAAC;MACxB,IAAMG,SAAS,GAAG,IAAI,CAACP,KAAK,CAACQ,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,OAED,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,CAACd,KAAK,CAACM,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,CAACP,KAAK,CAACQ,QAAQ,EAAE;gBACjCC,GAAG,GAAG,IAAAC,kBAAK,EAACH,SAAS,CAAC;gBACtBI,IAAI,GAAG,IAAAC,wBAAW,EAACH,GAAG,CAAC;gBAC7B,6BAAI,CAACX,OAAO,CAACC,MAAM,kFAAnB,qBAAqBgB,KAAK,0DAA1B,iDAA6B;kBAACJ,IAAI,EAAJA;gBAAI,CAAC,CAAC;cAAC;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA;IACvC;EAAC;EAAA;AAAA,EAxC4BK,WAAI;AAAA"}
@@ -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"}