@junobuild/admin 0.0.15 → 0.0.17
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/declarations/satellite/satellite-deprecated-no-scope.did.d.ts +183 -0
- package/declarations/satellite/satellite-deprecated-no-scope.factory.did.js +194 -0
- package/declarations/satellite/satellite-deprecated-no-scope.factory.did.mjs +192 -0
- package/dist/browser/canisterStatus-53J5CMIV.js +2 -0
- package/dist/browser/{chunk-CAKYEEJ6.js → chunk-UAGXZWTT.js} +2 -2
- package/dist/browser/{chunk-CAKYEEJ6.js.map → chunk-UAGXZWTT.js.map} +1 -1
- package/dist/browser/index.js +14 -14
- package/dist/browser/index.js.map +4 -4
- package/dist/declarations/satellite/satellite-deprecated-no-scope.did.d.ts +183 -0
- package/dist/declarations/satellite/satellite-deprecated-no-scope.factory.did.js +194 -0
- package/dist/declarations/satellite/satellite-deprecated-no-scope.factory.did.mjs +192 -0
- package/dist/node/index.mjs +27 -27
- package/dist/node/index.mjs.map +4 -4
- package/dist/types/api/actor.api.d.ts +2 -0
- package/dist/types/api/satellite.api.d.ts +7 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/services/satellite.services.d.ts +6 -1
- package/dist/types/types/customdomain.types.d.ts +6 -0
- package/package.json +1 -1
- package/dist/browser/canisterStatus-D52DQGXX.js +0 -2
- /package/dist/browser/{canisterStatus-D52DQGXX.js.map → canisterStatus-53J5CMIV.js.map} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../../node_modules/base64-js/index.js", "../../../../node_modules/buffer/index.js", "../../declarations/ic/ic.factory.did.js", "../../declarations/mission_control/mission_control.factory.did.js", "../../declarations/satellite/satellite-deprecated.factory.did.js", "../../declarations/satellite/satellite.factory.did.js", "../../../../node_modules/@dfinity/agent/src/actor.ts", "../../../../node_modules/@dfinity/agent/src/agent/api.ts", "../../../../node_modules/@dfinity/agent/src/auth.ts", "../../../../node_modules/@dfinity/agent/src/agent/http/transforms.ts", "../../../../node_modules/@dfinity/agent/src/agent/http/types.ts", "../../../../node_modules/@dfinity/agent/src/agent/http/index.ts", "../../../../node_modules/@dfinity/agent/src/agent/proxy.ts", "../../../../node_modules/@dfinity/agent/src/agent/index.ts", "../../../../node_modules/@dfinity/agent/src/polling/strategy.ts", "../../../../node_modules/@dfinity/agent/src/polling/index.ts", "../../../../node_modules/@dfinity/agent/src/canisters/management_idl.ts", "../../src/utils/actor.utils.ts", "../../src/api/actor.api.ts", "../../src/api/ic.api.ts", "../../src/api/mission-control.api.ts", "../../src/utils/did.utils.ts", "../../src/utils/utils.ts", "../../src/utils/controllers.utils.ts", "../../src/services/mission-control.services.ts", "../../src/api/satellite.api.ts", "../../src/constants/rules.constants.ts", "../../src/utils/rule.utils.ts", "../../src/services/satellite.services.ts"],
|
|
4
|
-
"sourcesContent": ["'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n", "/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nvar K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n var arr = new Uint8Array(1)\n var proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n var buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n var valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n var b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(\n value[Symbol.toPrimitive]('string'), encodingOrOffset, length\n )\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n var length = byteLength(string, encoding) | 0\n var buf = createBuffer(length)\n\n var actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n var buf = createBuffer(length)\n for (var i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n var copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n var buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n var buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n Buffer.from(buf).copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n var len = string.length\n var mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return '<Buffer ' + str + '>'\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n var strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (var i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n var len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nvar hexSliceLookupTable = (function () {\n var alphabet = '0123456789abcdef'\n var table = new Array(256)\n for (var i = 0; i < 16; ++i) {\n var i16 = i * 16\n for (var j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n", "// @ts-ignore\nexport const idlFactory = ({IDL}) => {\n const canister_id = IDL.Principal;\n const definite_canister_settings = IDL.Record({\n freezing_threshold: IDL.Nat,\n controllers: IDL.Vec(IDL.Principal),\n memory_allocation: IDL.Nat,\n compute_allocation: IDL.Nat\n });\n const canister_settings = IDL.Record({\n freezing_threshold: IDL.Opt(IDL.Nat),\n controllers: IDL.Opt(IDL.Vec(IDL.Principal)),\n memory_allocation: IDL.Opt(IDL.Nat),\n compute_allocation: IDL.Opt(IDL.Nat)\n });\n const http_header = IDL.Record({value: IDL.Text, name: IDL.Text});\n const http_response = IDL.Record({\n status: IDL.Nat,\n body: IDL.Vec(IDL.Nat8),\n headers: IDL.Vec(http_header)\n });\n const http_request_error = IDL.Variant({\n dns_error: IDL.Null,\n no_consensus: IDL.Null,\n transform_error: IDL.Null,\n unreachable: IDL.Null,\n bad_tls: IDL.Null,\n conn_timeout: IDL.Null,\n invalid_url: IDL.Null,\n timeout: IDL.Null\n });\n const wasm_module = IDL.Vec(IDL.Nat8);\n return IDL.Service({\n canister_status: IDL.Func(\n [IDL.Record({canister_id: canister_id})],\n [\n IDL.Record({\n status: IDL.Variant({\n stopped: IDL.Null,\n stopping: IDL.Null,\n running: IDL.Null\n }),\n memory_size: IDL.Nat,\n cycles: IDL.Nat,\n settings: definite_canister_settings,\n module_hash: IDL.Opt(IDL.Vec(IDL.Nat8))\n })\n ],\n []\n ),\n create_canister: IDL.Func(\n [IDL.Record({settings: IDL.Opt(canister_settings)})],\n [IDL.Record({canister_id: canister_id})],\n []\n ),\n delete_canister: IDL.Func([IDL.Record({canister_id: canister_id})], [], []),\n deposit_cycles: IDL.Func([IDL.Record({canister_id: canister_id})], [], []),\n http_request: IDL.Func(\n [\n IDL.Record({\n url: IDL.Text,\n method: IDL.Variant({get: IDL.Null}),\n body: IDL.Opt(IDL.Vec(IDL.Nat8)),\n transform: IDL.Opt(\n IDL.Variant({\n function: IDL.Func([http_response], [http_response], ['query'])\n })\n ),\n headers: IDL.Vec(http_header)\n })\n ],\n [\n IDL.Variant({\n Ok: http_response,\n Err: IDL.Opt(http_request_error)\n })\n ],\n []\n ),\n install_code: IDL.Func(\n [\n IDL.Record({\n arg: IDL.Vec(IDL.Nat8),\n wasm_module: wasm_module,\n mode: IDL.Variant({\n reinstall: IDL.Null,\n upgrade: IDL.Null,\n install: IDL.Null\n }),\n canister_id: canister_id\n })\n ],\n [],\n []\n ),\n provisional_create_canister_with_cycles: IDL.Func(\n [\n IDL.Record({\n settings: IDL.Opt(canister_settings),\n amount: IDL.Opt(IDL.Nat)\n })\n ],\n [IDL.Record({canister_id: canister_id})],\n []\n ),\n provisional_top_up_canister: IDL.Func(\n [IDL.Record({canister_id: canister_id, amount: IDL.Nat})],\n [],\n []\n ),\n raw_rand: IDL.Func([], [IDL.Vec(IDL.Nat8)], []),\n start_canister: IDL.Func([IDL.Record({canister_id: canister_id})], [], []),\n stop_canister: IDL.Func([IDL.Record({canister_id: canister_id})], [], []),\n uninstall_code: IDL.Func([IDL.Record({canister_id: canister_id})], [], []),\n update_settings: IDL.Func(\n [\n IDL.Record({\n canister_id: IDL.Principal,\n settings: canister_settings\n })\n ],\n [],\n []\n )\n });\n};\n\n// @ts-ignore\nexport const init = ({IDL}) => {\n return [];\n};\n", "// @ts-ignore\nexport const idlFactory = ({IDL}) => {\n const Satellite = IDL.Record({\n updated_at: IDL.Nat64,\n metadata: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),\n created_at: IDL.Nat64,\n satellite_id: IDL.Principal\n });\n const ControllerScope = IDL.Variant({\n Write: IDL.Null,\n Admin: IDL.Null\n });\n const Controller = IDL.Record({\n updated_at: IDL.Nat64,\n metadata: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),\n created_at: IDL.Nat64,\n scope: ControllerScope,\n expires_at: IDL.Opt(IDL.Nat64)\n });\n const CanisterStatusType = IDL.Variant({\n stopped: IDL.Null,\n stopping: IDL.Null,\n running: IDL.Null\n });\n const DefiniteCanisterSettings = IDL.Record({\n freezing_threshold: IDL.Nat,\n controllers: IDL.Vec(IDL.Principal),\n memory_allocation: IDL.Nat,\n compute_allocation: IDL.Nat\n });\n const CanisterStatusResponse = IDL.Record({\n status: CanisterStatusType,\n memory_size: IDL.Nat,\n cycles: IDL.Nat,\n settings: DefiniteCanisterSettings,\n idle_cycles_burned_per_day: IDL.Nat,\n module_hash: IDL.Opt(IDL.Vec(IDL.Nat8))\n });\n const SegmentStatus = IDL.Record({\n id: IDL.Principal,\n status: CanisterStatusResponse,\n metadata: IDL.Opt(IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text))),\n status_at: IDL.Nat64\n });\n const Result = IDL.Variant({Ok: SegmentStatus, Err: IDL.Text});\n const SetController = IDL.Record({\n metadata: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),\n scope: ControllerScope,\n expires_at: IDL.Opt(IDL.Nat64)\n });\n const CronJobStatusesSatelliteConfig = IDL.Record({\n enabled: IDL.Bool,\n cycles_threshold: IDL.Opt(IDL.Nat64)\n });\n const StatusesArgs = IDL.Record({\n mission_control_cycles_threshold: IDL.Opt(IDL.Nat64),\n satellites: IDL.Vec(IDL.Tuple(IDL.Principal, CronJobStatusesSatelliteConfig)),\n cycles_threshold: IDL.Opt(IDL.Nat64)\n });\n const SegmentsStatuses = IDL.Record({\n satellites: IDL.Opt(IDL.Vec(Result)),\n mission_control: Result\n });\n const Tokens = IDL.Record({e8s: IDL.Nat64});\n return IDL.Service({\n add_mission_control_controllers: IDL.Func([IDL.Vec(IDL.Principal)], [], []),\n add_satellites_controllers: IDL.Func([IDL.Vec(IDL.Principal), IDL.Vec(IDL.Principal)], [], []),\n create_satellite: IDL.Func([IDL.Text], [Satellite], []),\n del_mission_control_controllers: IDL.Func([IDL.Vec(IDL.Principal)], [], []),\n del_satellites_controllers: IDL.Func([IDL.Vec(IDL.Principal), IDL.Vec(IDL.Principal)], [], []),\n get_user: IDL.Func([], [IDL.Principal], ['query']),\n list_mission_control_controllers: IDL.Func(\n [],\n [IDL.Vec(IDL.Tuple(IDL.Principal, Controller))],\n ['query']\n ),\n list_mission_control_statuses: IDL.Func([], [IDL.Vec(IDL.Tuple(IDL.Nat64, Result))], ['query']),\n list_satellite_statuses: IDL.Func(\n [IDL.Principal],\n [IDL.Opt(IDL.Vec(IDL.Tuple(IDL.Nat64, Result)))],\n ['query']\n ),\n list_satellites: IDL.Func([], [IDL.Vec(IDL.Tuple(IDL.Principal, Satellite))], ['query']),\n remove_mission_control_controllers: IDL.Func([IDL.Vec(IDL.Principal)], [], []),\n remove_satellites_controllers: IDL.Func(\n [IDL.Vec(IDL.Principal), IDL.Vec(IDL.Principal)],\n [],\n []\n ),\n set_metadata: IDL.Func([IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text))], [], []),\n set_mission_control_controllers: IDL.Func([IDL.Vec(IDL.Principal), SetController], [], []),\n set_satellites_controllers: IDL.Func(\n [IDL.Vec(IDL.Principal), IDL.Vec(IDL.Principal), SetController],\n [],\n []\n ),\n status: IDL.Func([StatusesArgs], [SegmentsStatuses], []),\n top_up: IDL.Func([IDL.Principal, Tokens], [], []),\n version: IDL.Func([], [IDL.Text], ['query'])\n });\n};\n// @ts-ignore\nexport const init = ({IDL}) => {\n return [];\n};\n", "export const idlFactory = ({IDL}) => {\n const CommitBatch = IDL.Record({\n batch_id: IDL.Nat,\n headers: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),\n chunk_ids: IDL.Vec(IDL.Nat)\n });\n const DeleteControllersArgs = IDL.Record({\n controllers: IDL.Vec(IDL.Principal)\n });\n const Controller = IDL.Record({\n updated_at: IDL.Nat64,\n metadata: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),\n created_at: IDL.Nat64,\n expires_at: IDL.Opt(IDL.Nat64)\n });\n const DelDoc = IDL.Record({updated_at: IDL.Opt(IDL.Nat64)});\n const StorageConfig = IDL.Record({\n headers: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text))))\n });\n const Config = IDL.Record({storage: StorageConfig});\n const Doc = IDL.Record({\n updated_at: IDL.Nat64,\n owner: IDL.Principal,\n data: IDL.Vec(IDL.Nat8),\n created_at: IDL.Nat64\n });\n const HttpRequest = IDL.Record({\n url: IDL.Text,\n method: IDL.Text,\n body: IDL.Vec(IDL.Nat8),\n headers: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text))\n });\n const StreamingCallbackToken = IDL.Record({\n token: IDL.Opt(IDL.Text),\n sha256: IDL.Opt(IDL.Vec(IDL.Nat8)),\n headers: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),\n index: IDL.Nat64,\n encoding_type: IDL.Text,\n full_path: IDL.Text\n });\n const StreamingStrategy = IDL.Variant({\n Callback: IDL.Record({\n token: StreamingCallbackToken,\n callback: IDL.Func([], [], [])\n })\n });\n const HttpResponse = IDL.Record({\n body: IDL.Vec(IDL.Nat8),\n headers: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),\n streaming_strategy: IDL.Opt(StreamingStrategy),\n status_code: IDL.Nat16\n });\n const StreamingCallbackHttpResponse = IDL.Record({\n token: IDL.Opt(StreamingCallbackToken),\n body: IDL.Vec(IDL.Nat8)\n });\n const InitAssetKey = IDL.Record({\n token: IDL.Opt(IDL.Text),\n collection: IDL.Text,\n name: IDL.Text,\n encoding_type: IDL.Opt(IDL.Text),\n full_path: IDL.Text\n });\n const InitUploadResult = IDL.Record({batch_id: IDL.Nat});\n const ListOrderField = IDL.Variant({\n UpdatedAt: IDL.Null,\n Keys: IDL.Null,\n CreatedAt: IDL.Null\n });\n const ListOrder = IDL.Record({field: ListOrderField, desc: IDL.Bool});\n const ListPaginate = IDL.Record({\n start_after: IDL.Opt(IDL.Text),\n limit: IDL.Opt(IDL.Nat64)\n });\n const ListParams = IDL.Record({\n order: IDL.Opt(ListOrder),\n matcher: IDL.Opt(IDL.Text),\n paginate: IDL.Opt(ListPaginate)\n });\n const AssetKey = IDL.Record({\n token: IDL.Opt(IDL.Text),\n collection: IDL.Text,\n owner: IDL.Principal,\n name: IDL.Text,\n full_path: IDL.Text\n });\n const AssetEncodingNoContent = IDL.Record({\n modified: IDL.Nat64,\n sha256: IDL.Vec(IDL.Nat8),\n total_length: IDL.Nat\n });\n const AssetNoContent = IDL.Record({\n key: AssetKey,\n updated_at: IDL.Nat64,\n encodings: IDL.Vec(IDL.Tuple(IDL.Text, AssetEncodingNoContent)),\n headers: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),\n created_at: IDL.Nat64\n });\n const ListResults = IDL.Record({\n matches_length: IDL.Nat64,\n length: IDL.Nat64,\n items: IDL.Vec(IDL.Tuple(IDL.Text, AssetNoContent))\n });\n const CustomDomain = IDL.Record({\n updated_at: IDL.Nat64,\n created_at: IDL.Nat64,\n bn_id: IDL.Opt(IDL.Text)\n });\n const ListResults_1 = IDL.Record({\n matches_length: IDL.Nat64,\n length: IDL.Nat64,\n items: IDL.Vec(IDL.Tuple(IDL.Text, Doc))\n });\n const RulesType = IDL.Variant({Db: IDL.Null, Storage: IDL.Null});\n const Permission = IDL.Variant({\n Controllers: IDL.Null,\n Private: IDL.Null,\n Public: IDL.Null,\n Managed: IDL.Null\n });\n const Rule = IDL.Record({\n updated_at: IDL.Nat64,\n max_size: IDL.Opt(IDL.Nat),\n read: Permission,\n created_at: IDL.Nat64,\n write: Permission\n });\n const SetController = IDL.Record({\n metadata: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),\n expires_at: IDL.Opt(IDL.Nat64)\n });\n const SetControllersArgs = IDL.Record({\n controller: SetController,\n controllers: IDL.Vec(IDL.Principal)\n });\n const SetDoc = IDL.Record({\n updated_at: IDL.Opt(IDL.Nat64),\n data: IDL.Vec(IDL.Nat8)\n });\n const SetRule = IDL.Record({\n updated_at: IDL.Opt(IDL.Nat64),\n max_size: IDL.Opt(IDL.Nat),\n read: Permission,\n write: Permission\n });\n const Chunk = IDL.Record({\n content: IDL.Vec(IDL.Nat8),\n batch_id: IDL.Nat\n });\n const UploadChunk = IDL.Record({chunk_id: IDL.Nat});\n return IDL.Service({\n commit_asset_upload: IDL.Func([CommitBatch], [], []),\n del_asset: IDL.Func([IDL.Text, IDL.Text], [], []),\n del_assets: IDL.Func([IDL.Opt(IDL.Text)], [], []),\n del_controllers: IDL.Func(\n [DeleteControllersArgs],\n [IDL.Vec(IDL.Tuple(IDL.Principal, Controller))],\n []\n ),\n del_custom_domain: IDL.Func([IDL.Text], [], []),\n del_doc: IDL.Func([IDL.Text, IDL.Text, DelDoc], [], []),\n get_config: IDL.Func([], [Config], []),\n get_doc: IDL.Func([IDL.Text, IDL.Text], [IDL.Opt(Doc)], ['query']),\n http_request: IDL.Func([HttpRequest], [HttpResponse], ['query']),\n http_request_streaming_callback: IDL.Func(\n [StreamingCallbackToken],\n [StreamingCallbackHttpResponse],\n ['query']\n ),\n init_asset_upload: IDL.Func([InitAssetKey], [InitUploadResult], []),\n list_assets: IDL.Func([IDL.Opt(IDL.Text), ListParams], [ListResults], ['query']),\n list_controllers: IDL.Func([], [IDL.Vec(IDL.Principal)], ['query']),\n list_custom_domains: IDL.Func([], [IDL.Vec(IDL.Tuple(IDL.Text, CustomDomain))], ['query']),\n list_docs: IDL.Func([IDL.Text, ListParams], [ListResults_1], ['query']),\n list_rules: IDL.Func([RulesType], [IDL.Vec(IDL.Tuple(IDL.Text, Rule))], ['query']),\n set_config: IDL.Func([Config], [], []),\n set_controllers: IDL.Func(\n [SetControllersArgs],\n [IDL.Vec(IDL.Tuple(IDL.Principal, Controller))],\n []\n ),\n set_custom_domain: IDL.Func([IDL.Text, IDL.Opt(IDL.Text)], [], []),\n set_doc: IDL.Func([IDL.Text, IDL.Text, SetDoc], [Doc], []),\n set_rule: IDL.Func([RulesType, IDL.Text, SetRule], [], []),\n upload_asset_chunk: IDL.Func([Chunk], [UploadChunk], []),\n version: IDL.Func([], [IDL.Text], ['query'])\n });\n};\nexport const init = ({IDL}) => {\n return [];\n};\n", "// @ts-ignore\nexport const idlFactory = ({IDL}) => {\n const CommitBatch = IDL.Record({\n batch_id: IDL.Nat,\n headers: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),\n chunk_ids: IDL.Vec(IDL.Nat)\n });\n const DeleteControllersArgs = IDL.Record({\n controllers: IDL.Vec(IDL.Principal)\n });\n const ControllerScope = IDL.Variant({\n Write: IDL.Null,\n Admin: IDL.Null\n });\n const Controller = IDL.Record({\n updated_at: IDL.Nat64,\n metadata: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),\n created_at: IDL.Nat64,\n scope: ControllerScope,\n expires_at: IDL.Opt(IDL.Nat64)\n });\n const DelDoc = IDL.Record({updated_at: IDL.Opt(IDL.Nat64)});\n const RulesType = IDL.Variant({Db: IDL.Null, Storage: IDL.Null});\n const StorageConfig = IDL.Record({\n headers: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text))))\n });\n const Config = IDL.Record({storage: StorageConfig});\n const Doc = IDL.Record({\n updated_at: IDL.Nat64,\n owner: IDL.Principal,\n data: IDL.Vec(IDL.Nat8),\n description: IDL.Opt(IDL.Text),\n created_at: IDL.Nat64\n });\n const HttpRequest = IDL.Record({\n url: IDL.Text,\n method: IDL.Text,\n body: IDL.Vec(IDL.Nat8),\n headers: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text))\n });\n const StreamingCallbackToken = IDL.Record({\n token: IDL.Opt(IDL.Text),\n sha256: IDL.Opt(IDL.Vec(IDL.Nat8)),\n headers: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),\n index: IDL.Nat64,\n encoding_type: IDL.Text,\n full_path: IDL.Text\n });\n const StreamingStrategy = IDL.Variant({\n Callback: IDL.Record({\n token: StreamingCallbackToken,\n callback: IDL.Func([], [], [])\n })\n });\n const HttpResponse = IDL.Record({\n body: IDL.Vec(IDL.Nat8),\n headers: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),\n streaming_strategy: IDL.Opt(StreamingStrategy),\n status_code: IDL.Nat16\n });\n const StreamingCallbackHttpResponse = IDL.Record({\n token: IDL.Opt(StreamingCallbackToken),\n body: IDL.Vec(IDL.Nat8)\n });\n const InitAssetKey = IDL.Record({\n token: IDL.Opt(IDL.Text),\n collection: IDL.Text,\n name: IDL.Text,\n description: IDL.Opt(IDL.Text),\n encoding_type: IDL.Opt(IDL.Text),\n full_path: IDL.Text\n });\n const InitUploadResult = IDL.Record({batch_id: IDL.Nat});\n const ListOrderField = IDL.Variant({\n UpdatedAt: IDL.Null,\n Keys: IDL.Null,\n CreatedAt: IDL.Null\n });\n const ListOrder = IDL.Record({field: ListOrderField, desc: IDL.Bool});\n const ListMatcher = IDL.Record({\n key: IDL.Opt(IDL.Text),\n description: IDL.Opt(IDL.Text)\n });\n const ListPaginate = IDL.Record({\n start_after: IDL.Opt(IDL.Text),\n limit: IDL.Opt(IDL.Nat64)\n });\n const ListParams = IDL.Record({\n order: IDL.Opt(ListOrder),\n owner: IDL.Opt(IDL.Principal),\n matcher: IDL.Opt(ListMatcher),\n paginate: IDL.Opt(ListPaginate)\n });\n const AssetKey = IDL.Record({\n token: IDL.Opt(IDL.Text),\n collection: IDL.Text,\n owner: IDL.Principal,\n name: IDL.Text,\n description: IDL.Opt(IDL.Text),\n full_path: IDL.Text\n });\n const AssetEncodingNoContent = IDL.Record({\n modified: IDL.Nat64,\n sha256: IDL.Vec(IDL.Nat8),\n total_length: IDL.Nat\n });\n const AssetNoContent = IDL.Record({\n key: AssetKey,\n updated_at: IDL.Nat64,\n encodings: IDL.Vec(IDL.Tuple(IDL.Text, AssetEncodingNoContent)),\n headers: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),\n created_at: IDL.Nat64\n });\n const ListResults = IDL.Record({\n matches_pages: IDL.Opt(IDL.Nat64),\n matches_length: IDL.Nat64,\n items_page: IDL.Opt(IDL.Nat64),\n items: IDL.Vec(IDL.Tuple(IDL.Text, AssetNoContent)),\n items_length: IDL.Nat64\n });\n const CustomDomain = IDL.Record({\n updated_at: IDL.Nat64,\n created_at: IDL.Nat64,\n bn_id: IDL.Opt(IDL.Text)\n });\n const ListResults_1 = IDL.Record({\n matches_pages: IDL.Opt(IDL.Nat64),\n matches_length: IDL.Nat64,\n items_page: IDL.Opt(IDL.Nat64),\n items: IDL.Vec(IDL.Tuple(IDL.Text, Doc)),\n items_length: IDL.Nat64\n });\n const Permission = IDL.Variant({\n Controllers: IDL.Null,\n Private: IDL.Null,\n Public: IDL.Null,\n Managed: IDL.Null\n });\n const Rule = IDL.Record({\n updated_at: IDL.Nat64,\n max_size: IDL.Opt(IDL.Nat),\n read: Permission,\n created_at: IDL.Nat64,\n write: Permission\n });\n const SetController = IDL.Record({\n metadata: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),\n scope: ControllerScope,\n expires_at: IDL.Opt(IDL.Nat64)\n });\n const SetControllersArgs = IDL.Record({\n controller: SetController,\n controllers: IDL.Vec(IDL.Principal)\n });\n const SetDoc = IDL.Record({\n updated_at: IDL.Opt(IDL.Nat64),\n data: IDL.Vec(IDL.Nat8),\n description: IDL.Opt(IDL.Text)\n });\n const SetRule = IDL.Record({\n updated_at: IDL.Opt(IDL.Nat64),\n max_size: IDL.Opt(IDL.Nat),\n read: Permission,\n write: Permission\n });\n const Chunk = IDL.Record({\n content: IDL.Vec(IDL.Nat8),\n batch_id: IDL.Nat\n });\n const UploadChunk = IDL.Record({chunk_id: IDL.Nat});\n return IDL.Service({\n commit_asset_upload: IDL.Func([CommitBatch], [], []),\n del_asset: IDL.Func([IDL.Text, IDL.Text], [], []),\n del_assets: IDL.Func([IDL.Opt(IDL.Text)], [], []),\n del_controllers: IDL.Func(\n [DeleteControllersArgs],\n [IDL.Vec(IDL.Tuple(IDL.Principal, Controller))],\n []\n ),\n del_custom_domain: IDL.Func([IDL.Text], [], []),\n del_doc: IDL.Func([IDL.Text, IDL.Text, DelDoc], [], []),\n del_rule: IDL.Func([RulesType, IDL.Text, DelDoc], [], []),\n get_config: IDL.Func([], [Config], []),\n get_doc: IDL.Func([IDL.Text, IDL.Text], [IDL.Opt(Doc)], ['query']),\n http_request: IDL.Func([HttpRequest], [HttpResponse], ['query']),\n http_request_streaming_callback: IDL.Func(\n [StreamingCallbackToken],\n [StreamingCallbackHttpResponse],\n ['query']\n ),\n init_asset_upload: IDL.Func([InitAssetKey], [InitUploadResult], []),\n list_assets: IDL.Func([IDL.Opt(IDL.Text), ListParams], [ListResults], ['query']),\n list_controllers: IDL.Func([], [IDL.Vec(IDL.Tuple(IDL.Principal, Controller))], ['query']),\n list_custom_domains: IDL.Func([], [IDL.Vec(IDL.Tuple(IDL.Text, CustomDomain))], ['query']),\n list_docs: IDL.Func([IDL.Text, ListParams], [ListResults_1], ['query']),\n list_rules: IDL.Func([RulesType], [IDL.Vec(IDL.Tuple(IDL.Text, Rule))], ['query']),\n set_config: IDL.Func([Config], [], []),\n set_controllers: IDL.Func(\n [SetControllersArgs],\n [IDL.Vec(IDL.Tuple(IDL.Principal, Controller))],\n []\n ),\n set_custom_domain: IDL.Func([IDL.Text, IDL.Opt(IDL.Text)], [], []),\n set_doc: IDL.Func([IDL.Text, IDL.Text, SetDoc], [Doc], []),\n set_rule: IDL.Func([RulesType, IDL.Text, SetRule], [], []),\n upload_asset_chunk: IDL.Func([Chunk], [UploadChunk], []),\n version: IDL.Func([], [IDL.Text], ['query'])\n });\n};\n// @ts-ignore\nexport const init = ({IDL}) => {\n return [];\n};\n", "import { Buffer } from 'buffer/';\nimport {\n Agent,\n getDefaultAgent,\n QueryResponseRejected,\n QueryResponseStatus,\n ReplicaRejectCode,\n SubmitResponse,\n} from './agent';\nimport { AgentError } from './errors';\nimport { IDL } from '@dfinity/candid';\nimport { pollForResponse, PollStrategyFactory, strategy } from './polling';\nimport { Principal } from '@dfinity/principal';\nimport { RequestId } from './request_id';\nimport { toHex } from './utils/buffer';\nimport { CreateCertificateOptions } from './certificate';\nimport managementCanisterIdl from './canisters/management_idl';\nimport _SERVICE from './canisters/management_service';\n\nexport class ActorCallError extends AgentError {\n constructor(\n public readonly canisterId: Principal,\n public readonly methodName: string,\n public readonly type: 'query' | 'update',\n public readonly props: Record<string, string>,\n ) {\n super(\n [\n `Call failed:`,\n ` Canister: ${canisterId.toText()}`,\n ` Method: ${methodName} (${type})`,\n ...Object.getOwnPropertyNames(props).map(n => ` \"${n}\": ${JSON.stringify(props[n])}`),\n ].join('\\n'),\n );\n }\n}\n\nexport class QueryCallRejectedError extends ActorCallError {\n constructor(\n canisterId: Principal,\n methodName: string,\n public readonly result: QueryResponseRejected,\n ) {\n super(canisterId, methodName, 'query', {\n Status: result.status,\n Code: ReplicaRejectCode[result.reject_code] ?? `Unknown Code \"${result.reject_code}\"`,\n Message: result.reject_message,\n });\n }\n}\n\nexport class UpdateCallRejectedError extends ActorCallError {\n constructor(\n canisterId: Principal,\n methodName: string,\n public readonly requestId: RequestId,\n public readonly response: SubmitResponse['response'],\n ) {\n super(canisterId, methodName, 'update', {\n 'Request ID': toHex(requestId),\n 'HTTP status code': response.status.toString(),\n 'HTTP status text': response.statusText,\n });\n }\n}\n\n/**\n * Configuration to make calls to the Replica.\n */\nexport interface CallConfig {\n /**\n * An agent to use in this call, otherwise the actor or call will try to discover the\n * agent to use.\n */\n agent?: Agent;\n\n /**\n * A polling strategy factory that dictates how much and often we should poll the\n * read_state endpoint to get the result of an update call.\n */\n pollingStrategyFactory?: PollStrategyFactory;\n\n /**\n * The canister ID of this Actor.\n */\n canisterId?: string | Principal;\n\n /**\n * The effective canister ID. This should almost always be ignored.\n */\n effectiveCanisterId?: Principal;\n}\n\n/**\n * Configuration that can be passed to customize the Actor behaviour.\n */\nexport interface ActorConfig extends CallConfig {\n /**\n * The Canister ID of this Actor. This is required for an Actor.\n */\n canisterId: string | Principal;\n\n /**\n * An override function for update calls' CallConfig. This will be called on every calls.\n */\n callTransform?(\n methodName: string,\n args: unknown[],\n callConfig: CallConfig,\n ): Partial<CallConfig> | void;\n\n /**\n * An override function for query calls' CallConfig. This will be called on every query.\n */\n queryTransform?(\n methodName: string,\n args: unknown[],\n callConfig: CallConfig,\n ): Partial<CallConfig> | void;\n\n /**\n * Polyfill for BLS Certificate verification in case wasm is not supported\n */\n blsVerify?: CreateCertificateOptions['blsVerify'];\n}\n\n// TODO: move this to proper typing when Candid support TypeScript.\n/**\n * A subclass of an actor. Actor class itself is meant to be a based class.\n */\nexport type ActorSubclass<T = Record<string, ActorMethod>> = Actor & T;\n\n/**\n * An actor method type, defined for each methods of the actor service.\n */\nexport interface ActorMethod<Args extends unknown[] = unknown[], Ret extends unknown = unknown> {\n (...args: Args): Promise<Ret>;\n withOptions(options: CallConfig): (...args: Args) => Promise<Ret>;\n}\n\n/**\n * The mode used when installing a canister.\n */\nexport enum CanisterInstallMode {\n Install = 'install',\n Reinstall = 'reinstall',\n Upgrade = 'upgrade',\n}\n\n/**\n * Internal metadata for actors. It's an enhanced version of ActorConfig with\n * some fields marked as required (as they are defaulted) and canisterId as\n * a Principal type.\n */\ninterface ActorMetadata {\n service: IDL.ServiceClass;\n agent?: Agent;\n config: ActorConfig;\n}\n\nconst metadataSymbol = Symbol.for('ic-agent-metadata');\n\n/**\n * An actor base class. An actor is an object containing only functions that will\n * return a promise. These functions are derived from the IDL definition.\n */\nexport class Actor {\n /**\n * Get the Agent class this Actor would call, or undefined if the Actor would use\n * the default agent (global.ic.agent).\n * @param actor The actor to get the agent of.\n */\n public static agentOf(actor: Actor): Agent | undefined {\n return actor[metadataSymbol].config.agent;\n }\n\n /**\n * Get the interface of an actor, in the form of an instance of a Service.\n * @param actor The actor to get the interface of.\n */\n public static interfaceOf(actor: Actor): IDL.ServiceClass {\n return actor[metadataSymbol].service;\n }\n\n public static canisterIdOf(actor: Actor): Principal {\n return Principal.from(actor[metadataSymbol].config.canisterId);\n }\n\n public static async install(\n fields: {\n module: ArrayBuffer;\n mode?: CanisterInstallMode;\n arg?: ArrayBuffer;\n },\n config: ActorConfig,\n ): Promise<void> {\n const mode = fields.mode === undefined ? CanisterInstallMode.Install : fields.mode;\n // Need to transform the arg into a number array.\n const arg = fields.arg ? [...new Uint8Array(fields.arg)] : [];\n // Same for module.\n const wasmModule = [...new Uint8Array(fields.module)];\n const canisterId =\n typeof config.canisterId === 'string'\n ? Principal.fromText(config.canisterId)\n : config.canisterId;\n\n await getManagementCanister(config).install_code({\n mode: { [mode]: null } as any,\n arg,\n wasm_module: wasmModule,\n canister_id: canisterId,\n });\n }\n\n public static async createCanister(config?: CallConfig): Promise<Principal> {\n const { canister_id: canisterId } = await getManagementCanister(\n config || {},\n ).provisional_create_canister_with_cycles({ amount: [], settings: [] });\n\n return canisterId;\n }\n\n public static async createAndInstallCanister(\n interfaceFactory: IDL.InterfaceFactory,\n fields: {\n module: ArrayBuffer;\n arg?: ArrayBuffer;\n },\n config?: CallConfig,\n ): Promise<ActorSubclass> {\n const canisterId = await this.createCanister(config);\n await this.install(\n {\n ...fields,\n },\n { ...config, canisterId },\n );\n\n return this.createActor(interfaceFactory, { ...config, canisterId });\n }\n\n public static createActorClass(interfaceFactory: IDL.InterfaceFactory): ActorConstructor {\n const service = interfaceFactory({ IDL });\n\n class CanisterActor extends Actor {\n [x: string]: ActorMethod;\n\n constructor(config: ActorConfig) {\n const canisterId =\n typeof config.canisterId === 'string'\n ? Principal.fromText(config.canisterId)\n : config.canisterId;\n\n super({\n config: {\n ...DEFAULT_ACTOR_CONFIG,\n ...config,\n canisterId,\n },\n service,\n });\n\n for (const [methodName, func] of service._fields) {\n this[methodName] = _createActorMethod(this, methodName, func, config.blsVerify);\n }\n }\n }\n\n return CanisterActor;\n }\n\n public static createActor<T = Record<string, ActorMethod>>(\n interfaceFactory: IDL.InterfaceFactory,\n configuration: ActorConfig,\n ): ActorSubclass<T> {\n return new (this.createActorClass(interfaceFactory))(\n configuration,\n ) as unknown as ActorSubclass<T>;\n }\n\n private [metadataSymbol]: ActorMetadata;\n\n protected constructor(metadata: ActorMetadata) {\n this[metadataSymbol] = Object.freeze(metadata);\n }\n}\n\n// IDL functions can have multiple return values, so decoding always\n// produces an array. Ensure that functions with single or zero return\n// values behave as expected.\nfunction decodeReturnValue(types: IDL.Type[], msg: ArrayBuffer) {\n const returnValues = IDL.decode(types, Buffer.from(msg));\n switch (returnValues.length) {\n case 0:\n return undefined;\n case 1:\n return returnValues[0];\n default:\n return returnValues;\n }\n}\n\nconst DEFAULT_ACTOR_CONFIG = {\n pollingStrategyFactory: strategy.defaultStrategy,\n};\n\nexport type ActorConstructor = new (config: ActorConfig) => ActorSubclass;\n\nfunction _createActorMethod(\n actor: Actor,\n methodName: string,\n func: IDL.FuncClass,\n blsVerify?: CreateCertificateOptions['blsVerify'],\n): ActorMethod {\n let caller: (options: CallConfig, ...args: unknown[]) => Promise<unknown>;\n if (func.annotations.includes('query')) {\n caller = async (options, ...args) => {\n // First, if there's a config transformation, call it.\n options = {\n ...options,\n ...actor[metadataSymbol].config.queryTransform?.(methodName, args, {\n ...actor[metadataSymbol].config,\n ...options,\n }),\n };\n\n const agent = options.agent || actor[metadataSymbol].config.agent || getDefaultAgent();\n const cid = Principal.from(options.canisterId || actor[metadataSymbol].config.canisterId);\n const arg = IDL.encode(func.argTypes, args);\n\n const result = await agent.query(cid, { methodName, arg });\n\n switch (result.status) {\n case QueryResponseStatus.Rejected:\n throw new QueryCallRejectedError(cid, methodName, result);\n\n case QueryResponseStatus.Replied:\n return decodeReturnValue(func.retTypes, result.reply.arg);\n }\n };\n } else {\n caller = async (options, ...args) => {\n // First, if there's a config transformation, call it.\n options = {\n ...options,\n ...actor[metadataSymbol].config.callTransform?.(methodName, args, {\n ...actor[metadataSymbol].config,\n ...options,\n }),\n };\n\n const agent = options.agent || actor[metadataSymbol].config.agent || getDefaultAgent();\n const { canisterId, effectiveCanisterId, pollingStrategyFactory } = {\n ...DEFAULT_ACTOR_CONFIG,\n ...actor[metadataSymbol].config,\n ...options,\n };\n const cid = Principal.from(canisterId);\n const ecid = effectiveCanisterId !== undefined ? Principal.from(effectiveCanisterId) : cid;\n const arg = IDL.encode(func.argTypes, args);\n const { requestId, response } = await agent.call(cid, {\n methodName,\n arg,\n effectiveCanisterId: ecid,\n });\n\n if (!response.ok) {\n throw new UpdateCallRejectedError(cid, methodName, requestId, response);\n }\n\n const pollStrategy = pollingStrategyFactory();\n const responseBytes = await pollForResponse(agent, ecid, requestId, pollStrategy, blsVerify);\n\n if (responseBytes !== undefined) {\n return decodeReturnValue(func.retTypes, responseBytes);\n } else if (func.retTypes.length === 0) {\n return undefined;\n } else {\n throw new Error(`Call was returned undefined, but type [${func.retTypes.join(',')}].`);\n }\n };\n }\n\n const handler = (...args: unknown[]) => caller({}, ...args);\n handler.withOptions =\n (options: CallConfig) =>\n (...args: unknown[]) =>\n caller(options, ...args);\n return handler as ActorMethod;\n}\n\nexport type ManagementCanisterRecord = _SERVICE;\n\n/**\n * Create a management canister actor\n * @param config\n */\nexport function getManagementCanister(config: CallConfig): ActorSubclass<ManagementCanisterRecord> {\n function transform(_methodName: string, args: unknown[], _callConfig: CallConfig) {\n const first = args[0] as any;\n let effectiveCanisterId = Principal.fromHex('');\n if (first && typeof first === 'object' && first.canister_id) {\n effectiveCanisterId = Principal.from(first.canister_id as unknown);\n }\n return { effectiveCanisterId };\n }\n\n return Actor.createActor<ManagementCanisterRecord>(managementCanisterIdl, {\n ...config,\n canisterId: Principal.fromHex(''),\n ...{\n callTransform: transform,\n queryTransform: transform,\n },\n });\n}\n", "import { Principal } from '@dfinity/principal';\nimport { RequestId } from '../request_id';\nimport { JsonObject } from '@dfinity/candid';\nimport { Identity } from '../auth';\n\n/**\n * Codes used by the replica for rejecting a message.\n * See {@link https://sdk.dfinity.org/docs/interface-spec/#reject-codes | the interface spec}.\n */\nexport enum ReplicaRejectCode {\n SysFatal = 1,\n SysTransient = 2,\n DestinationInvalid = 3,\n CanisterReject = 4,\n CanisterError = 5,\n}\n\n/**\n * Options when doing a {@link Agent.readState} call.\n */\nexport interface ReadStateOptions {\n /**\n * A list of paths to read the state of.\n */\n paths: ArrayBuffer[][];\n}\n\n/**\n *\n */\nexport type QueryResponse = QueryResponseReplied | QueryResponseRejected;\n\nexport const enum QueryResponseStatus {\n Replied = 'replied',\n Rejected = 'rejected',\n}\n\nexport interface QueryResponseBase {\n status: QueryResponseStatus;\n}\n\nexport interface QueryResponseReplied extends QueryResponseBase {\n status: QueryResponseStatus.Replied;\n reply: { arg: ArrayBuffer };\n}\n\nexport interface QueryResponseRejected extends QueryResponseBase {\n status: QueryResponseStatus.Rejected;\n reject_code: ReplicaRejectCode;\n reject_message: string;\n}\n\n/**\n * Options when doing a {@link Agent.query} call.\n */\nexport interface QueryFields {\n /**\n * The method name to call.\n */\n methodName: string;\n\n /**\n * A binary encoded argument. This is already encoded and will be sent as is.\n */\n arg: ArrayBuffer;\n}\n\n/**\n * Options when doing a {@link Agent.call} call.\n */\nexport interface CallOptions {\n /**\n * The method name to call.\n */\n methodName: string;\n\n /**\n * A binary encoded argument. This is already encoded and will be sent as is.\n */\n arg: ArrayBuffer;\n\n /**\n * An effective canister ID, used for routing. This should only be mentioned if\n * it's different from the canister ID.\n */\n effectiveCanisterId: Principal | string;\n}\n\nexport interface ReadStateResponse {\n certificate: ArrayBuffer;\n}\n\nexport interface SubmitResponse {\n requestId: RequestId;\n response: {\n ok: boolean;\n status: number;\n statusText: string;\n };\n}\n\n/**\n * An Agent able to make calls and queries to a Replica.\n */\nexport interface Agent {\n readonly rootKey: ArrayBuffer | null;\n /**\n * Returns the principal ID associated with this agent (by default). It only shows\n * the principal of the default identity in the agent, which is the principal used\n * when calls don't specify it.\n */\n getPrincipal(): Promise<Principal>;\n\n /**\n * Create the request for the read state call.\n * `readState` uses this internally.\n * Useful to avoid signing the same request multiple times.\n */\n createReadStateRequest?(\n options: ReadStateOptions,\n identity?: Identity,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): Promise<any>;\n\n /**\n * Send a read state query to the replica. This includes a list of paths to return,\n * and will return a Certificate. This will only reject on communication errors,\n * but the certificate might contain less information than requested.\n * @param effectiveCanisterId A Canister ID related to this call.\n * @param options The options for this call.\n * @param identity Identity for the call. If not specified, uses the instance identity.\n * @param request The request to send in case it has already been created.\n */\n readState(\n effectiveCanisterId: Principal | string,\n options: ReadStateOptions,\n identity?: Identity,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n request?: any,\n ): Promise<ReadStateResponse>;\n\n call(canisterId: Principal | string, fields: CallOptions): Promise<SubmitResponse>;\n\n /**\n * Query the status endpoint of the replica. This normally has a few fields that\n * corresponds to the version of the replica, its root public key, and any other\n * information made public.\n * @returns A JsonObject that is essentially a record of fields from the status\n * endpoint.\n */\n status(): Promise<JsonObject>;\n\n /**\n * Send a query call to a canister. See\n * {@link https://sdk.dfinity.org/docs/interface-spec/#http-query | the interface spec}.\n * @param canisterId The Principal of the Canister to send the query to. Sending a query to\n * the management canister is not supported (as it has no meaning from an agent).\n * @param options Options to use to create and send the query.\n * @returns The response from the replica. The Promise will only reject when the communication\n * failed. If the query itself failed but no protocol errors happened, the response will\n * be of type QueryResponseRejected.\n */\n query(canisterId: Principal | string, options: QueryFields): Promise<QueryResponse>;\n\n /**\n * By default, the agent is configured to talk to the main Internet Computer,\n * and verifies responses using a hard-coded public key.\n *\n * This function will instruct the agent to ask the endpoint for its public\n * key, and use that instead. This is required when talking to a local test\n * instance, for example.\n *\n * Only use this when you are _not_ talking to the main Internet Computer,\n * otherwise you are prone to man-in-the-middle attacks! Do not call this\n * function by default.\n */\n fetchRootKey(): Promise<ArrayBuffer>;\n /**\n * If an application needs to invalidate an identity under certain conditions, an `Agent` may expose an `invalidateIdentity` method.\n * Invoking this method will set the inner identity used by the `Agent` to `null`.\n *\n * A use case for this would be - after a certain period of inactivity, a secure application chooses to invalidate the identity of any `HttpAgent` instances. An invalid identity can be replaced by `Agent.replaceIdentity`\n */\n invalidateIdentity?(): void;\n /**\n * If an application needs to replace an identity under certain conditions, an `Agent` may expose a `replaceIdentity` method.\n * Invoking this method will set the inner identity used by the `Agent` to a newly provided identity.\n *\n * A use case for this would be - after authenticating using `@dfinity/auth-client`, you can replace the `AnonymousIdentity` of your `Actor` with a `DelegationIdentity`.\n *\n * ```Actor.agentOf(defaultActor).replaceIdentity(await authClient.getIdentity());```\n */\n replaceIdentity?(identity: Identity): void;\n}\n", "import { Principal } from '@dfinity/principal';\nimport { HttpAgentRequest } from './agent/http/types';\nimport { requestIdOf } from './request_id';\nimport { concat, toHex } from './utils/buffer';\n\nconst domainSeparator = new TextEncoder().encode('\\x0Aic-request');\n\n/**\n * A Key Pair, containing a secret and public key.\n */\nexport interface KeyPair {\n secretKey: ArrayBuffer;\n publicKey: PublicKey;\n}\n\n/**\n * A public key that is DER encoded. This is a branded ArrayBuffer.\n */\nexport type DerEncodedPublicKey = ArrayBuffer & { __derEncodedPublicKey__?: void };\n\n/**\n * A signature array buffer.\n */\nexport type Signature = ArrayBuffer & { __signature__: void };\n\n/**\n * A Public Key implementation.\n */\nexport interface PublicKey {\n // Get the public key bytes encoded with DER.\n toDer(): DerEncodedPublicKey;\n}\n\n/**\n * A General Identity object. This does not have to be a private key (for example,\n * the Anonymous identity), but it must be able to transform request.\n */\nexport interface Identity {\n /**\n * Get the principal represented by this identity. Normally should be a\n * `Principal.selfAuthenticating()`.\n */\n getPrincipal(): Principal;\n\n /**\n * Transform a request into a signed version of the request. This is done last\n * after the transforms on the body of a request. The returned object can be\n * anything, but must be serializable to CBOR.\n */\n transformRequest(request: HttpAgentRequest): Promise<unknown>;\n}\n\n/**\n * An Identity that can sign blobs.\n */\nexport abstract class SignIdentity implements Identity {\n protected _principal: Principal | undefined;\n\n /**\n * Returns the public key that would match this identity's signature.\n */\n public abstract getPublicKey(): PublicKey;\n\n /**\n * Signs a blob of data, with this identity's private key.\n */\n public abstract sign(blob: ArrayBuffer): Promise<Signature>;\n\n /**\n * Get the principal represented by this identity. Normally should be a\n * `Principal.selfAuthenticating()`.\n */\n public getPrincipal(): Principal {\n if (!this._principal) {\n this._principal = Principal.selfAuthenticating(new Uint8Array(this.getPublicKey().toDer()));\n }\n return this._principal;\n }\n\n /**\n * Transform a request into a signed version of the request. This is done last\n * after the transforms on the body of a request. The returned object can be\n * anything, but must be serializable to CBOR.\n * @param request - internet computer request to transform\n */\n public async transformRequest(request: HttpAgentRequest): Promise<unknown> {\n const { body, ...fields } = request;\n const requestId = await requestIdOf(body);\n return {\n ...fields,\n body: {\n content: body,\n sender_pubkey: this.getPublicKey().toDer(),\n sender_sig: await this.sign(concat(domainSeparator, requestId)),\n },\n };\n }\n}\n\nexport class AnonymousIdentity implements Identity {\n public getPrincipal(): Principal {\n return Principal.anonymous();\n }\n\n public async transformRequest(request: HttpAgentRequest): Promise<unknown> {\n return {\n ...request,\n body: { content: request.body },\n };\n }\n}\n\n/*\n * We need to communicate with other agents on the page about identities,\n * but those messages may need to go across boundaries where it's not possible to\n * serialize/deserialize object prototypes easily.\n * So these are lightweight, serializable objects that contain enough information to recreate\n * SignIdentities, but don't commit to having all methods of SignIdentity.\n *\n * Use Case:\n * * DOM Events that let differently-versioned components communicate to one another about\n * Identities, even if they're using slightly different versions of agent packages to\n * create/interpret them.\n */\nexport interface AnonymousIdentityDescriptor {\n type: 'AnonymousIdentity';\n}\nexport interface PublicKeyIdentityDescriptor {\n type: 'PublicKeyIdentity';\n publicKey: string;\n}\nexport type IdentityDescriptor = AnonymousIdentityDescriptor | PublicKeyIdentityDescriptor;\n\n/**\n * Create an IdentityDescriptor from a @dfinity/identity Identity\n * @param identity - identity describe in returned descriptor\n */\nexport function createIdentityDescriptor(\n identity: SignIdentity | AnonymousIdentity,\n): IdentityDescriptor {\n const identityIndicator: IdentityDescriptor =\n 'getPublicKey' in identity\n ? { type: 'PublicKeyIdentity', publicKey: toHex(identity.getPublicKey().toDer()) }\n : { type: 'AnonymousIdentity' };\n return identityIndicator;\n}\n", "import { lebEncode } from '@dfinity/candid';\nimport * as cbor from 'simple-cbor';\nimport { Endpoint, HttpAgentRequest, HttpAgentRequestTransformFn, makeNonce, Nonce } from './types';\nimport { toHex } from '../../utils/buffer';\n\nconst NANOSECONDS_PER_MILLISECONDS = BigInt(1_000_000);\n\nconst REPLICA_PERMITTED_DRIFT_MILLISECONDS = BigInt(60 * 1000);\n\nexport class Expiry {\n private readonly _value: bigint;\n\n constructor(deltaInMSec: number) {\n // Use bigint because it can overflow the maximum number allowed in a double float.\n this._value =\n (BigInt(Date.now()) + BigInt(deltaInMSec) - REPLICA_PERMITTED_DRIFT_MILLISECONDS) *\n NANOSECONDS_PER_MILLISECONDS;\n }\n\n public toCBOR(): cbor.CborValue {\n // TODO: change this to take the minimum amount of space (it always takes 8 bytes now).\n return cbor.value.u64(this._value.toString(16), 16);\n }\n\n public toHash(): ArrayBuffer {\n return lebEncode(this._value);\n }\n}\n\n/**\n * Create a Nonce transform, which takes a function that returns a Buffer, and adds it\n * as the nonce to every call requests.\n * @param nonceFn A function that returns a buffer. By default uses a semi-random method.\n */\nexport function makeNonceTransform(nonceFn: () => Nonce = makeNonce): HttpAgentRequestTransformFn {\n return async (request: HttpAgentRequest) => {\n const nonce = nonceFn();\n // Nonce needs to be inserted into the header for all requests, to enable logs to be correlated with requests.\n const headers = request.request.headers ? new Headers(request.request.headers) : new Headers();\n // TODO: uncomment this when the http proxy supports it.\n // headers.set('X-IC-Request-ID', toHex(new Uint8Array(nonce)));\n request.request.headers = headers;\n\n // Nonce only needs to be inserted into the body for async calls, to prevent replay attacks.\n if (request.endpoint === Endpoint.Call) {\n request.body.nonce = nonceFn();\n }\n };\n}\n\n/**\n * Create a transform that adds a delay (by default 5 minutes) to the expiry.\n *\n * @param delayInMilliseconds The delay to add to the call time, in milliseconds.\n */\nexport function makeExpiryTransform(delayInMilliseconds: number): HttpAgentRequestTransformFn {\n return async (request: HttpAgentRequest) => {\n request.body.ingress_expiry = new Expiry(delayInMilliseconds);\n };\n}\n", "import type { Principal } from '@dfinity/principal';\nimport { Expiry } from './transforms';\nimport { lebEncode } from '@dfinity/candid';\n\n/**\n * @internal\n */\nexport const enum Endpoint {\n Query = 'read',\n ReadState = 'read_state',\n Call = 'call',\n}\n\n// An HttpAgent request, before it gets encoded and sent to the server.\n// We create an empty request that we will fill later.\nexport type HttpAgentRequest =\n | HttpAgentQueryRequest\n | HttpAgentSubmitRequest\n | HttpAgentReadStateRequest;\n\nexport interface HttpAgentBaseRequest {\n readonly endpoint: Endpoint;\n request: RequestInit;\n}\n\nexport interface HttpAgentSubmitRequest extends HttpAgentBaseRequest {\n readonly endpoint: Endpoint.Call;\n body: CallRequest;\n}\n\nexport interface HttpAgentQueryRequest extends HttpAgentBaseRequest {\n readonly endpoint: Endpoint.Query;\n body: ReadRequest;\n}\n\nexport interface HttpAgentReadStateRequest extends HttpAgentBaseRequest {\n readonly endpoint: Endpoint.ReadState;\n body: ReadRequest;\n}\n\nexport interface Signed<T> {\n content: T;\n sender_pubkey: ArrayBuffer;\n sender_sig: ArrayBuffer;\n}\n\nexport interface UnSigned<T> {\n content: T;\n}\n\nexport type Envelope<T> = Signed<T> | UnSigned<T>;\n\nexport interface HttpAgentRequestTransformFn {\n (args: HttpAgentRequest): Promise<HttpAgentRequest | undefined | void>;\n priority?: number;\n}\n\n// The fields in a \"call\" submit request.\n// tslint:disable:camel-case\nexport interface CallRequest extends Record<string, any> {\n request_type: SubmitRequestType.Call;\n canister_id: Principal;\n method_name: string;\n arg: ArrayBuffer;\n sender: Uint8Array | Principal;\n ingress_expiry: Expiry;\n}\n// tslint:enable:camel-case\n\n// The types of values allowed in the `request_type` field for submit requests.\nexport enum SubmitRequestType {\n Call = 'call',\n}\n\n// The types of values allowed in the `request_type` field for read requests.\nexport const enum ReadRequestType {\n Query = 'query',\n ReadState = 'read_state',\n}\n\n// The fields in a \"query\" read request.\nexport interface QueryRequest extends Record<string, any> {\n request_type: ReadRequestType.Query;\n canister_id: Principal;\n method_name: string;\n arg: ArrayBuffer;\n sender: Uint8Array | Principal;\n ingress_expiry: Expiry;\n}\n\nexport interface ReadStateRequest extends Record<string, any> {\n request_type: ReadRequestType.ReadState;\n paths: ArrayBuffer[][];\n ingress_expiry: Expiry;\n sender: Uint8Array | Principal;\n}\n\nexport type ReadRequest = QueryRequest | ReadStateRequest;\n\n// A Nonce that can be used for calls.\nexport type Nonce = Uint8Array & { __nonce__: void };\n\n/**\n * Create a random Nonce, based on date and a random suffix.\n */\nexport function makeNonce(): Nonce {\n // Encode 128 bits.\n const buffer = new ArrayBuffer(16);\n const view = new DataView(buffer);\n const now = BigInt(+Date.now());\n const randHi = Math.floor(Math.random() * 0xffffffff);\n const randLo = Math.floor(Math.random() * 0xffffffff);\n // Fix for IOS < 14.8 setBigUint64 absence\n if (typeof view.setBigUint64 === 'function') {\n view.setBigUint64(0, now);\n } else {\n const TWO_TO_THE_32 = BigInt(1) << BigInt(32);\n view.setUint32(0, Number(now >> BigInt(32)));\n view.setUint32(4, Number(now % TWO_TO_THE_32));\n }\n view.setUint32(8, randHi);\n view.setUint32(12, randLo);\n\n return buffer as Nonce;\n}\n", "import { JsonObject } from '@dfinity/candid';\nimport { Principal } from '@dfinity/principal';\nimport { AgentError } from '../../errors';\nimport { AnonymousIdentity, Identity } from '../../auth';\nimport * as cbor from '../../cbor';\nimport { RequestId, requestIdOf } from '../../request_id';\nimport { fromHex } from '../../utils/buffer';\nimport {\n Agent,\n QueryFields,\n QueryResponse,\n ReadStateOptions,\n ReadStateResponse,\n SubmitResponse,\n} from '../api';\nimport { Expiry, makeNonceTransform } from './transforms';\nimport {\n CallRequest,\n Endpoint,\n HttpAgentRequest,\n HttpAgentRequestTransformFn,\n HttpAgentSubmitRequest,\n makeNonce,\n QueryRequest,\n ReadRequestType,\n SubmitRequestType,\n} from './types';\n\nexport * from './transforms';\nexport { Nonce, makeNonce } from './types';\n\nexport enum RequestStatusResponseStatus {\n Received = 'received',\n Processing = 'processing',\n Replied = 'replied',\n Rejected = 'rejected',\n Unknown = 'unknown',\n Done = 'done',\n}\n\n// Default delta for ingress expiry is 5 minutes.\nconst DEFAULT_INGRESS_EXPIRY_DELTA_IN_MSECS = 5 * 60 * 1000;\n\n// Root public key for the IC, encoded as hex\nconst IC_ROOT_KEY =\n '308182301d060d2b0601040182dc7c0503010201060c2b0601040182dc7c05030201036100814' +\n 'c0e6ec71fab583b08bd81373c255c3c371b2e84863c98a4f1e08b74235d14fb5d9c0cd546d968' +\n '5f913a0c0b2cc5341583bf4b4392e467db96d65b9bb4cb717112f8472e0d5a4d14505ffd7484' +\n 'b01291091c5f87b98883463f98091a0baaae';\n\n// IC0 domain info\nconst IC0_DOMAIN = 'ic0.app';\nconst IC0_SUB_DOMAIN = '.ic0.app';\n\nconst ICP0_DOMAIN = 'icp0.io';\nconst ICP0_SUB_DOMAIN = '.icp0.io';\n\nconst ICP_API_DOMAIN = 'icp-api.io';\nconst ICP_API_SUB_DOMAIN = '.icp-api.io';\n\nclass HttpDefaultFetchError extends AgentError {\n constructor(public readonly message: string) {\n super(message);\n }\n}\nexport class IdentityInvalidError extends AgentError {\n constructor(public readonly message: string) {\n super(message);\n }\n}\n\n// HttpAgent options that can be used at construction.\nexport interface HttpAgentOptions {\n // Another HttpAgent to inherit configuration (pipeline and fetch) of. This\n // is only used at construction.\n source?: HttpAgent;\n\n // A surrogate to the global fetch function. Useful for testing.\n fetch?: typeof fetch;\n\n // Additional options to pass along to fetch. Will not override fields that\n // the agent already needs to set\n // Should follow the RequestInit interface, but we intentially support non-standard fields\n fetchOptions?: Record<string, unknown>;\n\n // Additional options to pass along to fetch for the call API.\n callOptions?: Record<string, unknown>;\n\n // The host to use for the client. By default, uses the same host as\n // the current page.\n host?: string;\n\n // The principal used to send messages. This cannot be empty at the request\n // time (will throw).\n identity?: Identity | Promise<Identity>;\n\n credentials?: {\n name: string;\n password?: string;\n };\n /**\n * Prevents the agent from providing a unique {@link Nonce} with each call.\n * Enabling may cause rate limiting of identical requests\n * at the boundary nodes.\n *\n * To add your own nonce generation logic, you can use the following:\n * @example\n * import {makeNonceTransform, makeNonce} from '@dfinity/agent';\n * const agent = new HttpAgent({ disableNonce: true });\n * agent.addTransform(makeNonceTransform(makeNonce);\n * @default false\n */\n disableNonce?: boolean;\n /**\n * Number of times to retry requests before throwing an error\n * @default 3\n */\n retryTimes?: number;\n}\n\nfunction getDefaultFetch(): typeof fetch {\n let defaultFetch;\n\n if (typeof window !== 'undefined') {\n // Browser context\n if (window.fetch) {\n defaultFetch = window.fetch.bind(window);\n } else {\n throw new HttpDefaultFetchError(\n 'Fetch implementation was not available. You appear to be in a browser context, but window.fetch was not present.',\n );\n }\n } else if (typeof global !== 'undefined') {\n // Node context\n if (global.fetch) {\n defaultFetch = global.fetch.bind(global);\n } else {\n throw new HttpDefaultFetchError(\n 'Fetch implementation was not available. You appear to be in a Node.js context, but global.fetch was not available.',\n );\n }\n } else if (typeof self !== 'undefined') {\n if (self.fetch) {\n defaultFetch = self.fetch.bind(self);\n }\n }\n\n if (defaultFetch) {\n return defaultFetch;\n }\n throw new HttpDefaultFetchError(\n 'Fetch implementation was not available. Please provide fetch to the HttpAgent constructor, or ensure it is available in the window or global context.',\n );\n}\n\ntype _RequestResponse = {\n requestId: RequestId;\n response: {\n ok: Response['ok'];\n status: Response['status'];\n statusText: Response['statusText'];\n };\n};\n\n// A HTTP agent allows users to interact with a client of the internet computer\n// using the available methods. It exposes an API that closely follows the\n// public view of the internet computer, and is not intended to be exposed\n// directly to the majority of users due to its low-level interface.\n//\n// There is a pipeline to apply transformations to the request before sending\n// it to the client. This is to decouple signature, nonce generation and\n// other computations so that this class can stay as simple as possible while\n// allowing extensions.\nexport class HttpAgent implements Agent {\n public rootKey = fromHex(IC_ROOT_KEY);\n private readonly _pipeline: HttpAgentRequestTransformFn[] = [];\n private _identity: Promise<Identity> | null;\n private readonly _fetch: typeof fetch;\n private readonly _fetchOptions?: Record<string, unknown>;\n private readonly _callOptions?: Record<string, unknown>;\n private _timeDiffMsecs = 0;\n private readonly _host: URL;\n private readonly _credentials: string | undefined;\n private _rootKeyFetched = false;\n private _retryTimes = 3; // Retry requests 3 times before erroring by default\n public readonly _isAgent = true;\n\n constructor(options: HttpAgentOptions = {}) {\n if (options.source) {\n if (!(options.source instanceof HttpAgent)) {\n throw new Error(\"An Agent's source can only be another HttpAgent\");\n }\n this._pipeline = [...options.source._pipeline];\n this._identity = options.source._identity;\n this._fetch = options.source._fetch;\n this._host = options.source._host;\n this._credentials = options.source._credentials;\n } else {\n this._fetch = options.fetch || getDefaultFetch() || fetch.bind(global);\n this._fetchOptions = options.fetchOptions;\n this._callOptions = options.callOptions;\n }\n if (options.host !== undefined) {\n if (!options.host.match(/^[a-z]+:/) && typeof window !== 'undefined') {\n this._host = new URL(window.location.protocol + '//' + options.host);\n } else {\n this._host = new URL(options.host);\n }\n } else if (options.source !== undefined) {\n // Safe to ignore here.\n this._host = options.source._host;\n } else {\n const location = typeof window !== 'undefined' ? window.location : undefined;\n if (!location) {\n throw new Error('Must specify a host to connect to.');\n }\n this._host = new URL(location + '');\n }\n // Default is 3, only set if option is provided\n if (options.retryTimes !== undefined) {\n this._retryTimes = options.retryTimes;\n }\n // Rewrite to avoid redirects\n if (this._host.hostname.endsWith(IC0_SUB_DOMAIN)) {\n this._host.hostname = IC0_DOMAIN;\n } else if (this._host.hostname.endsWith(ICP0_SUB_DOMAIN)) {\n this._host.hostname = ICP0_DOMAIN;\n } else if (this._host.hostname.endsWith(ICP_API_SUB_DOMAIN)) {\n this._host.hostname = ICP_API_DOMAIN;\n }\n\n if (options.credentials) {\n const { name, password } = options.credentials;\n this._credentials = `${name}${password ? ':' + password : ''}`;\n }\n this._identity = Promise.resolve(options.identity || new AnonymousIdentity());\n\n // Add a nonce transform to ensure calls are unique\n if (!options.disableNonce) {\n this.addTransform(makeNonceTransform(makeNonce));\n }\n }\n\n public isLocal(): boolean {\n const hostname = this._host.hostname;\n return hostname === '127.0.0.1' || hostname.endsWith('localhost');\n }\n\n public addTransform(fn: HttpAgentRequestTransformFn, priority = fn.priority || 0): void {\n // Keep the pipeline sorted at all time, by priority.\n const i = this._pipeline.findIndex(x => (x.priority || 0) < priority);\n this._pipeline.splice(i >= 0 ? i : this._pipeline.length, 0, Object.assign(fn, { priority }));\n }\n\n public async getPrincipal(): Promise<Principal> {\n if (!this._identity) {\n throw new IdentityInvalidError(\n \"This identity has expired due this application's security policy. Please refresh your authentication.\",\n );\n }\n return (await this._identity).getPrincipal();\n }\n\n public async call(\n canisterId: Principal | string,\n options: {\n methodName: string;\n arg: ArrayBuffer;\n effectiveCanisterId?: Principal | string;\n },\n identity?: Identity | Promise<Identity>,\n ): Promise<SubmitResponse> {\n const id = await (identity !== undefined ? await identity : await this._identity);\n if (!id) {\n throw new IdentityInvalidError(\n \"This identity has expired due this application's security policy. Please refresh your authentication.\",\n );\n }\n const canister = Principal.from(canisterId);\n const ecid = options.effectiveCanisterId\n ? Principal.from(options.effectiveCanisterId)\n : canister;\n\n const sender: Principal = id.getPrincipal() || Principal.anonymous();\n\n let ingress_expiry = new Expiry(DEFAULT_INGRESS_EXPIRY_DELTA_IN_MSECS);\n\n // If the value is off by more than 30 seconds, reconcile system time with the network\n if (Math.abs(this._timeDiffMsecs) > 1_000 * 30) {\n ingress_expiry = new Expiry(DEFAULT_INGRESS_EXPIRY_DELTA_IN_MSECS + this._timeDiffMsecs);\n }\n\n const submit: CallRequest = {\n request_type: SubmitRequestType.Call,\n canister_id: canister,\n method_name: options.methodName,\n arg: options.arg,\n sender,\n ingress_expiry,\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let transformedRequest: any = (await this._transform({\n request: {\n body: null,\n method: 'POST',\n headers: new Headers({\n 'Content-Type': 'application/cbor',\n ...(this._credentials ? { Authorization: 'Basic ' + btoa(this._credentials) } : {}),\n }),\n },\n endpoint: Endpoint.Call,\n body: submit,\n })) as HttpAgentSubmitRequest;\n\n // Apply transform for identity.\n transformedRequest = await id.transformRequest(transformedRequest);\n\n const body = cbor.encode(transformedRequest.body);\n\n // Run both in parallel. The fetch is quite expensive, so we have plenty of time to\n // calculate the requestId locally.\n\n const request = this._requestAndRetry(() =>\n this._fetch('' + new URL(`/api/v2/canister/${ecid.toText()}/call`, this._host), {\n ...this._callOptions,\n ...transformedRequest.request,\n body,\n }),\n );\n\n const [response, requestId] = await Promise.all([request, requestIdOf(submit)]);\n\n return {\n requestId,\n response: {\n ok: response.ok,\n status: response.status,\n statusText: response.statusText,\n },\n };\n }\n\n private async _requestAndRetry(request: () => Promise<Response>, tries = 0): Promise<Response> {\n if (tries > this._retryTimes && this._retryTimes !== 0) {\n throw new Error(\n `AgentError: Exceeded configured limit of ${this._retryTimes} retry attempts. Please check your network connection or try again in a few moments`,\n );\n }\n const response = await request();\n if (!response.ok) {\n const responseText = await response.clone().text();\n const errorMessage =\n `Server returned an error:\\n` +\n ` Code: ${response.status} (${response.statusText})\\n` +\n ` Body: ${responseText}\\n`;\n if (this._retryTimes > tries) {\n console.warn(errorMessage + ` Retrying request.`);\n return await this._requestAndRetry(request, tries + 1);\n } else {\n throw new Error(errorMessage);\n }\n }\n\n return response;\n }\n\n public async query(\n canisterId: Principal | string,\n fields: QueryFields,\n identity?: Identity | Promise<Identity>,\n ): Promise<QueryResponse> {\n const id = await (identity !== undefined ? await identity : await this._identity);\n if (!id) {\n throw new IdentityInvalidError(\n \"This identity has expired due this application's security policy. Please refresh your authentication.\",\n );\n }\n\n const canister = typeof canisterId === 'string' ? Principal.fromText(canisterId) : canisterId;\n const sender = id?.getPrincipal() || Principal.anonymous();\n\n const request: QueryRequest = {\n request_type: ReadRequestType.Query,\n canister_id: canister,\n method_name: fields.methodName,\n arg: fields.arg,\n sender,\n ingress_expiry: new Expiry(DEFAULT_INGRESS_EXPIRY_DELTA_IN_MSECS),\n };\n\n // TODO: remove this any. This can be a Signed or UnSigned request.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let transformedRequest: any = await this._transform({\n request: {\n method: 'POST',\n headers: new Headers({\n 'Content-Type': 'application/cbor',\n ...(this._credentials ? { Authorization: 'Basic ' + btoa(this._credentials) } : {}),\n }),\n },\n endpoint: Endpoint.Query,\n body: request,\n });\n\n // Apply transform for identity.\n transformedRequest = await id?.transformRequest(transformedRequest);\n\n const body = cbor.encode(transformedRequest.body);\n const response = await this._requestAndRetry(() =>\n this._fetch('' + new URL(`/api/v2/canister/${canister.toText()}/query`, this._host), {\n ...this._fetchOptions,\n ...transformedRequest.request,\n body,\n }),\n );\n\n return cbor.decode(await response.arrayBuffer());\n }\n\n public async createReadStateRequest(\n fields: ReadStateOptions,\n identity?: Identity | Promise<Identity>,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): Promise<any> {\n const id = await (identity !== undefined ? await identity : await this._identity);\n if (!id) {\n throw new IdentityInvalidError(\n \"This identity has expired due this application's security policy. Please refresh your authentication.\",\n );\n }\n const sender = id?.getPrincipal() || Principal.anonymous();\n\n // TODO: remove this any. This can be a Signed or UnSigned request.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const transformedRequest: any = await this._transform({\n request: {\n method: 'POST',\n headers: new Headers({\n 'Content-Type': 'application/cbor',\n ...(this._credentials ? { Authorization: 'Basic ' + btoa(this._credentials) } : {}),\n }),\n },\n endpoint: Endpoint.ReadState,\n body: {\n request_type: ReadRequestType.ReadState,\n paths: fields.paths,\n sender,\n ingress_expiry: new Expiry(DEFAULT_INGRESS_EXPIRY_DELTA_IN_MSECS),\n },\n });\n\n // Apply transform for identity.\n return id?.transformRequest(transformedRequest);\n }\n\n public async readState(\n canisterId: Principal | string,\n fields: ReadStateOptions,\n identity?: Identity | Promise<Identity>,\n // eslint-disable-next-line\n request?: any,\n ): Promise<ReadStateResponse> {\n const canister = typeof canisterId === 'string' ? Principal.fromText(canisterId) : canisterId;\n\n const transformedRequest = request ?? (await this.createReadStateRequest(fields, identity));\n const body = cbor.encode(transformedRequest.body);\n\n // TODO - https://dfinity.atlassian.net/browse/SDK-1092\n const response = await this._requestAndRetry(() =>\n this._fetch('' + new URL(`/api/v2/canister/${canister}/read_state`, this._host), {\n ...this._fetchOptions,\n ...transformedRequest.request,\n body,\n }),\n );\n\n if (!response.ok) {\n throw new Error(\n `Server returned an error:\\n` +\n ` Code: ${response.status} (${response.statusText})\\n` +\n ` Body: ${await response.text()}\\n`,\n );\n }\n return cbor.decode(await response.arrayBuffer());\n }\n\n /**\n * Allows agent to sync its time with the network. Can be called during intialization or mid-lifecycle if the device's clock has drifted away from the network time. This is necessary to set the Expiry for a request\n * @param {PrincipalLike} canisterId - Pass a canister ID if you need to sync the time with a particular replica. Uses the management canister by default\n */\n public async syncTime(canisterId?: Principal): Promise<void> {\n const CanisterStatus = await import('../../canisterStatus');\n const callTime = Date.now();\n try {\n if (!canisterId) {\n console.log(\n 'Syncing time with the IC. No canisterId provided, so falling back to ryjl3-tyaaa-aaaaa-aaaba-cai',\n );\n }\n const status = await CanisterStatus.request({\n // Fall back with canisterId of the ICP Ledger\n canisterId: canisterId ?? Principal.from('ryjl3-tyaaa-aaaaa-aaaba-cai'),\n agent: this,\n paths: ['time'],\n });\n\n const replicaTime = status.get('time');\n if (replicaTime) {\n this._timeDiffMsecs = Number(replicaTime as any) - Number(callTime);\n }\n } catch (error) {\n console.error('Caught exception while attempting to sync time:', error);\n }\n }\n\n public async status(): Promise<JsonObject> {\n const headers: Record<string, string> = this._credentials\n ? {\n Authorization: 'Basic ' + btoa(this._credentials),\n }\n : {};\n\n const response = await this._requestAndRetry(() =>\n this._fetch('' + new URL(`/api/v2/status`, this._host), { headers, ...this._fetchOptions }),\n );\n\n return cbor.decode(await response.arrayBuffer());\n }\n\n public async fetchRootKey(): Promise<ArrayBuffer> {\n if (!this._rootKeyFetched) {\n // Hex-encoded version of the replica root key\n this.rootKey = ((await this.status()) as any).root_key;\n this._rootKeyFetched = true;\n }\n return this.rootKey;\n }\n\n public invalidateIdentity(): void {\n this._identity = null;\n }\n\n public replaceIdentity(identity: Identity): void {\n this._identity = Promise.resolve(identity);\n }\n\n protected _transform(request: HttpAgentRequest): Promise<HttpAgentRequest> {\n let p = Promise.resolve(request);\n\n for (const fn of this._pipeline) {\n p = p.then(r => fn(r).then(r2 => r2 || r));\n }\n\n return p;\n }\n}\n", "import { JsonObject } from '@dfinity/candid';\nimport {\n Agent,\n CallOptions,\n QueryFields,\n QueryResponse,\n ReadStateOptions,\n ReadStateResponse,\n SubmitResponse,\n} from './api';\nimport { Principal } from '@dfinity/principal';\n\nexport enum ProxyMessageKind {\n Error = 'err',\n GetPrincipal = 'gp',\n GetPrincipalResponse = 'gpr',\n Query = 'q',\n QueryResponse = 'qr',\n Call = 'c',\n CallResponse = 'cr',\n ReadState = 'rs',\n ReadStateResponse = 'rsr',\n Status = 's',\n StatusResponse = 'sr',\n}\n\nexport interface ProxyMessageBase {\n id: number;\n type: ProxyMessageKind;\n}\n\nexport interface ProxyMessageError extends ProxyMessageBase {\n type: ProxyMessageKind.Error;\n error: any;\n}\n\nexport interface ProxyMessageGetPrincipal extends ProxyMessageBase {\n type: ProxyMessageKind.GetPrincipal;\n}\n\nexport interface ProxyMessageGetPrincipalResponse extends ProxyMessageBase {\n type: ProxyMessageKind.GetPrincipalResponse;\n response: string;\n}\n\nexport interface ProxyMessageQuery extends ProxyMessageBase {\n type: ProxyMessageKind.Query;\n args: [string, QueryFields];\n}\n\nexport interface ProxyMessageQueryResponse extends ProxyMessageBase {\n type: ProxyMessageKind.QueryResponse;\n response: QueryResponse;\n}\n\nexport interface ProxyMessageCall extends ProxyMessageBase {\n type: ProxyMessageKind.Call;\n args: [string, CallOptions];\n}\n\nexport interface ProxyMessageCallResponse extends ProxyMessageBase {\n type: ProxyMessageKind.CallResponse;\n response: SubmitResponse;\n}\n\nexport interface ProxyMessageReadState extends ProxyMessageBase {\n type: ProxyMessageKind.ReadState;\n args: [string, ReadStateOptions];\n}\n\nexport interface ProxyMessageReadStateResponse extends ProxyMessageBase {\n type: ProxyMessageKind.ReadStateResponse;\n response: ReadStateResponse;\n}\n\nexport interface ProxyMessageStatus extends ProxyMessageBase {\n type: ProxyMessageKind.Status;\n}\n\nexport interface ProxyMessageStatusResponse extends ProxyMessageBase {\n type: ProxyMessageKind.StatusResponse;\n response: JsonObject;\n}\n\nexport type ProxyMessage =\n | ProxyMessageError\n | ProxyMessageGetPrincipal\n | ProxyMessageGetPrincipalResponse\n | ProxyMessageQuery\n | ProxyMessageQueryResponse\n | ProxyMessageCall\n | ProxyMessageReadState\n | ProxyMessageReadStateResponse\n | ProxyMessageCallResponse\n | ProxyMessageStatus\n | ProxyMessageStatusResponse;\n\n// A Stub Agent that forwards calls to another Agent implementation.\nexport class ProxyStubAgent {\n constructor(private _frontend: (msg: ProxyMessage) => void, private _agent: Agent) {}\n\n public onmessage(msg: ProxyMessage): void {\n switch (msg.type) {\n case ProxyMessageKind.GetPrincipal:\n this._agent.getPrincipal().then(response => {\n this._frontend({\n id: msg.id,\n type: ProxyMessageKind.GetPrincipalResponse,\n response: response.toText(),\n });\n });\n break;\n case ProxyMessageKind.Query:\n this._agent.query(...msg.args).then(response => {\n this._frontend({\n id: msg.id,\n type: ProxyMessageKind.QueryResponse,\n response,\n });\n });\n break;\n case ProxyMessageKind.Call:\n this._agent.call(...msg.args).then(response => {\n this._frontend({\n id: msg.id,\n type: ProxyMessageKind.CallResponse,\n response,\n });\n });\n break;\n case ProxyMessageKind.ReadState:\n this._agent.readState(...msg.args).then(response => {\n this._frontend({\n id: msg.id,\n type: ProxyMessageKind.ReadStateResponse,\n response,\n });\n });\n break;\n case ProxyMessageKind.Status:\n this._agent.status().then(response => {\n this._frontend({\n id: msg.id,\n type: ProxyMessageKind.StatusResponse,\n response,\n });\n });\n break;\n\n default:\n throw new Error(`Invalid message received: ${JSON.stringify(msg)}`);\n }\n }\n}\n\n// An Agent that forwards calls to a backend. The calls are serialized\nexport class ProxyAgent implements Agent {\n private _nextId = 0;\n private _pendingCalls = new Map<number, [(resolve: any) => void, (reject: any) => void]>();\n public rootKey = null;\n\n constructor(private _backend: (msg: ProxyMessage) => void) {}\n\n public onmessage(msg: ProxyMessage): void {\n const id = msg.id;\n\n const maybePromise = this._pendingCalls.get(id);\n if (!maybePromise) {\n throw new Error('A proxy get the same message twice...');\n }\n\n this._pendingCalls.delete(id);\n const [resolve, reject] = maybePromise;\n\n switch (msg.type) {\n case ProxyMessageKind.Error:\n return reject(msg.error);\n case ProxyMessageKind.GetPrincipalResponse:\n case ProxyMessageKind.CallResponse:\n case ProxyMessageKind.QueryResponse:\n case ProxyMessageKind.ReadStateResponse:\n case ProxyMessageKind.StatusResponse:\n return resolve(msg.response);\n default:\n throw new Error(`Invalid message being sent to ProxyAgent: ${JSON.stringify(msg)}`);\n }\n }\n\n public async getPrincipal(): Promise<Principal> {\n return this._sendAndWait({\n id: this._nextId++,\n type: ProxyMessageKind.GetPrincipal,\n }).then(principal => {\n if (typeof principal !== 'string') {\n throw new Error('Invalid principal received.');\n }\n return Principal.fromText(principal);\n });\n }\n\n public readState(\n canisterId: Principal | string,\n fields: ReadStateOptions,\n ): Promise<ReadStateResponse> {\n return this._sendAndWait({\n id: this._nextId++,\n type: ProxyMessageKind.ReadState,\n args: [canisterId.toString(), fields],\n }) as Promise<ReadStateResponse>;\n }\n\n public call(canisterId: Principal | string, fields: CallOptions): Promise<SubmitResponse> {\n return this._sendAndWait({\n id: this._nextId++,\n type: ProxyMessageKind.Call,\n args: [canisterId.toString(), fields],\n }) as Promise<SubmitResponse>;\n }\n\n public status(): Promise<JsonObject> {\n return this._sendAndWait({\n id: this._nextId++,\n type: ProxyMessageKind.Status,\n }) as Promise<JsonObject>;\n }\n\n public query(canisterId: Principal | string, fields: QueryFields): Promise<QueryResponse> {\n return this._sendAndWait({\n id: this._nextId++,\n type: ProxyMessageKind.Query,\n args: [canisterId.toString(), fields],\n }) as Promise<QueryResponse>;\n }\n\n private async _sendAndWait(msg: ProxyMessage): Promise<unknown> {\n return new Promise((resolve, reject) => {\n this._pendingCalls.set(msg.id, [resolve, reject]);\n\n this._backend(msg);\n });\n }\n\n public async fetchRootKey(): Promise<ArrayBuffer> {\n // Hex-encoded version of the replica root key\n const rootKey = ((await this.status()) as any).root_key;\n this.rootKey = rootKey;\n return rootKey;\n }\n}\n", "import { GlobalInternetComputer } from '../index';\nimport { Agent } from './api';\n\nexport * from './api';\nexport * from './http';\nexport * from './proxy';\n\ndeclare const window: GlobalInternetComputer;\ndeclare const global: GlobalInternetComputer;\ndeclare const self: GlobalInternetComputer;\n\nexport function getDefaultAgent(): Agent {\n const agent =\n typeof window === 'undefined'\n ? typeof global === 'undefined'\n ? typeof self === 'undefined'\n ? undefined\n : self.ic.agent\n : global.ic.agent\n : window.ic.agent;\n\n if (!agent) {\n throw new Error('No Agent could be found.');\n }\n\n return agent;\n}\n", "import { Principal } from '@dfinity/principal';\nimport { RequestStatusResponseStatus } from '../agent';\nimport { toHex } from '../utils/buffer';\nimport { PollStrategy } from './index';\nimport { RequestId } from '../request_id';\n\nexport type Predicate<T> = (\n canisterId: Principal,\n requestId: RequestId,\n status: RequestStatusResponseStatus,\n) => Promise<T>;\n\nconst FIVE_MINUTES_IN_MSEC = 5 * 60 * 1000;\n\n/**\n * A best practices polling strategy: wait 2 seconds before the first poll, then 1 second\n * with an exponential backoff factor of 1.2. Timeout after 5 minutes.\n */\nexport function defaultStrategy(): PollStrategy {\n return chain(conditionalDelay(once(), 1000), backoff(1000, 1.2), timeout(FIVE_MINUTES_IN_MSEC));\n}\n\n/**\n * Predicate that returns true once.\n */\nexport function once(): Predicate<boolean> {\n let first = true;\n return async () => {\n if (first) {\n first = false;\n return true;\n }\n return false;\n };\n}\n\n/**\n * Delay the polling once.\n * @param condition A predicate that indicates when to delay.\n * @param timeInMsec The amount of time to delay.\n */\nexport function conditionalDelay(condition: Predicate<boolean>, timeInMsec: number): PollStrategy {\n return async (\n canisterId: Principal,\n requestId: RequestId,\n status: RequestStatusResponseStatus,\n ) => {\n if (await condition(canisterId, requestId, status)) {\n return new Promise(resolve => setTimeout(resolve, timeInMsec));\n }\n };\n}\n\n/**\n * Error out after a maximum number of polling has been done.\n * @param count The maximum attempts to poll.\n */\nexport function maxAttempts(count: number): PollStrategy {\n let attempts = count;\n return async (\n canisterId: Principal,\n requestId: RequestId,\n status: RequestStatusResponseStatus,\n ) => {\n if (--attempts <= 0) {\n throw new Error(\n `Failed to retrieve a reply for request after ${count} attempts:\\n` +\n ` Request ID: ${toHex(requestId)}\\n` +\n ` Request status: ${status}\\n`,\n );\n }\n };\n}\n\n/**\n * Throttle polling.\n * @param throttleInMsec Amount in millisecond to wait between each polling.\n */\nexport function throttle(throttleInMsec: number): PollStrategy {\n return () => new Promise(resolve => setTimeout(resolve, throttleInMsec));\n}\n\n/**\n * Reject a call after a certain amount of time.\n * @param timeInMsec Time in milliseconds before the polling should be rejected.\n */\nexport function timeout(timeInMsec: number): PollStrategy {\n const end = Date.now() + timeInMsec;\n return async (\n canisterId: Principal,\n requestId: RequestId,\n status: RequestStatusResponseStatus,\n ) => {\n if (Date.now() > end) {\n throw new Error(\n `Request timed out after ${timeInMsec} msec:\\n` +\n ` Request ID: ${toHex(requestId)}\\n` +\n ` Request status: ${status}\\n`,\n );\n }\n };\n}\n\n/**\n * A strategy that throttle, but using an exponential backoff strategy.\n * @param startingThrottleInMsec The throttle in milliseconds to start with.\n * @param backoffFactor The factor to multiple the throttle time between every poll. For\n * example if using 2, the throttle will double between every run.\n */\nexport function backoff(startingThrottleInMsec: number, backoffFactor: number): PollStrategy {\n let currentThrottling = startingThrottleInMsec;\n\n return () =>\n new Promise(resolve =>\n setTimeout(() => {\n currentThrottling *= backoffFactor;\n resolve();\n }, currentThrottling),\n );\n}\n\n/**\n * Chain multiple polling strategy. This _chains_ the strategies, so if you pass in,\n * say, two throttling strategy of 1 second, it will result in a throttle of 2 seconds.\n * @param strategies A strategy list to chain.\n */\nexport function chain(...strategies: PollStrategy[]): PollStrategy {\n return async (\n canisterId: Principal,\n requestId: RequestId,\n status: RequestStatusResponseStatus,\n ) => {\n for (const a of strategies) {\n await a(canisterId, requestId, status);\n }\n };\n}\n", "import { Principal } from '@dfinity/principal';\nimport { Agent, RequestStatusResponseStatus } from '../agent';\nimport { Certificate, CreateCertificateOptions } from '../certificate';\nimport { RequestId } from '../request_id';\nimport { toHex } from '../utils/buffer';\n\nexport * as strategy from './strategy';\nexport { defaultStrategy } from './strategy';\nexport type PollStrategy = (\n canisterId: Principal,\n requestId: RequestId,\n status: RequestStatusResponseStatus,\n) => Promise<void>;\nexport type PollStrategyFactory = () => PollStrategy;\n\n/**\n * Polls the IC to check the status of the given request then\n * returns the response bytes once the request has been processed.\n * @param agent The agent to use to poll read_state.\n * @param canisterId The effective canister ID.\n * @param requestId The Request ID to poll status for.\n * @param strategy A polling strategy.\n * @param request Request for the readState call.\n */\nexport async function pollForResponse(\n agent: Agent,\n canisterId: Principal,\n requestId: RequestId,\n strategy: PollStrategy,\n // eslint-disable-next-line\n request?: any,\n blsVerify?: CreateCertificateOptions['blsVerify'],\n): Promise<ArrayBuffer> {\n const path = [new TextEncoder().encode('request_status'), requestId];\n const currentRequest = request ?? (await agent.createReadStateRequest?.({ paths: [path] }));\n const state = await agent.readState(canisterId, { paths: [path] }, undefined, currentRequest);\n if (agent.rootKey == null) throw new Error('Agent root key not initialized before polling');\n const cert = await Certificate.create({\n certificate: state.certificate,\n rootKey: agent.rootKey,\n canisterId: canisterId,\n blsVerify,\n });\n const maybeBuf = cert.lookup([...path, new TextEncoder().encode('status')]);\n let status;\n if (typeof maybeBuf === 'undefined') {\n // Missing requestId means we need to wait\n status = RequestStatusResponseStatus.Unknown;\n } else {\n status = new TextDecoder().decode(maybeBuf);\n }\n\n switch (status) {\n case RequestStatusResponseStatus.Replied: {\n return cert.lookup([...path, 'reply'])!;\n }\n\n case RequestStatusResponseStatus.Received:\n case RequestStatusResponseStatus.Unknown:\n case RequestStatusResponseStatus.Processing:\n // Execute the polling strategy, then retry.\n await strategy(canisterId, requestId, status);\n return pollForResponse(agent, canisterId, requestId, strategy, currentRequest);\n\n case RequestStatusResponseStatus.Rejected: {\n const rejectCode = new Uint8Array(cert.lookup([...path, 'reject_code'])!)[0];\n const rejectMessage = new TextDecoder().decode(cert.lookup([...path, 'reject_message'])!);\n throw new Error(\n `Call was rejected:\\n` +\n ` Request ID: ${toHex(requestId)}\\n` +\n ` Reject code: ${rejectCode}\\n` +\n ` Reject text: ${rejectMessage}\\n`,\n );\n }\n\n case RequestStatusResponseStatus.Done:\n // This is _technically_ not an error, but we still didn't see the `Replied` status so\n // we don't know the result and cannot decode it.\n throw new Error(\n `Call was marked as done but we never saw the reply:\\n` +\n ` Request ID: ${toHex(requestId)}\\n`,\n );\n }\n throw new Error('unreachable');\n}\n", "/**\n * This file is generated from the candid for asset management.\n */\n/* tslint:disable */\n// @ts-ignore\nexport default ({ IDL }) => {\n const canister_id = IDL.Principal;\n const definite_canister_settings = IDL.Record({\n controllers: IDL.Vec(IDL.Principal),\n freezing_threshold: IDL.Nat,\n memory_allocation: IDL.Nat,\n compute_allocation: IDL.Nat,\n });\n const canister_settings = IDL.Record({\n controllers: IDL.Opt(IDL.Vec(IDL.Principal)),\n freezing_threshold: IDL.Opt(IDL.Nat),\n memory_allocation: IDL.Opt(IDL.Nat),\n compute_allocation: IDL.Opt(IDL.Nat),\n });\n const wasm_module = IDL.Vec(IDL.Nat8);\n return IDL.Service({\n canister_status: IDL.Func(\n [IDL.Record({ canister_id: canister_id })],\n [\n IDL.Record({\n status: IDL.Variant({\n stopped: IDL.Null,\n stopping: IDL.Null,\n running: IDL.Null,\n }),\n memory_size: IDL.Nat,\n cycles: IDL.Nat,\n settings: definite_canister_settings,\n module_hash: IDL.Opt(IDL.Vec(IDL.Nat8)),\n }),\n ],\n [],\n ),\n create_canister: IDL.Func(\n [IDL.Record({ settings: IDL.Opt(canister_settings) })],\n [IDL.Record({ canister_id: canister_id })],\n [],\n ),\n delete_canister: IDL.Func([IDL.Record({ canister_id: canister_id })], [], []),\n deposit_cycles: IDL.Func([IDL.Record({ canister_id: canister_id })], [], []),\n install_code: IDL.Func(\n [\n IDL.Record({\n arg: IDL.Vec(IDL.Nat8),\n wasm_module: wasm_module,\n mode: IDL.Variant({\n reinstall: IDL.Null,\n upgrade: IDL.Null,\n install: IDL.Null,\n }),\n canister_id: canister_id,\n }),\n ],\n [],\n [],\n ),\n provisional_create_canister_with_cycles: IDL.Func(\n [\n IDL.Record({\n settings: IDL.Opt(canister_settings),\n amount: IDL.Opt(IDL.Nat),\n }),\n ],\n [IDL.Record({ canister_id: canister_id })],\n [],\n ),\n provisional_top_up_canister: IDL.Func(\n [IDL.Record({ canister_id: canister_id, amount: IDL.Nat })],\n [],\n [],\n ),\n raw_rand: IDL.Func([], [IDL.Vec(IDL.Nat8)], []),\n start_canister: IDL.Func([IDL.Record({ canister_id: canister_id })], [], []),\n stop_canister: IDL.Func([IDL.Record({ canister_id: canister_id })], [], []),\n uninstall_code: IDL.Func([IDL.Record({ canister_id: canister_id })], [], []),\n update_settings: IDL.Func(\n [\n IDL.Record({\n canister_id: IDL.Principal,\n settings: canister_settings,\n }),\n ],\n [],\n [],\n ),\n });\n};\n", "import type {ActorConfig, ActorMethod, ActorSubclass} from '@dfinity/agent';\nimport {Actor, HttpAgent} from '@dfinity/agent';\nimport type {IDL} from '@dfinity/candid';\nimport type {ActorParameters} from '../types/actor.types';\n\nexport const createActor = async <T = Record<string, ActorMethod>>({\n canisterId,\n idlFactory,\n identity,\n fetch,\n env = 'prod',\n config\n}: {\n idlFactory: IDL.InterfaceFactory;\n canisterId: string;\n config?: Pick<ActorConfig, 'callTransform' | 'queryTransform'>;\n} & ActorParameters): Promise<ActorSubclass<T>> => {\n const host: string = env === 'dev' ? 'http://127.0.0.1:8000/' : 'https://icp0.io';\n\n const agent: HttpAgent = new HttpAgent({identity, ...(host && {host}), ...(fetch && {fetch})});\n\n if (env === 'dev') {\n // Fetch root key for certificate validation during development\n await agent.fetchRootKey();\n }\n\n // Creates an actor with using the candid interface and the HttpAgent\n return Actor.createActor(idlFactory, {\n agent,\n canisterId,\n ...(config !== undefined ? config : {})\n });\n};\n", "import type {CallConfig} from '@dfinity/agent';\nimport type {IDL} from '@dfinity/candid';\nimport {Principal} from '@dfinity/principal';\nimport type {_SERVICE as ConsoleActor} from '../../declarations/console/console.did';\nimport {idlFactory as idlFactoryConsole} from '../../declarations/console/console.factory.did.js';\nimport type {_SERVICE as ICActor} from '../../declarations/ic/ic.did';\nimport {idlFactory as idlFactorIC} from '../../declarations/ic/ic.factory.did';\nimport type {_SERVICE as MissionControlActor} from '../../declarations/mission_control/mission_control.did';\nimport {idlFactory as idlFactoryMissionControl} from '../../declarations/mission_control/mission_control.factory.did.js';\nimport type {_SERVICE as DeprecatedSatelliteActor} from '../../declarations/satellite/satellite-deprecated.did';\nimport {idlFactory as idlDeprecatedFactorySatellite} from '../../declarations/satellite/satellite-deprecated.factory.did.js';\nimport type {_SERVICE as SatelliteActor} from '../../declarations/satellite/satellite.did';\nimport {idlFactory as idlFactorySatellite} from '../../declarations/satellite/satellite.factory.did.js';\nimport type {\n ActorParameters,\n ConsoleParameters,\n MissionControlParameters,\n SatelliteParameters\n} from '../types/actor.types';\nimport {createActor} from '../utils/actor.utils';\n\n// TODO: for backwards compatibility - to be removed\nexport const getDeprecatedSatelliteActor = async ({\n satelliteId,\n ...rest\n}: SatelliteParameters): Promise<DeprecatedSatelliteActor> =>\n getActor({\n canisterId: satelliteId,\n ...rest,\n idlFactory: idlDeprecatedFactorySatellite\n });\n\nexport const getSatelliteActor = async ({\n satelliteId,\n ...rest\n}: SatelliteParameters): Promise<SatelliteActor> =>\n getActor({\n canisterId: satelliteId,\n ...rest,\n idlFactory: idlFactorySatellite\n });\n\nexport const getMissionControlActor = async ({\n missionControlId,\n ...rest\n}: MissionControlParameters): Promise<MissionControlActor> =>\n getActor({\n canisterId: missionControlId,\n ...rest,\n idlFactory: idlFactoryMissionControl\n });\n\nexport const getConsoleActor = async ({\n consoleId,\n ...rest\n}: ConsoleParameters): Promise<ConsoleActor> =>\n getActor({\n canisterId: consoleId,\n ...rest,\n idlFactory: idlFactoryConsole\n });\n\nexport const getActor = async <T>({\n canisterId,\n idlFactory,\n ...rest\n}: ActorParameters & {\n canisterId: string | undefined;\n idlFactory: IDL.InterfaceFactory;\n}): Promise<T> => {\n if (!canisterId) {\n throw new Error('No canister ID provided.');\n }\n\n return createActor({\n canisterId,\n idlFactory,\n ...rest\n });\n};\n\nconst MANAGEMENT_CANISTER_ID = Principal.fromText('aaaaa-aa');\n\n// Source nns-dapp - dart -> JS bridge\nconst transform = (\n _methodName: string,\n args: unknown[],\n _callConfig: CallConfig\n): {effectiveCanisterId: Principal} => {\n const first = args[0] as unknown;\n let effectiveCanisterId = MANAGEMENT_CANISTER_ID;\n if (first && typeof first === 'object' && first['canister_id']) {\n effectiveCanisterId = Principal.from(first['canister_id'] as unknown);\n }\n\n return {effectiveCanisterId};\n};\n\nexport const getICActor = (params: ActorParameters): Promise<ICActor> =>\n createActor<ICActor>({\n canisterId: MANAGEMENT_CANISTER_ID.toText(),\n config: {\n callTransform: transform,\n queryTransform: transform\n },\n idlFactory: idlFactorIC,\n ...params\n });\n", "import type {_SERVICE as ICActor} from '../../declarations/ic/ic.did';\nimport type {ActorParameters} from '../types/actor.types';\nimport type {InstallCodeParams} from '../types/ic.types';\nimport {getICActor} from './actor.api';\n\nexport const upgradeCode = async ({\n actor,\n code\n}: {\n actor: ActorParameters;\n code: Omit<InstallCodeParams, 'mode'>;\n}): Promise<void> => {\n const {install_code}: ICActor = await getICActor(actor);\n\n return install_code({\n ...code,\n mode: {upgrade: null}\n });\n};\n", "import type {Principal} from '@dfinity/principal';\nimport type {\n Controller,\n _SERVICE as MissionControlActor,\n SetController\n} from '../../declarations/mission_control/mission_control.did';\nimport type {MissionControlParameters} from '../types/actor.types';\nimport {getMissionControlActor} from './actor.api';\n\nexport const version = async ({\n missionControl\n}: {\n missionControl: MissionControlParameters;\n}): Promise<string> => {\n const actor: MissionControlActor = await getMissionControlActor(missionControl);\n return actor.version();\n};\n\nexport const getUser = async ({\n missionControl\n}: {\n missionControl: MissionControlParameters;\n}): Promise<Principal> => {\n const actor: MissionControlActor = await getMissionControlActor(missionControl);\n return actor.get_user();\n};\n\nexport const listControllers = async ({\n missionControl\n}: {\n missionControl: MissionControlParameters;\n}): Promise<[Principal, Controller][]> => {\n const actor: MissionControlActor = await getMissionControlActor(missionControl);\n return actor.list_mission_control_controllers();\n};\n\nexport const setSatellitesController = async ({\n missionControl,\n satelliteIds,\n controllerIds,\n controller\n}: {\n missionControl: MissionControlParameters;\n satelliteIds: Principal[];\n controllerIds: Principal[];\n controller: SetController;\n}) => {\n const actor: MissionControlActor = await getMissionControlActor(missionControl);\n return actor.set_satellites_controllers(satelliteIds, controllerIds, controller);\n};\n\nexport const setMissionControlController = async ({\n missionControl,\n controllerIds,\n controller\n}: {\n missionControl: MissionControlParameters;\n controllerIds: Principal[];\n controller: SetController;\n}) => {\n const actor: MissionControlActor = await getMissionControlActor(missionControl);\n return actor.set_mission_control_controllers(controllerIds, controller);\n};\n", "export const toNullable = <T>(value?: T): [] | [T] => {\n return value ? [value] : [];\n};\n\nexport const fromNullable = <T>(value: [] | [T]): T | undefined => {\n return value?.[0];\n};\n\nexport const toArray = async <T>(data: T): Promise<Uint8Array> => {\n const blob: Blob = new Blob([JSON.stringify(data)], {\n type: 'application/json; charset=utf-8'\n });\n return new Uint8Array(await blob.arrayBuffer());\n};\n\nexport const fromArray = async <T>(data: Uint8Array | number[]): Promise<T> => {\n const blob: Blob = new Blob([data instanceof Uint8Array ? data : new Uint8Array(data)], {\n type: 'application/json; charset=utf-8'\n });\n return JSON.parse(await blob.text());\n};\n", "/** Is null or undefined */\nexport const isNullish = <T>(argument: T | undefined | null): argument is undefined | null =>\n argument === null || argument === undefined;\n\n/** Not null and not undefined */\nexport const nonNullish = <T>(argument: T | undefined | null): argument is NonNullable<T> =>\n !isNullish(argument);\n\nexport class NullishError extends Error {}\n\nexport const assertNonNullish: <T>(\n value: T,\n message?: string\n) => asserts value is NonNullable<T> = <T>(value: T, message?: string): void => {\n if (isNullish(value)) {\n throw new NullishError(message);\n }\n};\n", "import {Principal} from '@dfinity/principal';\nimport type {SetController} from '../../declarations/mission_control/mission_control.did';\nimport type {SetControllerParams} from '../types/controllers.types';\nimport {toNullable} from './did.utils';\nimport {nonNullish} from './utils';\n\nexport const mapSetControllerParams = ({\n controllerId,\n profile\n}: SetControllerParams): {controllerIds: Principal[]; controller: SetController} => ({\n controllerIds: [Principal.fromText(controllerId)],\n controller: toSetController(profile)\n});\n\nconst toSetController = (profile: string | null | undefined): SetController => ({\n metadata: nonNullish(profile) && profile !== '' ? [['profile', profile]] : [],\n expires_at: toNullable<bigint>(undefined),\n scope: {Admin: null}\n});\n", "import {IDL} from '@dfinity/candid';\nimport {Principal} from '@dfinity/principal';\nimport {upgradeCode} from '../api/ic.api';\nimport {\n getUser,\n setMissionControlController as setMissionControlControllerApi,\n setSatellitesController as setSatellitesControllerApi,\n version\n} from '../api/mission-control.api';\nimport type {MissionControlParameters} from '../types/actor.types';\nimport type {SetControllerParams} from '../types/controllers.types';\nimport {mapSetControllerParams} from '../utils/controllers.utils';\n\nexport const missionControlVersion = async (params: {\n missionControl: MissionControlParameters;\n}): Promise<string> => version(params);\n\nexport const upgradeMissionControl = async ({\n missionControl,\n wasm_module\n}: {\n missionControl: MissionControlParameters;\n wasm_module: Array<number>;\n}) => {\n const user = await getUser({missionControl});\n\n const {missionControlId, ...actor} = missionControl;\n\n if (!missionControlId) {\n throw new Error('No mission control principal defined.');\n }\n\n const arg = IDL.encode(\n [\n IDL.Record({\n user: IDL.Principal\n })\n ],\n [{user}]\n );\n\n await upgradeCode({\n actor,\n code: {\n canister_id: Principal.fromText(missionControlId),\n arg: [...new Uint8Array(arg)],\n wasm_module\n }\n });\n};\n\nexport const setSatellitesController = async ({\n controllerId,\n profile,\n ...rest\n}: {\n missionControl: MissionControlParameters;\n satelliteIds: Principal[];\n} & SetControllerParams) =>\n setSatellitesControllerApi({\n ...rest,\n ...mapSetControllerParams({controllerId, profile})\n });\n\nexport const setMissionControlController = async ({\n controllerId,\n profile,\n ...rest\n}: {\n missionControl: MissionControlParameters;\n} & SetControllerParams) =>\n setMissionControlControllerApi({\n ...rest,\n ...mapSetControllerParams({controllerId, profile})\n });\n", "import type {Principal} from '@dfinity/principal';\nimport type {_SERVICE as DeprecatedSatelliteActor} from '../../declarations/satellite/satellite-deprecated.did';\nimport type {\n Config,\n Controller,\n Rule,\n RulesType,\n _SERVICE as SatelliteActor,\n SetRule\n} from '../../declarations/satellite/satellite.did';\nimport type {SatelliteParameters} from '../types/actor.types';\nimport {getDeprecatedSatelliteActor, getSatelliteActor} from './actor.api';\n\nexport const setConfig = async ({\n config,\n satellite\n}: {\n config: Config;\n satellite: SatelliteParameters;\n}): Promise<void> => {\n const actor: SatelliteActor = await getSatelliteActor(satellite);\n return actor.set_config(config);\n};\n\nexport const listRules = async ({\n satellite,\n type\n}: {\n satellite: SatelliteParameters;\n type: RulesType;\n}): Promise<[string, Rule][]> => {\n const actor: SatelliteActor = await getSatelliteActor(satellite);\n return actor.list_rules(type);\n};\n\nexport const setRule = async ({\n type,\n collection,\n rule,\n satellite\n}: {\n type: RulesType;\n collection: string;\n rule: SetRule;\n satellite: SatelliteParameters;\n}): Promise<void> => {\n const actor: SatelliteActor = await getSatelliteActor(satellite);\n return actor.set_rule(type, collection, rule);\n};\n\nexport const version = async ({satellite}: {satellite: SatelliteParameters}): Promise<string> => {\n const actor: SatelliteActor = await getSatelliteActor(satellite);\n\n return actor.version();\n};\n\n// TODO: for backwards compatibility - to be removed\nexport const listDeprecatedControllers = async ({\n satellite\n}: {\n satellite: SatelliteParameters;\n}): Promise<Principal[]> => {\n const actor: DeprecatedSatelliteActor = await getDeprecatedSatelliteActor(satellite);\n return actor.list_controllers();\n};\n\nexport const listControllers = async ({\n satellite\n}: {\n satellite: SatelliteParameters;\n}): Promise<[Principal, Controller][]> => {\n const actor: SatelliteActor = await getSatelliteActor(satellite);\n return actor.list_controllers();\n};\n", "import type {Permission, RulesType} from '../../declarations/satellite/satellite.did';\n\nexport const DbRulesType: RulesType = {Db: null};\nexport const StorageRulesType: RulesType = {Storage: null};\n\nexport const PermissionPublic: Permission = {Public: null};\nexport const PermissionPrivate: Permission = {Private: null};\nexport const PermissionManaged: Permission = {Managed: null};\nexport const PermissionControllers: Permission = {Controllers: null};\n", "import type {\n Permission,\n Rule as RuleApi,\n RulesType as RulesTypeApi,\n SetRule\n} from '../../declarations/satellite/satellite.did';\nimport {\n DbRulesType,\n PermissionControllers,\n PermissionManaged,\n PermissionPrivate,\n PermissionPublic,\n StorageRulesType\n} from '../constants/rules.constants';\nimport type {PermissionText, Rule, RulesType} from '../types/rules.types';\nimport {fromNullable, toNullable} from './did.utils';\nimport {isNullish, nonNullish} from './utils';\n\nexport const mapRuleType = (type: RulesType): RulesTypeApi =>\n type === 'storage' ? StorageRulesType : DbRulesType;\n\nexport const mapSetRule = ({\n read,\n write,\n max_size,\n updated_at\n}: Pick<Rule, 'read' | 'write' | 'max_size' | 'updated_at'>): SetRule => ({\n read: permissionFromText(read),\n write: permissionFromText(write),\n updated_at: isNullish(updated_at) ? [] : [updated_at],\n max_size: toNullable(nonNullish(max_size) && max_size > 0 ? BigInt(max_size) : undefined)\n});\n\nexport const mapRule = ([collection, rule]: [string, RuleApi]): Rule => {\n const {read, write, updated_at, created_at, max_size} = rule;\n\n const maxSize = max_size?.[0] ?? 0n > 0n ? Number(fromNullable(max_size)) : undefined;\n\n return {\n collection,\n read: permissionToText(read),\n write: permissionToText(write),\n updated_at,\n created_at,\n ...(nonNullish(maxSize) && {max_size: maxSize})\n };\n};\n\nexport const permissionToText = (permission: Permission): PermissionText => {\n if ('Public' in permission) {\n return 'public';\n }\n\n if ('Private' in permission) {\n return 'private';\n }\n\n if ('Managed' in permission) {\n return 'managed';\n }\n\n return 'controllers';\n};\n\nconst permissionFromText = (text: PermissionText): Permission => {\n switch (text) {\n case 'public':\n return PermissionPublic;\n case 'private':\n return PermissionPrivate;\n case 'managed':\n return PermissionManaged;\n default:\n return PermissionControllers;\n }\n};\n", "import {IDL} from '@dfinity/candid';\nimport {Principal} from '@dfinity/principal';\nimport {upgradeCode} from '../api/ic.api';\nimport {\n listControllers,\n listDeprecatedControllers,\n listRules as listRulesApi,\n setConfig as setConfigApi,\n setRule as setRuleApi,\n version\n} from '../api/satellite.api';\nimport type {SatelliteParameters} from '../types/actor.types';\nimport type {Config, StorageConfigHeaders} from '../types/config.types';\nimport type {Rule, RulesType} from '../types/rules.types';\nimport {mapRule, mapRuleType, mapSetRule} from '../utils/rule.utils';\n\nexport const setConfig = async ({\n config: {\n storage: {headers: configHeaders}\n },\n satellite\n}: {\n config: Config;\n satellite: SatelliteParameters;\n}): Promise<void> => {\n const headers: [string, [string, string][]][] = configHeaders.map(\n ({source, headers}: StorageConfigHeaders) => [source, headers]\n );\n\n return setConfigApi({\n satellite,\n config: {\n storage: {\n headers\n }\n }\n });\n};\n\nexport const listRules = async ({\n type,\n satellite\n}: {\n type: RulesType;\n satellite: SatelliteParameters;\n}): Promise<Rule[]> => {\n const rules = await listRulesApi({\n satellite,\n type: mapRuleType(type)\n });\n\n return rules.map((rule) => mapRule(rule));\n};\n\nexport const setRule = async ({\n rule: {collection, ...rest},\n type,\n satellite\n}: {\n rule: Rule;\n type: RulesType;\n satellite: SatelliteParameters;\n}): Promise<void> =>\n setRuleApi({\n type: mapRuleType(type),\n rule: mapSetRule(rest),\n satellite,\n collection\n });\n\nexport const satelliteVersion = async (params: {satellite: SatelliteParameters}): Promise<string> =>\n version(params);\n\nexport const upgradeSatellite = async ({\n satellite,\n wasm_module,\n deprecated\n}: {\n satellite: SatelliteParameters;\n wasm_module: Array<number>;\n deprecated: boolean;\n}) => {\n const {satelliteId, ...actor} = satellite;\n\n if (!satelliteId) {\n throw new Error('No satellite principal defined.');\n }\n\n // TODO: remove agent-js \"type mismatch: type on the wire principal\"\n if (deprecated) {\n const controllers = await listDeprecatedControllers({satellite});\n\n const arg = IDL.encode(\n [\n IDL.Record({\n controllers: IDL.Vec(IDL.Principal)\n })\n ],\n [{controllers}]\n );\n\n await upgradeCode({\n actor,\n code: {\n canister_id: Principal.fromText(satelliteId),\n arg: [...new Uint8Array(arg)],\n wasm_module\n }\n });\n\n return;\n }\n\n const controllers = await listControllers({satellite});\n\n const arg = IDL.encode(\n [\n IDL.Record({\n controllers: IDL.Vec(IDL.Principal)\n })\n ],\n [{controllers: controllers.map(([controller, _]) => controller)}]\n );\n\n await upgradeCode({\n actor,\n code: {\n canister_id: Principal.fromText(satelliteId),\n arg: [...new Uint8Array(arg)],\n wasm_module\n }\n });\n};\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["require_base64_js", "__commonJSMin", "exports", "byteLength", "toByteArray", "fromByteArray", "lookup", "revLookup", "Arr", "code", "i", "len", "getLens", "b64", "validLen", "placeHoldersLen", "lens", "_byteLength", "tmp", "arr", "curByte", "tripletToBase64", "num", "encodeChunk", "uint8", "start", "end", "output", "extraBytes", "parts", "maxChunkLength", "len2", "require_buffer", "__commonJSMin", "exports", "base64", "ieee754", "customInspectSymbol", "Buffer", "SlowBuffer", "K_MAX_LENGTH", "typedArraySupport", "arr", "proto", "createBuffer", "length", "buf", "arg", "encodingOrOffset", "allocUnsafe", "from", "value", "fromString", "fromArrayView", "isInstance", "fromArrayBuffer", "valueOf", "b", "fromObject", "assertSize", "size", "alloc", "fill", "encoding", "checked", "string", "byteLength", "actual", "fromArrayLike", "array", "i", "arrayView", "copy", "byteOffset", "obj", "len", "numberIsNaN", "a", "x", "y", "list", "buffer", "pos", "mustMatch", "loweredCase", "utf8ToBytes", "base64ToBytes", "slowToString", "start", "end", "hexSlice", "utf8Slice", "asciiSlice", "latin1Slice", "base64Slice", "utf16leSlice", "swap", "n", "m", "str", "max", "target", "thisStart", "thisEnd", "thisCopy", "targetCopy", "bidirectionalIndexOf", "val", "dir", "arrayIndexOf", "indexSize", "arrLength", "valLength", "read", "foundIndex", "found", "j", "hexWrite", "offset", "remaining", "strLen", "parsed", "utf8Write", "blitBuffer", "asciiWrite", "asciiToBytes", "base64Write", "ucs2Write", "utf16leToBytes", "res", "firstByte", "codePoint", "bytesPerSequence", "secondByte", "thirdByte", "fourthByte", "tempCodePoint", "decodeCodePointsArray", "MAX_ARGUMENTS_LENGTH", "codePoints", "ret", "out", "hexSliceLookupTable", "bytes", "newBuf", "checkOffset", "ext", "noAssert", "mul", "checkInt", "min", "maxBytes", "limit", "sub", "checkIEEE754", "writeFloat", "littleEndian", "writeDouble", "targetStart", "code", "INVALID_BASE64_RE", "base64clean", "units", "leadSurrogate", "byteArray", "c", "hi", "lo", "src", "dst", "type", "alphabet", "table", "i16", "idlFactory", "IDL", "canister_id", "definite_canister_settings", "canister_settings", "http_header", "http_response", "http_request_error", "wasm_module", "idlFactory", "IDL", "Satellite", "ControllerScope", "Controller", "CanisterStatusType", "DefiniteCanisterSettings", "CanisterStatusResponse", "SegmentStatus", "Result", "SetController", "CronJobStatusesSatelliteConfig", "StatusesArgs", "SegmentsStatuses", "Tokens", "idlFactory", "IDL", "CommitBatch", "DeleteControllersArgs", "Controller", "DelDoc", "StorageConfig", "Config", "Doc", "HttpRequest", "StreamingCallbackToken", "StreamingStrategy", "HttpResponse", "StreamingCallbackHttpResponse", "InitAssetKey", "InitUploadResult", "ListOrderField", "ListOrder", "ListPaginate", "ListParams", "AssetKey", "AssetEncodingNoContent", "AssetNoContent", "ListResults", "CustomDomain", "ListResults_1", "RulesType", "Permission", "Rule", "SetController", "SetControllersArgs", "SetDoc", "SetRule", "Chunk", "UploadChunk", "idlFactory", "IDL", "CommitBatch", "DeleteControllersArgs", "ControllerScope", "Controller", "DelDoc", "RulesType", "StorageConfig", "Config", "Doc", "HttpRequest", "StreamingCallbackToken", "StreamingStrategy", "HttpResponse", "StreamingCallbackHttpResponse", "InitAssetKey", "InitUploadResult", "ListOrderField", "ListOrder", "ListMatcher", "ListPaginate", "ListParams", "AssetKey", "AssetEncodingNoContent", "AssetNoContent", "ListResults", "CustomDomain", "ListResults_1", "Permission", "Rule", "SetController", "SetControllersArgs", "SetDoc", "SetRule", "Chunk", "UploadChunk", "import_buffer", "ReplicaRejectCode", "domainSeparator", "AnonymousIdentity", "Principal", "request", "cbor", "SubmitRequestType", "makeNonce", "buffer", "view", "now", "randHi", "randLo", "TWO_TO_THE_32", "NANOSECONDS_PER_MILLISECONDS", "REPLICA_PERMITTED_DRIFT_MILLISECONDS", "Expiry", "deltaInMSec", "lebEncode", "makeNonceTransform", "nonceFn", "makeNonce", "request", "nonce", "headers", "RequestStatusResponseStatus", "DEFAULT_INGRESS_EXPIRY_DELTA_IN_MSECS", "IC_ROOT_KEY", "IC0_DOMAIN", "IC0_SUB_DOMAIN", "ICP0_DOMAIN", "ICP0_SUB_DOMAIN", "ICP_API_DOMAIN", "ICP_API_SUB_DOMAIN", "HttpDefaultFetchError", "AgentError", "message", "IdentityInvalidError", "getDefaultFetch", "defaultFetch", "HttpAgent", "options", "fromHex", "location", "name", "password", "AnonymousIdentity", "makeNonceTransform", "makeNonce", "hostname", "fn", "priority", "i", "x", "canisterId", "identity", "id", "canister", "Principal", "ecid", "sender", "ingress_expiry", "Expiry", "submit", "SubmitRequestType", "transformedRequest", "body", "encode", "request", "response", "requestId", "requestIdOf", "tries", "responseText", "errorMessage", "fields", "decode", "CanisterStatus", "callTime", "replicaTime", "error", "headers", "p", "r", "r2", "ProxyMessageKind", "getDefaultAgent", "agent", "strategy_exports", "__export", "backoff", "chain", "conditionalDelay", "defaultStrategy", "maxAttempts", "once", "throttle", "timeout", "FIVE_MINUTES_IN_MSEC", "defaultStrategy", "chain", "conditionalDelay", "once", "backoff", "timeout", "first", "condition", "timeInMsec", "canisterId", "requestId", "status", "resolve", "maxAttempts", "count", "attempts", "toHex", "throttle", "throttleInMsec", "end", "startingThrottleInMsec", "backoffFactor", "currentThrottling", "strategies", "a", "pollForResponse", "agent", "canisterId", "requestId", "strategy", "request", "blsVerify", "path", "currentRequest", "_a", "state", "cert", "Certificate", "maybeBuf", "status", "RequestStatusResponseStatus", "rejectCode", "rejectMessage", "toHex", "management_idl_default", "IDL", "canister_id", "definite_canister_settings", "canister_settings", "wasm_module", "ActorCallError", "AgentError", "canisterId", "methodName", "type", "props", "n", "QueryCallRejectedError", "result", "_a", "ReplicaRejectCode", "UpdateCallRejectedError", "requestId", "response", "toHex", "CanisterInstallMode", "metadataSymbol", "Actor", "metadata", "actor", "Principal", "fields", "config", "mode", "arg", "wasmModule", "getManagementCanister", "interfaceFactory", "service", "idl_exports", "CanisterActor", "DEFAULT_ACTOR_CONFIG", "func", "_createActorMethod", "configuration", "decodeReturnValue", "types", "msg", "returnValues", "strategy_exports", "blsVerify", "caller", "options", "args", "_b", "agent", "getDefaultAgent", "cid", "effectiveCanisterId", "pollingStrategyFactory", "ecid", "pollStrategy", "responseBytes", "pollForResponse", "handler", "transform", "_methodName", "_callConfig", "first", "management_idl_default", "createActor", "canisterId", "idlFactory", "identity", "fetch", "env", "config", "host", "agent", "HttpAgent", "Actor", "getDeprecatedSatelliteActor", "satelliteId", "rest", "getActor", "idlFactory", "getSatelliteActor", "getMissionControlActor", "missionControlId", "getActor", "canisterId", "idlFactory", "rest", "createActor", "MANAGEMENT_CANISTER_ID", "Principal", "transform", "_methodName", "args", "_callConfig", "first", "effectiveCanisterId", "getICActor", "params", "upgradeCode", "actor", "code", "install_code", "getICActor", "version", "missionControl", "getMissionControlActor", "getUser", "setSatellitesController", "missionControl", "satelliteIds", "controllerIds", "controller", "getMissionControlActor", "setMissionControlController", "toNullable", "value", "fromNullable", "isNullish", "argument", "nonNullish", "mapSetControllerParams", "controllerId", "profile", "Principal", "toSetController", "nonNullish", "toNullable", "missionControlVersion", "params", "version", "upgradeMissionControl", "missionControl", "wasm_module", "user", "getUser", "missionControlId", "actor", "arg", "idl_exports", "upgradeCode", "Principal", "setSatellitesController", "controllerId", "profile", "rest", "mapSetControllerParams", "setMissionControlController", "setConfig", "config", "satellite", "getSatelliteActor", "listRules", "type", "setRule", "collection", "rule", "version", "listDeprecatedControllers", "getDeprecatedSatelliteActor", "listControllers", "DbRulesType", "StorageRulesType", "PermissionPublic", "PermissionPrivate", "PermissionManaged", "PermissionControllers", "mapRuleType", "type", "StorageRulesType", "DbRulesType", "mapSetRule", "read", "write", "max_size", "updated_at", "permissionFromText", "isNullish", "toNullable", "nonNullish", "mapRule", "collection", "rule", "created_at", "maxSize", "fromNullable", "permissionToText", "permission", "text", "PermissionPublic", "PermissionPrivate", "PermissionManaged", "PermissionControllers", "setConfig", "configHeaders", "satellite", "headers", "source", "listRules", "type", "mapRuleType", "rule", "mapRule", "setRule", "collection", "rest", "mapSetRule", "satelliteVersion", "params", "version", "upgradeSatellite", "wasm_module", "deprecated", "satelliteId", "actor", "controllers", "listDeprecatedControllers", "arg", "idl_exports", "upgradeCode", "Principal", "listControllers", "controller", "_"]
|
|
3
|
+
"sources": ["../../../../node_modules/base64-js/index.js", "../../../../node_modules/buffer/index.js", "../../declarations/ic/ic.factory.did.js", "../../declarations/mission_control/mission_control.factory.did.js", "../../declarations/satellite/satellite-deprecated-no-scope.factory.did.js", "../../declarations/satellite/satellite-deprecated.factory.did.js", "../../declarations/satellite/satellite.factory.did.js", "../../../../node_modules/@dfinity/agent/src/actor.ts", "../../../../node_modules/@dfinity/agent/src/agent/api.ts", "../../../../node_modules/@dfinity/agent/src/auth.ts", "../../../../node_modules/@dfinity/agent/src/agent/http/transforms.ts", "../../../../node_modules/@dfinity/agent/src/agent/http/types.ts", "../../../../node_modules/@dfinity/agent/src/agent/http/index.ts", "../../../../node_modules/@dfinity/agent/src/agent/proxy.ts", "../../../../node_modules/@dfinity/agent/src/agent/index.ts", "../../../../node_modules/@dfinity/agent/src/polling/strategy.ts", "../../../../node_modules/@dfinity/agent/src/polling/index.ts", "../../../../node_modules/@dfinity/agent/src/canisters/management_idl.ts", "../../src/utils/actor.utils.ts", "../../src/api/actor.api.ts", "../../src/api/ic.api.ts", "../../src/api/mission-control.api.ts", "../../src/utils/did.utils.ts", "../../src/utils/utils.ts", "../../src/utils/controllers.utils.ts", "../../src/services/mission-control.services.ts", "../../src/api/satellite.api.ts", "../../src/constants/rules.constants.ts", "../../src/utils/rule.utils.ts", "../../src/services/satellite.services.ts"],
|
|
4
|
+
"sourcesContent": ["'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n", "/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nvar K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n var arr = new Uint8Array(1)\n var proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n var buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n var valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n var b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(\n value[Symbol.toPrimitive]('string'), encodingOrOffset, length\n )\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n var length = byteLength(string, encoding) | 0\n var buf = createBuffer(length)\n\n var actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n var buf = createBuffer(length)\n for (var i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n var copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n var buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n var buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n Buffer.from(buf).copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n var len = string.length\n var mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return '<Buffer ' + str + '>'\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n var strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (var i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n var len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nvar hexSliceLookupTable = (function () {\n var alphabet = '0123456789abcdef'\n var table = new Array(256)\n for (var i = 0; i < 16; ++i) {\n var i16 = i * 16\n for (var j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n", "// @ts-ignore\nexport const idlFactory = ({IDL}) => {\n const canister_id = IDL.Principal;\n const definite_canister_settings = IDL.Record({\n freezing_threshold: IDL.Nat,\n controllers: IDL.Vec(IDL.Principal),\n memory_allocation: IDL.Nat,\n compute_allocation: IDL.Nat\n });\n const canister_settings = IDL.Record({\n freezing_threshold: IDL.Opt(IDL.Nat),\n controllers: IDL.Opt(IDL.Vec(IDL.Principal)),\n memory_allocation: IDL.Opt(IDL.Nat),\n compute_allocation: IDL.Opt(IDL.Nat)\n });\n const http_header = IDL.Record({value: IDL.Text, name: IDL.Text});\n const http_response = IDL.Record({\n status: IDL.Nat,\n body: IDL.Vec(IDL.Nat8),\n headers: IDL.Vec(http_header)\n });\n const http_request_error = IDL.Variant({\n dns_error: IDL.Null,\n no_consensus: IDL.Null,\n transform_error: IDL.Null,\n unreachable: IDL.Null,\n bad_tls: IDL.Null,\n conn_timeout: IDL.Null,\n invalid_url: IDL.Null,\n timeout: IDL.Null\n });\n const wasm_module = IDL.Vec(IDL.Nat8);\n return IDL.Service({\n canister_status: IDL.Func(\n [IDL.Record({canister_id: canister_id})],\n [\n IDL.Record({\n status: IDL.Variant({\n stopped: IDL.Null,\n stopping: IDL.Null,\n running: IDL.Null\n }),\n memory_size: IDL.Nat,\n cycles: IDL.Nat,\n settings: definite_canister_settings,\n module_hash: IDL.Opt(IDL.Vec(IDL.Nat8))\n })\n ],\n []\n ),\n create_canister: IDL.Func(\n [IDL.Record({settings: IDL.Opt(canister_settings)})],\n [IDL.Record({canister_id: canister_id})],\n []\n ),\n delete_canister: IDL.Func([IDL.Record({canister_id: canister_id})], [], []),\n deposit_cycles: IDL.Func([IDL.Record({canister_id: canister_id})], [], []),\n http_request: IDL.Func(\n [\n IDL.Record({\n url: IDL.Text,\n method: IDL.Variant({get: IDL.Null}),\n body: IDL.Opt(IDL.Vec(IDL.Nat8)),\n transform: IDL.Opt(\n IDL.Variant({\n function: IDL.Func([http_response], [http_response], ['query'])\n })\n ),\n headers: IDL.Vec(http_header)\n })\n ],\n [\n IDL.Variant({\n Ok: http_response,\n Err: IDL.Opt(http_request_error)\n })\n ],\n []\n ),\n install_code: IDL.Func(\n [\n IDL.Record({\n arg: IDL.Vec(IDL.Nat8),\n wasm_module: wasm_module,\n mode: IDL.Variant({\n reinstall: IDL.Null,\n upgrade: IDL.Null,\n install: IDL.Null\n }),\n canister_id: canister_id\n })\n ],\n [],\n []\n ),\n provisional_create_canister_with_cycles: IDL.Func(\n [\n IDL.Record({\n settings: IDL.Opt(canister_settings),\n amount: IDL.Opt(IDL.Nat)\n })\n ],\n [IDL.Record({canister_id: canister_id})],\n []\n ),\n provisional_top_up_canister: IDL.Func(\n [IDL.Record({canister_id: canister_id, amount: IDL.Nat})],\n [],\n []\n ),\n raw_rand: IDL.Func([], [IDL.Vec(IDL.Nat8)], []),\n start_canister: IDL.Func([IDL.Record({canister_id: canister_id})], [], []),\n stop_canister: IDL.Func([IDL.Record({canister_id: canister_id})], [], []),\n uninstall_code: IDL.Func([IDL.Record({canister_id: canister_id})], [], []),\n update_settings: IDL.Func(\n [\n IDL.Record({\n canister_id: IDL.Principal,\n settings: canister_settings\n })\n ],\n [],\n []\n )\n });\n};\n\n// @ts-ignore\nexport const init = ({IDL}) => {\n return [];\n};\n", "// @ts-ignore\nexport const idlFactory = ({IDL}) => {\n const Satellite = IDL.Record({\n updated_at: IDL.Nat64,\n metadata: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),\n created_at: IDL.Nat64,\n satellite_id: IDL.Principal\n });\n const ControllerScope = IDL.Variant({\n Write: IDL.Null,\n Admin: IDL.Null\n });\n const Controller = IDL.Record({\n updated_at: IDL.Nat64,\n metadata: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),\n created_at: IDL.Nat64,\n scope: ControllerScope,\n expires_at: IDL.Opt(IDL.Nat64)\n });\n const CanisterStatusType = IDL.Variant({\n stopped: IDL.Null,\n stopping: IDL.Null,\n running: IDL.Null\n });\n const DefiniteCanisterSettings = IDL.Record({\n freezing_threshold: IDL.Nat,\n controllers: IDL.Vec(IDL.Principal),\n memory_allocation: IDL.Nat,\n compute_allocation: IDL.Nat\n });\n const CanisterStatusResponse = IDL.Record({\n status: CanisterStatusType,\n memory_size: IDL.Nat,\n cycles: IDL.Nat,\n settings: DefiniteCanisterSettings,\n idle_cycles_burned_per_day: IDL.Nat,\n module_hash: IDL.Opt(IDL.Vec(IDL.Nat8))\n });\n const SegmentStatus = IDL.Record({\n id: IDL.Principal,\n status: CanisterStatusResponse,\n metadata: IDL.Opt(IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text))),\n status_at: IDL.Nat64\n });\n const Result = IDL.Variant({Ok: SegmentStatus, Err: IDL.Text});\n const SetController = IDL.Record({\n metadata: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),\n scope: ControllerScope,\n expires_at: IDL.Opt(IDL.Nat64)\n });\n const CronJobStatusesSatelliteConfig = IDL.Record({\n enabled: IDL.Bool,\n cycles_threshold: IDL.Opt(IDL.Nat64)\n });\n const StatusesArgs = IDL.Record({\n mission_control_cycles_threshold: IDL.Opt(IDL.Nat64),\n satellites: IDL.Vec(IDL.Tuple(IDL.Principal, CronJobStatusesSatelliteConfig)),\n cycles_threshold: IDL.Opt(IDL.Nat64)\n });\n const SegmentsStatuses = IDL.Record({\n satellites: IDL.Opt(IDL.Vec(Result)),\n mission_control: Result\n });\n const Tokens = IDL.Record({e8s: IDL.Nat64});\n return IDL.Service({\n add_mission_control_controllers: IDL.Func([IDL.Vec(IDL.Principal)], [], []),\n add_satellites_controllers: IDL.Func([IDL.Vec(IDL.Principal), IDL.Vec(IDL.Principal)], [], []),\n create_satellite: IDL.Func([IDL.Text], [Satellite], []),\n del_mission_control_controllers: IDL.Func([IDL.Vec(IDL.Principal)], [], []),\n del_satellites_controllers: IDL.Func([IDL.Vec(IDL.Principal), IDL.Vec(IDL.Principal)], [], []),\n get_user: IDL.Func([], [IDL.Principal], ['query']),\n list_mission_control_controllers: IDL.Func(\n [],\n [IDL.Vec(IDL.Tuple(IDL.Principal, Controller))],\n ['query']\n ),\n list_mission_control_statuses: IDL.Func([], [IDL.Vec(IDL.Tuple(IDL.Nat64, Result))], ['query']),\n list_satellite_statuses: IDL.Func(\n [IDL.Principal],\n [IDL.Opt(IDL.Vec(IDL.Tuple(IDL.Nat64, Result)))],\n ['query']\n ),\n list_satellites: IDL.Func([], [IDL.Vec(IDL.Tuple(IDL.Principal, Satellite))], ['query']),\n remove_mission_control_controllers: IDL.Func([IDL.Vec(IDL.Principal)], [], []),\n remove_satellites_controllers: IDL.Func(\n [IDL.Vec(IDL.Principal), IDL.Vec(IDL.Principal)],\n [],\n []\n ),\n set_metadata: IDL.Func([IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text))], [], []),\n set_mission_control_controllers: IDL.Func([IDL.Vec(IDL.Principal), SetController], [], []),\n set_satellites_controllers: IDL.Func(\n [IDL.Vec(IDL.Principal), IDL.Vec(IDL.Principal), SetController],\n [],\n []\n ),\n status: IDL.Func([StatusesArgs], [SegmentsStatuses], []),\n top_up: IDL.Func([IDL.Principal, Tokens], [], []),\n version: IDL.Func([], [IDL.Text], ['query'])\n });\n};\n// @ts-ignore\nexport const init = ({IDL}) => {\n return [];\n};\n", "// @ts-ignore\nexport const idlFactory = ({IDL}) => {\n const CommitBatch = IDL.Record({\n batch_id: IDL.Nat,\n headers: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),\n chunk_ids: IDL.Vec(IDL.Nat)\n });\n const DeleteControllersArgs = IDL.Record({\n controllers: IDL.Vec(IDL.Principal)\n });\n const Controller = IDL.Record({\n updated_at: IDL.Nat64,\n metadata: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),\n created_at: IDL.Nat64,\n expires_at: IDL.Opt(IDL.Nat64)\n });\n const DelDoc = IDL.Record({updated_at: IDL.Opt(IDL.Nat64)});\n const StorageConfig = IDL.Record({\n headers: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text))))\n });\n const Config = IDL.Record({storage: StorageConfig});\n const Doc = IDL.Record({\n updated_at: IDL.Nat64,\n owner: IDL.Principal,\n data: IDL.Vec(IDL.Nat8),\n created_at: IDL.Nat64\n });\n const HttpRequest = IDL.Record({\n url: IDL.Text,\n method: IDL.Text,\n body: IDL.Vec(IDL.Nat8),\n headers: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text))\n });\n const StreamingCallbackToken = IDL.Record({\n token: IDL.Opt(IDL.Text),\n sha256: IDL.Opt(IDL.Vec(IDL.Nat8)),\n headers: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),\n index: IDL.Nat64,\n encoding_type: IDL.Text,\n full_path: IDL.Text\n });\n const StreamingStrategy = IDL.Variant({\n Callback: IDL.Record({\n token: StreamingCallbackToken,\n callback: IDL.Func([], [], [])\n })\n });\n const HttpResponse = IDL.Record({\n body: IDL.Vec(IDL.Nat8),\n headers: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),\n streaming_strategy: IDL.Opt(StreamingStrategy),\n status_code: IDL.Nat16\n });\n const StreamingCallbackHttpResponse = IDL.Record({\n token: IDL.Opt(StreamingCallbackToken),\n body: IDL.Vec(IDL.Nat8)\n });\n const InitAssetKey = IDL.Record({\n token: IDL.Opt(IDL.Text),\n collection: IDL.Text,\n name: IDL.Text,\n encoding_type: IDL.Opt(IDL.Text),\n full_path: IDL.Text\n });\n const InitUploadResult = IDL.Record({batch_id: IDL.Nat});\n const ListOrderField = IDL.Variant({\n UpdatedAt: IDL.Null,\n Keys: IDL.Null,\n CreatedAt: IDL.Null\n });\n const ListOrder = IDL.Record({field: ListOrderField, desc: IDL.Bool});\n const ListPaginate = IDL.Record({\n start_after: IDL.Opt(IDL.Text),\n limit: IDL.Opt(IDL.Nat64)\n });\n const ListParams = IDL.Record({\n order: IDL.Opt(ListOrder),\n owner: IDL.Opt(IDL.Principal),\n matcher: IDL.Opt(IDL.Text),\n paginate: IDL.Opt(ListPaginate)\n });\n const AssetKey = IDL.Record({\n token: IDL.Opt(IDL.Text),\n collection: IDL.Text,\n owner: IDL.Principal,\n name: IDL.Text,\n full_path: IDL.Text\n });\n const AssetEncodingNoContent = IDL.Record({\n modified: IDL.Nat64,\n sha256: IDL.Vec(IDL.Nat8),\n total_length: IDL.Nat\n });\n const AssetNoContent = IDL.Record({\n key: AssetKey,\n updated_at: IDL.Nat64,\n encodings: IDL.Vec(IDL.Tuple(IDL.Text, AssetEncodingNoContent)),\n headers: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),\n created_at: IDL.Nat64\n });\n const ListResults = IDL.Record({\n matches_length: IDL.Nat64,\n length: IDL.Nat64,\n items: IDL.Vec(IDL.Tuple(IDL.Text, AssetNoContent))\n });\n const CustomDomain = IDL.Record({\n updated_at: IDL.Nat64,\n created_at: IDL.Nat64,\n bn_id: IDL.Opt(IDL.Text)\n });\n const ListResults_1 = IDL.Record({\n matches_length: IDL.Nat64,\n length: IDL.Nat64,\n items: IDL.Vec(IDL.Tuple(IDL.Text, Doc))\n });\n const RulesType = IDL.Variant({Db: IDL.Null, Storage: IDL.Null});\n const Permission = IDL.Variant({\n Controllers: IDL.Null,\n Private: IDL.Null,\n Public: IDL.Null,\n Managed: IDL.Null\n });\n const Rule = IDL.Record({\n updated_at: IDL.Nat64,\n max_size: IDL.Opt(IDL.Nat),\n read: Permission,\n created_at: IDL.Nat64,\n write: Permission\n });\n const SetController = IDL.Record({\n metadata: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),\n expires_at: IDL.Opt(IDL.Nat64)\n });\n const SetControllersArgs = IDL.Record({\n controller: SetController,\n controllers: IDL.Vec(IDL.Principal)\n });\n const SetDoc = IDL.Record({\n updated_at: IDL.Opt(IDL.Nat64),\n data: IDL.Vec(IDL.Nat8)\n });\n const SetRule = IDL.Record({\n updated_at: IDL.Opt(IDL.Nat64),\n max_size: IDL.Opt(IDL.Nat),\n read: Permission,\n write: Permission\n });\n const Chunk = IDL.Record({\n content: IDL.Vec(IDL.Nat8),\n batch_id: IDL.Nat\n });\n const UploadChunk = IDL.Record({chunk_id: IDL.Nat});\n return IDL.Service({\n commit_asset_upload: IDL.Func([CommitBatch], [], []),\n del_asset: IDL.Func([IDL.Text, IDL.Text], [], []),\n del_assets: IDL.Func([IDL.Opt(IDL.Text)], [], []),\n del_controllers: IDL.Func(\n [DeleteControllersArgs],\n [IDL.Vec(IDL.Tuple(IDL.Principal, Controller))],\n []\n ),\n del_custom_domain: IDL.Func([IDL.Text], [], []),\n del_doc: IDL.Func([IDL.Text, IDL.Text, DelDoc], [], []),\n get_config: IDL.Func([], [Config], []),\n get_doc: IDL.Func([IDL.Text, IDL.Text], [IDL.Opt(Doc)], ['query']),\n http_request: IDL.Func([HttpRequest], [HttpResponse], ['query']),\n http_request_streaming_callback: IDL.Func(\n [StreamingCallbackToken],\n [StreamingCallbackHttpResponse],\n ['query']\n ),\n init_asset_upload: IDL.Func([InitAssetKey], [InitUploadResult], []),\n list_assets: IDL.Func([IDL.Opt(IDL.Text), ListParams], [ListResults], ['query']),\n list_controllers: IDL.Func([], [IDL.Vec(IDL.Tuple(IDL.Principal, Controller))], ['query']),\n list_custom_domains: IDL.Func([], [IDL.Vec(IDL.Tuple(IDL.Text, CustomDomain))], ['query']),\n list_docs: IDL.Func([IDL.Text, ListParams], [ListResults_1], ['query']),\n list_rules: IDL.Func([RulesType], [IDL.Vec(IDL.Tuple(IDL.Text, Rule))], ['query']),\n set_config: IDL.Func([Config], [], []),\n set_controllers: IDL.Func(\n [SetControllersArgs],\n [IDL.Vec(IDL.Tuple(IDL.Principal, Controller))],\n []\n ),\n set_custom_domain: IDL.Func([IDL.Text, IDL.Opt(IDL.Text)], [], []),\n set_doc: IDL.Func([IDL.Text, IDL.Text, SetDoc], [Doc], []),\n set_rule: IDL.Func([RulesType, IDL.Text, SetRule], [], []),\n upload_asset_chunk: IDL.Func([Chunk], [UploadChunk], []),\n version: IDL.Func([], [IDL.Text], ['query'])\n });\n};\n// @ts-ignore\nexport const init = ({IDL}) => {\n return [];\n};\n", "export const idlFactory = ({IDL}) => {\n const CommitBatch = IDL.Record({\n batch_id: IDL.Nat,\n headers: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),\n chunk_ids: IDL.Vec(IDL.Nat)\n });\n const DeleteControllersArgs = IDL.Record({\n controllers: IDL.Vec(IDL.Principal)\n });\n const Controller = IDL.Record({\n updated_at: IDL.Nat64,\n metadata: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),\n created_at: IDL.Nat64,\n expires_at: IDL.Opt(IDL.Nat64)\n });\n const DelDoc = IDL.Record({updated_at: IDL.Opt(IDL.Nat64)});\n const StorageConfig = IDL.Record({\n headers: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text))))\n });\n const Config = IDL.Record({storage: StorageConfig});\n const Doc = IDL.Record({\n updated_at: IDL.Nat64,\n owner: IDL.Principal,\n data: IDL.Vec(IDL.Nat8),\n created_at: IDL.Nat64\n });\n const HttpRequest = IDL.Record({\n url: IDL.Text,\n method: IDL.Text,\n body: IDL.Vec(IDL.Nat8),\n headers: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text))\n });\n const StreamingCallbackToken = IDL.Record({\n token: IDL.Opt(IDL.Text),\n sha256: IDL.Opt(IDL.Vec(IDL.Nat8)),\n headers: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),\n index: IDL.Nat64,\n encoding_type: IDL.Text,\n full_path: IDL.Text\n });\n const StreamingStrategy = IDL.Variant({\n Callback: IDL.Record({\n token: StreamingCallbackToken,\n callback: IDL.Func([], [], [])\n })\n });\n const HttpResponse = IDL.Record({\n body: IDL.Vec(IDL.Nat8),\n headers: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),\n streaming_strategy: IDL.Opt(StreamingStrategy),\n status_code: IDL.Nat16\n });\n const StreamingCallbackHttpResponse = IDL.Record({\n token: IDL.Opt(StreamingCallbackToken),\n body: IDL.Vec(IDL.Nat8)\n });\n const InitAssetKey = IDL.Record({\n token: IDL.Opt(IDL.Text),\n collection: IDL.Text,\n name: IDL.Text,\n encoding_type: IDL.Opt(IDL.Text),\n full_path: IDL.Text\n });\n const InitUploadResult = IDL.Record({batch_id: IDL.Nat});\n const ListOrderField = IDL.Variant({\n UpdatedAt: IDL.Null,\n Keys: IDL.Null,\n CreatedAt: IDL.Null\n });\n const ListOrder = IDL.Record({field: ListOrderField, desc: IDL.Bool});\n const ListPaginate = IDL.Record({\n start_after: IDL.Opt(IDL.Text),\n limit: IDL.Opt(IDL.Nat64)\n });\n const ListParams = IDL.Record({\n order: IDL.Opt(ListOrder),\n matcher: IDL.Opt(IDL.Text),\n paginate: IDL.Opt(ListPaginate)\n });\n const AssetKey = IDL.Record({\n token: IDL.Opt(IDL.Text),\n collection: IDL.Text,\n owner: IDL.Principal,\n name: IDL.Text,\n full_path: IDL.Text\n });\n const AssetEncodingNoContent = IDL.Record({\n modified: IDL.Nat64,\n sha256: IDL.Vec(IDL.Nat8),\n total_length: IDL.Nat\n });\n const AssetNoContent = IDL.Record({\n key: AssetKey,\n updated_at: IDL.Nat64,\n encodings: IDL.Vec(IDL.Tuple(IDL.Text, AssetEncodingNoContent)),\n headers: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),\n created_at: IDL.Nat64\n });\n const ListResults = IDL.Record({\n matches_length: IDL.Nat64,\n length: IDL.Nat64,\n items: IDL.Vec(IDL.Tuple(IDL.Text, AssetNoContent))\n });\n const CustomDomain = IDL.Record({\n updated_at: IDL.Nat64,\n created_at: IDL.Nat64,\n bn_id: IDL.Opt(IDL.Text)\n });\n const ListResults_1 = IDL.Record({\n matches_length: IDL.Nat64,\n length: IDL.Nat64,\n items: IDL.Vec(IDL.Tuple(IDL.Text, Doc))\n });\n const RulesType = IDL.Variant({Db: IDL.Null, Storage: IDL.Null});\n const Permission = IDL.Variant({\n Controllers: IDL.Null,\n Private: IDL.Null,\n Public: IDL.Null,\n Managed: IDL.Null\n });\n const Rule = IDL.Record({\n updated_at: IDL.Nat64,\n max_size: IDL.Opt(IDL.Nat),\n read: Permission,\n created_at: IDL.Nat64,\n write: Permission\n });\n const SetController = IDL.Record({\n metadata: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),\n expires_at: IDL.Opt(IDL.Nat64)\n });\n const SetControllersArgs = IDL.Record({\n controller: SetController,\n controllers: IDL.Vec(IDL.Principal)\n });\n const SetDoc = IDL.Record({\n updated_at: IDL.Opt(IDL.Nat64),\n data: IDL.Vec(IDL.Nat8)\n });\n const SetRule = IDL.Record({\n updated_at: IDL.Opt(IDL.Nat64),\n max_size: IDL.Opt(IDL.Nat),\n read: Permission,\n write: Permission\n });\n const Chunk = IDL.Record({\n content: IDL.Vec(IDL.Nat8),\n batch_id: IDL.Nat\n });\n const UploadChunk = IDL.Record({chunk_id: IDL.Nat});\n return IDL.Service({\n commit_asset_upload: IDL.Func([CommitBatch], [], []),\n del_asset: IDL.Func([IDL.Text, IDL.Text], [], []),\n del_assets: IDL.Func([IDL.Opt(IDL.Text)], [], []),\n del_controllers: IDL.Func(\n [DeleteControllersArgs],\n [IDL.Vec(IDL.Tuple(IDL.Principal, Controller))],\n []\n ),\n del_custom_domain: IDL.Func([IDL.Text], [], []),\n del_doc: IDL.Func([IDL.Text, IDL.Text, DelDoc], [], []),\n get_config: IDL.Func([], [Config], []),\n get_doc: IDL.Func([IDL.Text, IDL.Text], [IDL.Opt(Doc)], ['query']),\n http_request: IDL.Func([HttpRequest], [HttpResponse], ['query']),\n http_request_streaming_callback: IDL.Func(\n [StreamingCallbackToken],\n [StreamingCallbackHttpResponse],\n ['query']\n ),\n init_asset_upload: IDL.Func([InitAssetKey], [InitUploadResult], []),\n list_assets: IDL.Func([IDL.Opt(IDL.Text), ListParams], [ListResults], ['query']),\n list_controllers: IDL.Func([], [IDL.Vec(IDL.Principal)], ['query']),\n list_custom_domains: IDL.Func([], [IDL.Vec(IDL.Tuple(IDL.Text, CustomDomain))], ['query']),\n list_docs: IDL.Func([IDL.Text, ListParams], [ListResults_1], ['query']),\n list_rules: IDL.Func([RulesType], [IDL.Vec(IDL.Tuple(IDL.Text, Rule))], ['query']),\n set_config: IDL.Func([Config], [], []),\n set_controllers: IDL.Func(\n [SetControllersArgs],\n [IDL.Vec(IDL.Tuple(IDL.Principal, Controller))],\n []\n ),\n set_custom_domain: IDL.Func([IDL.Text, IDL.Opt(IDL.Text)], [], []),\n set_doc: IDL.Func([IDL.Text, IDL.Text, SetDoc], [Doc], []),\n set_rule: IDL.Func([RulesType, IDL.Text, SetRule], [], []),\n upload_asset_chunk: IDL.Func([Chunk], [UploadChunk], []),\n version: IDL.Func([], [IDL.Text], ['query'])\n });\n};\nexport const init = ({IDL}) => {\n return [];\n};\n", "// @ts-ignore\nexport const idlFactory = ({IDL}) => {\n const CommitBatch = IDL.Record({\n batch_id: IDL.Nat,\n headers: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),\n chunk_ids: IDL.Vec(IDL.Nat)\n });\n const DeleteControllersArgs = IDL.Record({\n controllers: IDL.Vec(IDL.Principal)\n });\n const ControllerScope = IDL.Variant({\n Write: IDL.Null,\n Admin: IDL.Null\n });\n const Controller = IDL.Record({\n updated_at: IDL.Nat64,\n metadata: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),\n created_at: IDL.Nat64,\n scope: ControllerScope,\n expires_at: IDL.Opt(IDL.Nat64)\n });\n const DelDoc = IDL.Record({updated_at: IDL.Opt(IDL.Nat64)});\n const RulesType = IDL.Variant({Db: IDL.Null, Storage: IDL.Null});\n const StorageConfig = IDL.Record({\n headers: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text))))\n });\n const Config = IDL.Record({storage: StorageConfig});\n const Doc = IDL.Record({\n updated_at: IDL.Nat64,\n owner: IDL.Principal,\n data: IDL.Vec(IDL.Nat8),\n description: IDL.Opt(IDL.Text),\n created_at: IDL.Nat64\n });\n const HttpRequest = IDL.Record({\n url: IDL.Text,\n method: IDL.Text,\n body: IDL.Vec(IDL.Nat8),\n headers: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text))\n });\n const StreamingCallbackToken = IDL.Record({\n token: IDL.Opt(IDL.Text),\n sha256: IDL.Opt(IDL.Vec(IDL.Nat8)),\n headers: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),\n index: IDL.Nat64,\n encoding_type: IDL.Text,\n full_path: IDL.Text\n });\n const StreamingStrategy = IDL.Variant({\n Callback: IDL.Record({\n token: StreamingCallbackToken,\n callback: IDL.Func([], [], [])\n })\n });\n const HttpResponse = IDL.Record({\n body: IDL.Vec(IDL.Nat8),\n headers: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),\n streaming_strategy: IDL.Opt(StreamingStrategy),\n status_code: IDL.Nat16\n });\n const StreamingCallbackHttpResponse = IDL.Record({\n token: IDL.Opt(StreamingCallbackToken),\n body: IDL.Vec(IDL.Nat8)\n });\n const InitAssetKey = IDL.Record({\n token: IDL.Opt(IDL.Text),\n collection: IDL.Text,\n name: IDL.Text,\n description: IDL.Opt(IDL.Text),\n encoding_type: IDL.Opt(IDL.Text),\n full_path: IDL.Text\n });\n const InitUploadResult = IDL.Record({batch_id: IDL.Nat});\n const ListOrderField = IDL.Variant({\n UpdatedAt: IDL.Null,\n Keys: IDL.Null,\n CreatedAt: IDL.Null\n });\n const ListOrder = IDL.Record({field: ListOrderField, desc: IDL.Bool});\n const ListMatcher = IDL.Record({\n key: IDL.Opt(IDL.Text),\n description: IDL.Opt(IDL.Text)\n });\n const ListPaginate = IDL.Record({\n start_after: IDL.Opt(IDL.Text),\n limit: IDL.Opt(IDL.Nat64)\n });\n const ListParams = IDL.Record({\n order: IDL.Opt(ListOrder),\n owner: IDL.Opt(IDL.Principal),\n matcher: IDL.Opt(ListMatcher),\n paginate: IDL.Opt(ListPaginate)\n });\n const AssetKey = IDL.Record({\n token: IDL.Opt(IDL.Text),\n collection: IDL.Text,\n owner: IDL.Principal,\n name: IDL.Text,\n description: IDL.Opt(IDL.Text),\n full_path: IDL.Text\n });\n const AssetEncodingNoContent = IDL.Record({\n modified: IDL.Nat64,\n sha256: IDL.Vec(IDL.Nat8),\n total_length: IDL.Nat\n });\n const AssetNoContent = IDL.Record({\n key: AssetKey,\n updated_at: IDL.Nat64,\n encodings: IDL.Vec(IDL.Tuple(IDL.Text, AssetEncodingNoContent)),\n headers: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),\n created_at: IDL.Nat64\n });\n const ListResults = IDL.Record({\n matches_pages: IDL.Opt(IDL.Nat64),\n matches_length: IDL.Nat64,\n items_page: IDL.Opt(IDL.Nat64),\n items: IDL.Vec(IDL.Tuple(IDL.Text, AssetNoContent)),\n items_length: IDL.Nat64\n });\n const CustomDomain = IDL.Record({\n updated_at: IDL.Nat64,\n created_at: IDL.Nat64,\n bn_id: IDL.Opt(IDL.Text)\n });\n const ListResults_1 = IDL.Record({\n matches_pages: IDL.Opt(IDL.Nat64),\n matches_length: IDL.Nat64,\n items_page: IDL.Opt(IDL.Nat64),\n items: IDL.Vec(IDL.Tuple(IDL.Text, Doc)),\n items_length: IDL.Nat64\n });\n const Permission = IDL.Variant({\n Controllers: IDL.Null,\n Private: IDL.Null,\n Public: IDL.Null,\n Managed: IDL.Null\n });\n const Rule = IDL.Record({\n updated_at: IDL.Nat64,\n max_size: IDL.Opt(IDL.Nat),\n read: Permission,\n created_at: IDL.Nat64,\n write: Permission\n });\n const SetController = IDL.Record({\n metadata: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),\n scope: ControllerScope,\n expires_at: IDL.Opt(IDL.Nat64)\n });\n const SetControllersArgs = IDL.Record({\n controller: SetController,\n controllers: IDL.Vec(IDL.Principal)\n });\n const SetDoc = IDL.Record({\n updated_at: IDL.Opt(IDL.Nat64),\n data: IDL.Vec(IDL.Nat8),\n description: IDL.Opt(IDL.Text)\n });\n const SetRule = IDL.Record({\n updated_at: IDL.Opt(IDL.Nat64),\n max_size: IDL.Opt(IDL.Nat),\n read: Permission,\n write: Permission\n });\n const Chunk = IDL.Record({\n content: IDL.Vec(IDL.Nat8),\n batch_id: IDL.Nat\n });\n const UploadChunk = IDL.Record({chunk_id: IDL.Nat});\n return IDL.Service({\n commit_asset_upload: IDL.Func([CommitBatch], [], []),\n del_asset: IDL.Func([IDL.Text, IDL.Text], [], []),\n del_assets: IDL.Func([IDL.Opt(IDL.Text)], [], []),\n del_controllers: IDL.Func(\n [DeleteControllersArgs],\n [IDL.Vec(IDL.Tuple(IDL.Principal, Controller))],\n []\n ),\n del_custom_domain: IDL.Func([IDL.Text], [], []),\n del_doc: IDL.Func([IDL.Text, IDL.Text, DelDoc], [], []),\n del_rule: IDL.Func([RulesType, IDL.Text, DelDoc], [], []),\n get_config: IDL.Func([], [Config], []),\n get_doc: IDL.Func([IDL.Text, IDL.Text], [IDL.Opt(Doc)], ['query']),\n http_request: IDL.Func([HttpRequest], [HttpResponse], ['query']),\n http_request_streaming_callback: IDL.Func(\n [StreamingCallbackToken],\n [StreamingCallbackHttpResponse],\n ['query']\n ),\n init_asset_upload: IDL.Func([InitAssetKey], [InitUploadResult], []),\n list_assets: IDL.Func([IDL.Opt(IDL.Text), ListParams], [ListResults], ['query']),\n list_controllers: IDL.Func([], [IDL.Vec(IDL.Tuple(IDL.Principal, Controller))], ['query']),\n list_custom_domains: IDL.Func([], [IDL.Vec(IDL.Tuple(IDL.Text, CustomDomain))], ['query']),\n list_docs: IDL.Func([IDL.Text, ListParams], [ListResults_1], ['query']),\n list_rules: IDL.Func([RulesType], [IDL.Vec(IDL.Tuple(IDL.Text, Rule))], ['query']),\n set_config: IDL.Func([Config], [], []),\n set_controllers: IDL.Func(\n [SetControllersArgs],\n [IDL.Vec(IDL.Tuple(IDL.Principal, Controller))],\n []\n ),\n set_custom_domain: IDL.Func([IDL.Text, IDL.Opt(IDL.Text)], [], []),\n set_doc: IDL.Func([IDL.Text, IDL.Text, SetDoc], [Doc], []),\n set_rule: IDL.Func([RulesType, IDL.Text, SetRule], [], []),\n upload_asset_chunk: IDL.Func([Chunk], [UploadChunk], []),\n version: IDL.Func([], [IDL.Text], ['query'])\n });\n};\n// @ts-ignore\nexport const init = ({IDL}) => {\n return [];\n};\n", "import { Buffer } from 'buffer/';\nimport {\n Agent,\n getDefaultAgent,\n QueryResponseRejected,\n QueryResponseStatus,\n ReplicaRejectCode,\n SubmitResponse,\n} from './agent';\nimport { AgentError } from './errors';\nimport { IDL } from '@dfinity/candid';\nimport { pollForResponse, PollStrategyFactory, strategy } from './polling';\nimport { Principal } from '@dfinity/principal';\nimport { RequestId } from './request_id';\nimport { toHex } from './utils/buffer';\nimport { CreateCertificateOptions } from './certificate';\nimport managementCanisterIdl from './canisters/management_idl';\nimport _SERVICE from './canisters/management_service';\n\nexport class ActorCallError extends AgentError {\n constructor(\n public readonly canisterId: Principal,\n public readonly methodName: string,\n public readonly type: 'query' | 'update',\n public readonly props: Record<string, string>,\n ) {\n super(\n [\n `Call failed:`,\n ` Canister: ${canisterId.toText()}`,\n ` Method: ${methodName} (${type})`,\n ...Object.getOwnPropertyNames(props).map(n => ` \"${n}\": ${JSON.stringify(props[n])}`),\n ].join('\\n'),\n );\n }\n}\n\nexport class QueryCallRejectedError extends ActorCallError {\n constructor(\n canisterId: Principal,\n methodName: string,\n public readonly result: QueryResponseRejected,\n ) {\n super(canisterId, methodName, 'query', {\n Status: result.status,\n Code: ReplicaRejectCode[result.reject_code] ?? `Unknown Code \"${result.reject_code}\"`,\n Message: result.reject_message,\n });\n }\n}\n\nexport class UpdateCallRejectedError extends ActorCallError {\n constructor(\n canisterId: Principal,\n methodName: string,\n public readonly requestId: RequestId,\n public readonly response: SubmitResponse['response'],\n ) {\n super(canisterId, methodName, 'update', {\n 'Request ID': toHex(requestId),\n 'HTTP status code': response.status.toString(),\n 'HTTP status text': response.statusText,\n });\n }\n}\n\n/**\n * Configuration to make calls to the Replica.\n */\nexport interface CallConfig {\n /**\n * An agent to use in this call, otherwise the actor or call will try to discover the\n * agent to use.\n */\n agent?: Agent;\n\n /**\n * A polling strategy factory that dictates how much and often we should poll the\n * read_state endpoint to get the result of an update call.\n */\n pollingStrategyFactory?: PollStrategyFactory;\n\n /**\n * The canister ID of this Actor.\n */\n canisterId?: string | Principal;\n\n /**\n * The effective canister ID. This should almost always be ignored.\n */\n effectiveCanisterId?: Principal;\n}\n\n/**\n * Configuration that can be passed to customize the Actor behaviour.\n */\nexport interface ActorConfig extends CallConfig {\n /**\n * The Canister ID of this Actor. This is required for an Actor.\n */\n canisterId: string | Principal;\n\n /**\n * An override function for update calls' CallConfig. This will be called on every calls.\n */\n callTransform?(\n methodName: string,\n args: unknown[],\n callConfig: CallConfig,\n ): Partial<CallConfig> | void;\n\n /**\n * An override function for query calls' CallConfig. This will be called on every query.\n */\n queryTransform?(\n methodName: string,\n args: unknown[],\n callConfig: CallConfig,\n ): Partial<CallConfig> | void;\n\n /**\n * Polyfill for BLS Certificate verification in case wasm is not supported\n */\n blsVerify?: CreateCertificateOptions['blsVerify'];\n}\n\n// TODO: move this to proper typing when Candid support TypeScript.\n/**\n * A subclass of an actor. Actor class itself is meant to be a based class.\n */\nexport type ActorSubclass<T = Record<string, ActorMethod>> = Actor & T;\n\n/**\n * An actor method type, defined for each methods of the actor service.\n */\nexport interface ActorMethod<Args extends unknown[] = unknown[], Ret extends unknown = unknown> {\n (...args: Args): Promise<Ret>;\n withOptions(options: CallConfig): (...args: Args) => Promise<Ret>;\n}\n\n/**\n * The mode used when installing a canister.\n */\nexport enum CanisterInstallMode {\n Install = 'install',\n Reinstall = 'reinstall',\n Upgrade = 'upgrade',\n}\n\n/**\n * Internal metadata for actors. It's an enhanced version of ActorConfig with\n * some fields marked as required (as they are defaulted) and canisterId as\n * a Principal type.\n */\ninterface ActorMetadata {\n service: IDL.ServiceClass;\n agent?: Agent;\n config: ActorConfig;\n}\n\nconst metadataSymbol = Symbol.for('ic-agent-metadata');\n\n/**\n * An actor base class. An actor is an object containing only functions that will\n * return a promise. These functions are derived from the IDL definition.\n */\nexport class Actor {\n /**\n * Get the Agent class this Actor would call, or undefined if the Actor would use\n * the default agent (global.ic.agent).\n * @param actor The actor to get the agent of.\n */\n public static agentOf(actor: Actor): Agent | undefined {\n return actor[metadataSymbol].config.agent;\n }\n\n /**\n * Get the interface of an actor, in the form of an instance of a Service.\n * @param actor The actor to get the interface of.\n */\n public static interfaceOf(actor: Actor): IDL.ServiceClass {\n return actor[metadataSymbol].service;\n }\n\n public static canisterIdOf(actor: Actor): Principal {\n return Principal.from(actor[metadataSymbol].config.canisterId);\n }\n\n public static async install(\n fields: {\n module: ArrayBuffer;\n mode?: CanisterInstallMode;\n arg?: ArrayBuffer;\n },\n config: ActorConfig,\n ): Promise<void> {\n const mode = fields.mode === undefined ? CanisterInstallMode.Install : fields.mode;\n // Need to transform the arg into a number array.\n const arg = fields.arg ? [...new Uint8Array(fields.arg)] : [];\n // Same for module.\n const wasmModule = [...new Uint8Array(fields.module)];\n const canisterId =\n typeof config.canisterId === 'string'\n ? Principal.fromText(config.canisterId)\n : config.canisterId;\n\n await getManagementCanister(config).install_code({\n mode: { [mode]: null } as any,\n arg,\n wasm_module: wasmModule,\n canister_id: canisterId,\n });\n }\n\n public static async createCanister(config?: CallConfig): Promise<Principal> {\n const { canister_id: canisterId } = await getManagementCanister(\n config || {},\n ).provisional_create_canister_with_cycles({ amount: [], settings: [] });\n\n return canisterId;\n }\n\n public static async createAndInstallCanister(\n interfaceFactory: IDL.InterfaceFactory,\n fields: {\n module: ArrayBuffer;\n arg?: ArrayBuffer;\n },\n config?: CallConfig,\n ): Promise<ActorSubclass> {\n const canisterId = await this.createCanister(config);\n await this.install(\n {\n ...fields,\n },\n { ...config, canisterId },\n );\n\n return this.createActor(interfaceFactory, { ...config, canisterId });\n }\n\n public static createActorClass(interfaceFactory: IDL.InterfaceFactory): ActorConstructor {\n const service = interfaceFactory({ IDL });\n\n class CanisterActor extends Actor {\n [x: string]: ActorMethod;\n\n constructor(config: ActorConfig) {\n const canisterId =\n typeof config.canisterId === 'string'\n ? Principal.fromText(config.canisterId)\n : config.canisterId;\n\n super({\n config: {\n ...DEFAULT_ACTOR_CONFIG,\n ...config,\n canisterId,\n },\n service,\n });\n\n for (const [methodName, func] of service._fields) {\n this[methodName] = _createActorMethod(this, methodName, func, config.blsVerify);\n }\n }\n }\n\n return CanisterActor;\n }\n\n public static createActor<T = Record<string, ActorMethod>>(\n interfaceFactory: IDL.InterfaceFactory,\n configuration: ActorConfig,\n ): ActorSubclass<T> {\n return new (this.createActorClass(interfaceFactory))(\n configuration,\n ) as unknown as ActorSubclass<T>;\n }\n\n private [metadataSymbol]: ActorMetadata;\n\n protected constructor(metadata: ActorMetadata) {\n this[metadataSymbol] = Object.freeze(metadata);\n }\n}\n\n// IDL functions can have multiple return values, so decoding always\n// produces an array. Ensure that functions with single or zero return\n// values behave as expected.\nfunction decodeReturnValue(types: IDL.Type[], msg: ArrayBuffer) {\n const returnValues = IDL.decode(types, Buffer.from(msg));\n switch (returnValues.length) {\n case 0:\n return undefined;\n case 1:\n return returnValues[0];\n default:\n return returnValues;\n }\n}\n\nconst DEFAULT_ACTOR_CONFIG = {\n pollingStrategyFactory: strategy.defaultStrategy,\n};\n\nexport type ActorConstructor = new (config: ActorConfig) => ActorSubclass;\n\nfunction _createActorMethod(\n actor: Actor,\n methodName: string,\n func: IDL.FuncClass,\n blsVerify?: CreateCertificateOptions['blsVerify'],\n): ActorMethod {\n let caller: (options: CallConfig, ...args: unknown[]) => Promise<unknown>;\n if (func.annotations.includes('query')) {\n caller = async (options, ...args) => {\n // First, if there's a config transformation, call it.\n options = {\n ...options,\n ...actor[metadataSymbol].config.queryTransform?.(methodName, args, {\n ...actor[metadataSymbol].config,\n ...options,\n }),\n };\n\n const agent = options.agent || actor[metadataSymbol].config.agent || getDefaultAgent();\n const cid = Principal.from(options.canisterId || actor[metadataSymbol].config.canisterId);\n const arg = IDL.encode(func.argTypes, args);\n\n const result = await agent.query(cid, { methodName, arg });\n\n switch (result.status) {\n case QueryResponseStatus.Rejected:\n throw new QueryCallRejectedError(cid, methodName, result);\n\n case QueryResponseStatus.Replied:\n return decodeReturnValue(func.retTypes, result.reply.arg);\n }\n };\n } else {\n caller = async (options, ...args) => {\n // First, if there's a config transformation, call it.\n options = {\n ...options,\n ...actor[metadataSymbol].config.callTransform?.(methodName, args, {\n ...actor[metadataSymbol].config,\n ...options,\n }),\n };\n\n const agent = options.agent || actor[metadataSymbol].config.agent || getDefaultAgent();\n const { canisterId, effectiveCanisterId, pollingStrategyFactory } = {\n ...DEFAULT_ACTOR_CONFIG,\n ...actor[metadataSymbol].config,\n ...options,\n };\n const cid = Principal.from(canisterId);\n const ecid = effectiveCanisterId !== undefined ? Principal.from(effectiveCanisterId) : cid;\n const arg = IDL.encode(func.argTypes, args);\n const { requestId, response } = await agent.call(cid, {\n methodName,\n arg,\n effectiveCanisterId: ecid,\n });\n\n if (!response.ok) {\n throw new UpdateCallRejectedError(cid, methodName, requestId, response);\n }\n\n const pollStrategy = pollingStrategyFactory();\n const responseBytes = await pollForResponse(agent, ecid, requestId, pollStrategy, blsVerify);\n\n if (responseBytes !== undefined) {\n return decodeReturnValue(func.retTypes, responseBytes);\n } else if (func.retTypes.length === 0) {\n return undefined;\n } else {\n throw new Error(`Call was returned undefined, but type [${func.retTypes.join(',')}].`);\n }\n };\n }\n\n const handler = (...args: unknown[]) => caller({}, ...args);\n handler.withOptions =\n (options: CallConfig) =>\n (...args: unknown[]) =>\n caller(options, ...args);\n return handler as ActorMethod;\n}\n\nexport type ManagementCanisterRecord = _SERVICE;\n\n/**\n * Create a management canister actor\n * @param config\n */\nexport function getManagementCanister(config: CallConfig): ActorSubclass<ManagementCanisterRecord> {\n function transform(_methodName: string, args: unknown[], _callConfig: CallConfig) {\n const first = args[0] as any;\n let effectiveCanisterId = Principal.fromHex('');\n if (first && typeof first === 'object' && first.canister_id) {\n effectiveCanisterId = Principal.from(first.canister_id as unknown);\n }\n return { effectiveCanisterId };\n }\n\n return Actor.createActor<ManagementCanisterRecord>(managementCanisterIdl, {\n ...config,\n canisterId: Principal.fromHex(''),\n ...{\n callTransform: transform,\n queryTransform: transform,\n },\n });\n}\n", "import { Principal } from '@dfinity/principal';\nimport { RequestId } from '../request_id';\nimport { JsonObject } from '@dfinity/candid';\nimport { Identity } from '../auth';\n\n/**\n * Codes used by the replica for rejecting a message.\n * See {@link https://sdk.dfinity.org/docs/interface-spec/#reject-codes | the interface spec}.\n */\nexport enum ReplicaRejectCode {\n SysFatal = 1,\n SysTransient = 2,\n DestinationInvalid = 3,\n CanisterReject = 4,\n CanisterError = 5,\n}\n\n/**\n * Options when doing a {@link Agent.readState} call.\n */\nexport interface ReadStateOptions {\n /**\n * A list of paths to read the state of.\n */\n paths: ArrayBuffer[][];\n}\n\n/**\n *\n */\nexport type QueryResponse = QueryResponseReplied | QueryResponseRejected;\n\nexport const enum QueryResponseStatus {\n Replied = 'replied',\n Rejected = 'rejected',\n}\n\nexport interface QueryResponseBase {\n status: QueryResponseStatus;\n}\n\nexport interface QueryResponseReplied extends QueryResponseBase {\n status: QueryResponseStatus.Replied;\n reply: { arg: ArrayBuffer };\n}\n\nexport interface QueryResponseRejected extends QueryResponseBase {\n status: QueryResponseStatus.Rejected;\n reject_code: ReplicaRejectCode;\n reject_message: string;\n}\n\n/**\n * Options when doing a {@link Agent.query} call.\n */\nexport interface QueryFields {\n /**\n * The method name to call.\n */\n methodName: string;\n\n /**\n * A binary encoded argument. This is already encoded and will be sent as is.\n */\n arg: ArrayBuffer;\n}\n\n/**\n * Options when doing a {@link Agent.call} call.\n */\nexport interface CallOptions {\n /**\n * The method name to call.\n */\n methodName: string;\n\n /**\n * A binary encoded argument. This is already encoded and will be sent as is.\n */\n arg: ArrayBuffer;\n\n /**\n * An effective canister ID, used for routing. This should only be mentioned if\n * it's different from the canister ID.\n */\n effectiveCanisterId: Principal | string;\n}\n\nexport interface ReadStateResponse {\n certificate: ArrayBuffer;\n}\n\nexport interface SubmitResponse {\n requestId: RequestId;\n response: {\n ok: boolean;\n status: number;\n statusText: string;\n };\n}\n\n/**\n * An Agent able to make calls and queries to a Replica.\n */\nexport interface Agent {\n readonly rootKey: ArrayBuffer | null;\n /**\n * Returns the principal ID associated with this agent (by default). It only shows\n * the principal of the default identity in the agent, which is the principal used\n * when calls don't specify it.\n */\n getPrincipal(): Promise<Principal>;\n\n /**\n * Create the request for the read state call.\n * `readState` uses this internally.\n * Useful to avoid signing the same request multiple times.\n */\n createReadStateRequest?(\n options: ReadStateOptions,\n identity?: Identity,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): Promise<any>;\n\n /**\n * Send a read state query to the replica. This includes a list of paths to return,\n * and will return a Certificate. This will only reject on communication errors,\n * but the certificate might contain less information than requested.\n * @param effectiveCanisterId A Canister ID related to this call.\n * @param options The options for this call.\n * @param identity Identity for the call. If not specified, uses the instance identity.\n * @param request The request to send in case it has already been created.\n */\n readState(\n effectiveCanisterId: Principal | string,\n options: ReadStateOptions,\n identity?: Identity,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n request?: any,\n ): Promise<ReadStateResponse>;\n\n call(canisterId: Principal | string, fields: CallOptions): Promise<SubmitResponse>;\n\n /**\n * Query the status endpoint of the replica. This normally has a few fields that\n * corresponds to the version of the replica, its root public key, and any other\n * information made public.\n * @returns A JsonObject that is essentially a record of fields from the status\n * endpoint.\n */\n status(): Promise<JsonObject>;\n\n /**\n * Send a query call to a canister. See\n * {@link https://sdk.dfinity.org/docs/interface-spec/#http-query | the interface spec}.\n * @param canisterId The Principal of the Canister to send the query to. Sending a query to\n * the management canister is not supported (as it has no meaning from an agent).\n * @param options Options to use to create and send the query.\n * @returns The response from the replica. The Promise will only reject when the communication\n * failed. If the query itself failed but no protocol errors happened, the response will\n * be of type QueryResponseRejected.\n */\n query(canisterId: Principal | string, options: QueryFields): Promise<QueryResponse>;\n\n /**\n * By default, the agent is configured to talk to the main Internet Computer,\n * and verifies responses using a hard-coded public key.\n *\n * This function will instruct the agent to ask the endpoint for its public\n * key, and use that instead. This is required when talking to a local test\n * instance, for example.\n *\n * Only use this when you are _not_ talking to the main Internet Computer,\n * otherwise you are prone to man-in-the-middle attacks! Do not call this\n * function by default.\n */\n fetchRootKey(): Promise<ArrayBuffer>;\n /**\n * If an application needs to invalidate an identity under certain conditions, an `Agent` may expose an `invalidateIdentity` method.\n * Invoking this method will set the inner identity used by the `Agent` to `null`.\n *\n * A use case for this would be - after a certain period of inactivity, a secure application chooses to invalidate the identity of any `HttpAgent` instances. An invalid identity can be replaced by `Agent.replaceIdentity`\n */\n invalidateIdentity?(): void;\n /**\n * If an application needs to replace an identity under certain conditions, an `Agent` may expose a `replaceIdentity` method.\n * Invoking this method will set the inner identity used by the `Agent` to a newly provided identity.\n *\n * A use case for this would be - after authenticating using `@dfinity/auth-client`, you can replace the `AnonymousIdentity` of your `Actor` with a `DelegationIdentity`.\n *\n * ```Actor.agentOf(defaultActor).replaceIdentity(await authClient.getIdentity());```\n */\n replaceIdentity?(identity: Identity): void;\n}\n", "import { Principal } from '@dfinity/principal';\nimport { HttpAgentRequest } from './agent/http/types';\nimport { requestIdOf } from './request_id';\nimport { concat, toHex } from './utils/buffer';\n\nconst domainSeparator = new TextEncoder().encode('\\x0Aic-request');\n\n/**\n * A Key Pair, containing a secret and public key.\n */\nexport interface KeyPair {\n secretKey: ArrayBuffer;\n publicKey: PublicKey;\n}\n\n/**\n * A public key that is DER encoded. This is a branded ArrayBuffer.\n */\nexport type DerEncodedPublicKey = ArrayBuffer & { __derEncodedPublicKey__?: void };\n\n/**\n * A signature array buffer.\n */\nexport type Signature = ArrayBuffer & { __signature__: void };\n\n/**\n * A Public Key implementation.\n */\nexport interface PublicKey {\n // Get the public key bytes encoded with DER.\n toDer(): DerEncodedPublicKey;\n}\n\n/**\n * A General Identity object. This does not have to be a private key (for example,\n * the Anonymous identity), but it must be able to transform request.\n */\nexport interface Identity {\n /**\n * Get the principal represented by this identity. Normally should be a\n * `Principal.selfAuthenticating()`.\n */\n getPrincipal(): Principal;\n\n /**\n * Transform a request into a signed version of the request. This is done last\n * after the transforms on the body of a request. The returned object can be\n * anything, but must be serializable to CBOR.\n */\n transformRequest(request: HttpAgentRequest): Promise<unknown>;\n}\n\n/**\n * An Identity that can sign blobs.\n */\nexport abstract class SignIdentity implements Identity {\n protected _principal: Principal | undefined;\n\n /**\n * Returns the public key that would match this identity's signature.\n */\n public abstract getPublicKey(): PublicKey;\n\n /**\n * Signs a blob of data, with this identity's private key.\n */\n public abstract sign(blob: ArrayBuffer): Promise<Signature>;\n\n /**\n * Get the principal represented by this identity. Normally should be a\n * `Principal.selfAuthenticating()`.\n */\n public getPrincipal(): Principal {\n if (!this._principal) {\n this._principal = Principal.selfAuthenticating(new Uint8Array(this.getPublicKey().toDer()));\n }\n return this._principal;\n }\n\n /**\n * Transform a request into a signed version of the request. This is done last\n * after the transforms on the body of a request. The returned object can be\n * anything, but must be serializable to CBOR.\n * @param request - internet computer request to transform\n */\n public async transformRequest(request: HttpAgentRequest): Promise<unknown> {\n const { body, ...fields } = request;\n const requestId = await requestIdOf(body);\n return {\n ...fields,\n body: {\n content: body,\n sender_pubkey: this.getPublicKey().toDer(),\n sender_sig: await this.sign(concat(domainSeparator, requestId)),\n },\n };\n }\n}\n\nexport class AnonymousIdentity implements Identity {\n public getPrincipal(): Principal {\n return Principal.anonymous();\n }\n\n public async transformRequest(request: HttpAgentRequest): Promise<unknown> {\n return {\n ...request,\n body: { content: request.body },\n };\n }\n}\n\n/*\n * We need to communicate with other agents on the page about identities,\n * but those messages may need to go across boundaries where it's not possible to\n * serialize/deserialize object prototypes easily.\n * So these are lightweight, serializable objects that contain enough information to recreate\n * SignIdentities, but don't commit to having all methods of SignIdentity.\n *\n * Use Case:\n * * DOM Events that let differently-versioned components communicate to one another about\n * Identities, even if they're using slightly different versions of agent packages to\n * create/interpret them.\n */\nexport interface AnonymousIdentityDescriptor {\n type: 'AnonymousIdentity';\n}\nexport interface PublicKeyIdentityDescriptor {\n type: 'PublicKeyIdentity';\n publicKey: string;\n}\nexport type IdentityDescriptor = AnonymousIdentityDescriptor | PublicKeyIdentityDescriptor;\n\n/**\n * Create an IdentityDescriptor from a @dfinity/identity Identity\n * @param identity - identity describe in returned descriptor\n */\nexport function createIdentityDescriptor(\n identity: SignIdentity | AnonymousIdentity,\n): IdentityDescriptor {\n const identityIndicator: IdentityDescriptor =\n 'getPublicKey' in identity\n ? { type: 'PublicKeyIdentity', publicKey: toHex(identity.getPublicKey().toDer()) }\n : { type: 'AnonymousIdentity' };\n return identityIndicator;\n}\n", "import { lebEncode } from '@dfinity/candid';\nimport * as cbor from 'simple-cbor';\nimport { Endpoint, HttpAgentRequest, HttpAgentRequestTransformFn, makeNonce, Nonce } from './types';\nimport { toHex } from '../../utils/buffer';\n\nconst NANOSECONDS_PER_MILLISECONDS = BigInt(1_000_000);\n\nconst REPLICA_PERMITTED_DRIFT_MILLISECONDS = BigInt(60 * 1000);\n\nexport class Expiry {\n private readonly _value: bigint;\n\n constructor(deltaInMSec: number) {\n // Use bigint because it can overflow the maximum number allowed in a double float.\n this._value =\n (BigInt(Date.now()) + BigInt(deltaInMSec) - REPLICA_PERMITTED_DRIFT_MILLISECONDS) *\n NANOSECONDS_PER_MILLISECONDS;\n }\n\n public toCBOR(): cbor.CborValue {\n // TODO: change this to take the minimum amount of space (it always takes 8 bytes now).\n return cbor.value.u64(this._value.toString(16), 16);\n }\n\n public toHash(): ArrayBuffer {\n return lebEncode(this._value);\n }\n}\n\n/**\n * Create a Nonce transform, which takes a function that returns a Buffer, and adds it\n * as the nonce to every call requests.\n * @param nonceFn A function that returns a buffer. By default uses a semi-random method.\n */\nexport function makeNonceTransform(nonceFn: () => Nonce = makeNonce): HttpAgentRequestTransformFn {\n return async (request: HttpAgentRequest) => {\n const nonce = nonceFn();\n // Nonce needs to be inserted into the header for all requests, to enable logs to be correlated with requests.\n const headers = request.request.headers ? new Headers(request.request.headers) : new Headers();\n // TODO: uncomment this when the http proxy supports it.\n // headers.set('X-IC-Request-ID', toHex(new Uint8Array(nonce)));\n request.request.headers = headers;\n\n // Nonce only needs to be inserted into the body for async calls, to prevent replay attacks.\n if (request.endpoint === Endpoint.Call) {\n request.body.nonce = nonceFn();\n }\n };\n}\n\n/**\n * Create a transform that adds a delay (by default 5 minutes) to the expiry.\n *\n * @param delayInMilliseconds The delay to add to the call time, in milliseconds.\n */\nexport function makeExpiryTransform(delayInMilliseconds: number): HttpAgentRequestTransformFn {\n return async (request: HttpAgentRequest) => {\n request.body.ingress_expiry = new Expiry(delayInMilliseconds);\n };\n}\n", "import type { Principal } from '@dfinity/principal';\nimport { Expiry } from './transforms';\nimport { lebEncode } from '@dfinity/candid';\n\n/**\n * @internal\n */\nexport const enum Endpoint {\n Query = 'read',\n ReadState = 'read_state',\n Call = 'call',\n}\n\n// An HttpAgent request, before it gets encoded and sent to the server.\n// We create an empty request that we will fill later.\nexport type HttpAgentRequest =\n | HttpAgentQueryRequest\n | HttpAgentSubmitRequest\n | HttpAgentReadStateRequest;\n\nexport interface HttpAgentBaseRequest {\n readonly endpoint: Endpoint;\n request: RequestInit;\n}\n\nexport interface HttpAgentSubmitRequest extends HttpAgentBaseRequest {\n readonly endpoint: Endpoint.Call;\n body: CallRequest;\n}\n\nexport interface HttpAgentQueryRequest extends HttpAgentBaseRequest {\n readonly endpoint: Endpoint.Query;\n body: ReadRequest;\n}\n\nexport interface HttpAgentReadStateRequest extends HttpAgentBaseRequest {\n readonly endpoint: Endpoint.ReadState;\n body: ReadRequest;\n}\n\nexport interface Signed<T> {\n content: T;\n sender_pubkey: ArrayBuffer;\n sender_sig: ArrayBuffer;\n}\n\nexport interface UnSigned<T> {\n content: T;\n}\n\nexport type Envelope<T> = Signed<T> | UnSigned<T>;\n\nexport interface HttpAgentRequestTransformFn {\n (args: HttpAgentRequest): Promise<HttpAgentRequest | undefined | void>;\n priority?: number;\n}\n\n// The fields in a \"call\" submit request.\n// tslint:disable:camel-case\nexport interface CallRequest extends Record<string, any> {\n request_type: SubmitRequestType.Call;\n canister_id: Principal;\n method_name: string;\n arg: ArrayBuffer;\n sender: Uint8Array | Principal;\n ingress_expiry: Expiry;\n}\n// tslint:enable:camel-case\n\n// The types of values allowed in the `request_type` field for submit requests.\nexport enum SubmitRequestType {\n Call = 'call',\n}\n\n// The types of values allowed in the `request_type` field for read requests.\nexport const enum ReadRequestType {\n Query = 'query',\n ReadState = 'read_state',\n}\n\n// The fields in a \"query\" read request.\nexport interface QueryRequest extends Record<string, any> {\n request_type: ReadRequestType.Query;\n canister_id: Principal;\n method_name: string;\n arg: ArrayBuffer;\n sender: Uint8Array | Principal;\n ingress_expiry: Expiry;\n}\n\nexport interface ReadStateRequest extends Record<string, any> {\n request_type: ReadRequestType.ReadState;\n paths: ArrayBuffer[][];\n ingress_expiry: Expiry;\n sender: Uint8Array | Principal;\n}\n\nexport type ReadRequest = QueryRequest | ReadStateRequest;\n\n// A Nonce that can be used for calls.\nexport type Nonce = Uint8Array & { __nonce__: void };\n\n/**\n * Create a random Nonce, based on date and a random suffix.\n */\nexport function makeNonce(): Nonce {\n // Encode 128 bits.\n const buffer = new ArrayBuffer(16);\n const view = new DataView(buffer);\n const now = BigInt(+Date.now());\n const randHi = Math.floor(Math.random() * 0xffffffff);\n const randLo = Math.floor(Math.random() * 0xffffffff);\n // Fix for IOS < 14.8 setBigUint64 absence\n if (typeof view.setBigUint64 === 'function') {\n view.setBigUint64(0, now);\n } else {\n const TWO_TO_THE_32 = BigInt(1) << BigInt(32);\n view.setUint32(0, Number(now >> BigInt(32)));\n view.setUint32(4, Number(now % TWO_TO_THE_32));\n }\n view.setUint32(8, randHi);\n view.setUint32(12, randLo);\n\n return buffer as Nonce;\n}\n", "import { JsonObject } from '@dfinity/candid';\nimport { Principal } from '@dfinity/principal';\nimport { AgentError } from '../../errors';\nimport { AnonymousIdentity, Identity } from '../../auth';\nimport * as cbor from '../../cbor';\nimport { RequestId, requestIdOf } from '../../request_id';\nimport { fromHex } from '../../utils/buffer';\nimport {\n Agent,\n QueryFields,\n QueryResponse,\n ReadStateOptions,\n ReadStateResponse,\n SubmitResponse,\n} from '../api';\nimport { Expiry, makeNonceTransform } from './transforms';\nimport {\n CallRequest,\n Endpoint,\n HttpAgentRequest,\n HttpAgentRequestTransformFn,\n HttpAgentSubmitRequest,\n makeNonce,\n QueryRequest,\n ReadRequestType,\n SubmitRequestType,\n} from './types';\n\nexport * from './transforms';\nexport { Nonce, makeNonce } from './types';\n\nexport enum RequestStatusResponseStatus {\n Received = 'received',\n Processing = 'processing',\n Replied = 'replied',\n Rejected = 'rejected',\n Unknown = 'unknown',\n Done = 'done',\n}\n\n// Default delta for ingress expiry is 5 minutes.\nconst DEFAULT_INGRESS_EXPIRY_DELTA_IN_MSECS = 5 * 60 * 1000;\n\n// Root public key for the IC, encoded as hex\nconst IC_ROOT_KEY =\n '308182301d060d2b0601040182dc7c0503010201060c2b0601040182dc7c05030201036100814' +\n 'c0e6ec71fab583b08bd81373c255c3c371b2e84863c98a4f1e08b74235d14fb5d9c0cd546d968' +\n '5f913a0c0b2cc5341583bf4b4392e467db96d65b9bb4cb717112f8472e0d5a4d14505ffd7484' +\n 'b01291091c5f87b98883463f98091a0baaae';\n\n// IC0 domain info\nconst IC0_DOMAIN = 'ic0.app';\nconst IC0_SUB_DOMAIN = '.ic0.app';\n\nconst ICP0_DOMAIN = 'icp0.io';\nconst ICP0_SUB_DOMAIN = '.icp0.io';\n\nconst ICP_API_DOMAIN = 'icp-api.io';\nconst ICP_API_SUB_DOMAIN = '.icp-api.io';\n\nclass HttpDefaultFetchError extends AgentError {\n constructor(public readonly message: string) {\n super(message);\n }\n}\nexport class IdentityInvalidError extends AgentError {\n constructor(public readonly message: string) {\n super(message);\n }\n}\n\n// HttpAgent options that can be used at construction.\nexport interface HttpAgentOptions {\n // Another HttpAgent to inherit configuration (pipeline and fetch) of. This\n // is only used at construction.\n source?: HttpAgent;\n\n // A surrogate to the global fetch function. Useful for testing.\n fetch?: typeof fetch;\n\n // Additional options to pass along to fetch. Will not override fields that\n // the agent already needs to set\n // Should follow the RequestInit interface, but we intentially support non-standard fields\n fetchOptions?: Record<string, unknown>;\n\n // Additional options to pass along to fetch for the call API.\n callOptions?: Record<string, unknown>;\n\n // The host to use for the client. By default, uses the same host as\n // the current page.\n host?: string;\n\n // The principal used to send messages. This cannot be empty at the request\n // time (will throw).\n identity?: Identity | Promise<Identity>;\n\n credentials?: {\n name: string;\n password?: string;\n };\n /**\n * Prevents the agent from providing a unique {@link Nonce} with each call.\n * Enabling may cause rate limiting of identical requests\n * at the boundary nodes.\n *\n * To add your own nonce generation logic, you can use the following:\n * @example\n * import {makeNonceTransform, makeNonce} from '@dfinity/agent';\n * const agent = new HttpAgent({ disableNonce: true });\n * agent.addTransform(makeNonceTransform(makeNonce);\n * @default false\n */\n disableNonce?: boolean;\n /**\n * Number of times to retry requests before throwing an error\n * @default 3\n */\n retryTimes?: number;\n}\n\nfunction getDefaultFetch(): typeof fetch {\n let defaultFetch;\n\n if (typeof window !== 'undefined') {\n // Browser context\n if (window.fetch) {\n defaultFetch = window.fetch.bind(window);\n } else {\n throw new HttpDefaultFetchError(\n 'Fetch implementation was not available. You appear to be in a browser context, but window.fetch was not present.',\n );\n }\n } else if (typeof global !== 'undefined') {\n // Node context\n if (global.fetch) {\n defaultFetch = global.fetch.bind(global);\n } else {\n throw new HttpDefaultFetchError(\n 'Fetch implementation was not available. You appear to be in a Node.js context, but global.fetch was not available.',\n );\n }\n } else if (typeof self !== 'undefined') {\n if (self.fetch) {\n defaultFetch = self.fetch.bind(self);\n }\n }\n\n if (defaultFetch) {\n return defaultFetch;\n }\n throw new HttpDefaultFetchError(\n 'Fetch implementation was not available. Please provide fetch to the HttpAgent constructor, or ensure it is available in the window or global context.',\n );\n}\n\ntype _RequestResponse = {\n requestId: RequestId;\n response: {\n ok: Response['ok'];\n status: Response['status'];\n statusText: Response['statusText'];\n };\n};\n\n// A HTTP agent allows users to interact with a client of the internet computer\n// using the available methods. It exposes an API that closely follows the\n// public view of the internet computer, and is not intended to be exposed\n// directly to the majority of users due to its low-level interface.\n//\n// There is a pipeline to apply transformations to the request before sending\n// it to the client. This is to decouple signature, nonce generation and\n// other computations so that this class can stay as simple as possible while\n// allowing extensions.\nexport class HttpAgent implements Agent {\n public rootKey = fromHex(IC_ROOT_KEY);\n private readonly _pipeline: HttpAgentRequestTransformFn[] = [];\n private _identity: Promise<Identity> | null;\n private readonly _fetch: typeof fetch;\n private readonly _fetchOptions?: Record<string, unknown>;\n private readonly _callOptions?: Record<string, unknown>;\n private _timeDiffMsecs = 0;\n private readonly _host: URL;\n private readonly _credentials: string | undefined;\n private _rootKeyFetched = false;\n private _retryTimes = 3; // Retry requests 3 times before erroring by default\n public readonly _isAgent = true;\n\n constructor(options: HttpAgentOptions = {}) {\n if (options.source) {\n if (!(options.source instanceof HttpAgent)) {\n throw new Error(\"An Agent's source can only be another HttpAgent\");\n }\n this._pipeline = [...options.source._pipeline];\n this._identity = options.source._identity;\n this._fetch = options.source._fetch;\n this._host = options.source._host;\n this._credentials = options.source._credentials;\n } else {\n this._fetch = options.fetch || getDefaultFetch() || fetch.bind(global);\n this._fetchOptions = options.fetchOptions;\n this._callOptions = options.callOptions;\n }\n if (options.host !== undefined) {\n if (!options.host.match(/^[a-z]+:/) && typeof window !== 'undefined') {\n this._host = new URL(window.location.protocol + '//' + options.host);\n } else {\n this._host = new URL(options.host);\n }\n } else if (options.source !== undefined) {\n // Safe to ignore here.\n this._host = options.source._host;\n } else {\n const location = typeof window !== 'undefined' ? window.location : undefined;\n if (!location) {\n throw new Error('Must specify a host to connect to.');\n }\n this._host = new URL(location + '');\n }\n // Default is 3, only set if option is provided\n if (options.retryTimes !== undefined) {\n this._retryTimes = options.retryTimes;\n }\n // Rewrite to avoid redirects\n if (this._host.hostname.endsWith(IC0_SUB_DOMAIN)) {\n this._host.hostname = IC0_DOMAIN;\n } else if (this._host.hostname.endsWith(ICP0_SUB_DOMAIN)) {\n this._host.hostname = ICP0_DOMAIN;\n } else if (this._host.hostname.endsWith(ICP_API_SUB_DOMAIN)) {\n this._host.hostname = ICP_API_DOMAIN;\n }\n\n if (options.credentials) {\n const { name, password } = options.credentials;\n this._credentials = `${name}${password ? ':' + password : ''}`;\n }\n this._identity = Promise.resolve(options.identity || new AnonymousIdentity());\n\n // Add a nonce transform to ensure calls are unique\n if (!options.disableNonce) {\n this.addTransform(makeNonceTransform(makeNonce));\n }\n }\n\n public isLocal(): boolean {\n const hostname = this._host.hostname;\n return hostname === '127.0.0.1' || hostname.endsWith('localhost');\n }\n\n public addTransform(fn: HttpAgentRequestTransformFn, priority = fn.priority || 0): void {\n // Keep the pipeline sorted at all time, by priority.\n const i = this._pipeline.findIndex(x => (x.priority || 0) < priority);\n this._pipeline.splice(i >= 0 ? i : this._pipeline.length, 0, Object.assign(fn, { priority }));\n }\n\n public async getPrincipal(): Promise<Principal> {\n if (!this._identity) {\n throw new IdentityInvalidError(\n \"This identity has expired due this application's security policy. Please refresh your authentication.\",\n );\n }\n return (await this._identity).getPrincipal();\n }\n\n public async call(\n canisterId: Principal | string,\n options: {\n methodName: string;\n arg: ArrayBuffer;\n effectiveCanisterId?: Principal | string;\n },\n identity?: Identity | Promise<Identity>,\n ): Promise<SubmitResponse> {\n const id = await (identity !== undefined ? await identity : await this._identity);\n if (!id) {\n throw new IdentityInvalidError(\n \"This identity has expired due this application's security policy. Please refresh your authentication.\",\n );\n }\n const canister = Principal.from(canisterId);\n const ecid = options.effectiveCanisterId\n ? Principal.from(options.effectiveCanisterId)\n : canister;\n\n const sender: Principal = id.getPrincipal() || Principal.anonymous();\n\n let ingress_expiry = new Expiry(DEFAULT_INGRESS_EXPIRY_DELTA_IN_MSECS);\n\n // If the value is off by more than 30 seconds, reconcile system time with the network\n if (Math.abs(this._timeDiffMsecs) > 1_000 * 30) {\n ingress_expiry = new Expiry(DEFAULT_INGRESS_EXPIRY_DELTA_IN_MSECS + this._timeDiffMsecs);\n }\n\n const submit: CallRequest = {\n request_type: SubmitRequestType.Call,\n canister_id: canister,\n method_name: options.methodName,\n arg: options.arg,\n sender,\n ingress_expiry,\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let transformedRequest: any = (await this._transform({\n request: {\n body: null,\n method: 'POST',\n headers: new Headers({\n 'Content-Type': 'application/cbor',\n ...(this._credentials ? { Authorization: 'Basic ' + btoa(this._credentials) } : {}),\n }),\n },\n endpoint: Endpoint.Call,\n body: submit,\n })) as HttpAgentSubmitRequest;\n\n // Apply transform for identity.\n transformedRequest = await id.transformRequest(transformedRequest);\n\n const body = cbor.encode(transformedRequest.body);\n\n // Run both in parallel. The fetch is quite expensive, so we have plenty of time to\n // calculate the requestId locally.\n\n const request = this._requestAndRetry(() =>\n this._fetch('' + new URL(`/api/v2/canister/${ecid.toText()}/call`, this._host), {\n ...this._callOptions,\n ...transformedRequest.request,\n body,\n }),\n );\n\n const [response, requestId] = await Promise.all([request, requestIdOf(submit)]);\n\n return {\n requestId,\n response: {\n ok: response.ok,\n status: response.status,\n statusText: response.statusText,\n },\n };\n }\n\n private async _requestAndRetry(request: () => Promise<Response>, tries = 0): Promise<Response> {\n if (tries > this._retryTimes && this._retryTimes !== 0) {\n throw new Error(\n `AgentError: Exceeded configured limit of ${this._retryTimes} retry attempts. Please check your network connection or try again in a few moments`,\n );\n }\n const response = await request();\n if (!response.ok) {\n const responseText = await response.clone().text();\n const errorMessage =\n `Server returned an error:\\n` +\n ` Code: ${response.status} (${response.statusText})\\n` +\n ` Body: ${responseText}\\n`;\n if (this._retryTimes > tries) {\n console.warn(errorMessage + ` Retrying request.`);\n return await this._requestAndRetry(request, tries + 1);\n } else {\n throw new Error(errorMessage);\n }\n }\n\n return response;\n }\n\n public async query(\n canisterId: Principal | string,\n fields: QueryFields,\n identity?: Identity | Promise<Identity>,\n ): Promise<QueryResponse> {\n const id = await (identity !== undefined ? await identity : await this._identity);\n if (!id) {\n throw new IdentityInvalidError(\n \"This identity has expired due this application's security policy. Please refresh your authentication.\",\n );\n }\n\n const canister = typeof canisterId === 'string' ? Principal.fromText(canisterId) : canisterId;\n const sender = id?.getPrincipal() || Principal.anonymous();\n\n const request: QueryRequest = {\n request_type: ReadRequestType.Query,\n canister_id: canister,\n method_name: fields.methodName,\n arg: fields.arg,\n sender,\n ingress_expiry: new Expiry(DEFAULT_INGRESS_EXPIRY_DELTA_IN_MSECS),\n };\n\n // TODO: remove this any. This can be a Signed or UnSigned request.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let transformedRequest: any = await this._transform({\n request: {\n method: 'POST',\n headers: new Headers({\n 'Content-Type': 'application/cbor',\n ...(this._credentials ? { Authorization: 'Basic ' + btoa(this._credentials) } : {}),\n }),\n },\n endpoint: Endpoint.Query,\n body: request,\n });\n\n // Apply transform for identity.\n transformedRequest = await id?.transformRequest(transformedRequest);\n\n const body = cbor.encode(transformedRequest.body);\n const response = await this._requestAndRetry(() =>\n this._fetch('' + new URL(`/api/v2/canister/${canister.toText()}/query`, this._host), {\n ...this._fetchOptions,\n ...transformedRequest.request,\n body,\n }),\n );\n\n return cbor.decode(await response.arrayBuffer());\n }\n\n public async createReadStateRequest(\n fields: ReadStateOptions,\n identity?: Identity | Promise<Identity>,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): Promise<any> {\n const id = await (identity !== undefined ? await identity : await this._identity);\n if (!id) {\n throw new IdentityInvalidError(\n \"This identity has expired due this application's security policy. Please refresh your authentication.\",\n );\n }\n const sender = id?.getPrincipal() || Principal.anonymous();\n\n // TODO: remove this any. This can be a Signed or UnSigned request.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const transformedRequest: any = await this._transform({\n request: {\n method: 'POST',\n headers: new Headers({\n 'Content-Type': 'application/cbor',\n ...(this._credentials ? { Authorization: 'Basic ' + btoa(this._credentials) } : {}),\n }),\n },\n endpoint: Endpoint.ReadState,\n body: {\n request_type: ReadRequestType.ReadState,\n paths: fields.paths,\n sender,\n ingress_expiry: new Expiry(DEFAULT_INGRESS_EXPIRY_DELTA_IN_MSECS),\n },\n });\n\n // Apply transform for identity.\n return id?.transformRequest(transformedRequest);\n }\n\n public async readState(\n canisterId: Principal | string,\n fields: ReadStateOptions,\n identity?: Identity | Promise<Identity>,\n // eslint-disable-next-line\n request?: any,\n ): Promise<ReadStateResponse> {\n const canister = typeof canisterId === 'string' ? Principal.fromText(canisterId) : canisterId;\n\n const transformedRequest = request ?? (await this.createReadStateRequest(fields, identity));\n const body = cbor.encode(transformedRequest.body);\n\n // TODO - https://dfinity.atlassian.net/browse/SDK-1092\n const response = await this._requestAndRetry(() =>\n this._fetch('' + new URL(`/api/v2/canister/${canister}/read_state`, this._host), {\n ...this._fetchOptions,\n ...transformedRequest.request,\n body,\n }),\n );\n\n if (!response.ok) {\n throw new Error(\n `Server returned an error:\\n` +\n ` Code: ${response.status} (${response.statusText})\\n` +\n ` Body: ${await response.text()}\\n`,\n );\n }\n return cbor.decode(await response.arrayBuffer());\n }\n\n /**\n * Allows agent to sync its time with the network. Can be called during intialization or mid-lifecycle if the device's clock has drifted away from the network time. This is necessary to set the Expiry for a request\n * @param {PrincipalLike} canisterId - Pass a canister ID if you need to sync the time with a particular replica. Uses the management canister by default\n */\n public async syncTime(canisterId?: Principal): Promise<void> {\n const CanisterStatus = await import('../../canisterStatus');\n const callTime = Date.now();\n try {\n if (!canisterId) {\n console.log(\n 'Syncing time with the IC. No canisterId provided, so falling back to ryjl3-tyaaa-aaaaa-aaaba-cai',\n );\n }\n const status = await CanisterStatus.request({\n // Fall back with canisterId of the ICP Ledger\n canisterId: canisterId ?? Principal.from('ryjl3-tyaaa-aaaaa-aaaba-cai'),\n agent: this,\n paths: ['time'],\n });\n\n const replicaTime = status.get('time');\n if (replicaTime) {\n this._timeDiffMsecs = Number(replicaTime as any) - Number(callTime);\n }\n } catch (error) {\n console.error('Caught exception while attempting to sync time:', error);\n }\n }\n\n public async status(): Promise<JsonObject> {\n const headers: Record<string, string> = this._credentials\n ? {\n Authorization: 'Basic ' + btoa(this._credentials),\n }\n : {};\n\n const response = await this._requestAndRetry(() =>\n this._fetch('' + new URL(`/api/v2/status`, this._host), { headers, ...this._fetchOptions }),\n );\n\n return cbor.decode(await response.arrayBuffer());\n }\n\n public async fetchRootKey(): Promise<ArrayBuffer> {\n if (!this._rootKeyFetched) {\n // Hex-encoded version of the replica root key\n this.rootKey = ((await this.status()) as any).root_key;\n this._rootKeyFetched = true;\n }\n return this.rootKey;\n }\n\n public invalidateIdentity(): void {\n this._identity = null;\n }\n\n public replaceIdentity(identity: Identity): void {\n this._identity = Promise.resolve(identity);\n }\n\n protected _transform(request: HttpAgentRequest): Promise<HttpAgentRequest> {\n let p = Promise.resolve(request);\n\n for (const fn of this._pipeline) {\n p = p.then(r => fn(r).then(r2 => r2 || r));\n }\n\n return p;\n }\n}\n", "import { JsonObject } from '@dfinity/candid';\nimport {\n Agent,\n CallOptions,\n QueryFields,\n QueryResponse,\n ReadStateOptions,\n ReadStateResponse,\n SubmitResponse,\n} from './api';\nimport { Principal } from '@dfinity/principal';\n\nexport enum ProxyMessageKind {\n Error = 'err',\n GetPrincipal = 'gp',\n GetPrincipalResponse = 'gpr',\n Query = 'q',\n QueryResponse = 'qr',\n Call = 'c',\n CallResponse = 'cr',\n ReadState = 'rs',\n ReadStateResponse = 'rsr',\n Status = 's',\n StatusResponse = 'sr',\n}\n\nexport interface ProxyMessageBase {\n id: number;\n type: ProxyMessageKind;\n}\n\nexport interface ProxyMessageError extends ProxyMessageBase {\n type: ProxyMessageKind.Error;\n error: any;\n}\n\nexport interface ProxyMessageGetPrincipal extends ProxyMessageBase {\n type: ProxyMessageKind.GetPrincipal;\n}\n\nexport interface ProxyMessageGetPrincipalResponse extends ProxyMessageBase {\n type: ProxyMessageKind.GetPrincipalResponse;\n response: string;\n}\n\nexport interface ProxyMessageQuery extends ProxyMessageBase {\n type: ProxyMessageKind.Query;\n args: [string, QueryFields];\n}\n\nexport interface ProxyMessageQueryResponse extends ProxyMessageBase {\n type: ProxyMessageKind.QueryResponse;\n response: QueryResponse;\n}\n\nexport interface ProxyMessageCall extends ProxyMessageBase {\n type: ProxyMessageKind.Call;\n args: [string, CallOptions];\n}\n\nexport interface ProxyMessageCallResponse extends ProxyMessageBase {\n type: ProxyMessageKind.CallResponse;\n response: SubmitResponse;\n}\n\nexport interface ProxyMessageReadState extends ProxyMessageBase {\n type: ProxyMessageKind.ReadState;\n args: [string, ReadStateOptions];\n}\n\nexport interface ProxyMessageReadStateResponse extends ProxyMessageBase {\n type: ProxyMessageKind.ReadStateResponse;\n response: ReadStateResponse;\n}\n\nexport interface ProxyMessageStatus extends ProxyMessageBase {\n type: ProxyMessageKind.Status;\n}\n\nexport interface ProxyMessageStatusResponse extends ProxyMessageBase {\n type: ProxyMessageKind.StatusResponse;\n response: JsonObject;\n}\n\nexport type ProxyMessage =\n | ProxyMessageError\n | ProxyMessageGetPrincipal\n | ProxyMessageGetPrincipalResponse\n | ProxyMessageQuery\n | ProxyMessageQueryResponse\n | ProxyMessageCall\n | ProxyMessageReadState\n | ProxyMessageReadStateResponse\n | ProxyMessageCallResponse\n | ProxyMessageStatus\n | ProxyMessageStatusResponse;\n\n// A Stub Agent that forwards calls to another Agent implementation.\nexport class ProxyStubAgent {\n constructor(private _frontend: (msg: ProxyMessage) => void, private _agent: Agent) {}\n\n public onmessage(msg: ProxyMessage): void {\n switch (msg.type) {\n case ProxyMessageKind.GetPrincipal:\n this._agent.getPrincipal().then(response => {\n this._frontend({\n id: msg.id,\n type: ProxyMessageKind.GetPrincipalResponse,\n response: response.toText(),\n });\n });\n break;\n case ProxyMessageKind.Query:\n this._agent.query(...msg.args).then(response => {\n this._frontend({\n id: msg.id,\n type: ProxyMessageKind.QueryResponse,\n response,\n });\n });\n break;\n case ProxyMessageKind.Call:\n this._agent.call(...msg.args).then(response => {\n this._frontend({\n id: msg.id,\n type: ProxyMessageKind.CallResponse,\n response,\n });\n });\n break;\n case ProxyMessageKind.ReadState:\n this._agent.readState(...msg.args).then(response => {\n this._frontend({\n id: msg.id,\n type: ProxyMessageKind.ReadStateResponse,\n response,\n });\n });\n break;\n case ProxyMessageKind.Status:\n this._agent.status().then(response => {\n this._frontend({\n id: msg.id,\n type: ProxyMessageKind.StatusResponse,\n response,\n });\n });\n break;\n\n default:\n throw new Error(`Invalid message received: ${JSON.stringify(msg)}`);\n }\n }\n}\n\n// An Agent that forwards calls to a backend. The calls are serialized\nexport class ProxyAgent implements Agent {\n private _nextId = 0;\n private _pendingCalls = new Map<number, [(resolve: any) => void, (reject: any) => void]>();\n public rootKey = null;\n\n constructor(private _backend: (msg: ProxyMessage) => void) {}\n\n public onmessage(msg: ProxyMessage): void {\n const id = msg.id;\n\n const maybePromise = this._pendingCalls.get(id);\n if (!maybePromise) {\n throw new Error('A proxy get the same message twice...');\n }\n\n this._pendingCalls.delete(id);\n const [resolve, reject] = maybePromise;\n\n switch (msg.type) {\n case ProxyMessageKind.Error:\n return reject(msg.error);\n case ProxyMessageKind.GetPrincipalResponse:\n case ProxyMessageKind.CallResponse:\n case ProxyMessageKind.QueryResponse:\n case ProxyMessageKind.ReadStateResponse:\n case ProxyMessageKind.StatusResponse:\n return resolve(msg.response);\n default:\n throw new Error(`Invalid message being sent to ProxyAgent: ${JSON.stringify(msg)}`);\n }\n }\n\n public async getPrincipal(): Promise<Principal> {\n return this._sendAndWait({\n id: this._nextId++,\n type: ProxyMessageKind.GetPrincipal,\n }).then(principal => {\n if (typeof principal !== 'string') {\n throw new Error('Invalid principal received.');\n }\n return Principal.fromText(principal);\n });\n }\n\n public readState(\n canisterId: Principal | string,\n fields: ReadStateOptions,\n ): Promise<ReadStateResponse> {\n return this._sendAndWait({\n id: this._nextId++,\n type: ProxyMessageKind.ReadState,\n args: [canisterId.toString(), fields],\n }) as Promise<ReadStateResponse>;\n }\n\n public call(canisterId: Principal | string, fields: CallOptions): Promise<SubmitResponse> {\n return this._sendAndWait({\n id: this._nextId++,\n type: ProxyMessageKind.Call,\n args: [canisterId.toString(), fields],\n }) as Promise<SubmitResponse>;\n }\n\n public status(): Promise<JsonObject> {\n return this._sendAndWait({\n id: this._nextId++,\n type: ProxyMessageKind.Status,\n }) as Promise<JsonObject>;\n }\n\n public query(canisterId: Principal | string, fields: QueryFields): Promise<QueryResponse> {\n return this._sendAndWait({\n id: this._nextId++,\n type: ProxyMessageKind.Query,\n args: [canisterId.toString(), fields],\n }) as Promise<QueryResponse>;\n }\n\n private async _sendAndWait(msg: ProxyMessage): Promise<unknown> {\n return new Promise((resolve, reject) => {\n this._pendingCalls.set(msg.id, [resolve, reject]);\n\n this._backend(msg);\n });\n }\n\n public async fetchRootKey(): Promise<ArrayBuffer> {\n // Hex-encoded version of the replica root key\n const rootKey = ((await this.status()) as any).root_key;\n this.rootKey = rootKey;\n return rootKey;\n }\n}\n", "import { GlobalInternetComputer } from '../index';\nimport { Agent } from './api';\n\nexport * from './api';\nexport * from './http';\nexport * from './proxy';\n\ndeclare const window: GlobalInternetComputer;\ndeclare const global: GlobalInternetComputer;\ndeclare const self: GlobalInternetComputer;\n\nexport function getDefaultAgent(): Agent {\n const agent =\n typeof window === 'undefined'\n ? typeof global === 'undefined'\n ? typeof self === 'undefined'\n ? undefined\n : self.ic.agent\n : global.ic.agent\n : window.ic.agent;\n\n if (!agent) {\n throw new Error('No Agent could be found.');\n }\n\n return agent;\n}\n", "import { Principal } from '@dfinity/principal';\nimport { RequestStatusResponseStatus } from '../agent';\nimport { toHex } from '../utils/buffer';\nimport { PollStrategy } from './index';\nimport { RequestId } from '../request_id';\n\nexport type Predicate<T> = (\n canisterId: Principal,\n requestId: RequestId,\n status: RequestStatusResponseStatus,\n) => Promise<T>;\n\nconst FIVE_MINUTES_IN_MSEC = 5 * 60 * 1000;\n\n/**\n * A best practices polling strategy: wait 2 seconds before the first poll, then 1 second\n * with an exponential backoff factor of 1.2. Timeout after 5 minutes.\n */\nexport function defaultStrategy(): PollStrategy {\n return chain(conditionalDelay(once(), 1000), backoff(1000, 1.2), timeout(FIVE_MINUTES_IN_MSEC));\n}\n\n/**\n * Predicate that returns true once.\n */\nexport function once(): Predicate<boolean> {\n let first = true;\n return async () => {\n if (first) {\n first = false;\n return true;\n }\n return false;\n };\n}\n\n/**\n * Delay the polling once.\n * @param condition A predicate that indicates when to delay.\n * @param timeInMsec The amount of time to delay.\n */\nexport function conditionalDelay(condition: Predicate<boolean>, timeInMsec: number): PollStrategy {\n return async (\n canisterId: Principal,\n requestId: RequestId,\n status: RequestStatusResponseStatus,\n ) => {\n if (await condition(canisterId, requestId, status)) {\n return new Promise(resolve => setTimeout(resolve, timeInMsec));\n }\n };\n}\n\n/**\n * Error out after a maximum number of polling has been done.\n * @param count The maximum attempts to poll.\n */\nexport function maxAttempts(count: number): PollStrategy {\n let attempts = count;\n return async (\n canisterId: Principal,\n requestId: RequestId,\n status: RequestStatusResponseStatus,\n ) => {\n if (--attempts <= 0) {\n throw new Error(\n `Failed to retrieve a reply for request after ${count} attempts:\\n` +\n ` Request ID: ${toHex(requestId)}\\n` +\n ` Request status: ${status}\\n`,\n );\n }\n };\n}\n\n/**\n * Throttle polling.\n * @param throttleInMsec Amount in millisecond to wait between each polling.\n */\nexport function throttle(throttleInMsec: number): PollStrategy {\n return () => new Promise(resolve => setTimeout(resolve, throttleInMsec));\n}\n\n/**\n * Reject a call after a certain amount of time.\n * @param timeInMsec Time in milliseconds before the polling should be rejected.\n */\nexport function timeout(timeInMsec: number): PollStrategy {\n const end = Date.now() + timeInMsec;\n return async (\n canisterId: Principal,\n requestId: RequestId,\n status: RequestStatusResponseStatus,\n ) => {\n if (Date.now() > end) {\n throw new Error(\n `Request timed out after ${timeInMsec} msec:\\n` +\n ` Request ID: ${toHex(requestId)}\\n` +\n ` Request status: ${status}\\n`,\n );\n }\n };\n}\n\n/**\n * A strategy that throttle, but using an exponential backoff strategy.\n * @param startingThrottleInMsec The throttle in milliseconds to start with.\n * @param backoffFactor The factor to multiple the throttle time between every poll. For\n * example if using 2, the throttle will double between every run.\n */\nexport function backoff(startingThrottleInMsec: number, backoffFactor: number): PollStrategy {\n let currentThrottling = startingThrottleInMsec;\n\n return () =>\n new Promise(resolve =>\n setTimeout(() => {\n currentThrottling *= backoffFactor;\n resolve();\n }, currentThrottling),\n );\n}\n\n/**\n * Chain multiple polling strategy. This _chains_ the strategies, so if you pass in,\n * say, two throttling strategy of 1 second, it will result in a throttle of 2 seconds.\n * @param strategies A strategy list to chain.\n */\nexport function chain(...strategies: PollStrategy[]): PollStrategy {\n return async (\n canisterId: Principal,\n requestId: RequestId,\n status: RequestStatusResponseStatus,\n ) => {\n for (const a of strategies) {\n await a(canisterId, requestId, status);\n }\n };\n}\n", "import { Principal } from '@dfinity/principal';\nimport { Agent, RequestStatusResponseStatus } from '../agent';\nimport { Certificate, CreateCertificateOptions } from '../certificate';\nimport { RequestId } from '../request_id';\nimport { toHex } from '../utils/buffer';\n\nexport * as strategy from './strategy';\nexport { defaultStrategy } from './strategy';\nexport type PollStrategy = (\n canisterId: Principal,\n requestId: RequestId,\n status: RequestStatusResponseStatus,\n) => Promise<void>;\nexport type PollStrategyFactory = () => PollStrategy;\n\n/**\n * Polls the IC to check the status of the given request then\n * returns the response bytes once the request has been processed.\n * @param agent The agent to use to poll read_state.\n * @param canisterId The effective canister ID.\n * @param requestId The Request ID to poll status for.\n * @param strategy A polling strategy.\n * @param request Request for the readState call.\n */\nexport async function pollForResponse(\n agent: Agent,\n canisterId: Principal,\n requestId: RequestId,\n strategy: PollStrategy,\n // eslint-disable-next-line\n request?: any,\n blsVerify?: CreateCertificateOptions['blsVerify'],\n): Promise<ArrayBuffer> {\n const path = [new TextEncoder().encode('request_status'), requestId];\n const currentRequest = request ?? (await agent.createReadStateRequest?.({ paths: [path] }));\n const state = await agent.readState(canisterId, { paths: [path] }, undefined, currentRequest);\n if (agent.rootKey == null) throw new Error('Agent root key not initialized before polling');\n const cert = await Certificate.create({\n certificate: state.certificate,\n rootKey: agent.rootKey,\n canisterId: canisterId,\n blsVerify,\n });\n const maybeBuf = cert.lookup([...path, new TextEncoder().encode('status')]);\n let status;\n if (typeof maybeBuf === 'undefined') {\n // Missing requestId means we need to wait\n status = RequestStatusResponseStatus.Unknown;\n } else {\n status = new TextDecoder().decode(maybeBuf);\n }\n\n switch (status) {\n case RequestStatusResponseStatus.Replied: {\n return cert.lookup([...path, 'reply'])!;\n }\n\n case RequestStatusResponseStatus.Received:\n case RequestStatusResponseStatus.Unknown:\n case RequestStatusResponseStatus.Processing:\n // Execute the polling strategy, then retry.\n await strategy(canisterId, requestId, status);\n return pollForResponse(agent, canisterId, requestId, strategy, currentRequest);\n\n case RequestStatusResponseStatus.Rejected: {\n const rejectCode = new Uint8Array(cert.lookup([...path, 'reject_code'])!)[0];\n const rejectMessage = new TextDecoder().decode(cert.lookup([...path, 'reject_message'])!);\n throw new Error(\n `Call was rejected:\\n` +\n ` Request ID: ${toHex(requestId)}\\n` +\n ` Reject code: ${rejectCode}\\n` +\n ` Reject text: ${rejectMessage}\\n`,\n );\n }\n\n case RequestStatusResponseStatus.Done:\n // This is _technically_ not an error, but we still didn't see the `Replied` status so\n // we don't know the result and cannot decode it.\n throw new Error(\n `Call was marked as done but we never saw the reply:\\n` +\n ` Request ID: ${toHex(requestId)}\\n`,\n );\n }\n throw new Error('unreachable');\n}\n", "/**\n * This file is generated from the candid for asset management.\n */\n/* tslint:disable */\n// @ts-ignore\nexport default ({ IDL }) => {\n const canister_id = IDL.Principal;\n const definite_canister_settings = IDL.Record({\n controllers: IDL.Vec(IDL.Principal),\n freezing_threshold: IDL.Nat,\n memory_allocation: IDL.Nat,\n compute_allocation: IDL.Nat,\n });\n const canister_settings = IDL.Record({\n controllers: IDL.Opt(IDL.Vec(IDL.Principal)),\n freezing_threshold: IDL.Opt(IDL.Nat),\n memory_allocation: IDL.Opt(IDL.Nat),\n compute_allocation: IDL.Opt(IDL.Nat),\n });\n const wasm_module = IDL.Vec(IDL.Nat8);\n return IDL.Service({\n canister_status: IDL.Func(\n [IDL.Record({ canister_id: canister_id })],\n [\n IDL.Record({\n status: IDL.Variant({\n stopped: IDL.Null,\n stopping: IDL.Null,\n running: IDL.Null,\n }),\n memory_size: IDL.Nat,\n cycles: IDL.Nat,\n settings: definite_canister_settings,\n module_hash: IDL.Opt(IDL.Vec(IDL.Nat8)),\n }),\n ],\n [],\n ),\n create_canister: IDL.Func(\n [IDL.Record({ settings: IDL.Opt(canister_settings) })],\n [IDL.Record({ canister_id: canister_id })],\n [],\n ),\n delete_canister: IDL.Func([IDL.Record({ canister_id: canister_id })], [], []),\n deposit_cycles: IDL.Func([IDL.Record({ canister_id: canister_id })], [], []),\n install_code: IDL.Func(\n [\n IDL.Record({\n arg: IDL.Vec(IDL.Nat8),\n wasm_module: wasm_module,\n mode: IDL.Variant({\n reinstall: IDL.Null,\n upgrade: IDL.Null,\n install: IDL.Null,\n }),\n canister_id: canister_id,\n }),\n ],\n [],\n [],\n ),\n provisional_create_canister_with_cycles: IDL.Func(\n [\n IDL.Record({\n settings: IDL.Opt(canister_settings),\n amount: IDL.Opt(IDL.Nat),\n }),\n ],\n [IDL.Record({ canister_id: canister_id })],\n [],\n ),\n provisional_top_up_canister: IDL.Func(\n [IDL.Record({ canister_id: canister_id, amount: IDL.Nat })],\n [],\n [],\n ),\n raw_rand: IDL.Func([], [IDL.Vec(IDL.Nat8)], []),\n start_canister: IDL.Func([IDL.Record({ canister_id: canister_id })], [], []),\n stop_canister: IDL.Func([IDL.Record({ canister_id: canister_id })], [], []),\n uninstall_code: IDL.Func([IDL.Record({ canister_id: canister_id })], [], []),\n update_settings: IDL.Func(\n [\n IDL.Record({\n canister_id: IDL.Principal,\n settings: canister_settings,\n }),\n ],\n [],\n [],\n ),\n });\n};\n", "import type {ActorConfig, ActorMethod, ActorSubclass} from '@dfinity/agent';\nimport {Actor, HttpAgent} from '@dfinity/agent';\nimport type {IDL} from '@dfinity/candid';\nimport type {ActorParameters} from '../types/actor.types';\n\nexport const createActor = async <T = Record<string, ActorMethod>>({\n canisterId,\n idlFactory,\n identity,\n fetch,\n env = 'prod',\n config\n}: {\n idlFactory: IDL.InterfaceFactory;\n canisterId: string;\n config?: Pick<ActorConfig, 'callTransform' | 'queryTransform'>;\n} & ActorParameters): Promise<ActorSubclass<T>> => {\n const host: string = env === 'dev' ? 'http://127.0.0.1:8000/' : 'https://icp0.io';\n\n const agent: HttpAgent = new HttpAgent({identity, ...(host && {host}), ...(fetch && {fetch})});\n\n if (env === 'dev') {\n // Fetch root key for certificate validation during development\n await agent.fetchRootKey();\n }\n\n // Creates an actor with using the candid interface and the HttpAgent\n return Actor.createActor(idlFactory, {\n agent,\n canisterId,\n ...(config !== undefined ? config : {})\n });\n};\n", "import type {CallConfig} from '@dfinity/agent';\nimport type {IDL} from '@dfinity/candid';\nimport {Principal} from '@dfinity/principal';\nimport type {_SERVICE as ConsoleActor} from '../../declarations/console/console.did';\nimport {idlFactory as idlFactoryConsole} from '../../declarations/console/console.factory.did.js';\nimport type {_SERVICE as ICActor} from '../../declarations/ic/ic.did';\nimport {idlFactory as idlFactorIC} from '../../declarations/ic/ic.factory.did';\nimport type {_SERVICE as MissionControlActor} from '../../declarations/mission_control/mission_control.did';\nimport {idlFactory as idlFactoryMissionControl} from '../../declarations/mission_control/mission_control.factory.did.js';\nimport type {_SERVICE as DeprecatedSatelliteNoScopeActor} from '../../declarations/satellite/satellite-deprecated-no-scope.did';\nimport {idlFactory as idlDeprecatedFactorySatelliteNoScope} from '../../declarations/satellite/satellite-deprecated-no-scope.factory.did.js';\nimport type {_SERVICE as DeprecatedSatelliteActor} from '../../declarations/satellite/satellite-deprecated.did';\nimport {idlFactory as idlDeprecatedFactorySatellite} from '../../declarations/satellite/satellite-deprecated.factory.did.js';\nimport type {_SERVICE as SatelliteActor} from '../../declarations/satellite/satellite.did';\nimport {idlFactory as idlFactorySatellite} from '../../declarations/satellite/satellite.factory.did.js';\nimport type {\n ActorParameters,\n ConsoleParameters,\n MissionControlParameters,\n SatelliteParameters\n} from '../types/actor.types';\nimport {createActor} from '../utils/actor.utils';\n\n// TODO: for backwards compatibility - to be removed\nexport const getDeprecatedSatelliteActor = async ({\n satelliteId,\n ...rest\n}: SatelliteParameters): Promise<DeprecatedSatelliteActor> =>\n getActor({\n canisterId: satelliteId,\n ...rest,\n idlFactory: idlDeprecatedFactorySatellite\n });\n\nexport const getSatelliteActor = async ({\n satelliteId,\n ...rest\n}: SatelliteParameters): Promise<SatelliteActor> =>\n getActor({\n canisterId: satelliteId,\n ...rest,\n idlFactory: idlFactorySatellite\n });\n\n// TODO: for backwards compatibility - to be removed\nexport const getDeprecatedSatelliteNoScopeActor = async ({\n satelliteId,\n ...rest\n}: SatelliteParameters): Promise<DeprecatedSatelliteNoScopeActor> =>\n getActor({\n canisterId: satelliteId,\n ...rest,\n idlFactory: idlDeprecatedFactorySatelliteNoScope\n });\n\nexport const getMissionControlActor = async ({\n missionControlId,\n ...rest\n}: MissionControlParameters): Promise<MissionControlActor> =>\n getActor({\n canisterId: missionControlId,\n ...rest,\n idlFactory: idlFactoryMissionControl\n });\n\nexport const getConsoleActor = async ({\n consoleId,\n ...rest\n}: ConsoleParameters): Promise<ConsoleActor> =>\n getActor({\n canisterId: consoleId,\n ...rest,\n idlFactory: idlFactoryConsole\n });\n\nexport const getActor = async <T>({\n canisterId,\n idlFactory,\n ...rest\n}: ActorParameters & {\n canisterId: string | undefined;\n idlFactory: IDL.InterfaceFactory;\n}): Promise<T> => {\n if (!canisterId) {\n throw new Error('No canister ID provided.');\n }\n\n return createActor({\n canisterId,\n idlFactory,\n ...rest\n });\n};\n\nconst MANAGEMENT_CANISTER_ID = Principal.fromText('aaaaa-aa');\n\n// Source nns-dapp - dart -> JS bridge\nconst transform = (\n _methodName: string,\n args: unknown[],\n _callConfig: CallConfig\n): {effectiveCanisterId: Principal} => {\n const first = args[0] as unknown;\n let effectiveCanisterId = MANAGEMENT_CANISTER_ID;\n if (first && typeof first === 'object' && first['canister_id']) {\n effectiveCanisterId = Principal.from(first['canister_id'] as unknown);\n }\n\n return {effectiveCanisterId};\n};\n\nexport const getICActor = (params: ActorParameters): Promise<ICActor> =>\n createActor<ICActor>({\n canisterId: MANAGEMENT_CANISTER_ID.toText(),\n config: {\n callTransform: transform,\n queryTransform: transform\n },\n idlFactory: idlFactorIC,\n ...params\n });\n", "import type {_SERVICE as ICActor} from '../../declarations/ic/ic.did';\nimport type {ActorParameters} from '../types/actor.types';\nimport type {InstallCodeParams} from '../types/ic.types';\nimport {getICActor} from './actor.api';\n\nexport const upgradeCode = async ({\n actor,\n code\n}: {\n actor: ActorParameters;\n code: Omit<InstallCodeParams, 'mode'>;\n}): Promise<void> => {\n const {install_code}: ICActor = await getICActor(actor);\n\n return install_code({\n ...code,\n mode: {upgrade: null}\n });\n};\n", "import type {Principal} from '@dfinity/principal';\nimport type {\n Controller,\n _SERVICE as MissionControlActor,\n SetController\n} from '../../declarations/mission_control/mission_control.did';\nimport type {MissionControlParameters} from '../types/actor.types';\nimport {getMissionControlActor} from './actor.api';\n\nexport const version = async ({\n missionControl\n}: {\n missionControl: MissionControlParameters;\n}): Promise<string> => {\n const actor: MissionControlActor = await getMissionControlActor(missionControl);\n return actor.version();\n};\n\nexport const getUser = async ({\n missionControl\n}: {\n missionControl: MissionControlParameters;\n}): Promise<Principal> => {\n const actor: MissionControlActor = await getMissionControlActor(missionControl);\n return actor.get_user();\n};\n\nexport const listControllers = async ({\n missionControl\n}: {\n missionControl: MissionControlParameters;\n}): Promise<[Principal, Controller][]> => {\n const actor: MissionControlActor = await getMissionControlActor(missionControl);\n return actor.list_mission_control_controllers();\n};\n\nexport const setSatellitesController = async ({\n missionControl,\n satelliteIds,\n controllerIds,\n controller\n}: {\n missionControl: MissionControlParameters;\n satelliteIds: Principal[];\n controllerIds: Principal[];\n controller: SetController;\n}) => {\n const actor: MissionControlActor = await getMissionControlActor(missionControl);\n return actor.set_satellites_controllers(satelliteIds, controllerIds, controller);\n};\n\nexport const setMissionControlController = async ({\n missionControl,\n controllerIds,\n controller\n}: {\n missionControl: MissionControlParameters;\n controllerIds: Principal[];\n controller: SetController;\n}) => {\n const actor: MissionControlActor = await getMissionControlActor(missionControl);\n return actor.set_mission_control_controllers(controllerIds, controller);\n};\n", "export const toNullable = <T>(value?: T): [] | [T] => {\n return value ? [value] : [];\n};\n\nexport const fromNullable = <T>(value: [] | [T]): T | undefined => {\n return value?.[0];\n};\n\nexport const toArray = async <T>(data: T): Promise<Uint8Array> => {\n const blob: Blob = new Blob([JSON.stringify(data)], {\n type: 'application/json; charset=utf-8'\n });\n return new Uint8Array(await blob.arrayBuffer());\n};\n\nexport const fromArray = async <T>(data: Uint8Array | number[]): Promise<T> => {\n const blob: Blob = new Blob([data instanceof Uint8Array ? data : new Uint8Array(data)], {\n type: 'application/json; charset=utf-8'\n });\n return JSON.parse(await blob.text());\n};\n", "/** Is null or undefined */\nexport const isNullish = <T>(argument: T | undefined | null): argument is undefined | null =>\n argument === null || argument === undefined;\n\n/** Not null and not undefined */\nexport const nonNullish = <T>(argument: T | undefined | null): argument is NonNullable<T> =>\n !isNullish(argument);\n\nexport class NullishError extends Error {}\n\nexport const assertNonNullish: <T>(\n value: T,\n message?: string\n) => asserts value is NonNullable<T> = <T>(value: T, message?: string): void => {\n if (isNullish(value)) {\n throw new NullishError(message);\n }\n};\n", "import {Principal} from '@dfinity/principal';\nimport type {SetController} from '../../declarations/mission_control/mission_control.did';\nimport type {SetControllerParams} from '../types/controllers.types';\nimport {toNullable} from './did.utils';\nimport {nonNullish} from './utils';\n\nexport const mapSetControllerParams = ({\n controllerId,\n profile\n}: SetControllerParams): {controllerIds: Principal[]; controller: SetController} => ({\n controllerIds: [Principal.fromText(controllerId)],\n controller: toSetController(profile)\n});\n\nconst toSetController = (profile: string | null | undefined): SetController => ({\n metadata: nonNullish(profile) && profile !== '' ? [['profile', profile]] : [],\n expires_at: toNullable<bigint>(undefined),\n scope: {Admin: null}\n});\n", "import {IDL} from '@dfinity/candid';\nimport {Principal} from '@dfinity/principal';\nimport {upgradeCode} from '../api/ic.api';\nimport {\n getUser,\n setMissionControlController as setMissionControlControllerApi,\n setSatellitesController as setSatellitesControllerApi,\n version\n} from '../api/mission-control.api';\nimport type {MissionControlParameters} from '../types/actor.types';\nimport type {SetControllerParams} from '../types/controllers.types';\nimport {mapSetControllerParams} from '../utils/controllers.utils';\n\nexport const missionControlVersion = async (params: {\n missionControl: MissionControlParameters;\n}): Promise<string> => version(params);\n\nexport const upgradeMissionControl = async ({\n missionControl,\n wasm_module\n}: {\n missionControl: MissionControlParameters;\n wasm_module: Array<number>;\n}) => {\n const user = await getUser({missionControl});\n\n const {missionControlId, ...actor} = missionControl;\n\n if (!missionControlId) {\n throw new Error('No mission control principal defined.');\n }\n\n const arg = IDL.encode(\n [\n IDL.Record({\n user: IDL.Principal\n })\n ],\n [{user}]\n );\n\n await upgradeCode({\n actor,\n code: {\n canister_id: Principal.fromText(missionControlId),\n arg: [...new Uint8Array(arg)],\n wasm_module\n }\n });\n};\n\nexport const setSatellitesController = async ({\n controllerId,\n profile,\n ...rest\n}: {\n missionControl: MissionControlParameters;\n satelliteIds: Principal[];\n} & SetControllerParams) =>\n setSatellitesControllerApi({\n ...rest,\n ...mapSetControllerParams({controllerId, profile})\n });\n\nexport const setMissionControlController = async ({\n controllerId,\n profile,\n ...rest\n}: {\n missionControl: MissionControlParameters;\n} & SetControllerParams) =>\n setMissionControlControllerApi({\n ...rest,\n ...mapSetControllerParams({controllerId, profile})\n });\n", "import type {Principal} from '@dfinity/principal';\nimport type {_SERVICE as DeprecatedSatelliteNoScopeActor} from '../../declarations/satellite/satellite-deprecated-no-scope.did';\nimport type {_SERVICE as DeprecatedSatelliteActor} from '../../declarations/satellite/satellite-deprecated.did';\nimport type {\n Config,\n Controller,\n CustomDomain,\n Rule,\n RulesType,\n _SERVICE as SatelliteActor,\n SetRule\n} from '../../declarations/satellite/satellite.did';\nimport type {SatelliteParameters} from '../types/actor.types';\nimport {\n getDeprecatedSatelliteActor,\n getDeprecatedSatelliteNoScopeActor,\n getSatelliteActor\n} from './actor.api';\n\nexport const setConfig = async ({\n config,\n satellite\n}: {\n config: Config;\n satellite: SatelliteParameters;\n}): Promise<void> => {\n const actor: SatelliteActor = await getSatelliteActor(satellite);\n return actor.set_config(config);\n};\n\nexport const listRules = async ({\n satellite,\n type\n}: {\n satellite: SatelliteParameters;\n type: RulesType;\n}): Promise<[string, Rule][]> => {\n const actor: SatelliteActor = await getSatelliteActor(satellite);\n return actor.list_rules(type);\n};\n\nexport const setRule = async ({\n type,\n collection,\n rule,\n satellite\n}: {\n type: RulesType;\n collection: string;\n rule: SetRule;\n satellite: SatelliteParameters;\n}): Promise<void> => {\n const actor: SatelliteActor = await getSatelliteActor(satellite);\n return actor.set_rule(type, collection, rule);\n};\n\nexport const version = async ({satellite}: {satellite: SatelliteParameters}): Promise<string> => {\n const actor: SatelliteActor = await getSatelliteActor(satellite);\n\n return actor.version();\n};\n\n// TODO: for backwards compatibility - to be removed\nexport const listDeprecatedControllers = async ({\n satellite\n}: {\n satellite: SatelliteParameters;\n}): Promise<Principal[]> => {\n const actor: DeprecatedSatelliteActor = await getDeprecatedSatelliteActor(satellite);\n return actor.list_controllers();\n};\n\n// TODO: for backwards compatibility - to be removed\nexport const listDeprecatedNoScopeControllers = async ({\n satellite\n}: {\n satellite: SatelliteParameters;\n}): Promise<[Principal, Controller][]> => {\n const actor: DeprecatedSatelliteNoScopeActor = await getDeprecatedSatelliteNoScopeActor(\n satellite\n );\n return actor.list_controllers() as Promise<[Principal, Controller][]>;\n};\n\nexport const listControllers = async ({\n satellite\n}: {\n satellite: SatelliteParameters;\n}): Promise<[Principal, Controller][]> => {\n const actor: SatelliteActor = await getSatelliteActor(satellite);\n return actor.list_controllers();\n};\n\nexport const listCustomDomains = async ({\n satellite\n}: {\n satellite: SatelliteParameters;\n}): Promise<[string, CustomDomain][]> => {\n const actor: SatelliteActor = await getSatelliteActor(satellite);\n return actor.list_custom_domains();\n};\n", "import type {Permission, RulesType} from '../../declarations/satellite/satellite.did';\n\nexport const DbRulesType: RulesType = {Db: null};\nexport const StorageRulesType: RulesType = {Storage: null};\n\nexport const PermissionPublic: Permission = {Public: null};\nexport const PermissionPrivate: Permission = {Private: null};\nexport const PermissionManaged: Permission = {Managed: null};\nexport const PermissionControllers: Permission = {Controllers: null};\n", "import type {\n Permission,\n Rule as RuleApi,\n RulesType as RulesTypeApi,\n SetRule\n} from '../../declarations/satellite/satellite.did';\nimport {\n DbRulesType,\n PermissionControllers,\n PermissionManaged,\n PermissionPrivate,\n PermissionPublic,\n StorageRulesType\n} from '../constants/rules.constants';\nimport type {PermissionText, Rule, RulesType} from '../types/rules.types';\nimport {fromNullable, toNullable} from './did.utils';\nimport {isNullish, nonNullish} from './utils';\n\nexport const mapRuleType = (type: RulesType): RulesTypeApi =>\n type === 'storage' ? StorageRulesType : DbRulesType;\n\nexport const mapSetRule = ({\n read,\n write,\n max_size,\n updated_at\n}: Pick<Rule, 'read' | 'write' | 'max_size' | 'updated_at'>): SetRule => ({\n read: permissionFromText(read),\n write: permissionFromText(write),\n updated_at: isNullish(updated_at) ? [] : [updated_at],\n max_size: toNullable(nonNullish(max_size) && max_size > 0 ? BigInt(max_size) : undefined)\n});\n\nexport const mapRule = ([collection, rule]: [string, RuleApi]): Rule => {\n const {read, write, updated_at, created_at, max_size} = rule;\n\n const maxSize = max_size?.[0] ?? 0n > 0n ? Number(fromNullable(max_size)) : undefined;\n\n return {\n collection,\n read: permissionToText(read),\n write: permissionToText(write),\n updated_at,\n created_at,\n ...(nonNullish(maxSize) && {max_size: maxSize})\n };\n};\n\nexport const permissionToText = (permission: Permission): PermissionText => {\n if ('Public' in permission) {\n return 'public';\n }\n\n if ('Private' in permission) {\n return 'private';\n }\n\n if ('Managed' in permission) {\n return 'managed';\n }\n\n return 'controllers';\n};\n\nconst permissionFromText = (text: PermissionText): Permission => {\n switch (text) {\n case 'public':\n return PermissionPublic;\n case 'private':\n return PermissionPrivate;\n case 'managed':\n return PermissionManaged;\n default:\n return PermissionControllers;\n }\n};\n", "import {IDL} from '@dfinity/candid';\nimport {Principal} from '@dfinity/principal';\nimport {upgradeCode} from '../api/ic.api';\nimport {\n listControllers,\n listCustomDomains as listCustomDomainsApi,\n listDeprecatedControllers,\n listDeprecatedNoScopeControllers,\n listRules as listRulesApi,\n setConfig as setConfigApi,\n setRule as setRuleApi,\n version\n} from '../api/satellite.api';\nimport type {SatelliteParameters} from '../types/actor.types';\nimport type {Config, StorageConfigHeaders} from '../types/config.types';\nimport type {CustomDomain} from '../types/customdomain.types';\nimport type {Rule, RulesType} from '../types/rules.types';\nimport {fromNullable} from '../utils/did.utils';\nimport {mapRule, mapRuleType, mapSetRule} from '../utils/rule.utils';\n\nexport const setConfig = async ({\n config: {\n storage: {headers: configHeaders}\n },\n satellite\n}: {\n config: Config;\n satellite: SatelliteParameters;\n}): Promise<void> => {\n const headers: [string, [string, string][]][] = configHeaders.map(\n ({source, headers}: StorageConfigHeaders) => [source, headers]\n );\n\n return setConfigApi({\n satellite,\n config: {\n storage: {\n headers\n }\n }\n });\n};\n\nexport const listRules = async ({\n type,\n satellite\n}: {\n type: RulesType;\n satellite: SatelliteParameters;\n}): Promise<Rule[]> => {\n const rules = await listRulesApi({\n satellite,\n type: mapRuleType(type)\n });\n\n return rules.map((rule) => mapRule(rule));\n};\n\nexport const setRule = async ({\n rule: {collection, ...rest},\n type,\n satellite\n}: {\n rule: Rule;\n type: RulesType;\n satellite: SatelliteParameters;\n}): Promise<void> =>\n setRuleApi({\n type: mapRuleType(type),\n rule: mapSetRule(rest),\n satellite,\n collection\n });\n\nexport const satelliteVersion = async (params: {satellite: SatelliteParameters}): Promise<string> =>\n version(params);\n\nexport const upgradeSatellite = async ({\n satellite,\n wasm_module,\n deprecated,\n deprecatedNoScope\n}: {\n satellite: SatelliteParameters;\n wasm_module: Array<number>;\n deprecated: boolean;\n deprecatedNoScope: boolean;\n}) => {\n const {satelliteId, ...actor} = satellite;\n\n if (!satelliteId) {\n throw new Error('No satellite principal defined.');\n }\n\n // TODO: remove agent-js \"type mismatch: type on the wire principal\"\n if (deprecated) {\n const controllers = await listDeprecatedControllers({satellite});\n\n const arg = IDL.encode(\n [\n IDL.Record({\n controllers: IDL.Vec(IDL.Principal)\n })\n ],\n [{controllers}]\n );\n\n await upgradeCode({\n actor,\n code: {\n canister_id: Principal.fromText(satelliteId),\n arg: [...new Uint8Array(arg)],\n wasm_module\n }\n });\n\n return;\n }\n\n const list = deprecatedNoScope ? listDeprecatedNoScopeControllers : listControllers;\n\n const controllers = await list({satellite});\n\n const arg = IDL.encode(\n [\n IDL.Record({\n controllers: IDL.Vec(IDL.Principal)\n })\n ],\n [{controllers: controllers.map(([controller, _]) => controller)}]\n );\n\n await upgradeCode({\n actor,\n code: {\n canister_id: Principal.fromText(satelliteId),\n arg: [...new Uint8Array(arg)],\n wasm_module\n }\n });\n};\n\nexport const listCustomDomains = async ({\n satellite\n}: {\n satellite: SatelliteParameters;\n}): Promise<CustomDomain[]> => {\n const domains = await listCustomDomainsApi({\n satellite\n });\n\n return domains.map(([domain, details]) => ({\n domain,\n bn_id: fromNullable(details.bn_id),\n created_at: details.created_at,\n updated_at: details.updated_at\n }));\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["require_base64_js", "__commonJSMin", "exports", "byteLength", "toByteArray", "fromByteArray", "lookup", "revLookup", "Arr", "code", "i", "len", "getLens", "b64", "validLen", "placeHoldersLen", "lens", "_byteLength", "tmp", "arr", "curByte", "tripletToBase64", "num", "encodeChunk", "uint8", "start", "end", "output", "extraBytes", "parts", "maxChunkLength", "len2", "require_buffer", "__commonJSMin", "exports", "base64", "ieee754", "customInspectSymbol", "Buffer", "SlowBuffer", "K_MAX_LENGTH", "typedArraySupport", "arr", "proto", "createBuffer", "length", "buf", "arg", "encodingOrOffset", "allocUnsafe", "from", "value", "fromString", "fromArrayView", "isInstance", "fromArrayBuffer", "valueOf", "b", "fromObject", "assertSize", "size", "alloc", "fill", "encoding", "checked", "string", "byteLength", "actual", "fromArrayLike", "array", "i", "arrayView", "copy", "byteOffset", "obj", "len", "numberIsNaN", "a", "x", "y", "list", "buffer", "pos", "mustMatch", "loweredCase", "utf8ToBytes", "base64ToBytes", "slowToString", "start", "end", "hexSlice", "utf8Slice", "asciiSlice", "latin1Slice", "base64Slice", "utf16leSlice", "swap", "n", "m", "str", "max", "target", "thisStart", "thisEnd", "thisCopy", "targetCopy", "bidirectionalIndexOf", "val", "dir", "arrayIndexOf", "indexSize", "arrLength", "valLength", "read", "foundIndex", "found", "j", "hexWrite", "offset", "remaining", "strLen", "parsed", "utf8Write", "blitBuffer", "asciiWrite", "asciiToBytes", "base64Write", "ucs2Write", "utf16leToBytes", "res", "firstByte", "codePoint", "bytesPerSequence", "secondByte", "thirdByte", "fourthByte", "tempCodePoint", "decodeCodePointsArray", "MAX_ARGUMENTS_LENGTH", "codePoints", "ret", "out", "hexSliceLookupTable", "bytes", "newBuf", "checkOffset", "ext", "noAssert", "mul", "checkInt", "min", "maxBytes", "limit", "sub", "checkIEEE754", "writeFloat", "littleEndian", "writeDouble", "targetStart", "code", "INVALID_BASE64_RE", "base64clean", "units", "leadSurrogate", "byteArray", "c", "hi", "lo", "src", "dst", "type", "alphabet", "table", "i16", "idlFactory", "IDL", "canister_id", "definite_canister_settings", "canister_settings", "http_header", "http_response", "http_request_error", "wasm_module", "idlFactory", "IDL", "Satellite", "ControllerScope", "Controller", "CanisterStatusType", "DefiniteCanisterSettings", "CanisterStatusResponse", "SegmentStatus", "Result", "SetController", "CronJobStatusesSatelliteConfig", "StatusesArgs", "SegmentsStatuses", "Tokens", "idlFactory", "IDL", "CommitBatch", "DeleteControllersArgs", "Controller", "DelDoc", "StorageConfig", "Config", "Doc", "HttpRequest", "StreamingCallbackToken", "StreamingStrategy", "HttpResponse", "StreamingCallbackHttpResponse", "InitAssetKey", "InitUploadResult", "ListOrderField", "ListOrder", "ListPaginate", "ListParams", "AssetKey", "AssetEncodingNoContent", "AssetNoContent", "ListResults", "CustomDomain", "ListResults_1", "RulesType", "Permission", "Rule", "SetController", "SetControllersArgs", "SetDoc", "SetRule", "Chunk", "UploadChunk", "idlFactory", "IDL", "CommitBatch", "DeleteControllersArgs", "Controller", "DelDoc", "StorageConfig", "Config", "Doc", "HttpRequest", "StreamingCallbackToken", "StreamingStrategy", "HttpResponse", "StreamingCallbackHttpResponse", "InitAssetKey", "InitUploadResult", "ListOrderField", "ListOrder", "ListPaginate", "ListParams", "AssetKey", "AssetEncodingNoContent", "AssetNoContent", "ListResults", "CustomDomain", "ListResults_1", "RulesType", "Permission", "Rule", "SetController", "SetControllersArgs", "SetDoc", "SetRule", "Chunk", "UploadChunk", "idlFactory", "IDL", "CommitBatch", "DeleteControllersArgs", "ControllerScope", "Controller", "DelDoc", "RulesType", "StorageConfig", "Config", "Doc", "HttpRequest", "StreamingCallbackToken", "StreamingStrategy", "HttpResponse", "StreamingCallbackHttpResponse", "InitAssetKey", "InitUploadResult", "ListOrderField", "ListOrder", "ListMatcher", "ListPaginate", "ListParams", "AssetKey", "AssetEncodingNoContent", "AssetNoContent", "ListResults", "CustomDomain", "ListResults_1", "Permission", "Rule", "SetController", "SetControllersArgs", "SetDoc", "SetRule", "Chunk", "UploadChunk", "import_buffer", "ReplicaRejectCode", "domainSeparator", "AnonymousIdentity", "Principal", "request", "cbor", "SubmitRequestType", "makeNonce", "buffer", "view", "now", "randHi", "randLo", "TWO_TO_THE_32", "NANOSECONDS_PER_MILLISECONDS", "REPLICA_PERMITTED_DRIFT_MILLISECONDS", "Expiry", "deltaInMSec", "lebEncode", "makeNonceTransform", "nonceFn", "makeNonce", "request", "nonce", "headers", "RequestStatusResponseStatus", "DEFAULT_INGRESS_EXPIRY_DELTA_IN_MSECS", "IC_ROOT_KEY", "IC0_DOMAIN", "IC0_SUB_DOMAIN", "ICP0_DOMAIN", "ICP0_SUB_DOMAIN", "ICP_API_DOMAIN", "ICP_API_SUB_DOMAIN", "HttpDefaultFetchError", "AgentError", "message", "IdentityInvalidError", "getDefaultFetch", "defaultFetch", "HttpAgent", "options", "fromHex", "location", "name", "password", "AnonymousIdentity", "makeNonceTransform", "makeNonce", "hostname", "fn", "priority", "i", "x", "canisterId", "identity", "id", "canister", "Principal", "ecid", "sender", "ingress_expiry", "Expiry", "submit", "SubmitRequestType", "transformedRequest", "body", "encode", "request", "response", "requestId", "requestIdOf", "tries", "responseText", "errorMessage", "fields", "decode", "CanisterStatus", "callTime", "replicaTime", "error", "headers", "p", "r", "r2", "ProxyMessageKind", "getDefaultAgent", "agent", "strategy_exports", "__export", "backoff", "chain", "conditionalDelay", "defaultStrategy", "maxAttempts", "once", "throttle", "timeout", "FIVE_MINUTES_IN_MSEC", "defaultStrategy", "chain", "conditionalDelay", "once", "backoff", "timeout", "first", "condition", "timeInMsec", "canisterId", "requestId", "status", "resolve", "maxAttempts", "count", "attempts", "toHex", "throttle", "throttleInMsec", "end", "startingThrottleInMsec", "backoffFactor", "currentThrottling", "strategies", "a", "pollForResponse", "agent", "canisterId", "requestId", "strategy", "request", "blsVerify", "path", "currentRequest", "_a", "state", "cert", "Certificate", "maybeBuf", "status", "RequestStatusResponseStatus", "rejectCode", "rejectMessage", "toHex", "management_idl_default", "IDL", "canister_id", "definite_canister_settings", "canister_settings", "wasm_module", "ActorCallError", "AgentError", "canisterId", "methodName", "type", "props", "n", "QueryCallRejectedError", "result", "_a", "ReplicaRejectCode", "UpdateCallRejectedError", "requestId", "response", "toHex", "CanisterInstallMode", "metadataSymbol", "Actor", "metadata", "actor", "Principal", "fields", "config", "mode", "arg", "wasmModule", "getManagementCanister", "interfaceFactory", "service", "idl_exports", "CanisterActor", "DEFAULT_ACTOR_CONFIG", "func", "_createActorMethod", "configuration", "decodeReturnValue", "types", "msg", "returnValues", "strategy_exports", "blsVerify", "caller", "options", "args", "_b", "agent", "getDefaultAgent", "cid", "effectiveCanisterId", "pollingStrategyFactory", "ecid", "pollStrategy", "responseBytes", "pollForResponse", "handler", "transform", "_methodName", "_callConfig", "first", "management_idl_default", "createActor", "canisterId", "idlFactory", "identity", "fetch", "env", "config", "host", "agent", "HttpAgent", "Actor", "getDeprecatedSatelliteActor", "satelliteId", "rest", "getActor", "idlFactory", "getSatelliteActor", "getDeprecatedSatelliteNoScopeActor", "getMissionControlActor", "missionControlId", "getActor", "canisterId", "idlFactory", "rest", "createActor", "MANAGEMENT_CANISTER_ID", "Principal", "transform", "_methodName", "args", "_callConfig", "first", "effectiveCanisterId", "getICActor", "params", "upgradeCode", "actor", "code", "install_code", "getICActor", "version", "missionControl", "getMissionControlActor", "getUser", "setSatellitesController", "missionControl", "satelliteIds", "controllerIds", "controller", "getMissionControlActor", "setMissionControlController", "toNullable", "value", "fromNullable", "isNullish", "argument", "nonNullish", "mapSetControllerParams", "controllerId", "profile", "Principal", "toSetController", "nonNullish", "toNullable", "missionControlVersion", "params", "version", "upgradeMissionControl", "missionControl", "wasm_module", "user", "getUser", "missionControlId", "actor", "arg", "idl_exports", "upgradeCode", "Principal", "setSatellitesController", "controllerId", "profile", "rest", "mapSetControllerParams", "setMissionControlController", "setConfig", "config", "satellite", "getSatelliteActor", "listRules", "type", "setRule", "collection", "rule", "version", "listDeprecatedControllers", "getDeprecatedSatelliteActor", "listDeprecatedNoScopeControllers", "getDeprecatedSatelliteNoScopeActor", "listControllers", "listCustomDomains", "DbRulesType", "StorageRulesType", "PermissionPublic", "PermissionPrivate", "PermissionManaged", "PermissionControllers", "mapRuleType", "type", "StorageRulesType", "DbRulesType", "mapSetRule", "read", "write", "max_size", "updated_at", "permissionFromText", "isNullish", "toNullable", "nonNullish", "mapRule", "collection", "rule", "created_at", "maxSize", "fromNullable", "permissionToText", "permission", "text", "PermissionPublic", "PermissionPrivate", "PermissionManaged", "PermissionControllers", "setConfig", "configHeaders", "satellite", "headers", "source", "listRules", "type", "mapRuleType", "rule", "mapRule", "setRule", "collection", "rest", "mapSetRule", "satelliteVersion", "params", "version", "upgradeSatellite", "wasm_module", "deprecated", "deprecatedNoScope", "satelliteId", "actor", "controllers", "listDeprecatedControllers", "arg", "idl_exports", "upgradeCode", "Principal", "listDeprecatedNoScopeControllers", "listControllers", "controller", "_", "listCustomDomains", "domain", "details", "fromNullable"]
|
|
7
7
|
}
|