@loaders.gl/crypto 3.1.0-beta.6 → 3.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -7,60 +7,206 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.CRC32CHash = void 0;
9
9
 
10
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
+
12
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
+
14
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
+
16
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
+
18
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
19
+
20
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
21
+
22
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
23
+
24
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
25
+
10
26
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
27
 
12
- var _hash = require("./hash");
28
+ var _awaitAsyncGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/awaitAsyncGenerator"));
13
29
 
14
- var _crc32c = _interopRequireDefault(require("./algorithms/crc32c"));
30
+ var _wrapAsyncGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapAsyncGenerator"));
15
31
 
16
- var _digestUtils = require("./utils/digest-utils");
32
+ var _asyncIterator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncIterator"));
17
33
 
18
- class CRC32CHash extends _hash.Hash {
19
- constructor(options = {}) {
20
- super();
21
- (0, _defineProperty2.default)(this, "name", 'crc32c');
22
- (0, _defineProperty2.default)(this, "options", void 0);
23
- (0, _defineProperty2.default)(this, "_hash", void 0);
24
- this.options = {
25
- crypto: {},
26
- ...options
27
- };
28
- this._hash = new _crc32c.default(options);
29
- }
34
+ var _hash2 = require("./hash");
30
35
 
31
- async hash(input) {
32
- return this.hashSync(input);
33
- }
36
+ var _crc32c = _interopRequireDefault(require("./algorithms/crc32c"));
34
37
 
35
- hashSync(input) {
36
- this._hash.update(input);
38
+ var _digestUtils = require("./utils/digest-utils");
37
39
 
38
- const hashValue = this._hash.finalize();
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; }
39
41
 
40
- const hex = (0, _digestUtils.toHex)(hashValue);
41
- const hash = (0, _digestUtils.hexToBase64)(hex);
42
- return hash;
43
- }
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; }
44
43
 
45
- async *hashBatches(asyncIterator) {
46
- var _this$options$crypto, _this$options$crypto$;
44
+ 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); }; }
47
45
 
48
- for await (const chunk of asyncIterator) {
49
- this._hash.update(chunk);
46
+ 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; } }
50
47
 
51
- yield chunk;
52
- }
48
+ var CRC32CHash = function (_Hash) {
49
+ (0, _inherits2.default)(CRC32CHash, _Hash);
50
+
51
+ var _super = _createSuper(CRC32CHash);
53
52
 
54
- const hashValue = this._hash.finalize();
53
+ function CRC32CHash() {
54
+ var _this2;
55
55
 
56
- const hex = (0, _digestUtils.toHex)(hashValue);
57
- const hash = (0, _digestUtils.hexToBase64)(hex);
58
- (_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, {
59
- hash
60
- });
56
+ var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
57
+ (0, _classCallCheck2.default)(this, CRC32CHash);
58
+ _this2 = _super.call(this);
59
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this2), "name", 'crc32c');
60
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this2), "options", void 0);
61
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this2), "_hash", void 0);
62
+ _this2.options = _objectSpread({
63
+ crypto: {}
64
+ }, options);
65
+ _this2._hash = new _crc32c.default(options);
66
+ return _this2;
61
67
  }
62
68
 
