@veilgroup/sdk-woro 0.1.1 → 0.1.3
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/README.md +1 -1
- package/dist/client.d.ts +1 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/index.cjs +8 -2
- package/dist/index.cjs.map +2 -2
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -2
- package/dist/index.js.map +2 -2
- package/package.json +5 -2
package/dist/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../node_modules/crypto-js/core.js", "../node_modules/crypto-js/sha256.js", "../node_modules/crypto-js/hmac.js", "../node_modules/crypto-js/hmac-sha256.js", "../node_modules/crypto-js/enc-base64.js", "../node_modules/crypto-js/enc-hex.js", "../node_modules/crypto-js/enc-utf8.js", "../node_modules/aws-cognito-srp-client/dist/bigInteger.js", "../node_modules/aws-cognito-srp-client/dist/cryptoUtils.js", "../node_modules/aws-cognito-srp-client/dist/index.js", "../src/errors.ts", "../src/payload.ts", "../src/client.ts"],
|
|
4
|
-
"sourcesContent": [";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory();\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\troot.CryptoJS = factory();\n\t}\n}(this, function () {\n\n\t/*globals window, global, require*/\n\n\t/**\n\t * CryptoJS core components.\n\t */\n\tvar CryptoJS = CryptoJS || (function (Math, undefined) {\n\n\t var crypto;\n\n\t // Native crypto from window (Browser)\n\t if (typeof window !== 'undefined' && window.crypto) {\n\t crypto = window.crypto;\n\t }\n\n\t // Native crypto in web worker (Browser)\n\t if (typeof self !== 'undefined' && self.crypto) {\n\t crypto = self.crypto;\n\t }\n\n\t // Native crypto from worker\n\t if (typeof globalThis !== 'undefined' && globalThis.crypto) {\n\t crypto = globalThis.crypto;\n\t }\n\n\t // Native (experimental IE 11) crypto from window (Browser)\n\t if (!crypto && typeof window !== 'undefined' && window.msCrypto) {\n\t crypto = window.msCrypto;\n\t }\n\n\t // Native crypto from global (NodeJS)\n\t if (!crypto && typeof global !== 'undefined' && global.crypto) {\n\t crypto = global.crypto;\n\t }\n\n\t // Native crypto import via require (NodeJS)\n\t if (!crypto && typeof require === 'function') {\n\t try {\n\t crypto = require('crypto');\n\t } catch (err) {}\n\t }\n\n\t /*\n\t * Cryptographically secure pseudorandom number generator\n\t *\n\t * As Math.random() is cryptographically not safe to use\n\t */\n\t var cryptoSecureRandomInt = function () {\n\t if (crypto) {\n\t // Use getRandomValues method (Browser)\n\t if (typeof crypto.getRandomValues === 'function') {\n\t try {\n\t return crypto.getRandomValues(new Uint32Array(1))[0];\n\t } catch (err) {}\n\t }\n\n\t // Use randomBytes method (NodeJS)\n\t if (typeof crypto.randomBytes === 'function') {\n\t try {\n\t return crypto.randomBytes(4).readInt32LE();\n\t } catch (err) {}\n\t }\n\t }\n\n\t throw new Error('Native crypto module could not be used to get secure random number.');\n\t };\n\n\t /*\n\t * Local polyfill of Object.create\n\n\t */\n\t var create = Object.create || (function () {\n\t function F() {}\n\n\t return function (obj) {\n\t var subtype;\n\n\t F.prototype = obj;\n\n\t subtype = new F();\n\n\t F.prototype = null;\n\n\t return subtype;\n\t };\n\t }());\n\n\t /**\n\t * CryptoJS namespace.\n\t */\n\t var C = {};\n\n\t /**\n\t * Library namespace.\n\t */\n\t var C_lib = C.lib = {};\n\n\t /**\n\t * Base object for prototypal inheritance.\n\t */\n\t var Base = C_lib.Base = (function () {\n\n\n\t return {\n\t /**\n\t * Creates a new object that inherits from this object.\n\t *\n\t * @param {Object} overrides Properties to copy into the new object.\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * field: 'value',\n\t *\n\t * method: function () {\n\t * }\n\t * });\n\t */\n\t extend: function (overrides) {\n\t // Spawn\n\t var subtype = create(this);\n\n\t // Augment\n\t if (overrides) {\n\t subtype.mixIn(overrides);\n\t }\n\n\t // Create default initializer\n\t if (!subtype.hasOwnProperty('init') || this.init === subtype.init) {\n\t subtype.init = function () {\n\t subtype.$super.init.apply(this, arguments);\n\t };\n\t }\n\n\t // Initializer's prototype is the subtype object\n\t subtype.init.prototype = subtype;\n\n\t // Reference supertype\n\t subtype.$super = this;\n\n\t return subtype;\n\t },\n\n\t /**\n\t * Extends this object and runs the init method.\n\t * Arguments to create() will be passed to init().\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var instance = MyType.create();\n\t */\n\t create: function () {\n\t var instance = this.extend();\n\t instance.init.apply(instance, arguments);\n\n\t return instance;\n\t },\n\n\t /**\n\t * Initializes a newly created object.\n\t * Override this method to add some logic when your objects are created.\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * init: function () {\n\t * // ...\n\t * }\n\t * });\n\t */\n\t init: function () {\n\t },\n\n\t /**\n\t * Copies properties into this object.\n\t *\n\t * @param {Object} properties The properties to mix in.\n\t *\n\t * @example\n\t *\n\t * MyType.mixIn({\n\t * field: 'value'\n\t * });\n\t */\n\t mixIn: function (properties) {\n\t for (var propertyName in properties) {\n\t if (properties.hasOwnProperty(propertyName)) {\n\t this[propertyName] = properties[propertyName];\n\t }\n\t }\n\n\t // IE won't copy toString using the loop above\n\t if (properties.hasOwnProperty('toString')) {\n\t this.toString = properties.toString;\n\t }\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = instance.clone();\n\t */\n\t clone: function () {\n\t return this.init.prototype.extend(this);\n\t }\n\t };\n\t }());\n\n\t /**\n\t * An array of 32-bit words.\n\t *\n\t * @property {Array} words The array of 32-bit words.\n\t * @property {number} sigBytes The number of significant bytes in this word array.\n\t */\n\t var WordArray = C_lib.WordArray = Base.extend({\n\t /**\n\t * Initializes a newly created word array.\n\t *\n\t * @param {Array} words (Optional) An array of 32-bit words.\n\t * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.create();\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);\n\t */\n\t init: function (words, sigBytes) {\n\t words = this.words = words || [];\n\n\t if (sigBytes != undefined) {\n\t this.sigBytes = sigBytes;\n\t } else {\n\t this.sigBytes = words.length * 4;\n\t }\n\t },\n\n\t /**\n\t * Converts this word array to a string.\n\t *\n\t * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex\n\t *\n\t * @return {string} The stringified word array.\n\t *\n\t * @example\n\t *\n\t * var string = wordArray + '';\n\t * var string = wordArray.toString();\n\t * var string = wordArray.toString(CryptoJS.enc.Utf8);\n\t */\n\t toString: function (encoder) {\n\t return (encoder || Hex).stringify(this);\n\t },\n\n\t /**\n\t * Concatenates a word array to this word array.\n\t *\n\t * @param {WordArray} wordArray The word array to append.\n\t *\n\t * @return {WordArray} This word array.\n\t *\n\t * @example\n\t *\n\t * wordArray1.concat(wordArray2);\n\t */\n\t concat: function (wordArray) {\n\t // Shortcuts\n\t var thisWords = this.words;\n\t var thatWords = wordArray.words;\n\t var thisSigBytes = this.sigBytes;\n\t var thatSigBytes = wordArray.sigBytes;\n\n\t // Clamp excess bits\n\t this.clamp();\n\n\t // Concat\n\t if (thisSigBytes % 4) {\n\t // Copy one byte at a time\n\t for (var i = 0; i < thatSigBytes; i++) {\n\t var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8);\n\t }\n\t } else {\n\t // Copy one word at a time\n\t for (var j = 0; j < thatSigBytes; j += 4) {\n\t thisWords[(thisSigBytes + j) >>> 2] = thatWords[j >>> 2];\n\t }\n\t }\n\t this.sigBytes += thatSigBytes;\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Removes insignificant bits.\n\t *\n\t * @example\n\t *\n\t * wordArray.clamp();\n\t */\n\t clamp: function () {\n\t // Shortcuts\n\t var words = this.words;\n\t var sigBytes = this.sigBytes;\n\n\t // Clamp\n\t words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8);\n\t words.length = Math.ceil(sigBytes / 4);\n\t },\n\n\t /**\n\t * Creates a copy of this word array.\n\t *\n\t * @return {WordArray} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = wordArray.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone.words = this.words.slice(0);\n\n\t return clone;\n\t },\n\n\t /**\n\t * Creates a word array filled with random bytes.\n\t *\n\t * @param {number} nBytes The number of random bytes to generate.\n\t *\n\t * @return {WordArray} The random word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.random(16);\n\t */\n\t random: function (nBytes) {\n\t var words = [];\n\n\t for (var i = 0; i < nBytes; i += 4) {\n\t words.push(cryptoSecureRandomInt());\n\t }\n\n\t return new WordArray.init(words, nBytes);\n\t }\n\t });\n\n\t /**\n\t * Encoder namespace.\n\t */\n\t var C_enc = C.enc = {};\n\n\t /**\n\t * Hex encoding strategy.\n\t */\n\t var Hex = C_enc.Hex = {\n\t /**\n\t * Converts a word array to a hex string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The hex string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hexString = CryptoJS.enc.Hex.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var hexChars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t hexChars.push((bite >>> 4).toString(16));\n\t hexChars.push((bite & 0x0f).toString(16));\n\t }\n\n\t return hexChars.join('');\n\t },\n\n\t /**\n\t * Converts a hex string to a word array.\n\t *\n\t * @param {string} hexStr The hex string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Hex.parse(hexString);\n\t */\n\t parse: function (hexStr) {\n\t // Shortcut\n\t var hexStrLength = hexStr.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < hexStrLength; i += 2) {\n\t words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);\n\t }\n\n\t return new WordArray.init(words, hexStrLength / 2);\n\t }\n\t };\n\n\t /**\n\t * Latin1 encoding strategy.\n\t */\n\t var Latin1 = C_enc.Latin1 = {\n\t /**\n\t * Converts a word array to a Latin1 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Latin1 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var latin1Chars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t latin1Chars.push(String.fromCharCode(bite));\n\t }\n\n\t return latin1Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Latin1 string to a word array.\n\t *\n\t * @param {string} latin1Str The Latin1 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Latin1.parse(latin1String);\n\t */\n\t parse: function (latin1Str) {\n\t // Shortcut\n\t var latin1StrLength = latin1Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < latin1StrLength; i++) {\n\t words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);\n\t }\n\n\t return new WordArray.init(words, latin1StrLength);\n\t }\n\t };\n\n\t /**\n\t * UTF-8 encoding strategy.\n\t */\n\t var Utf8 = C_enc.Utf8 = {\n\t /**\n\t * Converts a word array to a UTF-8 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-8 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t try {\n\t return decodeURIComponent(escape(Latin1.stringify(wordArray)));\n\t } catch (e) {\n\t throw new Error('Malformed UTF-8 data');\n\t }\n\t },\n\n\t /**\n\t * Converts a UTF-8 string to a word array.\n\t *\n\t * @param {string} utf8Str The UTF-8 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf8.parse(utf8String);\n\t */\n\t parse: function (utf8Str) {\n\t return Latin1.parse(unescape(encodeURIComponent(utf8Str)));\n\t }\n\t };\n\n\t /**\n\t * Abstract buffered block algorithm template.\n\t *\n\t * The property blockSize must be implemented in a concrete subtype.\n\t *\n\t * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0\n\t */\n\t var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({\n\t /**\n\t * Resets this block algorithm's data buffer to its initial state.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm.reset();\n\t */\n\t reset: function () {\n\t // Initial values\n\t this._data = new WordArray.init();\n\t this._nDataBytes = 0;\n\t },\n\n\t /**\n\t * Adds new data to this block algorithm's buffer.\n\t *\n\t * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm._append('data');\n\t * bufferedBlockAlgorithm._append(wordArray);\n\t */\n\t _append: function (data) {\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof data == 'string') {\n\t data = Utf8.parse(data);\n\t }\n\n\t // Append\n\t this._data.concat(data);\n\t this._nDataBytes += data.sigBytes;\n\t },\n\n\t /**\n\t * Processes available data blocks.\n\t *\n\t * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.\n\t *\n\t * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.\n\t *\n\t * @return {WordArray} The processed data.\n\t *\n\t * @example\n\t *\n\t * var processedData = bufferedBlockAlgorithm._process();\n\t * var processedData = bufferedBlockAlgorithm._process(!!'flush');\n\t */\n\t _process: function (doFlush) {\n\t var processedWords;\n\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\t var dataSigBytes = data.sigBytes;\n\t var blockSize = this.blockSize;\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count blocks ready\n\t var nBlocksReady = dataSigBytes / blockSizeBytes;\n\t if (doFlush) {\n\t // Round up to include partial blocks\n\t nBlocksReady = Math.ceil(nBlocksReady);\n\t } else {\n\t // Round down to include only full blocks,\n\t // less the number of blocks that must remain in the buffer\n\t nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);\n\t }\n\n\t // Count words ready\n\t var nWordsReady = nBlocksReady * blockSize;\n\n\t // Count bytes ready\n\t var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes);\n\n\t // Process blocks\n\t if (nWordsReady) {\n\t for (var offset = 0; offset < nWordsReady; offset += blockSize) {\n\t // Perform concrete-algorithm logic\n\t this._doProcessBlock(dataWords, offset);\n\t }\n\n\t // Remove processed words\n\t processedWords = dataWords.splice(0, nWordsReady);\n\t data.sigBytes -= nBytesReady;\n\t }\n\n\t // Return processed words\n\t return new WordArray.init(processedWords, nBytesReady);\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = bufferedBlockAlgorithm.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone._data = this._data.clone();\n\n\t return clone;\n\t },\n\n\t _minBufferSize: 0\n\t });\n\n\t /**\n\t * Abstract hasher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)\n\t */\n\t var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({\n\t /**\n\t * Configuration options.\n\t */\n\t cfg: Base.extend(),\n\n\t /**\n\t * Initializes a newly created hasher.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for this hash computation.\n\t *\n\t * @example\n\t *\n\t * var hasher = CryptoJS.algo.SHA256.create();\n\t */\n\t init: function (cfg) {\n\t // Apply config defaults\n\t this.cfg = this.cfg.extend(cfg);\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this hasher to its initial state.\n\t *\n\t * @example\n\t *\n\t * hasher.reset();\n\t */\n\t reset: function () {\n\t // Reset data buffer\n\t BufferedBlockAlgorithm.reset.call(this);\n\n\t // Perform concrete-hasher logic\n\t this._doReset();\n\t },\n\n\t /**\n\t * Updates this hasher with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {Hasher} This hasher.\n\t *\n\t * @example\n\t *\n\t * hasher.update('message');\n\t * hasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t // Append\n\t this._append(messageUpdate);\n\n\t // Update the hash\n\t this._process();\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the hash computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @example\n\t *\n\t * var hash = hasher.finalize();\n\t * var hash = hasher.finalize('message');\n\t * var hash = hasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Final message update\n\t if (messageUpdate) {\n\t this._append(messageUpdate);\n\t }\n\n\t // Perform concrete-hasher logic\n\t var hash = this._doFinalize();\n\n\t return hash;\n\t },\n\n\t blockSize: 512/32,\n\n\t /**\n\t * Creates a shortcut function to a hasher's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to create a helper for.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHelper: function (hasher) {\n\t return function (message, cfg) {\n\t return new hasher.init(cfg).finalize(message);\n\t };\n\t },\n\n\t /**\n\t * Creates a shortcut function to the HMAC's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to use in this HMAC helper.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHmacHelper: function (hasher) {\n\t return function (message, key) {\n\t return new C_algo.HMAC.init(hasher, key).finalize(message);\n\t };\n\t }\n\t });\n\n\t /**\n\t * Algorithm namespace.\n\t */\n\t var C_algo = C.algo = {};\n\n\t return C;\n\t}(Math));\n\n\n\treturn CryptoJS;\n\n}));", ";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Initialization and round constants tables\n\t var H = [];\n\t var K = [];\n\n\t // Compute constants\n\t (function () {\n\t function isPrime(n) {\n\t var sqrtN = Math.sqrt(n);\n\t for (var factor = 2; factor <= sqrtN; factor++) {\n\t if (!(n % factor)) {\n\t return false;\n\t }\n\t }\n\n\t return true;\n\t }\n\n\t function getFractionalBits(n) {\n\t return ((n - (n | 0)) * 0x100000000) | 0;\n\t }\n\n\t var n = 2;\n\t var nPrime = 0;\n\t while (nPrime < 64) {\n\t if (isPrime(n)) {\n\t if (nPrime < 8) {\n\t H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2));\n\t }\n\t K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3));\n\n\t nPrime++;\n\t }\n\n\t n++;\n\t }\n\t }());\n\n\t // Reusable object\n\t var W = [];\n\n\t /**\n\t * SHA-256 hash algorithm.\n\t */\n\t var SHA256 = C_algo.SHA256 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init(H.slice(0));\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var H = this._hash.words;\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\t var e = H[4];\n\t var f = H[5];\n\t var g = H[6];\n\t var h = H[7];\n\n\t // Computation\n\t for (var i = 0; i < 64; i++) {\n\t if (i < 16) {\n\t W[i] = M[offset + i] | 0;\n\t } else {\n\t var gamma0x = W[i - 15];\n\t var gamma0 = ((gamma0x << 25) | (gamma0x >>> 7)) ^\n\t ((gamma0x << 14) | (gamma0x >>> 18)) ^\n\t (gamma0x >>> 3);\n\n\t var gamma1x = W[i - 2];\n\t var gamma1 = ((gamma1x << 15) | (gamma1x >>> 17)) ^\n\t ((gamma1x << 13) | (gamma1x >>> 19)) ^\n\t (gamma1x >>> 10);\n\n\t W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16];\n\t }\n\n\t var ch = (e & f) ^ (~e & g);\n\t var maj = (a & b) ^ (a & c) ^ (b & c);\n\n\t var sigma0 = ((a << 30) | (a >>> 2)) ^ ((a << 19) | (a >>> 13)) ^ ((a << 10) | (a >>> 22));\n\t var sigma1 = ((e << 26) | (e >>> 6)) ^ ((e << 21) | (e >>> 11)) ^ ((e << 7) | (e >>> 25));\n\n\t var t1 = h + sigma1 + ch + K[i] + W[i];\n\t var t2 = sigma0 + maj;\n\n\t h = g;\n\t g = f;\n\t f = e;\n\t e = (d + t1) | 0;\n\t d = c;\n\t c = b;\n\t b = a;\n\t a = (t1 + t2) | 0;\n\t }\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t H[4] = (H[4] + e) | 0;\n\t H[5] = (H[5] + f) | 0;\n\t H[6] = (H[6] + g) | 0;\n\t H[7] = (H[7] + h) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Return final computed hash\n\t return this._hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA256('message');\n\t * var hash = CryptoJS.SHA256(wordArray);\n\t */\n\t C.SHA256 = Hasher._createHelper(SHA256);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA256(message, key);\n\t */\n\t C.HmacSHA256 = Hasher._createHmacHelper(SHA256);\n\t}(Math));\n\n\n\treturn CryptoJS.SHA256;\n\n}));", ";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var C_enc = C.enc;\n\t var Utf8 = C_enc.Utf8;\n\t var C_algo = C.algo;\n\n\t /**\n\t * HMAC algorithm.\n\t */\n\t var HMAC = C_algo.HMAC = Base.extend({\n\t /**\n\t * Initializes a newly created HMAC.\n\t *\n\t * @param {Hasher} hasher The hash algorithm to use.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @example\n\t *\n\t * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key);\n\t */\n\t init: function (hasher, key) {\n\t // Init hasher\n\t hasher = this._hasher = new hasher.init();\n\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof key == 'string') {\n\t key = Utf8.parse(key);\n\t }\n\n\t // Shortcuts\n\t var hasherBlockSize = hasher.blockSize;\n\t var hasherBlockSizeBytes = hasherBlockSize * 4;\n\n\t // Allow arbitrary length keys\n\t if (key.sigBytes > hasherBlockSizeBytes) {\n\t key = hasher.finalize(key);\n\t }\n\n\t // Clamp excess bits\n\t key.clamp();\n\n\t // Clone key for inner and outer pads\n\t var oKey = this._oKey = key.clone();\n\t var iKey = this._iKey = key.clone();\n\n\t // Shortcuts\n\t var oKeyWords = oKey.words;\n\t var iKeyWords = iKey.words;\n\n\t // XOR keys with pad constants\n\t for (var i = 0; i < hasherBlockSize; i++) {\n\t oKeyWords[i] ^= 0x5c5c5c5c;\n\t iKeyWords[i] ^= 0x36363636;\n\t }\n\t oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes;\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this HMAC to its initial state.\n\t *\n\t * @example\n\t *\n\t * hmacHasher.reset();\n\t */\n\t reset: function () {\n\t // Shortcut\n\t var hasher = this._hasher;\n\n\t // Reset\n\t hasher.reset();\n\t hasher.update(this._iKey);\n\t },\n\n\t /**\n\t * Updates this HMAC with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {HMAC} This HMAC instance.\n\t *\n\t * @example\n\t *\n\t * hmacHasher.update('message');\n\t * hmacHasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t this._hasher.update(messageUpdate);\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the HMAC computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @example\n\t *\n\t * var hmac = hmacHasher.finalize();\n\t * var hmac = hmacHasher.finalize('message');\n\t * var hmac = hmacHasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Shortcut\n\t var hasher = this._hasher;\n\n\t // Compute HMAC\n\t var innerHash = hasher.finalize(messageUpdate);\n\t hasher.reset();\n\t var hmac = hasher.finalize(this._oKey.clone().concat(innerHash));\n\n\t return hmac;\n\t }\n\t });\n\t}());\n\n\n}));", ";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./sha256\"), require(\"./hmac\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./sha256\", \"./hmac\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\treturn CryptoJS.HmacSHA256;\n\n}));", ";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_enc = C.enc;\n\n\t /**\n\t * Base64 encoding strategy.\n\t */\n\t var Base64 = C_enc.Base64 = {\n\t /**\n\t * Converts a word array to a Base64 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Base64 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var base64String = CryptoJS.enc.Base64.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\t var map = this._map;\n\n\t // Clamp excess bits\n\t wordArray.clamp();\n\n\t // Convert\n\t var base64Chars = [];\n\t for (var i = 0; i < sigBytes; i += 3) {\n\t var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;\n\t var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;\n\n\t var triplet = (byte1 << 16) | (byte2 << 8) | byte3;\n\n\t for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {\n\t base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));\n\t }\n\t }\n\n\t // Add padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t while (base64Chars.length % 4) {\n\t base64Chars.push(paddingChar);\n\t }\n\t }\n\n\t return base64Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Base64 string to a word array.\n\t *\n\t * @param {string} base64Str The Base64 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Base64.parse(base64String);\n\t */\n\t parse: function (base64Str) {\n\t // Shortcuts\n\t var base64StrLength = base64Str.length;\n\t var map = this._map;\n\t var reverseMap = this._reverseMap;\n\n\t if (!reverseMap) {\n\t reverseMap = this._reverseMap = [];\n\t for (var j = 0; j < map.length; j++) {\n\t reverseMap[map.charCodeAt(j)] = j;\n\t }\n\t }\n\n\t // Ignore padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t var paddingIndex = base64Str.indexOf(paddingChar);\n\t if (paddingIndex !== -1) {\n\t base64StrLength = paddingIndex;\n\t }\n\t }\n\n\t // Convert\n\t return parseLoop(base64Str, base64StrLength, reverseMap);\n\n\t },\n\n\t _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='\n\t };\n\n\t function parseLoop(base64Str, base64StrLength, reverseMap) {\n\t var words = [];\n\t var nBytes = 0;\n\t for (var i = 0; i < base64StrLength; i++) {\n\t if (i % 4) {\n\t var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);\n\t var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);\n\t var bitsCombined = bits1 | bits2;\n\t words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8);\n\t nBytes++;\n\t }\n\t }\n\t return WordArray.create(words, nBytes);\n\t }\n\t}());\n\n\n\treturn CryptoJS.enc.Base64;\n\n}));", ";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\treturn CryptoJS.enc.Hex;\n\n}));", ";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\treturn CryptoJS.enc.Utf8;\n\n}));", "// A small implementation of BigInteger based on http://www-cs-students.stanford.edu/~tjw/jsbn/\n//\n// All public methods have been removed except the following:\n// new BigInteger(a, b) (only radix 2, 4, 8, 16 and 32 supported)\n// toString (only radix 2, 4, 8, 16 and 32 supported)\n// negate\n// abs\n// compareTo\n// bitLength\n// mod\n// equals\n// add\n// subtract\n// multiply\n// divide\n// modPow\n/*\n * Copyright (c) 2003-2005 Tom Wu\n * All Rights Reserved.\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS-IS\" AND WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY\n * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.\n *\n * IN NO EVENT SHALL TOM WU BE LIABLE FOR ANY SPECIAL, INCIDENTAL,\n * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER\n * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF\n * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT\n * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n *\n * In addition, the following condition applies:\n *\n * All redistributions must retain an intact copy of this copyright notice\n * and disclaimer.\n */\n// (public) Constructor\nfunction BigInteger(a, b) {\n if (a != null)\n this.fromString(a, b);\n}\n// return new, unset BigInteger\nfunction nbi() {\n return new BigInteger(null);\n}\n// Bits per digit\nvar dbits;\n// JavaScript engine analysis\nvar canary = 0xdeadbeefcafe;\nvar j_lm = (canary & 0xffffff) == 0xefcafe;\n// am: Compute w_j += (x*this_i), propagate carries,\n// c is initial carry, returns final carry.\n// c < 3*dvalue, x < 2*dvalue, this_i < dvalue\n// We need to select the fastest one that works in this environment.\n// am1: use a single mult and divide to get the high bits,\n// max digit bits should be 26 because\n// max internal value = 2*dvalue^2-2*dvalue (< 2^53)\nfunction am1(i, x, w, j, c, n) {\n while (--n >= 0) {\n var v = x * this[i++] + w[j] + c;\n c = Math.floor(v / 0x4000000);\n w[j++] = v & 0x3ffffff;\n }\n return c;\n}\n// am2 avoids a big mult-and-extract completely.\n// Max digit bits should be <= 30 because we do bitwise ops\n// on values up to 2*hdvalue^2-hdvalue-1 (< 2^31)\nfunction am2(i, x, w, j, c, n) {\n var xl = x & 0x7fff, xh = x >> 15;\n while (--n >= 0) {\n var l = this[i] & 0x7fff;\n var h = this[i++] >> 15;\n var m = xh * l + h * xl;\n l = xl * l + ((m & 0x7fff) << 15) + w[j] + (c & 0x3fffffff);\n c = (l >>> 30) + (m >>> 15) + xh * h + (c >>> 30);\n w[j++] = l & 0x3fffffff;\n }\n return c;\n}\n// Alternately, set max digit bits to 28 since some\n// browsers slow down when dealing with 32-bit numbers.\nfunction am3(i, x, w, j, c, n) {\n var xl = x & 0x3fff, xh = x >> 14;\n while (--n >= 0) {\n var l = this[i] & 0x3fff;\n var h = this[i++] >> 14;\n var m = xh * l + h * xl;\n l = xl * l + ((m & 0x3fff) << 14) + w[j] + c;\n c = (l >> 28) + (m >> 14) + xh * h;\n w[j++] = l & 0xfffffff;\n }\n return c;\n}\nvar inBrowser = typeof navigator !== \"undefined\";\nif (inBrowser && j_lm && navigator.appName == \"Microsoft Internet Explorer\") {\n BigInteger.prototype.am = am2;\n dbits = 30;\n}\nelse if (inBrowser && j_lm && navigator.appName != \"Netscape\") {\n BigInteger.prototype.am = am1;\n dbits = 26;\n}\nelse {\n // Mozilla/Netscape seems to prefer am3\n BigInteger.prototype.am = am3;\n dbits = 28;\n}\nBigInteger.prototype.DB = dbits;\nBigInteger.prototype.DM = (1 << dbits) - 1;\nBigInteger.prototype.DV = 1 << dbits;\nvar BI_FP = 52;\nBigInteger.prototype.FV = Math.pow(2, BI_FP);\nBigInteger.prototype.F1 = BI_FP - dbits;\nBigInteger.prototype.F2 = 2 * dbits - BI_FP;\n// Digit conversions\nvar BI_RM = \"0123456789abcdefghijklmnopqrstuvwxyz\";\nvar BI_RC = [];\nvar rr, vv;\nrr = \"0\".charCodeAt(0);\nfor (vv = 0; vv <= 9; ++vv)\n BI_RC[rr++] = vv;\nrr = \"a\".charCodeAt(0);\nfor (vv = 10; vv < 36; ++vv)\n BI_RC[rr++] = vv;\nrr = \"A\".charCodeAt(0);\nfor (vv = 10; vv < 36; ++vv)\n BI_RC[rr++] = vv;\nfunction int2char(n) {\n return BI_RM.charAt(n);\n}\nfunction intAt(s, i) {\n var c = BI_RC[s.charCodeAt(i)];\n return c == null ? -1 : c;\n}\n// (protected) copy this to r\nfunction copyTo(r) {\n for (var i = this.t - 1; i >= 0; --i)\n r[i] = this[i];\n r.t = this.t;\n r.s = this.s;\n}\n// (protected) set from integer value x, -DV <= x < DV\nfunction fromInt(x) {\n this.t = 1;\n this.s = x < 0 ? -1 : 0;\n if (x > 0)\n this[0] = x;\n else if (x < -1)\n this[0] = x + this.DV;\n else\n this.t = 0;\n}\n// return bigint initialized to value\nfunction nbv(i) {\n var r = nbi();\n r.fromInt(i);\n return r;\n}\n// (protected) set from string and radix\nfunction fromString(s, b) {\n var k;\n if (b == 16)\n k = 4;\n else if (b == 8)\n k = 3;\n else if (b == 2)\n k = 1;\n else if (b == 32)\n k = 5;\n else if (b == 4)\n k = 2;\n else\n throw new Error(\"Only radix 2, 4, 8, 16, 32 are supported\");\n this.t = 0;\n this.s = 0;\n var i = s.length, mi = false, sh = 0;\n while (--i >= 0) {\n var x = intAt(s, i);\n if (x < 0) {\n if (s.charAt(i) == \"-\")\n mi = true;\n continue;\n }\n mi = false;\n if (sh == 0)\n this[this.t++] = x;\n else if (sh + k > this.DB) {\n this[this.t - 1] |= (x & ((1 << (this.DB - sh)) - 1)) << sh;\n this[this.t++] = x >> (this.DB - sh);\n }\n else\n this[this.t - 1] |= x << sh;\n sh += k;\n if (sh >= this.DB)\n sh -= this.DB;\n }\n this.clamp();\n if (mi)\n BigInteger.ZERO.subTo(this, this);\n}\n// (protected) clamp off excess high words\nfunction clamp() {\n var c = this.s & this.DM;\n while (this.t > 0 && this[this.t - 1] == c)\n --this.t;\n}\n// (public) return string representation in given radix\nfunction bnToString(b) {\n if (this.s < 0)\n return \"-\" + this.negate().toString(b);\n var k;\n if (b == 16)\n k = 4;\n else if (b == 8)\n k = 3;\n else if (b == 2)\n k = 1;\n else if (b == 32)\n k = 5;\n else if (b == 4)\n k = 2;\n else\n throw new Error(\"Only radix 2, 4, 8, 16, 32 are supported\");\n var km = (1 << k) - 1;\n var d, m = false, r = \"\", i = this.t;\n var p = this.DB - ((i * this.DB) % k);\n if (i-- > 0) {\n if (p < this.DB && (d = this[i] >> p) > 0) {\n m = true;\n r = int2char(d);\n }\n while (i >= 0) {\n if (p < k) {\n d = (this[i] & ((1 << p) - 1)) << (k - p);\n d |= this[--i] >> (p += this.DB - k);\n }\n else {\n d = (this[i] >> (p -= k)) & km;\n if (p <= 0) {\n p += this.DB;\n --i;\n }\n }\n if (d > 0)\n m = true;\n if (m)\n r += int2char(d);\n }\n }\n return m ? r : \"0\";\n}\n// (public) -this\nfunction bnNegate() {\n var r = nbi();\n BigInteger.ZERO.subTo(this, r);\n return r;\n}\n// (public) |this|\nfunction bnAbs() {\n return this.s < 0 ? this.negate() : this;\n}\n// (public) return + if this > a, - if this < a, 0 if equal\nfunction bnCompareTo(a) {\n var r = this.s - a.s;\n if (r != 0)\n return r;\n var i = this.t;\n r = i - a.t;\n if (r != 0)\n return this.s < 0 ? -r : r;\n while (--i >= 0)\n if ((r = this[i] - a[i]) != 0)\n return r;\n return 0;\n}\n// returns bit length of the integer x\nfunction nbits(x) {\n var r = 1, t;\n if ((t = x >>> 16) != 0) {\n x = t;\n r += 16;\n }\n if ((t = x >> 8) != 0) {\n x = t;\n r += 8;\n }\n if ((t = x >> 4) != 0) {\n x = t;\n r += 4;\n }\n if ((t = x >> 2) != 0) {\n x = t;\n r += 2;\n }\n if ((t = x >> 1) != 0) {\n x = t;\n r += 1;\n }\n return r;\n}\n// (public) return the number of bits in \"this\"\nfunction bnBitLength() {\n if (this.t <= 0)\n return 0;\n return this.DB * (this.t - 1) + nbits(this[this.t - 1] ^ (this.s & this.DM));\n}\n// (protected) r = this << n*DB\nfunction dlShiftTo(n, r) {\n var i;\n for (i = this.t - 1; i >= 0; --i)\n r[i + n] = this[i];\n for (i = n - 1; i >= 0; --i)\n r[i] = 0;\n r.t = this.t + n;\n r.s = this.s;\n}\n// (protected) r = this >> n*DB\nfunction drShiftTo(n, r) {\n for (var i = n; i < this.t; ++i)\n r[i - n] = this[i];\n r.t = Math.max(this.t - n, 0);\n r.s = this.s;\n}\n// (protected) r = this << n\nfunction lShiftTo(n, r) {\n var bs = n % this.DB;\n var cbs = this.DB - bs;\n var bm = (1 << cbs) - 1;\n var ds = Math.floor(n / this.DB);\n var c = (this.s << bs) & this.DM, i;\n for (i = this.t - 1; i >= 0; --i) {\n r[i + ds + 1] = (this[i] >> cbs) | c;\n c = (this[i] & bm) << bs;\n }\n for (i = ds - 1; i >= 0; --i)\n r[i] = 0;\n r[ds] = c;\n r.t = this.t + ds + 1;\n r.s = this.s;\n r.clamp();\n}\n// (protected) r = this >> n\nfunction rShiftTo(n, r) {\n r.s = this.s;\n var ds = Math.floor(n / this.DB);\n if (ds >= this.t) {\n r.t = 0;\n return;\n }\n var bs = n % this.DB;\n var cbs = this.DB - bs;\n var bm = (1 << bs) - 1;\n r[0] = this[ds] >> bs;\n for (var i = ds + 1; i < this.t; ++i) {\n r[i - ds - 1] |= (this[i] & bm) << cbs;\n r[i - ds] = this[i] >> bs;\n }\n if (bs > 0)\n r[this.t - ds - 1] |= (this.s & bm) << cbs;\n r.t = this.t - ds;\n r.clamp();\n}\n// (protected) r = this - a\nfunction subTo(a, r) {\n var i = 0, c = 0;\n var m = Math.min(a.t, this.t);\n while (i < m) {\n c += this[i] - a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n if (a.t < this.t) {\n c -= a.s;\n while (i < this.t) {\n c += this[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c += this.s;\n }\n else {\n c += this.s;\n while (i < a.t) {\n c -= a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c -= a.s;\n }\n r.s = c < 0 ? -1 : 0;\n if (c < -1)\n r[i++] = this.DV + c;\n else if (c > 0)\n r[i++] = c;\n r.t = i;\n r.clamp();\n}\n// (protected) r = this * a, r != this,a (HAC 14.12)\n// \"this\" should be the larger one if appropriate.\nfunction multiplyTo(a, r) {\n var x = this.abs(), y = a.abs();\n var i = x.t;\n r.t = i + y.t;\n while (--i >= 0)\n r[i] = 0;\n for (i = 0; i < y.t; ++i)\n r[i + x.t] = x.am(0, y[i], r, i, 0, x.t);\n r.s = 0;\n r.clamp();\n if (this.s != a.s)\n BigInteger.ZERO.subTo(r, r);\n}\n// (protected) r = this^2, r != this (HAC 14.16)\nfunction squareTo(r) {\n var x = this.abs();\n var i = (r.t = 2 * x.t);\n while (--i >= 0)\n r[i] = 0;\n for (i = 0; i < x.t - 1; ++i) {\n var c = x.am(i, x[i], r, 2 * i, 0, 1);\n if ((r[i + x.t] += x.am(i + 1, 2 * x[i], r, 2 * i + 1, c, x.t - i - 1)) >=\n x.DV) {\n r[i + x.t] -= x.DV;\n r[i + x.t + 1] = 1;\n }\n }\n if (r.t > 0)\n r[r.t - 1] += x.am(i, x[i], r, 2 * i, 0, 1);\n r.s = 0;\n r.clamp();\n}\n// (protected) divide this by m, quotient and remainder to q, r (HAC 14.20)\n// r != q, this != m. q or r may be null.\nfunction divRemTo(m, q, r) {\n var pm = m.abs();\n if (pm.t <= 0)\n return;\n var pt = this.abs();\n if (pt.t < pm.t) {\n if (q != null)\n q.fromInt(0);\n if (r != null)\n this.copyTo(r);\n return;\n }\n if (r == null)\n r = nbi();\n var y = nbi(), ts = this.s, ms = m.s;\n var nsh = this.DB - nbits(pm[pm.t - 1]);\n // normalize modulus\n if (nsh > 0) {\n pm.lShiftTo(nsh, y);\n pt.lShiftTo(nsh, r);\n }\n else {\n pm.copyTo(y);\n pt.copyTo(r);\n }\n var ys = y.t;\n var y0 = y[ys - 1];\n if (y0 == 0)\n return;\n var yt = y0 * (1 << this.F1) + (ys > 1 ? y[ys - 2] >> this.F2 : 0);\n var d1 = this.FV / yt, d2 = (1 << this.F1) / yt, e = 1 << this.F2;\n var i = r.t, j = i - ys;\n var t = q == null ? nbi() : q;\n y.dlShiftTo(j, t);\n if (r.compareTo(t) >= 0) {\n r[r.t++] = 1;\n r.subTo(t, r);\n }\n BigInteger.ONE.dlShiftTo(ys, t);\n t.subTo(y, y);\n // \"negative\" y so we can replace sub with am later\n while (y.t < ys)\n y[y.t++] = 0;\n while (--j >= 0) {\n // Estimate quotient digit\n var qd = r[--i] == y0 ? this.DM : Math.floor(r[i] * d1 + (r[i - 1] + e) * d2);\n if ((r[i] += y.am(0, qd, r, j, 0, ys)) < qd) {\n // Try it out\n y.dlShiftTo(j, t);\n r.subTo(t, r);\n while (r[i] < --qd)\n r.subTo(t, r);\n }\n }\n if (q != null) {\n r.drShiftTo(ys, q);\n if (ts != ms)\n BigInteger.ZERO.subTo(q, q);\n }\n r.t = ys;\n r.clamp();\n if (nsh > 0)\n r.rShiftTo(nsh, r);\n // Denormalize remainder\n if (ts < 0)\n BigInteger.ZERO.subTo(r, r);\n}\n// (public) this mod a\nfunction bnMod(a) {\n var r = nbi();\n this.abs().divRemTo(a, null, r);\n if (this.s < 0 && r.compareTo(BigInteger.ZERO) > 0)\n a.subTo(r, r);\n return r;\n}\n// (protected) return \"-1/this % 2^DB\"; useful for Mont. reduction\n// justification:\n// xy == 1 (mod m)\n// xy = 1+km\n// xy(2-xy) = (1+km)(1-km)\n// x[y(2-xy)] = 1-k^2m^2\n// x[y(2-xy)] == 1 (mod m^2)\n// if y is 1/x mod m, then y(2-xy) is 1/x mod m^2\n// should reduce x and y(2-xy) by m^2 at each step to keep size bounded.\n// JS multiply \"overflows\" differently from C/C++, so care is needed here.\nfunction invDigit() {\n if (this.t < 1)\n return 0;\n var x = this[0];\n if ((x & 1) == 0)\n return 0;\n var y = x & 3;\n // y == 1/x mod 2^2\n y = (y * (2 - (x & 0xf) * y)) & 0xf;\n // y == 1/x mod 2^4\n y = (y * (2 - (x & 0xff) * y)) & 0xff;\n // y == 1/x mod 2^8\n y = (y * (2 - (((x & 0xffff) * y) & 0xffff))) & 0xffff;\n // y == 1/x mod 2^16\n // last step - calculate inverse mod DV directly;\n // assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints\n y = (y * (2 - ((x * y) % this.DV))) % this.DV;\n // y == 1/x mod 2^dbits\n // we really want the negative inverse, and -DV < y < DV\n return y > 0 ? this.DV - y : -y;\n}\nfunction bnEquals(a) {\n return this.compareTo(a) == 0;\n}\n// (protected) r = this + a\nfunction addTo(a, r) {\n var i = 0, c = 0;\n var m = Math.min(a.t, this.t);\n while (i < m) {\n c += this[i] + a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n if (a.t < this.t) {\n c += a.s;\n while (i < this.t) {\n c += this[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c += this.s;\n }\n else {\n c += this.s;\n while (i < a.t) {\n c += a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c += a.s;\n }\n r.s = c < 0 ? -1 : 0;\n if (c > 0)\n r[i++] = c;\n else if (c < -1)\n r[i++] = this.DV + c;\n r.t = i;\n r.clamp();\n}\n// (public) this + a\nfunction bnAdd(a) {\n var r = nbi();\n this.addTo(a, r);\n return r;\n}\n// (public) this - a\nfunction bnSubtract(a) {\n var r = nbi();\n this.subTo(a, r);\n return r;\n}\n// (public) this * a\nfunction bnMultiply(a) {\n var r = nbi();\n this.multiplyTo(a, r);\n return r;\n}\n// (public) this / a\nfunction bnDivide(a) {\n var r = nbi();\n this.divRemTo(a, r, null);\n return r;\n}\n// Montgomery reduction\nfunction Montgomery(m) {\n this.m = m;\n this.mp = m.invDigit();\n this.mpl = this.mp & 0x7fff;\n this.mph = this.mp >> 15;\n this.um = (1 << (m.DB - 15)) - 1;\n this.mt2 = 2 * m.t;\n}\n// xR mod m\nfunction montConvert(x) {\n var r = nbi();\n x.abs().dlShiftTo(this.m.t, r);\n r.divRemTo(this.m, null, r);\n if (x.s < 0 && r.compareTo(BigInteger.ZERO) > 0)\n this.m.subTo(r, r);\n return r;\n}\n// x/R mod m\nfunction montRevert(x) {\n var r = nbi();\n x.copyTo(r);\n this.reduce(r);\n return r;\n}\n// x = x/R mod m (HAC 14.32)\nfunction montReduce(x) {\n while (x.t <= this.mt2)\n // pad x so am has enough room later\n x[x.t++] = 0;\n for (var i = 0; i < this.m.t; ++i) {\n // faster way of calculating u0 = x[i]*mp mod DV\n var j = x[i] & 0x7fff;\n var u0 = (j * this.mpl +\n (((j * this.mph + (x[i] >> 15) * this.mpl) & this.um) << 15)) &\n x.DM;\n // use am to combine the multiply-shift-add into one call\n j = i + this.m.t;\n x[j] += this.m.am(0, u0, x, i, 0, this.m.t);\n // propagate carry\n while (x[j] >= x.DV) {\n x[j] -= x.DV;\n x[++j]++;\n }\n }\n x.clamp();\n x.drShiftTo(this.m.t, x);\n if (x.compareTo(this.m) >= 0)\n x.subTo(this.m, x);\n}\n// r = \"x^2/R mod m\"; x != r\nfunction montSqrTo(x, r) {\n x.squareTo(r);\n this.reduce(r);\n}\n// r = \"xy/R mod m\"; x,y != r\nfunction montMulTo(x, y, r) {\n x.multiplyTo(y, r);\n this.reduce(r);\n}\nMontgomery.prototype.convert = montConvert;\nMontgomery.prototype.revert = montRevert;\nMontgomery.prototype.reduce = montReduce;\nMontgomery.prototype.mulTo = montMulTo;\nMontgomery.prototype.sqrTo = montSqrTo;\n// (public) this^e % m (HAC 14.85)\nfunction bnModPow(e, m, callback) {\n var i = e.bitLength(), r = nbv(1);\n var z = new Montgomery(m);\n var k;\n if (i <= 0)\n return r;\n else if (i < 18)\n k = 1;\n else if (i < 48)\n k = 3;\n else if (i < 144)\n k = 4;\n else if (i < 768)\n k = 5;\n else\n k = 6;\n // precomputation\n var g = [], k1 = k - 1, km = (1 << k) - 1;\n var n = 3;\n g[1] = z.convert(this);\n if (k > 1) {\n var g2 = nbi();\n z.sqrTo(g[1], g2);\n while (n <= km) {\n g[n] = nbi();\n z.mulTo(g2, g[n - 2], g[n]);\n n += 2;\n }\n }\n var j = e.t - 1, w, is1 = true, r2 = nbi(), t;\n i = nbits(e[j]) - 1;\n while (j >= 0) {\n if (i >= k1)\n w = (e[j] >> (i - k1)) & km;\n else {\n w = (e[j] & ((1 << (i + 1)) - 1)) << (k1 - i);\n if (j > 0)\n w |= e[j - 1] >> (this.DB + i - k1);\n }\n n = k;\n while ((w & 1) == 0) {\n w >>= 1;\n --n;\n }\n if ((i -= n) < 0) {\n i += this.DB;\n --j;\n }\n if (is1) {\n // ret == 1, don't bother squaring or multiplying it\n g[w].copyTo(r);\n is1 = false;\n }\n else {\n while (n > 1) {\n z.sqrTo(r, r2);\n z.sqrTo(r2, r);\n n -= 2;\n }\n if (n > 0)\n z.sqrTo(r, r2);\n else {\n t = r;\n r = r2;\n r2 = t;\n }\n z.mulTo(r2, g[w], r);\n }\n while (j >= 0 && (e[j] & (1 << i)) == 0) {\n z.sqrTo(r, r2);\n t = r;\n r = r2;\n r2 = t;\n if (--i < 0) {\n i = this.DB - 1;\n --j;\n }\n }\n }\n var result = z.revert(r);\n if (callback) {\n callback(null, result);\n }\n return result;\n}\n// (public) this^e % m (HAC 14.85)\nfunction bnIsZero() {\n return this.compareTo(BigInteger.ZERO) == 0;\n}\n// protected\nBigInteger.prototype.copyTo = copyTo;\nBigInteger.prototype.fromInt = fromInt;\nBigInteger.prototype.fromString = fromString;\nBigInteger.prototype.clamp = clamp;\nBigInteger.prototype.dlShiftTo = dlShiftTo;\nBigInteger.prototype.drShiftTo = drShiftTo;\nBigInteger.prototype.lShiftTo = lShiftTo;\nBigInteger.prototype.rShiftTo = rShiftTo;\nBigInteger.prototype.subTo = subTo;\nBigInteger.prototype.multiplyTo = multiplyTo;\nBigInteger.prototype.squareTo = squareTo;\nBigInteger.prototype.divRemTo = divRemTo;\nBigInteger.prototype.invDigit = invDigit;\nBigInteger.prototype.addTo = addTo;\n// public\nBigInteger.prototype.toString = bnToString;\nBigInteger.prototype.abs = bnAbs;\nBigInteger.prototype.negate = bnNegate;\nBigInteger.prototype.compareTo = bnCompareTo;\nBigInteger.prototype.bitLength = bnBitLength;\nBigInteger.prototype.mod = bnMod;\nBigInteger.prototype.equals = bnEquals;\nBigInteger.prototype.add = bnAdd;\nBigInteger.prototype.subtract = bnSubtract;\nBigInteger.prototype.multiply = bnMultiply;\nBigInteger.prototype.divide = bnDivide;\nBigInteger.prototype.modPow = bnModPow;\nBigInteger.prototype.isZero = bnIsZero;\n// \"constants\"\nBigInteger.ZERO = nbv(0);\nBigInteger.ONE = nbv(1);\nvar bigInt = function (str, radix) {\n return new BigInteger(str, radix);\n};\nexport default bigInt;\n", "import bigInt from \"./bigInteger\";\nimport sha256 from \"crypto-js/sha256\";\nimport hmacSha256 from \"crypto-js/hmac-sha256\";\nimport encBase64 from \"crypto-js/enc-base64\";\nimport encHex from \"crypto-js/enc-hex\";\nimport encUtf8 from \"crypto-js/enc-utf8\";\nvar polyFillCrypto = function () {\n // Native crypto from window (Browser)\n if (typeof window !== \"undefined\" && window.crypto) {\n return window.crypto;\n }\n // Native (experimental IE 11) crypto from window (Browser)\n // @ts-expect-error window in IE11 contains msCrypto\n if (typeof window !== \"undefined\" && window.msCrypto) {\n // @ts-expect-error window in IE11 contains msCrypto\n return window.msCrypto;\n }\n // @ts-expect-error require is present in node env\n if (typeof require === \"function\") {\n // @ts-expect-error require is present in node env\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n return require(\"crypto\").webcrypto;\n }\n};\nvar crypto = polyFillCrypto();\nexport var padHex = function (bigInteger) {\n var hashStr = bigInteger.toString(16);\n if (hashStr.length % 2 === 1) {\n hashStr = \"0\".concat(hashStr);\n }\n else if (\"89ABCDEFabcdef\".indexOf(hashStr[0]) !== -1) {\n hashStr = \"00\".concat(hashStr);\n }\n return hashStr;\n};\nexport var hash = function (str) {\n var hashHex = sha256(str).toString();\n return new Array(64 - hashHex.length).join(\"0\") + hashHex;\n};\nexport var hexHash = function (hexStr) {\n return hash(encHex.parse(hexStr));\n};\nvar getRandomIntFromNativeCrypto = function () {\n if (crypto) {\n // Use getRandomValues method (Browser)\n if (typeof crypto.getRandomValues === \"function\") {\n try {\n return crypto.getRandomValues(new Uint32Array(1))[0];\n }\n catch (err) {\n // dont do anything here\n }\n }\n // Use randomBytes method (NodeJS)\n //@ts-expect-error nativeCrypto in NodeJs has randomBytes\n if (typeof crypto.randomBytes === \"function\") {\n try {\n //@ts-expect-error nativeCrypto in NodeJs has randomBytes\n return crypto.randomBytes(4).readInt32LE();\n }\n catch (err) {\n // dont do anything here\n }\n }\n }\n throw new Error(\"Native crypto module could not be used to get secure random number.\");\n};\nexport var randomValue = function (nBytes) {\n var words = [];\n for (var i = 0; i < nBytes; i += 4) {\n words.push(getRandomIntFromNativeCrypto());\n }\n // Convert\n var hexChars = [];\n for (var i = 0; i < nBytes; i++) {\n var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n hexChars.push((bite >>> 4).toString(16));\n hexChars.push((bite & 0x0f).toString(16));\n }\n var hexRandom = hexChars.join(\"\");\n var randomInt = bigInt(hexRandom, 16);\n return randomInt;\n};\nexport var computehkdf = function (ikm, salt) {\n var infoBits = encUtf8\n .parse(\"Caldera Derived Key\")\n .concat(encUtf8.parse(String.fromCharCode(1)));\n var prk = hmacSha256(ikm, salt);\n var hmac = hmacSha256(infoBits, prk);\n return encHex.parse(hmac.toString().slice(0, 32));\n};\nexport var computeSignature = function (message, key) {\n return encBase64.stringify(hmacSha256(message, key));\n};\n", "import bigInt from \"./bigInteger\";\nimport { computehkdf, hash, hexHash, padHex, randomValue, computeSignature } from \"./cryptoUtils\";\nimport encBase64 from \"crypto-js/enc-base64\";\nimport encHex from \"crypto-js/enc-hex\";\nimport encUtf8 from \"crypto-js/enc-utf8\";\nvar initN = \"FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD1\" +\n \"29024E088A67CC74020BBEA63B139B22514A08798E3404DD\" +\n \"EF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245\" +\n \"E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7ED\" +\n \"EE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3D\" +\n \"C2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F\" +\n \"83655D23DCA3AD961C62F356208552BB9ED529077096966D\" +\n \"670C354E4ABC9804F1746C08CA18217C32905E462E36CE3B\" +\n \"E39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9\" +\n \"DE2BCBF6955817183995497CEA956AE515D2261898FA0510\" +\n \"15728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64\" +\n \"ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7\" +\n \"ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6B\" +\n \"F12FFA06D98A0864D87602733EC86A64521F2B18177B200C\" +\n \"BBE117577A615D6C770988C0BAD946E208E24FA074E5AB31\" +\n \"43DB5BFCE0FD108E4B82D120A93AD2CAFFFFFFFFFFFFFFFF\";\nvar Srp = /** @class */ (function () {\n function Srp(poolId) {\n this.g = bigInt(\"2\", 16);\n this.N = bigInt(initN, 16);\n this.k = bigInt(hexHash(padHex(this.N) + padHex(this.g)), 16);\n this.poolName = poolId.split(\"_\")[1];\n }\n Srp.prototype.getA = function () {\n this.a = randomValue(128);\n this.A = this.g.modPow(this.a, this.N);\n if (this.A.mod(this.N).isZero()) {\n new Error(\"Illegal paramater. A mod N cannot be 0.\");\n }\n return this.A.toString(16);\n };\n Srp.prototype.getSignature = function (username, strB, strSalt, secretBlock, password) {\n var B = bigInt(strB, 16);\n if (B.mod(this.N).isZero()) {\n new Error(\"Illegal paramater. B mod N cannot be 0.\");\n }\n var salt = bigInt(strSalt, 16);\n var U = bigInt(hexHash(padHex(this.A) + padHex(B)), 16);\n if (U.isZero()) {\n throw new Error(\"U cannot be zero.\");\n }\n var usernamePasswordHash = hash(encUtf8.parse(this.poolName + username + \":\" + password));\n var x = bigInt(hexHash(padHex(salt) + usernamePasswordHash), 16);\n var S = B.subtract(this.k.multiply(this.g.modPow(x, this.N))).modPow(this.a.add(U.multiply(x)), this.N);\n var paddedS = padHex(S);\n var hkdf = computehkdf(encHex.parse(paddedS), encHex.parse(padHex(U)));\n var timestamp = getNowString();\n var message = encUtf8\n .parse(this.poolName)\n .concat(encUtf8.parse(username))\n .concat(encBase64.parse(secretBlock))\n .concat(encUtf8.parse(timestamp));\n var signature = computeSignature(message, hkdf);\n return { timestamp: timestamp, signature: signature };\n };\n return Srp;\n}());\nexport default Srp;\nvar getNowString = function () {\n var now = new Date();\n var monthNames = [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\"\n ];\n var weekNames = [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"];\n var weekDay = weekNames[now.getUTCDay()];\n var month = monthNames[now.getUTCMonth()];\n var day = now.getUTCDate();\n var hours = now.getUTCHours();\n if (hours < 10) {\n hours = \"0\".concat(hours);\n }\n var minutes = now.getUTCMinutes();\n if (minutes < 10) {\n minutes = \"0\".concat(minutes);\n }\n var seconds = now.getUTCSeconds();\n if (seconds < 10) {\n seconds = \"0\".concat(seconds);\n }\n var year = now.getUTCFullYear();\n // ddd MMM D HH:mm:ss UTC YYYY\n var dateNow = \"\".concat(weekDay, \" \").concat(month, \" \").concat(day, \" \").concat(hours, \":\").concat(minutes, \":\").concat(seconds, \" UTC \").concat(year);\n return dateNow;\n};\n", "export class WoroApiError extends Error {\n constructor(\n public readonly status: number,\n message: string,\n public readonly code?: string,\n ) {\n super(message);\n this.name = 'WoroApiError';\n }\n}\n\nexport class WoroAuthError extends Error {\n constructor(message: string, public readonly code?: string) {\n super(message);\n this.name = 'WoroAuthError';\n }\n}\n\nexport class WoroPayloadError extends Error {\n constructor(message: string, public readonly rawPayload?: Uint8Array) {\n super(message);\n this.name = 'WoroPayloadError';\n }\n}\n", "import { WoroPayloadError } from './errors.js';\n\nexport const WORO_MAX_PAYLOAD_BYTES = 1_048_576;\nexport const WORO_ENVELOPE_CONTENT_TYPE = 'application/vnd.woro.sdk-payload';\nconst MAGIC = new Uint8Array([0x57, 0x4f, 0x52, 0x4f]); // WORO\nconst VERSION = 1;\nconst FLAG_COMPRESSED = 1;\nconst FLAG_ENCRYPTED = 2;\nconst NONCE_BYTES = 12;\nconst TAG_BYTES = 16;\n\nexport type WoroInput = string | Blob | ArrayBuffer | ArrayBufferView;\n\nexport interface PayloadOptions {\n contentType?: string;\n compress?: boolean;\n encryptionKey?: Uint8Array;\n}\n\nexport interface EncodedPayload {\n bytes: Uint8Array;\n contentType: string;\n}\n\nexport interface DecodedPayload {\n bytes: Uint8Array;\n contentType: string;\n}\n\nexport async function toBytes(input: WoroInput): Promise<Uint8Array> {\n if (typeof input === 'string') return new TextEncoder().encode(input);\n if (input instanceof Blob) return new Uint8Array(await input.arrayBuffer());\n if (input instanceof ArrayBuffer) return new Uint8Array(input.slice(0));\n if (ArrayBuffer.isView(input)) {\n return new Uint8Array(input.buffer.slice(input.byteOffset, input.byteOffset + input.byteLength));\n }\n throw new TypeError('Payload must be a string, Blob, ArrayBuffer, or typed array.');\n}\n\nexport async function encodePayload(input: WoroInput, options: PayloadOptions = {}): Promise<EncodedPayload> {\n const original = await toBytes(input);\n if (original.byteLength > WORO_MAX_PAYLOAD_BYTES) {\n throw new WoroPayloadError(`Original payload exceeds WORO's ${WORO_MAX_PAYLOAD_BYTES}-byte limit.`);\n }\n const contentType = options.contentType ?? (input instanceof Blob && input.type ? input.type : typeof input === 'string' ? 'text/plain; charset=utf-8' : 'application/octet-stream');\n const encryptionKey = options.encryptionKey;\n if (encryptionKey && encryptionKey.byteLength !== 32) {\n throw new WoroPayloadError('AES-256-GCM requires a 32-byte encryption key.');\n }\n\n let data = original;\n let compressed = false;\n if (options.compress !== false && original.byteLength > 0) {\n const candidate = await gzip(original);\n const envelopeBytes = 7 + 2 + new TextEncoder().encode(contentType).byteLength;\n const savesBytes = encryptionKey\n ? candidate.byteLength < original.byteLength\n : candidate.byteLength + envelopeBytes < original.byteLength;\n if (savesBytes) {\n data = candidate;\n compressed = true;\n }\n }\n\n if (!compressed && !encryptionKey && contentType.split(';', 1)[0]?.trim().toLowerCase() !== WORO_ENVELOPE_CONTENT_TYPE) {\n return { bytes: original, contentType };\n }\n const mediaType = new TextEncoder().encode(contentType);\n if (mediaType.byteLength > 0xffff) throw new WoroPayloadError('Content-Type is too long to encode.');\n const cleartext = new Uint8Array(2 + mediaType.byteLength + data.byteLength);\n new DataView(cleartext.buffer).setUint16(0, mediaType.byteLength, false);\n cleartext.set(mediaType, 2);\n cleartext.set(data, 2 + mediaType.byteLength);\n\n const flags = (compressed ? FLAG_COMPRESSED : 0) | (encryptionKey ? FLAG_ENCRYPTED : 0);\n const nonce = encryptionKey ? crypto.getRandomValues(new Uint8Array(NONCE_BYTES)) : new Uint8Array(0);\n const header = new Uint8Array(7 + nonce.byteLength);\n header.set(MAGIC, 0);\n header[4] = VERSION;\n header[5] = flags;\n header[6] = nonce.byteLength;\n header.set(nonce, 7);\n\n const body = encryptionKey\n ? new Uint8Array(await crypto.subtle.encrypt(\n { name: 'AES-GCM', iv: asArrayBuffer(nonce), additionalData: asArrayBuffer(header), tagLength: TAG_BYTES * 8 },\n await importAesKey(encryptionKey, ['encrypt']),\n asArrayBuffer(cleartext),\n ))\n : cleartext;\n const bytes = new Uint8Array(header.byteLength + body.byteLength);\n bytes.set(header, 0);\n bytes.set(body, header.byteLength);\n return { bytes, contentType: WORO_ENVELOPE_CONTENT_TYPE };\n}\n\nexport async function decodePayload(bytes: Uint8Array, responseContentType: string, encryptionKey?: Uint8Array): Promise<DecodedPayload> {\n if (responseContentType.split(';', 1)[0]?.trim().toLowerCase() !== WORO_ENVELOPE_CONTENT_TYPE) {\n return { bytes, contentType: responseContentType || 'application/octet-stream' };\n }\n if (bytes.byteLength < 9 || !MAGIC.every((byte, index) => bytes[index] === byte)) {\n throw new WoroPayloadError('The WORO package payload envelope is invalid.');\n }\n const version = bytes[4]!;\n const flags = bytes[5]!;\n const nonceLength = bytes[6]!;\n if (version !== VERSION || (flags & ~(FLAG_COMPRESSED | FLAG_ENCRYPTED)) !== 0) {\n throw new WoroPayloadError('The WORO package payload uses an unsupported envelope version or option.');\n }\n const encrypted = (flags & FLAG_ENCRYPTED) !== 0;\n const compressed = (flags & FLAG_COMPRESSED) !== 0;\n if ((encrypted && nonceLength !== NONCE_BYTES) || (!encrypted && nonceLength !== 0)) {\n throw new WoroPayloadError('The WORO package payload envelope has an invalid nonce.');\n }\n const headerLength = 7 + nonceLength;\n if (bytes.byteLength < headerLength + (encrypted ? TAG_BYTES : 2)) {\n throw new WoroPayloadError('The WORO package payload envelope is truncated.');\n }\n let cleartext = bytes.subarray(headerLength);\n if (encrypted) {\n if (!encryptionKey) throw new WoroPayloadError('This payload is encrypted; provide its 32-byte encryption key.', bytes.slice());\n if (encryptionKey.byteLength !== 32) throw new WoroPayloadError('AES-256-GCM requires a 32-byte encryption key.');\n try {\n cleartext = new Uint8Array(await crypto.subtle.decrypt(\n { name: 'AES-GCM', iv: asArrayBuffer(bytes.subarray(7, headerLength)), additionalData: asArrayBuffer(bytes.subarray(0, headerLength)), tagLength: TAG_BYTES * 8 },\n await importAesKey(encryptionKey, ['decrypt']),\n asArrayBuffer(cleartext),\n ));\n } catch {\n throw new WoroPayloadError('Payload decryption failed; the key is wrong or the data was modified.', bytes.slice());\n }\n } else if (encryptionKey) {\n // Supplying a key for a non-encrypted package payload is almost always a caller mistake.\n }\n\n if (cleartext.byteLength < 2) throw new WoroPayloadError('The WORO package payload metadata is truncated.');\n const mediaTypeLength = new DataView(cleartext.buffer, cleartext.byteOffset, cleartext.byteLength).getUint16(0, false);\n if (cleartext.byteLength < 2 + mediaTypeLength) throw new WoroPayloadError('The WORO package payload media type is truncated.');\n let contentType: string;\n try {\n contentType = new TextDecoder('utf-8', { fatal: true }).decode(cleartext.subarray(2, 2 + mediaTypeLength));\n } catch {\n throw new WoroPayloadError('The WORO package payload media type is invalid.');\n }\n let payload = cleartext.subarray(2 + mediaTypeLength);\n if (compressed) {\n try {\n payload = await gunzip(payload);\n } catch (error) {\n if (error instanceof WoroPayloadError) throw new WoroPayloadError(error.message, bytes.slice());\n throw error;\n }\n if (payload.byteLength > WORO_MAX_PAYLOAD_BYTES) {\n throw new WoroPayloadError(`Decoded payload exceeds WORO's ${WORO_MAX_PAYLOAD_BYTES}-byte limit.`, bytes.slice());\n }\n }\n return { bytes: payload, contentType: contentType || 'application/octet-stream' };\n}\n\nasync function importAesKey(key: Uint8Array, usages: KeyUsage[]): Promise<CryptoKey> {\n return crypto.subtle.importKey('raw', asArrayBuffer(key), { name: 'AES-GCM', length: 256 }, false, usages);\n}\n\nasync function gzip(bytes: Uint8Array): Promise<Uint8Array> {\n if (typeof CompressionStream === 'undefined') throw new WoroPayloadError('This runtime does not provide gzip compression streams.');\n const stream = new Blob([asArrayBuffer(bytes)]).stream().pipeThrough(new CompressionStream('gzip'));\n return await collectStream(stream, WORO_MAX_PAYLOAD_BYTES + 64 * 1024);\n}\n\nasync function gunzip(bytes: Uint8Array): Promise<Uint8Array> {\n if (typeof DecompressionStream === 'undefined') throw new WoroPayloadError('This runtime does not provide gzip decompression streams.');\n try {\n const stream = new Blob([asArrayBuffer(bytes)]).stream().pipeThrough(new DecompressionStream('gzip'));\n return await collectStream(stream, WORO_MAX_PAYLOAD_BYTES);\n } catch (error) {\n if (error instanceof WoroPayloadError) throw error;\n throw new WoroPayloadError('The compressed WORO package payload is invalid.');\n }\n}\n\nasync function collectStream(stream: ReadableStream<Uint8Array>, maxBytes: number): Promise<Uint8Array> {\n const reader = stream.getReader();\n const chunks: Uint8Array[] = [];\n let total = 0;\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n total += value.byteLength;\n if (total > maxBytes) {\n await reader.cancel();\n throw new WoroPayloadError(`Decoded payload exceeds WORO's ${maxBytes}-byte limit.`);\n }\n chunks.push(value);\n }\n } finally {\n reader.releaseLock();\n }\n const output = new Uint8Array(total);\n let offset = 0;\n for (const chunk of chunks) {\n output.set(chunk, offset);\n offset += chunk.byteLength;\n }\n return output;\n}\n\nfunction asArrayBuffer(bytes: Uint8Array): ArrayBuffer {\n return bytes.buffer.slice(bytes.byteOffset, bytes.byteOffset + bytes.byteLength) as ArrayBuffer;\n}\n", "import Srp from 'aws-cognito-srp-client';\nimport { WoroApiError, WoroAuthError } from './errors.js';\nimport {\n decodePayload,\n encodePayload,\n type PayloadOptions,\n type WoroInput,\n WORO_MAX_PAYLOAD_BYTES,\n} from './payload.js';\n\nexport const WORO_PRODUCTION_URL = 'https://woro.veilgroup.au';\n\nexport interface CognitoConfig {\n region: string;\n userPoolId: string;\n appClientId: string;\n}\n\nexport interface WoroClientOptions {\n baseUrl?: string;\n writeToken?: string;\n idToken?: string;\n cognito?: CognitoConfig;\n fetch?: typeof fetch;\n}\n\nexport interface WriteOptions extends PayloadOptions {\n writeToken?: string;\n}\n\nexport interface ReadOptions {\n encryptionKey?: Uint8Array;\n}\n\nexport interface CreatedSecret {\n readToken: string;\n expiresAt: string;\n}\n\nexport interface ReadSecret {\n data: Uint8Array;\n contentType: string;\n}\n\nexport interface SecretStatus {\n state: string | null;\n createdAt: string | null;\n expiresAt: string | null;\n uploadedAt: string | null;\n redeemedAt: string | null;\n deletedAt: string | null;\n}\n\nexport interface AccountOverview {\n id: string;\n email?: string;\n status?: string;\n createdAt?: string;\n credits: number;\n [key: string]: unknown;\n}\n\nexport interface AccountBalance {\n credits: number;\n [key: string]: unknown;\n}\n\nexport interface WriteTokenRecord {\n id: string;\n label?: string;\n createdAt?: string;\n active?: boolean;\n [key: string]: unknown;\n}\n\nexport interface CreatedWriteToken {\n id: string;\n token: string;\n label?: string;\n createdAt?: string;\n [key: string]: unknown;\n}\n\nexport class WoroClient {\n readonly baseUrl: string;\n private readonly fetcher: typeof fetch;\n private readonly cognito: CognitoConfig | undefined;\n private writeToken: string | undefined;\n private idToken: string | undefined;\n private idTokenExpiresAt: number | undefined;\n\n constructor(options: WoroClientOptions = {}) {\n this.baseUrl = (options.baseUrl ?? WORO_PRODUCTION_URL).replace(/\\/+$/, '');\n this.writeToken = options.writeToken;\n this.idToken = options.idToken;\n this.cognito = options.cognito;\n this.fetcher = options.fetch ?? fetch;\n }\n\n setWriteToken(token: string | undefined): void {\n this.writeToken = token;\n }\n\n setIdToken(token: string | undefined, expiresInSeconds?: number): void {\n this.idToken = token;\n this.idTokenExpiresAt = token && expiresInSeconds !== undefined\n ? Date.now() + expiresInSeconds * 1000\n : undefined;\n }\n\n signOut(): void {\n this.setIdToken(undefined);\n }\n\n async signIn(username: string, password: string): Promise<{ idToken: string; expiresIn: number }> {\n if (!this.cognito) throw new WoroAuthError('Cognito region, userPoolId, and appClientId are required for sign-in.');\n if (!username || !password) throw new WoroAuthError('A Cognito username and password are required.');\n const srp = new Srp(this.cognito.userPoolId);\n const endpoint = `https://cognito-idp.${this.cognito.region}.amazonaws.com/`;\n const initialResponse = await this.fetcher(endpoint, {\n method: 'POST',\n headers: {\n 'content-type': 'application/x-amz-json-1.1',\n 'x-amz-target': 'AWSCognitoIdentityProviderService.InitiateAuth',\n },\n body: JSON.stringify({\n AuthFlow: 'USER_SRP_AUTH',\n ClientId: this.cognito.appClientId,\n AuthParameters: { USERNAME: username, SRP_A: srp.getA() },\n }),\n });\n const initial = await parseCognitoResponse(initialResponse, 'InitiateAuth');\n if (initial.ChallengeName !== 'PASSWORD_VERIFIER') {\n throw new WoroAuthError(`Cognito requires an unsupported challenge (${String(initial.ChallengeName ?? 'unknown')}). This package supports SRP password sign-in without MFA or forced password reset.`);\n }\n const challenge = asRecord(initial.ChallengeParameters);\n const srpUsername = stringField(challenge, 'USER_ID_FOR_SRP') ?? username;\n const srpB = stringField(challenge, 'SRP_B');\n const salt = stringField(challenge, 'SALT');\n const secretBlock = stringField(challenge, 'SECRET_BLOCK');\n const session = stringField(initial, 'Session');\n if (!srpB || !salt || !secretBlock || !session) throw new WoroAuthError('Cognito returned an incomplete SRP challenge.');\n const proof = srp.getSignature(srpUsername, srpB, salt, secretBlock, password);\n const finalResponse = await this.fetcher(endpoint, {\n method: 'POST',\n headers: {\n 'content-type': 'application/x-amz-json-1.1',\n 'x-amz-target': 'AWSCognitoIdentityProviderService.RespondToAuthChallenge',\n },\n body: JSON.stringify({\n ChallengeName: 'PASSWORD_VERIFIER',\n ClientId: this.cognito.appClientId,\n Session: session,\n ChallengeResponses: {\n USERNAME: srpUsername,\n PASSWORD_CLAIM_SECRET_BLOCK: secretBlock,\n PASSWORD_CLAIM_SIGNATURE: proof.signature,\n TIMESTAMP: proof.timestamp,\n },\n }),\n });\n const final = await parseCognitoResponse(finalResponse, 'RespondToAuthChallenge');\n const authResult = asRecord(final.AuthenticationResult);\n const idToken = stringField(authResult, 'IdToken');\n if (!idToken) throw new WoroAuthError('Cognito sign-in did not return an ID token.');\n const expiresIn = numberField(authResult, 'ExpiresIn') ?? 3600;\n this.setIdToken(idToken, expiresIn);\n return { idToken, expiresIn };\n }\n\n async writeSecret(input: WoroInput, options: WriteOptions = {}): Promise<CreatedSecret> {\n const encoded = await encodePayload(input, options);\n if (encoded.bytes.byteLength === 0) throw new TypeError('An empty payload creates an empty slot in WORO. Use createEmptySlot() explicitly.');\n this.assertPayloadSize(encoded.bytes);\n const response = await this.request('/secret', {\n method: 'POST',\n headers: {\n 'content-type': encoded.contentType,\n 'x-api-key': this.getWriteToken(options.writeToken),\n },\n body: new Blob([toArrayBuffer(encoded.bytes)]),\n });\n return await response.json() as CreatedSecret;\n }\n\n async createEmptySlot(writeToken?: string): Promise<CreatedSecret> {\n const response = await this.request('/secret', {\n method: 'POST',\n headers: { 'x-api-key': this.getWriteToken(writeToken) },\n });\n return await response.json() as CreatedSecret;\n }\n\n async fillSecret(readToken: string, input: WoroInput, options: PayloadOptions = {}): Promise<void> {\n const encoded = await encodePayload(input, options);\n if (encoded.bytes.byteLength === 0) throw new TypeError('An empty payload cannot fill a WORO slot.');\n this.assertPayloadSize(encoded.bytes);\n await this.request(`/secret/${encodeURIComponent(readToken)}`, {\n method: 'PUT',\n headers: { 'content-type': encoded.contentType },\n body: new Blob([toArrayBuffer(encoded.bytes)]),\n });\n }\n\n async readSecret(readToken: string, options: ReadOptions = {}): Promise<ReadSecret> {\n const response = await this.request(`/secret/${encodeURIComponent(readToken)}`, { method: 'GET' });\n const bytes = new Uint8Array(await response.arrayBuffer());\n const payload = await decodePayload(bytes, response.headers.get('content-type') ?? 'application/octet-stream', options.encryptionKey);\n return { data: payload.bytes, contentType: payload.contentType };\n }\n\n async deleteSecret(readToken: string): Promise<void> {\n await this.request(`/secret/${encodeURIComponent(readToken)}`, { method: 'DELETE' });\n }\n\n async getSecretStatus(readToken: string): Promise<SecretStatus> {\n const response = await this.request(`/secret/${encodeURIComponent(readToken)}`, {\n method: 'HEAD',\n headers: this.authorizationHeaders(),\n });\n return {\n state: response.headers.get('x-woro-secret-state'),\n createdAt: response.headers.get('x-woro-secret-created-at'),\n expiresAt: response.headers.get('x-woro-secret-expires-at'),\n uploadedAt: response.headers.get('x-woro-secret-uploaded-at'),\n redeemedAt: response.headers.get('x-woro-secret-redeemed-at'),\n deletedAt: response.headers.get('x-woro-secret-deleted-at'),\n };\n }\n\n async getAccount(): Promise<AccountOverview> {\n return await (await this.request('/account', { method: 'GET', headers: this.authorizationHeaders() })).json() as AccountOverview;\n }\n\n async getAccountBalance(): Promise<AccountBalance> {\n return await (await this.request('/account/balance', { method: 'GET', headers: this.authorizationHeaders() })).json() as AccountBalance;\n }\n\n async listWriteTokens(): Promise<WriteTokenRecord[]> {\n const body = await (await this.request('/account/tokens', { method: 'GET', headers: this.authorizationHeaders() })).json();\n if (Array.isArray(body)) return body as WriteTokenRecord[];\n const items = asRecord(body).tokens;\n return Array.isArray(items) ? items as WriteTokenRecord[] : [];\n }\n\n async createWriteToken(label: string): Promise<CreatedWriteToken> {\n const response = await this.request('/account/tokens', {\n method: 'POST',\n headers: { ...this.authorizationHeaders(), 'content-type': 'application/json' },\n body: JSON.stringify({ label }),\n });\n return await response.json() as CreatedWriteToken;\n }\n\n async revokeWriteToken(tokenId: string): Promise<void> {\n await this.request(`/account/tokens/${encodeURIComponent(tokenId)}`, {\n method: 'DELETE',\n headers: this.authorizationHeaders(),\n });\n }\n\n async checkWriteToken(writeToken = this.getWriteToken()): Promise<string | null> {\n const response = await this.request('/account/token', {\n method: 'HEAD',\n headers: { ...this.authorizationHeaders(), 'x-api-key': writeToken },\n });\n return response.headers.get('x-woro-token-state');\n }\n\n private getWriteToken(override?: string): string {\n const token = override ?? this.writeToken;\n if (!token) throw new WoroAuthError('A WORO write token is required for this operation.');\n return token;\n }\n\n private authorizationHeaders(): Record<string, string> {\n if (!this.idToken) throw new WoroAuthError('Sign in to the Cognito account before using this operation.');\n if (this.idTokenExpiresAt !== undefined && Date.now() >= this.idTokenExpiresAt) {\n this.signOut();\n throw new WoroAuthError('The Cognito ID token has expired; sign in again.');\n }\n return { authorization: `Bearer ${this.idToken}` };\n }\n\n private assertPayloadSize(bytes: Uint8Array): void {\n if (bytes.byteLength > WORO_MAX_PAYLOAD_BYTES) {\n throw new WoroApiError(413, `Encoded payload exceeds WORO's ${WORO_MAX_PAYLOAD_BYTES}-byte limit.`,'secret_too_large');\n }\n }\n\n private async request(path: string, init: RequestInit): Promise<Response> {\n const response = await this.fetcher(`${this.baseUrl}${path}`, { ...init, cache: 'no-store' });\n if (!response.ok) throw await apiError(response);\n return response;\n }\n}\n\nasync function parseCognitoResponse(response: Response, operation: string): Promise<Record<string, unknown>> {\n let result: unknown;\n try { result = await response.json(); } catch { result = undefined; }\n if (!response.ok) {\n const body = asRecord(result);\n const code = stringField(body, '__type')?.split('#').pop();\n const message = stringField(body, 'message') ?? `Cognito ${operation} failed with HTTP ${response.status}.`;\n throw new WoroAuthError(message, code);\n }\n return asRecord(result);\n}\n\nasync function apiError(response: Response): Promise<WoroApiError> {\n let code: string | undefined;\n let message = `WORO request failed with HTTP ${response.status}.`;\n try {\n const body = asRecord(await response.json());\n code = stringField(body, 'code') ?? stringField(body, 'error');\n const detail = stringField(body, 'error');\n if (detail && detail.length <= 200) message = detail;\n } catch {\n // Keep error bodies out of exceptions; they may contain untrusted response data.\n }\n return new WoroApiError(response.status, message, code);\n}\n\nfunction asRecord(value: unknown): Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value)\n ? value as Record<string, unknown>\n : {};\n}\n\nfunction stringField(value: Record<string, unknown>, key: string): string | undefined {\n return typeof value[key] === 'string' ? value[key] as string : undefined;\n}\n\nfunction numberField(value: Record<string, unknown>, key: string): number | undefined {\n return typeof value[key] === 'number' && Number.isFinite(value[key]) ? value[key] as number : undefined;\n}\n\nfunction toArrayBuffer(bytes: Uint8Array): ArrayBuffer {\n return bytes.buffer.slice(bytes.byteOffset, bytes.byteOffset + bytes.byteLength) as ArrayBuffer;\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": [";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory();\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\troot.CryptoJS = factory();\n\t}\n}(this, function () {\n\n\t/*globals window, global, require*/\n\n\t/**\n\t * CryptoJS core components.\n\t */\n\tvar CryptoJS = CryptoJS || (function (Math, undefined) {\n\n\t var crypto;\n\n\t // Native crypto from window (Browser)\n\t if (typeof window !== 'undefined' && window.crypto) {\n\t crypto = window.crypto;\n\t }\n\n\t // Native crypto in web worker (Browser)\n\t if (typeof self !== 'undefined' && self.crypto) {\n\t crypto = self.crypto;\n\t }\n\n\t // Native crypto from worker\n\t if (typeof globalThis !== 'undefined' && globalThis.crypto) {\n\t crypto = globalThis.crypto;\n\t }\n\n\t // Native (experimental IE 11) crypto from window (Browser)\n\t if (!crypto && typeof window !== 'undefined' && window.msCrypto) {\n\t crypto = window.msCrypto;\n\t }\n\n\t // Native crypto from global (NodeJS)\n\t if (!crypto && typeof global !== 'undefined' && global.crypto) {\n\t crypto = global.crypto;\n\t }\n\n\t // Native crypto import via require (NodeJS)\n\t if (!crypto && typeof require === 'function') {\n\t try {\n\t crypto = require('crypto');\n\t } catch (err) {}\n\t }\n\n\t /*\n\t * Cryptographically secure pseudorandom number generator\n\t *\n\t * As Math.random() is cryptographically not safe to use\n\t */\n\t var cryptoSecureRandomInt = function () {\n\t if (crypto) {\n\t // Use getRandomValues method (Browser)\n\t if (typeof crypto.getRandomValues === 'function') {\n\t try {\n\t return crypto.getRandomValues(new Uint32Array(1))[0];\n\t } catch (err) {}\n\t }\n\n\t // Use randomBytes method (NodeJS)\n\t if (typeof crypto.randomBytes === 'function') {\n\t try {\n\t return crypto.randomBytes(4).readInt32LE();\n\t } catch (err) {}\n\t }\n\t }\n\n\t throw new Error('Native crypto module could not be used to get secure random number.');\n\t };\n\n\t /*\n\t * Local polyfill of Object.create\n\n\t */\n\t var create = Object.create || (function () {\n\t function F() {}\n\n\t return function (obj) {\n\t var subtype;\n\n\t F.prototype = obj;\n\n\t subtype = new F();\n\n\t F.prototype = null;\n\n\t return subtype;\n\t };\n\t }());\n\n\t /**\n\t * CryptoJS namespace.\n\t */\n\t var C = {};\n\n\t /**\n\t * Library namespace.\n\t */\n\t var C_lib = C.lib = {};\n\n\t /**\n\t * Base object for prototypal inheritance.\n\t */\n\t var Base = C_lib.Base = (function () {\n\n\n\t return {\n\t /**\n\t * Creates a new object that inherits from this object.\n\t *\n\t * @param {Object} overrides Properties to copy into the new object.\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * field: 'value',\n\t *\n\t * method: function () {\n\t * }\n\t * });\n\t */\n\t extend: function (overrides) {\n\t // Spawn\n\t var subtype = create(this);\n\n\t // Augment\n\t if (overrides) {\n\t subtype.mixIn(overrides);\n\t }\n\n\t // Create default initializer\n\t if (!subtype.hasOwnProperty('init') || this.init === subtype.init) {\n\t subtype.init = function () {\n\t subtype.$super.init.apply(this, arguments);\n\t };\n\t }\n\n\t // Initializer's prototype is the subtype object\n\t subtype.init.prototype = subtype;\n\n\t // Reference supertype\n\t subtype.$super = this;\n\n\t return subtype;\n\t },\n\n\t /**\n\t * Extends this object and runs the init method.\n\t * Arguments to create() will be passed to init().\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var instance = MyType.create();\n\t */\n\t create: function () {\n\t var instance = this.extend();\n\t instance.init.apply(instance, arguments);\n\n\t return instance;\n\t },\n\n\t /**\n\t * Initializes a newly created object.\n\t * Override this method to add some logic when your objects are created.\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * init: function () {\n\t * // ...\n\t * }\n\t * });\n\t */\n\t init: function () {\n\t },\n\n\t /**\n\t * Copies properties into this object.\n\t *\n\t * @param {Object} properties The properties to mix in.\n\t *\n\t * @example\n\t *\n\t * MyType.mixIn({\n\t * field: 'value'\n\t * });\n\t */\n\t mixIn: function (properties) {\n\t for (var propertyName in properties) {\n\t if (properties.hasOwnProperty(propertyName)) {\n\t this[propertyName] = properties[propertyName];\n\t }\n\t }\n\n\t // IE won't copy toString using the loop above\n\t if (properties.hasOwnProperty('toString')) {\n\t this.toString = properties.toString;\n\t }\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = instance.clone();\n\t */\n\t clone: function () {\n\t return this.init.prototype.extend(this);\n\t }\n\t };\n\t }());\n\n\t /**\n\t * An array of 32-bit words.\n\t *\n\t * @property {Array} words The array of 32-bit words.\n\t * @property {number} sigBytes The number of significant bytes in this word array.\n\t */\n\t var WordArray = C_lib.WordArray = Base.extend({\n\t /**\n\t * Initializes a newly created word array.\n\t *\n\t * @param {Array} words (Optional) An array of 32-bit words.\n\t * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.create();\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);\n\t */\n\t init: function (words, sigBytes) {\n\t words = this.words = words || [];\n\n\t if (sigBytes != undefined) {\n\t this.sigBytes = sigBytes;\n\t } else {\n\t this.sigBytes = words.length * 4;\n\t }\n\t },\n\n\t /**\n\t * Converts this word array to a string.\n\t *\n\t * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex\n\t *\n\t * @return {string} The stringified word array.\n\t *\n\t * @example\n\t *\n\t * var string = wordArray + '';\n\t * var string = wordArray.toString();\n\t * var string = wordArray.toString(CryptoJS.enc.Utf8);\n\t */\n\t toString: function (encoder) {\n\t return (encoder || Hex).stringify(this);\n\t },\n\n\t /**\n\t * Concatenates a word array to this word array.\n\t *\n\t * @param {WordArray} wordArray The word array to append.\n\t *\n\t * @return {WordArray} This word array.\n\t *\n\t * @example\n\t *\n\t * wordArray1.concat(wordArray2);\n\t */\n\t concat: function (wordArray) {\n\t // Shortcuts\n\t var thisWords = this.words;\n\t var thatWords = wordArray.words;\n\t var thisSigBytes = this.sigBytes;\n\t var thatSigBytes = wordArray.sigBytes;\n\n\t // Clamp excess bits\n\t this.clamp();\n\n\t // Concat\n\t if (thisSigBytes % 4) {\n\t // Copy one byte at a time\n\t for (var i = 0; i < thatSigBytes; i++) {\n\t var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8);\n\t }\n\t } else {\n\t // Copy one word at a time\n\t for (var j = 0; j < thatSigBytes; j += 4) {\n\t thisWords[(thisSigBytes + j) >>> 2] = thatWords[j >>> 2];\n\t }\n\t }\n\t this.sigBytes += thatSigBytes;\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Removes insignificant bits.\n\t *\n\t * @example\n\t *\n\t * wordArray.clamp();\n\t */\n\t clamp: function () {\n\t // Shortcuts\n\t var words = this.words;\n\t var sigBytes = this.sigBytes;\n\n\t // Clamp\n\t words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8);\n\t words.length = Math.ceil(sigBytes / 4);\n\t },\n\n\t /**\n\t * Creates a copy of this word array.\n\t *\n\t * @return {WordArray} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = wordArray.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone.words = this.words.slice(0);\n\n\t return clone;\n\t },\n\n\t /**\n\t * Creates a word array filled with random bytes.\n\t *\n\t * @param {number} nBytes The number of random bytes to generate.\n\t *\n\t * @return {WordArray} The random word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.random(16);\n\t */\n\t random: function (nBytes) {\n\t var words = [];\n\n\t for (var i = 0; i < nBytes; i += 4) {\n\t words.push(cryptoSecureRandomInt());\n\t }\n\n\t return new WordArray.init(words, nBytes);\n\t }\n\t });\n\n\t /**\n\t * Encoder namespace.\n\t */\n\t var C_enc = C.enc = {};\n\n\t /**\n\t * Hex encoding strategy.\n\t */\n\t var Hex = C_enc.Hex = {\n\t /**\n\t * Converts a word array to a hex string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The hex string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hexString = CryptoJS.enc.Hex.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var hexChars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t hexChars.push((bite >>> 4).toString(16));\n\t hexChars.push((bite & 0x0f).toString(16));\n\t }\n\n\t return hexChars.join('');\n\t },\n\n\t /**\n\t * Converts a hex string to a word array.\n\t *\n\t * @param {string} hexStr The hex string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Hex.parse(hexString);\n\t */\n\t parse: function (hexStr) {\n\t // Shortcut\n\t var hexStrLength = hexStr.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < hexStrLength; i += 2) {\n\t words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);\n\t }\n\n\t return new WordArray.init(words, hexStrLength / 2);\n\t }\n\t };\n\n\t /**\n\t * Latin1 encoding strategy.\n\t */\n\t var Latin1 = C_enc.Latin1 = {\n\t /**\n\t * Converts a word array to a Latin1 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Latin1 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var latin1Chars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t latin1Chars.push(String.fromCharCode(bite));\n\t }\n\n\t return latin1Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Latin1 string to a word array.\n\t *\n\t * @param {string} latin1Str The Latin1 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Latin1.parse(latin1String);\n\t */\n\t parse: function (latin1Str) {\n\t // Shortcut\n\t var latin1StrLength = latin1Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < latin1StrLength; i++) {\n\t words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);\n\t }\n\n\t return new WordArray.init(words, latin1StrLength);\n\t }\n\t };\n\n\t /**\n\t * UTF-8 encoding strategy.\n\t */\n\t var Utf8 = C_enc.Utf8 = {\n\t /**\n\t * Converts a word array to a UTF-8 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-8 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t try {\n\t return decodeURIComponent(escape(Latin1.stringify(wordArray)));\n\t } catch (e) {\n\t throw new Error('Malformed UTF-8 data');\n\t }\n\t },\n\n\t /**\n\t * Converts a UTF-8 string to a word array.\n\t *\n\t * @param {string} utf8Str The UTF-8 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf8.parse(utf8String);\n\t */\n\t parse: function (utf8Str) {\n\t return Latin1.parse(unescape(encodeURIComponent(utf8Str)));\n\t }\n\t };\n\n\t /**\n\t * Abstract buffered block algorithm template.\n\t *\n\t * The property blockSize must be implemented in a concrete subtype.\n\t *\n\t * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0\n\t */\n\t var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({\n\t /**\n\t * Resets this block algorithm's data buffer to its initial state.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm.reset();\n\t */\n\t reset: function () {\n\t // Initial values\n\t this._data = new WordArray.init();\n\t this._nDataBytes = 0;\n\t },\n\n\t /**\n\t * Adds new data to this block algorithm's buffer.\n\t *\n\t * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm._append('data');\n\t * bufferedBlockAlgorithm._append(wordArray);\n\t */\n\t _append: function (data) {\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof data == 'string') {\n\t data = Utf8.parse(data);\n\t }\n\n\t // Append\n\t this._data.concat(data);\n\t this._nDataBytes += data.sigBytes;\n\t },\n\n\t /**\n\t * Processes available data blocks.\n\t *\n\t * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.\n\t *\n\t * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.\n\t *\n\t * @return {WordArray} The processed data.\n\t *\n\t * @example\n\t *\n\t * var processedData = bufferedBlockAlgorithm._process();\n\t * var processedData = bufferedBlockAlgorithm._process(!!'flush');\n\t */\n\t _process: function (doFlush) {\n\t var processedWords;\n\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\t var dataSigBytes = data.sigBytes;\n\t var blockSize = this.blockSize;\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count blocks ready\n\t var nBlocksReady = dataSigBytes / blockSizeBytes;\n\t if (doFlush) {\n\t // Round up to include partial blocks\n\t nBlocksReady = Math.ceil(nBlocksReady);\n\t } else {\n\t // Round down to include only full blocks,\n\t // less the number of blocks that must remain in the buffer\n\t nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);\n\t }\n\n\t // Count words ready\n\t var nWordsReady = nBlocksReady * blockSize;\n\n\t // Count bytes ready\n\t var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes);\n\n\t // Process blocks\n\t if (nWordsReady) {\n\t for (var offset = 0; offset < nWordsReady; offset += blockSize) {\n\t // Perform concrete-algorithm logic\n\t this._doProcessBlock(dataWords, offset);\n\t }\n\n\t // Remove processed words\n\t processedWords = dataWords.splice(0, nWordsReady);\n\t data.sigBytes -= nBytesReady;\n\t }\n\n\t // Return processed words\n\t return new WordArray.init(processedWords, nBytesReady);\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = bufferedBlockAlgorithm.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone._data = this._data.clone();\n\n\t return clone;\n\t },\n\n\t _minBufferSize: 0\n\t });\n\n\t /**\n\t * Abstract hasher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)\n\t */\n\t var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({\n\t /**\n\t * Configuration options.\n\t */\n\t cfg: Base.extend(),\n\n\t /**\n\t * Initializes a newly created hasher.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for this hash computation.\n\t *\n\t * @example\n\t *\n\t * var hasher = CryptoJS.algo.SHA256.create();\n\t */\n\t init: function (cfg) {\n\t // Apply config defaults\n\t this.cfg = this.cfg.extend(cfg);\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this hasher to its initial state.\n\t *\n\t * @example\n\t *\n\t * hasher.reset();\n\t */\n\t reset: function () {\n\t // Reset data buffer\n\t BufferedBlockAlgorithm.reset.call(this);\n\n\t // Perform concrete-hasher logic\n\t this._doReset();\n\t },\n\n\t /**\n\t * Updates this hasher with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {Hasher} This hasher.\n\t *\n\t * @example\n\t *\n\t * hasher.update('message');\n\t * hasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t // Append\n\t this._append(messageUpdate);\n\n\t // Update the hash\n\t this._process();\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the hash computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @example\n\t *\n\t * var hash = hasher.finalize();\n\t * var hash = hasher.finalize('message');\n\t * var hash = hasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Final message update\n\t if (messageUpdate) {\n\t this._append(messageUpdate);\n\t }\n\n\t // Perform concrete-hasher logic\n\t var hash = this._doFinalize();\n\n\t return hash;\n\t },\n\n\t blockSize: 512/32,\n\n\t /**\n\t * Creates a shortcut function to a hasher's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to create a helper for.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHelper: function (hasher) {\n\t return function (message, cfg) {\n\t return new hasher.init(cfg).finalize(message);\n\t };\n\t },\n\n\t /**\n\t * Creates a shortcut function to the HMAC's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to use in this HMAC helper.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHmacHelper: function (hasher) {\n\t return function (message, key) {\n\t return new C_algo.HMAC.init(hasher, key).finalize(message);\n\t };\n\t }\n\t });\n\n\t /**\n\t * Algorithm namespace.\n\t */\n\t var C_algo = C.algo = {};\n\n\t return C;\n\t}(Math));\n\n\n\treturn CryptoJS;\n\n}));", ";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Initialization and round constants tables\n\t var H = [];\n\t var K = [];\n\n\t // Compute constants\n\t (function () {\n\t function isPrime(n) {\n\t var sqrtN = Math.sqrt(n);\n\t for (var factor = 2; factor <= sqrtN; factor++) {\n\t if (!(n % factor)) {\n\t return false;\n\t }\n\t }\n\n\t return true;\n\t }\n\n\t function getFractionalBits(n) {\n\t return ((n - (n | 0)) * 0x100000000) | 0;\n\t }\n\n\t var n = 2;\n\t var nPrime = 0;\n\t while (nPrime < 64) {\n\t if (isPrime(n)) {\n\t if (nPrime < 8) {\n\t H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2));\n\t }\n\t K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3));\n\n\t nPrime++;\n\t }\n\n\t n++;\n\t }\n\t }());\n\n\t // Reusable object\n\t var W = [];\n\n\t /**\n\t * SHA-256 hash algorithm.\n\t */\n\t var SHA256 = C_algo.SHA256 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init(H.slice(0));\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var H = this._hash.words;\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\t var e = H[4];\n\t var f = H[5];\n\t var g = H[6];\n\t var h = H[7];\n\n\t // Computation\n\t for (var i = 0; i < 64; i++) {\n\t if (i < 16) {\n\t W[i] = M[offset + i] | 0;\n\t } else {\n\t var gamma0x = W[i - 15];\n\t var gamma0 = ((gamma0x << 25) | (gamma0x >>> 7)) ^\n\t ((gamma0x << 14) | (gamma0x >>> 18)) ^\n\t (gamma0x >>> 3);\n\n\t var gamma1x = W[i - 2];\n\t var gamma1 = ((gamma1x << 15) | (gamma1x >>> 17)) ^\n\t ((gamma1x << 13) | (gamma1x >>> 19)) ^\n\t (gamma1x >>> 10);\n\n\t W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16];\n\t }\n\n\t var ch = (e & f) ^ (~e & g);\n\t var maj = (a & b) ^ (a & c) ^ (b & c);\n\n\t var sigma0 = ((a << 30) | (a >>> 2)) ^ ((a << 19) | (a >>> 13)) ^ ((a << 10) | (a >>> 22));\n\t var sigma1 = ((e << 26) | (e >>> 6)) ^ ((e << 21) | (e >>> 11)) ^ ((e << 7) | (e >>> 25));\n\n\t var t1 = h + sigma1 + ch + K[i] + W[i];\n\t var t2 = sigma0 + maj;\n\n\t h = g;\n\t g = f;\n\t f = e;\n\t e = (d + t1) | 0;\n\t d = c;\n\t c = b;\n\t b = a;\n\t a = (t1 + t2) | 0;\n\t }\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t H[4] = (H[4] + e) | 0;\n\t H[5] = (H[5] + f) | 0;\n\t H[6] = (H[6] + g) | 0;\n\t H[7] = (H[7] + h) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Return final computed hash\n\t return this._hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA256('message');\n\t * var hash = CryptoJS.SHA256(wordArray);\n\t */\n\t C.SHA256 = Hasher._createHelper(SHA256);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA256(message, key);\n\t */\n\t C.HmacSHA256 = Hasher._createHmacHelper(SHA256);\n\t}(Math));\n\n\n\treturn CryptoJS.SHA256;\n\n}));", ";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var C_enc = C.enc;\n\t var Utf8 = C_enc.Utf8;\n\t var C_algo = C.algo;\n\n\t /**\n\t * HMAC algorithm.\n\t */\n\t var HMAC = C_algo.HMAC = Base.extend({\n\t /**\n\t * Initializes a newly created HMAC.\n\t *\n\t * @param {Hasher} hasher The hash algorithm to use.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @example\n\t *\n\t * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key);\n\t */\n\t init: function (hasher, key) {\n\t // Init hasher\n\t hasher = this._hasher = new hasher.init();\n\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof key == 'string') {\n\t key = Utf8.parse(key);\n\t }\n\n\t // Shortcuts\n\t var hasherBlockSize = hasher.blockSize;\n\t var hasherBlockSizeBytes = hasherBlockSize * 4;\n\n\t // Allow arbitrary length keys\n\t if (key.sigBytes > hasherBlockSizeBytes) {\n\t key = hasher.finalize(key);\n\t }\n\n\t // Clamp excess bits\n\t key.clamp();\n\n\t // Clone key for inner and outer pads\n\t var oKey = this._oKey = key.clone();\n\t var iKey = this._iKey = key.clone();\n\n\t // Shortcuts\n\t var oKeyWords = oKey.words;\n\t var iKeyWords = iKey.words;\n\n\t // XOR keys with pad constants\n\t for (var i = 0; i < hasherBlockSize; i++) {\n\t oKeyWords[i] ^= 0x5c5c5c5c;\n\t iKeyWords[i] ^= 0x36363636;\n\t }\n\t oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes;\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this HMAC to its initial state.\n\t *\n\t * @example\n\t *\n\t * hmacHasher.reset();\n\t */\n\t reset: function () {\n\t // Shortcut\n\t var hasher = this._hasher;\n\n\t // Reset\n\t hasher.reset();\n\t hasher.update(this._iKey);\n\t },\n\n\t /**\n\t * Updates this HMAC with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {HMAC} This HMAC instance.\n\t *\n\t * @example\n\t *\n\t * hmacHasher.update('message');\n\t * hmacHasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t this._hasher.update(messageUpdate);\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the HMAC computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @example\n\t *\n\t * var hmac = hmacHasher.finalize();\n\t * var hmac = hmacHasher.finalize('message');\n\t * var hmac = hmacHasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Shortcut\n\t var hasher = this._hasher;\n\n\t // Compute HMAC\n\t var innerHash = hasher.finalize(messageUpdate);\n\t hasher.reset();\n\t var hmac = hasher.finalize(this._oKey.clone().concat(innerHash));\n\n\t return hmac;\n\t }\n\t });\n\t}());\n\n\n}));", ";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./sha256\"), require(\"./hmac\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./sha256\", \"./hmac\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\treturn CryptoJS.HmacSHA256;\n\n}));", ";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_enc = C.enc;\n\n\t /**\n\t * Base64 encoding strategy.\n\t */\n\t var Base64 = C_enc.Base64 = {\n\t /**\n\t * Converts a word array to a Base64 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Base64 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var base64String = CryptoJS.enc.Base64.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\t var map = this._map;\n\n\t // Clamp excess bits\n\t wordArray.clamp();\n\n\t // Convert\n\t var base64Chars = [];\n\t for (var i = 0; i < sigBytes; i += 3) {\n\t var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;\n\t var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;\n\n\t var triplet = (byte1 << 16) | (byte2 << 8) | byte3;\n\n\t for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {\n\t base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));\n\t }\n\t }\n\n\t // Add padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t while (base64Chars.length % 4) {\n\t base64Chars.push(paddingChar);\n\t }\n\t }\n\n\t return base64Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Base64 string to a word array.\n\t *\n\t * @param {string} base64Str The Base64 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Base64.parse(base64String);\n\t */\n\t parse: function (base64Str) {\n\t // Shortcuts\n\t var base64StrLength = base64Str.length;\n\t var map = this._map;\n\t var reverseMap = this._reverseMap;\n\n\t if (!reverseMap) {\n\t reverseMap = this._reverseMap = [];\n\t for (var j = 0; j < map.length; j++) {\n\t reverseMap[map.charCodeAt(j)] = j;\n\t }\n\t }\n\n\t // Ignore padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t var paddingIndex = base64Str.indexOf(paddingChar);\n\t if (paddingIndex !== -1) {\n\t base64StrLength = paddingIndex;\n\t }\n\t }\n\n\t // Convert\n\t return parseLoop(base64Str, base64StrLength, reverseMap);\n\n\t },\n\n\t _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='\n\t };\n\n\t function parseLoop(base64Str, base64StrLength, reverseMap) {\n\t var words = [];\n\t var nBytes = 0;\n\t for (var i = 0; i < base64StrLength; i++) {\n\t if (i % 4) {\n\t var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);\n\t var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);\n\t var bitsCombined = bits1 | bits2;\n\t words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8);\n\t nBytes++;\n\t }\n\t }\n\t return WordArray.create(words, nBytes);\n\t }\n\t}());\n\n\n\treturn CryptoJS.enc.Base64;\n\n}));", ";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\treturn CryptoJS.enc.Hex;\n\n}));", ";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\treturn CryptoJS.enc.Utf8;\n\n}));", "// A small implementation of BigInteger based on http://www-cs-students.stanford.edu/~tjw/jsbn/\n//\n// All public methods have been removed except the following:\n// new BigInteger(a, b) (only radix 2, 4, 8, 16 and 32 supported)\n// toString (only radix 2, 4, 8, 16 and 32 supported)\n// negate\n// abs\n// compareTo\n// bitLength\n// mod\n// equals\n// add\n// subtract\n// multiply\n// divide\n// modPow\n/*\n * Copyright (c) 2003-2005 Tom Wu\n * All Rights Reserved.\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS-IS\" AND WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY\n * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.\n *\n * IN NO EVENT SHALL TOM WU BE LIABLE FOR ANY SPECIAL, INCIDENTAL,\n * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER\n * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF\n * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT\n * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n *\n * In addition, the following condition applies:\n *\n * All redistributions must retain an intact copy of this copyright notice\n * and disclaimer.\n */\n// (public) Constructor\nfunction BigInteger(a, b) {\n if (a != null)\n this.fromString(a, b);\n}\n// return new, unset BigInteger\nfunction nbi() {\n return new BigInteger(null);\n}\n// Bits per digit\nvar dbits;\n// JavaScript engine analysis\nvar canary = 0xdeadbeefcafe;\nvar j_lm = (canary & 0xffffff) == 0xefcafe;\n// am: Compute w_j += (x*this_i), propagate carries,\n// c is initial carry, returns final carry.\n// c < 3*dvalue, x < 2*dvalue, this_i < dvalue\n// We need to select the fastest one that works in this environment.\n// am1: use a single mult and divide to get the high bits,\n// max digit bits should be 26 because\n// max internal value = 2*dvalue^2-2*dvalue (< 2^53)\nfunction am1(i, x, w, j, c, n) {\n while (--n >= 0) {\n var v = x * this[i++] + w[j] + c;\n c = Math.floor(v / 0x4000000);\n w[j++] = v & 0x3ffffff;\n }\n return c;\n}\n// am2 avoids a big mult-and-extract completely.\n// Max digit bits should be <= 30 because we do bitwise ops\n// on values up to 2*hdvalue^2-hdvalue-1 (< 2^31)\nfunction am2(i, x, w, j, c, n) {\n var xl = x & 0x7fff, xh = x >> 15;\n while (--n >= 0) {\n var l = this[i] & 0x7fff;\n var h = this[i++] >> 15;\n var m = xh * l + h * xl;\n l = xl * l + ((m & 0x7fff) << 15) + w[j] + (c & 0x3fffffff);\n c = (l >>> 30) + (m >>> 15) + xh * h + (c >>> 30);\n w[j++] = l & 0x3fffffff;\n }\n return c;\n}\n// Alternately, set max digit bits to 28 since some\n// browsers slow down when dealing with 32-bit numbers.\nfunction am3(i, x, w, j, c, n) {\n var xl = x & 0x3fff, xh = x >> 14;\n while (--n >= 0) {\n var l = this[i] & 0x3fff;\n var h = this[i++] >> 14;\n var m = xh * l + h * xl;\n l = xl * l + ((m & 0x3fff) << 14) + w[j] + c;\n c = (l >> 28) + (m >> 14) + xh * h;\n w[j++] = l & 0xfffffff;\n }\n return c;\n}\nvar inBrowser = typeof navigator !== \"undefined\";\nif (inBrowser && j_lm && navigator.appName == \"Microsoft Internet Explorer\") {\n BigInteger.prototype.am = am2;\n dbits = 30;\n}\nelse if (inBrowser && j_lm && navigator.appName != \"Netscape\") {\n BigInteger.prototype.am = am1;\n dbits = 26;\n}\nelse {\n // Mozilla/Netscape seems to prefer am3\n BigInteger.prototype.am = am3;\n dbits = 28;\n}\nBigInteger.prototype.DB = dbits;\nBigInteger.prototype.DM = (1 << dbits) - 1;\nBigInteger.prototype.DV = 1 << dbits;\nvar BI_FP = 52;\nBigInteger.prototype.FV = Math.pow(2, BI_FP);\nBigInteger.prototype.F1 = BI_FP - dbits;\nBigInteger.prototype.F2 = 2 * dbits - BI_FP;\n// Digit conversions\nvar BI_RM = \"0123456789abcdefghijklmnopqrstuvwxyz\";\nvar BI_RC = [];\nvar rr, vv;\nrr = \"0\".charCodeAt(0);\nfor (vv = 0; vv <= 9; ++vv)\n BI_RC[rr++] = vv;\nrr = \"a\".charCodeAt(0);\nfor (vv = 10; vv < 36; ++vv)\n BI_RC[rr++] = vv;\nrr = \"A\".charCodeAt(0);\nfor (vv = 10; vv < 36; ++vv)\n BI_RC[rr++] = vv;\nfunction int2char(n) {\n return BI_RM.charAt(n);\n}\nfunction intAt(s, i) {\n var c = BI_RC[s.charCodeAt(i)];\n return c == null ? -1 : c;\n}\n// (protected) copy this to r\nfunction copyTo(r) {\n for (var i = this.t - 1; i >= 0; --i)\n r[i] = this[i];\n r.t = this.t;\n r.s = this.s;\n}\n// (protected) set from integer value x, -DV <= x < DV\nfunction fromInt(x) {\n this.t = 1;\n this.s = x < 0 ? -1 : 0;\n if (x > 0)\n this[0] = x;\n else if (x < -1)\n this[0] = x + this.DV;\n else\n this.t = 0;\n}\n// return bigint initialized to value\nfunction nbv(i) {\n var r = nbi();\n r.fromInt(i);\n return r;\n}\n// (protected) set from string and radix\nfunction fromString(s, b) {\n var k;\n if (b == 16)\n k = 4;\n else if (b == 8)\n k = 3;\n else if (b == 2)\n k = 1;\n else if (b == 32)\n k = 5;\n else if (b == 4)\n k = 2;\n else\n throw new Error(\"Only radix 2, 4, 8, 16, 32 are supported\");\n this.t = 0;\n this.s = 0;\n var i = s.length, mi = false, sh = 0;\n while (--i >= 0) {\n var x = intAt(s, i);\n if (x < 0) {\n if (s.charAt(i) == \"-\")\n mi = true;\n continue;\n }\n mi = false;\n if (sh == 0)\n this[this.t++] = x;\n else if (sh + k > this.DB) {\n this[this.t - 1] |= (x & ((1 << (this.DB - sh)) - 1)) << sh;\n this[this.t++] = x >> (this.DB - sh);\n }\n else\n this[this.t - 1] |= x << sh;\n sh += k;\n if (sh >= this.DB)\n sh -= this.DB;\n }\n this.clamp();\n if (mi)\n BigInteger.ZERO.subTo(this, this);\n}\n// (protected) clamp off excess high words\nfunction clamp() {\n var c = this.s & this.DM;\n while (this.t > 0 && this[this.t - 1] == c)\n --this.t;\n}\n// (public) return string representation in given radix\nfunction bnToString(b) {\n if (this.s < 0)\n return \"-\" + this.negate().toString(b);\n var k;\n if (b == 16)\n k = 4;\n else if (b == 8)\n k = 3;\n else if (b == 2)\n k = 1;\n else if (b == 32)\n k = 5;\n else if (b == 4)\n k = 2;\n else\n throw new Error(\"Only radix 2, 4, 8, 16, 32 are supported\");\n var km = (1 << k) - 1;\n var d, m = false, r = \"\", i = this.t;\n var p = this.DB - ((i * this.DB) % k);\n if (i-- > 0) {\n if (p < this.DB && (d = this[i] >> p) > 0) {\n m = true;\n r = int2char(d);\n }\n while (i >= 0) {\n if (p < k) {\n d = (this[i] & ((1 << p) - 1)) << (k - p);\n d |= this[--i] >> (p += this.DB - k);\n }\n else {\n d = (this[i] >> (p -= k)) & km;\n if (p <= 0) {\n p += this.DB;\n --i;\n }\n }\n if (d > 0)\n m = true;\n if (m)\n r += int2char(d);\n }\n }\n return m ? r : \"0\";\n}\n// (public) -this\nfunction bnNegate() {\n var r = nbi();\n BigInteger.ZERO.subTo(this, r);\n return r;\n}\n// (public) |this|\nfunction bnAbs() {\n return this.s < 0 ? this.negate() : this;\n}\n// (public) return + if this > a, - if this < a, 0 if equal\nfunction bnCompareTo(a) {\n var r = this.s - a.s;\n if (r != 0)\n return r;\n var i = this.t;\n r = i - a.t;\n if (r != 0)\n return this.s < 0 ? -r : r;\n while (--i >= 0)\n if ((r = this[i] - a[i]) != 0)\n return r;\n return 0;\n}\n// returns bit length of the integer x\nfunction nbits(x) {\n var r = 1, t;\n if ((t = x >>> 16) != 0) {\n x = t;\n r += 16;\n }\n if ((t = x >> 8) != 0) {\n x = t;\n r += 8;\n }\n if ((t = x >> 4) != 0) {\n x = t;\n r += 4;\n }\n if ((t = x >> 2) != 0) {\n x = t;\n r += 2;\n }\n if ((t = x >> 1) != 0) {\n x = t;\n r += 1;\n }\n return r;\n}\n// (public) return the number of bits in \"this\"\nfunction bnBitLength() {\n if (this.t <= 0)\n return 0;\n return this.DB * (this.t - 1) + nbits(this[this.t - 1] ^ (this.s & this.DM));\n}\n// (protected) r = this << n*DB\nfunction dlShiftTo(n, r) {\n var i;\n for (i = this.t - 1; i >= 0; --i)\n r[i + n] = this[i];\n for (i = n - 1; i >= 0; --i)\n r[i] = 0;\n r.t = this.t + n;\n r.s = this.s;\n}\n// (protected) r = this >> n*DB\nfunction drShiftTo(n, r) {\n for (var i = n; i < this.t; ++i)\n r[i - n] = this[i];\n r.t = Math.max(this.t - n, 0);\n r.s = this.s;\n}\n// (protected) r = this << n\nfunction lShiftTo(n, r) {\n var bs = n % this.DB;\n var cbs = this.DB - bs;\n var bm = (1 << cbs) - 1;\n var ds = Math.floor(n / this.DB);\n var c = (this.s << bs) & this.DM, i;\n for (i = this.t - 1; i >= 0; --i) {\n r[i + ds + 1] = (this[i] >> cbs) | c;\n c = (this[i] & bm) << bs;\n }\n for (i = ds - 1; i >= 0; --i)\n r[i] = 0;\n r[ds] = c;\n r.t = this.t + ds + 1;\n r.s = this.s;\n r.clamp();\n}\n// (protected) r = this >> n\nfunction rShiftTo(n, r) {\n r.s = this.s;\n var ds = Math.floor(n / this.DB);\n if (ds >= this.t) {\n r.t = 0;\n return;\n }\n var bs = n % this.DB;\n var cbs = this.DB - bs;\n var bm = (1 << bs) - 1;\n r[0] = this[ds] >> bs;\n for (var i = ds + 1; i < this.t; ++i) {\n r[i - ds - 1] |= (this[i] & bm) << cbs;\n r[i - ds] = this[i] >> bs;\n }\n if (bs > 0)\n r[this.t - ds - 1] |= (this.s & bm) << cbs;\n r.t = this.t - ds;\n r.clamp();\n}\n// (protected) r = this - a\nfunction subTo(a, r) {\n var i = 0, c = 0;\n var m = Math.min(a.t, this.t);\n while (i < m) {\n c += this[i] - a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n if (a.t < this.t) {\n c -= a.s;\n while (i < this.t) {\n c += this[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c += this.s;\n }\n else {\n c += this.s;\n while (i < a.t) {\n c -= a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c -= a.s;\n }\n r.s = c < 0 ? -1 : 0;\n if (c < -1)\n r[i++] = this.DV + c;\n else if (c > 0)\n r[i++] = c;\n r.t = i;\n r.clamp();\n}\n// (protected) r = this * a, r != this,a (HAC 14.12)\n// \"this\" should be the larger one if appropriate.\nfunction multiplyTo(a, r) {\n var x = this.abs(), y = a.abs();\n var i = x.t;\n r.t = i + y.t;\n while (--i >= 0)\n r[i] = 0;\n for (i = 0; i < y.t; ++i)\n r[i + x.t] = x.am(0, y[i], r, i, 0, x.t);\n r.s = 0;\n r.clamp();\n if (this.s != a.s)\n BigInteger.ZERO.subTo(r, r);\n}\n// (protected) r = this^2, r != this (HAC 14.16)\nfunction squareTo(r) {\n var x = this.abs();\n var i = (r.t = 2 * x.t);\n while (--i >= 0)\n r[i] = 0;\n for (i = 0; i < x.t - 1; ++i) {\n var c = x.am(i, x[i], r, 2 * i, 0, 1);\n if ((r[i + x.t] += x.am(i + 1, 2 * x[i], r, 2 * i + 1, c, x.t - i - 1)) >=\n x.DV) {\n r[i + x.t] -= x.DV;\n r[i + x.t + 1] = 1;\n }\n }\n if (r.t > 0)\n r[r.t - 1] += x.am(i, x[i], r, 2 * i, 0, 1);\n r.s = 0;\n r.clamp();\n}\n// (protected) divide this by m, quotient and remainder to q, r (HAC 14.20)\n// r != q, this != m. q or r may be null.\nfunction divRemTo(m, q, r) {\n var pm = m.abs();\n if (pm.t <= 0)\n return;\n var pt = this.abs();\n if (pt.t < pm.t) {\n if (q != null)\n q.fromInt(0);\n if (r != null)\n this.copyTo(r);\n return;\n }\n if (r == null)\n r = nbi();\n var y = nbi(), ts = this.s, ms = m.s;\n var nsh = this.DB - nbits(pm[pm.t - 1]);\n // normalize modulus\n if (nsh > 0) {\n pm.lShiftTo(nsh, y);\n pt.lShiftTo(nsh, r);\n }\n else {\n pm.copyTo(y);\n pt.copyTo(r);\n }\n var ys = y.t;\n var y0 = y[ys - 1];\n if (y0 == 0)\n return;\n var yt = y0 * (1 << this.F1) + (ys > 1 ? y[ys - 2] >> this.F2 : 0);\n var d1 = this.FV / yt, d2 = (1 << this.F1) / yt, e = 1 << this.F2;\n var i = r.t, j = i - ys;\n var t = q == null ? nbi() : q;\n y.dlShiftTo(j, t);\n if (r.compareTo(t) >= 0) {\n r[r.t++] = 1;\n r.subTo(t, r);\n }\n BigInteger.ONE.dlShiftTo(ys, t);\n t.subTo(y, y);\n // \"negative\" y so we can replace sub with am later\n while (y.t < ys)\n y[y.t++] = 0;\n while (--j >= 0) {\n // Estimate quotient digit\n var qd = r[--i] == y0 ? this.DM : Math.floor(r[i] * d1 + (r[i - 1] + e) * d2);\n if ((r[i] += y.am(0, qd, r, j, 0, ys)) < qd) {\n // Try it out\n y.dlShiftTo(j, t);\n r.subTo(t, r);\n while (r[i] < --qd)\n r.subTo(t, r);\n }\n }\n if (q != null) {\n r.drShiftTo(ys, q);\n if (ts != ms)\n BigInteger.ZERO.subTo(q, q);\n }\n r.t = ys;\n r.clamp();\n if (nsh > 0)\n r.rShiftTo(nsh, r);\n // Denormalize remainder\n if (ts < 0)\n BigInteger.ZERO.subTo(r, r);\n}\n// (public) this mod a\nfunction bnMod(a) {\n var r = nbi();\n this.abs().divRemTo(a, null, r);\n if (this.s < 0 && r.compareTo(BigInteger.ZERO) > 0)\n a.subTo(r, r);\n return r;\n}\n// (protected) return \"-1/this % 2^DB\"; useful for Mont. reduction\n// justification:\n// xy == 1 (mod m)\n// xy = 1+km\n// xy(2-xy) = (1+km)(1-km)\n// x[y(2-xy)] = 1-k^2m^2\n// x[y(2-xy)] == 1 (mod m^2)\n// if y is 1/x mod m, then y(2-xy) is 1/x mod m^2\n// should reduce x and y(2-xy) by m^2 at each step to keep size bounded.\n// JS multiply \"overflows\" differently from C/C++, so care is needed here.\nfunction invDigit() {\n if (this.t < 1)\n return 0;\n var x = this[0];\n if ((x & 1) == 0)\n return 0;\n var y = x & 3;\n // y == 1/x mod 2^2\n y = (y * (2 - (x & 0xf) * y)) & 0xf;\n // y == 1/x mod 2^4\n y = (y * (2 - (x & 0xff) * y)) & 0xff;\n // y == 1/x mod 2^8\n y = (y * (2 - (((x & 0xffff) * y) & 0xffff))) & 0xffff;\n // y == 1/x mod 2^16\n // last step - calculate inverse mod DV directly;\n // assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints\n y = (y * (2 - ((x * y) % this.DV))) % this.DV;\n // y == 1/x mod 2^dbits\n // we really want the negative inverse, and -DV < y < DV\n return y > 0 ? this.DV - y : -y;\n}\nfunction bnEquals(a) {\n return this.compareTo(a) == 0;\n}\n// (protected) r = this + a\nfunction addTo(a, r) {\n var i = 0, c = 0;\n var m = Math.min(a.t, this.t);\n while (i < m) {\n c += this[i] + a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n if (a.t < this.t) {\n c += a.s;\n while (i < this.t) {\n c += this[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c += this.s;\n }\n else {\n c += this.s;\n while (i < a.t) {\n c += a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c += a.s;\n }\n r.s = c < 0 ? -1 : 0;\n if (c > 0)\n r[i++] = c;\n else if (c < -1)\n r[i++] = this.DV + c;\n r.t = i;\n r.clamp();\n}\n// (public) this + a\nfunction bnAdd(a) {\n var r = nbi();\n this.addTo(a, r);\n return r;\n}\n// (public) this - a\nfunction bnSubtract(a) {\n var r = nbi();\n this.subTo(a, r);\n return r;\n}\n// (public) this * a\nfunction bnMultiply(a) {\n var r = nbi();\n this.multiplyTo(a, r);\n return r;\n}\n// (public) this / a\nfunction bnDivide(a) {\n var r = nbi();\n this.divRemTo(a, r, null);\n return r;\n}\n// Montgomery reduction\nfunction Montgomery(m) {\n this.m = m;\n this.mp = m.invDigit();\n this.mpl = this.mp & 0x7fff;\n this.mph = this.mp >> 15;\n this.um = (1 << (m.DB - 15)) - 1;\n this.mt2 = 2 * m.t;\n}\n// xR mod m\nfunction montConvert(x) {\n var r = nbi();\n x.abs().dlShiftTo(this.m.t, r);\n r.divRemTo(this.m, null, r);\n if (x.s < 0 && r.compareTo(BigInteger.ZERO) > 0)\n this.m.subTo(r, r);\n return r;\n}\n// x/R mod m\nfunction montRevert(x) {\n var r = nbi();\n x.copyTo(r);\n this.reduce(r);\n return r;\n}\n// x = x/R mod m (HAC 14.32)\nfunction montReduce(x) {\n while (x.t <= this.mt2)\n // pad x so am has enough room later\n x[x.t++] = 0;\n for (var i = 0; i < this.m.t; ++i) {\n // faster way of calculating u0 = x[i]*mp mod DV\n var j = x[i] & 0x7fff;\n var u0 = (j * this.mpl +\n (((j * this.mph + (x[i] >> 15) * this.mpl) & this.um) << 15)) &\n x.DM;\n // use am to combine the multiply-shift-add into one call\n j = i + this.m.t;\n x[j] += this.m.am(0, u0, x, i, 0, this.m.t);\n // propagate carry\n while (x[j] >= x.DV) {\n x[j] -= x.DV;\n x[++j]++;\n }\n }\n x.clamp();\n x.drShiftTo(this.m.t, x);\n if (x.compareTo(this.m) >= 0)\n x.subTo(this.m, x);\n}\n// r = \"x^2/R mod m\"; x != r\nfunction montSqrTo(x, r) {\n x.squareTo(r);\n this.reduce(r);\n}\n// r = \"xy/R mod m\"; x,y != r\nfunction montMulTo(x, y, r) {\n x.multiplyTo(y, r);\n this.reduce(r);\n}\nMontgomery.prototype.convert = montConvert;\nMontgomery.prototype.revert = montRevert;\nMontgomery.prototype.reduce = montReduce;\nMontgomery.prototype.mulTo = montMulTo;\nMontgomery.prototype.sqrTo = montSqrTo;\n// (public) this^e % m (HAC 14.85)\nfunction bnModPow(e, m, callback) {\n var i = e.bitLength(), r = nbv(1);\n var z = new Montgomery(m);\n var k;\n if (i <= 0)\n return r;\n else if (i < 18)\n k = 1;\n else if (i < 48)\n k = 3;\n else if (i < 144)\n k = 4;\n else if (i < 768)\n k = 5;\n else\n k = 6;\n // precomputation\n var g = [], k1 = k - 1, km = (1 << k) - 1;\n var n = 3;\n g[1] = z.convert(this);\n if (k > 1) {\n var g2 = nbi();\n z.sqrTo(g[1], g2);\n while (n <= km) {\n g[n] = nbi();\n z.mulTo(g2, g[n - 2], g[n]);\n n += 2;\n }\n }\n var j = e.t - 1, w, is1 = true, r2 = nbi(), t;\n i = nbits(e[j]) - 1;\n while (j >= 0) {\n if (i >= k1)\n w = (e[j] >> (i - k1)) & km;\n else {\n w = (e[j] & ((1 << (i + 1)) - 1)) << (k1 - i);\n if (j > 0)\n w |= e[j - 1] >> (this.DB + i - k1);\n }\n n = k;\n while ((w & 1) == 0) {\n w >>= 1;\n --n;\n }\n if ((i -= n) < 0) {\n i += this.DB;\n --j;\n }\n if (is1) {\n // ret == 1, don't bother squaring or multiplying it\n g[w].copyTo(r);\n is1 = false;\n }\n else {\n while (n > 1) {\n z.sqrTo(r, r2);\n z.sqrTo(r2, r);\n n -= 2;\n }\n if (n > 0)\n z.sqrTo(r, r2);\n else {\n t = r;\n r = r2;\n r2 = t;\n }\n z.mulTo(r2, g[w], r);\n }\n while (j >= 0 && (e[j] & (1 << i)) == 0) {\n z.sqrTo(r, r2);\n t = r;\n r = r2;\n r2 = t;\n if (--i < 0) {\n i = this.DB - 1;\n --j;\n }\n }\n }\n var result = z.revert(r);\n if (callback) {\n callback(null, result);\n }\n return result;\n}\n// (public) this^e % m (HAC 14.85)\nfunction bnIsZero() {\n return this.compareTo(BigInteger.ZERO) == 0;\n}\n// protected\nBigInteger.prototype.copyTo = copyTo;\nBigInteger.prototype.fromInt = fromInt;\nBigInteger.prototype.fromString = fromString;\nBigInteger.prototype.clamp = clamp;\nBigInteger.prototype.dlShiftTo = dlShiftTo;\nBigInteger.prototype.drShiftTo = drShiftTo;\nBigInteger.prototype.lShiftTo = lShiftTo;\nBigInteger.prototype.rShiftTo = rShiftTo;\nBigInteger.prototype.subTo = subTo;\nBigInteger.prototype.multiplyTo = multiplyTo;\nBigInteger.prototype.squareTo = squareTo;\nBigInteger.prototype.divRemTo = divRemTo;\nBigInteger.prototype.invDigit = invDigit;\nBigInteger.prototype.addTo = addTo;\n// public\nBigInteger.prototype.toString = bnToString;\nBigInteger.prototype.abs = bnAbs;\nBigInteger.prototype.negate = bnNegate;\nBigInteger.prototype.compareTo = bnCompareTo;\nBigInteger.prototype.bitLength = bnBitLength;\nBigInteger.prototype.mod = bnMod;\nBigInteger.prototype.equals = bnEquals;\nBigInteger.prototype.add = bnAdd;\nBigInteger.prototype.subtract = bnSubtract;\nBigInteger.prototype.multiply = bnMultiply;\nBigInteger.prototype.divide = bnDivide;\nBigInteger.prototype.modPow = bnModPow;\nBigInteger.prototype.isZero = bnIsZero;\n// \"constants\"\nBigInteger.ZERO = nbv(0);\nBigInteger.ONE = nbv(1);\nvar bigInt = function (str, radix) {\n return new BigInteger(str, radix);\n};\nexport default bigInt;\n", "import bigInt from \"./bigInteger\";\nimport sha256 from \"crypto-js/sha256\";\nimport hmacSha256 from \"crypto-js/hmac-sha256\";\nimport encBase64 from \"crypto-js/enc-base64\";\nimport encHex from \"crypto-js/enc-hex\";\nimport encUtf8 from \"crypto-js/enc-utf8\";\nvar polyFillCrypto = function () {\n // Native crypto from window (Browser)\n if (typeof window !== \"undefined\" && window.crypto) {\n return window.crypto;\n }\n // Native (experimental IE 11) crypto from window (Browser)\n // @ts-expect-error window in IE11 contains msCrypto\n if (typeof window !== \"undefined\" && window.msCrypto) {\n // @ts-expect-error window in IE11 contains msCrypto\n return window.msCrypto;\n }\n // @ts-expect-error require is present in node env\n if (typeof require === \"function\") {\n // @ts-expect-error require is present in node env\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n return require(\"crypto\").webcrypto;\n }\n};\nvar crypto = polyFillCrypto();\nexport var padHex = function (bigInteger) {\n var hashStr = bigInteger.toString(16);\n if (hashStr.length % 2 === 1) {\n hashStr = \"0\".concat(hashStr);\n }\n else if (\"89ABCDEFabcdef\".indexOf(hashStr[0]) !== -1) {\n hashStr = \"00\".concat(hashStr);\n }\n return hashStr;\n};\nexport var hash = function (str) {\n var hashHex = sha256(str).toString();\n return new Array(64 - hashHex.length).join(\"0\") + hashHex;\n};\nexport var hexHash = function (hexStr) {\n return hash(encHex.parse(hexStr));\n};\nvar getRandomIntFromNativeCrypto = function () {\n if (crypto) {\n // Use getRandomValues method (Browser)\n if (typeof crypto.getRandomValues === \"function\") {\n try {\n return crypto.getRandomValues(new Uint32Array(1))[0];\n }\n catch (err) {\n // dont do anything here\n }\n }\n // Use randomBytes method (NodeJS)\n //@ts-expect-error nativeCrypto in NodeJs has randomBytes\n if (typeof crypto.randomBytes === \"function\") {\n try {\n //@ts-expect-error nativeCrypto in NodeJs has randomBytes\n return crypto.randomBytes(4).readInt32LE();\n }\n catch (err) {\n // dont do anything here\n }\n }\n }\n throw new Error(\"Native crypto module could not be used to get secure random number.\");\n};\nexport var randomValue = function (nBytes) {\n var words = [];\n for (var i = 0; i < nBytes; i += 4) {\n words.push(getRandomIntFromNativeCrypto());\n }\n // Convert\n var hexChars = [];\n for (var i = 0; i < nBytes; i++) {\n var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n hexChars.push((bite >>> 4).toString(16));\n hexChars.push((bite & 0x0f).toString(16));\n }\n var hexRandom = hexChars.join(\"\");\n var randomInt = bigInt(hexRandom, 16);\n return randomInt;\n};\nexport var computehkdf = function (ikm, salt) {\n var infoBits = encUtf8\n .parse(\"Caldera Derived Key\")\n .concat(encUtf8.parse(String.fromCharCode(1)));\n var prk = hmacSha256(ikm, salt);\n var hmac = hmacSha256(infoBits, prk);\n return encHex.parse(hmac.toString().slice(0, 32));\n};\nexport var computeSignature = function (message, key) {\n return encBase64.stringify(hmacSha256(message, key));\n};\n", "import bigInt from \"./bigInteger\";\nimport { computehkdf, hash, hexHash, padHex, randomValue, computeSignature } from \"./cryptoUtils\";\nimport encBase64 from \"crypto-js/enc-base64\";\nimport encHex from \"crypto-js/enc-hex\";\nimport encUtf8 from \"crypto-js/enc-utf8\";\nvar initN = \"FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD1\" +\n \"29024E088A67CC74020BBEA63B139B22514A08798E3404DD\" +\n \"EF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245\" +\n \"E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7ED\" +\n \"EE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3D\" +\n \"C2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F\" +\n \"83655D23DCA3AD961C62F356208552BB9ED529077096966D\" +\n \"670C354E4ABC9804F1746C08CA18217C32905E462E36CE3B\" +\n \"E39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9\" +\n \"DE2BCBF6955817183995497CEA956AE515D2261898FA0510\" +\n \"15728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64\" +\n \"ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7\" +\n \"ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6B\" +\n \"F12FFA06D98A0864D87602733EC86A64521F2B18177B200C\" +\n \"BBE117577A615D6C770988C0BAD946E208E24FA074E5AB31\" +\n \"43DB5BFCE0FD108E4B82D120A93AD2CAFFFFFFFFFFFFFFFF\";\nvar Srp = /** @class */ (function () {\n function Srp(poolId) {\n this.g = bigInt(\"2\", 16);\n this.N = bigInt(initN, 16);\n this.k = bigInt(hexHash(padHex(this.N) + padHex(this.g)), 16);\n this.poolName = poolId.split(\"_\")[1];\n }\n Srp.prototype.getA = function () {\n this.a = randomValue(128);\n this.A = this.g.modPow(this.a, this.N);\n if (this.A.mod(this.N).isZero()) {\n new Error(\"Illegal paramater. A mod N cannot be 0.\");\n }\n return this.A.toString(16);\n };\n Srp.prototype.getSignature = function (username, strB, strSalt, secretBlock, password) {\n var B = bigInt(strB, 16);\n if (B.mod(this.N).isZero()) {\n new Error(\"Illegal paramater. B mod N cannot be 0.\");\n }\n var salt = bigInt(strSalt, 16);\n var U = bigInt(hexHash(padHex(this.A) + padHex(B)), 16);\n if (U.isZero()) {\n throw new Error(\"U cannot be zero.\");\n }\n var usernamePasswordHash = hash(encUtf8.parse(this.poolName + username + \":\" + password));\n var x = bigInt(hexHash(padHex(salt) + usernamePasswordHash), 16);\n var S = B.subtract(this.k.multiply(this.g.modPow(x, this.N))).modPow(this.a.add(U.multiply(x)), this.N);\n var paddedS = padHex(S);\n var hkdf = computehkdf(encHex.parse(paddedS), encHex.parse(padHex(U)));\n var timestamp = getNowString();\n var message = encUtf8\n .parse(this.poolName)\n .concat(encUtf8.parse(username))\n .concat(encBase64.parse(secretBlock))\n .concat(encUtf8.parse(timestamp));\n var signature = computeSignature(message, hkdf);\n return { timestamp: timestamp, signature: signature };\n };\n return Srp;\n}());\nexport default Srp;\nvar getNowString = function () {\n var now = new Date();\n var monthNames = [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\"\n ];\n var weekNames = [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"];\n var weekDay = weekNames[now.getUTCDay()];\n var month = monthNames[now.getUTCMonth()];\n var day = now.getUTCDate();\n var hours = now.getUTCHours();\n if (hours < 10) {\n hours = \"0\".concat(hours);\n }\n var minutes = now.getUTCMinutes();\n if (minutes < 10) {\n minutes = \"0\".concat(minutes);\n }\n var seconds = now.getUTCSeconds();\n if (seconds < 10) {\n seconds = \"0\".concat(seconds);\n }\n var year = now.getUTCFullYear();\n // ddd MMM D HH:mm:ss UTC YYYY\n var dateNow = \"\".concat(weekDay, \" \").concat(month, \" \").concat(day, \" \").concat(hours, \":\").concat(minutes, \":\").concat(seconds, \" UTC \").concat(year);\n return dateNow;\n};\n", "export class WoroApiError extends Error {\n constructor(\n public readonly status: number,\n message: string,\n public readonly code?: string,\n ) {\n super(message);\n this.name = 'WoroApiError';\n }\n}\n\nexport class WoroAuthError extends Error {\n constructor(message: string, public readonly code?: string) {\n super(message);\n this.name = 'WoroAuthError';\n }\n}\n\nexport class WoroPayloadError extends Error {\n constructor(message: string, public readonly rawPayload?: Uint8Array) {\n super(message);\n this.name = 'WoroPayloadError';\n }\n}\n", "import { WoroPayloadError } from './errors.js';\n\nexport const WORO_MAX_PAYLOAD_BYTES = 1_048_576;\nexport const WORO_ENVELOPE_CONTENT_TYPE = 'application/vnd.woro.sdk-payload';\nconst MAGIC = new Uint8Array([0x57, 0x4f, 0x52, 0x4f]); // WORO\nconst VERSION = 1;\nconst FLAG_COMPRESSED = 1;\nconst FLAG_ENCRYPTED = 2;\nconst NONCE_BYTES = 12;\nconst TAG_BYTES = 16;\n\nexport type WoroInput = string | Blob | ArrayBuffer | ArrayBufferView;\n\nexport interface PayloadOptions {\n contentType?: string;\n compress?: boolean;\n encryptionKey?: Uint8Array;\n}\n\nexport interface EncodedPayload {\n bytes: Uint8Array;\n contentType: string;\n}\n\nexport interface DecodedPayload {\n bytes: Uint8Array;\n contentType: string;\n}\n\nexport async function toBytes(input: WoroInput): Promise<Uint8Array> {\n if (typeof input === 'string') return new TextEncoder().encode(input);\n if (input instanceof Blob) return new Uint8Array(await input.arrayBuffer());\n if (input instanceof ArrayBuffer) return new Uint8Array(input.slice(0));\n if (ArrayBuffer.isView(input)) {\n return new Uint8Array(input.buffer.slice(input.byteOffset, input.byteOffset + input.byteLength));\n }\n throw new TypeError('Payload must be a string, Blob, ArrayBuffer, or typed array.');\n}\n\nexport async function encodePayload(input: WoroInput, options: PayloadOptions = {}): Promise<EncodedPayload> {\n const original = await toBytes(input);\n if (original.byteLength > WORO_MAX_PAYLOAD_BYTES) {\n throw new WoroPayloadError(`Original payload exceeds WORO's ${WORO_MAX_PAYLOAD_BYTES}-byte limit.`);\n }\n const contentType = options.contentType ?? (input instanceof Blob && input.type ? input.type : typeof input === 'string' ? 'text/plain; charset=utf-8' : 'application/octet-stream');\n const encryptionKey = options.encryptionKey;\n if (encryptionKey && encryptionKey.byteLength !== 32) {\n throw new WoroPayloadError('AES-256-GCM requires a 32-byte encryption key.');\n }\n\n let data = original;\n let compressed = false;\n if (options.compress !== false && original.byteLength > 0) {\n const candidate = await gzip(original);\n const envelopeBytes = 7 + 2 + new TextEncoder().encode(contentType).byteLength;\n const savesBytes = encryptionKey\n ? candidate.byteLength < original.byteLength\n : candidate.byteLength + envelopeBytes < original.byteLength;\n if (savesBytes) {\n data = candidate;\n compressed = true;\n }\n }\n\n if (!compressed && !encryptionKey && contentType.split(';', 1)[0]?.trim().toLowerCase() !== WORO_ENVELOPE_CONTENT_TYPE) {\n return { bytes: original, contentType };\n }\n const mediaType = new TextEncoder().encode(contentType);\n if (mediaType.byteLength > 0xffff) throw new WoroPayloadError('Content-Type is too long to encode.');\n const cleartext = new Uint8Array(2 + mediaType.byteLength + data.byteLength);\n new DataView(cleartext.buffer).setUint16(0, mediaType.byteLength, false);\n cleartext.set(mediaType, 2);\n cleartext.set(data, 2 + mediaType.byteLength);\n\n const flags = (compressed ? FLAG_COMPRESSED : 0) | (encryptionKey ? FLAG_ENCRYPTED : 0);\n const nonce = encryptionKey ? crypto.getRandomValues(new Uint8Array(NONCE_BYTES)) : new Uint8Array(0);\n const header = new Uint8Array(7 + nonce.byteLength);\n header.set(MAGIC, 0);\n header[4] = VERSION;\n header[5] = flags;\n header[6] = nonce.byteLength;\n header.set(nonce, 7);\n\n const body = encryptionKey\n ? new Uint8Array(await crypto.subtle.encrypt(\n { name: 'AES-GCM', iv: asArrayBuffer(nonce), additionalData: asArrayBuffer(header), tagLength: TAG_BYTES * 8 },\n await importAesKey(encryptionKey, ['encrypt']),\n asArrayBuffer(cleartext),\n ))\n : cleartext;\n const bytes = new Uint8Array(header.byteLength + body.byteLength);\n bytes.set(header, 0);\n bytes.set(body, header.byteLength);\n return { bytes, contentType: WORO_ENVELOPE_CONTENT_TYPE };\n}\n\nexport async function decodePayload(bytes: Uint8Array, responseContentType: string, encryptionKey?: Uint8Array): Promise<DecodedPayload> {\n if (responseContentType.split(';', 1)[0]?.trim().toLowerCase() !== WORO_ENVELOPE_CONTENT_TYPE) {\n return { bytes, contentType: responseContentType || 'application/octet-stream' };\n }\n if (bytes.byteLength < 9 || !MAGIC.every((byte, index) => bytes[index] === byte)) {\n throw new WoroPayloadError('The WORO package payload envelope is invalid.');\n }\n const version = bytes[4]!;\n const flags = bytes[5]!;\n const nonceLength = bytes[6]!;\n if (version !== VERSION || (flags & ~(FLAG_COMPRESSED | FLAG_ENCRYPTED)) !== 0) {\n throw new WoroPayloadError('The WORO package payload uses an unsupported envelope version or option.');\n }\n const encrypted = (flags & FLAG_ENCRYPTED) !== 0;\n const compressed = (flags & FLAG_COMPRESSED) !== 0;\n if ((encrypted && nonceLength !== NONCE_BYTES) || (!encrypted && nonceLength !== 0)) {\n throw new WoroPayloadError('The WORO package payload envelope has an invalid nonce.');\n }\n const headerLength = 7 + nonceLength;\n if (bytes.byteLength < headerLength + (encrypted ? TAG_BYTES : 2)) {\n throw new WoroPayloadError('The WORO package payload envelope is truncated.');\n }\n let cleartext = bytes.subarray(headerLength);\n if (encrypted) {\n if (!encryptionKey) throw new WoroPayloadError('This payload is encrypted; provide its 32-byte encryption key.', bytes.slice());\n if (encryptionKey.byteLength !== 32) throw new WoroPayloadError('AES-256-GCM requires a 32-byte encryption key.');\n try {\n cleartext = new Uint8Array(await crypto.subtle.decrypt(\n { name: 'AES-GCM', iv: asArrayBuffer(bytes.subarray(7, headerLength)), additionalData: asArrayBuffer(bytes.subarray(0, headerLength)), tagLength: TAG_BYTES * 8 },\n await importAesKey(encryptionKey, ['decrypt']),\n asArrayBuffer(cleartext),\n ));\n } catch {\n throw new WoroPayloadError('Payload decryption failed; the key is wrong or the data was modified.', bytes.slice());\n }\n } else if (encryptionKey) {\n // Supplying a key for a non-encrypted package payload is almost always a caller mistake.\n }\n\n if (cleartext.byteLength < 2) throw new WoroPayloadError('The WORO package payload metadata is truncated.');\n const mediaTypeLength = new DataView(cleartext.buffer, cleartext.byteOffset, cleartext.byteLength).getUint16(0, false);\n if (cleartext.byteLength < 2 + mediaTypeLength) throw new WoroPayloadError('The WORO package payload media type is truncated.');\n let contentType: string;\n try {\n contentType = new TextDecoder('utf-8', { fatal: true }).decode(cleartext.subarray(2, 2 + mediaTypeLength));\n } catch {\n throw new WoroPayloadError('The WORO package payload media type is invalid.');\n }\n let payload = cleartext.subarray(2 + mediaTypeLength);\n if (compressed) {\n try {\n payload = await gunzip(payload);\n } catch (error) {\n if (error instanceof WoroPayloadError) throw new WoroPayloadError(error.message, bytes.slice());\n throw error;\n }\n if (payload.byteLength > WORO_MAX_PAYLOAD_BYTES) {\n throw new WoroPayloadError(`Decoded payload exceeds WORO's ${WORO_MAX_PAYLOAD_BYTES}-byte limit.`, bytes.slice());\n }\n }\n return { bytes: payload, contentType: contentType || 'application/octet-stream' };\n}\n\nasync function importAesKey(key: Uint8Array, usages: KeyUsage[]): Promise<CryptoKey> {\n return crypto.subtle.importKey('raw', asArrayBuffer(key), { name: 'AES-GCM', length: 256 }, false, usages);\n}\n\nasync function gzip(bytes: Uint8Array): Promise<Uint8Array> {\n if (typeof CompressionStream === 'undefined') throw new WoroPayloadError('This runtime does not provide gzip compression streams.');\n const stream = new Blob([asArrayBuffer(bytes)]).stream().pipeThrough(new CompressionStream('gzip'));\n return await collectStream(stream, WORO_MAX_PAYLOAD_BYTES + 64 * 1024);\n}\n\nasync function gunzip(bytes: Uint8Array): Promise<Uint8Array> {\n if (typeof DecompressionStream === 'undefined') throw new WoroPayloadError('This runtime does not provide gzip decompression streams.');\n try {\n const stream = new Blob([asArrayBuffer(bytes)]).stream().pipeThrough(new DecompressionStream('gzip'));\n return await collectStream(stream, WORO_MAX_PAYLOAD_BYTES);\n } catch (error) {\n if (error instanceof WoroPayloadError) throw error;\n throw new WoroPayloadError('The compressed WORO package payload is invalid.');\n }\n}\n\nasync function collectStream(stream: ReadableStream<Uint8Array>, maxBytes: number): Promise<Uint8Array> {\n const reader = stream.getReader();\n const chunks: Uint8Array[] = [];\n let total = 0;\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n total += value.byteLength;\n if (total > maxBytes) {\n await reader.cancel();\n throw new WoroPayloadError(`Decoded payload exceeds WORO's ${maxBytes}-byte limit.`);\n }\n chunks.push(value);\n }\n } finally {\n reader.releaseLock();\n }\n const output = new Uint8Array(total);\n let offset = 0;\n for (const chunk of chunks) {\n output.set(chunk, offset);\n offset += chunk.byteLength;\n }\n return output;\n}\n\nfunction asArrayBuffer(bytes: Uint8Array): ArrayBuffer {\n return bytes.buffer.slice(bytes.byteOffset, bytes.byteOffset + bytes.byteLength) as ArrayBuffer;\n}\n", "import Srp from 'aws-cognito-srp-client';\nimport { WoroApiError, WoroAuthError } from './errors.js';\nimport {\n decodePayload,\n encodePayload,\n type PayloadOptions,\n type WoroInput,\n WORO_MAX_PAYLOAD_BYTES,\n} from './payload.js';\n\nexport const WORO_PRODUCTION_URL = 'https://woro.veilgroup.au';\nexport const WORO_PRODUCTION_COGNITO: CognitoConfig = {\n region: 'ap-southeast-2',\n userPoolId: 'ap-southeast-2_Mk0DfTieu',\n appClientId: '3ctmf4jsgkeft10bj0uthu4jv1',\n};\n\nexport interface CognitoConfig {\n region: string;\n userPoolId: string;\n appClientId: string;\n}\n\nexport interface WoroClientOptions {\n baseUrl?: string;\n writeToken?: string;\n idToken?: string;\n cognito?: CognitoConfig;\n fetch?: typeof fetch;\n}\n\nexport interface WriteOptions extends PayloadOptions {\n writeToken?: string;\n}\n\nexport interface ReadOptions {\n encryptionKey?: Uint8Array;\n}\n\nexport interface CreatedSecret {\n readToken: string;\n expiresAt: string;\n}\n\nexport interface ReadSecret {\n data: Uint8Array;\n contentType: string;\n}\n\nexport interface SecretStatus {\n state: string | null;\n createdAt: string | null;\n expiresAt: string | null;\n uploadedAt: string | null;\n redeemedAt: string | null;\n deletedAt: string | null;\n}\n\nexport interface AccountOverview {\n id: string;\n email?: string;\n status?: string;\n createdAt?: string;\n credits: number;\n [key: string]: unknown;\n}\n\nexport interface AccountBalance {\n credits: number;\n [key: string]: unknown;\n}\n\nexport interface WriteTokenRecord {\n id: string;\n label?: string;\n createdAt?: string;\n active?: boolean;\n [key: string]: unknown;\n}\n\nexport interface CreatedWriteToken {\n id: string;\n token: string;\n label?: string;\n createdAt?: string;\n [key: string]: unknown;\n}\n\nexport class WoroClient {\n readonly baseUrl: string;\n private readonly fetcher: typeof fetch;\n private readonly cognito: CognitoConfig;\n private writeToken: string | undefined;\n private idToken: string | undefined;\n private idTokenExpiresAt: number | undefined;\n\n constructor(options: WoroClientOptions = {}) {\n this.baseUrl = (options.baseUrl ?? WORO_PRODUCTION_URL).replace(/\\/+$/, '');\n this.writeToken = options.writeToken;\n this.idToken = options.idToken;\n this.cognito = { ...WORO_PRODUCTION_COGNITO, ...options.cognito };\n this.fetcher = options.fetch ?? fetch;\n }\n\n setWriteToken(token: string | undefined): void {\n this.writeToken = token;\n }\n\n setIdToken(token: string | undefined, expiresInSeconds?: number): void {\n this.idToken = token;\n this.idTokenExpiresAt = token && expiresInSeconds !== undefined\n ? Date.now() + expiresInSeconds * 1000\n : undefined;\n }\n\n signOut(): void {\n this.setIdToken(undefined);\n }\n\n async signIn(username: string, password: string): Promise<{ idToken: string; expiresIn: number }> {\n if (!username || !password) throw new WoroAuthError('A Cognito username and password are required.');\n const srp = new Srp(this.cognito.userPoolId);\n const endpoint = `https://cognito-idp.${this.cognito.region}.amazonaws.com/`;\n const initialResponse = await this.fetcher(endpoint, {\n method: 'POST',\n headers: {\n 'content-type': 'application/x-amz-json-1.1',\n 'x-amz-target': 'AWSCognitoIdentityProviderService.InitiateAuth',\n },\n body: JSON.stringify({\n AuthFlow: 'USER_SRP_AUTH',\n ClientId: this.cognito.appClientId,\n AuthParameters: { USERNAME: username, SRP_A: srp.getA() },\n }),\n });\n const initial = await parseCognitoResponse(initialResponse, 'InitiateAuth');\n if (initial.ChallengeName !== 'PASSWORD_VERIFIER') {\n throw new WoroAuthError(`Cognito requires an unsupported challenge (${String(initial.ChallengeName ?? 'unknown')}). This package supports SRP password sign-in without MFA or forced password reset.`);\n }\n const challenge = asRecord(initial.ChallengeParameters);\n const srpUsername = stringField(challenge, 'USER_ID_FOR_SRP') ?? username;\n const srpB = stringField(challenge, 'SRP_B');\n const salt = stringField(challenge, 'SALT');\n const secretBlock = stringField(challenge, 'SECRET_BLOCK');\n const session = stringField(initial, 'Session');\n if (!srpB || !salt || !secretBlock || !session) throw new WoroAuthError('Cognito returned an incomplete SRP challenge.');\n const proof = srp.getSignature(srpUsername, srpB, salt, secretBlock, password);\n const finalResponse = await this.fetcher(endpoint, {\n method: 'POST',\n headers: {\n 'content-type': 'application/x-amz-json-1.1',\n 'x-amz-target': 'AWSCognitoIdentityProviderService.RespondToAuthChallenge',\n },\n body: JSON.stringify({\n ChallengeName: 'PASSWORD_VERIFIER',\n ClientId: this.cognito.appClientId,\n Session: session,\n ChallengeResponses: {\n USERNAME: srpUsername,\n PASSWORD_CLAIM_SECRET_BLOCK: secretBlock,\n PASSWORD_CLAIM_SIGNATURE: proof.signature,\n TIMESTAMP: proof.timestamp,\n },\n }),\n });\n const final = await parseCognitoResponse(finalResponse, 'RespondToAuthChallenge');\n const authResult = asRecord(final.AuthenticationResult);\n const idToken = stringField(authResult, 'IdToken');\n if (!idToken) throw new WoroAuthError('Cognito sign-in did not return an ID token.');\n const expiresIn = numberField(authResult, 'ExpiresIn') ?? 3600;\n this.setIdToken(idToken, expiresIn);\n return { idToken, expiresIn };\n }\n\n async writeSecret(input: WoroInput, options: WriteOptions = {}): Promise<CreatedSecret> {\n const encoded = await encodePayload(input, options);\n if (encoded.bytes.byteLength === 0) throw new TypeError('An empty payload creates an empty slot in WORO. Use createEmptySlot() explicitly.');\n this.assertPayloadSize(encoded.bytes);\n const response = await this.request('/secret', {\n method: 'POST',\n headers: {\n 'content-type': encoded.contentType,\n 'x-api-key': this.getWriteToken(options.writeToken),\n },\n body: new Blob([toArrayBuffer(encoded.bytes)]),\n });\n return await response.json() as CreatedSecret;\n }\n\n async createEmptySlot(writeToken?: string): Promise<CreatedSecret> {\n const response = await this.request('/secret', {\n method: 'POST',\n headers: { 'x-api-key': this.getWriteToken(writeToken) },\n });\n return await response.json() as CreatedSecret;\n }\n\n async fillSecret(readToken: string, input: WoroInput, options: PayloadOptions = {}): Promise<void> {\n const encoded = await encodePayload(input, options);\n if (encoded.bytes.byteLength === 0) throw new TypeError('An empty payload cannot fill a WORO slot.');\n this.assertPayloadSize(encoded.bytes);\n await this.request(`/secret/${encodeURIComponent(readToken)}`, {\n method: 'PUT',\n headers: { 'content-type': encoded.contentType },\n body: new Blob([toArrayBuffer(encoded.bytes)]),\n });\n }\n\n async readSecret(readToken: string, options: ReadOptions = {}): Promise<ReadSecret> {\n const response = await this.request(`/secret/${encodeURIComponent(readToken)}`, { method: 'GET' });\n const bytes = new Uint8Array(await response.arrayBuffer());\n const payload = await decodePayload(bytes, response.headers.get('content-type') ?? 'application/octet-stream', options.encryptionKey);\n return { data: payload.bytes, contentType: payload.contentType };\n }\n\n async deleteSecret(readToken: string): Promise<void> {\n await this.request(`/secret/${encodeURIComponent(readToken)}`, { method: 'DELETE' });\n }\n\n async getSecretStatus(readToken: string): Promise<SecretStatus> {\n const response = await this.request(`/secret/${encodeURIComponent(readToken)}`, {\n method: 'HEAD',\n headers: this.authorizationHeaders(),\n });\n return {\n state: response.headers.get('x-woro-secret-state'),\n createdAt: response.headers.get('x-woro-secret-created-at'),\n expiresAt: response.headers.get('x-woro-secret-expires-at'),\n uploadedAt: response.headers.get('x-woro-secret-uploaded-at'),\n redeemedAt: response.headers.get('x-woro-secret-redeemed-at'),\n deletedAt: response.headers.get('x-woro-secret-deleted-at'),\n };\n }\n\n async getAccount(): Promise<AccountOverview> {\n return await (await this.request('/account', { method: 'GET', headers: this.authorizationHeaders() })).json() as AccountOverview;\n }\n\n async getAccountBalance(): Promise<AccountBalance> {\n return await (await this.request('/account/balance', { method: 'GET', headers: this.authorizationHeaders() })).json() as AccountBalance;\n }\n\n async listWriteTokens(): Promise<WriteTokenRecord[]> {\n const body = await (await this.request('/account/tokens', { method: 'GET', headers: this.authorizationHeaders() })).json();\n if (Array.isArray(body)) return body as WriteTokenRecord[];\n const items = asRecord(body).tokens;\n return Array.isArray(items) ? items as WriteTokenRecord[] : [];\n }\n\n async createWriteToken(label: string): Promise<CreatedWriteToken> {\n const response = await this.request('/account/tokens', {\n method: 'POST',\n headers: { ...this.authorizationHeaders(), 'content-type': 'application/json' },\n body: JSON.stringify({ label }),\n });\n return await response.json() as CreatedWriteToken;\n }\n\n async revokeWriteToken(tokenId: string): Promise<void> {\n await this.request(`/account/tokens/${encodeURIComponent(tokenId)}`, {\n method: 'DELETE',\n headers: this.authorizationHeaders(),\n });\n }\n\n async checkWriteToken(writeToken = this.getWriteToken()): Promise<string | null> {\n const response = await this.request('/account/token', {\n method: 'HEAD',\n headers: { ...this.authorizationHeaders(), 'x-api-key': writeToken },\n });\n return response.headers.get('x-woro-token-state');\n }\n\n private getWriteToken(override?: string): string {\n const token = override ?? this.writeToken;\n if (!token) throw new WoroAuthError('A WORO write token is required for this operation.');\n return token;\n }\n\n private authorizationHeaders(): Record<string, string> {\n if (!this.idToken) throw new WoroAuthError('Sign in to the Cognito account before using this operation.');\n if (this.idTokenExpiresAt !== undefined && Date.now() >= this.idTokenExpiresAt) {\n this.signOut();\n throw new WoroAuthError('The Cognito ID token has expired; sign in again.');\n }\n return { authorization: `Bearer ${this.idToken}` };\n }\n\n private assertPayloadSize(bytes: Uint8Array): void {\n if (bytes.byteLength > WORO_MAX_PAYLOAD_BYTES) {\n throw new WoroApiError(413, `Encoded payload exceeds WORO's ${WORO_MAX_PAYLOAD_BYTES}-byte limit.`,'secret_too_large');\n }\n }\n\n private async request(path: string, init: RequestInit): Promise<Response> {\n const response = await this.fetcher(`${this.baseUrl}${path}`, { ...init, cache: 'no-store' });\n if (!response.ok) throw await apiError(response);\n return response;\n }\n}\n\nasync function parseCognitoResponse(response: Response, operation: string): Promise<Record<string, unknown>> {\n let result: unknown;\n try { result = await response.json(); } catch { result = undefined; }\n if (!response.ok) {\n const body = asRecord(result);\n const code = stringField(body, '__type')?.split('#').pop();\n const message = stringField(body, 'message') ?? `Cognito ${operation} failed with HTTP ${response.status}.`;\n throw new WoroAuthError(message, code);\n }\n return asRecord(result);\n}\n\nasync function apiError(response: Response): Promise<WoroApiError> {\n let code: string | undefined;\n let message = `WORO request failed with HTTP ${response.status}.`;\n try {\n const body = asRecord(await response.json());\n code = stringField(body, 'code') ?? stringField(body, 'error');\n const detail = stringField(body, 'error');\n if (detail && detail.length <= 200) message = detail;\n } catch {\n // Keep error bodies out of exceptions; they may contain untrusted response data.\n }\n return new WoroApiError(response.status, message, code);\n}\n\nfunction asRecord(value: unknown): Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value)\n ? value as Record<string, unknown>\n : {};\n}\n\nfunction stringField(value: Record<string, unknown>, key: string): string | undefined {\n return typeof value[key] === 'string' ? value[key] as string : undefined;\n}\n\nfunction numberField(value: Record<string, unknown>, key: string): number | undefined {\n return typeof value[key] === 'number' && Number.isFinite(value[key]) ? value[key] as number : undefined;\n}\n\nfunction toArrayBuffer(bytes: Uint8Array): ArrayBuffer {\n return bytes.buffer.slice(bytes.byteOffset, bytes.byteOffset + bytes.byteLength) as ArrayBuffer;\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["Math", "undefined", "crypto", "hash", "Math", "n", "H", "crypto", "sha256", "encHex", "encUtf8", "hmacSha256", "encBase64", "import_enc_base64", "import_enc_hex", "import_enc_utf8", "Srp", "encUtf8", "encHex", "encBase64"]
|
|
7
7
|
}
|