@loaders.gl/crypto 4.0.0-alpha.9 → 4.0.0-beta.1

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 (96) hide show
  1. package/dist/crypto-worker-node.js +1 -1
  2. package/dist/crypto-worker-node.js.map +2 -2
  3. package/dist/crypto-worker.js +1 -1
  4. package/dist/crypto-worker.js.map +2 -2
  5. package/dist/dist.min.js +1 -1
  6. package/dist/dist.min.js.map +2 -2
  7. package/dist/es5/index.js +24 -5
  8. package/dist/es5/index.js.map +1 -1
  9. package/dist/es5/lib/algorithms/md5-wasm.js +3 -3
  10. package/dist/es5/lib/algorithms/md5-wasm.js.map +1 -1
  11. package/dist/es5/lib/crc32-hash.js +11 -13
  12. package/dist/es5/lib/crc32-hash.js.map +1 -1
  13. package/dist/es5/lib/crc32c-hash.js +11 -13
  14. package/dist/es5/lib/crc32c-hash.js.map +1 -1
  15. package/dist/es5/lib/crypto-hash.js +12 -9
  16. package/dist/es5/lib/crypto-hash.js.map +1 -1
  17. package/dist/es5/lib/hash.js +2 -1
  18. package/dist/es5/lib/hash.js.map +1 -1
  19. package/dist/es5/lib/md5-hash.js +3 -3
  20. package/dist/es5/lib/md5-hash.js.map +1 -1
  21. package/dist/es5/lib/node-hash.js +20 -12
  22. package/dist/es5/lib/node-hash.js.map +1 -1
  23. package/dist/es5/lib/utils/base64-utils.js +41 -2
  24. package/dist/es5/lib/utils/base64-utils.js.map +1 -1
  25. package/dist/es5/lib/utils/digest-utils.js +45 -7
  26. package/dist/es5/lib/utils/digest-utils.js.map +1 -1
  27. package/dist/es5/workers/worker.js +6 -4
  28. package/dist/es5/workers/worker.js.map +1 -1
  29. package/dist/esm/index.js +3 -2
  30. package/dist/esm/index.js.map +1 -1
  31. package/dist/esm/lib/algorithms/md5-wasm.js +3 -3
  32. package/dist/esm/lib/algorithms/md5-wasm.js.map +1 -1
  33. package/dist/esm/lib/crc32-hash.js +24 -19
  34. package/dist/esm/lib/crc32-hash.js.map +1 -1
  35. package/dist/esm/lib/crc32c-hash.js +24 -19
  36. package/dist/esm/lib/crc32c-hash.js.map +1 -1
  37. package/dist/esm/lib/crypto-hash.js +23 -13
  38. package/dist/esm/lib/crypto-hash.js.map +1 -1
  39. package/dist/esm/lib/hash.js +19 -11
  40. package/dist/esm/lib/hash.js.map +1 -1
  41. package/dist/esm/lib/md5-hash.js +3 -3
  42. package/dist/esm/lib/md5-hash.js.map +1 -1
  43. package/dist/esm/lib/node-hash.js +29 -15
  44. package/dist/esm/lib/node-hash.js.map +1 -1
  45. package/dist/esm/lib/utils/base64-utils.js +39 -1
  46. package/dist/esm/lib/utils/base64-utils.js.map +1 -1
  47. package/dist/esm/lib/utils/digest-utils.js +39 -6
  48. package/dist/esm/lib/utils/digest-utils.js.map +1 -1
  49. package/dist/esm/workers/worker.js +5 -4
  50. package/dist/esm/workers/worker.js.map +1 -1
  51. package/dist/index.d.ts +2 -1
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/lib/crc32-hash.d.ts +3 -3
  54. package/dist/lib/crc32-hash.d.ts.map +1 -1
  55. package/dist/lib/crc32c-hash.d.ts +3 -3
  56. package/dist/lib/crc32c-hash.d.ts.map +1 -1
  57. package/dist/lib/crypto-hash.d.ts +2 -2
  58. package/dist/lib/crypto-hash.d.ts.map +1 -1
  59. package/dist/lib/hash.d.ts +2 -2
  60. package/dist/lib/hash.d.ts.map +1 -1
  61. package/dist/lib/md5-hash.d.ts +1 -1
  62. package/dist/lib/md5-hash.d.ts.map +1 -1
  63. package/dist/lib/node-hash.d.ts +2 -2
  64. package/dist/lib/node-hash.d.ts.map +1 -1
  65. package/dist/lib/utils/base64-utils.d.ts +8 -1
  66. package/dist/lib/utils/base64-utils.d.ts.map +1 -1
  67. package/dist/lib/utils/digest-utils.d.ts +6 -6
  68. package/dist/lib/utils/digest-utils.d.ts.map +1 -1
  69. package/package.json +4 -4
  70. package/src/index.ts +10 -7
  71. package/src/lib/algorithms/md5-wasm.ts +4 -3
  72. package/src/lib/crc32-hash.ts +10 -12
  73. package/src/lib/crc32c-hash.ts +10 -12
  74. package/src/lib/crypto-hash.ts +10 -5
  75. package/src/lib/hash.ts +4 -3
  76. package/src/lib/md5-hash.ts +3 -3
  77. package/src/lib/node-hash.ts +14 -6
  78. package/src/lib/utils/base64-utils.ts +97 -1
  79. package/src/lib/utils/digest-utils.ts +57 -8
  80. package/src/workers/worker.ts +4 -4
  81. package/dist/bundle.js +0 -5
  82. package/dist/index.js +0 -47
  83. package/dist/lib/algorithms/crc32.js +0 -30
  84. package/dist/lib/algorithms/crc32c.js +0 -38
  85. package/dist/lib/algorithms/md5-wasm.js +0 -435
  86. package/dist/lib/crc32-hash.js +0 -47
  87. package/dist/lib/crc32c-hash.js +0 -51
  88. package/dist/lib/crypto-hash.js +0 -61
  89. package/dist/lib/hash.js +0 -29
  90. package/dist/lib/md5-hash.js +0 -32
  91. package/dist/lib/node-hash.js +0 -42
  92. package/dist/lib/sha256-hash.js +0 -14
  93. package/dist/lib/utils/base64-utils.js +0 -67
  94. package/dist/lib/utils/digest-utils.js +0 -27
  95. package/dist/types.js +0 -2
  96. package/dist/workers/worker.js +0 -23
package/dist/esm/index.js CHANGED
@@ -1,11 +1,10 @@
1
+ const VERSION = typeof "4.0.0-beta.1" !== 'undefined' ? "4.0.0-beta.1" : 'latest';
1
2
  export { CRC32Hash } from './lib/crc32-hash';
2
3
  export { CRC32CHash } from './lib/crc32c-hash';
3
4
  export { MD5Hash } from './lib/md5-hash';
4
5
  export { SHA256Hash } from './lib/sha256-hash';
5
6
  export { CryptoHash } from './lib/crypto-hash';
6
7
  export { NodeHash } from './lib/node-hash';
7
- export { hexToBase64 as _hexToBase64, toHex as _toHex } from './lib/utils/digest-utils';
8
- const VERSION = typeof "4.0.0-alpha.9" !== 'undefined' ? "4.0.0-alpha.9" : 'latest';
9
8
  export const CryptoWorker = {
10
9
  id: 'crypto',
11
10
  name: 'CRC32, CRC32c and MD5 Hashes',
@@ -24,4 +23,6 @@ export const CryptoJSWorker = {
24
23
  cryptojs: {}
25
24
  }
26
25
  };
26
+ export { encodeNumber, encodeHex, encodeBase64 } from './lib/utils/digest-utils';
27
+ export { asciiToBase64, base64ToAscii } from './lib/utils/base64-utils';
27
28
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["CRC32Hash","CRC32CHash","MD5Hash","SHA256Hash","CryptoHash","NodeHash","hexToBase64","_hexToBase64","toHex","_toHex","VERSION","CryptoWorker","id","name","module","version","options","crypto","CryptoJSWorker","cryptojs"],"sources":["../../src/index.ts"],"sourcesContent":["// import type {WorkerObject} from '@loaders.gl/worker-utils';\n\nexport {CRC32Hash} from './lib/crc32-hash';\nexport {CRC32CHash} from './lib/crc32c-hash';\nexport {MD5Hash} from './lib/md5-hash';\nexport {SHA256Hash} from './lib/sha256-hash';\n\nexport {CryptoHash} from './lib/crypto-hash';\nexport {NodeHash} from './lib/node-hash';\n\nexport {hexToBase64 as _hexToBase64, toHex as _toHex} from './lib/utils/digest-utils';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\n/**\n * Small, fast worker for CRC32, CRC32c and MD5 Hashes\n */\nexport const CryptoWorker = {\n id: 'crypto',\n name: 'CRC32, CRC32c and MD5 Hashes',\n module: 'crypto',\n version: VERSION,\n options: {\n crypto: {}\n }\n};\n\n/**\n * Large worker for full complement of Cryptographic Hashes\n * bundles the full crypto.js library\n */\nexport const CryptoJSWorker = {\n id: 'cryptojs',\n name: 'Cryptographic Hashes',\n module: 'crypto',\n version: VERSION,\n options: {\n cryptojs: {}\n }\n};\n"],"mappings":"AAEA,SAAQA,SAAS,QAAO,kBAAkB;AAC1C,SAAQC,UAAU,QAAO,mBAAmB;AAC5C,SAAQC,OAAO,QAAO,gBAAgB;AACtC,SAAQC,UAAU,QAAO,mBAAmB;AAE5C,SAAQC,UAAU,QAAO,mBAAmB;AAC5C,SAAQC,QAAQ,QAAO,iBAAiB;AAExC,SAAQC,WAAW,IAAIC,YAAY,EAAEC,KAAK,IAAIC,MAAM,QAAO,0BAA0B;AAIrF,MAAMC,OAAO,GAAG,sBAAkB,KAAK,WAAW,qBAAiB,QAAQ;AAK3E,OAAO,MAAMC,YAAY,GAAG;EAC1BC,EAAE,EAAE,QAAQ;EACZC,IAAI,EAAE,8BAA8B;EACpCC,MAAM,EAAE,QAAQ;EAChBC,OAAO,EAAEL,OAAO;EAChBM,OAAO,EAAE;IACPC,MAAM,EAAE,CAAC;EACX;AACF,CAAC;AAMD,OAAO,MAAMC,cAAc,GAAG;EAC5BN,EAAE,EAAE,UAAU;EACdC,IAAI,EAAE,sBAAsB;EAC5BC,MAAM,EAAE,QAAQ;EAChBC,OAAO,EAAEL,OAAO;EAChBM,OAAO,EAAE;IACPG,QAAQ,EAAE,CAAC;EACb;AACF,CAAC"}
1
+ {"version":3,"file":"index.js","names":["VERSION","CRC32Hash","CRC32CHash","MD5Hash","SHA256Hash","CryptoHash","NodeHash","CryptoWorker","id","name","module","version","options","crypto","CryptoJSWorker","cryptojs","encodeNumber","encodeHex","encodeBase64","asciiToBase64","base64ToAscii"],"sources":["../../src/index.ts"],"sourcesContent":["// loaders.gl, MIT license\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nexport {CRC32Hash} from './lib/crc32-hash';\nexport {CRC32CHash} from './lib/crc32c-hash';\nexport {MD5Hash} from './lib/md5-hash';\nexport {SHA256Hash} from './lib/sha256-hash';\n\nexport {CryptoHash} from './lib/crypto-hash';\nexport {NodeHash} from './lib/node-hash';\n\n/**\n * Small, fast worker for CRC32, CRC32c and MD5 Hashes\n */\nexport const CryptoWorker = {\n id: 'crypto',\n name: 'CRC32, CRC32c and MD5 Hashes',\n module: 'crypto',\n version: VERSION,\n options: {\n crypto: {}\n }\n};\n\n/**\n * Large worker for full complement of Cryptographic Hashes\n * bundles the full crypto.js library\n */\nexport const CryptoJSWorker = {\n id: 'cryptojs',\n name: 'Cryptographic Hashes',\n module: 'crypto',\n version: VERSION,\n options: {\n cryptojs: {}\n }\n};\n\n// EXPERIMENTAL\n\nexport {encodeNumber, encodeHex, encodeBase64} from './lib/utils/digest-utils';\nexport {asciiToBase64, base64ToAscii} from './lib/utils/base64-utils';\n"],"mappings":"AAIA,MAAMA,OAAO,GAAG,qBAAkB,KAAK,WAAW,oBAAiB,QAAQ;AAE3E,SAAQC,SAAS,QAAO,kBAAkB;AAC1C,SAAQC,UAAU,QAAO,mBAAmB;AAC5C,SAAQC,OAAO,QAAO,gBAAgB;AACtC,SAAQC,UAAU,QAAO,mBAAmB;AAE5C,SAAQC,UAAU,QAAO,mBAAmB;AAC5C,SAAQC,QAAQ,QAAO,iBAAiB;AAKxC,OAAO,MAAMC,YAAY,GAAG;EAC1BC,EAAE,EAAE,QAAQ;EACZC,IAAI,EAAE,8BAA8B;EACpCC,MAAM,EAAE,QAAQ;EAChBC,OAAO,EAAEX,OAAO;EAChBY,OAAO,EAAE;IACPC,MAAM,EAAE,CAAC;EACX;AACF,CAAC;AAMD,OAAO,MAAMC,cAAc,GAAG;EAC5BN,EAAE,EAAE,UAAU;EACdC,IAAI,EAAE,sBAAsB;EAC5BC,MAAM,EAAE,QAAQ;EAChBC,OAAO,EAAEX,OAAO;EAChBY,OAAO,EAAE;IACPG,QAAQ,EAAE,CAAC;EACb;AACF,CAAC;AAID,SAAQC,YAAY,EAAEC,SAAS,EAAEC,YAAY,QAAO,0BAA0B;AAC9E,SAAQC,aAAa,EAAEC,aAAa,QAAO,0BAA0B"}
@@ -257,7 +257,7 @@ function makeMD5WA() {
257
257
  setX = exports.setX;
258
258
  memView = mView;
259
259
  digestbytes = crypt.wordsToBytes(md5WA(message));
260
- return options && options.asBytes ? digestbytes : crypt.bytesToHex(digestbytes);
260
+ return options && options.asBytes ? digestbytes : crypt.bytesconvertNumberToHex(digestbytes);
261
261
  };