63
- }
69
+ (0, _createClass2.default)(CRC32CHash, [{
70
+ key: "hash",
71
+ value: function () {
72
+ var _hash = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(input) {
73
+ return _regenerator.default.wrap(function _callee$(_context) {
74
+ while (1) {
75
+ switch (_context.prev = _context.next) {
76
+ case 0:
77
+ return _context.abrupt("return", this.hashSync(input));
78
+
79
+ case 1:
80
+ case "end":
81
+ return _context.stop();
82
+ }
83
+ }
84
+ }, _callee, this);
85
+ }));
86
+
87
+ function hash(_x) {
88
+ return _hash.apply(this, arguments);
89
+ }
90
+
91
+ return hash;
92
+ }()
93
+ }, {
94
+ key: "hashSync",
95
+ value: function hashSync(input) {
96
+ this._hash.update(input);
97
+
98
+ var hashValue = this._hash.finalize();
99
+
100
+ var hex = (0, _digestUtils.toHex)(hashValue);
101
+ var hash = (0, _digestUtils.hexToBase64)(hex);
102
+ return hash;
103
+ }
104
+ }, {
105
+ key: "hashBatches",
106
+ value: function hashBatches(asyncIterator) {
107
+ var _this = this;
108
+
109
+ return (0, _wrapAsyncGenerator2.default)(_regenerator.default.mark(function _callee2() {
110
+ var _this$options$crypto, _this$options$crypto$;
111
+
112
+ var _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, _value, chunk, hashValue, hex, hash;
113
+
114
+ return _regenerator.default.wrap(function _callee2$(_context2) {
115
+ while (1) {
116
+ switch (_context2.prev = _context2.next) {
117
+ case 0:
118
+ _iteratorNormalCompletion = true;
119
+ _didIteratorError = false;
120
+ _context2.prev = 2;
121
+ _iterator = (0, _asyncIterator2.default)(asyncIterator);
122
+
123
+ case 4:
124
+ _context2.next = 6;
125
+ return (0, _awaitAsyncGenerator2.default)(_iterator.next());
126
+
127
+ 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;
138
+ break;
139
+ }
140
+
141
+ chunk = _value;
142
+
143
+ _this._hash.update(chunk);
144
+
145
+ _context2.next = 16;
146
+ return chunk;
147
+
148
+ case 16:
149
+ _iteratorNormalCompletion = true;
150
+ _context2.next = 4;
151
+ break;
152
+
153
+ case 19:
154
+ _context2.next = 25;
155
+ break;
156
+
157
+ case 21:
158
+ _context2.prev = 21;
159
+ _context2.t0 = _context2["catch"](2);
160
+ _didIteratorError = true;
161
+ _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;
169
+ break;
170
+ }
171
+
172
+ _context2.next = 30;
173
+ return (0, _awaitAsyncGenerator2.default)(_iterator.return());
174
+
175
+ case 30:
176
+ _context2.prev = 30;
177
+
178
+ if (!_didIteratorError) {
179
+ _context2.next = 33;
180
+ break;
181
+ }
182
+
183
+ throw _iteratorError;
184
+
185
+ case 33:
186
+ return _context2.finish(30);
187
+
188
+ case 34:
189
+ return _context2.finish(25);
190
+
191
+ case 35:
192
+ hashValue = _this._hash.finalize();
193
+ hex = (0, _digestUtils.toHex)(hashValue);
194
+ hash = (0, _digestUtils.hexToBase64)(hex);
195
+ (_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
+ hash: hash
197
+ });
198
+
199
+ case 39:
200
+ case "end":
201
+ return _context2.stop();
202
+ }
203
+ }
204
+ }, _callee2, null, [[2, 21, 25, 35], [26,, 30, 34]]);
205
+ }))();
206
+ }
207
+ }]);
208
+ return CRC32CHash;
209
+ }(_hash2.Hash);
64
210
 
65
211
  exports.CRC32CHash = CRC32CHash;
