@loaders.gl/crypto 3.4.13 → 3.4.15
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.
- package/dist/es5/bundle.js +1 -1
- package/dist/es5/bundle.js.map +1 -1
- package/dist/es5/index.js +11 -11
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/lib/algorithms/crc32.js +15 -24
- package/dist/es5/lib/algorithms/crc32.js.map +1 -1
- package/dist/es5/lib/algorithms/crc32c.js +16 -25
- package/dist/es5/lib/algorithms/crc32c.js.map +1 -1
- package/dist/es5/lib/algorithms/md5-wasm.js +11 -13
- package/dist/es5/lib/algorithms/md5-wasm.js.map +1 -1
- package/dist/es5/lib/crc32-hash.js +37 -136
- package/dist/es5/lib/crc32-hash.js.map +1 -1
- package/dist/es5/lib/crc32c-hash.js +36 -135
- package/dist/es5/lib/crc32c-hash.js.map +1 -1
- package/dist/es5/lib/crypto-hash.js +48 -172
- package/dist/es5/lib/crypto-hash.js.map +1 -1
- package/dist/es5/lib/hash.js +22 -133
- package/dist/es5/lib/hash.js.map +1 -1
- package/dist/es5/lib/md5-hash.js +14 -53
- package/dist/es5/lib/md5-hash.js.map +1 -1
- package/dist/es5/lib/node-hash.js +32 -133
- package/dist/es5/lib/node-hash.js.map +1 -1
- package/dist/es5/lib/sha256-hash.js +9 -22
- package/dist/es5/lib/sha256-hash.js.map +1 -1
- package/dist/es5/lib/utils/base64-utils.js +13 -13
- package/dist/es5/lib/utils/base64-utils.js.map +1 -1
- package/dist/es5/lib/utils/digest-utils.js +3 -5
- package/dist/es5/lib/utils/digest-utils.js.map +1 -1
- package/dist/es5/workers/worker.js +18 -45
- package/dist/es5/workers/worker.js.map +1 -1
- package/dist/esm/index.js +1 -1
- package/package.json +4 -4
|
@@ -5,145 +5,46 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.CRC32CHash = void 0;
|
|
8
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
10
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
12
|
-
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
13
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
14
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
15
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
16
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
17
|
-
var
|
|
18
|
-
var _wrapAsyncGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapAsyncGenerator"));
|
|
19
|
-
var _hash2 = require("./hash");
|
|
9
|
+
var _hash = require("./hash");
|
|
20
10
|
var _crc32c = _interopRequireDefault(require("./algorithms/crc32c"));
|
|
21
11
|
var _digestUtils = require("./utils/digest-utils");
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
(0, _classCallCheck2.default)(this, CRC32CHash);
|
|
35
|
-
_this2 = _super.call(this);
|
|
36
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this2), "name", 'crc32c');
|
|
37
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this2), "options", void 0);
|
|
38
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this2), "_hash", void 0);
|
|
39
|
-
_this2.options = _objectSpread({
|
|
40
|
-
crypto: {}
|
|
41
|
-
}, options);
|
|
42
|
-
_this2._hash = new _crc32c.default(options);
|
|
43
|
-
return _this2;
|
|
12
|
+
class CRC32CHash extends _hash.Hash {
|
|
13
|
+
constructor() {
|
|
14
|
+
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
15
|
+
super();
|
|
16
|
+
(0, _defineProperty2.default)(this, "name", 'crc32c');
|
|
17
|
+
(0, _defineProperty2.default)(this, "options", void 0);
|
|
18
|
+
(0, _defineProperty2.default)(this, "_hash", void 0);
|
|
19
|
+
this.options = {
|
|
20
|
+
crypto: {},
|
|
21
|
+
...options
|
|
22
|
+
};
|
|
23
|
+
this._hash = new _crc32c.default(options);
|
|
44
24
|
}
|
|
45
|
-
(
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
return _hash.apply(this, arguments);
|
|
61
|
-
}
|
|
62
|
-
return hash;
|
|
63
|
-
}()
|
|
64
|
-
}, {
|
|
65
|
-
key: "hashSync",
|
|
66
|
-
value: function hashSync(input) {
|
|
67
|
-
this._hash.update(input);
|
|
68
|
-
var hashValue = this._hash.finalize();
|
|
69
|
-
var hex = (0, _digestUtils.toHex)(hashValue);
|
|
70
|
-
var hash = (0, _digestUtils.hexToBase64)(hex);
|
|
71
|
-
return hash;
|
|
72
|
-
}
|
|
73
|
-
}, {
|
|
74
|
-
key: "hashBatches",
|
|
75
|
-
value: function hashBatches(asyncIterator) {
|
|
76
|
-
var _this = this;
|
|
77
|
-
return (0, _wrapAsyncGenerator2.default)(_regenerator.default.mark(function _callee2() {
|
|
78
|
-
var _this$options$crypto, _this$options$crypto$;
|
|
79
|
-
var _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, chunk, hashValue, hex, hash;
|
|
80
|
-
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
81
|
-
while (1) switch (_context2.prev = _context2.next) {
|
|
82
|
-
case 0:
|
|
83
|
-
_iteratorAbruptCompletion = false;
|
|
84
|
-
_didIteratorError = false;
|
|
85
|
-
_context2.prev = 2;
|
|
86
|
-
_iterator = _asyncIterator(asyncIterator);
|
|
87
|
-
case 4:
|
|
88
|
-
_context2.next = 6;
|
|
89
|
-
return (0, _awaitAsyncGenerator2.default)(_iterator.next());
|
|
90
|
-
case 6:
|
|
91
|
-
if (!(_iteratorAbruptCompletion = !(_step = _context2.sent).done)) {
|
|
92
|
-
_context2.next = 14;
|
|
93
|
-
break;
|
|
94
|
-
}
|
|
95
|
-
chunk = _step.value;
|
|
96
|
-
_this._hash.update(chunk);
|
|
97
|
-
_context2.next = 11;
|
|
98
|
-
return chunk;
|
|
99
|
-
case 11:
|
|
100
|
-
_iteratorAbruptCompletion = false;
|
|
101
|
-
_context2.next = 4;
|
|
102
|
-
break;
|
|
103
|
-
case 14:
|
|
104
|
-
_context2.next = 20;
|
|
105
|
-
break;
|
|
106
|
-
case 16:
|
|
107
|
-
_context2.prev = 16;
|
|
108
|
-
_context2.t0 = _context2["catch"](2);
|
|
109
|
-
_didIteratorError = true;
|
|
110
|
-
_iteratorError = _context2.t0;
|
|
111
|
-
case 20:
|
|
112
|
-
_context2.prev = 20;
|
|
113
|
-
_context2.prev = 21;
|
|
114
|
-
if (!(_iteratorAbruptCompletion && _iterator.return != null)) {
|
|
115
|
-
_context2.next = 25;
|
|
116
|
-
break;
|
|
117
|
-
}
|
|
118
|
-
_context2.next = 25;
|
|
119
|
-
return (0, _awaitAsyncGenerator2.default)(_iterator.return());
|
|
120
|
-
case 25:
|
|
121
|
-
_context2.prev = 25;
|
|
122
|
-
if (!_didIteratorError) {
|
|
123
|
-
_context2.next = 28;
|
|
124
|
-
break;
|
|
125
|
-
}
|
|
126
|
-
throw _iteratorError;
|
|
127
|
-
case 28:
|
|
128
|
-
return _context2.finish(25);
|
|
129
|
-
case 29:
|
|
130
|
-
return _context2.finish(20);
|
|
131
|
-
case 30:
|
|
132
|
-
hashValue = _this._hash.finalize();
|
|
133
|
-
hex = (0, _digestUtils.toHex)(hashValue);
|
|
134
|
-
hash = (0, _digestUtils.hexToBase64)(hex);
|
|
135
|
-
(_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, {
|
|
136
|
-
hash: hash
|
|
137
|
-
});
|
|
138
|
-
case 34:
|
|
139
|
-
case "end":
|
|
140
|
-
return _context2.stop();
|
|
141
|
-
}
|
|
142
|
-
}, _callee2, null, [[2, 16, 20, 30], [21,, 25, 29]]);
|
|
143
|
-
}))();
|
|
25
|
+
async hash(input) {
|
|
26
|
+
return this.hashSync(input);
|
|
27
|
+
}
|
|
28
|
+
hashSync(input) {
|
|
29
|
+
this._hash.update(input);
|
|
30
|
+
const hashValue = this._hash.finalize();
|
|
31
|
+
const hex = (0, _digestUtils.toHex)(hashValue);
|
|
32
|
+
const hash = (0, _digestUtils.hexToBase64)(hex);
|
|
33
|
+
return hash;
|
|
34
|
+
}
|
|
35
|
+
async *hashBatches(asyncIterator) {
|
|
36
|
+
var _this$options$crypto, _this$options$crypto$;
|
|
37
|
+
for await (const chunk of asyncIterator) {
|
|
38
|
+
this._hash.update(chunk);
|
|
39
|
+
yield chunk;
|
|
144
40
|
}
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
41
|
+
const hashValue = this._hash.finalize();
|
|
42
|
+
const hex = (0, _digestUtils.toHex)(hashValue);
|
|
43
|
+
const hash = (0, _digestUtils.hexToBase64)(hex);
|
|
44
|
+
(_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, {
|
|
45
|
+
hash
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
}
|
|
148
49
|
exports.CRC32CHash = CRC32CHash;
|
|
149
50
|
//# sourceMappingURL=crc32c-hash.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crc32c-hash.js","names":["
|
|
1
|
+
{"version":3,"file":"crc32c-hash.js","names":["_hash","require","_crc32c","_interopRequireDefault","_digestUtils","CRC32CHash","Hash","constructor","options","arguments","length","undefined","_defineProperty2","default","crypto","CRC32C","hash","input","hashSync","update","hashValue","finalize","hex","toHex","hexToBase64","hashBatches","asyncIterator","_this$options$crypto","_this$options$crypto$","chunk","onEnd","call","exports"],"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,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AAKO,MAAMI,UAAU,SAASC,UAAI,CAAC;EAUnCC,WAAWA,CAAA,EAAe;IAAA,IAAdC,OAAO,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;IACtB,KAAK,CAAC,CAAC;IAAC,IAAAG,gBAAA,CAAAC,OAAA,gBAVM,QAAQ;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAWtB,IAAI,CAACL,OAAO,GAAG;MAACM,MAAM,EAAE,CAAC,CAAC;MAAE,GAAGN;IAAO,CAAC;IACvC,IAAI,CAACR,KAAK,GAAG,IAAIe,eAAM,CAACP,OAAO,CAAC;EAClC;EAMA,MAAMQ,IAAIA,CAACC,KAAkB,EAAmB;IAC9C,OAAO,IAAI,CAACC,QAAQ,CAACD,KAAK,CAAC;EAC7B;EAEAC,QAAQA,CAACD,KAAkB,EAAU;IACnC,IAAI,CAACjB,KAAK,CAACmB,MAAM,CAACF,KAAK,CAAC;IACxB,MAAMG,SAAS,GAAG,IAAI,CAACpB,KAAK,CAACqB,QAAQ,CAAC,CAAC;IACvC,MAAMC,GAAG,GAAG,IAAAC,kBAAK,EAACH,SAAS,CAAC;IAC5B,MAAMJ,IAAI,GAAG,IAAAQ,wBAAW,EAACF,GAAG,CAAC;IAC7B,OAAON,IAAI;EACb;EAIA,OAAOS,WAAWA,CAChBC,aAAiE,EACrC;IAAA,IAAAC,oBAAA,EAAAC,qBAAA;IAC5B,WAAW,MAAMC,KAAK,IAAIH,aAAa,EAAE;MACvC,IAAI,CAAC1B,KAAK,CAACmB,MAAM,CAACU,KAAK,CAAC;MACxB,MAAMA,KAAK;IACb;IACA,MAAMT,SAAS,GAAG,IAAI,CAACpB,KAAK,CAACqB,QAAQ,CAAC,CAAC;IACvC,MAAMC,GAAG,GAAG,IAAAC,kBAAK,EAACH,SAAS,CAAC;IAC5B,MAAMJ,IAAI,GAAG,IAAAQ,wBAAW,EAACF,GAAG,CAAC;IAC7B,CAAAK,oBAAA,OAAI,CAACnB,OAAO,CAACM,MAAM,cAAAa,oBAAA,wBAAAC,qBAAA,GAAnBD,oBAAA,CAAqBG,KAAK,cAAAF,qBAAA,uBAA1BA,qBAAA,CAAAG,IAAA,CAAAJ,oBAAA,EAA6B;MAACX;IAAI,CAAC,CAAC;EACtC;AACF;AAACgB,OAAA,CAAA3B,UAAA,GAAAA,UAAA"}
|
|
@@ -5,182 +5,58 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.CryptoHash = void 0;
|
|
8
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
10
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
12
|
-
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
13
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
14
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
15
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
16
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
17
|
-
var
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
(0, _classCallCheck2.default)(this, CryptoHash);
|
|
32
|
-
_this2 = _super.call(this);
|
|
33
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this2), "name", void 0);
|
|
34
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this2), "options", void 0);
|
|
35
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this2), "_algorithm", void 0);
|
|
36
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this2), "_hash", void 0);
|
|
37
|
-
_this2.options = options;
|
|
38
|
-
_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;
|
|
39
|
-
if (!_this2._algorithm) {
|
|
40
|
-
throw new Error(_this2.name);
|
|
9
|
+
var _hash = require("./hash");
|
|
10
|
+
let CryptoJS;
|
|
11
|
+
class CryptoHash extends _hash.Hash {
|
|
12
|
+
constructor(options) {
|
|
13
|
+
var _this$options, _this$options$crypto;
|
|
14
|
+
super();
|
|
15
|
+
(0, _defineProperty2.default)(this, "name", void 0);
|
|
16
|
+
(0, _defineProperty2.default)(this, "options", void 0);
|
|
17
|
+
(0, _defineProperty2.default)(this, "_algorithm", void 0);
|
|
18
|
+
(0, _defineProperty2.default)(this, "_hash", void 0);
|
|
19
|
+
this.options = options;
|
|
20
|
+
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;
|
|
21
|
+
if (!this._algorithm) {
|
|
22
|
+
throw new Error(this.name);
|
|
41
23
|
}
|
|
42
|
-
|
|
43
|
-
return _this2;
|
|
24
|
+
this.name = this._algorithm.toLowerCase();
|
|
44
25
|
}
|
|
45
|
-
(
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
while (1) switch (_context.prev = _context.next) {
|
|
52
|
-
case 0:
|
|
53
|
-
if (CryptoJS) {
|
|
54
|
-
_context.next = 4;
|
|
55
|
-
break;
|
|
56
|
-
}
|
|
57
|
-
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;
|
|
58
|
-
if (CryptoJS) {
|
|
59
|
-
_context.next = 4;
|
|
60
|
-
break;
|
|
61
|
-
}
|
|
62
|
-
throw new Error(this.name);
|
|
63
|
-
case 4:
|
|
64
|
-
if (!this._hash) {
|
|
65
|
-
algo = CryptoJS.algo[this._algorithm];
|
|
66
|
-
this._hash = algo.create();
|
|
67
|
-
}
|
|
68
|
-
if (this._hash) {
|
|
69
|
-
_context.next = 7;
|
|
70
|
-
break;
|
|
71
|
-
}
|
|
72
|
-
throw new Error(this.name);
|
|
73
|
-
case 7:
|
|
74
|
-
case "end":
|
|
75
|
-
return _context.stop();
|
|
76
|
-
}
|
|
77
|
-
}, _callee, this);
|
|
78
|
-
}));
|
|
79
|
-
function preload() {
|
|
80
|
-
return _preload.apply(this, arguments);
|
|
26
|
+
async preload() {
|
|
27
|
+
if (!CryptoJS) {
|
|
28
|
+
var _this$options2, _this$options2$module;
|
|
29
|
+
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;
|
|
30
|
+
if (!CryptoJS) {
|
|
31
|
+
throw new Error(this.name);
|
|
81
32
|
}
|
|
82
|
-
return preload;
|
|
83
|
-
}()
|
|
84
|
-
}, {
|
|
85
|
-
key: "hash",
|
|
86
|
-
value: function () {
|
|
87
|
-
var _hash = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(input) {
|
|
88
|
-
var typedWordArray;
|
|
89
|
-
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
90
|
-
while (1) switch (_context2.prev = _context2.next) {
|
|
91
|
-
case 0:
|
|
92
|
-
_context2.next = 2;
|
|
93
|
-
return this.preload();
|
|
94
|
-
case 2:
|
|
95
|
-
typedWordArray = CryptoJS.lib.WordArray.create(input);
|
|
96
|
-
return _context2.abrupt("return", this._hash.update(typedWordArray).finalize().toString(CryptoJS.enc.Base64));
|
|
97
|
-
case 4:
|
|
98
|
-
case "end":
|
|
99
|
-
return _context2.stop();
|
|
100
|
-
}
|
|
101
|
-
}, _callee2, this);
|
|
102
|
-
}));
|
|
103
|
-
function hash(_x) {
|
|
104
|
-
return _hash.apply(this, arguments);
|
|
105
|
-
}
|
|
106
|
-
return hash;
|
|
107
|
-
}()
|
|
108
|
-
}, {
|
|
109
|
-
key: "hashBatches",
|
|
110
|
-
value: function hashBatches(asyncIterator) {
|
|
111
|
-
var _this = this;
|
|
112
|
-
return (0, _wrapAsyncGenerator2.default)(_regenerator.default.mark(function _callee3() {
|
|
113
|
-
var _this$options2, _this$options2$crypto, _this$options2$crypto2;
|
|
114
|
-
var _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, chunk, typedWordArray, hash;
|
|
115
|
-
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
116
|
-
while (1) switch (_context3.prev = _context3.next) {
|
|
117
|
-
case 0:
|
|
118
|
-
_context3.next = 2;
|
|
119
|
-
return (0, _awaitAsyncGenerator2.default)(_this.preload());
|
|
120
|
-
case 2:
|
|
121
|
-
_iteratorAbruptCompletion = false;
|
|
122
|
-
_didIteratorError = false;
|
|
123
|
-
_context3.prev = 4;
|
|
124
|
-
_iterator = _asyncIterator(asyncIterator);
|
|
125
|
-
case 6:
|
|
126
|
-
_context3.next = 8;
|
|
127
|
-
return (0, _awaitAsyncGenerator2.default)(_iterator.next());
|
|
128
|
-
case 8:
|
|
129
|
-
if (!(_iteratorAbruptCompletion = !(_step = _context3.sent).done)) {
|
|
130
|
-
_context3.next = 17;
|
|
131
|
-
break;
|
|
132
|
-
}
|
|
133
|
-
chunk = _step.value;
|
|
134
|
-
typedWordArray = CryptoJS.lib.WordArray.create(chunk);
|
|
135
|
-
_this._hash.update(typedWordArray);
|
|
136
|
-
_context3.next = 14;
|
|
137
|
-
return chunk;
|
|
138
|
-
case 14:
|
|
139
|
-
_iteratorAbruptCompletion = false;
|
|
140
|
-
_context3.next = 6;
|
|
141
|
-
break;
|
|
142
|
-
case 17:
|
|
143
|
-
_context3.next = 23;
|
|
144
|
-
break;
|
|
145
|
-
case 19:
|
|
146
|
-
_context3.prev = 19;
|
|
147
|
-
_context3.t0 = _context3["catch"](4);
|
|
148
|
-
_didIteratorError = true;
|
|
149
|
-
_iteratorError = _context3.t0;
|
|
150
|
-
case 23:
|
|
151
|
-
_context3.prev = 23;
|
|
152
|
-
_context3.prev = 24;
|
|
153
|
-
if (!(_iteratorAbruptCompletion && _iterator.return != null)) {
|
|
154
|
-
_context3.next = 28;
|
|
155
|
-
break;
|
|
156
|
-
}
|
|
157
|
-
_context3.next = 28;
|
|
158
|
-
return (0, _awaitAsyncGenerator2.default)(_iterator.return());
|
|
159
|
-
case 28:
|
|
160
|
-
_context3.prev = 28;
|
|
161
|
-
if (!_didIteratorError) {
|
|
162
|
-
_context3.next = 31;
|
|
163
|
-
break;
|
|
164
|
-
}
|
|
165
|
-
throw _iteratorError;
|
|
166
|
-
case 31:
|
|
167
|
-
return _context3.finish(28);
|
|
168
|
-
case 32:
|
|
169
|
-
return _context3.finish(23);
|
|
170
|
-
case 33:
|
|
171
|
-
hash = _this._hash.finalize().toString(CryptoJS.enc.Base64);
|
|
172
|
-
(_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, {
|
|
173
|
-
hash: hash
|
|
174
|
-
});
|
|
175
|
-
case 35:
|
|
176
|
-
case "end":
|
|
177
|
-
return _context3.stop();
|
|
178
|
-
}
|
|
179
|
-
}, _callee3, null, [[4, 19, 23, 33], [24,, 28, 32]]);
|
|
180
|
-
}))();
|
|
181
33
|
}
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
34
|
+
if (!this._hash) {
|
|
35
|
+
const algo = CryptoJS.algo[this._algorithm];
|
|
36
|
+
this._hash = algo.create();
|
|
37
|
+
}
|
|
38
|
+
if (!this._hash) {
|
|
39
|
+
throw new Error(this.name);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
async hash(input) {
|
|
43
|
+
await this.preload();
|
|
44
|
+
const typedWordArray = CryptoJS.lib.WordArray.create(input);
|
|
45
|
+
return this._hash.update(typedWordArray).finalize().toString(CryptoJS.enc.Base64);
|
|
46
|
+
}
|
|
47
|
+
async *hashBatches(asyncIterator) {
|
|
48
|
+
var _this$options3, _this$options3$crypto, _this$options3$crypto2;
|
|
49
|
+
await this.preload();
|
|
50
|
+
for await (const chunk of asyncIterator) {
|
|
51
|
+
const typedWordArray = CryptoJS.lib.WordArray.create(chunk);
|
|
52
|
+
this._hash.update(typedWordArray);
|
|
53
|
+
yield chunk;
|
|
54
|
+
}
|
|
55
|
+
const hash = this._hash.finalize().toString(CryptoJS.enc.Base64);
|
|
56
|
+
(_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, {
|
|
57
|
+
hash
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
}
|
|
185
61
|
exports.CryptoHash = CryptoHash;
|
|
186
62
|
//# sourceMappingURL=crypto-hash.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crypto-hash.js","names":["_hash2","require","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","Reflect","construct","arguments","apply","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","_asyncIterator","iterable","method","async","sync","retry","Symbol","asyncIterator","iterator","AsyncFromSyncIterator","TypeError","s","AsyncFromSyncIteratorContinuation","r","Object","Promise","reject","done","resolve","value","then","n","next","return","_return","ret","throw","_throw","thr","CryptoJS","CryptoHash","_Hash","_inherits2","_super","options","_this2$options","_this2$options$crypto","_this2","_classCallCheck2","_defineProperty2","_assertThisInitialized2","_algorithm","crypto","algorithm","Error","name","toLowerCase","_createClass2","key","_preload","_asyncToGenerator2","_regenerator","mark","_callee","_this$options","_this$options$modules","algo","wrap","_callee$","_context","prev","modules","_hash","create","stop","preload","_callee2","input","typedWordArray","_callee2$","_context2","lib","WordArray","abrupt","update","finalize","toString","enc","Base64","hash","_x","hashBatches","_this","_wrapAsyncGenerator2","_callee3","_this$options2","_this$options2$crypto","_this$options2$crypto2","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_iterator","_step","chunk","_callee3$","_context3","_awaitAsyncGenerator2","sent","t0","finish","onEnd","Hash","exports"],"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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"}
|
|
1
|
+
{"version":3,"file":"crypto-hash.js","names":["_hash","require","CryptoJS","CryptoHash","Hash","constructor","options","_this$options","_this$options$crypto","_defineProperty2","default","_algorithm","crypto","algorithm","Error","name","toLowerCase","preload","_this$options2","_this$options2$module","modules","algo","create","hash","input","typedWordArray","lib","WordArray","update","finalize","toString","enc","Base64","hashBatches","asyncIterator","_this$options3","_this$options3$crypto","_this$options3$crypto2","chunk","onEnd","call","exports"],"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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"}
|