262
262
  }
263
263
  function makeMD5JS() {
@@ -372,7 +372,7 @@ function makeMD5JS() {
372
372
  };
373
373
  return function (message, options) {
374
374
  var digestbytes = crypt.wordsToBytes(md5JS(message, options)),
375
- result = options && options.asBytes ? digestbytes : crypt.bytesToHex(digestbytes);
375
+ result = options && options.asBytes ? digestbytes : crypt.bytesconvertNumberToHex(digestbytes);
376
376
  return result;
377
377
  };
378
378
  }
@@ -416,7 +416,7 @@ function makeCrypt() {
416
416
  for (var bytes = [], b = 0; b < words.length * 32; b += 8) bytes.push(words[b >>> 5] >>> 24 - b % 32 & 0xff);
417
417
  return bytes;
418
418
  },
419
- bytesToHex: function (bytes) {
419
+ bytesconvertNumberToHex: function (bytes) {
420
420
  for (var hex = [], i = 0; i < bytes.length; i++) {
421
421
  hex.push((bytes[i] >>> 4).toString(16));
422
422
  hex.push((bytes[i] & 0xf).toString(16));
@@ -1 +1 @@
1
- {"version":3,"file":"md5-wasm.js","names":["atb","atob","Buffer","nodeATOB","identity","wasmB64","wasm","WebAssembly","str2AB","buffer","crypt","makeCrypt","biteSize","bounder","Math","floor","upperLimit","parmTypeErrStr","tooBigErrStr","console","log","md5WASM","data","mem","memView","importObj","imports","len","buff","thenFun","catchFun","result","endTime","md5JS","makeMD5JS","md5WA","makeMD5WA","returnObj","startTime","Date","getTime","fun","getThen","constructor","Uint8Array","ArrayBuffer","getCatch","TypeError","length","Error","Memory","initial","Uint32Array","instantiate","then","giterdone","obj","instance","exports","r","res","Boolean","err","loop","loops","getA","setA","getB","setB","getC","setC","getD","setD","getX","setX","message","m00","m01","m02","m03","m04","m05","m06","m07","m08","m09","m10","m11","m12","m13","m14","m15","aa","bb","cc","dd","m","k","qwerty","md5Used","a","b","c","d","i","l","bytesToWordsNewer","____","endian","s","t","n","bytes","words","j","b0","b1","b2","b3","mView","options","digestbytes","wordsToBytes","asBytes","bytesToHex","bytesToWords","str","buffView","charCodeAt","from","toString","x","base64map","rotl","Number","push","hex","join"],"sources":["../../../../src/lib/algorithms/md5-wasm.ts"],"sourcesContent":["/* eslint-disable */\n// @ts-nocheck\n/* !\n * MD5 WebAssembly\n * https://github.com/briantbutton/md5-wasm\n * (c) 2020 Brian Todd Button\n * Released under the MIT license\n */\n\n// *-*=* *=*-* *-*=* *=*-* *-*=* *=*-* *-*=* *=*-* *-*=* *=*-* *-*=* *=*-*\n// This contains two functions designed to achieve the same thing\n// -> A WebAssembly function for larger files\n// -> A JavaScript function for the others\n//\nconst atb = typeof atob === 'function' ? atob : typeof Buffer === 'function' ? nodeATOB : identity,\n wasmB64 = atb(\n 'AGFzbQEAAAABDANgAX8AYAAAYAABfwIeAgdpbXBvcnRzA2xvZwAAB2ltcG9ydHMDbWVtAgABAzIxAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAAAAAAAAAgICAgIAAAAAAAaYARt/AUGBxpS6Bgt/AUGJ17b+fgt/AUH+uevFeQt/AUH2qMmBAQt/AUEAC38BQQALfwFBAAt/AUEAC38BQQALfwFBAAt/AUEAC38BQQALfwFBAAt/AUEAC38BQQALfwFBAAt/AUEAC38BQQALfwFBAAt/AUEAC38BQQALfwFBAAt/AUEAC38BQQALfwFBAAt/AUEAC38BQQALB7oCJQhvbmVGdWxsQQAYCG9uZUZ1bGxCABkIb25lRnVsbEMAGghvbmVGdWxsRAAbBWxvb3BzAAEEbG9vcAACBXByaW1lAAMFbG9vcEEABAZsb29wQTEABQZsb29wQTIABgZsb29wQTMABwZsb29wQTQACAVsb29wQgAJBmxvb3BCMQAKBmxvb3BCMgALBmxvb3BCMwAMBmxvb3BCNAANBWxvb3BDAA4GbG9vcEMxAA8GbG9vcEMyABAGbG9vcEMzABEGbG9vcEM0ABIFbG9vcEQAEwZsb29wRDEAFAZsb29wRDIAFQZsb29wRDMAFgZsb29wRDQAFwRnZXRBACgEZ2V0QgApBGdldEMAKgRnZXREACsEZ2V0WAAsBHNldEEALQRzZXRCAC4Ec2V0QwAvBHNldEQAMARzZXRYADEKzA0xWwEBf0EAJAggAEEGdCEBAkADQCMIIAFGDQEjACQEIwEkBSMCJAYjAyQHEAIjBCMAaiQAIwUjAWokASMGIwJqJAIjByMDaiQDIwhBwABqJAgMAAsLIwgjGmokGgsTACMIIxpqJAkQAxAEEAkQDhATC6IBAEEAIwlqKAIAJApBBCMJaigCACQLQQgjCWooAgAkDEEMIwlqKAIAJA1BECMJaigCACQOQRQjCWooAgAkD0EYIwlqKAIAJBBBHCMJaigCACQRQSAjCWooAgAkEkEkIwlqKAIAJBNBKCMJaigCACQUQSwjCWooAgAkFUEwIwlqKAIAJBZBNCMJaigCACQXQTgjCWooAgAkGEE8IwlqKAIAJBkLCgAQBRAGEAcQCAsuAEH4yKq7fSMKahAYQdbunsZ+IwtqEBtB2+GBoQIjDGoQGkHunfeNfCMNahAZCy0AQa+f8Kt/Iw5qEBhBqoyfvAQjD2oQG0GTjMHBeiMQahAaQYGqmmojEWoQGQssAEHYsYLMBiMSahAYQa/vk9p4IxNqEBtBsbd9IxRqEBpBvq/zyngjFWoQGQstAEGiosDcBiMWahAYQZPj4WwjF2oQG0GOh+WzeiMYahAaQaGQ0M0EIxlqEBkLCgAQChALEAwQDQsuAEHiyviwfyMLahAcQcDmgoJ8IxBqEB9B0bT5sgIjFWoQHkGqj9vNfiMKahAdCy0AQd2gvLF9Iw9qEBxB06iQEiMUahAfQYHNh8V9IxlqEB5ByPfPvn4jDmoQHQsuAEHmm4ePAiMTahAcQdaP3Jl8IxhqEB9Bh5vUpn8jDWoQHkHtqeiqBCMSahAdCy0AQYXSj896IxdqEBxB+Me+ZyMMahAfQdmFvLsGIxFqEB5Bipmp6XgjFmoQHQsKABAPEBAQERASCysAQcLyaCMPahAgQYHtx7t4IxJqECNBosL17AYjFWoQIkGM8JRvIxhqECELLgBBxNT7pXojC2oQIEGpn/veBCMOahAjQeCW7bV/IxFqECJB8Pj+9XsjFGoQIQstAEHG/e3EAiMXahAgQfrPhNV+IwpqECNBheG8p30jDWoQIkGFuqAkIxBqECELLgBBuaDTzn0jE2oQIEHls+62fiMWahAjQfj5if0BIxlqECJB5ayxpXwjDGoQIQsKABAUEBUQFhAXCy0AQcTEpKF/IwpqECRBl/+rmQQjEWoQJ0Gnx9DceiMYahAmQbnAzmQjD2oQJQstAEHDs+2qBiMWahAkQZKZs/h4Iw1qECdB/ei/fyMUahAmQdG7kax4IwtqECULLQBBz/yh/QYjEmoQJEHgzbNxIxlqECdBlIaFmHojEGoQJkGho6DwBCMXahAlCy4AQYL9zbp/Iw5qECRBteTr6XsjFWoQJ0G7pd/WAiMMahAmQZGnm9x+IxNqECULKAEBf0F/IwFzIwNxIwEjAnFyIwBqIABqIgFBB3QgAUEZdnIjAWokAAsoAQF/QX8jAnMjAHEjAiMDcXIjAWogAGoiAUEWdCABQQp2ciMCaiQBCygBAX9BfyMDcyMBcSMDIwBxciMCaiAAaiIBQRF0IAFBD3ZyIwNqJAILKAEBf0F/IwBzIwJxIwAjAXFyIwNqIABqIgFBDHQgAUEUdnIjAGokAwsoAQF/IwJBfyMDc3EjASMDcXIjAGogAGoiAUEFdCABQRt2ciMBaiQACygBAX8jA0F/IwBzcSMCIwBxciMBaiAAaiIBQRR0IAFBDHZyIwJqJAELKAEBfyMAQX8jAXNxIwMjAXFyIwJqIABqIgFBDnQgAUESdnIjA2okAgsoAQF/IwFBfyMCc3EjACMCcXIjA2ogAGoiAUEJdCABQRd2ciMAaiQDCyIBAX8jASMCcyMDcyMAaiAAaiIBQQR0IAFBHHZyIwFqJAALIgEBfyMCIwNzIwBzIwFqIABqIgFBF3QgAUEJdnIjAmokAQsiAQF/IwMjAHMjAXMjAmogAGoiAUEQdCABQRB2ciMDaiQCCyIBAX8jACMBcyMCcyMDaiAAaiIBQQt0IAFBFXZyIwBqJAMLJQEBf0F/IwNzIwFyIwJzIwBqIABqIgFBBnQgAUEadnIjAWokAAslAQF/QX8jAHMjAnIjA3MjAWogAGoiAUEVdCABQQt2ciMCaiQBCyUBAX9BfyMBcyMDciMAcyMCaiAAaiIBQQ90IAFBEXZyIwNqJAILJQEBf0F/IwJzIwByIwFzIwNqIABqIgFBCnQgAUEWdnIjAGokAwsEACMACwQAIwELBAAjAgsEACMDCwQAIxoLBgAgACQACwYAIAAkAQsGACAAJAILBgAgACQDCwYAIAAkGgsA6gQEbmFtZQGSAzIAA2xvZwEFbG9vcHMCBGxvb3ADBXByaW1lBAVsb29wQQUGbG9vcEExBgZsb29wQTIHBmxvb3BBMwgGbG9vcEE0CQVsb29wQgoGbG9vcEIxCwZsb29wQjIMBmxvb3BCMw0GbG9vcEI0DgVsb29wQw8GbG9vcEMxEAZsb29wQzIRBmxvb3BDMxIGbG9vcEM0EwVsb29wRBQGbG9vcEQxFQZsb29wRDIWBmxvb3BEMxcGbG9vcEQ0GAhvbmVGdWxsQRkIb25lRnVsbEIaCG9uZUZ1bGxDGwhvbmVGdWxsRBwIdHdvRnVsbEEdCHR3b0Z1bGxCHgh0d29GdWxsQx8IdHdvRnVsbEQgCHRyZUZ1bGxBIQh0cmVGdWxsQiIIdHJlRnVsbEMjCHRyZUZ1bGxEJAhxdWFGdWxsQSUIcXVhRnVsbEImCHF1YUZ1bGxDJwhxdWFGdWxsRCgEZ2V0QSkEZ2V0QioEZ2V0QysEZ2V0RCwEZ2V0WC0Ec2V0QS4Ec2V0Qi8Ec2V0QzAEc2V0RDEEc2V0WALNATIAAQAAAQIAAAEIbnVtbG9vcHMCAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUABUAFgAXABgCAAABAW4ZAgAAAQFuGgIAAAEBbhsCAAABAW4cAgAAAQFuHQIAAAEBbh4CAAABAW4fAgAAAQFuIAIAAAEBbiECAAABAW4iAgAAAQFuIwIAAAEBbiQCAAABAW4lAgAAAQFuJgIAAAEBbicCAAABAW4oACkAKgArACwALQEAAC4BAAAvAQAAMAEAADEBAAA='\n ),\n wasm = WebAssembly && atb !== identity ? str2AB(wasmB64).buffer : false,\n crypt = makeCrypt(),\n biteSize = 240 * 16 * 16,\n bounder = Math.floor(biteSize * 16 * 1.066666667),\n upperLimit = 268435456 - 65536,\n parmTypeErrStr = 'Parameter must be Buffer, ArrayBuffer or Uint8Array',\n tooBigErrStr = 'Parameter exceeds max size of 255.9 Mbytes';\n\nif (!wasm) {\n console.log(\n 'WebAssembly not available or WASM module could not be decoded; md5WASM will fall back to JavaScript'\n );\n}\n\n// - - - - - - - - - - - - - - - - - - - - - - - - - - -\n// This returns a Promise-like object (I was farting around, so sue me)\n// which supports '.catch' and '.then'\nexport default function md5WASM(data) {\n var mem, memView, importObj, imports, len, buff, thenFun, catchFun, result, endTime;\n const md5JS = makeMD5JS(),\n md5WA = makeMD5WA(),\n returnObj = {},\n startTime = new Date().getTime();\n\n returnObj['then'] = function (fun) {\n thenFun = fun;\n getThen();\n return returnObj;\n };\n returnObj['catch'] = function (fun) {\n catchFun = fun;\n return returnObj;\n };\n\n // Sift the incoming parameter and the environment\n // If we are good, set buff\n if (true) {\n if (data && typeof data === 'object') {\n if (typeof Buffer === 'function' && data.constructor === Buffer) {\n buff = data;\n } else {\n if (data.constructor === Uint8Array || data.constructor === ArrayBuffer) {\n buff = data.constructor === ArrayBuffer ? new Uint8Array(data) : data;\n } else {\n getCatch(new TypeError(parmTypeErrStr));\n }\n }\n } else {\n getCatch(new TypeError(parmTypeErrStr));\n }\n }\n\n // - - - - - - - - - - - - - - - - - - - - - - - - - -\n // Make some choices based on the size of the incoming data\n // ~ Use WebAssembly or just JavaScript\n // ~ If Webassemly, allocate appropriate memory\n //\n if (buff) {\n len = buff.length;\n if (wasm && len > bounder) {\n if (len > upperLimit) {\n getCatch(new Error(tooBigErrStr));\n } else {\n mem = new WebAssembly.Memory({\n initial: len > 32000000 ? (len > 64000000 ? (len > 128000000 ? 4096 : 2048) : 1024) : 512\n });\n memView = new Uint32Array(mem.buffer);\n imports = {mem: mem, log: console.log};\n importObj = {imports};\n WebAssembly.instantiate(wasm, importObj).then(giterdone);\n }\n } else {\n getThen(md5JS(buff));\n }\n }\n return returnObj;\n\n function giterdone(obj) {\n getThen(md5WA(buff, obj.instance.exports, memView));\n }\n function getThen(r) {\n var res = Boolean(r) ? r : result;\n if (Boolean(r)) {\n endTime = new Date().getTime();\n }\n if (typeof thenFun === 'function') {\n if (Boolean(res)) {\n thenFun(res, endTime - startTime);\n thenFun = catchFun = null;\n }\n } else {\n if (Boolean(r)) {\n result = r;\n }\n }\n }\n function getCatch(err) {\n if (typeof catchFun === 'function') {\n catchFun(err);\n }\n }\n}\n\nfunction makeMD5WA() {\n var loop, loops;\n var getA, setA, getB, setB, getC, setC, getD, setD, getX, setX, memView;\n\n var md5WA = function (message) {\n var m00,\n m01,\n m02,\n m03,\n m04,\n m05,\n m06,\n m07,\n m08,\n m09,\n m10,\n m11,\n m12,\n m13,\n m14,\n m15,\n aa,\n bb,\n cc,\n dd,\n m,\n k;\n var qwerty = new Date().getTime();\n var md5Used = 0;\n\n var a = 1732584193,\n b = -271733879,\n c = -1732584194,\n d = 271733878,\n i = 0,\n l = message.length * 8,\n len;\n\n len = bytesToWordsNewer(message, memView);\n memView[l >>> 5] |= 0x80 << l % 32;\n memView[(((l + 64) >>> 9) << 4) + 14] = l;\n len = (((l + 64) >>> 9) << 4) + 15;\n m = memView;\n\n // console.log(\"first loop took \"+((new Date().getTime())-qwerty)+\"ms\");\n\n while (i < len) {\n if (len > i + bounder) {\n setA(a);\n setB(b);\n setC(c);\n setD(d);\n loops(biteSize);\n i = i + biteSize * 16;\n a = getA();\n b = getB();\n c = getC();\n d = getD();\n md5Used++;\n } else {\n aa = a;\n bb = b;\n cc = c;\n dd = d;\n m00 = m[i + 0] >>> 0;\n m01 = m[i + 1] >>> 0;\n m02 = m[i + 2] >>> 0;\n m03 = m[i + 3] >>> 0;\n m04 = m[i + 4] >>> 0;\n m05 = m[i + 5] >>> 0;\n m06 = m[i + 6] >>> 0;\n m07 = m[i + 7] >>> 0;\n m08 = m[i + 8] >>> 0;\n m09 = m[i + 9] >>> 0;\n m10 = m[i + 10] >>> 0;\n m11 = m[i + 11] >>> 0;\n m12 = m[i + 12] >>> 0;\n m13 = m[i + 13] >>> 0;\n m14 = m[i + 14] >>> 0;\n m15 = m[i + 15] >>> 0;\n\n a = ____(7, 25, a + ((b & c) | (~b & d)) + m00 - 680876936) + b;\n d = ____(12, 20, d + ((a & b) | (~a & c)) + m01 - 389564586) + a;\n c = ____(17, 15, c + ((d & a) | (~d & b)) + m02 + 606105819) + d;\n b = ____(22, 10, b + ((c & d) | (~c & a)) + m03 - 1044525330) + c;\n a = ____(7, 25, a + ((b & c) | (~b & d)) + m04 - 176418897) + b;\n d = ____(12, 20, d + ((a & b) | (~a & c)) + m05 + 1200080426) + a;\n c = ____(17, 15, c + ((d & a) | (~d & b)) + m06 - 1473231341) + d;\n b = ____(22, 10, b + ((c & d) | (~c & a)) + m07 - 45705983) + c;\n a = ____(7, 25, a + ((b & c) | (~b & d)) + m08 + 1770035416) + b;\n d = ____(12, 20, d + ((a & b) | (~a & c)) + m09 - 1958414417) + a;\n c = ____(17, 15, c + ((d & a) | (~d & b)) + m10 - 42063) + d;\n b = ____(22, 10, b + ((c & d) | (~c & a)) + m11 - 1990404162) + c;\n a = ____(7, 25, a + ((b & c) | (~b & d)) + m12 + 1804603682) + b;\n d = ____(12, 20, d + ((a & b) | (~a & c)) + m13 - 40341101) + a;\n c = ____(17, 15, c + ((d & a) | (~d & b)) + m14 - 1502002290) + d;\n b = ____(22, 10, b + ((c & d) | (~c & a)) + m15 + 1236535329) + c;\n\n a = ____(5, 27, a + ((b & d) | (c & ~d)) + m01 - 165796510) + b;\n d = ____(9, 23, d + ((a & c) | (b & ~c)) + m06 - 1069501632) + a;\n c = ____(14, 18, c + ((d & b) | (a & ~b)) + m11 + 643717713) + d;\n b = ____(20, 12, b + ((c & a) | (d & ~a)) + m00 - 373897302) + c;\n a = ____(5, 27, a + ((b & d) | (c & ~d)) + m05 - 701558691) + b;\n d = ____(9, 23, d + ((a & c) | (b & ~c)) + m10 + 38016083) + a;\n c = ____(14, 18, c + ((d & b) | (a & ~b)) + m15 - 660478335) + d;\n b = ____(20, 12, b + ((c & a) | (d & ~a)) + m04 - 405537848) + c;\n a = ____(5, 27, a + ((b & d) | (c & ~d)) + m09 + 568446438) + b;\n d = ____(9, 23, d + ((a & c) | (b & ~c)) + m14 - 1019803690) + a;\n c = ____(14, 18, c + ((d & b) | (a & ~b)) + m03 - 187363961) + d;\n b = ____(20, 12, b + ((c & a) | (d & ~a)) + m08 + 1163531501) + c;\n a = ____(5, 27, a + ((b & d) | (c & ~d)) + m13 - 1444681467) + b;\n d = ____(9, 23, d + ((a & c) | (b & ~c)) + m02 - 51403784) + a;\n c = ____(14, 18, c + ((d & b) | (a & ~b)) + m07 + 1735328473) + d;\n b = ____(20, 12, b + ((c & a) | (d & ~a)) + m12 - 1926607734) + c;\n\n a = ____(4, 28, a + (b ^ c ^ d) + m05 - 378558) + b;\n d = ____(11, 21, d + (a ^ b ^ c) + m08 - 2022574463) + a;\n c = ____(16, 16, c + (d ^ a ^ b) + m11 + 1839030562) + d;\n b = ____(23, 9, b + (c ^ d ^ a) + m14 - 35309556) + c;\n a = ____(4, 28, a + (b ^ c ^ d) + m01 - 1530992060) + b;\n d = ____(11, 21, d + (a ^ b ^ c) + m04 + 1272893353) + a;\n c = ____(16, 16, c + (d ^ a ^ b) + m07 - 155497632) + d;\n b = ____(23, 9, b + (c ^ d ^ a) + m10 - 1094730640) + c;\n a = ____(4, 28, a + (b ^ c ^ d) + m13 + 681279174) + b;\n d = ____(11, 21, d + (a ^ b ^ c) + m00 - 358537222) + a;\n c = ____(16, 16, c + (d ^ a ^ b) + m03 - 722521979) + d;\n b = ____(23, 9, b + (c ^ d ^ a) + m06 + 76029189) + c;\n a = ____(4, 28, a + (b ^ c ^ d) + m09 - 640364487) + b;\n d = ____(11, 21, d + (a ^ b ^ c) + m12 - 421815835) + a;\n c = ____(16, 16, c + (d ^ a ^ b) + m15 + 530742520) + d;\n b = ____(23, 9, b + (c ^ d ^ a) + m02 - 995338651) + c;\n\n a = ____(6, 26, a + (c ^ (b | ~d)) + m00 - 198630844) + b;\n d = ____(10, 22, d + (b ^ (a | ~c)) + m07 + 1126891415) + a;\n c = ____(15, 17, c + (a ^ (d | ~b)) + m14 - 1416354905) + d;\n b = ____(21, 11, b + (d ^ (c | ~a)) + m05 - 57434055) + c;\n a = ____(6, 26, a + (c ^ (b | ~d)) + m12 + 1700485571) + b;\n d = ____(10, 22, d + (b ^ (a | ~c)) + m03 - 1894986606) + a;\n c = ____(15, 17, c + (a ^ (d | ~b)) + m10 - 1051523) + d;\n b = ____(21, 11, b + (d ^ (c | ~a)) + m01 - 2054922799) + c;\n a = ____(6, 26, a + (c ^ (b | ~d)) + m08 + 1873313359) + b;\n d = ____(10, 22, d + (b ^ (a | ~c)) + m15 - 30611744) + a;\n c = ____(15, 17, c + (a ^ (d | ~b)) + m06 - 1560198380) + d;\n b = ____(21, 11, b + (d ^ (c | ~a)) + m13 + 1309151649) + c;\n a = ____(6, 26, a + (c ^ (b | ~d)) + m04 - 145523070) + b;\n d = ____(10, 22, d + (b ^ (a | ~c)) + m11 - 1120210379) + a;\n c = ____(15, 17, c + (a ^ (d | ~b)) + m02 + 718787259) + d;\n b = ____(21, 11, b + (d ^ (c | ~a)) + m09 - 343485551) + c;\n\n i = i + 16;\n a = (a + aa) >>> 0;\n b = (b + bb) >>> 0;\n c = (c + cc) >>> 0;\n d = (d + dd) >>> 0;\n }\n }\n\n // console.log(\"md5WA, elapsed=\"+((new Date().getTime())-qwerty)+(md5Used?\", WebAssembly called \"+md5Used+\" times\":\", WebAssembly not called\"));\n\n return crypt.endian([a, b, c, d]);\n\n function ____(s, t, n) {\n return (n << s) | (n >>> t);\n }\n\n // Convert a byte array to big-endian 32-bit words\n function bytesToWordsNewer(bytes, words) {\n var i = -1,\n l = Math.floor((bytes.length - 1) / 4),\n j = 0,\n b0,\n b1,\n b2,\n b3;\n while (l - 8 > i++) {\n j = i << 2;\n words[i] = bytes[j + 0] | (bytes[j + 1] << 8) | (bytes[j + 2] << 16) | (bytes[j + 3] << 24);\n }\n i--;\n while (l > i++) {\n j = i << 2;\n b0 = typeof bytes[j + 0] === 'undefined' ? 0 : bytes[j + 0];\n b1 = typeof bytes[j + 1] === 'undefined' ? 0 : bytes[j + 1];\n b2 = typeof bytes[j + 2] === 'undefined' ? 0 : bytes[j + 2];\n b3 = typeof bytes[j + 3] === 'undefined' ? 0 : bytes[j + 3];\n words[i] = b0 | (b1 << 8) | (b2 << 16) | (b3 << 24);\n }\n return l + 1;\n }\n };\n\n return function (message, exports, mView, options) {\n var digestbytes;\n loops = exports.loops;\n loop = exports.loop;\n getA = exports.getA;\n getB = exports.getB;\n getC = exports.getC;\n getD = exports.getD;\n getX = exports.getX;\n setA = exports.setA;\n setB = exports.setB;\n setC = exports.setC;\n setD = exports.setD;\n setX = exports.setX;\n memView = mView;\n digestbytes = crypt.wordsToBytes(md5WA(message));\n return options && options.asBytes ? digestbytes : crypt.bytesToHex(digestbytes);\n };\n}\n\nfunction makeMD5JS() {\n var md5JS = function (message, options) {\n var m00,\n m01,\n m02,\n m03,\n m04,\n m05,\n m06,\n m07,\n m08,\n m09,\n m10,\n m11,\n m12,\n m13,\n m14,\n m15,\n aa,\n bb,\n cc,\n dd,\n m;\n var qwerty = new Date().getTime();\n\n // console.log(\"md5 start\");\n\n var a = 1732584193,\n b = -271733879,\n c = -1732584194,\n d = 271733878,\n l = message.length * 8;\n\n m = crypt.bytesToWords(message);\n\n // Swap endian\n for (var j = 0; j < m.length; j++) {\n m[j] =\n (((m[j] << 8) | (m[j] >>> 24)) & 0x00ff00ff) | (((m[j] << 24) | (m[j] >>> 8)) & 0xff00ff00);\n }\n\n // Padding\n m[l >>> 5] |= 0x80 << l % 32;\n m[(((l + 64) >>> 9) << 4) + 14] = l;\n\n for (var i = 0; i < m.length; i += 16) {\n aa = a;\n bb = b;\n cc = c;\n dd = d;\n m00 = m[i + 0] >>> 0;\n m01 = m[i + 1] >>> 0;\n m02 = m[i + 2] >>> 0;\n m03 = m[i + 3] >>> 0;\n m04 = m[i + 4] >>> 0;\n m05 = m[i + 5] >>> 0;\n m06 = m[i + 6] >>> 0;\n m07 = m[i + 7] >>> 0;\n m08 = m[i + 8] >>> 0;\n m09 = m[i + 9] >>> 0;\n m10 = m[i + 10] >>> 0;\n m11 = m[i + 11] >>> 0;\n m12 = m[i + 12] >>> 0;\n m13 = m[i + 13] >>> 0;\n m14 = m[i + 14] >>> 0;\n m15 = m[i + 15] >>> 0;\n\n a = ____(7, 25, a + ((b & c) | (~b & d)) + m00 - 680876936) + b;\n d = ____(12, 20, d + ((a & b) | (~a & c)) + m01 - 389564586) + a;\n c = ____(17, 15, c + ((d & a) | (~d & b)) + m02 + 606105819) + d;\n b = ____(22, 10, b + ((c & d) | (~c & a)) + m03 - 1044525330) + c;\n a = ____(7, 25, a + ((b & c) | (~b & d)) + m04 - 176418897) + b;\n d = ____(12, 20, d + ((a & b) | (~a & c)) + m05 + 1200080426) + a;\n c = ____(17, 15, c + ((d & a) | (~d & b)) + m06 - 1473231341) + d;\n b = ____(22, 10, b + ((c & d) | (~c & a)) + m07 - 45705983) + c;\n a = ____(7, 25, a + ((b & c) | (~b & d)) + m08 + 1770035416) + b;\n d = ____(12, 20, d + ((a & b) | (~a & c)) + m09 - 1958414417) + a;\n c = ____(17, 15, c + ((d & a) | (~d & b)) + m10 - 42063) + d;\n b = ____(22, 10, b + ((c & d) | (~c & a)) + m11 - 1990404162) + c;\n a = ____(7, 25, a + ((b & c) | (~b & d)) + m12 + 1804603682) + b;\n d = ____(12, 20, d + ((a & b) | (~a & c)) + m13 - 40341101) + a;\n c = ____(17, 15, c + ((d & a) | (~d & b)) + m14 - 1502002290) + d;\n b = ____(22, 10, b + ((c & d) | (~c & a)) + m15 + 1236535329) + c;\n\n a = ____(5, 27, a + ((b & d) | (c & ~d)) + m01 - 165796510) + b;\n d = ____(9, 23, d + ((a & c) | (b & ~c)) + m06 - 1069501632) + a;\n c = ____(14, 18, c + ((d & b) | (a & ~b)) + m11 + 643717713) + d;\n b = ____(20, 12, b + ((c & a) | (d & ~a)) + m00 - 373897302) + c;\n a = ____(5, 27, a + ((b & d) | (c & ~d)) + m05 - 701558691) + b;\n d = ____(9, 23, d + ((a & c) | (b & ~c)) + m10 + 38016083) + a;\n c = ____(14, 18, c + ((d & b) | (a & ~b)) + m15 - 660478335) + d;\n b = ____(20, 12, b + ((c & a) | (d & ~a)) + m04 - 405537848) + c;\n a = ____(5, 27, a + ((b & d) | (c & ~d)) + m09 + 568446438) + b;\n d = ____(9, 23, d + ((a & c) | (b & ~c)) + m14 - 1019803690) + a;\n c = ____(14, 18, c + ((d & b) | (a & ~b)) + m03 - 187363961) + d;\n b = ____(20, 12, b + ((c & a) | (d & ~a)) + m08 + 1163531501) + c;\n a = ____(5, 27, a + ((b & d) | (c & ~d)) + m13 - 1444681467) + b;\n d = ____(9, 23, d + ((a & c) | (b & ~c)) + m02 - 51403784) + a;\n c = ____(14, 18, c + ((d & b) | (a & ~b)) + m07 + 1735328473) + d;\n b = ____(20, 12, b + ((c & a) | (d & ~a)) + m12 - 1926607734) + c;\n\n a = ____(4, 28, a + (b ^ c ^ d) + m05 - 378558) + b;\n d = ____(11, 21, d + (a ^ b ^ c) + m08 - 2022574463) + a;\n c = ____(16, 16, c + (d ^ a ^ b) + m11 + 1839030562) + d;\n b = ____(23, 9, b + (c ^ d ^ a) + m14 - 35309556) + c;\n a = ____(4, 28, a + (b ^ c ^ d) + m01 - 1530992060) + b;\n d = ____(11, 21, d + (a ^ b ^ c) + m04 + 1272893353) + a;\n c = ____(16, 16, c + (d ^ a ^ b) + m07 - 155497632) + d;\n b = ____(23, 9, b + (c ^ d ^ a) + m10 - 1094730640) + c;\n a = ____(4, 28, a + (b ^ c ^ d) + m13 + 681279174) + b;\n d = ____(11, 21, d + (a ^ b ^ c) + m00 - 358537222) + a;\n c = ____(16, 16, c + (d ^ a ^ b) + m03 - 722521979) + d;\n b = ____(23, 9, b + (c ^ d ^ a) + m06 + 76029189) + c;\n a = ____(4, 28, a + (b ^ c ^ d) + m09 - 640364487) + b;\n d = ____(11, 21, d + (a ^ b ^ c) + m12 - 421815835) + a;\n c = ____(16, 16, c + (d ^ a ^ b) + m15 + 530742520) + d;\n b = ____(23, 9, b + (c ^ d ^ a) + m02 - 995338651) + c;\n\n a = ____(6, 26, a + (c ^ (b | ~d)) + m00 - 198630844) + b;\n d = ____(10, 22, d + (b ^ (a | ~c)) + m07 + 1126891415) + a;\n c = ____(15, 17, c + (a ^ (d | ~b)) + m14 - 1416354905) + d;\n b = ____(21, 11, b + (d ^ (c | ~a)) + m05 - 57434055) + c;\n a = ____(6, 26, a + (c ^ (b | ~d)) + m12 + 1700485571) + b;\n d = ____(10, 22, d + (b ^ (a | ~c)) + m03 - 1894986606) + a;\n c = ____(15, 17, c + (a ^ (d | ~b)) + m10 - 1051523) + d;\n b = ____(21, 11, b + (d ^ (c | ~a)) + m01 - 2054922799) + c;\n a = ____(6, 26, a + (c ^ (b | ~d)) + m08 + 1873313359) + b;\n d = ____(10, 22, d + (b ^ (a | ~c)) + m15 - 30611744) + a;\n c = ____(15, 17, c + (a ^ (d | ~b)) + m06 - 1560198380) + d;\n b = ____(21, 11, b + (d ^ (c | ~a)) + m13 + 1309151649) + c;\n a = ____(6, 26, a + (c ^ (b | ~d)) + m04 - 145523070) + b;\n d = ____(10, 22, d + (b ^ (a | ~c)) + m11 - 1120210379) + a;\n c = ____(15, 17, c + (a ^ (d | ~b)) + m02 + 718787259) + d;\n b = ____(21, 11, b + (d ^ (c | ~a)) + m09 - 343485551) + c;\n\n a = (a + aa) >>> 0;\n b = (b + bb) >>> 0;\n c = (c + cc) >>> 0;\n d = (d + dd) >>> 0;\n }\n\n // console.log(\"md5JS, elapsed=\"+((new Date().getTime())-qwerty));\n\n return crypt.endian([a, b, c, d]);\n\n function ____(s, t, n) {\n return (n << s) | (n >>> t);\n }\n };\n\n return function (message, options) {\n var digestbytes = crypt.wordsToBytes(md5JS(message, options)),\n result = options && options.asBytes ? digestbytes : crypt.bytesToHex(digestbytes);\n return result;\n };\n}\nfunction str2AB(str) {\n var l,\n buff,\n buffView,\n i = -1;\n l = str.length - 1;\n buff = new ArrayBuffer(str.length);\n buffView = new Uint8Array(buff);\n while (l > i++) {\n buffView[i] = str.charCodeAt(i);\n }\n return buffView;\n}\nfunction nodeATOB(str) {\n return Buffer.from(str, 'base64').toString('binary');\n}\nfunction identity(x) {\n return x;\n}\n\nfunction makeCrypt() {\n var base64map = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n return {\n rotl: function (n, b) {\n return (n << b) | (n >>> (32 - b));\n },\n\n endian: function (n) {\n if (n.constructor == Number) {\n return (crypt.rotl(n, 8) & 0x00ff00ff) | (crypt.rotl(n, 24) & 0xff00ff00);\n }\n for (var i = 0; i < n.length; i++) n[i] = crypt.endian(n[i]);\n return n;\n },\n\n bytesToWords: function (bytes) {\n for (var words = [], i = 0, b = 0; i < bytes.length; i++, b += 8)\n words[b >>> 5] |= bytes[i] << (24 - (b % 32));\n return words;\n },\n\n wordsToBytes: function (words) {\n for (var bytes = [], b = 0; b < words.length * 32; b += 8)\n bytes.push((words[b >>> 5] >>> (24 - (b % 32))) & 0xff);\n return bytes;\n },\n\n bytesToHex: function (bytes) {\n for (var hex = [], i = 0; i < bytes.length; i++) {\n hex.push((bytes[i] >>> 4).toString(16));\n hex.push((bytes[i] & 0xf).toString(16));\n }\n return hex.join('');\n }\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"md5-wasm.js","names":["atb","atob","Buffer","nodeATOB","identity","wasmB64","wasm","WebAssembly","str2AB","buffer","crypt","makeCrypt","biteSize","bounder","Math","floor","upperLimit","parmTypeErrStr","tooBigErrStr","console","log","md5WASM","data","mem","memView","importObj","imports","len","buff","thenFun","catchFun","result","endTime","md5JS","makeMD5JS","md5WA","makeMD5WA","returnObj","startTime","Date","getTime","fun","getThen","constructor","Uint8Array","ArrayBuffer","getCatch","TypeError","length","Error","Memory","initial","Uint32Array","instantiate","then","giterdone","obj","instance","exports","r","res","Boolean","err","loop","loops","getA","setA","getB","setB","getC","setC","getD","setD","getX","setX","message","m00","m01","m02","m03","m04","m05","m06","m07","m08","m09","m10","m11","m12","m13","m14","m15","aa","bb","cc","dd","m","k","qwerty","md5Used","a","b","c","d","i","l","bytesToWordsNewer","____","endian","s","t","n","bytes","words","j","b0","b1","b2","b3","mView","options","digestbytes","wordsToBytes","asBytes","bytesconvertNumberToHex","bytesToWords","str","buffView","charCodeAt","from","toString","x","base64map","rotl","Number","push","hex","join"],"sources":["../../../../src/lib/algorithms/md5-wasm.ts"],"sourcesContent":["/* eslint-disable */\n// @ts-nocheck\n/* !\n * MD5 WebAssembly\n * https://github.com/briantbutton/md5-wasm\n * (c) 2020 Brian Todd Button\n * Released under the MIT license\n */\n\n// *-*=* *=*-* *-*=* *=*-* *-*=* *=*-* *-*=* *=*-* *-*=* *=*-* *-*=* *=*-*\n// This contains two functions designed to achieve the same thing\n// -> A WebAssembly function for larger files\n// -> A JavaScript function for the others\n//\nconst atb = typeof atob === 'function' ? atob : typeof Buffer === 'function' ? nodeATOB : identity,\n wasmB64 = atb(\n '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'\n ),\n wasm = WebAssembly && atb !== identity ? str2AB(wasmB64).buffer : false,\n crypt = makeCrypt(),\n biteSize = 240 * 16 * 16,\n bounder = Math.floor(biteSize * 16 * 1.066666667),\n upperLimit = 268435456 - 65536,\n parmTypeErrStr = 'Parameter must be Buffer, ArrayBuffer or Uint8Array',\n tooBigErrStr = 'Parameter exceeds max size of 255.9 Mbytes';\n\nif (!wasm) {\n console.log(\n 'WebAssembly not available or WASM module could not be decoded; md5WASM will fall back to JavaScript'\n );\n}\n\n// - - - - - - - - - - - - - - - - - - - - - - - - - - -\n// This returns a Promise-like object (I was farting around, so sue me)\n// which supports '.catch' and '.then'\nexport default function md5WASM(data) {\n var mem, memView, importObj, imports, len, buff, thenFun, catchFun, result, endTime;\n const md5JS = makeMD5JS(),\n md5WA = makeMD5WA(),\n returnObj = {},\n startTime = new Date().getTime();\n\n returnObj['then'] = function (fun) {\n thenFun = fun;\n getThen();\n return returnObj;\n };\n returnObj['catch'] = function (fun) {\n catchFun = fun;\n return returnObj;\n };\n\n // Sift the incoming parameter and the environment\n // If we are good, set buff\n if (true) {\n if (data && typeof data === 'object') {\n if (typeof Buffer === 'function' && data.constructor === Buffer) {\n buff = data;\n } else {\n if (data.constructor === Uint8Array || data.constructor === ArrayBuffer) {\n buff = data.constructor === ArrayBuffer ? new Uint8Array(data) : data;\n } else {\n getCatch(new TypeError(parmTypeErrStr));\n }\n }\n } else {\n getCatch(new TypeError(parmTypeErrStr));\n }\n }\n\n // - - - - - - - - - - - - - - - - - - - - - - - - - -\n // Make some choices based on the size of the incoming data\n // ~ Use WebAssembly or just JavaScript\n // ~ If Webassemly, allocate appropriate memory\n //\n if (buff) {\n len = buff.length;\n if (wasm && len > bounder) {\n if (len > upperLimit) {\n getCatch(new Error(tooBigErrStr));\n } else {\n mem = new WebAssembly.Memory({\n initial: len > 32000000 ? (len > 64000000 ? (len > 128000000 ? 4096 : 2048) : 1024) : 512\n });\n memView = new Uint32Array(mem.buffer);\n imports = {mem: mem, log: console.log};\n importObj = {imports};\n WebAssembly.instantiate(wasm, importObj).then(giterdone);\n }\n } else {\n getThen(md5JS(buff));\n }\n }\n return returnObj;\n\n function giterdone(obj) {\n getThen(md5WA(buff, obj.instance.exports, memView));\n }\n function getThen(r) {\n var res = Boolean(r) ? r : result;\n if (Boolean(r)) {\n endTime = new Date().getTime();\n }\n if (typeof thenFun === 'function') {\n if (Boolean(res)) {\n thenFun(res, endTime - startTime);\n thenFun = catchFun = null;\n }\n } else {\n if (Boolean(r)) {\n result = r;\n }\n }\n }\n function getCatch(err) {\n if (typeof catchFun === 'function') {\n catchFun(err);\n }\n }\n}\n\nfunction makeMD5WA() {\n var loop, loops;\n var getA, setA, getB, setB, getC, setC, getD, setD, getX, setX, memView;\n\n var md5WA = function (message) {\n var m00,\n m01,\n m02,\n m03,\n m04,\n m05,\n m06,\n m07,\n m08,\n m09,\n m10,\n m11,\n m12,\n m13,\n m14,\n m15,\n aa,\n bb,\n cc,\n dd,\n m,\n k;\n var qwerty = new Date().getTime();\n var md5Used = 0;\n\n var a = 1732584193,\n b = -271733879,\n c = -1732584194,\n d = 271733878,\n i = 0,\n l = message.length * 8,\n len;\n\n len = bytesToWordsNewer(message, memView);\n memView[l >>> 5] |= 0x80 << l % 32;\n memView[(((l + 64) >>> 9) << 4) + 14] = l;\n len = (((l + 64) >>> 9) << 4) + 15;\n m = memView;\n\n // console.log(\"first loop took \"+((new Date().getTime())-qwerty)+\"ms\");\n\n while (i < len) {\n if (len > i + bounder) {\n setA(a);\n setB(b);\n setC(c);\n setD(d);\n loops(biteSize);\n i = i + biteSize * 16;\n a = getA();\n b = getB();\n c = getC();\n d = getD();\n md5Used++;\n } else {\n aa = a;\n bb = b;\n cc = c;\n dd = d;\n m00 = m[i + 0] >>> 0;\n m01 = m[i + 1] >>> 0;\n m02 = m[i + 2] >>> 0;\n m03 = m[i + 3] >>> 0;\n m04 = m[i + 4] >>> 0;\n m05 = m[i + 5] >>> 0;\n m06 = m[i + 6] >>> 0;\n m07 = m[i + 7] >>> 0;\n m08 = m[i + 8] >>> 0;\n m09 = m[i + 9] >>> 0;\n m10 = m[i + 10] >>> 0;\n m11 = m[i + 11] >>> 0;\n m12 = m[i + 12] >>> 0;\n m13 = m[i + 13] >>> 0;\n m14 = m[i + 14] >>> 0;\n m15 = m[i + 15] >>> 0;\n\n a = ____(7, 25, a + ((b & c) | (~b & d)) + m00 - 680876936) + b;\n d = ____(12, 20, d + ((a & b) | (~a & c)) + m01 - 389564586) + a;\n c = ____(17, 15, c + ((d & a) | (~d & b)) + m02 + 606105819) + d;\n b = ____(22, 10, b + ((c & d) | (~c & a)) + m03 - 1044525330) + c;\n a = ____(7, 25, a + ((b & c) | (~b & d)) + m04 - 176418897) + b;\n d = ____(12, 20, d + ((a & b) | (~a & c)) + m05 + 1200080426) + a;\n c = ____(17, 15, c + ((d & a) | (~d & b)) + m06 - 1473231341) + d;\n b = ____(22, 10, b + ((c & d) | (~c & a)) + m07 - 45705983) + c;\n a = ____(7, 25, a + ((b & c) | (~b & d)) + m08 + 1770035416) + b;\n d = ____(12, 20, d + ((a & b) | (~a & c)) + m09 - 1958414417) + a;\n c = ____(17, 15, c + ((d & a) | (~d & b)) + m10 - 42063) + d;\n b = ____(22, 10, b + ((c & d) | (~c & a)) + m11 - 1990404162) + c;\n a = ____(7, 25, a + ((b & c) | (~b & d)) + m12 + 1804603682) + b;\n d = ____(12, 20, d + ((a & b) | (~a & c)) + m13 - 40341101) + a;\n c = ____(17, 15, c + ((d & a) | (~d & b)) + m14 - 1502002290) + d;\n b = ____(22, 10, b + ((c & d) | (~c & a)) + m15 + 1236535329) + c;\n\n a = ____(5, 27, a + ((b & d) | (c & ~d)) + m01 - 165796510) + b;\n d = ____(9, 23, d + ((a & c) | (b & ~c)) + m06 - 1069501632) + a;\n c = ____(14, 18, c + ((d & b) | (a & ~b)) + m11 + 643717713) + d;\n b = ____(20, 12, b + ((c & a) | (d & ~a)) + m00 - 373897302) + c;\n a = ____(5, 27, a + ((b & d) | (c & ~d)) + m05 - 701558691) + b;\n d = ____(9, 23, d + ((a & c) | (b & ~c)) + m10 + 38016083) + a;\n c = ____(14, 18, c + ((d & b) | (a & ~b)) + m15 - 660478335) + d;\n b = ____(20, 12, b + ((c & a) | (d & ~a)) + m04 - 405537848) + c;\n a = ____(5, 27, a + ((b & d) | (c & ~d)) + m09 + 568446438) + b;\n d = ____(9, 23, d + ((a & c) | (b & ~c)) + m14 - 1019803690) + a;\n c = ____(14, 18, c + ((d & b) | (a & ~b)) + m03 - 187363961) + d;\n b = ____(20, 12, b + ((c & a) | (d & ~a)) + m08 + 1163531501) + c;\n a = ____(5, 27, a + ((b & d) | (c & ~d)) + m13 - 1444681467) + b;\n d = ____(9, 23, d + ((a & c) | (b & ~c)) + m02 - 51403784) + a;\n c = ____(14, 18, c + ((d & b) | (a & ~b)) + m07 + 1735328473) + d;\n b = ____(20, 12, b + ((c & a) | (d & ~a)) + m12 - 1926607734) + c;\n\n a = ____(4, 28, a + (b ^ c ^ d) + m05 - 378558) + b;\n d = ____(11, 21, d + (a ^ b ^ c) + m08 - 2022574463) + a;\n c = ____(16, 16, c + (d ^ a ^ b) + m11 + 1839030562) + d;\n b = ____(23, 9, b + (c ^ d ^ a) + m14 - 35309556) + c;\n a = ____(4, 28, a + (b ^ c ^ d) + m01 - 1530992060) + b;\n d = ____(11, 21, d + (a ^ b ^ c) + m04 + 1272893353) + a;\n c = ____(16, 16, c + (d ^ a ^ b) + m07 - 155497632) + d;\n b = ____(23, 9, b + (c ^ d ^ a) + m10 - 1094730640) + c;\n a = ____(4, 28, a + (b ^ c ^ d) + m13 + 681279174) + b;\n d = ____(11, 21, d + (a ^ b ^ c) + m00 - 358537222) + a;\n c = ____(16, 16, c + (d ^ a ^ b) + m03 - 722521979) + d;\n b = ____(23, 9, b + (c ^ d ^ a) + m06 + 76029189) + c;\n a = ____(4, 28, a + (b ^ c ^ d) + m09 - 640364487) + b;\n d = ____(11, 21, d + (a ^ b ^ c) + m12 - 421815835) + a;\n c = ____(16, 16, c + (d ^ a ^ b) + m15 + 530742520) + d;\n b = ____(23, 9, b + (c ^ d ^ a) + m02 - 995338651) + c;\n\n a = ____(6, 26, a + (c ^ (b | ~d)) + m00 - 198630844) + b;\n d = ____(10, 22, d + (b ^ (a | ~c)) + m07 + 1126891415) + a;\n c = ____(15, 17, c + (a ^ (d | ~b)) + m14 - 1416354905) + d;\n b = ____(21, 11, b + (d ^ (c | ~a)) + m05 - 57434055) + c;\n a = ____(6, 26, a + (c ^ (b | ~d)) + m12 + 1700485571) + b;\n d = ____(10, 22, d + (b ^ (a | ~c)) + m03 - 1894986606) + a;\n c = ____(15, 17, c + (a ^ (d | ~b)) + m10 - 1051523) + d;\n b = ____(21, 11, b + (d ^ (c | ~a)) + m01 - 2054922799) + c;\n a = ____(6, 26, a + (c ^ (b | ~d)) + m08 + 1873313359) + b;\n d = ____(10, 22, d + (b ^ (a | ~c)) + m15 - 30611744) + a;\n c = ____(15, 17, c + (a ^ (d | ~b)) + m06 - 1560198380) + d;\n b = ____(21, 11, b + (d ^ (c | ~a)) + m13 + 1309151649) + c;\n a = ____(6, 26, a + (c ^ (b | ~d)) + m04 - 145523070) + b;\n d = ____(10, 22, d + (b ^ (a | ~c)) + m11 - 1120210379) + a;\n c = ____(15, 17, c + (a ^ (d | ~b)) + m02 + 718787259) + d;\n b = ____(21, 11, b + (d ^ (c | ~a)) + m09 - 343485551) + c;\n\n i = i + 16;\n a = (a + aa) >>> 0;\n b = (b + bb) >>> 0;\n c = (c + cc) >>> 0;\n d = (d + dd) >>> 0;\n }\n }\n\n // console.log(\"md5WA, elapsed=\"+((new Date().getTime())-qwerty)+(md5Used?\", WebAssembly called \"+md5Used+\" times\":\", WebAssembly not called\"));\n\n return crypt.endian([a, b, c, d]);\n\n function ____(s, t, n) {\n return (n << s) | (n >>> t);\n }\n\n // Convert a byte array to big-endian 32-bit words\n function bytesToWordsNewer(bytes, words) {\n var i = -1,\n l = Math.floor((bytes.length - 1) / 4),\n j = 0,\n b0,\n b1,\n b2,\n b3;\n while (l - 8 > i++) {\n j = i << 2;\n words[i] = bytes[j + 0] | (bytes[j + 1] << 8) | (bytes[j + 2] << 16) | (bytes[j + 3] << 24);\n }\n i--;\n while (l > i++) {\n j = i << 2;\n b0 = typeof bytes[j + 0] === 'undefined' ? 0 : bytes[j + 0];\n b1 = typeof bytes[j + 1] === 'undefined' ? 0 : bytes[j + 1];\n b2 = typeof bytes[j + 2] === 'undefined' ? 0 : bytes[j + 2];\n b3 = typeof bytes[j + 3] === 'undefined' ? 0 : bytes[j + 3];\n words[i] = b0 | (b1 << 8) | (b2 << 16) | (b3 << 24);\n }\n return l + 1;\n }\n };\n\n return function (message, exports, mView, options) {\n var digestbytes;\n loops = exports.loops;\n loop = exports.loop;\n getA = exports.getA;\n getB = exports.getB;\n getC = exports.getC;\n getD = exports.getD;\n getX = exports.getX;\n setA = exports.setA;\n setB = exports.setB;\n setC = exports.setC;\n setD = exports.setD;\n setX = exports.setX;\n memView = mView;\n digestbytes = crypt.wordsToBytes(md5WA(message));\n return options && options.asBytes ? digestbytes : crypt.bytesconvertNumberToHex(digestbytes);\n };\n}\n\nfunction makeMD5JS() {\n var md5JS = function (message, options) {\n var m00,\n m01,\n m02,\n m03,\n m04,\n m05,\n m06,\n m07,\n m08,\n m09,\n m10,\n m11,\n m12,\n m13,\n m14,\n m15,\n aa,\n bb,\n cc,\n dd,\n m;\n var qwerty = new Date().getTime();\n\n // console.log(\"md5 start\");\n\n var a = 1732584193,\n b = -271733879,\n c = -1732584194,\n d = 271733878,\n l = message.length * 8;\n\n m = crypt.bytesToWords(message);\n\n // Swap endian\n for (var j = 0; j < m.length; j++) {\n m[j] =\n (((m[j] << 8) | (m[j] >>> 24)) & 0x00ff00ff) | (((m[j] << 24) | (m[j] >>> 8)) & 0xff00ff00);\n }\n\n // Padding\n m[l >>> 5] |= 0x80 << l % 32;\n m[(((l + 64) >>> 9) << 4) + 14] = l;\n\n for (var i = 0; i < m.length; i += 16) {\n aa = a;\n bb = b;\n cc = c;\n dd = d;\n m00 = m[i + 0] >>> 0;\n m01 = m[i + 1] >>> 0;\n m02 = m[i + 2] >>> 0;\n m03 = m[i + 3] >>> 0;\n m04 = m[i + 4] >>> 0;\n m05 = m[i + 5] >>> 0;\n m06 = m[i + 6] >>> 0;\n m07 = m[i + 7] >>> 0;\n m08 = m[i + 8] >>> 0;\n m09 = m[i + 9] >>> 0;\n m10 = m[i + 10] >>> 0;\n m11 = m[i + 11] >>> 0;\n m12 = m[i + 12] >>> 0;\n m13 = m[i + 13] >>> 0;\n m14 = m[i + 14] >>> 0;\n m15 = m[i + 15] >>> 0;\n\n a = ____(7, 25, a + ((b & c) | (~b & d)) + m00 - 680876936) + b;\n d = ____(12, 20, d + ((a & b) | (~a & c)) + m01 - 389564586) + a;\n c = ____(17, 15, c + ((d & a) | (~d & b)) + m02 + 606105819) + d;\n b = ____(22, 10, b + ((c & d) | (~c & a)) + m03 - 1044525330) + c;\n a = ____(7, 25, a + ((b & c) | (~b & d)) + m04 - 176418897) + b;\n d = ____(12, 20, d + ((a & b) | (~a & c)) + m05 + 1200080426) + a;\n c = ____(17, 15, c + ((d & a) | (~d & b)) + m06 - 1473231341) + d;\n b = ____(22, 10, b + ((c & d) | (~c & a)) + m07 - 45705983) + c;\n a = ____(7, 25, a + ((b & c) | (~b & d)) + m08 + 1770035416) + b;\n d = ____(12, 20, d + ((a & b) | (~a & c)) + m09 - 1958414417) + a;\n c = ____(17, 15, c + ((d & a) | (~d & b)) + m10 - 42063) + d;\n b = ____(22, 10, b + ((c & d) | (~c & a)) + m11 - 1990404162) + c;\n a = ____(7, 25, a + ((b & c) | (~b & d)) + m12 + 1804603682) + b;\n d = ____(12, 20, d + ((a & b) | (~a & c)) + m13 - 40341101) + a;\n c = ____(17, 15, c + ((d & a) | (~d & b)) + m14 - 1502002290) + d;\n b = ____(22, 10, b + ((c & d) | (~c & a)) + m15 + 1236535329) + c;\n\n a = ____(5, 27, a + ((b & d) | (c & ~d)) + m01 - 165796510) + b;\n d = ____(9, 23, d + ((a & c) | (b & ~c)) + m06 - 1069501632) + a;\n c = ____(14, 18, c + ((d & b) | (a & ~b)) + m11 + 643717713) + d;\n b = ____(20, 12, b + ((c & a) | (d & ~a)) + m00 - 373897302) + c;\n a = ____(5, 27, a + ((b & d) | (c & ~d)) + m05 - 701558691) + b;\n d = ____(9, 23, d + ((a & c) | (b & ~c)) + m10 + 38016083) + a;\n c = ____(14, 18, c + ((d & b) | (a & ~b)) + m15 - 660478335) + d;\n b = ____(20, 12, b + ((c & a) | (d & ~a)) + m04 - 405537848) + c;\n a = ____(5, 27, a + ((b & d) | (c & ~d)) + m09 + 568446438) + b;\n d = ____(9, 23, d + ((a & c) | (b & ~c)) + m14 - 1019803690) + a;\n c = ____(14, 18, c + ((d & b) | (a & ~b)) + m03 - 187363961) + d;\n b = ____(20, 12, b + ((c & a) | (d & ~a)) + m08 + 1163531501) + c;\n a = ____(5, 27, a + ((b & d) | (c & ~d)) + m13 - 1444681467) + b;\n d = ____(9, 23, d + ((a & c) | (b & ~c)) + m02 - 51403784) + a;\n c = ____(14, 18, c + ((d & b) | (a & ~b)) + m07 + 1735328473) + d;\n b = ____(20, 12, b + ((c & a) | (d & ~a)) + m12 - 1926607734) + c;\n\n a = ____(4, 28, a + (b ^ c ^ d) + m05 - 378558) + b;\n d = ____(11, 21, d + (a ^ b ^ c) + m08 - 2022574463) + a;\n c = ____(16, 16, c + (d ^ a ^ b) + m11 + 1839030562) + d;\n b = ____(23, 9, b + (c ^ d ^ a) + m14 - 35309556) + c;\n a = ____(4, 28, a + (b ^ c ^ d) + m01 - 1530992060) + b;\n d = ____(11, 21, d + (a ^ b ^ c) + m04 + 1272893353) + a;\n c = ____(16, 16, c + (d ^ a ^ b) + m07 - 155497632) + d;\n b = ____(23, 9, b + (c ^ d ^ a) + m10 - 1094730640) + c;\n a = ____(4, 28, a + (b ^ c ^ d) + m13 + 681279174) + b;\n d = ____(11, 21, d + (a ^ b ^ c) + m00 - 358537222) + a;\n c = ____(16, 16, c + (d ^ a ^ b) + m03 - 722521979) + d;\n b = ____(23, 9, b + (c ^ d ^ a) + m06 + 76029189) + c;\n a = ____(4, 28, a + (b ^ c ^ d) + m09 - 640364487) + b;\n d = ____(11, 21, d + (a ^ b ^ c) + m12 - 421815835) + a;\n c = ____(16, 16, c + (d ^ a ^ b) + m15 + 530742520) + d;\n b = ____(23, 9, b + (c ^ d ^ a) + m02 - 995338651) + c;\n\n a = ____(6, 26, a + (c ^ (b | ~d)) + m00 - 198630844) + b;\n d = ____(10, 22, d + (b ^ (a | ~c)) + m07 + 1126891415) + a;\n c = ____(15, 17, c + (a ^ (d | ~b)) + m14 - 1416354905) + d;\n b = ____(21, 11, b + (d ^ (c | ~a)) + m05 - 57434055) + c;\n a = ____(6, 26, a + (c ^ (b | ~d)) + m12 + 1700485571) + b;\n d = ____(10, 22, d + (b ^ (a | ~c)) + m03 - 1894986606) + a;\n c = ____(15, 17, c + (a ^ (d | ~b)) + m10 - 1051523) + d;\n b = ____(21, 11, b + (d ^ (c | ~a)) + m01 - 2054922799) + c;\n a = ____(6, 26, a + (c ^ (b | ~d)) + m08 + 1873313359) + b;\n d = ____(10, 22, d + (b ^ (a | ~c)) + m15 - 30611744) + a;\n c = ____(15, 17, c + (a ^ (d | ~b)) + m06 - 1560198380) + d;\n b = ____(21, 11, b + (d ^ (c | ~a)) + m13 + 1309151649) + c;\n a = ____(6, 26, a + (c ^ (b | ~d)) + m04 - 145523070) + b;\n d = ____(10, 22, d + (b ^ (a | ~c)) + m11 - 1120210379) + a;\n c = ____(15, 17, c + (a ^ (d | ~b)) + m02 + 718787259) + d;\n b = ____(21, 11, b + (d ^ (c | ~a)) + m09 - 343485551) + c;\n\n a = (a + aa) >>> 0;\n b = (b + bb) >>> 0;\n c = (c + cc) >>> 0;\n d = (d + dd) >>> 0;\n }\n\n // console.log(\"md5JS, elapsed=\"+((new Date().getTime())-qwerty));\n\n return crypt.endian([a, b, c, d]);\n\n function ____(s, t, n) {\n return (n << s) | (n >>> t);\n }\n };\n\n return function (message, options) {\n var digestbytes = crypt.wordsToBytes(md5JS(message, options)),\n result =\n options && options.asBytes ? digestbytes : crypt.bytesconvertNumberToHex(digestbytes);\n return result;\n };\n}\nfunction str2AB(str) {\n var l,\n buff,\n buffView,\n i = -1;\n l = str.length - 1;\n buff = new ArrayBuffer(str.length);\n buffView = new Uint8Array(buff);\n while (l > i++) {\n buffView[i] = str.charCodeAt(i);\n }\n return buffView;\n}\nfunction nodeATOB(str) {\n return Buffer.from(str, 'base64').toString('binary');\n}\nfunction identity(x) {\n return x;\n}\n\nfunction makeCrypt() {\n var base64map = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n return {\n rotl: function (n, b) {\n return (n << b) | (n >>> (32 - b));\n },\n\n endian: function (n) {\n if (n.constructor == Number) {\n return (crypt.rotl(n, 8) & 0x00ff00ff) | (crypt.rotl(n, 24) & 0xff00ff00);\n }\n for (var i = 0; i < n.length; i++) n[i] = crypt.endian(n[i]);\n return n;\n },\n\n bytesToWords: function (bytes) {\n for (var words = [], i = 0, b = 0; i < bytes.length; i++, b += 8)\n words[b >>> 5] |= bytes[i] << (24 - (b % 32));\n return words;\n },\n\n wordsToBytes: function (words) {\n for (var bytes = [], b = 0; b < words.length * 32; b += 8)\n bytes.push((words[b >>> 5] >>> (24 - (b % 32))) & 0xff);\n return bytes;\n },\n\n bytesconvertNumberToHex: function (bytes) {\n for (var hex = [], i = 0; i < bytes.length; i++) {\n hex.push((bytes[i] >>> 4).toString(16));\n hex.push((bytes[i] & 0xf).toString(16));\n }\n return hex.join('');\n }\n };\n}\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
2
  import { Hash } from './hash';
3
3
  import CRC32 from './algorithms/crc32';
4
- import { toHex, hexToBase64 } from './utils/digest-utils';
4
+ import { encodeNumber } from './utils/digest-utils';
5
5
  export class CRC32Hash extends Hash {
6
6
  constructor() {
7
7
  let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
@@ -16,28 +16,33 @@ export class CRC32Hash extends Hash {
16
16
  this._hash = new CRC32();
17
17
  this.hashBatches = this.hashBatches.bind(this);
18
18
  }
19
- async hash(input) {
20
- return this.hashSync(input);
19
+ async hash(input, encoding) {
20
+ return this.hashSync(input, encoding);
21
21
  }
22
- hashSync(input) {
22
+ hashSync(input, encoding) {
23
23
  this._hash.update(input);
24
- const hashValue = this._hash.finalize();
25
- const hex = toHex(hashValue);
26
- const hash = hexToBase64(hex);
27
- return hash;
24
+ const digest = this._hash.finalize();
25
+ return encodeNumber(digest, encoding);
28
26
  }
29
- async *hashBatches(asyncIterator) {
30
- var _this$options$crypto, _this$options$crypto$;
31
- for await (const chunk of asyncIterator) {
32
- this._hash.update(chunk);
33
- yield chunk;
27
+ hashBatches(asyncIterator) {
28
+ try {
29
+ var _this = this;
30
+ let encoding = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'base64';
31
+ return async function* () {
32
+ var _this$options$crypto, _this$options$crypto$;
33
+ for await (const chunk of asyncIterator) {
34
+ _this._hash.update(chunk);
35
+ yield chunk;
36
+ }
37
+ const digest = _this._hash.finalize();
38
+ const hash = encodeNumber(digest, encoding);
39
+ (_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, {
40
+ hash
41
+ });
42
+ }();
43
+ } catch (e) {
44
+ return Promise.reject(e);
34
45
  }
35
- const hashValue = this._hash.finalize();
36
- const hex = toHex(hashValue);
37
- const hash = hexToBase64(hex);
38
- (_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, {
39
- hash
40
- });
41
46
  }
42
47
  }
43
48
  //# sourceMappingURL=crc32-hash.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"crc32-hash.js","names":["Hash","CRC32","toHex","hexToBase64","CRC32Hash","constructor","options","arguments","length","undefined","_defineProperty","crypto","_hash","hashBatches","bind","hash","input","hashSync","update","hashValue","finalize","hex","asyncIterator","_this$options$crypto","_this$options$crypto$","chunk","onEnd","call"],"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,SAAQA,IAAI,QAAO,QAAQ;AAC3B,OAAOC,KAAK,MAAM,oBAAoB;AACtC,SAAQC,KAAK,EAAEC,WAAW,QAAO,sBAAsB;AAKvD,OAAO,MAAMC,SAAS,SAASJ,IAAI,CAAC;EAMlCK,WAAWA,CAAA,EAAe;IAAA,IAAdC,OAAO,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;IACtB,KAAK,CAAC,CAAC;IAACG,eAAA,eANM,OAAO;IAAAA,eAAA;IAAAA,eAAA;IAOrB,IAAI,CAACJ,OAAO,GAAG;MAACK,MAAM,EAAE,CAAC,CAAC;MAAE,GAAGL;IAAO,CAAC;IACvC,IAAI,CAACM,KAAK,GAAG,IAAIX,KAAK,CAAC,CAAC;IACxB,IAAI,CAACY,WAAW,GAAG,IAAI,CAACA,WAAW,CAACC,IAAI,CAAC,IAAI,CAAC;EAChD;EAMA,MAAMC,IAAIA,CAACC,KAAkB,EAAmB;IAC9C,OAAO,IAAI,CAACC,QAAQ,CAACD,KAAK,CAAC;EAC7B;EAEAC,QAAQA,CAACD,KAAkB,EAAU;IACnC,IAAI,CAACJ,KAAK,CAACM,MAAM,CAACF,KAAK,CAAC;IACxB,MAAMG,SAAS,GAAG,IAAI,CAACP,KAAK,CAACQ,QAAQ,CAAC,CAAC;IACvC,MAAMC,GAAG,GAAGnB,KAAK,CAACiB,SAAS,CAAC;IAC5B,MAAMJ,IAAI,GAAGZ,WAAW,CAACkB,GAAG,CAAC;IAC7B,OAAON,IAAI;EACb;EAEA,OAAOF,WAAWA,CAChBS,aAAiE,EACrC;IAAA,IAAAC,oBAAA,EAAAC,qBAAA;IAC5B,WAAW,MAAMC,KAAK,IAAIH,aAAa,EAAE;MACvC,IAAI,CAACV,KAAK,CAACM,MAAM,CAACO,KAAK,CAAC;MACxB,MAAMA,KAAK;IACb;IACA,MAAMN,SAAS,GAAG,IAAI,CAACP,KAAK,CAACQ,QAAQ,CAAC,CAAC;IACvC,MAAMC,GAAG,GAAGnB,KAAK,CAACiB,SAAS,CAAC;IAC5B,MAAMJ,IAAI,GAAGZ,WAAW,CAACkB,GAAG,CAAC;IAC7B,CAAAE,oBAAA,OAAI,CAACjB,OAAO,CAACK,MAAM,cAAAY,oBAAA,wBAAAC,qBAAA,GAAnBD,oBAAA,CAAqBG,KAAK,cAAAF,qBAAA,uBAA1BA,qBAAA,CAAAG,IAAA,CAAAJ,oBAAA,EAA6B;MAACR;IAAI,CAAC,CAAC;EACtC;AACF"}
1
+ {"version":3,"file":"crc32-hash.js","names":["Hash","CRC32","encodeNumber","CRC32Hash","constructor","options","arguments","length","undefined","_defineProperty","crypto","_hash","hashBatches","bind","hash","input","encoding","hashSync","update","digest","finalize","asyncIterator","_this","_this$options$crypto","_this$options$crypto$","chunk","onEnd","call","e","Promise","reject"],"sources":["../../../src/lib/crc32-hash.ts"],"sourcesContent":["// CRC32\nimport {Hash} from './hash';\nimport CRC32 from './algorithms/crc32';\nimport {encodeNumber} 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, encoding: 'hex' | 'base64'): Promise<string> {\n return this.hashSync(input, encoding);\n }\n\n hashSync(input: ArrayBuffer, encoding: 'hex' | 'base64'): string {\n this._hash.update(input);\n const digest = this._hash.finalize();\n return encodeNumber(digest, encoding);\n }\n\n async *hashBatches(\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>,\n encoding: 'hex' | 'base64' = 'base64'\n ): AsyncIterable<ArrayBuffer> {\n for await (const chunk of asyncIterator) {\n this._hash.update(chunk);\n yield chunk;\n }\n const digest = this._hash.finalize();\n const hash = encodeNumber(digest, encoding);\n this.options.crypto?.onEnd?.({hash});\n }\n}\n"],"mappings":";AACA,SAAQA,IAAI,QAAO,QAAQ;AAC3B,OAAOC,KAAK,MAAM,oBAAoB;AACtC,SAAQC,YAAY,QAAO,sBAAsB;AAKjD,OAAO,MAAMC,SAAS,SAASH,IAAI,CAAC;EAMlCI,WAAWA,CAAA,EAAe;IAAA,IAAdC,OAAO,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;IACtB,KAAK,CAAC,CAAC;IAACG,eAAA,eANM,OAAO;IAAAA,eAAA;IAAAA,eAAA;IAOrB,IAAI,CAACJ,OAAO,GAAG;MAACK,MAAM,EAAE,CAAC,CAAC;MAAE,GAAGL;IAAO,CAAC;IACvC,IAAI,CAACM,KAAK,GAAG,IAAIV,KAAK,CAAC,CAAC;IACxB,IAAI,CAACW,WAAW,GAAG,IAAI,CAACA,WAAW,CAACC,IAAI,CAAC,IAAI,CAAC;EAChD;EAMA,MAAMC,IAAIA,CAACC,KAAkB,EAAEC,QAA0B,EAAmB;IAC1E,OAAO,IAAI,CAACC,QAAQ,CAACF,KAAK,EAAEC,QAAQ,CAAC;EACvC;EAEAC,QAAQA,CAACF,KAAkB,EAAEC,QAA0B,EAAU;IAC/D,IAAI,CAACL,KAAK,CAACO,MAAM,CAACH,KAAK,CAAC;IACxB,MAAMI,MAAM,GAAG,IAAI,CAACR,KAAK,CAACS,QAAQ,CAAC,CAAC;IACpC,OAAOlB,YAAY,CAACiB,MAAM,EAAEH,QAAQ,CAAC;EACvC;EAEOJ,WAAWA,CAChBS,aAAiE;IAAA;MAAA,IAAAC,KAAA;MAAA,IACjEN,QAA0B,GAAAV,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,QAAQ;MAAA,0BACT;QAAA,IAAAiB,oBAAA,EAAAC,qBAAA;QAC5B,WAAW,MAAMC,KAAK,IAAIJ,aAAa,EAAE;UACvCC,KAAI,CAACX,KAAK,CAACO,MAAM,CAACO,KAAK,CAAC;UACxB,MAAMA,KAAK;QACb;QACA,MAAMN,MAAM,GAAGG,KAAI,CAACX,KAAK,CAACS,QAAQ,CAAC,CAAC;QACpC,MAAMN,IAAI,GAAGZ,YAAY,CAACiB,MAAM,EAAEH,QAAQ,CAAC;QAC3C,CAAAO,oBAAA,GAAAD,KAAI,CAACjB,OAAO,CAACK,MAAM,cAAAa,oBAAA,wBAAAC,qBAAA,GAAnBD,oBAAA,CAAqBG,KAAK,cAAAF,qBAAA,uBAA1BA,qBAAA,CAAAG,IAAA,CAAAJ,oBAAA,EAA6B;UAACT;QAAI,CAAC,CAAC;MACtC,CAAC;IAAA,SAAAc,CAAA;MAAA,OAAAC,OAAA,CAAAC,MAAA,CAAAF,CAAA;IAAA;EAAA;AACH"}
@@ -1,7 +1,7 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
2
  import { Hash } from './hash';
3
3
  import CRC32C from './algorithms/crc32c';
4
- import { toHex, hexToBase64 } from './utils/digest-utils';
4
+ import { encodeNumber } from './utils/digest-utils';
5
5
  export class CRC32CHash extends Hash {
6
6
  constructor() {
7
7
  let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
@@ -15,28 +15,33 @@ export class CRC32CHash extends Hash {
15
15
  };
16
16
  this._hash = new CRC32C(options);
17
17
  }
18
- async hash(input) {
19
- return this.hashSync(input);
18
+ async hash(input, encoding) {
19
+ return this.hashSync(input, encoding);
20
20
  }
21
- hashSync(input) {
21
+ hashSync(input, encoding) {
22
22
  this._hash.update(input);
23
- const hashValue = this._hash.finalize();
24
- const hex = toHex(hashValue);
25
- const hash = hexToBase64(hex);
26
- return hash;
23
+ const digest = this._hash.finalize();
24
+ return encodeNumber(digest, encoding);
27
25
  }
28
- async *hashBatches(asyncIterator) {
29
- var _this$options$crypto, _this$options$crypto$;
30
- for await (const chunk of asyncIterator) {
31
- this._hash.update(chunk);
32
- yield chunk;
26
+ hashBatches(asyncIterator) {
27
+ try {
28
+ var _this = this;
29
+ let encoding = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'base64';
30
+ return async function* () {
31
+ var _this$options$crypto, _this$options$crypto$;
32
+ for await (const chunk of asyncIterator) {
33
+ _this._hash.update(chunk);
34
+ yield chunk;
35
+ }
36
+ const digest = _this._hash.finalize();
37
+ const hash = encodeNumber(digest, encoding);
38
+ (_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, {
39
+ hash
40
+ });
41
+ }();
42
+ } catch (e) {
43
+ return Promise.reject(e);
33
44
  }
34
- const hashValue = this._hash.finalize();
35
- const hex = toHex(hashValue);
36
- const hash = hexToBase64(hex);
37
- (_this$options$crypto = this.options.crypto) === null || _this$options$crypto === void 0 ? void 0 : (_this$options$crypto$ = _this$options$crypto.onEnd) === null || _this$options$crypto$ === void 0 ? void 0 : _this$options$crypto$.call(_this$options$crypto, {
38
- hash
39
- });
40
45
  }
41
46
  }
42
47
  //# sourceMappingURL=crc32c-hash.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"crc32c-hash.js","names":["Hash","CRC32C","toHex","hexToBase64","CRC32CHash","constructor","options","arguments","length","undefined","_defineProperty","crypto","_hash","hash","input","hashSync","update","hashValue","finalize","hex","hashBatches","asyncIterator","_this$options$crypto","_this$options$crypto$","chunk","onEnd","call"],"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,SAAQA,IAAI,QAAO,QAAQ;AAC3B,OAAOC,MAAM,MAAM,qBAAqB;AACxC,SAAQC,KAAK,EAAEC,WAAW,QAAO,sBAAsB;AAKvD,OAAO,MAAMC,UAAU,SAASJ,IAAI,CAAC;EAUnCK,WAAWA,CAAA,EAAe;IAAA,IAAdC,OAAO,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;IACtB,KAAK,CAAC,CAAC;IAACG,eAAA,eAVM,QAAQ;IAAAA,eAAA;IAAAA,eAAA;IAWtB,IAAI,CAACJ,OAAO,GAAG;MAACK,MAAM,EAAE,CAAC,CAAC;MAAE,GAAGL;IAAO,CAAC;IACvC,IAAI,CAACM,KAAK,GAAG,IAAIX,MAAM,CAACK,OAAO,CAAC;EAClC;EAMA,MAAMO,IAAIA,CAACC,KAAkB,EAAmB;IAC9C,OAAO,IAAI,CAACC,QAAQ,CAACD,KAAK,CAAC;EAC7B;EAEAC,QAAQA,CAACD,KAAkB,EAAU;IACnC,IAAI,CAACF,KAAK,CAACI,MAAM,CAACF,KAAK,CAAC;IACxB,MAAMG,SAAS,GAAG,IAAI,CAACL,KAAK,CAACM,QAAQ,CAAC,CAAC;IACvC,MAAMC,GAAG,GAAGjB,KAAK,CAACe,SAAS,CAAC;IAC5B,MAAMJ,IAAI,GAAGV,WAAW,CAACgB,GAAG,CAAC;IAC7B,OAAON,IAAI;EACb;EAIA,OAAOO,WAAWA,CAChBC,aAAiE,EACrC;IAAA,IAAAC,oBAAA,EAAAC,qBAAA;IAC5B,WAAW,MAAMC,KAAK,IAAIH,aAAa,EAAE;MACvC,IAAI,CAACT,KAAK,CAACI,MAAM,CAACQ,KAAK,CAAC;MACxB,MAAMA,KAAK;IACb;IACA,MAAMP,SAAS,GAAG,IAAI,CAACL,KAAK,CAACM,QAAQ,CAAC,CAAC;IACvC,MAAMC,GAAG,GAAGjB,KAAK,CAACe,SAAS,CAAC;IAC5B,MAAMJ,IAAI,GAAGV,WAAW,CAACgB,GAAG,CAAC;IAC7B,CAAAG,oBAAA,OAAI,CAAChB,OAAO,CAACK,MAAM,cAAAW,oBAAA,wBAAAC,qBAAA,GAAnBD,oBAAA,CAAqBG,KAAK,cAAAF,qBAAA,uBAA1BA,qBAAA,CAAAG,IAAA,CAAAJ,oBAAA,EAA6B;MAACT;IAAI,CAAC,CAAC;EACtC;AACF"}
1
+ {"version":3,"file":"crc32c-hash.js","names":["Hash","CRC32C","encodeNumber","CRC32CHash","constructor","options","arguments","length","undefined","_defineProperty","crypto","_hash","hash","input","encoding","hashSync","update","digest","finalize","hashBatches","asyncIterator","_this","_this$options$crypto","_this$options$crypto$","chunk","onEnd","call","e","Promise","reject"],"sources":["../../../src/lib/crc32c-hash.ts"],"sourcesContent":["// CRC32c\nimport {Hash} from './hash';\nimport CRC32C from './algorithms/crc32c';\nimport {encodeNumber} 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, encoding: 'hex' | 'base64'): Promise<string> {\n return this.hashSync(input, encoding);\n }\n\n hashSync(input: ArrayBuffer, encoding: 'hex' | 'base64'): string {\n this._hash.update(input);\n const digest = this._hash.finalize();\n return encodeNumber(digest, encoding);\n }\n\n // runInBatches inherited\n\n async *hashBatches(\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>,\n encoding: 'hex' | 'base64' = 'base64'\n ): AsyncIterable<ArrayBuffer> {\n for await (const chunk of asyncIterator) {\n this._hash.update(chunk);\n yield chunk;\n }\n const digest = this._hash.finalize();\n const hash = encodeNumber(digest, encoding);\n this.options.crypto?.onEnd?.({hash});\n }\n}\n"],"mappings":";AACA,SAAQA,IAAI,QAAO,QAAQ;AAC3B,OAAOC,MAAM,MAAM,qBAAqB;AACxC,SAAQC,YAAY,QAAO,sBAAsB;AAKjD,OAAO,MAAMC,UAAU,SAASH,IAAI,CAAC;EAUnCI,WAAWA,CAAA,EAAe;IAAA,IAAdC,OAAO,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;IACtB,KAAK,CAAC,CAAC;IAACG,eAAA,eAVM,QAAQ;IAAAA,eAAA;IAAAA,eAAA;IAWtB,IAAI,CAACJ,OAAO,GAAG;MAACK,MAAM,EAAE,CAAC,CAAC;MAAE,GAAGL;IAAO,CAAC;IACvC,IAAI,CAACM,KAAK,GAAG,IAAIV,MAAM,CAACI,OAAO,CAAC;EAClC;EAMA,MAAMO,IAAIA,CAACC,KAAkB,EAAEC,QAA0B,EAAmB;IAC1E,OAAO,IAAI,CAACC,QAAQ,CAACF,KAAK,EAAEC,QAAQ,CAAC;EACvC;EAEAC,QAAQA,CAACF,KAAkB,EAAEC,QAA0B,EAAU;IAC/D,IAAI,CAACH,KAAK,CAACK,MAAM,CAACH,KAAK,CAAC;IACxB,MAAMI,MAAM,GAAG,IAAI,CAACN,KAAK,CAACO,QAAQ,CAAC,CAAC;IACpC,OAAOhB,YAAY,CAACe,MAAM,EAAEH,QAAQ,CAAC;EACvC;EAIOK,WAAWA,CAChBC,aAAiE;IAAA;MAAA,IAAAC,KAAA;MAAA,IACjEP,QAA0B,GAAAR,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,QAAQ;MAAA,0BACT;QAAA,IAAAgB,oBAAA,EAAAC,qBAAA;QAC5B,WAAW,MAAMC,KAAK,IAAIJ,aAAa,EAAE;UACvCC,KAAI,CAACV,KAAK,CAACK,MAAM,CAACQ,KAAK,CAAC;UACxB,MAAMA,KAAK;QACb;QACA,MAAMP,MAAM,GAAGI,KAAI,CAACV,KAAK,CAACO,QAAQ,CAAC,CAAC;QACpC,MAAMN,IAAI,GAAGV,YAAY,CAACe,MAAM,EAAEH,QAAQ,CAAC;QAC3C,CAAAQ,oBAAA,GAAAD,KAAI,CAAChB,OAAO,CAACK,MAAM,cAAAY,oBAAA,wBAAAC,qBAAA,GAAnBD,oBAAA,CAAqBG,KAAK,cAAAF,qBAAA,uBAA1BA,qBAAA,CAAAG,IAAA,CAAAJ,oBAAA,EAA6B;UAACV;QAAI,CAAC,CAAC;MACtC,CAAC;IAAA,SAAAe,CAAA;MAAA,OAAAC,OAAA,CAAAC,MAAA,CAAAF,CAAA;IAAA;EAAA;AACH"}
@@ -32,23 +32,33 @@ export class CryptoHash extends Hash {
32
32
  throw new Error(this.name);
33
33
  }
34
34
  }
35
- async hash(input) {
35
+ async hash(input, encoding) {
36
36
  await this.preload();
37
37
  const typedWordArray = CryptoJS.lib.WordArray.create(input);
38
- return this._hash.update(typedWordArray).finalize().toString(CryptoJS.enc.Base64);
38
+ const enc = encoding === 'base64' ? CryptoJS.enc.Base64 : CryptoJS.enc.Hex;
39
+ return this._hash.update(typedWordArray).finalize().toString(enc);
39
40
  }
40
- async *hashBatches(asyncIterator) {
41
- var _this$options3, _this$options3$crypto, _this$options3$crypto2;
42
- await this.preload();
43
- for await (const chunk of asyncIterator) {
44
- const typedWordArray = CryptoJS.lib.WordArray.create(chunk);
45
- this._hash.update(typedWordArray);
46
- yield chunk;
41
+ hashBatches(asyncIterator) {
42
+ try {
43
+ var _this = this;
44
+ let encoding = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'base64';
45
+ return async function* () {
46
+ var _this$options3, _this$options3$crypto, _this$options3$crypto2;
47
+ await _this.preload();
48
+ for await (const chunk of asyncIterator) {
49
+ const typedWordArray = CryptoJS.lib.WordArray.create(chunk);
50
+ _this._hash.update(typedWordArray);
51
+ yield chunk;
52
+ }
53
+ const enc = encoding === 'base64' ? CryptoJS.enc.Base64 : CryptoJS.enc.Hex;
54
+ const digest = _this._hash.finalize().toString(enc);
55
+ (_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, {
56
+ hash: digest
57
+ });
58
+ }();
59
+ } catch (e) {
60
+ return Promise.reject(e);
47
61
  }
48
- const hash = this._hash.finalize().toString(CryptoJS.enc.Base64);
49
- (_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, {
50
- hash
51
- });
52
62
  }
53
63
  }
54
64
  //# sourceMappingURL=crypto-hash.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"crypto-hash.js","names":["Hash","CryptoJS","CryptoHash","constructor","options","_this$options","_this$options$crypto","_defineProperty","_algorithm","crypto","algorithm","Error","name","toLowerCase","preload","_this$options2","_this$options2$module","modules","_hash","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"],"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","CryptoJS","CryptoHash","constructor","options","_this$options","_this$options$crypto","_defineProperty","_algorithm","crypto","algorithm","Error","name","toLowerCase","preload","_this$options2","_this$options2$module","modules","_hash","algo","create","hash","input","encoding","typedWordArray","lib","WordArray","enc","Base64","Hex","update","finalize","toString","hashBatches","asyncIterator","_this","arguments","length","undefined","_this$options3","_this$options3$crypto","_this$options3$crypto2","chunk","digest","onEnd","call","e","Promise","reject"],"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, encoding: 'hex' | 'base64'): 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 // Map our encoding constant to Crypto library\n const enc = encoding === 'base64' ? CryptoJS.enc.Base64 : CryptoJS.enc.Hex;\n return this._hash.update(typedWordArray).finalize().toString(enc);\n }\n\n async *hashBatches(\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>,\n encoding: 'hex' | 'base64' = 'base64'\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 // Map our encoding constant to Crypto library\n const enc = encoding === 'base64' ? CryptoJS.enc.Base64 : CryptoJS.enc.Hex;\n const digest = this._hash.finalize().toString(enc);\n this.options?.crypto?.onEnd?.({hash: digest});\n }\n}\n"],"mappings":"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"}