66
212
  //# sourceMappingURL=crc32c-hash.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/crc32c-hash.ts"],"names":["CRC32CHash","Hash","constructor","options","crypto","_hash","CRC32C","hash","input","hashSync","update","hashValue","finalize","hex","hashBatches","asyncIterator","chunk","onEnd"],"mappings":";;;;;;;;;;;AACA;;AACA;;AACA;;AAKO,MAAMA,UAAN,SAAyBC,UAAzB,CAA8B;AAUnCC,EAAAA,WAAW,CAACC,OAAO,GAAG,EAAX,EAAe;AACxB;AADwB,gDATV,QASU;AAAA;AAAA;AAExB,SAAKA,OAAL,GAAe;AAACC,MAAAA,MAAM,EAAE,EAAT;AAAa,SAAGD;AAAhB,KAAf;AACA,SAAKE,KAAL,GAAa,IAAIC,eAAJ,CAAWH,OAAX,CAAb;AACD;;AAMS,QAAJI,IAAI,CAACC,KAAD,EAAsC;AAC9C,WAAO,KAAKC,QAAL,CAAcD,KAAd,CAAP;AACD;;AAEDC,EAAAA,QAAQ,CAACD,KAAD,EAA6B;AACnC,SAAKH,KAAL,CAAWK,MAAX,CAAkBF,KAAlB;;AACA,UAAMG,SAAS,GAAG,KAAKN,KAAL,CAAWO,QAAX,EAAlB;;AACA,UAAMC,GAAG,GAAG,wBAAMF,SAAN,CAAZ;AACA,UAAMJ,IAAI,GAAG,8BAAYM,GAAZ,CAAb;AACA,WAAON,IAAP;AACD;;AAIiB,SAAXO,WAAW,CAChBC,aADgB,EAEY;AAAA;;AAC5B,eAAW,MAAMC,KAAjB,IAA0BD,aAA1B,EAAyC;AACvC,WAAKV,KAAL,CAAWK,MAAX,CAAkBM,KAAlB;;AACA,YAAMA,KAAN;AACD;;AACD,UAAML,SAAS,GAAG,KAAKN,KAAL,CAAWO,QAAX,EAAlB;;AACA,UAAMC,GAAG,GAAG,wBAAMF,SAAN,CAAZ;AACA,UAAMJ,IAAI,GAAG,8BAAYM,GAAZ,CAAb;AACA,iCAAKV,OAAL,CAAaC,MAAb,uGAAqBa,KAArB,2GAA6B;AAACV,MAAAA;AAAD,KAA7B;AACD;;AA7CkC","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,"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"}
@@ -7,79 +7,255 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.CryptoHash = void 0;
9
9
 
10
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
+
12
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
+
14
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
+
16
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
+
18
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
19
+
20
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
21
+
22
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
23
+
24
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
25
+
10
26
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
27
 
12
- var _hash = require("./hash");
28
+ var _awaitAsyncGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/awaitAsyncGenerator"));
29
+
30
+ var _wrapAsyncGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapAsyncGenerator"));
31
+
32
+ var _asyncIterator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncIterator"));
33
+
34
+ var _hash2 = require("./hash");
35
+
36
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
37
+
38
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
13
39
 
14
- let CryptoJS;
40
+ var CryptoJS;
15
41
 
16
- class CryptoHash extends _hash.Hash {
17
- constructor(options) {
18
- var _this$options, _this$options$crypto;
42
+ var CryptoHash = function (_Hash) {
43
+ (0, _inherits2.default)(CryptoHash, _Hash);
19
44
 
20
- super();
21
- (0, _defineProperty2.default)(this, "name", void 0);
22
- (0, _defineProperty2.default)(this, "options", void 0);
23
- (0, _defineProperty2.default)(this, "_algorithm", void 0);
24
- (0, _defineProperty2.default)(this, "_hash", void 0);
25
- this.options = options;
26
- this._algorithm = (_this$options = this.options) === null || _this$options === void 0 ? void 0 : (_this$options$crypto = _this$options.crypto) === null || _this$options$crypto === void 0 ? void 0 : _this$options$crypto.algorithm;
45
+ var _super = _createSuper(CryptoHash);
27
46
 
28
- if (!this._algorithm) {
29
- throw new Error(this.name);
47
+ function CryptoHash(options) {
48
+ var _this2$options, _this2$options$crypto;
49
+
50
+ var _this2;
51
+
52
+ (0, _classCallCheck2.default)(this, CryptoHash);
53
+ _this2 = _super.call(this);
54
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this2), "name", void 0);
55
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this2), "options", void 0);
56
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this2), "_algorithm", void 0);
57
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this2), "_hash", void 0);
58
+ _this2.options = options;
59
+ _this2._algorithm = (_this2$options = _this2.options) === null || _this2$options === void 0 ? void 0 : (_this2$options$crypto = _this2$options.crypto) === null || _this2$options$crypto === void 0 ? void 0 : _this2$options$crypto.algorithm;
60
+
61
+ if (!_this2._algorithm) {
62
+ throw new Error(_this2.name);
30
63
  }
