@junobuild/admin 0.0.21 → 0.0.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/index.js +12 -30
- package/dist/browser/index.js.map +4 -4
- package/dist/node/index.mjs +7 -63
- package/dist/node/index.mjs.map +4 -4
- package/dist/types/index.d.ts +2 -0
- package/dist/types/services/releases.services.d.ts +6 -0
- package/dist/types/types/releases.types.d.ts +12 -0
- package/package.json +8 -6
- package/dist/browser/canisterStatus-MAYNIE3Q.js +0 -2
- package/dist/browser/canisterStatus-MAYNIE3Q.js.map +0 -7
- package/dist/browser/chunk-ZTILA2YH.js +0 -35
- package/dist/browser/chunk-ZTILA2YH.js.map +0 -7
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../../node_modules/
|
|
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 bitcoin_network = IDL.Variant({\n mainnet: IDL.Null,\n testnet: IDL.Null\n });\n const bitcoin_address = IDL.Text;\n const get_balance_request = IDL.Record({\n network: bitcoin_network,\n address: bitcoin_address,\n min_confirmations: IDL.Opt(IDL.Nat32)\n });\n const satoshi = IDL.Nat64;\n const get_current_fee_percentiles_request = IDL.Record({\n network: bitcoin_network\n });\n const millisatoshi_per_byte = IDL.Nat64;\n const get_utxos_request = IDL.Record({\n network: bitcoin_network,\n filter: IDL.Opt(\n IDL.Variant({\n page: IDL.Vec(IDL.Nat8),\n min_confirmations: IDL.Nat32\n })\n ),\n address: bitcoin_address\n });\n const block_hash = IDL.Vec(IDL.Nat8);\n const outpoint = IDL.Record({\n txid: IDL.Vec(IDL.Nat8),\n vout: IDL.Nat32\n });\n const utxo = IDL.Record({\n height: IDL.Nat32,\n value: satoshi,\n outpoint: outpoint\n });\n const get_utxos_response = IDL.Record({\n next_page: IDL.Opt(IDL.Vec(IDL.Nat8)),\n tip_height: IDL.Nat32,\n tip_block_hash: block_hash,\n utxos: IDL.Vec(utxo)\n });\n const send_transaction_request = IDL.Record({\n transaction: IDL.Vec(IDL.Nat8),\n network: bitcoin_network\n });\n const canister_id = IDL.Principal;\n const change_origin = IDL.Variant({\n from_user: IDL.Record({user_id: IDL.Principal}),\n from_canister: IDL.Record({\n canister_version: IDL.Opt(IDL.Nat64),\n canister_id: IDL.Principal\n })\n });\n const change_details = IDL.Variant({\n creation: IDL.Record({controllers: IDL.Vec(IDL.Principal)}),\n code_deployment: IDL.Record({\n mode: IDL.Variant({\n reinstall: IDL.Null,\n upgrade: IDL.Null,\n install: IDL.Null\n }),\n module_hash: IDL.Vec(IDL.Nat8)\n }),\n controllers_change: IDL.Record({\n controllers: IDL.Vec(IDL.Principal)\n }),\n code_uninstall: IDL.Null\n });\n const change = IDL.Record({\n timestamp_nanos: IDL.Nat64,\n canister_version: IDL.Nat64,\n origin: change_origin,\n details: change_details\n });\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 ecdsa_curve = IDL.Variant({secp256k1: IDL.Null});\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 wasm_module = IDL.Vec(IDL.Nat8);\n return IDL.Service({\n bitcoin_get_balance: IDL.Func([get_balance_request], [satoshi], []),\n bitcoin_get_current_fee_percentiles: IDL.Func(\n [get_current_fee_percentiles_request],\n [IDL.Vec(millisatoshi_per_byte)],\n []\n ),\n bitcoin_get_utxos: IDL.Func([get_utxos_request], [get_utxos_response], []),\n bitcoin_send_transaction: IDL.Func([send_transaction_request], [], []),\n canister_info: IDL.Func(\n [\n IDL.Record({\n canister_id: canister_id,\n num_requested_changes: IDL.Opt(IDL.Nat64)\n })\n ],\n [\n IDL.Record({\n controllers: IDL.Vec(IDL.Principal),\n module_hash: IDL.Opt(IDL.Vec(IDL.Nat8)),\n recent_changes: IDL.Vec(change),\n total_num_changes: IDL.Nat64\n })\n ],\n []\n ),\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 idle_cycles_burned_per_day: IDL.Nat,\n module_hash: IDL.Opt(IDL.Vec(IDL.Nat8))\n })\n ],\n []\n ),\n create_canister: IDL.Func(\n [\n IDL.Record({\n settings: IDL.Opt(canister_settings),\n sender_canister_version: IDL.Opt(IDL.Nat64)\n })\n ],\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 ecdsa_public_key: IDL.Func(\n [\n IDL.Record({\n key_id: IDL.Record({name: IDL.Text, curve: ecdsa_curve}),\n canister_id: IDL.Opt(canister_id),\n derivation_path: IDL.Vec(IDL.Vec(IDL.Nat8))\n })\n ],\n [\n IDL.Record({\n public_key: IDL.Vec(IDL.Nat8),\n chain_code: IDL.Vec(IDL.Nat8)\n })\n ],\n []\n ),\n http_request: IDL.Func(\n [\n IDL.Record({\n url: IDL.Text,\n method: IDL.Variant({\n get: IDL.Null,\n head: IDL.Null,\n post: IDL.Null\n }),\n max_response_bytes: IDL.Opt(IDL.Nat64),\n body: IDL.Opt(IDL.Vec(IDL.Nat8)),\n transform: IDL.Opt(\n IDL.Record({\n function: IDL.Func(\n [\n IDL.Record({\n context: IDL.Vec(IDL.Nat8),\n response: http_response\n })\n ],\n [http_response],\n ['query']\n ),\n context: IDL.Vec(IDL.Nat8)\n })\n ),\n headers: IDL.Vec(http_header)\n })\n ],\n [http_response],\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 sender_canister_version: IDL.Opt(IDL.Nat64)\n })\n ],\n [],\n []\n ),\n provisional_create_canister_with_cycles: IDL.Func(\n [\n IDL.Record({\n settings: IDL.Opt(canister_settings),\n specified_id: IDL.Opt(canister_id),\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 sign_with_ecdsa: IDL.Func(\n [\n IDL.Record({\n key_id: IDL.Record({name: IDL.Text, curve: ecdsa_curve}),\n derivation_path: IDL.Vec(IDL.Vec(IDL.Nat8)),\n message_hash: IDL.Vec(IDL.Nat8)\n })\n ],\n [IDL.Record({signature: IDL.Vec(IDL.Nat8)})],\n []\n ),\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(\n [\n IDL.Record({\n canister_id: canister_id,\n sender_canister_version: IDL.Opt(IDL.Nat64)\n })\n ],\n [],\n []\n ),\n update_settings: IDL.Func(\n [\n IDL.Record({\n canister_id: IDL.Principal,\n settings: canister_settings,\n sender_canister_version: IDL.Opt(IDL.Nat64)\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_satellite_metadata: IDL.Func(\n [IDL.Principal, IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text))],\n [Satellite],\n []\n ),\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 rewrites: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),\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 UploadChunk = IDL.Record({\n content: IDL.Vec(IDL.Nat8),\n batch_id: IDL.Nat,\n order_id: IDL.Opt(IDL.Nat)\n });\n const UploadChunkResult = 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.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.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([UploadChunk], [UploadChunkResult], []),\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' | 'sender_canister_version'>;\n}): Promise<void> => {\n const {install_code}: ICActor = await getICActor(actor);\n\n return install_code({\n ...code,\n mode: {upgrade: null},\n sender_canister_version: []\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", "/** 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 {nonNullish} from './null.utils';\n\nexport const toNullable = <T>(value?: T): [] | [T] => {\n return nonNullish(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", "import {Principal} from '@dfinity/principal';\nimport {nonNullish, toNullable} from '@junobuild/utils';\nimport type {SetController} from '../../declarations/mission_control/mission_control.did';\nimport type {SetControllerParams} from '../types/controllers.types';\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: Uint8Array;\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 {StorageConfigRewrite} from '../types/config.types';\n\nexport const DEFAULT_CONFIG_REWRITES: StorageConfigRewrite[] = [\n {\n source: '**',\n destination: '/index.html'\n }\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 {fromNullable, isNullish, nonNullish, toNullable} from '@junobuild/utils';\nimport 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';\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 {fromNullable} from '@junobuild/utils';\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 {DEFAULT_CONFIG_REWRITES} from '../constants/config.constants';\nimport type {SatelliteParameters} from '../types/actor.types';\nimport type {Config, StorageConfigHeader, StorageConfigRewrite} from '../types/config.types';\nimport type {CustomDomain} from '../types/customdomain.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, rewrites: configRewrites}\n },\n satellite\n}: {\n config: Config;\n satellite: SatelliteParameters;\n}): Promise<void> => {\n const headers: [string, [string, string][]][] = (configHeaders ?? []).map(\n ({source, headers}: StorageConfigHeader) => [source, headers]\n );\n\n const rewrites: [string, string][] = (configRewrites ?? DEFAULT_CONFIG_REWRITES).map(\n ({source, destination}: StorageConfigRewrite) => [source, destination]\n );\n\n return setConfigApi({\n satellite,\n config: {\n storage: {\n headers,\n rewrites\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: Uint8Array;\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", "bitcoin_network", "bitcoin_address", "get_balance_request", "satoshi", "get_current_fee_percentiles_request", "millisatoshi_per_byte", "get_utxos_request", "block_hash", "outpoint", "utxo", "get_utxos_response", "send_transaction_request", "canister_id", "change_origin", "change_details", "change", "definite_canister_settings", "canister_settings", "ecdsa_curve", "http_header", "http_response", "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", "UploadChunk", "UploadChunkResult", "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", "isNullish", "argument", "nonNullish", "toNullable", "value", "nonNullish", "fromNullable", "mapSetControllerParams", "controllerId", "profile", "Principal", "toSetController", "o", "a", "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", "DEFAULT_CONFIG_REWRITES", "DbRulesType", "StorageRulesType", "PermissionPublic", "PermissionPrivate", "PermissionManaged", "PermissionControllers", "mapRuleType", "type", "StorageRulesType", "DbRulesType", "mapSetRule", "read", "write", "max_size", "updated_at", "permissionFromText", "t", "a", "o", "mapRule", "collection", "rule", "created_at", "maxSize", "u", "permissionToText", "permission", "text", "PermissionPublic", "PermissionPrivate", "PermissionManaged", "PermissionControllers", "setConfig", "configHeaders", "configRewrites", "satellite", "headers", "source", "rewrites", "DEFAULT_CONFIG_REWRITES", "destination", "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", "u"]
|
|
3
|
+
"sources": ["../../../../node_modules/@dfinity/candid/src/idl.ts", "../../../../node_modules/@dfinity/candid/src/utils/buffer.ts", "../../../../node_modules/@dfinity/candid/src/utils/hash.ts", "../../../../node_modules/@dfinity/candid/src/utils/leb128.ts", "../../../../node_modules/@dfinity/candid/src/utils/bigint-math.ts", "../../../../node_modules/@dfinity/candid/src/candid-ui.ts", "../../src/services/mission-control.services.ts", "../../src/api/actor.api.ts", "../../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", "../../src/utils/actor.utils.ts", "../../src/api/ic.api.ts", "../../src/api/mission-control.api.ts", "../../src/utils/controllers.utils.ts", "../../src/services/releases.services.ts", "../../src/services/satellite.services.ts", "../../src/api/satellite.api.ts", "../../src/constants/config.constants.ts", "../../src/utils/rule.utils.ts", "../../src/constants/rules.constants.ts"],
|
|
4
|
+
"sourcesContent": ["// tslint:disable:max-classes-per-file\nimport { Principal as PrincipalId } from '@dfinity/principal';\nimport { JsonValue } from './types';\nimport { concat, PipeArrayBuffer as Pipe } from './utils/buffer';\nimport { idlLabelToId } from './utils/hash';\nimport {\n lebDecode,\n lebEncode,\n readIntLE,\n readUIntLE,\n safeRead,\n safeReadUint8,\n slebDecode,\n slebEncode,\n writeIntLE,\n writeUIntLE,\n} from './utils/leb128';\nimport { iexp2 } from './utils/bigint-math';\n\n// tslint:disable:max-line-length\n/**\n * This module provides a combinator library to create serializers/deserializers\n * between JavaScript values and IDL used by canisters on the Internet Computer,\n * as documented at https://github.com/dfinity/candid/blob/119703ba342d2fef6ab4972d2541b9fe36ae8e36/spec/Candid.md\n */\n// tslint:enable:max-line-length\n\nconst enum IDLTypeIds {\n Null = -1,\n Bool = -2,\n Nat = -3,\n Int = -4,\n Float32 = -13,\n Float64 = -14,\n Text = -15,\n Reserved = -16,\n Empty = -17,\n Opt = -18,\n Vector = -19,\n Record = -20,\n Variant = -21,\n Func = -22,\n Service = -23,\n Principal = -24,\n}\n\nconst magicNumber = 'DIDL';\nconst toReadableString_max = 400; // will not display arguments after 400chars. Makes sure 2mb blobs don't get inside the error\n\nfunction zipWith<TX, TY, TR>(xs: TX[], ys: TY[], f: (a: TX, b: TY) => TR): TR[] {\n return xs.map((x, i) => f(x, ys[i]));\n}\n\n/**\n * An IDL Type Table, which precedes the data in the stream.\n */\nclass TypeTable {\n // List of types. Needs to be an array as the index needs to be stable.\n private _typs: ArrayBuffer[] = [];\n private _idx = new Map<string, number>();\n\n public has(obj: ConstructType) {\n return this._idx.has(obj.name);\n }\n\n public add<T>(type: ConstructType<T>, buf: ArrayBuffer) {\n const idx = this._typs.length;\n this._idx.set(type.name, idx);\n this._typs.push(buf);\n }\n\n public merge<T>(obj: ConstructType<T>, knot: string) {\n const idx = this._idx.get(obj.name);\n const knotIdx = this._idx.get(knot);\n if (idx === undefined) {\n throw new Error('Missing type index for ' + obj);\n }\n if (knotIdx === undefined) {\n throw new Error('Missing type index for ' + knot);\n }\n this._typs[idx] = this._typs[knotIdx];\n\n // Delete the type.\n this._typs.splice(knotIdx, 1);\n this._idx.delete(knot);\n }\n\n public encode() {\n const len = lebEncode(this._typs.length);\n const buf = concat(...this._typs);\n return concat(len, buf);\n }\n\n public indexOf(typeName: string) {\n if (!this._idx.has(typeName)) {\n throw new Error('Missing type index for ' + typeName);\n }\n return slebEncode(this._idx.get(typeName) || 0);\n }\n}\n\nexport abstract class Visitor<D, R> {\n public visitType<T>(t: Type<T>, data: D): R {\n throw new Error('Not implemented');\n }\n public visitPrimitive<T>(t: PrimitiveType<T>, data: D): R {\n return this.visitType(t, data);\n }\n public visitEmpty(t: EmptyClass, data: D): R {\n return this.visitPrimitive(t, data);\n }\n public visitBool(t: BoolClass, data: D): R {\n return this.visitPrimitive(t, data);\n }\n public visitNull(t: NullClass, data: D): R {\n return this.visitPrimitive(t, data);\n }\n public visitReserved(t: ReservedClass, data: D): R {\n return this.visitPrimitive(t, data);\n }\n public visitText(t: TextClass, data: D): R {\n return this.visitPrimitive(t, data);\n }\n public visitNumber<T>(t: PrimitiveType<T>, data: D): R {\n return this.visitPrimitive(t, data);\n }\n public visitInt(t: IntClass, data: D): R {\n return this.visitNumber(t, data);\n }\n public visitNat(t: NatClass, data: D): R {\n return this.visitNumber(t, data);\n }\n public visitFloat(t: FloatClass, data: D): R {\n return this.visitPrimitive(t, data);\n }\n public visitFixedInt(t: FixedIntClass, data: D): R {\n return this.visitNumber(t, data);\n }\n public visitFixedNat(t: FixedNatClass, data: D): R {\n return this.visitNumber(t, data);\n }\n public visitPrincipal(t: PrincipalClass, data: D): R {\n return this.visitPrimitive(t, data);\n }\n\n public visitConstruct<T>(t: ConstructType<T>, data: D): R {\n return this.visitType(t, data);\n }\n public visitVec<T>(t: VecClass<T>, ty: Type<T>, data: D): R {\n return this.visitConstruct(t, data);\n }\n public visitOpt<T>(t: OptClass<T>, ty: Type<T>, data: D): R {\n return this.visitConstruct(t, data);\n }\n public visitRecord(t: RecordClass, fields: Array<[string, Type]>, data: D): R {\n return this.visitConstruct(t, data);\n }\n public visitTuple<T extends any[]>(t: TupleClass<T>, components: Type[], data: D): R {\n const fields: Array<[string, Type]> = components.map((ty, i) => [`_${i}_`, ty]);\n return this.visitRecord(t, fields, data);\n }\n public visitVariant(t: VariantClass, fields: Array<[string, Type]>, data: D): R {\n return this.visitConstruct(t, data);\n }\n public visitRec<T>(t: RecClass<T>, ty: ConstructType<T>, data: D): R {\n return this.visitConstruct(ty, data);\n }\n public visitFunc(t: FuncClass, data: D): R {\n return this.visitConstruct(t, data);\n }\n public visitService(t: ServiceClass, data: D): R {\n return this.visitConstruct(t, data);\n }\n}\n\n/**\n * Represents an IDL type.\n */\nexport abstract class Type<T = any> {\n public abstract readonly name: string;\n public abstract accept<D, R>(v: Visitor<D, R>, d: D): R;\n\n /* Display type name */\n public display(): string {\n return this.name;\n }\n\n public valueToString(x: T): string {\n return toReadableString(x);\n }\n\n /* Implement `T` in the IDL spec, only needed for non-primitive types */\n public buildTypeTable(typeTable: TypeTable): void {\n if (!typeTable.has(this)) {\n this._buildTypeTableImpl(typeTable);\n }\n }\n\n /**\n * Assert that JavaScript's `x` is the proper type represented by this\n * Type.\n */\n public abstract covariant(x: any): x is T;\n\n /**\n * Encode the value. This needs to be public because it is used by\n * encodeValue() from different types.\n * @internal\n */\n public abstract encodeValue(x: T): ArrayBuffer;\n\n /**\n * Implement `I` in the IDL spec.\n * Encode this type for the type table.\n */\n public abstract encodeType(typeTable: TypeTable): ArrayBuffer;\n\n public abstract checkType(t: Type): Type;\n public abstract decodeValue(x: Pipe, t: Type): T;\n\n protected abstract _buildTypeTableImpl(typeTable: TypeTable): void;\n}\n\nexport abstract class PrimitiveType<T = any> extends Type<T> {\n public checkType(t: Type): Type {\n if (this.name !== t.name) {\n throw new Error(`type mismatch: type on the wire ${t.name}, expect type ${this.name}`);\n }\n return t;\n }\n public _buildTypeTableImpl(typeTable: TypeTable): void {\n // No type table encoding for Primitive types.\n return;\n }\n}\n\nexport abstract class ConstructType<T = any> extends Type<T> {\n public checkType(t: Type): ConstructType<T> {\n if (t instanceof RecClass) {\n const ty = t.getType();\n if (typeof ty === 'undefined') {\n throw new Error('type mismatch with uninitialized type');\n }\n return ty;\n }\n throw new Error(`type mismatch: type on the wire ${t.name}, expect type ${this.name}`);\n }\n public encodeType(typeTable: TypeTable) {\n return typeTable.indexOf(this.name);\n }\n}\n\n/**\n * Represents an IDL Empty, a type which has no inhabitants.\n * Since no values exist for this type, it cannot be serialised or deserialised.\n * Result types like `Result<Text, Empty>` should always succeed.\n */\nexport class EmptyClass extends PrimitiveType<never> {\n public accept<D, R>(v: Visitor<D, R>, d: D): R {\n return v.visitEmpty(this, d);\n }\n\n public covariant(x: any): x is never {\n throw new Error(`Invalid ${this.display()} argument: ${toReadableString(x)}`);\n }\n\n public encodeValue(): never {\n throw new Error('Empty cannot appear as a function argument');\n }\n\n public valueToString(): never {\n throw new Error('Empty cannot appear as a value');\n }\n\n public encodeType() {\n return slebEncode(IDLTypeIds.Empty);\n }\n\n public decodeValue(): never {\n throw new Error('Empty cannot appear as an output');\n }\n\n get name() {\n return 'empty';\n }\n}\n\n/**\n * Represents an IDL Unknown, a placeholder type for deserialization only.\n * When decoding a value as Unknown, all fields will be retained but the names are only available in\n * hashed form.\n * A deserialized unknown will offer it's actual type by calling the `type()` function.\n * Unknown cannot be serialized and attempting to do so will throw an error.\n */\nexport class UnknownClass extends Type {\n public checkType(t: Type): Type {\n throw new Error('Method not implemented for unknown.');\n }\n\n public accept<D, R>(v: Visitor<D, R>, d: D): R {\n throw v.visitType(this, d);\n }\n\n public covariant(x: any): x is any {\n throw new Error(`Invalid ${this.display()} argument: ${toReadableString(x)}`);\n }\n\n public encodeValue(): never {\n throw new Error('Unknown cannot appear as a function argument');\n }\n\n public valueToString(): never {\n throw new Error('Unknown cannot appear as a value');\n }\n\n public encodeType(): never {\n throw new Error('Unknown cannot be serialized');\n }\n\n public decodeValue(b: Pipe, t: Type): any {\n let decodedValue = t.decodeValue(b, t);\n\n if (Object(decodedValue) !== decodedValue) {\n // decodedValue is primitive. Box it, otherwise we cannot add the type() function.\n // The type() function is important for primitives because otherwise we cannot tell apart the\n // different number types.\n decodedValue = Object(decodedValue);\n }\n\n let typeFunc;\n if (t instanceof RecClass) {\n typeFunc = () => t.getType();\n } else {\n typeFunc = () => t;\n }\n // Do not use 'decodedValue.type = typeFunc' because this would lead to an enumerable property\n // 'type' which means it would be serialized if the value would be candid encoded again.\n // This in turn leads to problems if the decoded value is a variant because these values are\n // only allowed to have a single property.\n Object.defineProperty(decodedValue, 'type', {\n value: typeFunc,\n writable: true,\n enumerable: false,\n configurable: true,\n });\n return decodedValue;\n }\n\n protected _buildTypeTableImpl(): void {\n throw new Error('Unknown cannot be serialized');\n }\n\n get name() {\n return 'Unknown';\n }\n}\n\n/**\n * Represents an IDL Bool\n */\nexport class BoolClass extends PrimitiveType<boolean> {\n public accept<D, R>(v: Visitor<D, R>, d: D): R {\n return v.visitBool(this, d);\n }\n\n public covariant(x: any): x is boolean {\n if (typeof x === 'boolean') return true;\n throw new Error(`Invalid ${this.display()} argument: ${toReadableString(x)}`);\n }\n\n public encodeValue(x: boolean): ArrayBuffer {\n return new Uint8Array([x ? 1 : 0]);\n }\n\n public encodeType() {\n return slebEncode(IDLTypeIds.Bool);\n }\n\n public decodeValue(b: Pipe, t: Type) {\n this.checkType(t);\n switch (safeReadUint8(b)) {\n case 0:\n return false;\n case 1:\n return true;\n default:\n throw new Error('Boolean value out of range');\n }\n }\n\n get name() {\n return 'bool';\n }\n}\n\n/**\n * Represents an IDL Null\n */\nexport class NullClass extends PrimitiveType<null> {\n public accept<D, R>(v: Visitor<D, R>, d: D): R {\n return v.visitNull(this, d);\n }\n\n public covariant(x: any): x is null {\n if (x === null) return true;\n throw new Error(`Invalid ${this.display()} argument: ${toReadableString(x)}`);\n }\n\n public encodeValue() {\n return new ArrayBuffer(0);\n }\n\n public encodeType() {\n return slebEncode(IDLTypeIds.Null);\n }\n\n public decodeValue(b: Pipe, t: Type) {\n this.checkType(t);\n return null;\n }\n\n get name() {\n return 'null';\n }\n}\n\n/**\n * Represents an IDL Reserved\n */\nexport class ReservedClass extends PrimitiveType<any> {\n public accept<D, R>(v: Visitor<D, R>, d: D): R {\n return v.visitReserved(this, d);\n }\n\n public covariant(x: any): x is any {\n return true;\n }\n\n public encodeValue() {\n return new ArrayBuffer(0);\n }\n\n public encodeType() {\n return slebEncode(IDLTypeIds.Reserved);\n }\n\n public decodeValue(b: Pipe, t: Type) {\n if (t.name !== this.name) {\n t.decodeValue(b, t);\n }\n return null;\n }\n\n get name() {\n return 'reserved';\n }\n}\n\n/**\n * Represents an IDL Text\n */\nexport class TextClass extends PrimitiveType<string> {\n public accept<D, R>(v: Visitor<D, R>, d: D): R {\n return v.visitText(this, d);\n }\n\n public covariant(x: any): x is string {\n if (typeof x === 'string') return true;\n throw new Error(`Invalid ${this.display()} argument: ${toReadableString(x)}`);\n }\n\n public encodeValue(x: string) {\n const buf = new TextEncoder().encode(x);\n const len = lebEncode(buf.byteLength);\n return concat(len, buf);\n }\n\n public encodeType() {\n return slebEncode(IDLTypeIds.Text);\n }\n\n public decodeValue(b: Pipe, t: Type) {\n this.checkType(t);\n const len = lebDecode(b);\n const buf = safeRead(b, Number(len));\n const decoder = new TextDecoder('utf8', { fatal: true });\n return decoder.decode(buf);\n }\n\n get name() {\n return 'text';\n }\n\n public valueToString(x: string) {\n return '\"' + x + '\"';\n }\n}\n\n/**\n * Represents an IDL Int\n */\nexport class IntClass extends PrimitiveType<bigint> {\n public accept<D, R>(v: Visitor<D, R>, d: D): R {\n return v.visitInt(this, d);\n }\n\n public covariant(x: any): x is bigint {\n // We allow encoding of JavaScript plain numbers.\n // But we will always decode to bigint.\n if (typeof x === 'bigint' || Number.isInteger(x)) return true;\n throw new Error(`Invalid ${this.display()} argument: ${toReadableString(x)}`);\n }\n\n public encodeValue(x: bigint | number) {\n return slebEncode(x);\n }\n\n public encodeType() {\n return slebEncode(IDLTypeIds.Int);\n }\n\n public decodeValue(b: Pipe, t: Type) {\n this.checkType(t);\n return slebDecode(b);\n }\n\n get name() {\n return 'int';\n }\n\n public valueToString(x: bigint) {\n return x.toString();\n }\n}\n\n/**\n * Represents an IDL Nat\n */\nexport class NatClass extends PrimitiveType<bigint> {\n public accept<D, R>(v: Visitor<D, R>, d: D): R {\n return v.visitNat(this, d);\n }\n\n public covariant(x: any): x is bigint {\n // We allow encoding of JavaScript plain numbers.\n // But we will always decode to bigint.\n if ((typeof x === 'bigint' && x >= BigInt(0)) || (Number.isInteger(x) && x >= 0)) return true;\n throw new Error(`Invalid ${this.display()} argument: ${toReadableString(x)}`);\n }\n\n public encodeValue(x: bigint | number) {\n return lebEncode(x);\n }\n\n public encodeType() {\n return slebEncode(IDLTypeIds.Nat);\n }\n\n public decodeValue(b: Pipe, t: Type) {\n this.checkType(t);\n return lebDecode(b);\n }\n\n get name() {\n return 'nat';\n }\n\n public valueToString(x: bigint) {\n return x.toString();\n }\n}\n\n/**\n * Represents an IDL Float\n */\nexport class FloatClass extends PrimitiveType<number> {\n constructor(private _bits: number) {\n super();\n if (_bits !== 32 && _bits !== 64) {\n throw new Error('not a valid float type');\n }\n }\n public accept<D, R>(v: Visitor<D, R>, d: D): R {\n return v.visitFloat(this, d);\n }\n\n public covariant(x: any): x is number {\n if (typeof x === 'number' || x instanceof Number) return true;\n throw new Error(`Invalid ${this.display()} argument: ${toReadableString(x)}`);\n }\n\n public encodeValue(x: number) {\n const buf = new ArrayBuffer(this._bits / 8);\n const view = new DataView(buf);\n if (this._bits === 32) {\n view.setFloat32(0, x, true);\n } else {\n view.setFloat64(0, x, true);\n }\n return buf;\n }\n\n public encodeType() {\n const opcode = this._bits === 32 ? IDLTypeIds.Float32 : IDLTypeIds.Float64;\n return slebEncode(opcode);\n }\n\n public decodeValue(b: Pipe, t: Type) {\n this.checkType(t);\n const bytes = safeRead(b, this._bits / 8);\n const view = new DataView(bytes);\n if (this._bits === 32) {\n return view.getFloat32(0, true);\n } else {\n return view.getFloat64(0, true);\n }\n }\n\n get name() {\n return 'float' + this._bits;\n }\n\n public valueToString(x: number) {\n return x.toString();\n }\n}\n\n/**\n * Represents an IDL fixed-width Int(n)\n */\nexport class FixedIntClass extends PrimitiveType<bigint | number> {\n constructor(public readonly _bits: number) {\n super();\n }\n\n public accept<D, R>(v: Visitor<D, R>, d: D): R {\n return v.visitFixedInt(this, d);\n }\n\n public covariant(x: any): x is bigint {\n const min = iexp2(this._bits - 1) * BigInt(-1);\n const max = iexp2(this._bits - 1) - BigInt(1);\n let ok = false;\n if (typeof x === 'bigint') {\n ok = x >= min && x <= max;\n } else if (Number.isInteger(x)) {\n const v = BigInt(x);\n ok = v >= min && v <= max;\n } else {\n ok = false;\n }\n\n if (ok) return true;\n throw new Error(`Invalid ${this.display()} argument: ${toReadableString(x)}`);\n }\n\n public encodeValue(x: bigint | number) {\n return writeIntLE(x, this._bits / 8);\n }\n\n public encodeType() {\n const offset = Math.log2(this._bits) - 3;\n return slebEncode(-9 - offset);\n }\n\n public decodeValue(b: Pipe, t: Type) {\n this.checkType(t);\n const num = readIntLE(b, this._bits / 8);\n if (this._bits <= 32) {\n return Number(num);\n } else {\n return num;\n }\n }\n\n get name() {\n return `int${this._bits}`;\n }\n\n public valueToString(x: bigint | number) {\n return x.toString();\n }\n}\n\n/**\n * Represents an IDL fixed-width Nat(n)\n */\nexport class FixedNatClass extends PrimitiveType<bigint | number> {\n constructor(public readonly _bits: number) {\n super();\n }\n\n public accept<D, R>(v: Visitor<D, R>, d: D): R {\n return v.visitFixedNat(this, d);\n }\n\n public covariant(x: any): x is bigint {\n const max = iexp2(this._bits);\n let ok = false;\n if (typeof x === 'bigint' && x >= BigInt(0)) {\n ok = x < max;\n } else if (Number.isInteger(x) && x >= 0) {\n const v = BigInt(x);\n ok = v < max;\n } else {\n ok = false;\n }\n if (ok) return true;\n throw new Error(`Invalid ${this.display()} argument: ${toReadableString(x)}`);\n }\n\n public encodeValue(x: bigint | number) {\n return writeUIntLE(x, this._bits / 8);\n }\n\n public encodeType() {\n const offset = Math.log2(this._bits) - 3;\n return slebEncode(-5 - offset);\n }\n\n public decodeValue(b: Pipe, t: Type) {\n this.checkType(t);\n const num = readUIntLE(b, this._bits / 8);\n if (this._bits <= 32) {\n return Number(num);\n } else {\n return num;\n }\n }\n\n get name() {\n return `nat${this._bits}`;\n }\n\n public valueToString(x: bigint | number) {\n return x.toString();\n }\n}\n\n/**\n * Represents an IDL Array\n *\n * Arrays of fixed-sized nat/int type (e.g. nat8), are encoded from and decoded to TypedArrays (e.g. Uint8Array).\n * Arrays of float or other non-primitive types are encoded/decoded as untyped array in Javascript.\n *\n * @param {Type} t\n */\nexport class VecClass<T> extends ConstructType<T[]> {\n // If true, this vector is really a blob and we can just use memcpy.\n //\n // NOTE:\n // With support of encoding/dencoding of TypedArrays, this optimization is\n // only used when plain array of bytes are passed as encoding input in order\n // to be backward compatible.\n private _blobOptimization = false;\n\n constructor(protected _type: Type<T>) {\n super();\n if (_type instanceof FixedNatClass && _type._bits === 8) {\n this._blobOptimization = true;\n }\n }\n\n public accept<D, R>(v: Visitor<D, R>, d: D): R {\n return v.visitVec(this, this._type, d);\n }\n\n public covariant(x: any): x is T[] {\n // Special case for ArrayBuffer\n const bits =\n this._type instanceof FixedNatClass\n ? this._type._bits\n : this._type instanceof FixedIntClass\n ? this._type._bits\n : 0;\n\n if (\n (ArrayBuffer.isView(x) && bits == (x as any).BYTES_PER_ELEMENT * 8) ||\n (Array.isArray(x) &&\n x.every((v, idx) => {\n try {\n return this._type.covariant(v);\n } catch (e: any) {\n throw new Error(`Invalid ${this.display()} argument: \\n\\nindex ${idx} -> ${e.message}`);\n }\n }))\n )\n return true;\n\n throw new Error(`Invalid ${this.display()} argument: ${toReadableString(x)}`);\n }\n\n public encodeValue(x: T[]) {\n const len = lebEncode(x.length);\n if (this._blobOptimization) {\n return concat(len, new Uint8Array(x as unknown as number[]));\n }\n if (ArrayBuffer.isView(x)) {\n return concat(len, new Uint8Array(x.buffer));\n }\n const buf = new Pipe(new ArrayBuffer(len.byteLength + x.length), 0);\n buf.write(len);\n for (const d of x) {\n const encoded = this._type.encodeValue(d);\n buf.write(new Uint8Array(encoded));\n }\n return buf.buffer;\n }\n\n public _buildTypeTableImpl(typeTable: TypeTable) {\n this._type.buildTypeTable(typeTable);\n\n const opCode = slebEncode(IDLTypeIds.Vector);\n const buffer = this._type.encodeType(typeTable);\n typeTable.add(this, concat(opCode, buffer));\n }\n\n public decodeValue(b: Pipe, t: Type): T[] {\n const vec = this.checkType(t);\n if (!(vec instanceof VecClass)) {\n throw new Error('Not a vector type');\n }\n const len = Number(lebDecode(b));\n\n if (this._type instanceof FixedNatClass) {\n if (this._type._bits == 8) {\n return new Uint8Array(b.read(len)) as unknown as T[];\n }\n if (this._type._bits == 16) {\n return new Uint16Array(b.read(len * 2)) as unknown as T[];\n }\n if (this._type._bits == 32) {\n return new Uint32Array(b.read(len * 4)) as unknown as T[];\n }\n if (this._type._bits == 64) {\n return new BigUint64Array(b.read(len * 8)) as unknown as T[];\n }\n }\n\n if (this._type instanceof FixedIntClass) {\n if (this._type._bits == 8) {\n return new Int8Array(b.read(len)) as unknown as T[];\n }\n if (this._type._bits == 16) {\n return new Int16Array(b.read(len * 2)) as unknown as T[];\n }\n if (this._type._bits == 32) {\n return new Int32Array(b.read(len * 4)) as unknown as T[];\n }\n if (this._type._bits == 64) {\n return new BigInt64Array(b.read(len * 8)) as unknown as T[];\n }\n }\n\n const rets: T[] = [];\n for (let i = 0; i < len; i++) {\n rets.push(this._type.decodeValue(b, vec._type));\n }\n return rets;\n }\n\n get name() {\n return `vec ${this._type.name}`;\n }\n\n public display() {\n return `vec ${this._type.display()}`;\n }\n\n public valueToString(x: T[]) {\n const elements = x.map(e => this._type.valueToString(e));\n return 'vec {' + elements.join('; ') + '}';\n }\n}\n\n/**\n * Represents an IDL Option\n * @param {Type} t\n */\nexport class OptClass<T> extends ConstructType<[T] | []> {\n constructor(protected _type: Type<T>) {\n super();\n }\n\n public accept<D, R>(v: Visitor<D, R>, d: D): R {\n return v.visitOpt(this, this._type, d);\n }\n\n public covariant(x: any): x is [T] | [] {\n try {\n if (Array.isArray(x) && (x.length === 0 || (x.length === 1 && this._type.covariant(x[0]))))\n return true;\n } catch (e: any) {\n throw new Error(\n `Invalid ${this.display()} argument: ${toReadableString(x)} \\n\\n-> ${e.message}`,\n );\n }\n throw new Error(`Invalid ${this.display()} argument: ${toReadableString(x)}`);\n }\n\n public encodeValue(x: [T] | []) {\n if (x.length === 0) {\n return new Uint8Array([0]);\n } else {\n return concat(new Uint8Array([1]), this._type.encodeValue(x[0]));\n }\n }\n\n public _buildTypeTableImpl(typeTable: TypeTable) {\n this._type.buildTypeTable(typeTable);\n\n const opCode = slebEncode(IDLTypeIds.Opt);\n const buffer = this._type.encodeType(typeTable);\n typeTable.add(this, concat(opCode, buffer));\n }\n\n public decodeValue(b: Pipe, t: Type): [T] | [] {\n const opt = this.checkType(t);\n if (!(opt instanceof OptClass)) {\n throw new Error('Not an option type');\n }\n switch (safeReadUint8(b)) {\n case 0:\n return [];\n case 1:\n return [this._type.decodeValue(b, opt._type)];\n default:\n throw new Error('Not an option value');\n }\n }\n\n get name() {\n return `opt ${this._type.name}`;\n }\n\n public display() {\n return `opt ${this._type.display()}`;\n }\n\n public valueToString(x: [T] | []) {\n if (x.length === 0) {\n return 'null';\n } else {\n return `opt ${this._type.valueToString(x[0])}`;\n }\n }\n}\n\n/**\n * Represents an IDL Record\n * @param {Object} [fields] - mapping of function name to Type\n */\nexport class RecordClass extends ConstructType<Record<string, any>> {\n protected readonly _fields: Array<[string, Type]>;\n\n constructor(fields: Record<string, Type> = {}) {\n super();\n this._fields = Object.entries(fields).sort((a, b) => idlLabelToId(a[0]) - idlLabelToId(b[0]));\n }\n\n public accept<D, R>(v: Visitor<D, R>, d: D): R {\n return v.visitRecord(this, this._fields, d);\n }\n\n public tryAsTuple(): Type[] | null {\n const res: Type[] = [];\n for (let i = 0; i < this._fields.length; i++) {\n const [key, type] = this._fields[i];\n if (key !== `_${i}_`) {\n return null;\n }\n res.push(type);\n }\n return res;\n }\n\n public covariant(x: any): x is Record<string, any> {\n if (\n typeof x === 'object' &&\n this._fields.every(([k, t]) => {\n // eslint-disable-next-line\n if (!x.hasOwnProperty(k)) {\n throw new Error(`Record is missing key \"${k}\".`);\n }\n try {\n return t.covariant(x[k]);\n } catch (e: any) {\n throw new Error(`Invalid ${this.display()} argument: \\n\\nfield ${k} -> ${e.message}`);\n }\n })\n )\n return true;\n\n throw new Error(`Invalid ${this.display()} argument: ${toReadableString(x)}`);\n }\n\n public encodeValue(x: Record<string, any>) {\n const values = this._fields.map(([key]) => x[key]);\n const bufs = zipWith(this._fields, values, ([, c], d) => c.encodeValue(d));\n return concat(...bufs);\n }\n\n public _buildTypeTableImpl(T: TypeTable) {\n this._fields.forEach(([_, value]) => value.buildTypeTable(T));\n const opCode = slebEncode(IDLTypeIds.Record);\n const len = lebEncode(this._fields.length);\n const fields = this._fields.map(([key, value]) =>\n concat(lebEncode(idlLabelToId(key)), value.encodeType(T)),\n );\n\n T.add(this, concat(opCode, len, concat(...fields)));\n }\n\n public decodeValue(b: Pipe, t: Type) {\n const record = this.checkType(t);\n if (!(record instanceof RecordClass)) {\n throw new Error('Not a record type');\n }\n const x: Record<string, any> = {};\n\n let expectedRecordIdx = 0;\n let actualRecordIdx = 0;\n while (actualRecordIdx < record._fields.length) {\n const [hash, type] = record._fields[actualRecordIdx];\n\n if (expectedRecordIdx >= this._fields.length) {\n // skip unexpected left over fields present on the wire\n type.decodeValue(b, type);\n actualRecordIdx++;\n continue;\n }\n\n const [expectKey, expectType] = this._fields[expectedRecordIdx];\n const expectedId = idlLabelToId(this._fields[expectedRecordIdx][0]);\n const actualId = idlLabelToId(hash);\n if (expectedId === actualId) {\n // the current field on the wire matches the expected field\n x[expectKey] = expectType.decodeValue(b, type);\n expectedRecordIdx++;\n actualRecordIdx++;\n } else if (actualId > expectedId) {\n // The expected field does not exist on the wire\n if (expectType instanceof OptClass || expectType instanceof ReservedClass) {\n x[expectKey] = [];\n expectedRecordIdx++;\n } else {\n throw new Error('Cannot find required field ' + expectKey);\n }\n } else {\n // The field on the wire does not exist in the output type, so we can skip it\n type.decodeValue(b, type);\n actualRecordIdx++;\n }\n }\n\n // initialize left over expected optional fields\n for (const [expectKey, expectType] of this._fields.slice(expectedRecordIdx)) {\n if (expectType instanceof OptClass || expectType instanceof ReservedClass) {\n // TODO this assumes null value in opt is represented as []\n x[expectKey] = [];\n } else {\n throw new Error('Cannot find required field ' + expectKey);\n }\n }\n return x;\n }\n\n get name() {\n const fields = this._fields.map(([key, value]) => key + ':' + value.name);\n return `record {${fields.join('; ')}}`;\n }\n\n public display() {\n const fields = this._fields.map(([key, value]) => key + ':' + value.display());\n return `record {${fields.join('; ')}}`;\n }\n\n public valueToString(x: Record<string, any>) {\n const values = this._fields.map(([key]) => x[key]);\n const fields = zipWith(this._fields, values, ([k, c], d) => k + '=' + c.valueToString(d));\n return `record {${fields.join('; ')}}`;\n }\n}\n\n/**\n * Represents Tuple, a syntactic sugar for Record.\n * @param {Type} components\n */\nexport class TupleClass<T extends any[]> extends RecordClass {\n protected readonly _components: Type[];\n\n constructor(_components: Type[]) {\n const x: Record<string, any> = {};\n _components.forEach((e, i) => (x['_' + i + '_'] = e));\n super(x);\n this._components = _components;\n }\n\n public accept<D, R>(v: Visitor<D, R>, d: D): R {\n return v.visitTuple(this, this._components, d);\n }\n\n public covariant(x: any): x is T {\n // `>=` because tuples can be covariant when encoded.\n\n if (\n Array.isArray(x) &&\n x.length >= this._fields.length &&\n this._components.every((t, i) => {\n try {\n return t.covariant(x[i]);\n } catch (e: any) {\n throw new Error(`Invalid ${this.display()} argument: \\n\\nindex ${i} -> ${e.message}`);\n }\n })\n )\n return true;\n\n throw new Error(`Invalid ${this.display()} argument: ${toReadableString(x)}`);\n }\n\n public encodeValue(x: any[]) {\n const bufs = zipWith(this._components, x, (c, d) => c.encodeValue(d));\n return concat(...bufs);\n }\n\n public decodeValue(b: Pipe, t: Type): T {\n const tuple = this.checkType(t);\n if (!(tuple instanceof TupleClass)) {\n throw new Error('not a tuple type');\n }\n if (tuple._components.length < this._components.length) {\n throw new Error('tuple mismatch');\n }\n const res = [];\n for (const [i, wireType] of tuple._components.entries()) {\n if (i >= this._components.length) {\n // skip value\n wireType.decodeValue(b, wireType);\n } else {\n res.push(this._components[i].decodeValue(b, wireType));\n }\n }\n return res as T;\n }\n\n public display() {\n const fields = this._components.map(value => value.display());\n return `record {${fields.join('; ')}}`;\n }\n\n public valueToString(values: any[]) {\n const fields = zipWith(this._components, values, (c, d) => c.valueToString(d));\n return `record {${fields.join('; ')}}`;\n }\n}\n\n/**\n * Represents an IDL Variant\n * @param {Object} [fields] - mapping of function name to Type\n */\nexport class VariantClass extends ConstructType<Record<string, any>> {\n private readonly _fields: Array<[string, Type]>;\n\n constructor(fields: Record<string, Type> = {}) {\n super();\n this._fields = Object.entries(fields).sort((a, b) => idlLabelToId(a[0]) - idlLabelToId(b[0]));\n }\n\n public accept<D, R>(v: Visitor<D, R>, d: D): R {\n return v.visitVariant(this, this._fields, d);\n }\n\n public covariant(x: any): x is Record<string, any> {\n if (\n typeof x === 'object' &&\n Object.entries(x).length === 1 &&\n this._fields.every(([k, v]) => {\n try {\n // eslint-disable-next-line\n return !x.hasOwnProperty(k) || v.covariant(x[k]);\n } catch (e: any) {\n throw new Error(`Invalid ${this.display()} argument: \\n\\nvariant ${k} -> ${e.message}`);\n }\n })\n )\n return true;\n\n throw new Error(`Invalid ${this.display()} argument: ${toReadableString(x)}`);\n }\n\n public encodeValue(x: Record<string, any>) {\n for (let i = 0; i < this._fields.length; i++) {\n const [name, type] = this._fields[i];\n // eslint-disable-next-line\n if (x.hasOwnProperty(name)) {\n const idx = lebEncode(i);\n const buf = type.encodeValue(x[name]);\n\n return concat(idx, buf);\n }\n }\n throw Error('Variant has no data: ' + x);\n }\n\n public _buildTypeTableImpl(typeTable: TypeTable) {\n this._fields.forEach(([, type]) => {\n type.buildTypeTable(typeTable);\n });\n const opCode = slebEncode(IDLTypeIds.Variant);\n const len = lebEncode(this._fields.length);\n const fields = this._fields.map(([key, value]) =>\n concat(lebEncode(idlLabelToId(key)), value.encodeType(typeTable)),\n );\n typeTable.add(this, concat(opCode, len, ...fields));\n }\n\n public decodeValue(b: Pipe, t: Type) {\n const variant = this.checkType(t);\n if (!(variant instanceof VariantClass)) {\n throw new Error('Not a variant type');\n }\n const idx = Number(lebDecode(b));\n if (idx >= variant._fields.length) {\n throw Error('Invalid variant index: ' + idx);\n }\n const [wireHash, wireType] = variant._fields[idx];\n for (const [key, expectType] of this._fields) {\n if (idlLabelToId(wireHash) === idlLabelToId(key)) {\n const value = expectType.decodeValue(b, wireType);\n return { [key]: value };\n }\n }\n throw new Error('Cannot find field hash ' + wireHash);\n }\n\n get name() {\n const fields = this._fields.map(([key, type]) => key + ':' + type.name);\n return `variant {${fields.join('; ')}}`;\n }\n\n public display() {\n const fields = this._fields.map(\n ([key, type]) => key + (type.name === 'null' ? '' : `:${type.display()}`),\n );\n return `variant {${fields.join('; ')}}`;\n }\n\n public valueToString(x: Record<string, any>) {\n for (const [name, type] of this._fields) {\n // eslint-disable-next-line\n if (x.hasOwnProperty(name)) {\n const value = type.valueToString(x[name]);\n if (value === 'null') {\n return `variant {${name}}`;\n } else {\n return `variant {${name}=${value}}`;\n }\n }\n }\n throw new Error('Variant has no data: ' + x);\n }\n}\n\n/**\n * Represents a reference to an IDL type, used for defining recursive data\n * types.\n */\nexport class RecClass<T = any> extends ConstructType<T> {\n private static _counter = 0;\n private _id = RecClass._counter++;\n private _type: ConstructType<T> | undefined = undefined;\n\n public accept<D, R>(v: Visitor<D, R>, d: D): R {\n if (!this._type) {\n throw Error('Recursive type uninitialized.');\n }\n return v.visitRec(this, this._type, d);\n }\n\n public fill(t: ConstructType<T>) {\n this._type = t;\n }\n\n public getType() {\n return this._type;\n }\n\n public covariant(x: any): x is T {\n if (this._type ? this._type.covariant(x) : false) return true;\n throw new Error(`Invalid ${this.display()} argument: ${toReadableString(x)}`);\n }\n\n public encodeValue(x: T) {\n if (!this._type) {\n throw Error('Recursive type uninitialized.');\n }\n return this._type.encodeValue(x);\n }\n\n public _buildTypeTableImpl(typeTable: TypeTable) {\n if (!this._type) {\n throw Error('Recursive type uninitialized.');\n }\n typeTable.add(this, new Uint8Array([]));\n this._type.buildTypeTable(typeTable);\n typeTable.merge(this, this._type.name);\n }\n\n public decodeValue(b: Pipe, t: Type) {\n if (!this._type) {\n throw Error('Recursive type uninitialized.');\n }\n return this._type.decodeValue(b, t);\n }\n\n get name() {\n return `rec_${this._id}`;\n }\n\n public display() {\n if (!this._type) {\n throw Error('Recursive type uninitialized.');\n }\n return `μ${this.name}.${this._type.name}`;\n }\n\n public valueToString(x: T) {\n if (!this._type) {\n throw Error('Recursive type uninitialized.');\n }\n return this._type.valueToString(x);\n }\n}\n\nfunction decodePrincipalId(b: Pipe): PrincipalId {\n const x = safeReadUint8(b);\n if (x !== 1) {\n throw new Error('Cannot decode principal');\n }\n\n const len = Number(lebDecode(b));\n return PrincipalId.fromUint8Array(new Uint8Array(safeRead(b, len)));\n}\n\n/**\n * Represents an IDL principal reference\n */\nexport class PrincipalClass extends PrimitiveType<PrincipalId> {\n public accept<D, R>(v: Visitor<D, R>, d: D): R {\n return v.visitPrincipal(this, d);\n }\n\n public covariant(x: any): x is PrincipalId {\n if (x && x._isPrincipal) return true;\n throw new Error(`Invalid ${this.display()} argument: ${toReadableString(x)}`);\n }\n\n public encodeValue(x: PrincipalId): ArrayBuffer {\n const buf = x.toUint8Array();\n const len = lebEncode(buf.byteLength);\n return concat(new Uint8Array([1]), len, buf);\n }\n\n public encodeType() {\n return slebEncode(IDLTypeIds.Principal);\n }\n\n public decodeValue(b: Pipe, t: Type): PrincipalId {\n this.checkType(t);\n return decodePrincipalId(b);\n }\n\n get name() {\n return 'principal';\n }\n public valueToString(x: PrincipalId) {\n return `${this.name} \"${x.toText()}\"`;\n }\n}\n\n/**\n * Represents an IDL function reference.\n * @param argTypes Argument types.\n * @param retTypes Return types.\n * @param annotations Function annotations.\n */\nexport class FuncClass extends ConstructType<[PrincipalId, string]> {\n public static argsToString(types: Type[], v: any[]) {\n if (types.length !== v.length) {\n throw new Error('arity mismatch');\n }\n return '(' + types.map((t, i) => t.valueToString(v[i])).join(', ') + ')';\n }\n\n constructor(public argTypes: Type[], public retTypes: Type[], public annotations: string[] = []) {\n super();\n }\n\n public accept<D, R>(v: Visitor<D, R>, d: D): R {\n return v.visitFunc(this, d);\n }\n public covariant(x: any): x is [PrincipalId, string] {\n if (Array.isArray(x) && x.length === 2 && x[0] && x[0]._isPrincipal && typeof x[1] === 'string')\n return true;\n throw new Error(`Invalid ${this.display()} argument: ${toReadableString(x)}`);\n }\n\n public encodeValue([principal, methodName]: [PrincipalId, string]) {\n const buf = principal.toUint8Array();\n const len = lebEncode(buf.byteLength);\n const canister = concat(new Uint8Array([1]), len, buf);\n\n const method = new TextEncoder().encode(methodName);\n const methodLen = lebEncode(method.byteLength);\n return concat(new Uint8Array([1]), canister, methodLen, method);\n }\n\n public _buildTypeTableImpl(T: TypeTable) {\n this.argTypes.forEach(arg => arg.buildTypeTable(T));\n this.retTypes.forEach(arg => arg.buildTypeTable(T));\n\n const opCode = slebEncode(IDLTypeIds.Func);\n const argLen = lebEncode(this.argTypes.length);\n const args = concat(...this.argTypes.map(arg => arg.encodeType(T)));\n const retLen = lebEncode(this.retTypes.length);\n const rets = concat(...this.retTypes.map(arg => arg.encodeType(T)));\n const annLen = lebEncode(this.annotations.length);\n const anns = concat(...this.annotations.map(a => this.encodeAnnotation(a)));\n\n T.add(this, concat(opCode, argLen, args, retLen, rets, annLen, anns));\n }\n\n public decodeValue(b: Pipe): [PrincipalId, string] {\n const x = safeReadUint8(b);\n if (x !== 1) {\n throw new Error('Cannot decode function reference');\n }\n const canister = decodePrincipalId(b);\n\n const mLen = Number(lebDecode(b));\n const buf = safeRead(b, mLen);\n const decoder = new TextDecoder('utf8', { fatal: true });\n const method = decoder.decode(buf);\n\n return [canister, method];\n }\n\n get name() {\n const args = this.argTypes.map(arg => arg.name).join(', ');\n const rets = this.retTypes.map(arg => arg.name).join(', ');\n const annon = ' ' + this.annotations.join(' ');\n return `(${args}) -> (${rets})${annon}`;\n }\n\n public valueToString([principal, str]: [PrincipalId, string]) {\n return `func \"${principal.toText()}\".${str}`;\n }\n\n public display(): string {\n const args = this.argTypes.map(arg => arg.display()).join(', ');\n const rets = this.retTypes.map(arg => arg.display()).join(', ');\n const annon = ' ' + this.annotations.join(' ');\n return `(${args}) → (${rets})${annon}`;\n }\n\n private encodeAnnotation(ann: string): ArrayBuffer {\n if (ann === 'query') {\n return new Uint8Array([1]);\n } else if (ann === 'oneway') {\n return new Uint8Array([2]);\n } else if (ann === 'composite_query') {\n return new Uint8Array([3]);\n } else {\n throw new Error('Illegal function annotation');\n }\n }\n}\n\nexport class ServiceClass extends ConstructType<PrincipalId> {\n public readonly _fields: Array<[string, FuncClass]>;\n constructor(fields: Record<string, FuncClass>) {\n super();\n this._fields = Object.entries(fields).sort((a, b) => idlLabelToId(a[0]) - idlLabelToId(b[0]));\n }\n public accept<D, R>(v: Visitor<D, R>, d: D): R {\n return v.visitService(this, d);\n }\n public covariant(x: any): x is PrincipalId {\n if (x && x._isPrincipal) return true;\n throw new Error(`Invalid ${this.display()} argument: ${toReadableString(x)}`);\n }\n\n public encodeValue(x: PrincipalId) {\n const buf = x.toUint8Array();\n const len = lebEncode(buf.length);\n return concat(new Uint8Array([1]), len, buf);\n }\n\n public _buildTypeTableImpl(T: TypeTable) {\n this._fields.forEach(([_, func]) => func.buildTypeTable(T));\n const opCode = slebEncode(IDLTypeIds.Service);\n const len = lebEncode(this._fields.length);\n const meths = this._fields.map(([label, func]) => {\n const labelBuf = new TextEncoder().encode(label);\n const labelLen = lebEncode(labelBuf.length);\n return concat(labelLen, labelBuf, func.encodeType(T));\n });\n\n T.add(this, concat(opCode, len, ...meths));\n }\n\n public decodeValue(b: Pipe): PrincipalId {\n return decodePrincipalId(b);\n }\n get name() {\n const fields = this._fields.map(([key, value]) => key + ':' + value.name);\n return `service {${fields.join('; ')}}`;\n }\n\n public valueToString(x: PrincipalId) {\n return `service \"${x.toText()}\"`;\n }\n}\n\n/**\n *\n * @param x\n * @returns {string}\n */\nfunction toReadableString(x: unknown): string {\n const str = JSON.stringify(x, (_key, value) =>\n typeof value === 'bigint' ? `BigInt(${value})` : value,\n );\n\n return str && str.length > toReadableString_max\n ? str.substring(0, toReadableString_max - 3) + '...'\n : str;\n}\n\n/**\n * Encode a array of values\n * @param argTypes\n * @param args\n * @returns {Buffer} serialised value\n */\nexport function encode(argTypes: Array<Type<any>>, args: any[]): ArrayBuffer {\n if (args.length < argTypes.length) {\n throw Error('Wrong number of message arguments');\n }\n\n const typeTable = new TypeTable();\n argTypes.forEach(t => t.buildTypeTable(typeTable));\n\n const magic = new TextEncoder().encode(magicNumber);\n const table = typeTable.encode();\n const len = lebEncode(args.length);\n const typs = concat(...argTypes.map(t => t.encodeType(typeTable)));\n const vals = concat(\n ...zipWith(argTypes, args, (t, x) => {\n try {\n t.covariant(x);\n } catch (e: any) {\n const err = new Error(e.message + '\\n\\n');\n throw err;\n }\n\n return t.encodeValue(x);\n }),\n );\n\n return concat(magic, table, len, typs, vals);\n}\n\n/**\n * Decode a binary value\n * @param retTypes - Types expected in the buffer.\n * @param bytes - hex-encoded string, or buffer.\n * @returns Value deserialised to JS type\n */\nexport function decode(retTypes: Type[], bytes: ArrayBuffer): JsonValue[] {\n const b = new Pipe(bytes);\n\n if (bytes.byteLength < magicNumber.length) {\n throw new Error('Message length smaller than magic number');\n }\n const magicBuffer = safeRead(b, magicNumber.length);\n const magic = new TextDecoder().decode(magicBuffer);\n if (magic !== magicNumber) {\n throw new Error('Wrong magic number: ' + JSON.stringify(magic));\n }\n\n function readTypeTable(pipe: Pipe): [Array<[IDLTypeIds, any]>, number[]] {\n const typeTable: Array<[IDLTypeIds, any]> = [];\n const len = Number(lebDecode(pipe));\n\n for (let i = 0; i < len; i++) {\n const ty = Number(slebDecode(pipe));\n switch (ty) {\n case IDLTypeIds.Opt:\n case IDLTypeIds.Vector: {\n const t = Number(slebDecode(pipe));\n typeTable.push([ty, t]);\n break;\n }\n case IDLTypeIds.Record:\n case IDLTypeIds.Variant: {\n const fields = [];\n let objectLength = Number(lebDecode(pipe));\n let prevHash;\n while (objectLength--) {\n const hash = Number(lebDecode(pipe));\n if (hash >= Math.pow(2, 32)) {\n throw new Error('field id out of 32-bit range');\n }\n if (typeof prevHash === 'number' && prevHash >= hash) {\n throw new Error('field id collision or not sorted');\n }\n prevHash = hash;\n const t = Number(slebDecode(pipe));\n fields.push([hash, t]);\n }\n typeTable.push([ty, fields]);\n break;\n }\n case IDLTypeIds.Func: {\n const args = [];\n let argLength = Number(lebDecode(pipe));\n while (argLength--) {\n args.push(Number(slebDecode(pipe)));\n }\n const returnValues = [];\n let returnValuesLength = Number(lebDecode(pipe));\n while (returnValuesLength--) {\n returnValues.push(Number(slebDecode(pipe)));\n }\n const annotations = [];\n let annotationLength = Number(lebDecode(pipe));\n while (annotationLength--) {\n const annotation = Number(lebDecode(pipe));\n switch (annotation) {\n case 1: {\n annotations.push('query');\n break;\n }\n case 2: {\n annotations.push('oneway');\n break;\n }\n case 3: {\n annotations.push('composite_query');\n break;\n }\n default:\n throw new Error('unknown annotation');\n }\n }\n typeTable.push([ty, [args, returnValues, annotations]]);\n break;\n }\n case IDLTypeIds.Service: {\n let servLength = Number(lebDecode(pipe));\n const methods = [];\n while (servLength--) {\n const nameLength = Number(lebDecode(pipe));\n const funcName = new TextDecoder().decode(safeRead(pipe, nameLength));\n const funcType = slebDecode(pipe);\n methods.push([funcName, funcType]);\n }\n typeTable.push([ty, methods]);\n break;\n }\n default:\n throw new Error('Illegal op_code: ' + ty);\n }\n }\n\n const rawList: number[] = [];\n const length = Number(lebDecode(pipe));\n for (let i = 0; i < length; i++) {\n rawList.push(Number(slebDecode(pipe)));\n }\n return [typeTable, rawList];\n }\n const [rawTable, rawTypes] = readTypeTable(b);\n if (rawTypes.length < retTypes.length) {\n throw new Error('Wrong number of return values');\n }\n\n const table: RecClass[] = rawTable.map(_ => Rec());\n function getType(t: number): Type {\n if (t < -24) {\n throw new Error('future value not supported');\n }\n if (t < 0) {\n switch (t) {\n case -1:\n return Null;\n case -2:\n return Bool;\n case -3:\n return Nat;\n case -4:\n return Int;\n case -5:\n return Nat8;\n case -6:\n return Nat16;\n case -7:\n return Nat32;\n case -8:\n return Nat64;\n case -9:\n return Int8;\n case -10:\n return Int16;\n case -11:\n return Int32;\n case -12:\n return Int64;\n case -13:\n return Float32;\n case -14:\n return Float64;\n case -15:\n return Text;\n case -16:\n return Reserved;\n case -17:\n return Empty;\n case -24:\n return Principal;\n default:\n throw new Error('Illegal op_code: ' + t);\n }\n }\n if (t >= rawTable.length) {\n throw new Error('type index out of range');\n }\n return table[t];\n }\n function buildType(entry: [IDLTypeIds, any]): Type {\n switch (entry[0]) {\n case IDLTypeIds.Vector: {\n const ty = getType(entry[1]);\n return Vec(ty);\n }\n case IDLTypeIds.Opt: {\n const ty = getType(entry[1]);\n return Opt(ty);\n }\n case IDLTypeIds.Record: {\n const fields: Record<string, Type> = {};\n for (const [hash, ty] of entry[1]) {\n const name = `_${hash}_`;\n fields[name] = getType(ty);\n }\n const record = Record(fields);\n const tuple = record.tryAsTuple();\n if (Array.isArray(tuple)) {\n return Tuple(...tuple);\n } else {\n return record;\n }\n }\n case IDLTypeIds.Variant: {\n const fields: Record<string, Type> = {};\n for (const [hash, ty] of entry[1]) {\n const name = `_${hash}_`;\n fields[name] = getType(ty);\n }\n return Variant(fields);\n }\n case IDLTypeIds.Func: {\n const [args, returnValues, annotations] = entry[1];\n return Func(\n args.map((t: number) => getType(t)),\n returnValues.map((t: number) => getType(t)),\n annotations,\n );\n }\n case IDLTypeIds.Service: {\n const rec: Record<string, FuncClass> = {};\n const methods = entry[1] as [[string, number]];\n for (const [name, typeRef] of methods) {\n let type: Type | undefined = getType(typeRef);\n\n if (type instanceof RecClass) {\n // unpack reference type\n type = type.getType();\n }\n if (!(type instanceof FuncClass)) {\n throw new Error('Illegal service definition: services can only contain functions');\n }\n rec[name] = type;\n }\n return Service(rec);\n }\n default:\n throw new Error('Illegal op_code: ' + entry[0]);\n }\n }\n\n rawTable.forEach((entry, i) => {\n // Process function type first, so that we can construct the correct service type\n if (entry[0] === IDLTypeIds.Func) {\n const t = buildType(entry);\n table[i].fill(t);\n }\n });\n rawTable.forEach((entry, i) => {\n if (entry[0] !== IDLTypeIds.Func) {\n const t = buildType(entry);\n table[i].fill(t);\n }\n });\n\n const types = rawTypes.map(t => getType(t));\n const output = retTypes.map((t, i) => {\n return t.decodeValue(b, types[i]);\n });\n\n // skip unused values\n for (let ind = retTypes.length; ind < types.length; ind++) {\n types[ind].decodeValue(b, types[ind]);\n }\n\n if (b.byteLength > 0) {\n throw new Error('decode: Left-over bytes');\n }\n\n return output;\n}\n\n/**\n * An Interface Factory, normally provided by a Candid code generation.\n */\nexport type InterfaceFactory = (idl: {\n IDL: {\n Empty: EmptyClass;\n Reserved: ReservedClass;\n Unknown: UnknownClass;\n Bool: BoolClass;\n Null: NullClass;\n Text: TextClass;\n Int: IntClass;\n Nat: NatClass;\n\n Float32: FloatClass;\n Float64: FloatClass;\n\n Int8: FixedIntClass;\n Int16: FixedIntClass;\n Int32: FixedIntClass;\n Int64: FixedIntClass;\n\n Nat8: FixedNatClass;\n Nat16: FixedNatClass;\n Nat32: FixedNatClass;\n Nat64: FixedNatClass;\n\n Principal: PrincipalClass;\n\n Tuple: typeof Tuple;\n Vec: typeof Vec;\n Opt: typeof Opt;\n Record: typeof Record;\n Variant: typeof Variant;\n Rec: typeof Rec;\n Func: typeof Func;\n\n Service(t: Record<string, FuncClass>): ServiceClass;\n };\n}) => ServiceClass;\n\n// Export Types instances.\nexport const Empty = new EmptyClass();\nexport const Reserved = new ReservedClass();\n/**\n * Client-only type for deserializing unknown data. Not supported by Candid, and its use is discouraged.\n */\nexport const Unknown = new UnknownClass();\nexport const Bool = new BoolClass();\nexport const Null = new NullClass();\nexport const Text = new TextClass();\nexport const Int = new IntClass();\nexport const Nat = new NatClass();\n\nexport const Float32 = new FloatClass(32);\nexport const Float64 = new FloatClass(64);\n\nexport const Int8 = new FixedIntClass(8);\nexport const Int16 = new FixedIntClass(16);\nexport const Int32 = new FixedIntClass(32);\nexport const Int64 = new FixedIntClass(64);\n\nexport const Nat8 = new FixedNatClass(8);\nexport const Nat16 = new FixedNatClass(16);\nexport const Nat32 = new FixedNatClass(32);\nexport const Nat64 = new FixedNatClass(64);\n\nexport const Principal = new PrincipalClass();\n\n/**\n *\n * @param types array of any types\n * @returns TupleClass from those types\n */\nexport function Tuple<T extends any[]>(...types: T): TupleClass<T> {\n return new TupleClass(types);\n}\n/**\n *\n * @param t IDL Type\n * @returns VecClass from that type\n */\nexport function Vec<T>(t: Type<T>): VecClass<T> {\n return new VecClass(t);\n}\n/**\n *\n * @param t IDL Type\n * @returns OptClass of Type\n */\nexport function Opt<T>(t: Type<T>): OptClass<T> {\n return new OptClass(t);\n}\n/**\n *\n * @param t Record of string and IDL Type\n * @returns RecordClass of string and Type\n */\nexport function Record(t: Record<string, Type>): RecordClass {\n return new RecordClass(t);\n}\n\n/**\n *\n * @param fields Record of string and IDL Type\n * @returns VariantClass\n */\nexport function Variant(fields: Record<string, Type>): VariantClass {\n return new VariantClass(fields);\n}\n/**\n *\n * @returns new RecClass\n */\nexport function Rec(): RecClass {\n return new RecClass();\n}\n\n/**\n *\n * @param args array of IDL Types\n * @param ret array of IDL Types\n * @param annotations array of strings, [] by default\n * @returns new FuncClass\n */\nexport function Func(args: Type[], ret: Type[], annotations: string[] = []): FuncClass {\n return new FuncClass(args, ret, annotations);\n}\n\n/**\n *\n * @param t Record of string and FuncClass\n * @returns ServiceClass\n */\nexport function Service(t: Record<string, FuncClass>): ServiceClass {\n return new ServiceClass(t);\n}\n", "/**\n * Concatenate multiple array buffers.\n * @param buffers The buffers to concatenate.\n */\nexport function concat(...buffers: ArrayBuffer[]): ArrayBuffer {\n const result = new Uint8Array(buffers.reduce((acc, curr) => acc + curr.byteLength, 0));\n let index = 0;\n for (const b of buffers) {\n result.set(new Uint8Array(b), index);\n index += b.byteLength;\n }\n return result;\n}\n\n/**\n * Returns an hexadecimal representation of an array buffer.\n * @param bytes The array buffer.\n */\nexport function toHexString(bytes: ArrayBuffer): string {\n return new Uint8Array(bytes).reduce((str, byte) => str + byte.toString(16).padStart(2, '0'), '');\n}\n\n/**\n * Return an array buffer from its hexadecimal representation.\n * @param hexString The hexadecimal string.\n */\nexport function fromHexString(hexString: string): ArrayBuffer {\n return new Uint8Array((hexString.match(/.{1,2}/g) ?? []).map(byte => parseInt(byte, 16)));\n}\n\n/**\n * A class that abstracts a pipe-like ArrayBuffer.\n */\nexport class PipeArrayBuffer {\n /**\n * The reading view. It's a sliding window as we read and write, pointing to the buffer.\n * @private\n */\n private _view: Uint8Array;\n\n /**\n * The actual buffer containing the bytes.\n * @private\n */\n private _buffer: ArrayBuffer;\n\n /**\n * Creates a new instance of a pipe\n * @param buffer an optional buffer to start with\n * @param length an optional amount of bytes to use for the length.\n */\n constructor(buffer?: ArrayBuffer, length = buffer?.byteLength || 0) {\n this._buffer = buffer || new ArrayBuffer(0);\n this._view = new Uint8Array(this._buffer, 0, length);\n }\n\n get buffer(): ArrayBuffer {\n // Return a copy of the buffer.\n return this._view.slice();\n }\n\n get byteLength(): number {\n return this._view.byteLength;\n }\n\n /**\n * Read `num` number of bytes from the front of the pipe.\n * @param num The number of bytes to read.\n */\n public read(num: number): ArrayBuffer {\n const result = this._view.subarray(0, num);\n this._view = this._view.subarray(num);\n return result.slice().buffer;\n }\n\n public readUint8(): number | undefined {\n const result = this._view[0];\n this._view = this._view.subarray(1);\n return result;\n }\n\n /**\n * Write a buffer to the end of the pipe.\n * @param buf The bytes to write.\n */\n public write(buf: ArrayBuffer): void {\n const b = new Uint8Array(buf);\n const offset = this._view.byteLength;\n if (this._view.byteOffset + this._view.byteLength + b.byteLength >= this._buffer.byteLength) {\n // Alloc grow the view to include the new bytes.\n this.alloc(b.byteLength);\n } else {\n // Update the view to include the new bytes.\n this._view = new Uint8Array(\n this._buffer,\n this._view.byteOffset,\n this._view.byteLength + b.byteLength,\n );\n }\n\n this._view.set(b, offset);\n }\n\n /**\n * Whether or not there is more data to read from the buffer\n */\n public get end(): boolean {\n return this._view.byteLength === 0;\n }\n\n /**\n * Allocate a fixed amount of memory in the buffer. This does not affect the view.\n * @param amount A number of bytes to add to the buffer.\n */\n public alloc(amount: number) {\n // Add a little bit of exponential growth.\n // tslint:disable-next-line:no-bitwise\n const b = new ArrayBuffer(((this._buffer.byteLength + amount) * 1.2) | 0);\n const v = new Uint8Array(b, 0, this._view.byteLength + amount);\n v.set(this._view);\n this._buffer = b;\n this._view = v;\n }\n}\n", "/**\n * Hashes a string to a number. Algorithm can be found here:\n * https://caml.inria.fr/pub/papers/garrigue-polymorphic_variants-ml98.pdf\n * @param s\n */\nfunction idlHash(s: string): number {\n const utf8encoder = new TextEncoder();\n const array = utf8encoder.encode(s);\n\n let h = 0;\n for (const c of array) {\n h = (h * 223 + c) % 2 ** 32;\n }\n return h;\n}\n\n/**\n *\n * @param label string\n * @returns number representing hashed label\n */\nexport function idlLabelToId(label: string): number {\n if (/^_\\d+_$/.test(label) || /^_0x[0-9a-fA-F]+_$/.test(label)) {\n const num = +label.slice(1, -1);\n if (Number.isSafeInteger(num) && num >= 0 && num < 2 ** 32) {\n return num;\n }\n }\n return idlHash(label);\n}\n", "/* eslint-disable no-constant-condition */\n// tslint:disable:no-bitwise\n// Note: this file uses buffer-pipe, which on Node only, uses the Node Buffer\n// implementation, which isn't compatible with the NPM buffer package\n// which we use everywhere else. This means that we have to transform\n// one into the other, hence why every function that returns a Buffer\n// actually return `new Buffer(pipe.buffer)`.\n// TODO: The best solution would be to have our own buffer type around\n// Uint8Array which is standard.\nimport { PipeArrayBuffer as Pipe } from './buffer';\n\nfunction eob(): never {\n throw new Error('unexpected end of buffer');\n}\n\n/**\n *\n * @param pipe Pipe from buffer-pipe\n * @param num number\n * @returns Buffer\n */\nexport function safeRead(pipe: Pipe, num: number): ArrayBuffer {\n if (pipe.byteLength < num) {\n eob();\n }\n return pipe.read(num);\n}\n\n/**\n * @param pipe\n */\nexport function safeReadUint8(pipe: Pipe): number {\n const byte = pipe.readUint8();\n if (byte === undefined) {\n eob();\n }\n return byte;\n}\n\n/**\n * Encode a positive number (or bigint) into a Buffer. The number will be floored to the\n * nearest integer.\n * @param value The number to encode.\n */\nexport function lebEncode(value: bigint | number): ArrayBuffer {\n if (typeof value === 'number') {\n value = BigInt(value);\n }\n\n if (value < BigInt(0)) {\n throw new Error('Cannot leb encode negative values.');\n }\n\n const byteLength = (value === BigInt(0) ? 0 : Math.ceil(Math.log2(Number(value)))) + 1;\n const pipe = new Pipe(new ArrayBuffer(byteLength), 0);\n while (true) {\n const i = Number(value & BigInt(0x7f));\n value /= BigInt(0x80);\n if (value === BigInt(0)) {\n pipe.write(new Uint8Array([i]));\n break;\n } else {\n pipe.write(new Uint8Array([i | 0x80]));\n }\n }\n\n return pipe.buffer;\n}\n\n/**\n * Decode a leb encoded buffer into a bigint. The number will always be positive (does not\n * support signed leb encoding).\n * @param pipe A Buffer containing the leb encoded bits.\n */\nexport function lebDecode(pipe: Pipe): bigint {\n let weight = BigInt(1);\n let value = BigInt(0);\n let byte;\n\n do {\n byte = safeReadUint8(pipe);\n value += BigInt(byte & 0x7f).valueOf() * weight;\n weight *= BigInt(128);\n } while (byte >= 0x80);\n\n return value;\n}\n\n/**\n * Encode a number (or bigint) into a Buffer, with support for negative numbers. The number\n * will be floored to the nearest integer.\n * @param value The number to encode.\n */\nexport function slebEncode(value: bigint | number): ArrayBuffer {\n if (typeof value === 'number') {\n value = BigInt(value);\n }\n\n const isNeg = value < BigInt(0);\n if (isNeg) {\n value = -value - BigInt(1);\n }\n const byteLength = (value === BigInt(0) ? 0 : Math.ceil(Math.log2(Number(value)))) + 1;\n const pipe = new Pipe(new ArrayBuffer(byteLength), 0);\n while (true) {\n const i = getLowerBytes(value);\n value /= BigInt(0x80);\n\n // prettier-ignore\n if ( ( isNeg && value === BigInt(0) && (i & 0x40) !== 0)\n || (!isNeg && value === BigInt(0) && (i & 0x40) === 0)) {\n pipe.write(new Uint8Array([i]));\n break;\n } else {\n pipe.write(new Uint8Array([i | 0x80]));\n }\n }\n\n function getLowerBytes(num: bigint): number {\n const bytes = num % BigInt(0x80);\n if (isNeg) {\n // We swap the bits here again, and remove 1 to do two's complement.\n return Number(BigInt(0x80) - bytes - BigInt(1));\n } else {\n return Number(bytes);\n }\n }\n return pipe.buffer;\n}\n\n/**\n * Decode a leb encoded buffer into a bigint. The number is decoded with support for negative\n * signed-leb encoding.\n * @param pipe A Buffer containing the signed leb encoded bits.\n */\nexport function slebDecode(pipe: Pipe): bigint {\n // Get the size of the buffer, then cut a buffer of that size.\n const pipeView = new Uint8Array(pipe.buffer);\n let len = 0;\n for (; len < pipeView.byteLength; len++) {\n if (pipeView[len] < 0x80) {\n // If it's a positive number, we reuse lebDecode.\n if ((pipeView[len] & 0x40) === 0) {\n return lebDecode(pipe);\n }\n break;\n }\n }\n\n const bytes = new Uint8Array(safeRead(pipe, len + 1));\n let value = BigInt(0);\n for (let i = bytes.byteLength - 1; i >= 0; i--) {\n value = value * BigInt(0x80) + BigInt(0x80 - (bytes[i] & 0x7f) - 1);\n }\n return -value - BigInt(1);\n}\n\n/**\n *\n * @param value bigint or number\n * @param byteLength number\n * @returns Buffer\n */\nexport function writeUIntLE(value: bigint | number, byteLength: number): ArrayBuffer {\n if (BigInt(value) < BigInt(0)) {\n throw new Error('Cannot write negative values.');\n }\n return writeIntLE(value, byteLength);\n}\n\n/**\n *\n * @param value\n * @param byteLength\n */\nexport function writeIntLE(value: bigint | number, byteLength: number): ArrayBuffer {\n value = BigInt(value);\n\n const pipe = new Pipe(new ArrayBuffer(Math.min(1, byteLength)), 0);\n let i = 0;\n let mul = BigInt(256);\n let sub = BigInt(0);\n let byte = Number(value % mul);\n pipe.write(new Uint8Array([byte]));\n while (++i < byteLength) {\n if (value < 0 && sub === BigInt(0) && byte !== 0) {\n sub = BigInt(1);\n }\n byte = Number((value / mul - sub) % BigInt(256));\n pipe.write(new Uint8Array([byte]));\n mul *= BigInt(256);\n }\n\n return pipe.buffer;\n}\n\n/**\n *\n * @param pipe Pipe from buffer-pipe\n * @param byteLength number\n * @returns bigint\n */\nexport function readUIntLE(pipe: Pipe, byteLength: number): bigint {\n let val = BigInt(safeReadUint8(pipe));\n let mul = BigInt(1);\n let i = 0;\n while (++i < byteLength) {\n mul *= BigInt(256);\n const byte = BigInt(safeReadUint8(pipe));\n val = val + mul * byte;\n }\n return val;\n}\n\n/**\n *\n * @param pipe Pipe from buffer-pipe\n * @param byteLength number\n * @returns bigint\n */\nexport function readIntLE(pipe: Pipe, byteLength: number): bigint {\n let val = readUIntLE(pipe, byteLength);\n const mul = BigInt(2) ** (BigInt(8) * BigInt(byteLength - 1) + BigInt(7));\n if (val >= mul) {\n val -= mul * BigInt(2);\n }\n return val;\n}\n", "/**\n * Equivalent to `Math.log2(n)` with support for `BigInt` values\n *\n * @param n bigint or integer\n * @returns integer\n */\nexport function ilog2(n: bigint | number): number {\n const nBig = BigInt(n);\n if (n <= 0) {\n throw new RangeError('Input must be positive');\n }\n return nBig.toString(2).length - 1;\n}\n\n/**\n * Equivalent to `2 ** n` with support for `BigInt` values\n * (necessary for browser preprocessors which replace the `**` operator with `Math.pow`)\n *\n * @param n bigint or integer\n * @returns bigint\n */\nexport function iexp2(n: bigint | number): bigint {\n const nBig = BigInt(n);\n if (n < 0) {\n throw new RangeError('Input must be non-negative');\n }\n return BigInt(1) << nBig;\n}\n", "import * as IDL from './idl';\nimport { Principal } from '@dfinity/principal';\nimport * as UI from './candid-core';\n\n// tslint:disable:max-classes-per-file\ntype InputBox = UI.InputBox;\n\nconst InputConfig: UI.UIConfig = { parse: parsePrimitive };\nconst FormConfig: UI.FormConfig = { render: renderInput };\n\nexport const inputBox = (t: IDL.Type, config: Partial<UI.UIConfig>) => {\n return new UI.InputBox(t, { ...InputConfig, ...config });\n};\nexport const recordForm = (fields: Array<[string, IDL.Type]>, config: Partial<UI.FormConfig>) => {\n return new UI.RecordForm(fields, { ...FormConfig, ...config });\n};\nexport const tupleForm = (components: IDL.Type[], config: Partial<UI.FormConfig>) => {\n return new UI.TupleForm(components, { ...FormConfig, ...config });\n};\nexport const variantForm = (fields: Array<[string, IDL.Type]>, config: Partial<UI.FormConfig>) => {\n return new UI.VariantForm(fields, { ...FormConfig, ...config });\n};\nexport const optForm = (ty: IDL.Type, config: Partial<UI.FormConfig>) => {\n return new UI.OptionForm(ty, { ...FormConfig, ...config });\n};\nexport const vecForm = (ty: IDL.Type, config: Partial<UI.FormConfig>) => {\n return new UI.VecForm(ty, { ...FormConfig, ...config });\n};\n\nexport class Render extends IDL.Visitor<null, InputBox> {\n public visitType<T>(t: IDL.Type<T>, d: null): InputBox {\n const input = document.createElement('input');\n input.classList.add('argument');\n input.placeholder = t.display();\n return inputBox(t, { input });\n }\n public visitNull(t: IDL.NullClass, d: null): InputBox {\n return inputBox(t, {});\n }\n public visitRecord(t: IDL.RecordClass, fields: Array<[string, IDL.Type]>, d: null): InputBox {\n let config = {};\n if (fields.length > 1) {\n const container = document.createElement('div');\n container.classList.add('popup-form');\n config = { container };\n }\n const form = recordForm(fields, config);\n return inputBox(t, { form });\n }\n public visitTuple<T extends any[]>(\n t: IDL.TupleClass<T>,\n components: IDL.Type[],\n d: null,\n ): InputBox {\n let config = {};\n if (components.length > 1) {\n const container = document.createElement('div');\n container.classList.add('popup-form');\n config = { container };\n }\n const form = tupleForm(components, config);\n return inputBox(t, { form });\n }\n public visitVariant(t: IDL.VariantClass, fields: Array<[string, IDL.Type]>, d: null): InputBox {\n const select = document.createElement('select');\n for (const [key, type] of fields) {\n const option = new Option(key);\n select.add(option);\n }\n select.selectedIndex = -1;\n select.classList.add('open');\n const config: Partial<UI.FormConfig> = { open: select, event: 'change' };\n const form = variantForm(fields, config);\n return inputBox(t, { form });\n }\n public visitOpt<T>(t: IDL.OptClass<T>, ty: IDL.Type<T>, d: null): InputBox {\n const checkbox = document.createElement('input');\n checkbox.type = 'checkbox';\n checkbox.classList.add('open');\n const form = optForm(ty, { open: checkbox, event: 'change' });\n return inputBox(t, { form });\n }\n public visitVec<T>(t: IDL.VecClass<T>, ty: IDL.Type<T>, d: null): InputBox {\n const len = document.createElement('input');\n len.type = 'number';\n len.min = '0';\n len.max = '100';\n len.style.width = '8rem';\n len.placeholder = 'len';\n len.classList.add('open');\n const container = document.createElement('div');\n container.classList.add('popup-form');\n const form = vecForm(ty, { open: len, event: 'change', container });\n return inputBox(t, { form });\n }\n public visitRec<T>(t: IDL.RecClass<T>, ty: IDL.ConstructType<T>, d: null): InputBox {\n return renderInput(ty);\n }\n}\n\nclass Parse extends IDL.Visitor<string, any> {\n public visitNull(t: IDL.NullClass, v: string): null {\n return null;\n }\n public visitBool(t: IDL.BoolClass, v: string): boolean {\n if (v === 'true') {\n return true;\n }\n if (v === 'false') {\n return false;\n }\n throw new Error(`Cannot parse ${v} as boolean`);\n }\n public visitText(t: IDL.TextClass, v: string): string {\n return v;\n }\n public visitFloat(t: IDL.FloatClass, v: string): number {\n return parseFloat(v);\n }\n public visitFixedInt(t: IDL.FixedIntClass, v: string): number | bigint {\n if (t._bits <= 32) {\n return parseInt(v, 10);\n } else {\n return BigInt(v);\n }\n }\n public visitFixedNat(t: IDL.FixedNatClass, v: string): number | bigint {\n if (t._bits <= 32) {\n return parseInt(v, 10);\n } else {\n return BigInt(v);\n }\n }\n public visitNumber(t: IDL.PrimitiveType, v: string): bigint {\n return BigInt(v);\n }\n public visitPrincipal(t: IDL.PrincipalClass, v: string): Principal {\n return Principal.fromText(v);\n }\n public visitService(t: IDL.ServiceClass, v: string): Principal {\n return Principal.fromText(v);\n }\n public visitFunc(t: IDL.FuncClass, v: string): [Principal, string] {\n const x = v.split('.', 2);\n return [Principal.fromText(x[0]), x[1]];\n }\n}\n\nclass Random extends IDL.Visitor<string, any> {\n public visitNull(t: IDL.NullClass, v: string): null {\n return null;\n }\n public visitBool(t: IDL.BoolClass, v: string): boolean {\n return Math.random() < 0.5;\n }\n public visitText(t: IDL.TextClass, v: string): string {\n return Math.random().toString(36).substring(6);\n }\n public visitFloat(t: IDL.FloatClass, v: string): number {\n return Math.random();\n }\n public visitInt(t: IDL.IntClass, v: string): bigint {\n return BigInt(this.generateNumber(true));\n }\n public visitNat(t: IDL.NatClass, v: string): bigint {\n return BigInt(this.generateNumber(false));\n }\n public visitFixedInt(t: IDL.FixedIntClass, v: string): number | bigint {\n const x = this.generateNumber(true);\n if (t._bits <= 32) {\n return x;\n } else {\n return BigInt(v);\n }\n }\n public visitFixedNat(t: IDL.FixedNatClass, v: string): number | bigint {\n const x = this.generateNumber(false);\n if (t._bits <= 32) {\n return x;\n } else {\n return BigInt(v);\n }\n }\n private generateNumber(signed: boolean): number {\n const num = Math.floor(Math.random() * 100);\n if (signed && Math.random() < 0.5) {\n return -num;\n } else {\n return num;\n }\n }\n}\n\nfunction parsePrimitive(t: IDL.Type, config: UI.ParseConfig, d: string) {\n if (config.random && d === '') {\n return t.accept(new Random(), d);\n } else {\n return t.accept(new Parse(), d);\n }\n}\n\n/**\n *\n * @param t an IDL type\n * @returns an input for that type\n */\nexport function renderInput(t: IDL.Type): InputBox {\n return t.accept(new Render(), null);\n}\n\ninterface ValueConfig {\n input: InputBox;\n value: any;\n}\n\n/**\n *\n * @param t an IDL Type\n * @param input an InputBox\n * @param value any\n * @returns rendering that value to the provided input\n */\nexport function renderValue(t: IDL.Type, input: InputBox, value: any) {\n return t.accept(new RenderValue(), { input, value });\n}\n\nclass RenderValue extends IDL.Visitor<ValueConfig, void> {\n public visitType<T>(t: IDL.Type<T>, d: ValueConfig) {\n (d.input.ui.input as HTMLInputElement).value = t.valueToString(d.value);\n }\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n public visitNull(t: IDL.NullClass, d: ValueConfig) {}\n public visitText(t: IDL.TextClass, d: ValueConfig) {\n (d.input.ui.input as HTMLInputElement).value = d.value;\n }\n public visitRec<T>(t: IDL.RecClass<T>, ty: IDL.ConstructType<T>, d: ValueConfig) {\n renderValue(ty, d.input, d.value);\n }\n public visitOpt<T>(t: IDL.OptClass<T>, ty: IDL.Type<T>, d: ValueConfig) {\n if (d.value.length === 0) {\n return;\n } else {\n const form = d.input.ui.form!;\n const open = form.ui.open as HTMLInputElement;\n open.checked = true;\n open.dispatchEvent(new Event(form.ui.event!));\n renderValue(ty, form.form[0], d.value[0]);\n }\n }\n public visitRecord(t: IDL.RecordClass, fields: Array<[string, IDL.Type]>, d: ValueConfig) {\n const form = d.input.ui.form!;\n fields.forEach(([key, type], i) => {\n renderValue(type, form.form[i], d.value[key]);\n });\n }\n public visitTuple<T extends any[]>(t: IDL.TupleClass<T>, components: IDL.Type[], d: ValueConfig) {\n const form = d.input.ui.form!;\n components.forEach((type, i) => {\n renderValue(type, form.form[i], d.value[i]);\n });\n }\n public visitVariant(t: IDL.VariantClass, fields: Array<[string, IDL.Type]>, d: ValueConfig) {\n const form = d.input.ui.form!;\n const selected = Object.entries(d.value)[0];\n fields.forEach(([key, type], i) => {\n if (key === selected[0]) {\n const open = form.ui.open as HTMLSelectElement;\n open.selectedIndex = i;\n open.dispatchEvent(new Event(form.ui.event!));\n renderValue(type, form.form[0], selected[1]);\n }\n });\n }\n public visitVec<T>(t: IDL.VecClass<T>, ty: IDL.Type<T>, d: ValueConfig) {\n const form = d.input.ui.form!;\n const len = d.value.length;\n const open = form.ui.open as HTMLInputElement;\n open.value = len;\n open.dispatchEvent(new Event(form.ui.event!));\n d.value.forEach((v: T, i: number) => {\n renderValue(ty, form.form[i], v);\n });\n }\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: Uint8Array;\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 {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", "// @ts-ignore\nexport const idlFactory = ({IDL}) => {\n const bitcoin_network = IDL.Variant({\n mainnet: IDL.Null,\n testnet: IDL.Null\n });\n const bitcoin_address = IDL.Text;\n const get_balance_request = IDL.Record({\n network: bitcoin_network,\n address: bitcoin_address,\n min_confirmations: IDL.Opt(IDL.Nat32)\n });\n const satoshi = IDL.Nat64;\n const get_current_fee_percentiles_request = IDL.Record({\n network: bitcoin_network\n });\n const millisatoshi_per_byte = IDL.Nat64;\n const get_utxos_request = IDL.Record({\n network: bitcoin_network,\n filter: IDL.Opt(\n IDL.Variant({\n page: IDL.Vec(IDL.Nat8),\n min_confirmations: IDL.Nat32\n })\n ),\n address: bitcoin_address\n });\n const block_hash = IDL.Vec(IDL.Nat8);\n const outpoint = IDL.Record({\n txid: IDL.Vec(IDL.Nat8),\n vout: IDL.Nat32\n });\n const utxo = IDL.Record({\n height: IDL.Nat32,\n value: satoshi,\n outpoint: outpoint\n });\n const get_utxos_response = IDL.Record({\n next_page: IDL.Opt(IDL.Vec(IDL.Nat8)),\n tip_height: IDL.Nat32,\n tip_block_hash: block_hash,\n utxos: IDL.Vec(utxo)\n });\n const send_transaction_request = IDL.Record({\n transaction: IDL.Vec(IDL.Nat8),\n network: bitcoin_network\n });\n const canister_id = IDL.Principal;\n const change_origin = IDL.Variant({\n from_user: IDL.Record({user_id: IDL.Principal}),\n from_canister: IDL.Record({\n canister_version: IDL.Opt(IDL.Nat64),\n canister_id: IDL.Principal\n })\n });\n const change_details = IDL.Variant({\n creation: IDL.Record({controllers: IDL.Vec(IDL.Principal)}),\n code_deployment: IDL.Record({\n mode: IDL.Variant({\n reinstall: IDL.Null,\n upgrade: IDL.Null,\n install: IDL.Null\n }),\n module_hash: IDL.Vec(IDL.Nat8)\n }),\n controllers_change: IDL.Record({\n controllers: IDL.Vec(IDL.Principal)\n }),\n code_uninstall: IDL.Null\n });\n const change = IDL.Record({\n timestamp_nanos: IDL.Nat64,\n canister_version: IDL.Nat64,\n origin: change_origin,\n details: change_details\n });\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 ecdsa_curve = IDL.Variant({secp256k1: IDL.Null});\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 wasm_module = IDL.Vec(IDL.Nat8);\n return IDL.Service({\n bitcoin_get_balance: IDL.Func([get_balance_request], [satoshi], []),\n bitcoin_get_current_fee_percentiles: IDL.Func(\n [get_current_fee_percentiles_request],\n [IDL.Vec(millisatoshi_per_byte)],\n []\n ),\n bitcoin_get_utxos: IDL.Func([get_utxos_request], [get_utxos_response], []),\n bitcoin_send_transaction: IDL.Func([send_transaction_request], [], []),\n canister_info: IDL.Func(\n [\n IDL.Record({\n canister_id: canister_id,\n num_requested_changes: IDL.Opt(IDL.Nat64)\n })\n ],\n [\n IDL.Record({\n controllers: IDL.Vec(IDL.Principal),\n module_hash: IDL.Opt(IDL.Vec(IDL.Nat8)),\n recent_changes: IDL.Vec(change),\n total_num_changes: IDL.Nat64\n })\n ],\n []\n ),\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 idle_cycles_burned_per_day: IDL.Nat,\n module_hash: IDL.Opt(IDL.Vec(IDL.Nat8))\n })\n ],\n []\n ),\n create_canister: IDL.Func(\n [\n IDL.Record({\n settings: IDL.Opt(canister_settings),\n sender_canister_version: IDL.Opt(IDL.Nat64)\n })\n ],\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 ecdsa_public_key: IDL.Func(\n [\n IDL.Record({\n key_id: IDL.Record({name: IDL.Text, curve: ecdsa_curve}),\n canister_id: IDL.Opt(canister_id),\n derivation_path: IDL.Vec(IDL.Vec(IDL.Nat8))\n })\n ],\n [\n IDL.Record({\n public_key: IDL.Vec(IDL.Nat8),\n chain_code: IDL.Vec(IDL.Nat8)\n })\n ],\n []\n ),\n http_request: IDL.Func(\n [\n IDL.Record({\n url: IDL.Text,\n method: IDL.Variant({\n get: IDL.Null,\n head: IDL.Null,\n post: IDL.Null\n }),\n max_response_bytes: IDL.Opt(IDL.Nat64),\n body: IDL.Opt(IDL.Vec(IDL.Nat8)),\n transform: IDL.Opt(\n IDL.Record({\n function: IDL.Func(\n [\n IDL.Record({\n context: IDL.Vec(IDL.Nat8),\n response: http_response\n })\n ],\n [http_response],\n ['query']\n ),\n context: IDL.Vec(IDL.Nat8)\n })\n ),\n headers: IDL.Vec(http_header)\n })\n ],\n [http_response],\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 sender_canister_version: IDL.Opt(IDL.Nat64)\n })\n ],\n [],\n []\n ),\n provisional_create_canister_with_cycles: IDL.Func(\n [\n IDL.Record({\n settings: IDL.Opt(canister_settings),\n specified_id: IDL.Opt(canister_id),\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 sign_with_ecdsa: IDL.Func(\n [\n IDL.Record({\n key_id: IDL.Record({name: IDL.Text, curve: ecdsa_curve}),\n derivation_path: IDL.Vec(IDL.Vec(IDL.Nat8)),\n message_hash: IDL.Vec(IDL.Nat8)\n })\n ],\n [IDL.Record({signature: IDL.Vec(IDL.Nat8)})],\n []\n ),\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(\n [\n IDL.Record({\n canister_id: canister_id,\n sender_canister_version: IDL.Opt(IDL.Nat64)\n })\n ],\n [],\n []\n ),\n update_settings: IDL.Func(\n [\n IDL.Record({\n canister_id: IDL.Principal,\n settings: canister_settings,\n sender_canister_version: IDL.Opt(IDL.Nat64)\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_satellite_metadata: IDL.Func(\n [IDL.Principal, IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text))],\n [Satellite],\n []\n ),\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 rewrites: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),\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 UploadChunk = IDL.Record({\n content: IDL.Vec(IDL.Nat8),\n batch_id: IDL.Nat,\n order_id: IDL.Opt(IDL.Nat)\n });\n const UploadChunkResult = 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.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.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([UploadChunk], [UploadChunkResult], []),\n version: IDL.Func([], [IDL.Text], ['query'])\n });\n};\n// @ts-ignore\nexport const init = ({IDL}) => {\n return [];\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 {_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' | 'sender_canister_version'>;\n}): Promise<void> => {\n const {install_code}: ICActor = await getICActor(actor);\n\n return install_code({\n ...code,\n mode: {upgrade: null},\n sender_canister_version: []\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", "import {Principal} from '@dfinity/principal';\nimport {nonNullish, toNullable} from '@junobuild/utils';\nimport type {SetController} from '../../declarations/mission_control/mission_control.did';\nimport type {SetControllerParams} from '../types/controllers.types';\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 {major, minor, patch} from 'semver';\n\nexport const checkUpgradeVersion = ({\n currentVersion,\n selectedVersion\n}: {\n currentVersion: string;\n selectedVersion: string;\n}): {canUpgrade: boolean} => {\n const currentMajor = major(currentVersion);\n const selectedMajor = major(selectedVersion);\n const currentMinor = minor(currentVersion);\n const selectedMinor = minor(selectedVersion);\n const currentPath = patch(currentVersion);\n const selectedPath = patch(selectedVersion);\n\n if (\n currentMajor < selectedMajor - 1 ||\n currentMinor < selectedMinor - 1 ||\n currentPath < selectedPath - 1\n ) {\n return {canUpgrade: false};\n }\n\n return {canUpgrade: true};\n};\n", "import {IDL} from '@dfinity/candid';\nimport {Principal} from '@dfinity/principal';\nimport {fromNullable} from '@junobuild/utils';\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 {DEFAULT_CONFIG_REWRITES} from '../constants/config.constants';\nimport type {SatelliteParameters} from '../types/actor.types';\nimport type {Config, StorageConfigHeader, StorageConfigRewrite} from '../types/config.types';\nimport type {CustomDomain} from '../types/customdomain.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, rewrites: configRewrites}\n },\n satellite\n}: {\n config: Config;\n satellite: SatelliteParameters;\n}): Promise<void> => {\n const headers: [string, [string, string][]][] = (configHeaders ?? []).map(\n ({source, headers}: StorageConfigHeader) => [source, headers]\n );\n\n const rewrites: [string, string][] = (configRewrites ?? DEFAULT_CONFIG_REWRITES).map(\n ({source, destination}: StorageConfigRewrite) => [source, destination]\n );\n\n return setConfigApi({\n satellite,\n config: {\n storage: {\n headers,\n rewrites\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: Uint8Array;\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", "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 {StorageConfigRewrite} from '../types/config.types';\n\nexport const DEFAULT_CONFIG_REWRITES: StorageConfigRewrite[] = [\n {\n source: '**',\n destination: '/index.html'\n }\n];\n", "import {fromNullable, isNullish, nonNullish, toNullable} from '@junobuild/utils';\nimport 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';\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 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"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["idl_exports", "__export", "Bool", "BoolClass", "ConstructType", "Empty", "EmptyClass", "FixedIntClass", "FixedNatClass", "Float32", "Float64", "FloatClass", "Func", "FuncClass", "Int", "Int16", "Int32", "Int64", "Int8", "IntClass", "Nat", "Nat16", "Nat32", "Nat64", "Nat8", "NatClass", "Null", "NullClass", "Opt", "OptClass", "PrimitiveType", "Principal", "PrincipalClass", "Rec", "RecClass", "Record", "RecordClass", "Reserved", "ReservedClass", "Service", "ServiceClass", "Text", "TextClass", "Tuple", "TupleClass", "Type", "Unknown", "UnknownClass", "Variant", "VariantClass", "Vec", "VecClass", "Visitor", "decode", "encode", "PrincipalId", "concat", "buffers", "result", "acc", "curr", "index", "b", "PipeArrayBuffer", "buffer", "length", "num", "result", "buf", "b", "offset", "amount", "v", "idlHash", "s", "array", "h", "c", "idlLabelToId", "label", "num", "eob", "safeRead", "pipe", "num", "safeReadUint8", "byte", "lebEncode", "value", "byteLength", "PipeArrayBuffer", "i", "lebDecode", "weight", "slebEncode", "isNeg", "getLowerBytes", "bytes", "slebDecode", "pipeView", "len", "writeUIntLE", "writeIntLE", "mul", "sub", "readUIntLE", "val", "readIntLE", "iexp2", "n", "nBig", "magicNumber", "toReadableString_max", "zipWith", "xs", "ys", "f", "x", "i", "TypeTable", "obj", "type", "buf", "idx", "knot", "knotIdx", "len", "lebEncode", "concat", "typeName", "slebEncode", "Visitor", "data", "ty", "fields", "components", "Type", "toReadableString", "typeTable", "PrimitiveType", "ConstructType", "RecClass", "EmptyClass", "v", "d", "UnknownClass", "b", "t", "decodedValue", "typeFunc", "BoolClass", "safeReadUint8", "NullClass", "ReservedClass", "TextClass", "lebDecode", "safeRead", "IntClass", "slebDecode", "NatClass", "FloatClass", "_bits", "view", "opcode", "bytes", "FixedIntClass", "min", "iexp2", "max", "ok", "writeIntLE", "offset", "num", "readIntLE", "FixedNatClass", "writeUIntLE", "readUIntLE", "VecClass", "_type", "bits", "e", "PipeArrayBuffer", "encoded", "opCode", "buffer", "vec", "rets", "OptClass", "opt", "RecordClass", "a", "idlLabelToId", "res", "key", "k", "values", "bufs", "c", "T", "_", "value", "record", "expectedRecordIdx", "actualRecordIdx", "hash", "expectKey", "expectType", "expectedId", "actualId", "TupleClass", "_components", "tuple", "wireType", "VariantClass", "name", "variant", "wireHash", "decodePrincipalId", "PrincipalId", "PrincipalClass", "FuncClass", "argTypes", "retTypes", "annotations", "types", "principal", "methodName", "canister", "method", "methodLen", "arg", "argLen", "args", "retLen", "annLen", "anns", "mLen", "annon", "str", "ann", "ServiceClass", "func", "meths", "label", "labelBuf", "labelLen", "_key", "encode", "magic", "table", "typs", "vals", "decode", "magicBuffer", "readTypeTable", "pipe", "objectLength", "prevHash", "argLength", "returnValues", "returnValuesLength", "annotationLength", "servLength", "methods", "nameLength", "funcName", "funcType", "rawList", "length", "rawTable", "rawTypes", "Rec", "getType", "Null", "Bool", "Nat", "Int", "Nat8", "Nat16", "Nat32", "Nat64", "Int8", "Int16", "Int32", "Int64", "Float32", "Float64", "Text", "Reserved", "Empty", "Principal", "buildType", "entry", "Vec", "Opt", "Record", "Tuple", "Variant", "Func", "rec", "typeRef", "Service", "output", "ind", "Unknown", "ret", "Principal", "Principal", "Principal", "idlFactory", "IDL", "bitcoin_network", "bitcoin_address", "get_balance_request", "satoshi", "get_current_fee_percentiles_request", "millisatoshi_per_byte", "get_utxos_request", "block_hash", "outpoint", "utxo", "get_utxos_response", "send_transaction_request", "canister_id", "change_origin", "change_details", "change", "definite_canister_settings", "canister_settings", "ecdsa_curve", "http_header", "http_response", "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", "UploadChunk", "UploadChunkResult", "Actor", "HttpAgent", "createActor", "canisterId", "idlFactory", "identity", "fetch", "env", "config", "host", "agent", "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", "Principal", "nonNullish", "toNullable", "mapSetControllerParams", "controllerId", "profile", "toSetController", "missionControlVersion", "params", "version", "upgradeMissionControl", "missionControl", "wasm_module", "user", "getUser", "missionControlId", "actor", "arg", "idl_exports", "upgradeCode", "Principal", "setSatellitesController", "controllerId", "profile", "rest", "mapSetControllerParams", "setMissionControlController", "major", "minor", "patch", "checkUpgradeVersion", "currentVersion", "selectedVersion", "currentMajor", "selectedMajor", "currentMinor", "selectedMinor", "currentPath", "selectedPath", "Principal", "fromNullable", "setConfig", "config", "satellite", "getSatelliteActor", "listRules", "type", "setRule", "collection", "rule", "version", "listDeprecatedControllers", "getDeprecatedSatelliteActor", "listDeprecatedNoScopeControllers", "getDeprecatedSatelliteNoScopeActor", "listControllers", "listCustomDomains", "DEFAULT_CONFIG_REWRITES", "fromNullable", "isNullish", "nonNullish", "toNullable", "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", "configRewrites", "satellite", "headers", "source", "rewrites", "DEFAULT_CONFIG_REWRITES", "destination", "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
|
}
|