31
64
 
32
- this.name = this._algorithm.toLowerCase();
65
+ _this2.name = _this2._algorithm.toLowerCase();
66
+ return _this2;
33
67
  }
34
68
 
35
- async preload() {
36
- if (!CryptoJS) {
37
- var _this$options2, _this$options2$module;
69
+ (0, _createClass2.default)(CryptoHash, [{
70
+ key: "preload",
71
+ value: function () {
72
+ var _preload = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee() {
73
+ var _this$options, _this$options$modules, algo;
74
+
75
+ return _regenerator.default.wrap(function _callee$(_context) {
76
+ while (1) {
77
+ switch (_context.prev = _context.next) {
78
+ case 0:
79
+ if (CryptoJS) {
80
+ _context.next = 4;
81
+ break;
82
+ }
83
+
84
+ CryptoJS = (_this$options = this.options) === null || _this$options === void 0 ? void 0 : (_this$options$modules = _this$options.modules) === null || _this$options$modules === void 0 ? void 0 : _this$options$modules.CryptoJS;
85
+
86
+ if (CryptoJS) {
87
+ _context.next = 4;
88
+ break;
89
+ }
38
90
 
39
- CryptoJS = (_this$options2 = this.options) === null || _this$options2 === void 0 ? void 0 : (_this$options2$module = _this$options2.modules) === null || _this$options2$module === void 0 ? void 0 : _this$options2$module.CryptoJS;
91
+ throw new Error(this.name);
40
92
 
41
- if (!CryptoJS) {
42
- throw new Error(this.name);
93
+ case 4:
94
+ if (!this._hash) {
95
+ algo = CryptoJS.algo[this._algorithm];
96
+ this._hash = algo.create();
97
+ }
98
+
99
+ if (this._hash) {
100
+ _context.next = 7;
101
+ break;
102
+ }
103
+
104
+ throw new Error(this.name);
105
+
106
+ case 7:
107
+ case "end":
108
+ return _context.stop();
109
+ }
110
+ }
111
+ }, _callee, this);
112
+ }));
113
+
114
+ function preload() {
115
+ return _preload.apply(this, arguments);
43
116
  }
44
- }
45
117
 
46
- if (!this._hash) {
47
- const algo = CryptoJS.algo[this._algorithm];
48
- this._hash = algo.create();
49
- }
118
+ return preload;
119
+ }()
120
+ }, {
121
+ key: "hash",
122
+ value: function () {
123
+ var _hash = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(input) {
124
+ var typedWordArray;
125
+ return _regenerator.default.wrap(function _callee2$(_context2) {
126
+ while (1) {
127
+ switch (_context2.prev = _context2.next) {
128
+ case 0:
129
+ _context2.next = 2;
130
+ return this.preload();
50
131
 
51
- if (!this._hash) {
52
- throw new Error(this.name);
53
- }
54
- }
132
+ case 2:
133
+ typedWordArray = CryptoJS.lib.WordArray.create(input);
134
+ return _context2.abrupt("return", this._hash.update(typedWordArray).finalize().toString(CryptoJS.enc.Base64));
55
135
 
56
- async hash(input) {
57
- await this.preload();
58
- const typedWordArray = CryptoJS.lib.WordArray.create(input);
59
- return this._hash.update(typedWordArray).finalize().toString(CryptoJS.enc.Base64);
60
- }
136
+ case 4:
137
+ case "end":
138
+ return _context2.stop();
139
+ }
140
+ }
141
+ }, _callee2, this);
142
+ }));
61
143
 
62
- async *hashBatches(asyncIterator) {
63
- var _this$options3, _this$options3$crypto, _this$options3$crypto2;
144
+ function hash(_x) {
145
+ return _hash.apply(this, arguments);
146
+ }
64
147
 
65
- await this.preload();
148
+ return hash;
149
+ }()
150
+ }, {
151
+ key: "hashBatches",
152
+ value: function hashBatches(asyncIterator) {
153
+ var _this = this;
66
154
 
67
- for await (const chunk of asyncIterator) {
68
- const typedWordArray = CryptoJS.lib.WordArray.create(chunk);
155
+ return (0, _wrapAsyncGenerator2.default)(_regenerator.default.mark(function _callee3() {
156
+ var _this$options2, _this$options2$crypto, _this$options2$crypto2;
69
157
 
70
- this._hash.update(typedWordArray);
158
+ var _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, _value, chunk, typedWordArray, hash;
71
159
 
72
- yield chunk;
73
- }
160
+ return _regenerator.default.wrap(function _callee3$(_context3) {
161
+ while (1) {
162
+ switch (_context3.prev = _context3.next) {
163
+ case 0:
164
+ _context3.next = 2;
165
+ return (0, _awaitAsyncGenerator2.default)(_this.preload());
74
166
 
75
- const hash = this._hash.finalize().toString(CryptoJS.enc.Base64);
167
+ case 2:
168
+ _iteratorNormalCompletion = true;
169
+ _didIteratorError = false;
170
+ _context3.prev = 4;
171
+ _iterator = (0, _asyncIterator2.default)(asyncIterator);
76
172
 
77
- (_this$options3 = this.options) === null || _this$options3 === void 0 ? void 0 : (_this$options3$crypto = _this$options3.crypto) === null || _this$options3$crypto === void 0 ? void 0 : (_this$options3$crypto2 = _this$options3$crypto.onEnd) === null || _this$options3$crypto2 === void 0 ? void 0 : _this$options3$crypto2.call(_this$options3$crypto, {
78
- hash
79
- });
80
- }
173
+ case 6:
174
+ _context3.next = 8;
175
+ return (0, _awaitAsyncGenerator2.default)(_iterator.next());
176
+
177
+ case 8:
178
+ _step = _context3.sent;
179
+ _iteratorNormalCompletion = _step.done;
180
+ _context3.next = 12;
181
+ return (0, _awaitAsyncGenerator2.default)(_step.value);
182
+
183
+ case 12:
184
+ _value = _context3.sent;
185
+
186
+ if (_iteratorNormalCompletion) {
187
+ _context3.next = 22;
188
+ break;
189
+ }
190
+
191
+ chunk = _value;
192
+ typedWordArray = CryptoJS.lib.WordArray.create(chunk);
193
+
194
+ _this._hash.update(typedWordArray);
195
+
196
+ _context3.next = 19;
197
+ return chunk;
198
+
199
+ case 19:
200
+ _iteratorNormalCompletion = true;
201
+ _context3.next = 6;
202
+ break;
81
203
 
82
- }
204
+ case 22:
205
+ _context3.next = 28;
206
+ break;
207
+
208
+ case 24:
209
+ _context3.prev = 24;
210
+ _context3.t0 = _context3["catch"](4);
211
+ _didIteratorError = true;
212
+ _iteratorError = _context3.t0;
213
+
214
+ case 28:
215
+ _context3.prev = 28;
216
+ _context3.prev = 29;
217
+
218
+ if (!(!_iteratorNormalCompletion && _iterator.return != null)) {
219
+ _context3.next = 33;
220
+ break;
221
+ }
222
+
223
+ _context3.next = 33;
224
+ return (0, _awaitAsyncGenerator2.default)(_iterator.return());
225
+
226
+ case 33:
227
+ _context3.prev = 33;
228
+
229
+ if (!_didIteratorError) {
230
+ _context3.next = 36;
231
+ break;
232
+ }
233
+
234
+ throw _iteratorError;
235
+
236
+ case 36:
237
+ return _context3.finish(33);
238
+
239
+ case 37:
240
+ return _context3.finish(28);
241
+
242
+ case 38:
243
+ hash = _this._hash.finalize().toString(CryptoJS.enc.Base64);
244
+ (_this$options2 = _this.options) === null || _this$options2 === void 0 ? void 0 : (_this$options2$crypto = _this$options2.crypto) === null || _this$options2$crypto === void 0 ? void 0 : (_this$options2$crypto2 = _this$options2$crypto.onEnd) === null || _this$options2$crypto2 === void 0 ? void 0 : _this$options2$crypto2.call(_this$options2$crypto, {
245
+ hash: hash
246
+ });
247
+
248
+ case 40:
249
+ case "end":
250
+ return _context3.stop();
251
+ }
252
+ }
253
+ }, _callee3, null, [[4, 24, 28, 38], [29,, 33, 37]]);
254
+ }))();
255
+ }
256
+ }]);
257
+ return CryptoHash;
258
+ }(_hash2.Hash);
83
259
 
84
260
  exports.CryptoHash = CryptoHash;
85
261
  //# sourceMappingURL=crypto-hash.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/crypto-hash.ts"],"names":["CryptoJS","CryptoHash","Hash","constructor","options","_algorithm","crypto","algorithm","Error","name","toLowerCase","preload","modules","_hash","algo","create","hash","input","typedWordArray","lib","WordArray","update","finalize","toString","enc","Base64","hashBatches","asyncIterator","chunk","onEnd"],"mappings":";;;;;;;;;;;AAEA;;AAUA,IAAIA,QAAJ;;AAMO,MAAMC,UAAN,SAAyBC,UAAzB,CAA8B;AAOnCC,EAAAA,WAAW,CAACC,OAAD,EAA6B;AAAA;;AACtC;AADsC;AAAA;AAAA;AAAA;AAEtC,SAAKA,OAAL,GAAeA,OAAf;AACA,SAAKC,UAAL,oBAAkB,KAAKD,OAAvB,0EAAkB,cAAcE,MAAhC,yDAAkB,qBAAsBC,SAAxC;;AACA,QAAI,CAAC,KAAKF,UAAV,EAAsB;AACpB,YAAM,IAAIG,KAAJ,CAAU,KAAKC,IAAf,CAAN;AACD;;AACD,SAAKA,IAAL,GAAY,KAAKJ,UAAL,CAAgBK,WAAhB,EAAZ;AACD;;AAEY,QAAPC,OAAO,GAAkB;AAC7B,QAAI,CAACX,QAAL,EAAe;AAAA;;AACbA,MAAAA,QAAQ,qBAAG,KAAKI,OAAR,4EAAG,eAAcQ,OAAjB,0DAAG,sBAAuBZ,QAAlC;;AACA,UAAI,CAACA,QAAL,EAAe;AACb,cAAM,IAAIQ,KAAJ,CAAU,KAAKC,IAAf,CAAN;AACD;AACF;;AACD,QAAI,CAAC,KAAKI,KAAV,EAAiB;AACf,YAAMC,IAAI,GAAGd,QAAQ,CAACc,IAAT,CAAc,KAAKT,UAAnB,CAAb;AACA,WAAKQ,KAAL,GAAaC,IAAI,CAACC,MAAL,EAAb;AACD;;AACD,QAAI,CAAC,KAAKF,KAAV,EAAiB;AACf,YAAM,IAAIL,KAAJ,CAAU,KAAKC,IAAf,CAAN;AACD;AACF;;AAMS,QAAJO,IAAI,CAACC,KAAD,EAAsC;AAC9C,UAAM,KAAKN,OAAL,EAAN;AAIA,UAAMO,cAAc,GAAGlB,QAAQ,CAACmB,GAAT,CAAaC,SAAb,CAAuBL,MAAvB,CAA8BE,KAA9B,CAAvB;AACA,WAAO,KAAKJ,KAAL,CAAWQ,MAAX,CAAkBH,cAAlB,EAAkCI,QAAlC,GAA6CC,QAA7C,CAAsDvB,QAAQ,CAACwB,GAAT,CAAaC,MAAnE,CAAP;AACD;;AAEiB,SAAXC,WAAW,CAChBC,aADgB,EAEY;AAAA;;AAC5B,UAAM,KAAKhB,OAAL,EAAN;;AACA,eAAW,MAAMiB,KAAjB,IAA0BD,aAA1B,EAAyC;AAIvC,YAAMT,cAAc,GAAGlB,QAAQ,CAACmB,GAAT,CAAaC,SAAb,CAAuBL,MAAvB,CAA8Ba,KAA9B,CAAvB;;AACA,WAAKf,KAAL,CAAWQ,MAAX,CAAkBH,cAAlB;;AACA,YAAMU,KAAN;AACD;;AACD,UAAMZ,IAAI,GAAG,KAAKH,KAAL,CAAWS,QAAX,GAAsBC,QAAtB,CAA+BvB,QAAQ,CAACwB,GAAT,CAAaC,MAA5C,CAAb;;AACA,2BAAKrB,OAAL,2FAAcE,MAAd,0GAAsBuB,KAAtB,8GAA8B;AAACb,MAAAA;AAAD,KAA9B;AACD;;AA5DkC","sourcesContent":["// This dependency is too big, application must provide it\nimport type * as CryptoJSNamespace from 'crypto-js';\nimport {Hash} from './hash';\n\ntype CryptoHashOptions = {\n modules: {[moduleName: string]: any};\n crypto: {\n algorithm: string;\n onEnd?: (result: {hash: string}) => any;\n };\n};\n\nlet CryptoJS: typeof CryptoJSNamespace;\n\n/**\n * A transform that calculates Cryptographic Hash using Crypto JS library\n * @deprecated Warning, experimental class\n */\nexport class CryptoHash extends Hash {\n readonly name;\n\n options: CryptoHashOptions;\n private _algorithm;\n private _hash;\n\n constructor(options: CryptoHashOptions) {\n super();\n this.options = options;\n this._algorithm = this.options?.crypto?.algorithm;\n if (!this._algorithm) {\n throw new Error(this.name);\n }\n this.name = this._algorithm.toLowerCase();\n }\n\n async preload(): Promise<void> {\n if (!CryptoJS) {\n CryptoJS = this.options?.modules?.CryptoJS;\n if (!CryptoJS) {\n throw new Error(this.name);\n }\n }\n if (!this._hash) {\n const algo = CryptoJS.algo[this._algorithm];\n this._hash = algo.create();\n }\n if (!this._hash) {\n throw new Error(this.name);\n }\n }\n\n /**\n * Atomic hash calculation\n * @returns base64 encoded hash\n */\n async hash(input: ArrayBuffer): Promise<string> {\n await this.preload();\n // arrayBuffer is accepted, even though types and docs say no\n // https://stackoverflow.com/questions/25567468/how-to-decrypt-an-arraybuffer\n // @ts-expect-error\n const typedWordArray = CryptoJS.lib.WordArray.create(input);\n return this._hash.update(typedWordArray).finalize().toString(CryptoJS.enc.Base64);\n }\n\n async *hashBatches(\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>\n ): AsyncIterable<ArrayBuffer> {\n await this.preload();\n for await (const chunk of asyncIterator) {\n // arrayBuffer is accepted, even though types and docs say no\n // https://stackoverflow.com/questions/25567468/how-to-decrypt-an-arraybuffer\n // @ts-expect-error\n const typedWordArray = CryptoJS.lib.WordArray.create(chunk);\n this._hash.update(typedWordArray);\n yield chunk;\n }\n const hash = this._hash.finalize().toString(CryptoJS.enc.Base64);\n this.options?.crypto?.onEnd?.({hash});\n }\n}\n"],"file":"crypto-hash.js"}
1
+ {"version":3,"sources":["../../../src/lib/crypto-hash.ts"],"names":["CryptoJS","CryptoHash","options","_algorithm","crypto","algorithm","Error","name","toLowerCase","modules","_hash","algo","create","input","preload","typedWordArray","lib","WordArray","update","finalize","toString","enc","Base64","asyncIterator","chunk","hash","onEnd","Hash"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;;;;;;AAUA,IAAIA,QAAJ;;IAMaC,U;;;;;AAOX,sBAAYC,OAAZ,EAAwC;AAAA;;AAAA;;AAAA;AACtC;AADsC;AAAA;AAAA;AAAA;AAEtC,WAAKA,OAAL,GAAeA,OAAf;AACA,WAAKC,UAAL,qBAAkB,OAAKD,OAAvB,4EAAkB,eAAcE,MAAhC,0DAAkB,sBAAsBC,SAAxC;;AACA,QAAI,CAAC,OAAKF,UAAV,EAAsB;AACpB,YAAM,IAAIG,KAAJ,CAAU,OAAKC,IAAf,CAAN;AACD;;AACD,WAAKA,IAAL,GAAY,OAAKJ,UAAL,CAAgBK,WAAhB,EAAZ;AAPsC;AAQvC;;;;;+EAED;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA,oBACOR,QADP;AAAA;AAAA;AAAA;;AAEIA,gBAAAA,QAAQ,oBAAG,KAAKE,OAAR,2EAAG,cAAcO,OAAjB,0DAAG,sBAAuBT,QAAlC;;AAFJ,oBAGSA,QAHT;AAAA;AAAA;AAAA;;AAAA,sBAIY,IAAIM,KAAJ,CAAU,KAAKC,IAAf,CAJZ;;AAAA;AAOE,oBAAI,CAAC,KAAKG,KAAV,EAAiB;AACTC,kBAAAA,IADS,GACFX,QAAQ,CAACW,IAAT,CAAc,KAAKR,UAAnB,CADE;AAEf,uBAAKO,KAAL,GAAaC,IAAI,CAACC,MAAL,EAAb;AACD;;AAVH,oBAWO,KAAKF,KAXZ;AAAA;AAAA;AAAA;;AAAA,sBAYU,IAAIJ,KAAJ,CAAU,KAAKC,IAAf,CAZV;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;4EAoBA,kBAAWM,KAAX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBACQ,KAAKC,OAAL,EADR;;AAAA;AAKQC,gBAAAA,cALR,GAKyBf,QAAQ,CAACgB,GAAT,CAAaC,SAAb,CAAuBL,MAAvB,CAA8BC,KAA9B,CALzB;AAAA,kDAMS,KAAKH,KAAL,CAAWQ,MAAX,CAAkBH,cAAlB,EAAkCI,QAAlC,GAA6CC,QAA7C,CAAsDpB,QAAQ,CAACqB,GAAT,CAAaC,MAAnE,CANT;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;WASA,qBACEC,aADF,EAE8B;AAAA;;AAAA;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0DACtB,KAAI,CAACT,OAAL,EADsB;;AAAA;AAAA;AAAA;AAAA;AAAA,yDAEFS,aAFE;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAEXC,gBAAAA,KAFW;AAMpBT,gBAAAA,cANoB,GAMHf,QAAQ,CAACgB,GAAT,CAAaC,SAAb,CAAuBL,MAAvB,CAA8BY,KAA9B,CANG;;AAO1B,gBAAA,KAAI,CAACd,KAAL,CAAWQ,MAAX,CAAkBH,cAAlB;;AAP0B;AAQ1B,uBAAMS,KAAN;;AAR0B;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;AAUtBC,gBAAAA,IAVsB,GAUf,KAAI,CAACf,KAAL,CAAWS,QAAX,GAAsBC,QAAtB,CAA+BpB,QAAQ,CAACqB,GAAT,CAAaC,MAA5C,CAVe;AAW5B,kCAAA,KAAI,CAACpB,OAAL,2FAAcE,MAAd,0GAAsBsB,KAAtB,8GAA8B;AAACD,kBAAAA,IAAI,EAAJA;AAAD,iBAA9B;;AAX4B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAY7B;;;EA5D6BE,W","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"}