@junobuild/admin 0.0.58-next-2024-11-24 → 0.0.58-next-2024-11-25.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../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/idl.ts", "../../../../node_modules/@dfinity/candid/src/candid-core.ts", "../../../../node_modules/@dfinity/candid/src/candid-ui.ts", "../../../../node_modules/@dfinity/candid/lib/cjs/types.js", "../../../../node_modules/@dfinity/candid/src/index.ts", "../../src/errors/upgrade.errors.ts", "../../src/api/actor.api.ts", "../../declarations/mission_control/mission_control.factory.did.js", "../../declarations/orbiter/orbiter.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/mission-control.api.ts", "../../src/utils/controllers.utils.ts", "../../src/services/mission-control.controllers.services.ts", "../../src/services/mission-control.upgrade.services.ts", "../../src/constants/upgrade.constants.ts", "../../src/handlers/upgrade.handlers.ts", "../../src/api/ic.api.ts", "../../src/utils/array.utils.ts", "../../src/utils/crypto.utils.ts", "../../src/utils/idl.utils.ts", "../../src/services/mission-control.version.services.ts", "../../src/api/orbiter.api.ts", "../../src/services/orbiter.controllers.services.ts", "../../src/services/orbiter.memory.services.ts", "../../src/services/orbiter.upgrade.services.ts", "../../src/services/orbiter.version.services.ts", "../../src/services/releases.services.ts", "../../src/api/satellite.api.ts", "../../src/services/satellite.assets.services.ts", "../../src/services/satellite.config.services.ts", "../../src/utils/memory.utils.ts", "../../src/services/satellite.controllers.services.ts", "../../src/services/satellite.docs.services.ts", "../../src/services/satellite.domains.services.ts", "../../src/services/satellite.memory.services.ts", "../../src/utils/rule.utils.ts", "../../src/constants/rules.constants.ts", "../../src/services/satellite.rules.services.ts", "../../src/services/satellite.upgrade.services.ts", "../../src/services/satellite.version.services.ts"],
4
- "sourcesContent": ["/**\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 = bufFromBufLike(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 bufFromBufLike(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 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/**\n * Returns a true ArrayBuffer from a Uint8Array, as Uint8Array.buffer is unsafe.\n * @param {Uint8Array} arr Uint8Array to convert\n * @returns ArrayBuffer\n */\nexport function uint8ToBuf(arr: Uint8Array): ArrayBuffer {\n return new DataView(arr.buffer, arr.byteOffset, arr.byteLength).buffer;\n}\n\n/**\n * Returns a true ArrayBuffer from an ArrayBufferLike object.\n * @param bufLike a buffer-like object\n * @returns ArrayBuffer\n */\nexport function bufFromBufLike(\n bufLike:\n | ArrayBuffer\n | Uint8Array\n | DataView\n | ArrayBufferView\n | ArrayBufferLike\n | [number]\n | number[]\n | { buffer: ArrayBuffer },\n): ArrayBuffer {\n if (bufLike instanceof Uint8Array) {\n return uint8ToBuf(bufLike);\n }\n if (bufLike instanceof ArrayBuffer) {\n return bufLike;\n }\n if (Array.isArray(bufLike)) {\n return uint8ToBuf(new Uint8Array(bufLike));\n }\n if ('buffer' in bufLike) {\n return bufFromBufLike(bufLike.buffer);\n }\n return uint8ToBuf(new Uint8Array(bufLike));\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 - string to hash\n * @returns number representing hashed string\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// 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 - PipeArrayBuffer simulating buffer-pipe api\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 - bigint or number\n * @param byteLength - number\n * @returns ArrayBuffer\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 * @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 * @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", "/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable @typescript-eslint/no-explicit-any */\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/**\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\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 // eslint-disable-next-line @typescript-eslint/no-unused-vars\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 * @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) => {\n if (a[0] < b[0]) {\n return -1;\n }\n if (a[0] > b[0]) {\n return 1;\n }\n return 0;\n });\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 * Takes an unknown value and returns a string representation of it.\n * @param x - unknown value\n * @returns {string} string representation of the value\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 - array of Types\n * @param args - array of values\n * @returns {ArrayBuffer} 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", "/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable @typescript-eslint/no-this-alias */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport * as IDL from './idl';\n\nexport interface ParseConfig {\n random?: boolean;\n}\n\nexport interface UIConfig {\n input?: HTMLElement;\n form?: InputForm;\n parse(t: IDL.Type, config: ParseConfig, v: string): any;\n}\n\nexport interface FormConfig {\n open?: HTMLElement;\n event?: string;\n labelMap?: Record<string, string>;\n container?: HTMLElement;\n render(t: IDL.Type): InputBox;\n}\n\nexport class InputBox {\n public status: HTMLElement;\n public label: string | null = null;\n public value: any = undefined;\n\n constructor(public idl: IDL.Type, public ui: UIConfig) {\n const status = document.createElement('span');\n status.className = 'status';\n this.status = status;\n\n if (ui.input) {\n ui.input.addEventListener('blur', () => {\n if ((ui.input as HTMLInputElement).value === '') {\n return;\n }\n this.parse();\n });\n ui.input.addEventListener('input', () => {\n status.style.display = 'none';\n ui.input!.classList.remove('reject');\n });\n }\n }\n public isRejected(): boolean {\n return this.value === undefined;\n }\n\n public parse(config: ParseConfig = {}): any {\n if (this.ui.form) {\n const value = this.ui.form.parse(config);\n this.value = value;\n return value;\n }\n\n if (this.ui.input) {\n const input = this.ui.input as HTMLInputElement;\n try {\n const value = this.ui.parse(this.idl, config, input.value);\n if (!this.idl.covariant(value)) {\n throw new Error(`${input.value} is not of type ${this.idl.display()}`);\n }\n this.status.style.display = 'none';\n this.value = value;\n return value;\n } catch (err) {\n input.classList.add('reject');\n this.status.style.display = 'block';\n this.status.innerHTML = 'InputError: ' + (err as Error).message;\n this.value = undefined;\n return undefined;\n }\n }\n return null;\n }\n public render(dom: HTMLElement): void {\n const container = document.createElement('span');\n if (this.label) {\n const label = document.createElement('label');\n label.innerText = this.label;\n container.appendChild(label);\n }\n if (this.ui.input) {\n container.appendChild(this.ui.input);\n container.appendChild(this.status);\n }\n\n if (this.ui.form) {\n this.ui.form.render(container);\n }\n dom.appendChild(container);\n }\n}\n\nexport abstract class InputForm {\n public form: InputBox[] = [];\n constructor(public ui: FormConfig) {}\n\n public abstract parse(config: ParseConfig): any;\n public abstract generateForm(): any;\n public renderForm(dom: HTMLElement): void {\n if (this.ui.container) {\n this.form.forEach(e => e.render(this.ui.container!));\n dom.appendChild(this.ui.container);\n } else {\n this.form.forEach(e => e.render(dom));\n }\n }\n public render(dom: HTMLElement): void {\n if (this.ui.open && this.ui.event) {\n dom.appendChild(this.ui.open);\n const form = this;\n // eslint-disable-next-line\n form.ui.open!.addEventListener(form.ui.event!, () => {\n // Remove old form\n if (form.ui.container) {\n form.ui.container.innerHTML = '';\n } else {\n const oldContainer = form.ui.open!.nextElementSibling;\n if (oldContainer) {\n oldContainer.parentNode!.removeChild(oldContainer);\n }\n }\n // Render form\n form.generateForm();\n form.renderForm(dom);\n });\n } else {\n this.generateForm();\n this.renderForm(dom);\n }\n }\n}\n\nexport class RecordForm extends InputForm {\n constructor(public fields: Array<[string, IDL.Type]>, public ui: FormConfig) {\n super(ui);\n }\n public generateForm(): void {\n this.form = this.fields.map(([key, type]) => {\n const input = this.ui.render(type);\n // eslint-disable-next-line\n if (this.ui.labelMap && this.ui.labelMap.hasOwnProperty(key)) {\n input.label = this.ui.labelMap[key] + ' ';\n } else {\n input.label = key + ' ';\n }\n return input;\n });\n }\n public parse(config: ParseConfig): Record<string, any> | undefined {\n const v: Record<string, any> = {};\n this.fields.forEach(([key, _], i) => {\n const value = this.form[i].parse(config);\n v[key] = value;\n });\n if (this.form.some(input => input.isRejected())) {\n return undefined;\n }\n return v;\n }\n}\n\nexport class TupleForm extends InputForm {\n constructor(public components: IDL.Type[], public ui: FormConfig) {\n super(ui);\n }\n public generateForm(): void {\n this.form = this.components.map(type => {\n const input = this.ui.render(type);\n return input;\n });\n }\n public parse(config: ParseConfig): any[] | undefined {\n const v: any[] = [];\n this.components.forEach((_, i) => {\n const value = this.form[i].parse(config);\n v.push(value);\n });\n if (this.form.some(input => input.isRejected())) {\n return undefined;\n }\n return v;\n }\n}\n\nexport class VariantForm extends InputForm {\n constructor(public fields: Array<[string, IDL.Type]>, public ui: FormConfig) {\n super(ui);\n }\n public generateForm(): void {\n const index = (this.ui.open as HTMLSelectElement).selectedIndex;\n const [_, type] = this.fields[index];\n const variant = this.ui.render(type);\n this.form = [variant];\n }\n public parse(config: ParseConfig): Record<string, any> | undefined {\n const select = this.ui.open as HTMLSelectElement;\n const selected = select.options[select.selectedIndex].value;\n const value = this.form[0].parse(config);\n if (value === undefined) {\n return undefined;\n }\n const v: Record<string, any> = {};\n v[selected] = value;\n return v;\n }\n}\n\nexport class OptionForm extends InputForm {\n constructor(public ty: IDL.Type, public ui: FormConfig) {\n super(ui);\n }\n public generateForm(): void {\n if ((this.ui.open as HTMLInputElement).checked) {\n const opt = this.ui.render(this.ty);\n this.form = [opt];\n } else {\n this.form = [];\n }\n }\n public parse<T>(config: ParseConfig): [T] | [] | undefined {\n if (this.form.length === 0) {\n return [];\n } else {\n const value = this.form[0].parse(config);\n if (value === undefined) {\n return undefined;\n }\n return [value];\n }\n }\n}\n\nexport class VecForm extends InputForm {\n constructor(public ty: IDL.Type, public ui: FormConfig) {\n super(ui);\n }\n public generateForm(): void {\n const len = +(this.ui.open as HTMLInputElement).value;\n this.form = [];\n for (let i = 0; i < len; i++) {\n const t = this.ui.render(this.ty);\n this.form.push(t);\n }\n }\n public parse<T>(config: ParseConfig): T[] | undefined {\n const value = this.form.map(input => {\n return input.parse(config);\n });\n if (this.form.some(input => input.isRejected())) {\n return undefined;\n }\n return value;\n }\n}\n", "/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport * as IDL from './idl';\nimport { Principal } from '@dfinity/principal';\nimport * as UI from './candid-core';\n\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", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=types.js.map", "export * from './candid-ui';\nexport * from './candid-core';\nexport * as IDL from './idl';\nexport * from './utils/hash';\nexport * from './utils/leb128';\nexport * from './utils/buffer';\nexport * from './types';\n", "export class UpgradeCodeUnchangedError extends Error {\n constructor() {\n super(\n 'The Wasm code for the upgrade is identical to the code currently installed. No upgrade is necessary.'\n );\n }\n}\n", "import type {IDL} from '@dfinity/candid';\nimport {isNullish} from '@junobuild/utils';\nimport type {_SERVICE as MissionControlActor} from '../../declarations/mission_control/mission_control.did';\n// eslint-disable-next-line import/no-relative-parent-imports\nimport {idlFactory as idlFactoryMissionControl} from '../../declarations/mission_control/mission_control.factory.did.js';\nimport type {_SERVICE as OrbiterActor} from '../../declarations/orbiter/orbiter.did';\n// eslint-disable-next-line import/no-relative-parent-imports\nimport {idlFactory as idlFactoryOrbiter} from '../../declarations/orbiter/orbiter.factory.did.js';\nimport type {_SERVICE as DeprecatedSatelliteNoScopeActor} from '../../declarations/satellite/satellite-deprecated-no-scope.did';\n// eslint-disable-next-line import/no-relative-parent-imports\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';\n// eslint-disable-next-line import/no-relative-parent-imports\nimport {idlFactory as idlDeprecatedFactorySatellite} from '../../declarations/satellite/satellite-deprecated.factory.did.js';\nimport type {_SERVICE as SatelliteActor} from '../../declarations/satellite/satellite.did';\n// eslint-disable-next-line import/no-relative-parent-imports\nimport {idlFactory as idlFactorySatellite} from '../../declarations/satellite/satellite.factory.did.js';\nimport type {\n ActorParameters,\n MissionControlParameters,\n OrbiterParameters,\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 = ({\n satelliteId,\n ...rest\n}: SatelliteParameters): Promise<DeprecatedSatelliteActor> =>\n getActor({\n canisterId: satelliteId,\n ...rest,\n idlFactory: idlDeprecatedFactorySatellite\n });\n\nexport const getSatelliteActor = ({\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 = ({\n satelliteId,\n ...rest\n}: SatelliteParameters): Promise<DeprecatedSatelliteNoScopeActor> =>\n getActor({\n canisterId: satelliteId,\n ...rest,\n idlFactory: idlDeprecatedFactorySatelliteNoScope\n });\n\nexport const getMissionControlActor = ({\n missionControlId,\n ...rest\n}: MissionControlParameters): Promise<MissionControlActor> =>\n getActor({\n canisterId: missionControlId,\n ...rest,\n idlFactory: idlFactoryMissionControl\n });\n\nexport const getOrbiterActor = ({orbiterId, ...rest}: OrbiterParameters): Promise<OrbiterActor> =>\n getActor({\n canisterId: orbiterId,\n ...rest,\n idlFactory: idlFactoryOrbiter\n });\n\nexport const getActor = <T>({\n canisterId,\n idlFactory,\n ...rest\n}: ActorParameters & {\n canisterId: string | undefined;\n idlFactory: IDL.InterfaceFactory;\n}): Promise<T> => {\n if (isNullish(canisterId)) {\n throw new Error('No canister ID provided.');\n }\n\n return createActor({\n canisterId,\n idlFactory,\n ...rest\n });\n};\n", "// @ts-ignore\nexport const idlFactory = ({IDL}) => {\n const Orbiter = IDL.Record({\n updated_at: IDL.Nat64,\n orbiter_id: IDL.Principal,\n metadata: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),\n created_at: IDL.Nat64\n });\n const CreateCanisterConfig = IDL.Record({\n subnet_id: IDL.Opt(IDL.Principal),\n name: IDL.Opt(IDL.Text)\n });\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 DepositCyclesArgs = IDL.Record({\n cycles: IDL.Nat,\n destination_id: IDL.Principal\n });\n const Tokens = IDL.Record({e8s: IDL.Nat64});\n const Timestamp = IDL.Record({timestamp_nanos: IDL.Nat64});\n const TransferArgs = IDL.Record({\n to: IDL.Vec(IDL.Nat8),\n fee: Tokens,\n memo: IDL.Nat64,\n from_subaccount: IDL.Opt(IDL.Vec(IDL.Nat8)),\n created_at_time: IDL.Opt(Timestamp),\n amount: Tokens\n });\n const TransferError = IDL.Variant({\n TxTooOld: IDL.Record({allowed_window_nanos: IDL.Nat64}),\n BadFee: IDL.Record({expected_fee: Tokens}),\n TxDuplicate: IDL.Record({duplicate_of: IDL.Nat64}),\n TxCreatedInFuture: IDL.Null,\n InsufficientFunds: IDL.Record({balance: Tokens})\n });\n const Result = IDL.Variant({Ok: IDL.Nat64, Err: TransferError});\n const Account = IDL.Record({\n owner: IDL.Principal,\n subaccount: IDL.Opt(IDL.Vec(IDL.Nat8))\n });\n const TransferArg = IDL.Record({\n to: Account,\n fee: IDL.Opt(IDL.Nat),\n memo: IDL.Opt(IDL.Vec(IDL.Nat8)),\n from_subaccount: IDL.Opt(IDL.Vec(IDL.Nat8)),\n created_at_time: IDL.Opt(IDL.Nat64),\n amount: IDL.Nat\n });\n const TransferError_1 = IDL.Variant({\n GenericError: IDL.Record({\n message: IDL.Text,\n error_code: IDL.Nat\n }),\n TemporarilyUnavailable: IDL.Null,\n BadBurn: IDL.Record({min_burn_amount: IDL.Nat}),\n Duplicate: IDL.Record({duplicate_of: IDL.Nat}),\n BadFee: IDL.Record({expected_fee: IDL.Nat}),\n CreatedInFuture: IDL.Record({ledger_time: IDL.Nat64}),\n TooOld: IDL.Null,\n InsufficientFunds: IDL.Record({balance: IDL.Nat})\n });\n const Result_1 = IDL.Variant({Ok: IDL.Nat, Err: TransferError_1});\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 SegmentCanisterSettings = 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 SegmentCanisterStatus = IDL.Record({\n status: CanisterStatusType,\n memory_size: IDL.Nat,\n cycles: IDL.Nat,\n settings: SegmentCanisterSettings,\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: SegmentCanisterStatus,\n metadata: IDL.Opt(IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text))),\n status_at: IDL.Nat64\n });\n const Result_2 = 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 CronJobStatusesConfig = 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 orbiters: IDL.Vec(IDL.Tuple(IDL.Principal, CronJobStatusesConfig)),\n satellites: IDL.Vec(IDL.Tuple(IDL.Principal, CronJobStatusesConfig)),\n cycles_threshold: IDL.Opt(IDL.Nat64)\n });\n const SegmentsStatuses = IDL.Record({\n orbiters: IDL.Opt(IDL.Vec(Result_2)),\n satellites: IDL.Opt(IDL.Vec(Result_2)),\n mission_control: Result_2\n });\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_orbiter: IDL.Func([IDL.Opt(IDL.Text)], [Orbiter], []),\n create_orbiter_with_config: IDL.Func([CreateCanisterConfig], [Orbiter], []),\n create_satellite: IDL.Func([IDL.Text], [Satellite], []),\n create_satellite_with_config: IDL.Func([CreateCanisterConfig], [Satellite], []),\n del_mission_control_controllers: IDL.Func([IDL.Vec(IDL.Principal)], [], []),\n del_orbiter: IDL.Func([IDL.Principal, IDL.Nat], [], []),\n del_orbiters_controllers: IDL.Func([IDL.Vec(IDL.Principal), IDL.Vec(IDL.Principal)], [], []),\n del_satellite: IDL.Func([IDL.Principal, IDL.Nat], [], []),\n del_satellites_controllers: IDL.Func([IDL.Vec(IDL.Principal), IDL.Vec(IDL.Principal)], [], []),\n deposit_cycles: IDL.Func([DepositCyclesArgs], [], []),\n get_user: IDL.Func([], [IDL.Principal], ['query']),\n icp_transfer: IDL.Func([TransferArgs], [Result], []),\n icrc_transfer: IDL.Func([IDL.Principal, TransferArg], [Result_1], []),\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(\n [],\n [IDL.Vec(IDL.Tuple(IDL.Nat64, Result_2))],\n ['query']\n ),\n list_orbiter_statuses: IDL.Func(\n [IDL.Principal],\n [IDL.Opt(IDL.Vec(IDL.Tuple(IDL.Nat64, Result_2)))],\n ['query']\n ),\n list_orbiters: IDL.Func([], [IDL.Vec(IDL.Tuple(IDL.Principal, Orbiter))], ['query']),\n list_satellite_statuses: IDL.Func(\n [IDL.Principal],\n [IDL.Opt(IDL.Vec(IDL.Tuple(IDL.Nat64, Result_2)))],\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_orbiter: IDL.Func([IDL.Principal, IDL.Opt(IDL.Text)], [Orbiter], []),\n set_orbiter_metadata: IDL.Func(\n [IDL.Principal, IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text))],\n [Orbiter],\n []\n ),\n set_orbiters_controllers: IDL.Func(\n [IDL.Vec(IDL.Principal), IDL.Vec(IDL.Principal), SetController],\n [],\n []\n ),\n set_satellite: IDL.Func([IDL.Principal, IDL.Opt(IDL.Text)], [Satellite], []),\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 unset_orbiter: IDL.Func([IDL.Principal], [], []),\n unset_satellite: IDL.Func([IDL.Principal], [], []),\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 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 DelSatelliteConfig = IDL.Record({version: IDL.Opt(IDL.Nat64)});\n const DepositCyclesArgs = IDL.Record({\n cycles: IDL.Nat,\n destination_id: IDL.Principal\n });\n const GetAnalytics = IDL.Record({\n to: IDL.Opt(IDL.Nat64),\n from: IDL.Opt(IDL.Nat64),\n satellite_id: IDL.Opt(IDL.Principal)\n });\n const AnalyticKey = IDL.Record({\n key: IDL.Text,\n collected_at: IDL.Nat64\n });\n const PageViewDevice = IDL.Record({\n inner_height: IDL.Nat16,\n inner_width: IDL.Nat16\n });\n const PageView = IDL.Record({\n title: IDL.Text,\n updated_at: IDL.Nat64,\n referrer: IDL.Opt(IDL.Text),\n time_zone: IDL.Text,\n session_id: IDL.Text,\n href: IDL.Text,\n created_at: IDL.Nat64,\n satellite_id: IDL.Principal,\n device: PageViewDevice,\n version: IDL.Opt(IDL.Nat64),\n user_agent: IDL.Opt(IDL.Text)\n });\n const AnalyticsBrowsersPageViews = IDL.Record({\n safari: IDL.Float64,\n opera: IDL.Float64,\n others: IDL.Float64,\n firefox: IDL.Float64,\n chrome: IDL.Float64\n });\n const AnalyticsDevicesPageViews = IDL.Record({\n desktop: IDL.Float64,\n others: IDL.Float64,\n mobile: IDL.Float64\n });\n const AnalyticsClientsPageViews = IDL.Record({\n browsers: AnalyticsBrowsersPageViews,\n devices: AnalyticsDevicesPageViews\n });\n const CalendarDate = IDL.Record({\n day: IDL.Nat8,\n month: IDL.Nat8,\n year: IDL.Int32\n });\n const AnalyticsMetricsPageViews = IDL.Record({\n bounce_rate: IDL.Float64,\n average_page_views_per_session: IDL.Float64,\n daily_total_page_views: IDL.Vec(IDL.Tuple(CalendarDate, IDL.Nat32)),\n total_page_views: IDL.Nat32,\n unique_page_views: IDL.Nat64,\n unique_sessions: IDL.Nat64\n });\n const AnalyticsTop10PageViews = IDL.Record({\n referrers: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Nat32)),\n pages: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Nat32))\n });\n const NavigationType = IDL.Variant({\n Navigate: IDL.Null,\n Restore: IDL.Null,\n Reload: IDL.Null,\n BackForward: IDL.Null,\n BackForwardCache: IDL.Null,\n Prerender: IDL.Null\n });\n const WebVitalsMetric = IDL.Record({\n id: IDL.Text,\n value: IDL.Float64,\n navigation_type: IDL.Opt(NavigationType),\n delta: IDL.Float64\n });\n const PerformanceData = IDL.Variant({WebVitalsMetric: WebVitalsMetric});\n const PerformanceMetricName = IDL.Variant({\n CLS: IDL.Null,\n FCP: IDL.Null,\n INP: IDL.Null,\n LCP: IDL.Null,\n TTFB: IDL.Null\n });\n const PerformanceMetric = IDL.Record({\n updated_at: IDL.Nat64,\n session_id: IDL.Text,\n data: PerformanceData,\n href: IDL.Text,\n metric_name: PerformanceMetricName,\n created_at: IDL.Nat64,\n satellite_id: IDL.Principal,\n version: IDL.Opt(IDL.Nat64)\n });\n const AnalyticsWebVitalsPageMetrics = IDL.Record({\n cls: IDL.Opt(IDL.Float64),\n fcp: IDL.Opt(IDL.Float64),\n inp: IDL.Opt(IDL.Float64),\n lcp: IDL.Opt(IDL.Float64),\n ttfb: IDL.Opt(IDL.Float64)\n });\n const AnalyticsWebVitalsPerformanceMetrics = IDL.Record({\n overall: AnalyticsWebVitalsPageMetrics,\n pages: IDL.Vec(IDL.Tuple(IDL.Text, AnalyticsWebVitalsPageMetrics))\n });\n const TrackEvent = IDL.Record({\n updated_at: IDL.Nat64,\n session_id: IDL.Text,\n metadata: IDL.Opt(IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text))),\n name: IDL.Text,\n created_at: IDL.Nat64,\n satellite_id: IDL.Principal,\n version: IDL.Opt(IDL.Nat64)\n });\n const AnalyticsTrackEvents = IDL.Record({\n total: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Nat32))\n });\n const OrbiterSatelliteFeatures = IDL.Record({\n performance_metrics: IDL.Bool,\n track_events: IDL.Bool,\n page_views: IDL.Bool\n });\n const OrbiterSatelliteConfig = IDL.Record({\n updated_at: IDL.Nat64,\n features: IDL.Opt(OrbiterSatelliteFeatures),\n created_at: IDL.Nat64,\n version: IDL.Opt(IDL.Nat64)\n });\n const MemorySize = IDL.Record({stable: IDL.Nat64, heap: IDL.Nat64});\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 SetPageView = IDL.Record({\n title: IDL.Text,\n updated_at: IDL.Opt(IDL.Nat64),\n referrer: IDL.Opt(IDL.Text),\n time_zone: IDL.Text,\n session_id: IDL.Text,\n href: IDL.Text,\n satellite_id: IDL.Principal,\n device: PageViewDevice,\n version: IDL.Opt(IDL.Nat64),\n user_agent: IDL.Opt(IDL.Text)\n });\n const Result = IDL.Variant({Ok: PageView, Err: IDL.Text});\n const Result_1 = IDL.Variant({\n Ok: IDL.Null,\n Err: IDL.Vec(IDL.Tuple(AnalyticKey, IDL.Text))\n });\n const SetPerformanceMetric = IDL.Record({\n session_id: IDL.Text,\n data: PerformanceData,\n href: IDL.Text,\n metric_name: PerformanceMetricName,\n satellite_id: IDL.Principal,\n version: IDL.Opt(IDL.Nat64),\n user_agent: IDL.Opt(IDL.Text)\n });\n const Result_2 = IDL.Variant({Ok: PerformanceMetric, Err: IDL.Text});\n const SetSatelliteConfig = IDL.Record({\n features: IDL.Opt(OrbiterSatelliteFeatures),\n version: IDL.Opt(IDL.Nat64)\n });\n const SetTrackEvent = IDL.Record({\n updated_at: IDL.Opt(IDL.Nat64),\n session_id: IDL.Text,\n metadata: IDL.Opt(IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text))),\n name: IDL.Text,\n satellite_id: IDL.Principal,\n version: IDL.Opt(IDL.Nat64),\n user_agent: IDL.Opt(IDL.Text)\n });\n const Result_3 = IDL.Variant({Ok: TrackEvent, Err: IDL.Text});\n return IDL.Service({\n del_controllers: IDL.Func(\n [DeleteControllersArgs],\n [IDL.Vec(IDL.Tuple(IDL.Principal, Controller))],\n []\n ),\n del_satellite_config: IDL.Func([IDL.Principal, DelSatelliteConfig], [], []),\n deposit_cycles: IDL.Func([DepositCyclesArgs], [], []),\n get_page_views: IDL.Func(\n [GetAnalytics],\n [IDL.Vec(IDL.Tuple(AnalyticKey, PageView))],\n ['query']\n ),\n get_page_views_analytics_clients: IDL.Func(\n [GetAnalytics],\n [AnalyticsClientsPageViews],\n ['query']\n ),\n get_page_views_analytics_metrics: IDL.Func(\n [GetAnalytics],\n [AnalyticsMetricsPageViews],\n ['query']\n ),\n get_page_views_analytics_top_10: IDL.Func([GetAnalytics], [AnalyticsTop10PageViews], ['query']),\n get_performance_metrics: IDL.Func(\n [GetAnalytics],\n [IDL.Vec(IDL.Tuple(AnalyticKey, PerformanceMetric))],\n ['query']\n ),\n get_performance_metrics_analytics_web_vitals: IDL.Func(\n [GetAnalytics],\n [AnalyticsWebVitalsPerformanceMetrics],\n ['query']\n ),\n get_track_events: IDL.Func(\n [GetAnalytics],\n [IDL.Vec(IDL.Tuple(AnalyticKey, TrackEvent))],\n ['query']\n ),\n get_track_events_analytics: IDL.Func([GetAnalytics], [AnalyticsTrackEvents], ['query']),\n list_controllers: IDL.Func([], [IDL.Vec(IDL.Tuple(IDL.Principal, Controller))], ['query']),\n list_satellite_configs: IDL.Func(\n [],\n [IDL.Vec(IDL.Tuple(IDL.Principal, OrbiterSatelliteConfig))],\n ['query']\n ),\n memory_size: IDL.Func([], [MemorySize], ['query']),\n set_controllers: IDL.Func(\n [SetControllersArgs],\n [IDL.Vec(IDL.Tuple(IDL.Principal, Controller))],\n []\n ),\n set_page_view: IDL.Func([AnalyticKey, SetPageView], [Result], []),\n set_page_views: IDL.Func([IDL.Vec(IDL.Tuple(AnalyticKey, SetPageView))], [Result_1], []),\n set_performance_metric: IDL.Func([AnalyticKey, SetPerformanceMetric], [Result_2], []),\n set_performance_metrics: IDL.Func(\n [IDL.Vec(IDL.Tuple(AnalyticKey, SetPerformanceMetric))],\n [Result_1],\n []\n ),\n set_satellite_configs: IDL.Func(\n [IDL.Vec(IDL.Tuple(IDL.Principal, SetSatelliteConfig))],\n [IDL.Vec(IDL.Tuple(IDL.Principal, OrbiterSatelliteConfig))],\n []\n ),\n set_track_event: IDL.Func([AnalyticKey, SetTrackEvent], [Result_3], []),\n set_track_events: IDL.Func([IDL.Vec(IDL.Tuple(AnalyticKey, SetTrackEvent))], [Result_1], []),\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 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 TimestampMatcher = IDL.Variant({\n Equal: IDL.Nat64,\n Between: IDL.Tuple(IDL.Nat64, IDL.Nat64),\n GreaterThan: IDL.Nat64,\n LessThan: IDL.Nat64\n });\n const ListMatcher = IDL.Record({\n key: IDL.Opt(IDL.Text),\n updated_at: IDL.Opt(TimestampMatcher),\n description: IDL.Opt(IDL.Text),\n created_at: IDL.Opt(TimestampMatcher)\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 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({version: IDL.Opt(IDL.Nat64)});\n const RulesType = IDL.Variant({Db: IDL.Null, Storage: IDL.Null});\n const DelRule = IDL.Record({version: IDL.Opt(IDL.Nat64)});\n const DepositCyclesArgs = IDL.Record({\n cycles: IDL.Nat,\n destination_id: IDL.Principal\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 version: IDL.Opt(IDL.Nat64)\n });\n const AuthenticationConfigInternetIdentity = IDL.Record({\n derivation_origin: IDL.Opt(IDL.Text)\n });\n const AuthenticationConfig = IDL.Record({\n internet_identity: IDL.Opt(AuthenticationConfigInternetIdentity)\n });\n const ConfigMaxMemorySize = IDL.Record({\n stable: IDL.Opt(IDL.Nat64),\n heap: IDL.Opt(IDL.Nat64)\n });\n const DbConfig = IDL.Record({\n max_memory_size: IDL.Opt(ConfigMaxMemorySize)\n });\n const StorageConfigIFrame = IDL.Variant({\n Deny: IDL.Null,\n AllowAny: IDL.Null,\n SameOrigin: IDL.Null\n });\n const StorageConfigRawAccess = IDL.Variant({\n Deny: IDL.Null,\n Allow: IDL.Null\n });\n const StorageConfigRedirect = IDL.Record({\n status_code: IDL.Nat16,\n location: IDL.Text\n });\n const StorageConfig = IDL.Record({\n iframe: IDL.Opt(StorageConfigIFrame),\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 max_memory_size: IDL.Opt(ConfigMaxMemorySize),\n raw_access: IDL.Opt(StorageConfigRawAccess),\n redirects: IDL.Opt(IDL.Vec(IDL.Tuple(IDL.Text, StorageConfigRedirect)))\n });\n const Config = IDL.Record({\n db: IDL.Opt(DbConfig),\n authentication: IDL.Opt(AuthenticationConfig),\n storage: StorageConfig\n });\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 version: IDL.Opt(IDL.Nat64)\n });\n const Memory = IDL.Variant({Heap: IDL.Null, Stable: 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 RateConfig = IDL.Record({\n max_tokens: IDL.Nat64,\n time_per_token_ns: IDL.Nat64\n });\n const Rule = IDL.Record({\n max_capacity: IDL.Opt(IDL.Nat32),\n memory: IDL.Opt(Memory),\n updated_at: IDL.Nat64,\n max_size: IDL.Opt(IDL.Nat),\n read: Permission,\n created_at: IDL.Nat64,\n version: IDL.Opt(IDL.Nat64),\n mutable_permissions: IDL.Opt(IDL.Bool),\n rate_config: IDL.Opt(RateConfig),\n write: Permission\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 certificate_version: IDL.Opt(IDL.Nat16)\n });\n const StreamingCallbackToken = IDL.Record({\n memory: Memory,\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([], [], ['query'])\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 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 version: IDL.Opt(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 MemorySize = IDL.Record({stable: IDL.Nat64, heap: IDL.Nat64});\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 data: IDL.Vec(IDL.Nat8),\n description: IDL.Opt(IDL.Text),\n version: IDL.Opt(IDL.Nat64)\n });\n const SetRule = IDL.Record({\n max_capacity: IDL.Opt(IDL.Nat32),\n memory: IDL.Opt(Memory),\n max_size: IDL.Opt(IDL.Nat),\n read: Permission,\n version: IDL.Opt(IDL.Nat64),\n mutable_permissions: IDL.Opt(IDL.Bool),\n rate_config: IDL.Opt(RateConfig),\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 build_version: IDL.Func([], [IDL.Text], ['query']),\n commit_asset_upload: IDL.Func([CommitBatch], [], []),\n count_assets: IDL.Func([IDL.Text, ListParams], [IDL.Nat64], ['query']),\n count_collection_assets: IDL.Func([IDL.Text], [IDL.Nat64], ['query']),\n count_collection_docs: IDL.Func([IDL.Text], [IDL.Nat64], ['query']),\n count_docs: IDL.Func([IDL.Text, ListParams], [IDL.Nat64], ['query']),\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_docs: IDL.Func([IDL.Text], [], []),\n del_filtered_assets: IDL.Func([IDL.Text, ListParams], [], []),\n del_filtered_docs: IDL.Func([IDL.Text, ListParams], [], []),\n del_many_assets: IDL.Func([IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text))], [], []),\n del_many_docs: IDL.Func([IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text, DelDoc))], [], []),\n del_rule: IDL.Func([RulesType, IDL.Text, DelRule], [], []),\n deposit_cycles: IDL.Func([DepositCyclesArgs], [], []),\n get_asset: IDL.Func([IDL.Text, IDL.Text], [IDL.Opt(AssetNoContent)], ['query']),\n get_auth_config: IDL.Func([], [IDL.Opt(AuthenticationConfig)], ['query']),\n get_config: IDL.Func([], [Config], []),\n get_db_config: IDL.Func([], [IDL.Opt(DbConfig)], ['query']),\n get_doc: IDL.Func([IDL.Text, IDL.Text], [IDL.Opt(Doc)], ['query']),\n get_many_assets: IDL.Func(\n [IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text))],\n [IDL.Vec(IDL.Tuple(IDL.Text, IDL.Opt(AssetNoContent)))],\n ['query']\n ),\n get_many_docs: IDL.Func(\n [IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text))],\n [IDL.Vec(IDL.Tuple(IDL.Text, IDL.Opt(Doc)))],\n ['query']\n ),\n get_rule: IDL.Func([RulesType, IDL.Text], [IDL.Opt(Rule)], ['query']),\n get_storage_config: IDL.Func([], [StorageConfig], ['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 memory_size: IDL.Func([], [MemorySize], ['query']),\n set_auth_config: IDL.Func([AuthenticationConfig], [], []),\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_db_config: IDL.Func([DbConfig], [], []),\n set_doc: IDL.Func([IDL.Text, IDL.Text, SetDoc], [Doc], []),\n set_many_docs: IDL.Func(\n [IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text, SetDoc))],\n [IDL.Vec(IDL.Tuple(IDL.Text, Doc))],\n []\n ),\n set_rule: IDL.Func([RulesType, IDL.Text, SetRule], [Rule], []),\n set_storage_config: IDL.Func([StorageConfig], [], []),\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 {\n Actor,\n HttpAgent,\n type ActorConfig,\n type ActorMethod,\n type ActorSubclass\n} from '@dfinity/agent';\nimport type {IDL} from '@dfinity/candid';\nimport {nonNullish} from '@junobuild/utils';\nimport type {ActorParameters} from '../types/actor.types';\n\nexport const createActor = async <T = Record<string, ActorMethod>>({\n canisterId,\n idlFactory,\n config,\n ...rest\n}: {\n idlFactory: IDL.InterfaceFactory;\n canisterId: string;\n config?: Pick<ActorConfig, 'callTransform' | 'queryTransform'>;\n} & ActorParameters): Promise<ActorSubclass<T>> => {\n const agent = await initAgent(rest);\n\n // Creates an actor with using the candid interface and the HttpAgent\n return Actor.createActor(idlFactory, {\n agent,\n canisterId,\n ...(config ?? {})\n });\n};\n\nexport const initAgent = async ({\n identity,\n fetch,\n container\n}: ActorParameters): Promise<HttpAgent> => {\n const localActor = nonNullish(container) && container !== false;\n\n const host = localActor\n ? container === true\n ? 'http://127.0.0.1:5987'\n : container\n : 'https://icp-api.io';\n\n return await HttpAgent.create({\n identity,\n host,\n retryTimes: 10,\n ...(nonNullish(fetch) && {fetch}),\n shouldFetchRootKey: localActor\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\n// eslint-disable-next-line local-rules/use-option-type-wrapper\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 {Principal} from '@dfinity/principal';\nimport type {Controller} from '../../declarations/mission_control/mission_control.did';\nimport {\n listControllers,\n setMissionControlController as setMissionControlControllerApi,\n setSatellitesController as setSatellitesControllerApi\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\n/**\n * Sets the controller for the specified satellites.\n * @param {Object} params - The parameters for setting the satellites controller.\n * @param {MissionControlParameters} params.missionControl - The Mission Control parameters.\n * @param {Principal[]} params.satelliteIds - The IDs of the satellites.\n * @param {SetControllerParams} params - Additional parameters for setting the controller.\n * @returns {Promise<void>} A promise that resolves when the controller is set.\n */\nexport const setSatellitesController = ({\n controllerId,\n profile,\n ...rest\n}: {\n missionControl: MissionControlParameters;\n satelliteIds: Principal[];\n} & SetControllerParams): Promise<void> =>\n setSatellitesControllerApi({\n ...rest,\n ...mapSetControllerParams({controllerId, profile})\n });\n\n/**\n * Sets the controller for Mission Control.\n * @param {Object} params - The parameters for setting the Mission Control controller.\n * @param {MissionControlParameters} params.missionControl - The Mission Control parameters.\n * @param {SetControllerParams} params - Additional parameters for setting the controller.\n * @returns {Promise<void>} A promise that resolves when the controller is set.\n */\nexport const setMissionControlController = ({\n controllerId,\n profile,\n ...rest\n}: {\n missionControl: MissionControlParameters;\n} & SetControllerParams): Promise<void> =>\n setMissionControlControllerApi({\n ...rest,\n ...mapSetControllerParams({controllerId, profile})\n });\n\n/**\n * Lists the controllers of Mission Control.\n * @param {Object} params - The parameters for listing the controllers.\n * @param {MissionControlParameters} params.missionControl - The Mission Control parameters.\n * @returns {Promise<[Principal, Controller][]>} A promise that resolves to a list of controllers.\n */\nexport const listMissionControlControllers = (params: {\n missionControl: MissionControlParameters;\n}): Promise<[Principal, Controller][]> => listControllers(params);\n", "import {Principal} from '@dfinity/principal';\nimport {getUser} from '../api/mission-control.api';\nimport {INSTALL_MODE_UPGRADE} from '../constants/upgrade.constants';\nimport {upgrade} from '../handlers/upgrade.handlers';\nimport type {MissionControlParameters} from '../types/actor.types';\nimport {encoreIDLUser} from '../utils/idl.utils';\n\n/**\n * Upgrades the Mission Control with the provided WASM module.\n * @param {Object} params - The parameters for upgrading Mission Control.\n * @param {MissionControlParameters} params.missionControl - The Mission Control parameters.\n * @param {Uint8Array} params.wasm_module - The WASM module for the upgrade.\n * @param {boolean} [params.preClearChunks] - An optional parameter to force clearing the chunks before uploading the chunked WASM. Apply if WASM > 2Mb.\n * @throws Will throw an error if no mission control principal is defined.\n * @returns {Promise<void>} A promise that resolves when the upgrade is complete.\n */\nexport const upgradeMissionControl = async ({\n missionControl,\n wasmModule,\n preClearChunks\n}: {\n missionControl: MissionControlParameters;\n wasmModule: Uint8Array;\n preClearChunks?: boolean;\n}): Promise<void> => {\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 = encoreIDLUser(user);\n\n await upgrade({\n actor,\n canisterId: Principal.fromText(missionControlId),\n arg: new Uint8Array(arg),\n wasmModule,\n mode: INSTALL_MODE_UPGRADE,\n preClearChunks\n });\n};\n", "import type {canister_install_mode} from '@dfinity/ic-management';\n\nexport const SIMPLE_INSTALL_MAX_WASM_SIZE = 2_000_000;\nexport const INSTALL_MAX_CHUNK_SIZE = 1_000_000;\n\nexport const INSTALL_MODE_RESET: canister_install_mode = {reinstall: null};\n\nexport const INSTALL_MODE_UPGRADE: canister_install_mode = {\n upgrade: [{skip_pre_upgrade: [false], wasm_memory_persistence: [{replace: null}]}]\n};\n", "import {fromNullable, isNullish} from '@junobuild/utils';\nimport {canisterStatus, installCode} from '../api/ic.api';\nimport {SIMPLE_INSTALL_MAX_WASM_SIZE} from '../constants/upgrade.constants';\nimport {UpgradeCodeUnchangedError} from '../errors/upgrade.errors';\nimport {UpgradeCodeParams} from '../types/upgrade.types';\nimport {uint8ArrayToHexString} from '../utils/array.utils';\nimport {uint8ArraySha256} from '../utils/crypto.utils';\n\nexport const upgrade = async ({wasmModule, ...rest}: UpgradeCodeParams) => {\n await assertExistingCode({wasmModule, ...rest});\n\n // TODO: remove eslint ignore\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const upgradeType = (): 'simple' | 'chunked' => {\n const blob = new Blob([wasmModule]);\n return blob.size > SIMPLE_INSTALL_MAX_WASM_SIZE ? 'chunked' : 'simple';\n };\n\n // TODO: upgradeChunkedCode does not work on mainnet. Either an IC or agent-js issue.\n // e: Server returned an error:\n // Code: 400 (Bad Request)\n // Body: error: canister_not_found\n // details: The specified canister does not exist.\n // const fn = upgradeType() === 'chunked' ? upgradeChunkedCode : upgradeCode;\n const fn = upgradeCode;\n\n await fn({wasmModule, ...rest});\n};\n\nconst assertExistingCode = async ({\n actor,\n canisterId,\n wasmModule\n}: Pick<UpgradeCodeParams, 'actor' | 'canisterId' | 'wasmModule'>) => {\n const {module_hash} = await canisterStatus({\n actor,\n canisterId\n });\n\n const installedHash = fromNullable(module_hash);\n\n if (isNullish(installedHash)) {\n return;\n }\n\n const newWasmModuleHash = await uint8ArraySha256(wasmModule);\n const existingWasmModuleHash = uint8ArrayToHexString(installedHash);\n\n if (newWasmModuleHash !== existingWasmModuleHash) {\n return;\n }\n\n throw new UpgradeCodeUnchangedError();\n};\n\nconst upgradeCode = async ({actor, ...rest}: UpgradeCodeParams) => {\n await installCode({\n actor,\n code: rest\n });\n};\n", "import {CanisterStatus} from '@dfinity/agent';\nimport {\n type chunk_hash,\n type InstallChunkedCodeParams,\n type UploadChunkParams,\n ICManagementCanister,\n InstallCodeParams\n} from '@dfinity/ic-management';\nimport type {CanisterStatusResponse} from '@dfinity/ic-management/dist/types/types/ic-management.responses';\nimport {Principal} from '@dfinity/principal';\nimport {assertNonNullish} from '@junobuild/utils';\nimport type {ActorParameters} from '../types/actor.types';\nimport {initAgent} from '../utils/actor.utils';\n\nexport const installCode = async ({\n actor,\n code\n}: {\n actor: ActorParameters;\n code: InstallCodeParams;\n}): Promise<void> => {\n const agent = await initAgent(actor);\n\n const {installCode} = ICManagementCanister.create({\n agent\n });\n\n return installCode(code);\n};\n\nexport const storedChunks = async ({\n actor,\n canisterId\n}: {\n actor: ActorParameters;\n canisterId: Principal;\n}): Promise<chunk_hash[]> => {\n const agent = await initAgent(actor);\n\n const {storedChunks} = ICManagementCanister.create({\n agent\n });\n\n return storedChunks({canisterId});\n};\n\nexport const clearChunkStore = async ({\n actor,\n canisterId\n}: {\n actor: ActorParameters;\n canisterId: Principal;\n}): Promise<void> => {\n const agent = await initAgent(actor);\n\n const {clearChunkStore} = ICManagementCanister.create({\n agent\n });\n\n return clearChunkStore({canisterId});\n};\n\nexport const uploadChunk = async ({\n actor,\n chunk\n}: {\n actor: ActorParameters;\n chunk: UploadChunkParams;\n}): Promise<chunk_hash> => {\n const agent = await initAgent(actor);\n\n const {uploadChunk} = ICManagementCanister.create({\n agent\n });\n\n return uploadChunk(chunk);\n};\n\nexport const installChunkedCode = async ({\n actor,\n code\n}: {\n actor: ActorParameters;\n code: InstallChunkedCodeParams;\n}): Promise<void> => {\n const agent = await initAgent(actor);\n\n const {installChunkedCode} = ICManagementCanister.create({\n agent\n });\n\n return installChunkedCode(code);\n};\n\nexport const canisterStatus = async ({\n actor,\n canisterId\n}: {\n actor: ActorParameters;\n canisterId: Principal;\n}): Promise<CanisterStatusResponse> => {\n const agent = await initAgent(actor);\n\n const {canisterStatus} = ICManagementCanister.create({\n agent\n });\n\n return canisterStatus(canisterId);\n};\n\nexport const canisterMetadata = async ({\n canisterId,\n path,\n ...rest\n}: ActorParameters & {\n canisterId: string | undefined;\n path: string;\n}): Promise<CanisterStatus.Status | undefined> => {\n assertNonNullish(canisterId, 'A canister ID must be provided to request its status.');\n\n const agent = await initAgent(rest);\n\n const result = await CanisterStatus.request({\n canisterId: Principal.from(canisterId),\n agent,\n paths: [\n {\n kind: 'metadata',\n key: path,\n path,\n decodeStrategy: 'utf-8'\n }\n ]\n });\n\n return result.get(path);\n};\n", "// Duplicates @dfinity/utils\nexport const uint8ArrayToHexString = (bytes: Uint8Array | number[]) => {\n if (!(bytes instanceof Uint8Array)) {\n bytes = Uint8Array.from(bytes);\n }\n return bytes.reduce((str, byte) => str + byte.toString(16).padStart(2, '0'), '');\n};\n", "// Sources:\n// https://stackoverflow.com/a/70891826/5404186\n// https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/digest\n\nconst digestSha256 = (data: ArrayBuffer): Promise<ArrayBuffer> =>\n crypto.subtle.digest('SHA-256', data);\n\nconst sha256ToHex = (hashBuffer: ArrayBuffer): string => {\n const hashArray = Array.from(new Uint8Array(hashBuffer));\n return hashArray.map((b) => b.toString(16).padStart(2, '0')).join('');\n};\n\nexport const blobSha256 = async (blob: Blob): Promise<string> => {\n const hashBuffer = await digestSha256(await blob.arrayBuffer());\n return sha256ToHex(hashBuffer);\n};\n\nexport const uint8ArraySha256 = async (data: Uint8Array): Promise<string> => {\n const hashBuffer = await digestSha256(data);\n return sha256ToHex(hashBuffer);\n};\n", "import {IDL} from '@dfinity/candid';\nimport type {Principal} from '@dfinity/principal';\n\nexport const encoreIDLUser = (user: Principal): ArrayBuffer =>\n IDL.encode(\n [\n IDL.Record({\n user: IDL.Principal\n })\n ],\n [{user}]\n );\n\nexport const encodeIDLControllers = <T>(controllers: [Principal, T][]): ArrayBuffer =>\n IDL.encode(\n [\n IDL.Record({\n controllers: IDL.Vec(IDL.Principal)\n })\n ],\n [{controllers: controllers.map(([controller, _]) => controller)}]\n );\n", "import {version} from '../api/mission-control.api';\nimport type {MissionControlParameters} from '../types/actor.types';\n\n/**\n * Retrieves the version of Mission Control.\n * @param {Object} params - The parameters for Mission Control.\n * @param {MissionControlParameters} params.missionControl - The Mission Control parameters.\n * @returns {Promise<string>} A promise that resolves to the version of Mission Control.\n */\nexport const missionControlVersion = (params: {\n missionControl: MissionControlParameters;\n}): Promise<string> => version(params);\n", "import type {Principal} from '@dfinity/principal';\nimport type {\n Controller,\n MemorySize,\n _SERVICE as OrbiterActor\n} from '../../declarations/orbiter/orbiter.did';\nimport type {OrbiterParameters} from '../types/actor.types';\nimport {getOrbiterActor} from './actor.api';\n\nexport const version = async ({orbiter}: {orbiter: OrbiterParameters}): Promise<string> => {\n const actor: OrbiterActor = await getOrbiterActor(orbiter);\n return actor.version();\n};\n\nexport const listControllers = async ({\n orbiter\n}: {\n orbiter: OrbiterParameters;\n}): Promise<[Principal, Controller][]> => {\n const actor: OrbiterActor = await getOrbiterActor(orbiter);\n return actor.list_controllers();\n};\n\nexport const memorySize = async ({orbiter}: {orbiter: OrbiterParameters}): Promise<MemorySize> => {\n const {memory_size} = await getOrbiterActor(orbiter);\n return memory_size();\n};\n", "import {Principal} from '@dfinity/principal';\nimport type {Controller} from '../../declarations/mission_control/mission_control.did';\nimport {listControllers} from '../api/orbiter.api';\nimport type {OrbiterParameters} from '../types/actor.types';\n\n/**\n * Lists the controllers of the Orbiter.\n * @param {Object} params - The parameters for listing the controllers.\n * @param {OrbiterParameters} params.orbiter - The Orbiter parameters.\n * @returns {Promise<[Principal, Controller][]>} A promise that resolves to a list of controllers.\n */\nexport const listOrbiterControllers = (params: {\n orbiter: OrbiterParameters;\n}): Promise<[Principal, Controller][]> => listControllers(params);\n", "import type {MemorySize} from '../../declarations/orbiter/orbiter.did';\nimport {memorySize} from '../api/orbiter.api';\nimport type {OrbiterParameters} from '../types/actor.types';\n\n/**\n * Retrieves the memory size of the Orbiter.\n * @param {Object} params - The parameters for the Orbiter.\n * @param {OrbiterParameters} params.orbiter - The Orbiter parameters.\n * @returns {Promise<MemorySize>} A promise that resolves to the memory size of the Orbiter.\n */\nexport const orbiterMemorySize = (params: {orbiter: OrbiterParameters}): Promise<MemorySize> =>\n memorySize(params);\n", "import {Principal} from '@dfinity/principal';\nimport {listControllers} from '../api/orbiter.api';\nimport {INSTALL_MODE_RESET, INSTALL_MODE_UPGRADE} from '../constants/upgrade.constants';\nimport {upgrade} from '../handlers/upgrade.handlers';\nimport type {OrbiterParameters} from '../types/actor.types';\nimport {encodeIDLControllers} from '../utils/idl.utils';\n\n/**\n * Upgrades the Orbiter with the provided WASM module.\n * @param {Object} params - The parameters for upgrading the Orbiter.\n * @param {OrbiterParameters} params.orbiter - The Orbiter parameters.\n * @param {Principal} [params.missionControlId] - The optional Mission Control ID in which the WASM chunks can potentially be stored. Useful to reuse chunks across installations.\n * @param {Uint8Array} params.wasm_module - The WASM module for the upgrade.\n * @param {boolean} [params.reset=false] - Whether to reset the Orbiter (reinstall) instead of upgrading.\n * @param {boolean} [params.preClearChunks] - An optional parameter to force clearing the chunks before uploading the chunked WASM. Apply if WASM > 2Mb.\n * @throws Will throw an error if no orbiter principal is defined.\n * @returns {Promise<void>} A promise that resolves when the upgrade is complete.\n */\nexport const upgradeOrbiter = async ({\n orbiter,\n missionControlId,\n wasmModule,\n reset = false,\n preClearChunks\n}: {\n orbiter: OrbiterParameters;\n missionControlId?: Principal;\n wasmModule: Uint8Array;\n reset?: boolean;\n preClearChunks?: boolean;\n}): Promise<void> => {\n const {orbiterId, ...actor} = orbiter;\n\n if (!orbiterId) {\n throw new Error('No orbiter principal defined.');\n }\n\n const controllers = await listControllers({orbiter});\n\n const arg = encodeIDLControllers(controllers);\n\n await upgrade({\n actor,\n canisterId: Principal.fromText(orbiterId),\n missionControlId,\n arg: new Uint8Array(arg),\n wasmModule,\n mode: reset ? INSTALL_MODE_RESET : INSTALL_MODE_UPGRADE,\n preClearChunks\n });\n};\n", "import {version} from '../api/orbiter.api';\nimport type {OrbiterParameters} from '../types/actor.types';\n\n/**\n * Retrieves the version of the Orbiter.\n * @param {Object} params - The parameters for the Orbiter.\n * @param {OrbiterParameters} params.orbiter - The Orbiter parameters.\n * @returns {Promise<string>} A promise that resolves to the version of the Orbiter.\n */\nexport const orbiterVersion = (params: {orbiter: OrbiterParameters}): Promise<string> =>\n version(params);\n", "import {major, minor, patch} from 'semver';\n\n/**\n * Checks if the selected version can be upgraded from the current version.\n * @param {Object} params - The parameters for the version check.\n * @param {string} params.currentVersion - The current version.\n * @param {string} params.selectedVersion - The selected version.\n * @returns {Object} An object indicating whether the upgrade can proceed.\n * @returns {boolean} returns.canUpgrade - Whether the selected version can be upgraded from the current version.\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 type {Principal} from '@dfinity/principal';\nimport {toNullable} from '@junobuild/utils';\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 AuthenticationConfig,\n Controller,\n CustomDomain,\n DbConfig,\n MemorySize,\n Rule,\n RulesType,\n _SERVICE as SatelliteActor,\n SetControllersArgs,\n SetRule,\n StorageConfig\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 setStorageConfig = async ({\n config,\n satellite\n}: {\n config: StorageConfig;\n satellite: SatelliteParameters;\n}): Promise<void> => {\n const {set_storage_config} = await getSatelliteActor(satellite);\n return set_storage_config(config);\n};\n\nexport const setDatastoreConfig = async ({\n config,\n satellite\n}: {\n config: DbConfig;\n satellite: SatelliteParameters;\n}): Promise<void> => {\n const {set_db_config} = await getSatelliteActor(satellite);\n return set_db_config(config);\n};\n\nexport const setAuthConfig = async ({\n config,\n satellite\n}: {\n config: AuthenticationConfig;\n satellite: SatelliteParameters;\n}): Promise<void> => {\n const {set_auth_config} = await getSatelliteActor(satellite);\n return set_auth_config(config);\n};\n\nexport const getStorageConfig = async ({\n satellite\n}: {\n satellite: SatelliteParameters;\n}): Promise<StorageConfig> => {\n const {get_storage_config} = await getSatelliteActor(satellite);\n return get_storage_config();\n};\n\nexport const getDatastoreConfig = async ({\n satellite\n}: {\n satellite: SatelliteParameters;\n}): Promise<[] | [DbConfig]> => {\n const {get_db_config} = await getSatelliteActor(satellite);\n return get_db_config();\n};\n\nexport const getAuthConfig = async ({\n satellite\n}: {\n satellite: SatelliteParameters;\n}): Promise<[] | [AuthenticationConfig]> => {\n const {get_auth_config} = await getSatelliteActor(satellite);\n return get_auth_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<Rule> => {\n const {set_rule} = await getSatelliteActor(satellite);\n return set_rule(type, collection, rule);\n};\n\nexport const version = async ({satellite}: {satellite: SatelliteParameters}): Promise<string> => {\n const {version} = await getSatelliteActor(satellite);\n return version();\n};\n\nexport const buildVersion = async ({\n satellite\n}: {\n satellite: SatelliteParameters;\n}): Promise<string> => {\n const {build_version} = await getSatelliteActor(satellite);\n return build_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 =\n await getDeprecatedSatelliteNoScopeActor(satellite);\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 {list_custom_domains} = await getSatelliteActor(satellite);\n return list_custom_domains();\n};\n\nexport const setCustomDomain = async ({\n satellite,\n domainName,\n boundaryNodesId\n}: {\n satellite: SatelliteParameters;\n domainName: string;\n boundaryNodesId: string | undefined;\n}): Promise<void> => {\n const {set_custom_domain} = await getSatelliteActor(satellite);\n await set_custom_domain(domainName, toNullable(boundaryNodesId));\n};\n\nexport const memorySize = async ({\n satellite\n}: {\n satellite: SatelliteParameters;\n}): Promise<MemorySize> => {\n const {memory_size} = await getSatelliteActor(satellite);\n return memory_size();\n};\n\nexport const countDocs = async ({\n collection,\n satellite\n}: {\n collection: string;\n satellite: SatelliteParameters;\n}): Promise<bigint> => {\n const {count_collection_docs} = await getSatelliteActor(satellite);\n return count_collection_docs(collection);\n};\n\nexport const countAssets = async ({\n collection,\n satellite\n}: {\n collection: string;\n satellite: SatelliteParameters;\n}): Promise<bigint> => {\n const {count_collection_assets} = await getSatelliteActor(satellite);\n return count_collection_assets(collection);\n};\n\nexport const deleteDocs = async ({\n collection,\n satellite\n}: {\n collection: string;\n satellite: SatelliteParameters;\n}): Promise<void> => {\n const {del_docs} = await getSatelliteActor(satellite);\n return del_docs(collection);\n};\n\nexport const deleteAssets = async ({\n collection,\n satellite\n}: {\n collection: string;\n satellite: SatelliteParameters;\n}): Promise<void> => {\n const {del_assets} = await getSatelliteActor(satellite);\n return del_assets(collection);\n};\n\nexport const setControllers = async ({\n args,\n satellite\n}: {\n args: SetControllersArgs;\n satellite: SatelliteParameters;\n}): Promise<[Principal, Controller][]> => {\n const {set_controllers} = await getSatelliteActor(satellite);\n return set_controllers(args);\n};\n", "import {countAssets as countAssetsApi, deleteAssets as deleteAssetsApi} from '../api/satellite.api';\nimport type {SatelliteParameters} from '../types/actor.types';\n\n/**\n * Counts the assets in a collection.\n * @param {Object} params - The parameters for counting the assets.\n * @param {string} params.collection - The name of the collection.\n * @param {SatelliteParameters} params.satellite - The satellite parameters.\n * @returns {Promise<bigint>} A promise that resolves to the number of assets in the collection.\n */\nexport const countAssets = (params: {\n collection: string;\n satellite: SatelliteParameters;\n}): Promise<bigint> => countAssetsApi(params);\n\n/**\n * Deletes the assets in a collection.\n * @param {Object} params - The parameters for deleting the assets.\n * @param {string} params.collection - The name of the collection.\n * @param {SatelliteParameters} params.satellite - The satellite parameters.\n * @returns {Promise<void>} A promise that resolves when the assets are deleted.\n */\nexport const deleteAssets = (params: {\n collection: string;\n satellite: SatelliteParameters;\n}): Promise<void> => deleteAssetsApi(params);\n", "import type {\n AuthenticationConfig,\n DatastoreConfig,\n StorageConfig,\n StorageConfigHeader,\n StorageConfigRedirect,\n StorageConfigRewrite\n} from '@junobuild/config';\nimport {fromNullable, isNullish, nonNullish} from '@junobuild/utils';\nimport type {\n StorageConfigIFrame as StorageConfigIFrameDid,\n StorageConfigRawAccess as StorageConfigRawAccessDid,\n StorageConfigRedirect as StorageConfigRedirectDid\n} from '../../declarations/satellite/satellite.did';\nimport {\n getAuthConfig as getAuthConfigApi,\n setAuthConfig as setAuthConfigApi,\n setDatastoreConfig as setDatastoreConfigApi,\n setStorageConfig as setStorageConfigApi\n} from '../api/satellite.api';\nimport type {SatelliteParameters} from '../types/actor.types';\nimport {toMaxMemorySize} from '../utils/memory.utils';\n\n/**\n * Sets the configuration for the Storage of a Satellite.\n * @param {Object} params - The parameters for setting the configuration.\n * @param {Object} params.config - The storage configuration.\n * @param {Array<StorageConfigHeader>} params.config.headers - The headers configuration.\n * @param {Array<StorageConfigRewrite>} params.config.rewrites - The rewrites configuration.\n * @param {Array<StorageConfigRedirect>} params.config.redirects - The redirects configuration.\n * @param {string} params.config.iframe - The iframe configuration.\n * @param {SatelliteParameters} params.satellite - The satellite parameters.\n * @returns {Promise<void>} A promise that resolves when the configuration is set.\n */\nexport const setStorageConfig = async ({\n config: {\n headers: configHeaders,\n rewrites: configRewrites,\n redirects: configRedirects,\n iframe: configIFrame,\n rawAccess: configRawAccess,\n maxMemorySize: configMaxMemorySize\n },\n satellite\n}: {\n config: StorageConfig;\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 ?? []).map(\n ({source, destination}: StorageConfigRewrite) => [source, destination]\n );\n\n const redirects: [string, StorageConfigRedirectDid][] = (configRedirects ?? []).map(\n ({source, location, code}: StorageConfigRedirect) => [source, {status_code: code, location}]\n );\n\n const iframe: StorageConfigIFrameDid =\n configIFrame === 'same-origin'\n ? {SameOrigin: null}\n : configIFrame === 'allow-any'\n ? {AllowAny: null}\n : {Deny: null};\n\n const rawAccess: StorageConfigRawAccessDid =\n configRawAccess === true ? {Allow: null} : {Deny: null};\n\n return await setStorageConfigApi({\n satellite,\n config: {\n headers,\n rewrites,\n redirects: [redirects],\n iframe: [iframe],\n raw_access: [rawAccess],\n max_memory_size: toMaxMemorySize(configMaxMemorySize)\n }\n });\n};\n\n/**\n * Sets the datastore configuration for a satellite.\n * @param {Object} params - The parameters for setting the authentication configuration.\n * @param {Object} params.config - The datastore configuration.\n * @param {SatelliteParameters} params.satellite - The satellite parameters.\n * @returns {Promise<void>} A promise that resolves when the datastore configuration is set.\n */\nexport const setDatastoreConfig = async ({\n config: {maxMemorySize},\n ...rest\n}: {\n config: DatastoreConfig;\n satellite: SatelliteParameters;\n}): Promise<void> => {\n await setDatastoreConfigApi({\n config: {\n max_memory_size: toMaxMemorySize(maxMemorySize)\n },\n ...rest\n });\n};\n\n/**\n * Sets the authentication configuration for a satellite.\n * @param {Object} params - The parameters for setting the authentication configuration.\n * @param {Object} params.config - The authentication configuration.\n * @param {SatelliteParameters} params.satellite - The satellite parameters.\n * @returns {Promise<void>} A promise that resolves when the authentication configuration is set.\n */\nexport const setAuthConfig = async ({\n config: {internetIdentity},\n ...rest\n}: {\n config: AuthenticationConfig;\n satellite: SatelliteParameters;\n}): Promise<void> => {\n await setAuthConfigApi({\n config: {\n internet_identity: isNullish(internetIdentity?.derivationOrigin)\n ? []\n : [\n {\n derivation_origin: [internetIdentity.derivationOrigin]\n }\n ]\n },\n ...rest\n });\n};\n\n/**\n * Gets the authentication configuration for a satellite.\n * @param {Object} params - The parameters for getting the authentication configuration.\n * @param {SatelliteParameters} params.satellite - The satellite parameters.\n * @returns {Promise<AuthenticationConfig | undefined>} A promise that resolves to the authentication configuration or undefined if not found.\n */\nexport const getAuthConfig = async ({\n satellite\n}: {\n satellite: SatelliteParameters;\n}): Promise<AuthenticationConfig | undefined> => {\n const config = fromNullable(\n await getAuthConfigApi({\n satellite\n })\n );\n\n if (isNullish(config)) {\n return undefined;\n }\n\n const internetIdentity = fromNullable(config.internet_identity ?? []);\n\n return {\n ...(nonNullish(internetIdentity) && {\n internetIdentity: {\n ...(nonNullish(fromNullable(internetIdentity.derivation_origin)) && {\n derivationOrigin: fromNullable(internetIdentity.derivation_origin)\n })\n }\n })\n };\n};\n", "import type {MaxMemorySizeConfig} from '@junobuild/config';\nimport {nonNullish, toNullable} from '@junobuild/utils';\nimport type {ConfigMaxMemorySize} from '../../declarations/satellite/satellite.did';\n\nexport const toMaxMemorySize = (\n configMaxMemorySize?: MaxMemorySizeConfig\n): [] | [ConfigMaxMemorySize] =>\n toNullable(\n nonNullish(configMaxMemorySize)\n ? {\n heap: toNullable(configMaxMemorySize.heap),\n stable: toNullable(configMaxMemorySize.stable)\n }\n : undefined\n );\n", "import {Principal} from '@dfinity/principal';\nimport type {Controller, SetControllersArgs} from '../../declarations/satellite/satellite.did';\nimport {\n listControllers,\n listDeprecatedNoScopeControllers,\n setControllers\n} from '../api/satellite.api';\nimport type {SatelliteParameters} from '../types/actor.types';\n/**\n * Lists the controllers of a satellite.\n * @param {Object} params - The parameters for listing the controllers.\n * @param {SatelliteParameters} params.satellite - The satellite parameters.\n * @param {boolean} [params.deprecatedNoScope] - Whether to list deprecated no-scope controllers.\n * @returns {Promise<[Principal, Controller][]>} A promise that resolves to a list of controllers.\n */\nexport const listSatelliteControllers = ({\n deprecatedNoScope,\n ...params\n}: {\n satellite: SatelliteParameters;\n deprecatedNoScope?: boolean;\n}): Promise<[Principal, Controller][]> => {\n const list = deprecatedNoScope === true ? listDeprecatedNoScopeControllers : listControllers;\n return list(params);\n};\n\n/**\n * Sets the controllers of a satellite.\n * @param {Object} params - The parameters for setting the controllers.\n * @param {SatelliteParameters} params.satellite - The satellite parameters.\n * @param {SetControllersArgs} params.args - The arguments for setting the controllers.\n * @returns {Promise<[Principal, Controller][]>} A promise that resolves to a list of controllers.\n */\nexport const setSatelliteControllers = (params: {\n satellite: SatelliteParameters;\n args: SetControllersArgs;\n}): Promise<[Principal, Controller][]> => setControllers(params);\n", "import {countDocs as countDocsApi, deleteDocs as deleteDocsApi} from '../api/satellite.api';\nimport type {SatelliteParameters} from '../types/actor.types';\n\n/**\n * Counts the documents in a collection.\n * @param {Object} params - The parameters for counting the documents.\n * @param {string} params.collection - The name of the collection.\n * @param {SatelliteParameters} params.satellite - The satellite parameters.\n * @returns {Promise<bigint>} A promise that resolves to the number of documents in the collection.\n */\nexport const countDocs = (params: {\n collection: string;\n satellite: SatelliteParameters;\n}): Promise<bigint> => countDocsApi(params);\n\n/**\n * Deletes the documents in a collection.\n * @param {Object} params - The parameters for deleting the documents.\n * @param {string} params.collection - The name of the collection.\n * @param {SatelliteParameters} params.satellite - The satellite parameters.\n * @returns {Promise<void>} A promise that resolves when the documents are deleted.\n */\nexport const deleteDocs = (params: {\n collection: string;\n satellite: SatelliteParameters;\n}): Promise<void> => deleteDocsApi(params);\n", "import {fromNullable, nonNullish} from '@junobuild/utils';\nimport {\n listCustomDomains as listCustomDomainsApi,\n setCustomDomain as setCustomDomainApi\n} from '../api/satellite.api';\nimport type {SatelliteParameters} from '../types/actor.types';\nimport type {CustomDomain} from '../types/customdomain.types';\n\n/**\n * Lists the custom domains for a satellite.\n * @param {Object} params - The parameters for listing the custom domains.\n * @param {SatelliteParameters} params.satellite - The satellite parameters.\n * @returns {Promise<CustomDomain[]>} A promise that resolves to an array of custom domains.\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 const domainVersion = fromNullable(details.version);\n\n return {\n domain,\n bn_id: fromNullable(details.bn_id),\n created_at: details.created_at,\n updated_at: details.updated_at,\n ...(nonNullish(domainVersion) && {version: domainVersion})\n };\n });\n};\n\n/**\n * Sets the custom domains for a satellite.\n * @param {Object} params - The parameters for setting the custom domains.\n * @param {SatelliteParameters} params.satellite - The satellite parameters.\n * @param {CustomDomain[]} params.domains - The custom domains to set.\n * @returns {Promise<void[]>} A promise that resolves when the custom domains are set.\n */\nexport const setCustomDomains = ({\n satellite,\n domains\n}: {\n satellite: SatelliteParameters;\n domains: CustomDomain[];\n}): Promise<void[]> =>\n Promise.all(\n domains.map(({domain: domainName, bn_id: boundaryNodesId}) =>\n setCustomDomainApi({\n satellite,\n domainName,\n boundaryNodesId\n })\n )\n );\n", "import type {MemorySize} from '../../declarations/satellite/satellite.did';\nimport {memorySize} from '../api/satellite.api';\nimport type {SatelliteParameters} from '../types/actor.types';\n\n/**\n * Retrieves the memory size of a satellite.\n * @param {Object} params - The parameters for retrieving the memory size.\n * @param {SatelliteParameters} params.satellite - The satellite parameters.\n * @returns {Promise<MemorySize>} A promise that resolves to the memory size of the satellite.\n */\nexport const satelliteMemorySize = (params: {\n satellite: SatelliteParameters;\n}): Promise<MemorySize> => memorySize(params);\n", "import type {MemoryText, PermissionText, Rule, RulesType} from '@junobuild/config';\nimport {fromNullable, nonNullish, toNullable} from '@junobuild/utils';\nimport type {\n Memory,\n Permission,\n Rule as RuleApi,\n RulesType as RulesTypeApi,\n SetRule\n} from '../../declarations/satellite/satellite.did';\nimport {\n DbRulesType,\n DEFAULT_RATE_CONFIG_TIME_PER_TOKEN_NS,\n MemoryHeap,\n MemoryStable,\n PermissionControllers,\n PermissionManaged,\n PermissionPrivate,\n PermissionPublic,\n StorageRulesType\n} from '../constants/rules.constants';\n\nexport const mapRuleType = (type: RulesType): RulesTypeApi =>\n type === 'storage' ? StorageRulesType : DbRulesType;\n\nexport const mapSetRule = ({\n read,\n write,\n memory,\n maxSize,\n maxCapacity,\n version,\n mutablePermissions,\n maxTokens\n}: Pick<\n Rule,\n | 'read'\n | 'write'\n | 'maxSize'\n | 'maxCapacity'\n | 'version'\n | 'memory'\n | 'mutablePermissions'\n | 'maxTokens'\n>): SetRule => ({\n read: permissionFromText(read),\n write: permissionFromText(write),\n memory: nonNullish(memory) ? [memoryFromText(memory)] : [],\n version: toNullable(version),\n max_size: toNullable(nonNullish(maxSize) && maxSize > 0 ? BigInt(maxSize) : undefined),\n max_capacity: toNullable(nonNullish(maxCapacity) && maxCapacity > 0 ? maxCapacity : undefined),\n mutable_permissions: toNullable(mutablePermissions),\n rate_config: nonNullish(maxTokens)\n ? [\n {\n max_tokens: BigInt(maxTokens),\n time_per_token_ns: DEFAULT_RATE_CONFIG_TIME_PER_TOKEN_NS\n }\n ]\n : []\n});\n\nexport const mapRule = ([collection, rule]: [string, RuleApi]): Rule => {\n const {\n read,\n write,\n updated_at,\n created_at,\n max_size,\n max_capacity,\n memory,\n mutable_permissions,\n version,\n rate_config\n } = rule;\n\n const maxSize = (max_size?.[0] ?? 0n > 0n) ? Number(fromNullable(max_size)) : undefined;\n const maxCapacity = (max_capacity?.[0] ?? 0 > 0) ? fromNullable(max_capacity) : undefined;\n\n const ruleVersion = fromNullable(version);\n\n const maxTokens =\n (rate_config?.[0]?.max_tokens ?? 0n > 0n) ? fromNullable(rate_config)?.max_tokens : undefined;\n\n return {\n collection,\n read: permissionToText(read),\n write: permissionToText(write),\n memory: memoryToText(fromNullable(memory) ?? MemoryHeap),\n updatedAt: updated_at,\n createdAt: created_at,\n ...(nonNullish(ruleVersion) && {version: ruleVersion}),\n ...(nonNullish(maxSize) && {maxSize}),\n ...(nonNullish(maxCapacity) && {maxCapacity}),\n mutablePermissions: fromNullable(mutable_permissions) ?? true,\n ...(nonNullish(maxTokens) && {maxTokens: Number(maxTokens)})\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\nexport const memoryFromText = (text: MemoryText): Memory => {\n switch (text.toLowerCase()) {\n case 'heap':\n return MemoryHeap;\n default:\n return MemoryStable;\n }\n};\n\nexport const memoryToText = (memory: Memory): MemoryText => {\n if ('Heap' in memory) {\n return 'heap';\n }\n\n return 'stable';\n};\n", "import type {Memory, 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\nexport const MemoryHeap: Memory = {Heap: null};\nexport const MemoryStable: Memory = {Stable: null};\n\nexport const DEFAULT_RATE_CONFIG_TIME_PER_TOKEN_NS = 600_000_000n;\n", "import type {Rule, RulesType} from '@junobuild/config';\nimport {listRules as listRulesApi, setRule as setRuleApi} from '../api/satellite.api';\nimport type {SatelliteParameters} from '../types/actor.types';\nimport {mapRule, mapRuleType, mapSetRule} from '../utils/rule.utils';\n\n/**\n * Lists the rules for a satellite.\n * @param {Object} params - The parameters for listing the rules.\n * @param {RulesType} params.type - The type of rules to list.\n * @param {SatelliteParameters} params.satellite - The satellite parameters.\n * @returns {Promise<Rule[]>} A promise that resolves to an array of rules.\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\n/**\n * Sets a rule for a satellite.\n * @param {Object} params - The parameters for setting the rule.\n * @param {Rule} params.rule - The rule to set.\n * @param {RulesType} params.type - The type of rule.\n * @param {SatelliteParameters} params.satellite - The satellite parameters.\n * @returns {Promise<void>} A promise that resolves when the rule is set.\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 await setRuleApi({\n type: mapRuleType(type),\n rule: mapSetRule(rest),\n satellite,\n collection\n });\n};\n", "import {IDL} from '@dfinity/candid';\nimport {Principal} from '@dfinity/principal';\nimport {isNullish} from '@junobuild/utils';\nimport {\n listControllers,\n listDeprecatedControllers,\n listDeprecatedNoScopeControllers\n} from '../api/satellite.api';\nimport {INSTALL_MODE_RESET, INSTALL_MODE_UPGRADE} from '../constants/upgrade.constants';\nimport {upgrade} from '../handlers/upgrade.handlers';\nimport type {SatelliteParameters} from '../types/actor.types';\nimport {encodeIDLControllers} from '../utils/idl.utils';\n\n/**\n * Upgrades the satellite with the provided WASM module.\n * @param {Object} params - The parameters for upgrading the satellite.\n * @param {SatelliteParameters} params.satellite - The satellite parameters.\n * @param {Principal} [params.missionControlId] - The optional Mission Control ID in which the WASM chunks can potentially be stored. Useful to reuse chunks across installations.\n * @param {Uint8Array} params.wasm_module - The WASM module for the upgrade.\n * @param {boolean} params.deprecated - Whether the upgrade is deprecated.\n * @param {boolean} params.deprecatedNoScope - Whether the upgrade is deprecated with no scope.\n * @param {boolean} [params.reset=false] - Whether to reset the satellite (reinstall) instead of upgrading.\n * @param {boolean} [params.preClearChunks] - An optional parameter to force clearing the chunks before uploading the chunked WASM. Apply if WASM > 2Mb.\n * @returns {Promise<void>} A promise that resolves when the upgrade is complete.\n */\nexport const upgradeSatellite = async ({\n satellite,\n missionControlId,\n wasmModule,\n deprecated,\n deprecatedNoScope,\n reset = false,\n preClearChunks\n}: {\n satellite: SatelliteParameters;\n missionControlId?: Principal;\n wasmModule: Uint8Array;\n deprecated: boolean;\n deprecatedNoScope: boolean;\n reset?: boolean;\n preClearChunks?: boolean;\n}): Promise<void> => {\n const {satelliteId, ...actor} = satellite;\n\n if (isNullish(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 upgrade({\n actor,\n canisterId: Principal.fromText(satelliteId),\n missionControlId,\n arg: new Uint8Array(arg),\n wasmModule,\n mode: reset ? INSTALL_MODE_RESET : INSTALL_MODE_UPGRADE,\n preClearChunks\n });\n\n return;\n }\n\n const list = deprecatedNoScope ? listDeprecatedNoScopeControllers : listControllers;\n\n // We pass the controllers to the upgrade but, it's just for the state of the art because I don't want to call the install without passing args. The module's post_upgrade do not consider the init parameters.\n const controllers = await list({satellite});\n\n const arg = encodeIDLControllers(controllers);\n\n await upgrade({\n actor,\n canisterId: Principal.fromText(satelliteId),\n missionControlId,\n arg: new Uint8Array(arg),\n wasmModule,\n mode: reset ? INSTALL_MODE_RESET : INSTALL_MODE_UPGRADE,\n preClearChunks\n });\n};\n", "import {nonNullish} from '@junobuild/utils';\nimport {canisterMetadata} from '../api/ic.api';\nimport {buildVersion, version} from '../api/satellite.api';\nimport type {SatelliteParameters} from '../types/actor.types';\nimport type {BuildType} from '../types/build.types';\n\n/**\n * Retrieves the version of the satellite.\n * @param {Object} params - The parameters for retrieving the version.\n * @param {SatelliteParameters} params.satellite - The satellite parameters.\n * @returns {Promise<string>} A promise that resolves to the version of the satellite.\n */\nexport const satelliteVersion = (params: {satellite: SatelliteParameters}): Promise<string> =>\n version(params);\n\n/**\n * Retrieves the build version of the satellite.\n * @param {Object} params - The parameters for retrieving the build version.\n * @param {SatelliteParameters} params.satellite - The satellite parameters.\n * @returns {Promise<string>} A promise that resolves to the build version of the satellite.\n */\nexport const satelliteBuildVersion = (params: {satellite: SatelliteParameters}): Promise<string> =>\n buildVersion(params);\n\n/**\n * Retrieves the build type of the satellite.\n * @param {Object} params - The parameters for retrieving the build type.\n * @param {SatelliteParameters} params.satellite - The satellite parameters.\n * @returns {Promise<BuildType | undefined>} A promise that resolves to the build type of the satellite or undefined if not found.\n */\nexport const satelliteBuildType = async ({\n satellite: {satelliteId, ...rest}\n}: {\n satellite: SatelliteParameters;\n}): Promise<BuildType | undefined> => {\n const status = await canisterMetadata({...rest, canisterId: satelliteId, path: 'juno:build'});\n\n return nonNullish(status) && ['stock', 'extended'].includes(status as string)\n ? (status as BuildType)\n : undefined;\n};\n"],
5
- "mappings": "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",
6
- "names": ["concat", "buffers", "result", "acc", "curr", "index", "b", "exports", "toHexString", "bytes", "str", "byte", "fromHexString", "hexString", "_a", "PipeArrayBuffer", "buffer", "length", "bufFromBufLike", "num", "buf", "offset", "amount", "v", "uint8ToBuf", "arr", "bufLike", "idlHash", "s", "array", "h", "c", "idlLabelToId", "label", "num", "exports", "buffer_1", "eob", "safeRead", "pipe", "num", "exports", "safeReadUint8", "byte", "lebEncode", "value", "byteLength", "i", "lebDecode", "weight", "slebEncode", "isNeg", "getLowerBytes", "bytes", "slebDecode", "pipeView", "len", "writeUIntLE", "writeIntLE", "mul", "sub", "readUIntLE", "val", "readIntLE", "ilog2", "n", "nBig", "exports", "iexp2", "principal_1", "buffer_1", "hash_1", "leb128_1", "bigint_math_1", "magicNumber", "toReadableString_max", "zipWith", "xs", "ys", "f", "x", "i", "TypeTable", "obj", "type", "buf", "idx", "knot", "knotIdx", "len", "typeName", "Visitor", "data", "ty", "fields", "components", "exports", "Type", "toReadableString", "typeTable", "PrimitiveType", "ConstructType", "RecClass", "EmptyClass", "v", "d", "UnknownClass", "b", "t", "decodedValue", "typeFunc", "BoolClass", "NullClass", "ReservedClass", "TextClass", "IntClass", "NatClass", "FloatClass", "_bits", "view", "opcode", "bytes", "FixedIntClass", "min", "max", "ok", "offset", "num", "FixedNatClass", "VecClass", "_VecClass", "_type", "bits", "e", "encoded", "opCode", "buffer", "vec", "rets", "OptClass", "_OptClass", "opt", "RecordClass", "_RecordClass", "a", "res", "key", "k", "values", "bufs", "c", "T", "_", "value", "record", "expectedRecordIdx", "actualRecordIdx", "hash", "expectKey", "expectType", "expectedId", "actualId", "TupleClass", "_TupleClass", "_components", "tuple", "wireType", "VariantClass", "_VariantClass", "name", "variant", "wireHash", "_RecClass", "decodePrincipalId", "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", "buildType", "entry", "Vec", "Opt", "Record", "Tuple", "Variant", "Func", "rec", "typeRef", "Service", "output", "ind", "ret", "InputBox", "idl", "ui", "status", "config", "value", "input", "err", "dom", "container", "label", "exports", "InputForm", "e", "form", "oldContainer", "RecordForm", "fields", "key", "type", "v", "_", "TupleForm", "components", "i", "VariantForm", "index", "variant", "select", "selected", "OptionForm", "ty", "opt", "VecForm", "len", "t", "IDL", "__importStar", "principal_1", "UI", "InputConfig", "parsePrimitive", "FormConfig", "renderInput", "inputBox", "t", "config", "exports", "recordForm", "fields", "tupleForm", "components", "variantForm", "optForm", "ty", "vecForm", "Render", "d", "input", "container", "form", "select", "key", "type", "option", "checkbox", "len", "Parse", "v", "x", "Random", "signed", "num", "renderValue", "value", "RenderValue", "open", "i", "selected", "require_types", "__commonJSMin", "exports", "__exportStar", "exports", "__importStar", "UpgradeCodeUnchangedError", "isNullish", "idlFactory", "IDL", "Orbiter", "CreateCanisterConfig", "Satellite", "DepositCyclesArgs", "Tokens", "Timestamp", "TransferArgs", "TransferError", "Result", "Account", "TransferArg", "TransferError_1", "Result_1", "ControllerScope", "Controller", "CanisterStatusType", "SegmentCanisterSettings", "SegmentCanisterStatus", "SegmentStatus", "Result_2", "SetController", "CronJobStatusesConfig", "StatusesArgs", "SegmentsStatuses", "idlFactory", "IDL", "DeleteControllersArgs", "ControllerScope", "Controller", "DelSatelliteConfig", "DepositCyclesArgs", "GetAnalytics", "AnalyticKey", "PageViewDevice", "PageView", "AnalyticsBrowsersPageViews", "AnalyticsDevicesPageViews", "AnalyticsClientsPageViews", "CalendarDate", "AnalyticsMetricsPageViews", "AnalyticsTop10PageViews", "NavigationType", "WebVitalsMetric", "PerformanceData", "PerformanceMetricName", "PerformanceMetric", "AnalyticsWebVitalsPageMetrics", "AnalyticsWebVitalsPerformanceMetrics", "TrackEvent", "AnalyticsTrackEvents", "OrbiterSatelliteFeatures", "OrbiterSatelliteConfig", "MemorySize", "SetController", "SetControllersArgs", "SetPageView", "Result", "Result_1", "SetPerformanceMetric", "Result_2", "SetSatelliteConfig", "SetTrackEvent", "Result_3", "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", "ListOrderField", "ListOrder", "TimestampMatcher", "ListMatcher", "ListPaginate", "ListParams", "DeleteControllersArgs", "ControllerScope", "Controller", "DelDoc", "RulesType", "DelRule", "DepositCyclesArgs", "AssetKey", "AssetEncodingNoContent", "AssetNoContent", "AuthenticationConfigInternetIdentity", "AuthenticationConfig", "ConfigMaxMemorySize", "DbConfig", "StorageConfigIFrame", "StorageConfigRawAccess", "StorageConfigRedirect", "StorageConfig", "Config", "Doc", "Memory", "Permission", "RateConfig", "Rule", "HttpRequest", "StreamingCallbackToken", "StreamingStrategy", "HttpResponse", "StreamingCallbackHttpResponse", "InitAssetKey", "InitUploadResult", "ListResults", "CustomDomain", "ListResults_1", "MemorySize", "SetController", "SetControllersArgs", "SetDoc", "SetRule", "UploadChunk", "UploadChunkResult", "Actor", "HttpAgent", "nonNullish", "createActor", "canisterId", "idlFactory", "config", "rest", "agent", "initAgent", "identity", "fetch", "container", "localActor", "host", "getDeprecatedSatelliteActor", "satelliteId", "rest", "getActor", "idlFactory", "getSatelliteActor", "getDeprecatedSatelliteNoScopeActor", "getMissionControlActor", "missionControlId", "getOrbiterActor", "orbiterId", "canisterId", "isNullish", "createActor", "version", "missionControl", "getMissionControlActor", "getUser", "listControllers", "setSatellitesController", "satelliteIds", "controllerIds", "controller", "setMissionControlController", "Principal", "nonNullish", "toNullable", "mapSetControllerParams", "controllerId", "profile", "toSetController", "setSatellitesController", "controllerId", "profile", "rest", "mapSetControllerParams", "setMissionControlController", "listMissionControlControllers", "params", "listControllers", "Principal", "INSTALL_MODE_RESET", "INSTALL_MODE_UPGRADE", "fromNullable", "isNullish", "CanisterStatus", "ICManagementCanister", "Principal", "assertNonNullish", "installCode", "actor", "code", "agent", "initAgent", "ICManagementCanister", "canisterStatus", "actor", "canisterId", "agent", "initAgent", "ICManagementCanister", "canisterMetadata", "path", "rest", "assertNonNullish", "CanisterStatus", "Principal", "uint8ArrayToHexString", "bytes", "str", "byte", "digestSha256", "data", "sha256ToHex", "hashBuffer", "b", "blobSha256", "blob", "uint8ArraySha256", "upgrade", "wasmModule", "rest", "assertExistingCode", "upgradeType", "upgradeCode", "actor", "canisterId", "module_hash", "canisterStatus", "installedHash", "fromNullable", "isNullish", "newWasmModuleHash", "uint8ArraySha256", "existingWasmModuleHash", "uint8ArrayToHexString", "UpgradeCodeUnchangedError", "installCode", "import_candid", "encoreIDLUser", "user", "encodeIDLControllers", "controllers", "controller", "_", "upgradeMissionControl", "missionControl", "wasmModule", "preClearChunks", "user", "getUser", "missionControlId", "actor", "arg", "encoreIDLUser", "upgrade", "Principal", "INSTALL_MODE_UPGRADE", "missionControlVersion", "params", "version", "version", "orbiter", "getOrbiterActor", "listControllers", "memorySize", "memory_size", "listOrbiterControllers", "params", "listControllers", "orbiterMemorySize", "params", "memorySize", "Principal", "upgradeOrbiter", "orbiter", "missionControlId", "wasmModule", "reset", "preClearChunks", "orbiterId", "actor", "controllers", "listControllers", "arg", "encodeIDLControllers", "upgrade", "Principal", "INSTALL_MODE_RESET", "INSTALL_MODE_UPGRADE", "orbiterVersion", "params", "version", "major", "minor", "patch", "checkUpgradeVersion", "currentVersion", "selectedVersion", "currentMajor", "selectedMajor", "currentMinor", "selectedMinor", "currentPath", "selectedPath", "toNullable", "setStorageConfig", "config", "satellite", "set_storage_config", "getSatelliteActor", "setDatastoreConfig", "set_db_config", "setAuthConfig", "set_auth_config", "getAuthConfig", "satellite", "get_auth_config", "getSatelliteActor", "listRules", "type", "setRule", "collection", "rule", "set_rule", "version", "buildVersion", "build_version", "listDeprecatedControllers", "getDeprecatedSatelliteActor", "listDeprecatedNoScopeControllers", "getDeprecatedSatelliteNoScopeActor", "listControllers", "listCustomDomains", "list_custom_domains", "setCustomDomain", "domainName", "boundaryNodesId", "set_custom_domain", "toNullable", "memorySize", "memory_size", "countDocs", "count_collection_docs", "countAssets", "count_collection_assets", "deleteDocs", "del_docs", "deleteAssets", "del_assets", "setControllers", "args", "set_controllers", "countAssets", "params", "deleteAssets", "fromNullable", "isNullish", "nonNullish", "nonNullish", "toNullable", "toMaxMemorySize", "configMaxMemorySize", "setStorageConfig", "configHeaders", "configRewrites", "configRedirects", "configIFrame", "configRawAccess", "configMaxMemorySize", "satellite", "headers", "source", "rewrites", "destination", "redirects", "location", "code", "toMaxMemorySize", "setDatastoreConfig", "maxMemorySize", "rest", "setAuthConfig", "internetIdentity", "isNullish", "getAuthConfig", "config", "fromNullable", "nonNullish", "listSatelliteControllers", "deprecatedNoScope", "params", "listDeprecatedNoScopeControllers", "listControllers", "setSatelliteControllers", "setControllers", "countDocs", "params", "deleteDocs", "fromNullable", "nonNullish", "listCustomDomains", "satellite", "domain", "details", "domainVersion", "fromNullable", "nonNullish", "setCustomDomains", "domains", "domainName", "boundaryNodesId", "setCustomDomain", "satelliteMemorySize", "params", "memorySize", "fromNullable", "nonNullish", "toNullable", "DbRulesType", "StorageRulesType", "PermissionPublic", "PermissionPrivate", "PermissionManaged", "PermissionControllers", "MemoryHeap", "MemoryStable", "DEFAULT_RATE_CONFIG_TIME_PER_TOKEN_NS", "mapRuleType", "type", "StorageRulesType", "DbRulesType", "mapSetRule", "read", "write", "memory", "maxSize", "maxCapacity", "version", "mutablePermissions", "maxTokens", "permissionFromText", "nonNullish", "memoryFromText", "toNullable", "DEFAULT_RATE_CONFIG_TIME_PER_TOKEN_NS", "mapRule", "collection", "rule", "updated_at", "created_at", "max_size", "max_capacity", "mutable_permissions", "rate_config", "fromNullable", "ruleVersion", "permissionToText", "memoryToText", "MemoryHeap", "permission", "text", "PermissionPublic", "PermissionPrivate", "PermissionManaged", "PermissionControllers", "MemoryStable", "listRules", "type", "satellite", "mapRuleType", "rule", "mapRule", "setRule", "collection", "rest", "mapSetRule", "import_candid", "Principal", "isNullish", "upgradeSatellite", "satellite", "missionControlId", "wasmModule", "deprecated", "deprecatedNoScope", "reset", "preClearChunks", "satelliteId", "actor", "isNullish", "controllers", "listDeprecatedControllers", "arg", "upgrade", "Principal", "INSTALL_MODE_RESET", "INSTALL_MODE_UPGRADE", "listDeprecatedNoScopeControllers", "listControllers", "encodeIDLControllers", "nonNullish", "satelliteVersion", "params", "version", "satelliteBuildVersion", "buildVersion", "satelliteBuildType", "satelliteId", "rest", "status", "canisterMetadata", "nonNullish"]
3
+ "sources": ["../../../../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/idl.ts", "../../../../node_modules/@dfinity/candid/src/candid-core.ts", "../../../../node_modules/@dfinity/candid/src/candid-ui.ts", "../../../../node_modules/@dfinity/candid/lib/cjs/types.js", "../../../../node_modules/@dfinity/candid/src/index.ts", "../../src/errors/upgrade.errors.ts", "../../src/api/actor.api.ts", "../../declarations/mission_control/mission_control.factory.did.js", "../../declarations/orbiter/orbiter.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/mission-control.api.ts", "../../src/utils/controllers.utils.ts", "../../src/services/mission-control.controllers.services.ts", "../../src/services/mission-control.upgrade.services.ts", "../../src/constants/upgrade.constants.ts", "../../src/handlers/upgrade.handlers.ts", "../../src/api/ic.api.ts", "../../src/utils/array.utils.ts", "../../src/utils/crypto.utils.ts", "../../src/handlers/upgrade.chunks.handlers.ts", "../../src/utils/idl.utils.ts", "../../src/services/mission-control.version.services.ts", "../../src/api/orbiter.api.ts", "../../src/services/orbiter.controllers.services.ts", "../../src/services/orbiter.memory.services.ts", "../../src/services/orbiter.upgrade.services.ts", "../../src/services/orbiter.version.services.ts", "../../src/services/releases.services.ts", "../../src/api/satellite.api.ts", "../../src/services/satellite.assets.services.ts", "../../src/services/satellite.config.services.ts", "../../src/utils/memory.utils.ts", "../../src/services/satellite.controllers.services.ts", "../../src/services/satellite.docs.services.ts", "../../src/services/satellite.domains.services.ts", "../../src/services/satellite.memory.services.ts", "../../src/utils/rule.utils.ts", "../../src/constants/rules.constants.ts", "../../src/services/satellite.rules.services.ts", "../../src/services/satellite.upgrade.services.ts", "../../src/services/satellite.version.services.ts"],
4
+ "sourcesContent": ["/**\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 = bufFromBufLike(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 bufFromBufLike(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 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/**\n * Returns a true ArrayBuffer from a Uint8Array, as Uint8Array.buffer is unsafe.\n * @param {Uint8Array} arr Uint8Array to convert\n * @returns ArrayBuffer\n */\nexport function uint8ToBuf(arr: Uint8Array): ArrayBuffer {\n return new DataView(arr.buffer, arr.byteOffset, arr.byteLength).buffer;\n}\n\n/**\n * Returns a true ArrayBuffer from an ArrayBufferLike object.\n * @param bufLike a buffer-like object\n * @returns ArrayBuffer\n */\nexport function bufFromBufLike(\n bufLike:\n | ArrayBuffer\n | Uint8Array\n | DataView\n | ArrayBufferView\n | ArrayBufferLike\n | [number]\n | number[]\n | { buffer: ArrayBuffer },\n): ArrayBuffer {\n if (bufLike instanceof Uint8Array) {\n return uint8ToBuf(bufLike);\n }\n if (bufLike instanceof ArrayBuffer) {\n return bufLike;\n }\n if (Array.isArray(bufLike)) {\n return uint8ToBuf(new Uint8Array(bufLike));\n }\n if ('buffer' in bufLike) {\n return bufFromBufLike(bufLike.buffer);\n }\n return uint8ToBuf(new Uint8Array(bufLike));\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 - string to hash\n * @returns number representing hashed string\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// 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 - PipeArrayBuffer simulating buffer-pipe api\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 - bigint or number\n * @param byteLength - number\n * @returns ArrayBuffer\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 * @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 * @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", "/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable @typescript-eslint/no-explicit-any */\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/**\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\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 // eslint-disable-next-line @typescript-eslint/no-unused-vars\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 * @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) => {\n if (a[0] < b[0]) {\n return -1;\n }\n if (a[0] > b[0]) {\n return 1;\n }\n return 0;\n });\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 * Takes an unknown value and returns a string representation of it.\n * @param x - unknown value\n * @returns {string} string representation of the value\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 - array of Types\n * @param args - array of values\n * @returns {ArrayBuffer} 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", "/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable @typescript-eslint/no-this-alias */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport * as IDL from './idl';\n\nexport interface ParseConfig {\n random?: boolean;\n}\n\nexport interface UIConfig {\n input?: HTMLElement;\n form?: InputForm;\n parse(t: IDL.Type, config: ParseConfig, v: string): any;\n}\n\nexport interface FormConfig {\n open?: HTMLElement;\n event?: string;\n labelMap?: Record<string, string>;\n container?: HTMLElement;\n render(t: IDL.Type): InputBox;\n}\n\nexport class InputBox {\n public status: HTMLElement;\n public label: string | null = null;\n public value: any = undefined;\n\n constructor(public idl: IDL.Type, public ui: UIConfig) {\n const status = document.createElement('span');\n status.className = 'status';\n this.status = status;\n\n if (ui.input) {\n ui.input.addEventListener('blur', () => {\n if ((ui.input as HTMLInputElement).value === '') {\n return;\n }\n this.parse();\n });\n ui.input.addEventListener('input', () => {\n status.style.display = 'none';\n ui.input!.classList.remove('reject');\n });\n }\n }\n public isRejected(): boolean {\n return this.value === undefined;\n }\n\n public parse(config: ParseConfig = {}): any {\n if (this.ui.form) {\n const value = this.ui.form.parse(config);\n this.value = value;\n return value;\n }\n\n if (this.ui.input) {\n const input = this.ui.input as HTMLInputElement;\n try {\n const value = this.ui.parse(this.idl, config, input.value);\n if (!this.idl.covariant(value)) {\n throw new Error(`${input.value} is not of type ${this.idl.display()}`);\n }\n this.status.style.display = 'none';\n this.value = value;\n return value;\n } catch (err) {\n input.classList.add('reject');\n this.status.style.display = 'block';\n this.status.innerHTML = 'InputError: ' + (err as Error).message;\n this.value = undefined;\n return undefined;\n }\n }\n return null;\n }\n public render(dom: HTMLElement): void {\n const container = document.createElement('span');\n if (this.label) {\n const label = document.createElement('label');\n label.innerText = this.label;\n container.appendChild(label);\n }\n if (this.ui.input) {\n container.appendChild(this.ui.input);\n container.appendChild(this.status);\n }\n\n if (this.ui.form) {\n this.ui.form.render(container);\n }\n dom.appendChild(container);\n }\n}\n\nexport abstract class InputForm {\n public form: InputBox[] = [];\n constructor(public ui: FormConfig) {}\n\n public abstract parse(config: ParseConfig): any;\n public abstract generateForm(): any;\n public renderForm(dom: HTMLElement): void {\n if (this.ui.container) {\n this.form.forEach(e => e.render(this.ui.container!));\n dom.appendChild(this.ui.container);\n } else {\n this.form.forEach(e => e.render(dom));\n }\n }\n public render(dom: HTMLElement): void {\n if (this.ui.open && this.ui.event) {\n dom.appendChild(this.ui.open);\n const form = this;\n // eslint-disable-next-line\n form.ui.open!.addEventListener(form.ui.event!, () => {\n // Remove old form\n if (form.ui.container) {\n form.ui.container.innerHTML = '';\n } else {\n const oldContainer = form.ui.open!.nextElementSibling;\n if (oldContainer) {\n oldContainer.parentNode!.removeChild(oldContainer);\n }\n }\n // Render form\n form.generateForm();\n form.renderForm(dom);\n });\n } else {\n this.generateForm();\n this.renderForm(dom);\n }\n }\n}\n\nexport class RecordForm extends InputForm {\n constructor(public fields: Array<[string, IDL.Type]>, public ui: FormConfig) {\n super(ui);\n }\n public generateForm(): void {\n this.form = this.fields.map(([key, type]) => {\n const input = this.ui.render(type);\n // eslint-disable-next-line\n if (this.ui.labelMap && this.ui.labelMap.hasOwnProperty(key)) {\n input.label = this.ui.labelMap[key] + ' ';\n } else {\n input.label = key + ' ';\n }\n return input;\n });\n }\n public parse(config: ParseConfig): Record<string, any> | undefined {\n const v: Record<string, any> = {};\n this.fields.forEach(([key, _], i) => {\n const value = this.form[i].parse(config);\n v[key] = value;\n });\n if (this.form.some(input => input.isRejected())) {\n return undefined;\n }\n return v;\n }\n}\n\nexport class TupleForm extends InputForm {\n constructor(public components: IDL.Type[], public ui: FormConfig) {\n super(ui);\n }\n public generateForm(): void {\n this.form = this.components.map(type => {\n const input = this.ui.render(type);\n return input;\n });\n }\n public parse(config: ParseConfig): any[] | undefined {\n const v: any[] = [];\n this.components.forEach((_, i) => {\n const value = this.form[i].parse(config);\n v.push(value);\n });\n if (this.form.some(input => input.isRejected())) {\n return undefined;\n }\n return v;\n }\n}\n\nexport class VariantForm extends InputForm {\n constructor(public fields: Array<[string, IDL.Type]>, public ui: FormConfig) {\n super(ui);\n }\n public generateForm(): void {\n const index = (this.ui.open as HTMLSelectElement).selectedIndex;\n const [_, type] = this.fields[index];\n const variant = this.ui.render(type);\n this.form = [variant];\n }\n public parse(config: ParseConfig): Record<string, any> | undefined {\n const select = this.ui.open as HTMLSelectElement;\n const selected = select.options[select.selectedIndex].value;\n const value = this.form[0].parse(config);\n if (value === undefined) {\n return undefined;\n }\n const v: Record<string, any> = {};\n v[selected] = value;\n return v;\n }\n}\n\nexport class OptionForm extends InputForm {\n constructor(public ty: IDL.Type, public ui: FormConfig) {\n super(ui);\n }\n public generateForm(): void {\n if ((this.ui.open as HTMLInputElement).checked) {\n const opt = this.ui.render(this.ty);\n this.form = [opt];\n } else {\n this.form = [];\n }\n }\n public parse<T>(config: ParseConfig): [T] | [] | undefined {\n if (this.form.length === 0) {\n return [];\n } else {\n const value = this.form[0].parse(config);\n if (value === undefined) {\n return undefined;\n }\n return [value];\n }\n }\n}\n\nexport class VecForm extends InputForm {\n constructor(public ty: IDL.Type, public ui: FormConfig) {\n super(ui);\n }\n public generateForm(): void {\n const len = +(this.ui.open as HTMLInputElement).value;\n this.form = [];\n for (let i = 0; i < len; i++) {\n const t = this.ui.render(this.ty);\n this.form.push(t);\n }\n }\n public parse<T>(config: ParseConfig): T[] | undefined {\n const value = this.form.map(input => {\n return input.parse(config);\n });\n if (this.form.some(input => input.isRejected())) {\n return undefined;\n }\n return value;\n }\n}\n", "/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport * as IDL from './idl';\nimport { Principal } from '@dfinity/principal';\nimport * as UI from './candid-core';\n\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", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=types.js.map", "export * from './candid-ui';\nexport * from './candid-core';\nexport * as IDL from './idl';\nexport * from './utils/hash';\nexport * from './utils/leb128';\nexport * from './utils/buffer';\nexport * from './types';\n", "export class UpgradeCodeUnchangedError extends Error {\n constructor() {\n super(\n 'The Wasm code for the upgrade is identical to the code currently installed. No upgrade is necessary.'\n );\n }\n}\n", "import type {IDL} from '@dfinity/candid';\nimport {isNullish} from '@junobuild/utils';\nimport type {_SERVICE as MissionControlActor} from '../../declarations/mission_control/mission_control.did';\n// eslint-disable-next-line import/no-relative-parent-imports\nimport {idlFactory as idlFactoryMissionControl} from '../../declarations/mission_control/mission_control.factory.did.js';\nimport type {_SERVICE as OrbiterActor} from '../../declarations/orbiter/orbiter.did';\n// eslint-disable-next-line import/no-relative-parent-imports\nimport {idlFactory as idlFactoryOrbiter} from '../../declarations/orbiter/orbiter.factory.did.js';\nimport type {_SERVICE as DeprecatedSatelliteNoScopeActor} from '../../declarations/satellite/satellite-deprecated-no-scope.did';\n// eslint-disable-next-line import/no-relative-parent-imports\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';\n// eslint-disable-next-line import/no-relative-parent-imports\nimport {idlFactory as idlDeprecatedFactorySatellite} from '../../declarations/satellite/satellite-deprecated.factory.did.js';\nimport type {_SERVICE as SatelliteActor} from '../../declarations/satellite/satellite.did';\n// eslint-disable-next-line import/no-relative-parent-imports\nimport {idlFactory as idlFactorySatellite} from '../../declarations/satellite/satellite.factory.did.js';\nimport type {\n ActorParameters,\n MissionControlParameters,\n OrbiterParameters,\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 = ({\n satelliteId,\n ...rest\n}: SatelliteParameters): Promise<DeprecatedSatelliteActor> =>\n getActor({\n canisterId: satelliteId,\n ...rest,\n idlFactory: idlDeprecatedFactorySatellite\n });\n\nexport const getSatelliteActor = ({\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 = ({\n satelliteId,\n ...rest\n}: SatelliteParameters): Promise<DeprecatedSatelliteNoScopeActor> =>\n getActor({\n canisterId: satelliteId,\n ...rest,\n idlFactory: idlDeprecatedFactorySatelliteNoScope\n });\n\nexport const getMissionControlActor = ({\n missionControlId,\n ...rest\n}: MissionControlParameters): Promise<MissionControlActor> =>\n getActor({\n canisterId: missionControlId,\n ...rest,\n idlFactory: idlFactoryMissionControl\n });\n\nexport const getOrbiterActor = ({orbiterId, ...rest}: OrbiterParameters): Promise<OrbiterActor> =>\n getActor({\n canisterId: orbiterId,\n ...rest,\n idlFactory: idlFactoryOrbiter\n });\n\nexport const getActor = <T>({\n canisterId,\n idlFactory,\n ...rest\n}: ActorParameters & {\n canisterId: string | undefined;\n idlFactory: IDL.InterfaceFactory;\n}): Promise<T> => {\n if (isNullish(canisterId)) {\n throw new Error('No canister ID provided.');\n }\n\n return createActor({\n canisterId,\n idlFactory,\n ...rest\n });\n};\n", "// @ts-ignore\nexport const idlFactory = ({IDL}) => {\n const Orbiter = IDL.Record({\n updated_at: IDL.Nat64,\n orbiter_id: IDL.Principal,\n metadata: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),\n created_at: IDL.Nat64\n });\n const CreateCanisterConfig = IDL.Record({\n subnet_id: IDL.Opt(IDL.Principal),\n name: IDL.Opt(IDL.Text)\n });\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 DepositCyclesArgs = IDL.Record({\n cycles: IDL.Nat,\n destination_id: IDL.Principal\n });\n const Tokens = IDL.Record({e8s: IDL.Nat64});\n const Timestamp = IDL.Record({timestamp_nanos: IDL.Nat64});\n const TransferArgs = IDL.Record({\n to: IDL.Vec(IDL.Nat8),\n fee: Tokens,\n memo: IDL.Nat64,\n from_subaccount: IDL.Opt(IDL.Vec(IDL.Nat8)),\n created_at_time: IDL.Opt(Timestamp),\n amount: Tokens\n });\n const TransferError = IDL.Variant({\n TxTooOld: IDL.Record({allowed_window_nanos: IDL.Nat64}),\n BadFee: IDL.Record({expected_fee: Tokens}),\n TxDuplicate: IDL.Record({duplicate_of: IDL.Nat64}),\n TxCreatedInFuture: IDL.Null,\n InsufficientFunds: IDL.Record({balance: Tokens})\n });\n const Result = IDL.Variant({Ok: IDL.Nat64, Err: TransferError});\n const Account = IDL.Record({\n owner: IDL.Principal,\n subaccount: IDL.Opt(IDL.Vec(IDL.Nat8))\n });\n const TransferArg = IDL.Record({\n to: Account,\n fee: IDL.Opt(IDL.Nat),\n memo: IDL.Opt(IDL.Vec(IDL.Nat8)),\n from_subaccount: IDL.Opt(IDL.Vec(IDL.Nat8)),\n created_at_time: IDL.Opt(IDL.Nat64),\n amount: IDL.Nat\n });\n const TransferError_1 = IDL.Variant({\n GenericError: IDL.Record({\n message: IDL.Text,\n error_code: IDL.Nat\n }),\n TemporarilyUnavailable: IDL.Null,\n BadBurn: IDL.Record({min_burn_amount: IDL.Nat}),\n Duplicate: IDL.Record({duplicate_of: IDL.Nat}),\n BadFee: IDL.Record({expected_fee: IDL.Nat}),\n CreatedInFuture: IDL.Record({ledger_time: IDL.Nat64}),\n TooOld: IDL.Null,\n InsufficientFunds: IDL.Record({balance: IDL.Nat})\n });\n const Result_1 = IDL.Variant({Ok: IDL.Nat, Err: TransferError_1});\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 SegmentCanisterSettings = 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 SegmentCanisterStatus = IDL.Record({\n status: CanisterStatusType,\n memory_size: IDL.Nat,\n cycles: IDL.Nat,\n settings: SegmentCanisterSettings,\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: SegmentCanisterStatus,\n metadata: IDL.Opt(IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text))),\n status_at: IDL.Nat64\n });\n const Result_2 = 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 CronJobStatusesConfig = 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 orbiters: IDL.Vec(IDL.Tuple(IDL.Principal, CronJobStatusesConfig)),\n satellites: IDL.Vec(IDL.Tuple(IDL.Principal, CronJobStatusesConfig)),\n cycles_threshold: IDL.Opt(IDL.Nat64)\n });\n const SegmentsStatuses = IDL.Record({\n orbiters: IDL.Opt(IDL.Vec(Result_2)),\n satellites: IDL.Opt(IDL.Vec(Result_2)),\n mission_control: Result_2\n });\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_orbiter: IDL.Func([IDL.Opt(IDL.Text)], [Orbiter], []),\n create_orbiter_with_config: IDL.Func([CreateCanisterConfig], [Orbiter], []),\n create_satellite: IDL.Func([IDL.Text], [Satellite], []),\n create_satellite_with_config: IDL.Func([CreateCanisterConfig], [Satellite], []),\n del_mission_control_controllers: IDL.Func([IDL.Vec(IDL.Principal)], [], []),\n del_orbiter: IDL.Func([IDL.Principal, IDL.Nat], [], []),\n del_orbiters_controllers: IDL.Func([IDL.Vec(IDL.Principal), IDL.Vec(IDL.Principal)], [], []),\n del_satellite: IDL.Func([IDL.Principal, IDL.Nat], [], []),\n del_satellites_controllers: IDL.Func([IDL.Vec(IDL.Principal), IDL.Vec(IDL.Principal)], [], []),\n deposit_cycles: IDL.Func([DepositCyclesArgs], [], []),\n get_user: IDL.Func([], [IDL.Principal], ['query']),\n icp_transfer: IDL.Func([TransferArgs], [Result], []),\n icrc_transfer: IDL.Func([IDL.Principal, TransferArg], [Result_1], []),\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(\n [],\n [IDL.Vec(IDL.Tuple(IDL.Nat64, Result_2))],\n ['query']\n ),\n list_orbiter_statuses: IDL.Func(\n [IDL.Principal],\n [IDL.Opt(IDL.Vec(IDL.Tuple(IDL.Nat64, Result_2)))],\n ['query']\n ),\n list_orbiters: IDL.Func([], [IDL.Vec(IDL.Tuple(IDL.Principal, Orbiter))], ['query']),\n list_satellite_statuses: IDL.Func(\n [IDL.Principal],\n [IDL.Opt(IDL.Vec(IDL.Tuple(IDL.Nat64, Result_2)))],\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_orbiter: IDL.Func([IDL.Principal, IDL.Opt(IDL.Text)], [Orbiter], []),\n set_orbiter_metadata: IDL.Func(\n [IDL.Principal, IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text))],\n [Orbiter],\n []\n ),\n set_orbiters_controllers: IDL.Func(\n [IDL.Vec(IDL.Principal), IDL.Vec(IDL.Principal), SetController],\n [],\n []\n ),\n set_satellite: IDL.Func([IDL.Principal, IDL.Opt(IDL.Text)], [Satellite], []),\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 unset_orbiter: IDL.Func([IDL.Principal], [], []),\n unset_satellite: IDL.Func([IDL.Principal], [], []),\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 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 DelSatelliteConfig = IDL.Record({version: IDL.Opt(IDL.Nat64)});\n const DepositCyclesArgs = IDL.Record({\n cycles: IDL.Nat,\n destination_id: IDL.Principal\n });\n const GetAnalytics = IDL.Record({\n to: IDL.Opt(IDL.Nat64),\n from: IDL.Opt(IDL.Nat64),\n satellite_id: IDL.Opt(IDL.Principal)\n });\n const AnalyticKey = IDL.Record({\n key: IDL.Text,\n collected_at: IDL.Nat64\n });\n const PageViewDevice = IDL.Record({\n inner_height: IDL.Nat16,\n inner_width: IDL.Nat16\n });\n const PageView = IDL.Record({\n title: IDL.Text,\n updated_at: IDL.Nat64,\n referrer: IDL.Opt(IDL.Text),\n time_zone: IDL.Text,\n session_id: IDL.Text,\n href: IDL.Text,\n created_at: IDL.Nat64,\n satellite_id: IDL.Principal,\n device: PageViewDevice,\n version: IDL.Opt(IDL.Nat64),\n user_agent: IDL.Opt(IDL.Text)\n });\n const AnalyticsBrowsersPageViews = IDL.Record({\n safari: IDL.Float64,\n opera: IDL.Float64,\n others: IDL.Float64,\n firefox: IDL.Float64,\n chrome: IDL.Float64\n });\n const AnalyticsDevicesPageViews = IDL.Record({\n desktop: IDL.Float64,\n others: IDL.Float64,\n mobile: IDL.Float64\n });\n const AnalyticsClientsPageViews = IDL.Record({\n browsers: AnalyticsBrowsersPageViews,\n devices: AnalyticsDevicesPageViews\n });\n const CalendarDate = IDL.Record({\n day: IDL.Nat8,\n month: IDL.Nat8,\n year: IDL.Int32\n });\n const AnalyticsMetricsPageViews = IDL.Record({\n bounce_rate: IDL.Float64,\n average_page_views_per_session: IDL.Float64,\n daily_total_page_views: IDL.Vec(IDL.Tuple(CalendarDate, IDL.Nat32)),\n total_page_views: IDL.Nat32,\n unique_page_views: IDL.Nat64,\n unique_sessions: IDL.Nat64\n });\n const AnalyticsTop10PageViews = IDL.Record({\n referrers: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Nat32)),\n pages: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Nat32))\n });\n const NavigationType = IDL.Variant({\n Navigate: IDL.Null,\n Restore: IDL.Null,\n Reload: IDL.Null,\n BackForward: IDL.Null,\n BackForwardCache: IDL.Null,\n Prerender: IDL.Null\n });\n const WebVitalsMetric = IDL.Record({\n id: IDL.Text,\n value: IDL.Float64,\n navigation_type: IDL.Opt(NavigationType),\n delta: IDL.Float64\n });\n const PerformanceData = IDL.Variant({WebVitalsMetric: WebVitalsMetric});\n const PerformanceMetricName = IDL.Variant({\n CLS: IDL.Null,\n FCP: IDL.Null,\n INP: IDL.Null,\n LCP: IDL.Null,\n TTFB: IDL.Null\n });\n const PerformanceMetric = IDL.Record({\n updated_at: IDL.Nat64,\n session_id: IDL.Text,\n data: PerformanceData,\n href: IDL.Text,\n metric_name: PerformanceMetricName,\n created_at: IDL.Nat64,\n satellite_id: IDL.Principal,\n version: IDL.Opt(IDL.Nat64)\n });\n const AnalyticsWebVitalsPageMetrics = IDL.Record({\n cls: IDL.Opt(IDL.Float64),\n fcp: IDL.Opt(IDL.Float64),\n inp: IDL.Opt(IDL.Float64),\n lcp: IDL.Opt(IDL.Float64),\n ttfb: IDL.Opt(IDL.Float64)\n });\n const AnalyticsWebVitalsPerformanceMetrics = IDL.Record({\n overall: AnalyticsWebVitalsPageMetrics,\n pages: IDL.Vec(IDL.Tuple(IDL.Text, AnalyticsWebVitalsPageMetrics))\n });\n const TrackEvent = IDL.Record({\n updated_at: IDL.Nat64,\n session_id: IDL.Text,\n metadata: IDL.Opt(IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text))),\n name: IDL.Text,\n created_at: IDL.Nat64,\n satellite_id: IDL.Principal,\n version: IDL.Opt(IDL.Nat64)\n });\n const AnalyticsTrackEvents = IDL.Record({\n total: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Nat32))\n });\n const OrbiterSatelliteFeatures = IDL.Record({\n performance_metrics: IDL.Bool,\n track_events: IDL.Bool,\n page_views: IDL.Bool\n });\n const OrbiterSatelliteConfig = IDL.Record({\n updated_at: IDL.Nat64,\n features: IDL.Opt(OrbiterSatelliteFeatures),\n created_at: IDL.Nat64,\n version: IDL.Opt(IDL.Nat64)\n });\n const MemorySize = IDL.Record({stable: IDL.Nat64, heap: IDL.Nat64});\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 SetPageView = IDL.Record({\n title: IDL.Text,\n updated_at: IDL.Opt(IDL.Nat64),\n referrer: IDL.Opt(IDL.Text),\n time_zone: IDL.Text,\n session_id: IDL.Text,\n href: IDL.Text,\n satellite_id: IDL.Principal,\n device: PageViewDevice,\n version: IDL.Opt(IDL.Nat64),\n user_agent: IDL.Opt(IDL.Text)\n });\n const Result = IDL.Variant({Ok: PageView, Err: IDL.Text});\n const Result_1 = IDL.Variant({\n Ok: IDL.Null,\n Err: IDL.Vec(IDL.Tuple(AnalyticKey, IDL.Text))\n });\n const SetPerformanceMetric = IDL.Record({\n session_id: IDL.Text,\n data: PerformanceData,\n href: IDL.Text,\n metric_name: PerformanceMetricName,\n satellite_id: IDL.Principal,\n version: IDL.Opt(IDL.Nat64),\n user_agent: IDL.Opt(IDL.Text)\n });\n const Result_2 = IDL.Variant({Ok: PerformanceMetric, Err: IDL.Text});\n const SetSatelliteConfig = IDL.Record({\n features: IDL.Opt(OrbiterSatelliteFeatures),\n version: IDL.Opt(IDL.Nat64)\n });\n const SetTrackEvent = IDL.Record({\n updated_at: IDL.Opt(IDL.Nat64),\n session_id: IDL.Text,\n metadata: IDL.Opt(IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text))),\n name: IDL.Text,\n satellite_id: IDL.Principal,\n version: IDL.Opt(IDL.Nat64),\n user_agent: IDL.Opt(IDL.Text)\n });\n const Result_3 = IDL.Variant({Ok: TrackEvent, Err: IDL.Text});\n return IDL.Service({\n del_controllers: IDL.Func(\n [DeleteControllersArgs],\n [IDL.Vec(IDL.Tuple(IDL.Principal, Controller))],\n []\n ),\n del_satellite_config: IDL.Func([IDL.Principal, DelSatelliteConfig], [], []),\n deposit_cycles: IDL.Func([DepositCyclesArgs], [], []),\n get_page_views: IDL.Func(\n [GetAnalytics],\n [IDL.Vec(IDL.Tuple(AnalyticKey, PageView))],\n ['query']\n ),\n get_page_views_analytics_clients: IDL.Func(\n [GetAnalytics],\n [AnalyticsClientsPageViews],\n ['query']\n ),\n get_page_views_analytics_metrics: IDL.Func(\n [GetAnalytics],\n [AnalyticsMetricsPageViews],\n ['query']\n ),\n get_page_views_analytics_top_10: IDL.Func([GetAnalytics], [AnalyticsTop10PageViews], ['query']),\n get_performance_metrics: IDL.Func(\n [GetAnalytics],\n [IDL.Vec(IDL.Tuple(AnalyticKey, PerformanceMetric))],\n ['query']\n ),\n get_performance_metrics_analytics_web_vitals: IDL.Func(\n [GetAnalytics],\n [AnalyticsWebVitalsPerformanceMetrics],\n ['query']\n ),\n get_track_events: IDL.Func(\n [GetAnalytics],\n [IDL.Vec(IDL.Tuple(AnalyticKey, TrackEvent))],\n ['query']\n ),\n get_track_events_analytics: IDL.Func([GetAnalytics], [AnalyticsTrackEvents], ['query']),\n list_controllers: IDL.Func([], [IDL.Vec(IDL.Tuple(IDL.Principal, Controller))], ['query']),\n list_satellite_configs: IDL.Func(\n [],\n [IDL.Vec(IDL.Tuple(IDL.Principal, OrbiterSatelliteConfig))],\n ['query']\n ),\n memory_size: IDL.Func([], [MemorySize], ['query']),\n set_controllers: IDL.Func(\n [SetControllersArgs],\n [IDL.Vec(IDL.Tuple(IDL.Principal, Controller))],\n []\n ),\n set_page_view: IDL.Func([AnalyticKey, SetPageView], [Result], []),\n set_page_views: IDL.Func([IDL.Vec(IDL.Tuple(AnalyticKey, SetPageView))], [Result_1], []),\n set_performance_metric: IDL.Func([AnalyticKey, SetPerformanceMetric], [Result_2], []),\n set_performance_metrics: IDL.Func(\n [IDL.Vec(IDL.Tuple(AnalyticKey, SetPerformanceMetric))],\n [Result_1],\n []\n ),\n set_satellite_configs: IDL.Func(\n [IDL.Vec(IDL.Tuple(IDL.Principal, SetSatelliteConfig))],\n [IDL.Vec(IDL.Tuple(IDL.Principal, OrbiterSatelliteConfig))],\n []\n ),\n set_track_event: IDL.Func([AnalyticKey, SetTrackEvent], [Result_3], []),\n set_track_events: IDL.Func([IDL.Vec(IDL.Tuple(AnalyticKey, SetTrackEvent))], [Result_1], []),\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 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 TimestampMatcher = IDL.Variant({\n Equal: IDL.Nat64,\n Between: IDL.Tuple(IDL.Nat64, IDL.Nat64),\n GreaterThan: IDL.Nat64,\n LessThan: IDL.Nat64\n });\n const ListMatcher = IDL.Record({\n key: IDL.Opt(IDL.Text),\n updated_at: IDL.Opt(TimestampMatcher),\n description: IDL.Opt(IDL.Text),\n created_at: IDL.Opt(TimestampMatcher)\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 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({version: IDL.Opt(IDL.Nat64)});\n const RulesType = IDL.Variant({Db: IDL.Null, Storage: IDL.Null});\n const DelRule = IDL.Record({version: IDL.Opt(IDL.Nat64)});\n const DepositCyclesArgs = IDL.Record({\n cycles: IDL.Nat,\n destination_id: IDL.Principal\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 version: IDL.Opt(IDL.Nat64)\n });\n const AuthenticationConfigInternetIdentity = IDL.Record({\n derivation_origin: IDL.Opt(IDL.Text)\n });\n const AuthenticationConfig = IDL.Record({\n internet_identity: IDL.Opt(AuthenticationConfigInternetIdentity)\n });\n const ConfigMaxMemorySize = IDL.Record({\n stable: IDL.Opt(IDL.Nat64),\n heap: IDL.Opt(IDL.Nat64)\n });\n const DbConfig = IDL.Record({\n max_memory_size: IDL.Opt(ConfigMaxMemorySize)\n });\n const StorageConfigIFrame = IDL.Variant({\n Deny: IDL.Null,\n AllowAny: IDL.Null,\n SameOrigin: IDL.Null\n });\n const StorageConfigRawAccess = IDL.Variant({\n Deny: IDL.Null,\n Allow: IDL.Null\n });\n const StorageConfigRedirect = IDL.Record({\n status_code: IDL.Nat16,\n location: IDL.Text\n });\n const StorageConfig = IDL.Record({\n iframe: IDL.Opt(StorageConfigIFrame),\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 max_memory_size: IDL.Opt(ConfigMaxMemorySize),\n raw_access: IDL.Opt(StorageConfigRawAccess),\n redirects: IDL.Opt(IDL.Vec(IDL.Tuple(IDL.Text, StorageConfigRedirect)))\n });\n const Config = IDL.Record({\n db: IDL.Opt(DbConfig),\n authentication: IDL.Opt(AuthenticationConfig),\n storage: StorageConfig\n });\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 version: IDL.Opt(IDL.Nat64)\n });\n const Memory = IDL.Variant({Heap: IDL.Null, Stable: 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 RateConfig = IDL.Record({\n max_tokens: IDL.Nat64,\n time_per_token_ns: IDL.Nat64\n });\n const Rule = IDL.Record({\n max_capacity: IDL.Opt(IDL.Nat32),\n memory: IDL.Opt(Memory),\n updated_at: IDL.Nat64,\n max_size: IDL.Opt(IDL.Nat),\n read: Permission,\n created_at: IDL.Nat64,\n version: IDL.Opt(IDL.Nat64),\n mutable_permissions: IDL.Opt(IDL.Bool),\n rate_config: IDL.Opt(RateConfig),\n write: Permission\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 certificate_version: IDL.Opt(IDL.Nat16)\n });\n const StreamingCallbackToken = IDL.Record({\n memory: Memory,\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([], [], ['query'])\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 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 version: IDL.Opt(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 MemorySize = IDL.Record({stable: IDL.Nat64, heap: IDL.Nat64});\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 data: IDL.Vec(IDL.Nat8),\n description: IDL.Opt(IDL.Text),\n version: IDL.Opt(IDL.Nat64)\n });\n const SetRule = IDL.Record({\n max_capacity: IDL.Opt(IDL.Nat32),\n memory: IDL.Opt(Memory),\n max_size: IDL.Opt(IDL.Nat),\n read: Permission,\n version: IDL.Opt(IDL.Nat64),\n mutable_permissions: IDL.Opt(IDL.Bool),\n rate_config: IDL.Opt(RateConfig),\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 build_version: IDL.Func([], [IDL.Text], ['query']),\n commit_asset_upload: IDL.Func([CommitBatch], [], []),\n count_assets: IDL.Func([IDL.Text, ListParams], [IDL.Nat64], ['query']),\n count_collection_assets: IDL.Func([IDL.Text], [IDL.Nat64], ['query']),\n count_collection_docs: IDL.Func([IDL.Text], [IDL.Nat64], ['query']),\n count_docs: IDL.Func([IDL.Text, ListParams], [IDL.Nat64], ['query']),\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_docs: IDL.Func([IDL.Text], [], []),\n del_filtered_assets: IDL.Func([IDL.Text, ListParams], [], []),\n del_filtered_docs: IDL.Func([IDL.Text, ListParams], [], []),\n del_many_assets: IDL.Func([IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text))], [], []),\n del_many_docs: IDL.Func([IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text, DelDoc))], [], []),\n del_rule: IDL.Func([RulesType, IDL.Text, DelRule], [], []),\n deposit_cycles: IDL.Func([DepositCyclesArgs], [], []),\n get_asset: IDL.Func([IDL.Text, IDL.Text], [IDL.Opt(AssetNoContent)], ['query']),\n get_auth_config: IDL.Func([], [IDL.Opt(AuthenticationConfig)], ['query']),\n get_config: IDL.Func([], [Config], []),\n get_db_config: IDL.Func([], [IDL.Opt(DbConfig)], ['query']),\n get_doc: IDL.Func([IDL.Text, IDL.Text], [IDL.Opt(Doc)], ['query']),\n get_many_assets: IDL.Func(\n [IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text))],\n [IDL.Vec(IDL.Tuple(IDL.Text, IDL.Opt(AssetNoContent)))],\n ['query']\n ),\n get_many_docs: IDL.Func(\n [IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text))],\n [IDL.Vec(IDL.Tuple(IDL.Text, IDL.Opt(Doc)))],\n ['query']\n ),\n get_rule: IDL.Func([RulesType, IDL.Text], [IDL.Opt(Rule)], ['query']),\n get_storage_config: IDL.Func([], [StorageConfig], ['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 memory_size: IDL.Func([], [MemorySize], ['query']),\n set_auth_config: IDL.Func([AuthenticationConfig], [], []),\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_db_config: IDL.Func([DbConfig], [], []),\n set_doc: IDL.Func([IDL.Text, IDL.Text, SetDoc], [Doc], []),\n set_many_docs: IDL.Func(\n [IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text, SetDoc))],\n [IDL.Vec(IDL.Tuple(IDL.Text, Doc))],\n []\n ),\n set_rule: IDL.Func([RulesType, IDL.Text, SetRule], [Rule], []),\n set_storage_config: IDL.Func([StorageConfig], [], []),\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 {\n Actor,\n HttpAgent,\n type ActorConfig,\n type ActorMethod,\n type ActorSubclass\n} from '@dfinity/agent';\nimport type {IDL} from '@dfinity/candid';\nimport {nonNullish} from '@junobuild/utils';\nimport type {ActorParameters} from '../types/actor.types';\n\nexport const createActor = async <T = Record<string, ActorMethod>>({\n canisterId,\n idlFactory,\n config,\n ...rest\n}: {\n idlFactory: IDL.InterfaceFactory;\n canisterId: string;\n config?: Pick<ActorConfig, 'callTransform' | 'queryTransform'>;\n} & ActorParameters): Promise<ActorSubclass<T>> => {\n const agent = await useOrInitAgent(rest);\n\n // Creates an actor with using the candid interface and the HttpAgent\n return Actor.createActor(idlFactory, {\n agent,\n canisterId,\n ...(config ?? {})\n });\n};\n\nexport const useOrInitAgent = async ({agent, ...rest}: ActorParameters): Promise<HttpAgent> =>\n agent ?? (await initAgent(rest));\n\nconst initAgent = async ({\n identity,\n fetch,\n container\n}: Omit<ActorParameters, 'agent'>): Promise<HttpAgent> => {\n const localActor = nonNullish(container) && container !== false;\n\n const host = localActor\n ? container === true\n ? 'http://127.0.0.1:5987'\n : container\n : 'https://icp-api.io';\n\n return await HttpAgent.create({\n identity,\n host,\n retryTimes: 10,\n ...(nonNullish(fetch) && {fetch}),\n shouldFetchRootKey: localActor\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\n// eslint-disable-next-line local-rules/use-option-type-wrapper\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 {Principal} from '@dfinity/principal';\nimport type {Controller} from '../../declarations/mission_control/mission_control.did';\nimport {\n listControllers,\n setMissionControlController as setMissionControlControllerApi,\n setSatellitesController as setSatellitesControllerApi\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\n/**\n * Sets the controller for the specified satellites.\n * @param {Object} params - The parameters for setting the satellites controller.\n * @param {MissionControlParameters} params.missionControl - The Mission Control parameters.\n * @param {Principal[]} params.satelliteIds - The IDs of the satellites.\n * @param {SetControllerParams} params - Additional parameters for setting the controller.\n * @returns {Promise<void>} A promise that resolves when the controller is set.\n */\nexport const setSatellitesController = ({\n controllerId,\n profile,\n ...rest\n}: {\n missionControl: MissionControlParameters;\n satelliteIds: Principal[];\n} & SetControllerParams): Promise<void> =>\n setSatellitesControllerApi({\n ...rest,\n ...mapSetControllerParams({controllerId, profile})\n });\n\n/**\n * Sets the controller for Mission Control.\n * @param {Object} params - The parameters for setting the Mission Control controller.\n * @param {MissionControlParameters} params.missionControl - The Mission Control parameters.\n * @param {SetControllerParams} params - Additional parameters for setting the controller.\n * @returns {Promise<void>} A promise that resolves when the controller is set.\n */\nexport const setMissionControlController = ({\n controllerId,\n profile,\n ...rest\n}: {\n missionControl: MissionControlParameters;\n} & SetControllerParams): Promise<void> =>\n setMissionControlControllerApi({\n ...rest,\n ...mapSetControllerParams({controllerId, profile})\n });\n\n/**\n * Lists the controllers of Mission Control.\n * @param {Object} params - The parameters for listing the controllers.\n * @param {MissionControlParameters} params.missionControl - The Mission Control parameters.\n * @returns {Promise<[Principal, Controller][]>} A promise that resolves to a list of controllers.\n */\nexport const listMissionControlControllers = (params: {\n missionControl: MissionControlParameters;\n}): Promise<[Principal, Controller][]> => listControllers(params);\n", "import {Principal} from '@dfinity/principal';\nimport {getUser} from '../api/mission-control.api';\nimport {INSTALL_MODE_UPGRADE} from '../constants/upgrade.constants';\nimport {upgrade} from '../handlers/upgrade.handlers';\nimport type {MissionControlParameters} from '../types/actor.types';\nimport {encoreIDLUser} from '../utils/idl.utils';\n\n/**\n * Upgrades the Mission Control with the provided WASM module.\n * @param {Object} params - The parameters for upgrading Mission Control.\n * @param {MissionControlParameters} params.missionControl - The Mission Control parameters.\n * @param {Uint8Array} params.wasm_module - The WASM module for the upgrade.\n * @param {boolean} [params.preClearChunks] - An optional parameter to force clearing the chunks before uploading the chunked WASM. Apply if WASM > 2Mb.\n * @throws Will throw an error if no mission control principal is defined.\n * @returns {Promise<void>} A promise that resolves when the upgrade is complete.\n */\nexport const upgradeMissionControl = async ({\n missionControl,\n wasmModule,\n preClearChunks\n}: {\n missionControl: MissionControlParameters;\n wasmModule: Uint8Array;\n preClearChunks?: boolean;\n}): Promise<void> => {\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 = encoreIDLUser(user);\n\n await upgrade({\n actor,\n canisterId: Principal.fromText(missionControlId),\n arg: new Uint8Array(arg),\n wasmModule,\n mode: INSTALL_MODE_UPGRADE,\n preClearChunks\n });\n};\n", "import type {canister_install_mode} from '@dfinity/ic-management';\n\nexport const SIMPLE_INSTALL_MAX_WASM_SIZE = 2_000_000;\nexport const INSTALL_MAX_CHUNK_SIZE = 1_000_000;\n\nexport const INSTALL_MODE_RESET: canister_install_mode = {reinstall: null};\n\nexport const INSTALL_MODE_UPGRADE: canister_install_mode = {\n upgrade: [{skip_pre_upgrade: [false], wasm_memory_persistence: [{replace: null}]}]\n};\n", "import {fromNullable, isNullish} from '@junobuild/utils';\nimport {canisterStatus, installCode} from '../api/ic.api';\nimport {SIMPLE_INSTALL_MAX_WASM_SIZE} from '../constants/upgrade.constants';\nimport {UpgradeCodeUnchangedError} from '../errors/upgrade.errors';\nimport {UpgradeCodeParams} from '../types/upgrade.types';\nimport {uint8ArrayToHexString} from '../utils/array.utils';\nimport {uint8ArraySha256} from '../utils/crypto.utils';\nimport {upgradeChunkedCode} from './upgrade.chunks.handlers';\n\nexport const upgrade = async ({wasmModule, ...rest}: UpgradeCodeParams) => {\n await assertExistingCode({wasmModule, ...rest});\n\n const upgradeType = (): 'simple' | 'chunked' => {\n const blob = new Blob([wasmModule]);\n return blob.size > SIMPLE_INSTALL_MAX_WASM_SIZE ? 'chunked' : 'simple';\n };\n\n const fn = upgradeType() === 'chunked' ? upgradeChunkedCode : upgradeCode;\n await fn({wasmModule, ...rest});\n};\n\nconst assertExistingCode = async ({\n actor,\n canisterId,\n wasmModule\n}: Pick<UpgradeCodeParams, 'actor' | 'canisterId' | 'wasmModule'>) => {\n const {module_hash} = await canisterStatus({\n actor,\n canisterId\n });\n\n const installedHash = fromNullable(module_hash);\n\n if (isNullish(installedHash)) {\n return;\n }\n\n const newWasmModuleHash = await uint8ArraySha256(wasmModule);\n const existingWasmModuleHash = uint8ArrayToHexString(installedHash);\n\n if (newWasmModuleHash !== existingWasmModuleHash) {\n return;\n }\n\n throw new UpgradeCodeUnchangedError();\n};\n\nconst upgradeCode = async ({actor, ...rest}: UpgradeCodeParams) => {\n await installCode({\n actor,\n code: rest\n });\n};\n", "import {CanisterStatus} from '@dfinity/agent';\nimport {\n type chunk_hash,\n type InstallChunkedCodeParams,\n type UploadChunkParams,\n ICManagementCanister,\n InstallCodeParams\n} from '@dfinity/ic-management';\nimport type {CanisterStatusResponse} from '@dfinity/ic-management/dist/types/types/ic-management.responses';\nimport {Principal} from '@dfinity/principal';\nimport {assertNonNullish} from '@junobuild/utils';\nimport type {ActorParameters} from '../types/actor.types';\nimport {useOrInitAgent} from '../utils/actor.utils';\n\nexport const installCode = async ({\n actor,\n code\n}: {\n actor: ActorParameters;\n code: InstallCodeParams;\n}): Promise<void> => {\n const agent = await useOrInitAgent(actor);\n\n const {installCode} = ICManagementCanister.create({\n agent\n });\n\n return installCode(code);\n};\n\nexport const storedChunks = async ({\n actor,\n canisterId\n}: {\n actor: ActorParameters;\n canisterId: Principal;\n}): Promise<chunk_hash[]> => {\n const agent = await useOrInitAgent(actor);\n\n const {storedChunks} = ICManagementCanister.create({\n agent\n });\n\n return storedChunks({canisterId});\n};\n\nexport const clearChunkStore = async ({\n actor,\n canisterId\n}: {\n actor: ActorParameters;\n canisterId: Principal;\n}): Promise<void> => {\n const agent = await useOrInitAgent(actor);\n\n const {clearChunkStore} = ICManagementCanister.create({\n agent\n });\n\n return clearChunkStore({canisterId});\n};\n\nexport const uploadChunk = async ({\n actor,\n chunk\n}: {\n actor: ActorParameters;\n chunk: UploadChunkParams;\n}): Promise<chunk_hash> => {\n const agent = await useOrInitAgent(actor);\n\n const {uploadChunk} = ICManagementCanister.create({\n agent\n });\n\n return uploadChunk(chunk);\n};\n\nexport const installChunkedCode = async ({\n actor,\n code\n}: {\n actor: ActorParameters;\n code: InstallChunkedCodeParams;\n}): Promise<void> => {\n const agent = await useOrInitAgent(actor);\n\n const {installChunkedCode} = ICManagementCanister.create({\n agent\n });\n\n return installChunkedCode(code);\n};\n\nexport const canisterStatus = async ({\n actor,\n canisterId\n}: {\n actor: ActorParameters;\n canisterId: Principal;\n}): Promise<CanisterStatusResponse> => {\n const agent = await useOrInitAgent(actor);\n\n const {canisterStatus} = ICManagementCanister.create({\n agent\n });\n\n return canisterStatus(canisterId);\n};\n\nexport const canisterMetadata = async ({\n canisterId,\n path,\n ...rest\n}: ActorParameters & {\n canisterId: string | undefined;\n path: string;\n}): Promise<CanisterStatus.Status | undefined> => {\n assertNonNullish(canisterId, 'A canister ID must be provided to request its status.');\n\n const agent = await useOrInitAgent(rest);\n\n const result = await CanisterStatus.request({\n canisterId: Principal.from(canisterId),\n agent,\n paths: [\n {\n kind: 'metadata',\n key: path,\n path,\n decodeStrategy: 'utf-8'\n }\n ]\n });\n\n return result.get(path);\n};\n", "// Duplicates @dfinity/utils\nexport const uint8ArrayToHexString = (bytes: Uint8Array | number[]) => {\n if (!(bytes instanceof Uint8Array)) {\n bytes = Uint8Array.from(bytes);\n }\n return bytes.reduce((str, byte) => str + byte.toString(16).padStart(2, '0'), '');\n};\n", "// Sources:\n// https://stackoverflow.com/a/70891826/5404186\n// https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/digest\n\nconst digestSha256 = (data: ArrayBuffer): Promise<ArrayBuffer> =>\n crypto.subtle.digest('SHA-256', data);\n\nconst sha256ToHex = (hashBuffer: ArrayBuffer): string => {\n const hashArray = Array.from(new Uint8Array(hashBuffer));\n return hashArray.map((b) => b.toString(16).padStart(2, '0')).join('');\n};\n\nexport const blobSha256 = async (blob: Blob): Promise<string> => {\n const hashBuffer = await digestSha256(await blob.arrayBuffer());\n return sha256ToHex(hashBuffer);\n};\n\nexport const uint8ArraySha256 = async (data: Uint8Array): Promise<string> => {\n const hashBuffer = await digestSha256(data);\n return sha256ToHex(hashBuffer);\n};\n", "import type {chunk_hash} from '@dfinity/ic-management';\nimport {isNullish, nonNullish} from '@junobuild/utils';\nimport {\n clearChunkStore,\n installChunkedCode,\n storedChunks as storedChunksApi,\n uploadChunk as uploadChunkApi\n} from '../api/ic.api';\nimport {INSTALL_MAX_CHUNK_SIZE} from '../constants/upgrade.constants';\nimport {UpgradeCodeParams} from '../types/upgrade.types';\nimport {uint8ArrayToHexString} from '../utils/array.utils';\nimport {blobSha256, uint8ArraySha256} from '../utils/crypto.utils';\n\ninterface UploadChunkOrderId {\n orderId: number;\n}\n\ninterface UploadChunkParams extends UploadChunkOrderId {\n chunk: Blob;\n sha256: string;\n}\n\ninterface UploadChunkResult extends UploadChunkOrderId {\n chunkHash: chunk_hash;\n}\n\nexport const upgradeChunkedCode = async ({\n actor,\n canisterId,\n missionControlId,\n wasmModule,\n preClearChunks: userPreClearChunks,\n ...rest\n}: UpgradeCodeParams) => {\n // If the user want to clear - reset - any chunks that have been uploaded before we start by removing those.\n if (userPreClearChunks) {\n await clearChunkStore({actor, canisterId});\n }\n\n const wasmChunks = await wasmToChunks({wasmModule});\n\n const {uploadChunks, storedChunks, preClearChunks, postClearChunks} = await prepareUpload({\n actor,\n wasmChunks,\n canisterId,\n missionControlId\n });\n\n // Alright, let's start by clearing existing chunks if there are already stored chunks but, none are matching those we want to upload.\n if (preClearChunks) {\n await clearChunkStore({actor, canisterId});\n }\n\n // Upload chunks to the IC in batch - i.e. 12 chunks uploaded at a time.\n let chunkIds: UploadChunkResult[] = [];\n for await (const results of batchUploadChunks({\n uploadChunks,\n actor,\n canisterId,\n missionControlId\n })) {\n chunkIds = [...chunkIds, ...results];\n }\n\n // Install the chunked code.\n // \u26A0\uFE0F The order of the chunks is really important! \u26A0\uFE0F\n await installChunkedCode({\n actor,\n code: {\n ...rest,\n chunkHashesList: [...chunkIds, ...storedChunks]\n .sort(({orderId: orderIdA}, {orderId: orderIdB}) => orderIdA - orderIdB)\n .map(({chunkHash}) => chunkHash),\n targetCanisterId: canisterId,\n storeCanisterId: missionControlId,\n wasmModuleHash: await uint8ArraySha256(wasmModule)\n }\n });\n\n // Finally let's clear only if no mission control is provided, as the chunks might be reused in that case.\n if (postClearChunks) {\n await clearChunkStore({actor, canisterId});\n }\n};\n\nconst wasmToChunks = async ({\n wasmModule\n}: Pick<UpgradeCodeParams, 'wasmModule'>): Promise<UploadChunkParams[]> => {\n const blob = new Blob([wasmModule]);\n\n const uploadChunks: UploadChunkParams[] = [];\n\n const chunkSize = INSTALL_MAX_CHUNK_SIZE;\n\n // Split data into chunks\n let orderId = 0;\n for (let start = 0; start < blob.size; start += chunkSize) {\n const chunk = blob.slice(start, start + chunkSize);\n uploadChunks.push({\n chunk,\n orderId,\n sha256: await blobSha256(chunk)\n });\n\n orderId++;\n }\n\n return uploadChunks;\n};\n\ninterface PrepareUpload {\n uploadChunks: UploadChunkParams[];\n storedChunks: UploadChunkResult[];\n preClearChunks: boolean;\n postClearChunks: boolean;\n}\n\n/**\n * Prepares the upload of WASM chunks by determining which chunks need to be uploaded\n * and which are already stored. Additionally, it provides flags for pre-clear and post-clear operations.\n *\n * If a `missionControlId` is provided, the function fetches the already stored chunks\n * for the given mission control canister. Otherwise, it fetches them from the `canisterId`.\n *\n * In the response, `preClearChunks` is set to `true` if no stored chunks matching the one we are looking to upload are detected.\n * `postClearChunks` is set to `true` if no `missionControlId` is given, as the chunks might be reused for other installations.\n *\n * @param {Object} params - The input parameters.\n * @param {string} params.canisterId - The ID of the target canister.\n * @param {string} [params.missionControlId] - The ID of the mission control canister, if provided.\n * @param {Object} params.actor - The actor instance for interacting with the canister.\n * @param {UploadChunkParams[]} params.wasmChunks - The WASM chunks to be uploaded, including their hashes and metadata.\n *\n * @returns {Promise<PrepareUpload>} Resolves to an object containing:\n */\nconst prepareUpload = async ({\n canisterId,\n missionControlId,\n actor,\n wasmChunks\n}: Pick<UpgradeCodeParams, 'canisterId' | 'missionControlId' | 'actor'> & {\n wasmChunks: UploadChunkParams[];\n}): Promise<PrepareUpload> => {\n const stored = await storedChunksApi({\n actor,\n canisterId: missionControlId ?? canisterId\n });\n\n // We convert existing hash to extend with an easily comparable sha256 as hex value\n const existingStoredChunks: (Pick<UploadChunkResult, 'chunkHash'> &\n Pick<UploadChunkParams, 'sha256'>)[] = stored.map(({hash}) => ({\n chunkHash: {hash},\n sha256: uint8ArrayToHexString(hash)\n }));\n\n const {storedChunks, uploadChunks} = wasmChunks.reduce<\n Omit<PrepareUpload, 'preClearChunks' | 'postClearChunks'>\n >(\n ({uploadChunks, storedChunks}, {sha256, ...rest}) => {\n const existingStoredChunk = existingStoredChunks.find(\n ({sha256: storedSha256}) => storedSha256 === sha256\n );\n\n return {\n uploadChunks: [\n ...uploadChunks,\n ...(nonNullish(existingStoredChunk) ? [] : [{sha256, ...rest}])\n ],\n storedChunks: [\n ...storedChunks,\n ...(nonNullish(existingStoredChunk) ? [{...rest, ...existingStoredChunk}] : [])\n ]\n };\n },\n {\n uploadChunks: [],\n storedChunks: []\n }\n );\n\n return {\n uploadChunks,\n storedChunks,\n preClearChunks: stored.length > 0 && storedChunks.length === 0,\n postClearChunks: isNullish(missionControlId)\n };\n};\n\nasync function* batchUploadChunks({\n uploadChunks,\n limit = 12,\n ...rest\n}: Pick<UpgradeCodeParams, 'actor' | 'canisterId' | 'missionControlId'> & {\n uploadChunks: UploadChunkParams[];\n limit?: number;\n}): AsyncGenerator<UploadChunkResult[], void> {\n for (let i = 0; i < uploadChunks.length; i = i + limit) {\n const batch = uploadChunks.slice(i, i + limit);\n const result = await Promise.all(\n batch.map((uploadChunkParams) =>\n uploadChunk({\n uploadChunk: uploadChunkParams,\n ...rest\n })\n )\n );\n yield result;\n }\n}\n\nconst uploadChunk = async ({\n actor,\n canisterId,\n missionControlId,\n uploadChunk: {chunk, ...rest}\n}: Pick<UpgradeCodeParams, 'actor' | 'canisterId' | 'missionControlId'> & {\n uploadChunk: UploadChunkParams;\n}): Promise<UploadChunkResult> => {\n const chunkHash = await uploadChunkApi({\n actor,\n chunk: {\n canisterId: missionControlId ?? canisterId,\n chunk: new Uint8Array(await chunk.arrayBuffer())\n }\n });\n\n return {\n chunkHash,\n ...rest\n };\n};\n", "import {IDL} from '@dfinity/candid';\nimport type {Principal} from '@dfinity/principal';\n\nexport const encoreIDLUser = (user: Principal): ArrayBuffer =>\n IDL.encode(\n [\n IDL.Record({\n user: IDL.Principal\n })\n ],\n [{user}]\n );\n\nexport const encodeIDLControllers = <T>(controllers: [Principal, T][]): ArrayBuffer =>\n IDL.encode(\n [\n IDL.Record({\n controllers: IDL.Vec(IDL.Principal)\n })\n ],\n [{controllers: controllers.map(([controller, _]) => controller)}]\n );\n", "import {version} from '../api/mission-control.api';\nimport type {MissionControlParameters} from '../types/actor.types';\n\n/**\n * Retrieves the version of Mission Control.\n * @param {Object} params - The parameters for Mission Control.\n * @param {MissionControlParameters} params.missionControl - The Mission Control parameters.\n * @returns {Promise<string>} A promise that resolves to the version of Mission Control.\n */\nexport const missionControlVersion = (params: {\n missionControl: MissionControlParameters;\n}): Promise<string> => version(params);\n", "import type {Principal} from '@dfinity/principal';\nimport type {\n Controller,\n MemorySize,\n _SERVICE as OrbiterActor\n} from '../../declarations/orbiter/orbiter.did';\nimport type {OrbiterParameters} from '../types/actor.types';\nimport {getOrbiterActor} from './actor.api';\n\nexport const version = async ({orbiter}: {orbiter: OrbiterParameters}): Promise<string> => {\n const actor: OrbiterActor = await getOrbiterActor(orbiter);\n return actor.version();\n};\n\nexport const listControllers = async ({\n orbiter\n}: {\n orbiter: OrbiterParameters;\n}): Promise<[Principal, Controller][]> => {\n const actor: OrbiterActor = await getOrbiterActor(orbiter);\n return actor.list_controllers();\n};\n\nexport const memorySize = async ({orbiter}: {orbiter: OrbiterParameters}): Promise<MemorySize> => {\n const {memory_size} = await getOrbiterActor(orbiter);\n return memory_size();\n};\n", "import {Principal} from '@dfinity/principal';\nimport type {Controller} from '../../declarations/mission_control/mission_control.did';\nimport {listControllers} from '../api/orbiter.api';\nimport type {OrbiterParameters} from '../types/actor.types';\n\n/**\n * Lists the controllers of the Orbiter.\n * @param {Object} params - The parameters for listing the controllers.\n * @param {OrbiterParameters} params.orbiter - The Orbiter parameters.\n * @returns {Promise<[Principal, Controller][]>} A promise that resolves to a list of controllers.\n */\nexport const listOrbiterControllers = (params: {\n orbiter: OrbiterParameters;\n}): Promise<[Principal, Controller][]> => listControllers(params);\n", "import type {MemorySize} from '../../declarations/orbiter/orbiter.did';\nimport {memorySize} from '../api/orbiter.api';\nimport type {OrbiterParameters} from '../types/actor.types';\n\n/**\n * Retrieves the memory size of the Orbiter.\n * @param {Object} params - The parameters for the Orbiter.\n * @param {OrbiterParameters} params.orbiter - The Orbiter parameters.\n * @returns {Promise<MemorySize>} A promise that resolves to the memory size of the Orbiter.\n */\nexport const orbiterMemorySize = (params: {orbiter: OrbiterParameters}): Promise<MemorySize> =>\n memorySize(params);\n", "import {Principal} from '@dfinity/principal';\nimport {listControllers} from '../api/orbiter.api';\nimport {INSTALL_MODE_RESET, INSTALL_MODE_UPGRADE} from '../constants/upgrade.constants';\nimport {upgrade} from '../handlers/upgrade.handlers';\nimport type {OrbiterParameters} from '../types/actor.types';\nimport {encodeIDLControllers} from '../utils/idl.utils';\n\n/**\n * Upgrades the Orbiter with the provided WASM module.\n * @param {Object} params - The parameters for upgrading the Orbiter.\n * @param {OrbiterParameters} params.orbiter - The Orbiter parameters.\n * @param {Principal} [params.missionControlId] - The optional Mission Control ID in which the WASM chunks can potentially be stored. Useful to reuse chunks across installations.\n * @param {Uint8Array} params.wasm_module - The WASM module for the upgrade.\n * @param {boolean} [params.reset=false] - Whether to reset the Orbiter (reinstall) instead of upgrading.\n * @param {boolean} [params.preClearChunks] - An optional parameter to force clearing the chunks before uploading the chunked WASM. Apply if WASM > 2Mb.\n * @throws Will throw an error if no orbiter principal is defined.\n * @returns {Promise<void>} A promise that resolves when the upgrade is complete.\n */\nexport const upgradeOrbiter = async ({\n orbiter,\n missionControlId,\n wasmModule,\n reset = false,\n preClearChunks\n}: {\n orbiter: OrbiterParameters;\n missionControlId?: Principal;\n wasmModule: Uint8Array;\n reset?: boolean;\n preClearChunks?: boolean;\n}): Promise<void> => {\n const {orbiterId, ...actor} = orbiter;\n\n if (!orbiterId) {\n throw new Error('No orbiter principal defined.');\n }\n\n const controllers = await listControllers({orbiter});\n\n const arg = encodeIDLControllers(controllers);\n\n await upgrade({\n actor,\n canisterId: Principal.fromText(orbiterId),\n missionControlId,\n arg: new Uint8Array(arg),\n wasmModule,\n mode: reset ? INSTALL_MODE_RESET : INSTALL_MODE_UPGRADE,\n preClearChunks\n });\n};\n", "import {version} from '../api/orbiter.api';\nimport type {OrbiterParameters} from '../types/actor.types';\n\n/**\n * Retrieves the version of the Orbiter.\n * @param {Object} params - The parameters for the Orbiter.\n * @param {OrbiterParameters} params.orbiter - The Orbiter parameters.\n * @returns {Promise<string>} A promise that resolves to the version of the Orbiter.\n */\nexport const orbiterVersion = (params: {orbiter: OrbiterParameters}): Promise<string> =>\n version(params);\n", "import {major, minor, patch} from 'semver';\n\n/**\n * Checks if the selected version can be upgraded from the current version.\n * @param {Object} params - The parameters for the version check.\n * @param {string} params.currentVersion - The current version.\n * @param {string} params.selectedVersion - The selected version.\n * @returns {Object} An object indicating whether the upgrade can proceed.\n * @returns {boolean} returns.canUpgrade - Whether the selected version can be upgraded from the current version.\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 type {Principal} from '@dfinity/principal';\nimport {toNullable} from '@junobuild/utils';\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 AuthenticationConfig,\n Controller,\n CustomDomain,\n DbConfig,\n MemorySize,\n Rule,\n RulesType,\n _SERVICE as SatelliteActor,\n SetControllersArgs,\n SetRule,\n StorageConfig\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 setStorageConfig = async ({\n config,\n satellite\n}: {\n config: StorageConfig;\n satellite: SatelliteParameters;\n}): Promise<void> => {\n const {set_storage_config} = await getSatelliteActor(satellite);\n return set_storage_config(config);\n};\n\nexport const setDatastoreConfig = async ({\n config,\n satellite\n}: {\n config: DbConfig;\n satellite: SatelliteParameters;\n}): Promise<void> => {\n const {set_db_config} = await getSatelliteActor(satellite);\n return set_db_config(config);\n};\n\nexport const setAuthConfig = async ({\n config,\n satellite\n}: {\n config: AuthenticationConfig;\n satellite: SatelliteParameters;\n}): Promise<void> => {\n const {set_auth_config} = await getSatelliteActor(satellite);\n return set_auth_config(config);\n};\n\nexport const getStorageConfig = async ({\n satellite\n}: {\n satellite: SatelliteParameters;\n}): Promise<StorageConfig> => {\n const {get_storage_config} = await getSatelliteActor(satellite);\n return get_storage_config();\n};\n\nexport const getDatastoreConfig = async ({\n satellite\n}: {\n satellite: SatelliteParameters;\n}): Promise<[] | [DbConfig]> => {\n const {get_db_config} = await getSatelliteActor(satellite);\n return get_db_config();\n};\n\nexport const getAuthConfig = async ({\n satellite\n}: {\n satellite: SatelliteParameters;\n}): Promise<[] | [AuthenticationConfig]> => {\n const {get_auth_config} = await getSatelliteActor(satellite);\n return get_auth_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<Rule> => {\n const {set_rule} = await getSatelliteActor(satellite);\n return set_rule(type, collection, rule);\n};\n\nexport const version = async ({satellite}: {satellite: SatelliteParameters}): Promise<string> => {\n const {version} = await getSatelliteActor(satellite);\n return version();\n};\n\nexport const buildVersion = async ({\n satellite\n}: {\n satellite: SatelliteParameters;\n}): Promise<string> => {\n const {build_version} = await getSatelliteActor(satellite);\n return build_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 =\n await getDeprecatedSatelliteNoScopeActor(satellite);\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 {list_custom_domains} = await getSatelliteActor(satellite);\n return list_custom_domains();\n};\n\nexport const setCustomDomain = async ({\n satellite,\n domainName,\n boundaryNodesId\n}: {\n satellite: SatelliteParameters;\n domainName: string;\n boundaryNodesId: string | undefined;\n}): Promise<void> => {\n const {set_custom_domain} = await getSatelliteActor(satellite);\n await set_custom_domain(domainName, toNullable(boundaryNodesId));\n};\n\nexport const memorySize = async ({\n satellite\n}: {\n satellite: SatelliteParameters;\n}): Promise<MemorySize> => {\n const {memory_size} = await getSatelliteActor(satellite);\n return memory_size();\n};\n\nexport const countDocs = async ({\n collection,\n satellite\n}: {\n collection: string;\n satellite: SatelliteParameters;\n}): Promise<bigint> => {\n const {count_collection_docs} = await getSatelliteActor(satellite);\n return count_collection_docs(collection);\n};\n\nexport const countAssets = async ({\n collection,\n satellite\n}: {\n collection: string;\n satellite: SatelliteParameters;\n}): Promise<bigint> => {\n const {count_collection_assets} = await getSatelliteActor(satellite);\n return count_collection_assets(collection);\n};\n\nexport const deleteDocs = async ({\n collection,\n satellite\n}: {\n collection: string;\n satellite: SatelliteParameters;\n}): Promise<void> => {\n const {del_docs} = await getSatelliteActor(satellite);\n return del_docs(collection);\n};\n\nexport const deleteAssets = async ({\n collection,\n satellite\n}: {\n collection: string;\n satellite: SatelliteParameters;\n}): Promise<void> => {\n const {del_assets} = await getSatelliteActor(satellite);\n return del_assets(collection);\n};\n\nexport const setControllers = async ({\n args,\n satellite\n}: {\n args: SetControllersArgs;\n satellite: SatelliteParameters;\n}): Promise<[Principal, Controller][]> => {\n const {set_controllers} = await getSatelliteActor(satellite);\n return set_controllers(args);\n};\n", "import {countAssets as countAssetsApi, deleteAssets as deleteAssetsApi} from '../api/satellite.api';\nimport type {SatelliteParameters} from '../types/actor.types';\n\n/**\n * Counts the assets in a collection.\n * @param {Object} params - The parameters for counting the assets.\n * @param {string} params.collection - The name of the collection.\n * @param {SatelliteParameters} params.satellite - The satellite parameters.\n * @returns {Promise<bigint>} A promise that resolves to the number of assets in the collection.\n */\nexport const countAssets = (params: {\n collection: string;\n satellite: SatelliteParameters;\n}): Promise<bigint> => countAssetsApi(params);\n\n/**\n * Deletes the assets in a collection.\n * @param {Object} params - The parameters for deleting the assets.\n * @param {string} params.collection - The name of the collection.\n * @param {SatelliteParameters} params.satellite - The satellite parameters.\n * @returns {Promise<void>} A promise that resolves when the assets are deleted.\n */\nexport const deleteAssets = (params: {\n collection: string;\n satellite: SatelliteParameters;\n}): Promise<void> => deleteAssetsApi(params);\n", "import type {\n AuthenticationConfig,\n DatastoreConfig,\n StorageConfig,\n StorageConfigHeader,\n StorageConfigRedirect,\n StorageConfigRewrite\n} from '@junobuild/config';\nimport {fromNullable, isNullish, nonNullish} from '@junobuild/utils';\nimport type {\n StorageConfigIFrame as StorageConfigIFrameDid,\n StorageConfigRawAccess as StorageConfigRawAccessDid,\n StorageConfigRedirect as StorageConfigRedirectDid\n} from '../../declarations/satellite/satellite.did';\nimport {\n getAuthConfig as getAuthConfigApi,\n setAuthConfig as setAuthConfigApi,\n setDatastoreConfig as setDatastoreConfigApi,\n setStorageConfig as setStorageConfigApi\n} from '../api/satellite.api';\nimport type {SatelliteParameters} from '../types/actor.types';\nimport {toMaxMemorySize} from '../utils/memory.utils';\n\n/**\n * Sets the configuration for the Storage of a Satellite.\n * @param {Object} params - The parameters for setting the configuration.\n * @param {Object} params.config - The storage configuration.\n * @param {Array<StorageConfigHeader>} params.config.headers - The headers configuration.\n * @param {Array<StorageConfigRewrite>} params.config.rewrites - The rewrites configuration.\n * @param {Array<StorageConfigRedirect>} params.config.redirects - The redirects configuration.\n * @param {string} params.config.iframe - The iframe configuration.\n * @param {SatelliteParameters} params.satellite - The satellite parameters.\n * @returns {Promise<void>} A promise that resolves when the configuration is set.\n */\nexport const setStorageConfig = async ({\n config: {\n headers: configHeaders,\n rewrites: configRewrites,\n redirects: configRedirects,\n iframe: configIFrame,\n rawAccess: configRawAccess,\n maxMemorySize: configMaxMemorySize\n },\n satellite\n}: {\n config: StorageConfig;\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 ?? []).map(\n ({source, destination}: StorageConfigRewrite) => [source, destination]\n );\n\n const redirects: [string, StorageConfigRedirectDid][] = (configRedirects ?? []).map(\n ({source, location, code}: StorageConfigRedirect) => [source, {status_code: code, location}]\n );\n\n const iframe: StorageConfigIFrameDid =\n configIFrame === 'same-origin'\n ? {SameOrigin: null}\n : configIFrame === 'allow-any'\n ? {AllowAny: null}\n : {Deny: null};\n\n const rawAccess: StorageConfigRawAccessDid =\n configRawAccess === true ? {Allow: null} : {Deny: null};\n\n return await setStorageConfigApi({\n satellite,\n config: {\n headers,\n rewrites,\n redirects: [redirects],\n iframe: [iframe],\n raw_access: [rawAccess],\n max_memory_size: toMaxMemorySize(configMaxMemorySize)\n }\n });\n};\n\n/**\n * Sets the datastore configuration for a satellite.\n * @param {Object} params - The parameters for setting the authentication configuration.\n * @param {Object} params.config - The datastore configuration.\n * @param {SatelliteParameters} params.satellite - The satellite parameters.\n * @returns {Promise<void>} A promise that resolves when the datastore configuration is set.\n */\nexport const setDatastoreConfig = async ({\n config: {maxMemorySize},\n ...rest\n}: {\n config: DatastoreConfig;\n satellite: SatelliteParameters;\n}): Promise<void> => {\n await setDatastoreConfigApi({\n config: {\n max_memory_size: toMaxMemorySize(maxMemorySize)\n },\n ...rest\n });\n};\n\n/**\n * Sets the authentication configuration for a satellite.\n * @param {Object} params - The parameters for setting the authentication configuration.\n * @param {Object} params.config - The authentication configuration.\n * @param {SatelliteParameters} params.satellite - The satellite parameters.\n * @returns {Promise<void>} A promise that resolves when the authentication configuration is set.\n */\nexport const setAuthConfig = async ({\n config: {internetIdentity},\n ...rest\n}: {\n config: AuthenticationConfig;\n satellite: SatelliteParameters;\n}): Promise<void> => {\n await setAuthConfigApi({\n config: {\n internet_identity: isNullish(internetIdentity?.derivationOrigin)\n ? []\n : [\n {\n derivation_origin: [internetIdentity.derivationOrigin]\n }\n ]\n },\n ...rest\n });\n};\n\n/**\n * Gets the authentication configuration for a satellite.\n * @param {Object} params - The parameters for getting the authentication configuration.\n * @param {SatelliteParameters} params.satellite - The satellite parameters.\n * @returns {Promise<AuthenticationConfig | undefined>} A promise that resolves to the authentication configuration or undefined if not found.\n */\nexport const getAuthConfig = async ({\n satellite\n}: {\n satellite: SatelliteParameters;\n}): Promise<AuthenticationConfig | undefined> => {\n const config = fromNullable(\n await getAuthConfigApi({\n satellite\n })\n );\n\n if (isNullish(config)) {\n return undefined;\n }\n\n const internetIdentity = fromNullable(config.internet_identity ?? []);\n\n return {\n ...(nonNullish(internetIdentity) && {\n internetIdentity: {\n ...(nonNullish(fromNullable(internetIdentity.derivation_origin)) && {\n derivationOrigin: fromNullable(internetIdentity.derivation_origin)\n })\n }\n })\n };\n};\n", "import type {MaxMemorySizeConfig} from '@junobuild/config';\nimport {nonNullish, toNullable} from '@junobuild/utils';\nimport type {ConfigMaxMemorySize} from '../../declarations/satellite/satellite.did';\n\nexport const toMaxMemorySize = (\n configMaxMemorySize?: MaxMemorySizeConfig\n): [] | [ConfigMaxMemorySize] =>\n toNullable(\n nonNullish(configMaxMemorySize)\n ? {\n heap: toNullable(configMaxMemorySize.heap),\n stable: toNullable(configMaxMemorySize.stable)\n }\n : undefined\n );\n", "import {Principal} from '@dfinity/principal';\nimport type {Controller, SetControllersArgs} from '../../declarations/satellite/satellite.did';\nimport {\n listControllers,\n listDeprecatedNoScopeControllers,\n setControllers\n} from '../api/satellite.api';\nimport type {SatelliteParameters} from '../types/actor.types';\n/**\n * Lists the controllers of a satellite.\n * @param {Object} params - The parameters for listing the controllers.\n * @param {SatelliteParameters} params.satellite - The satellite parameters.\n * @param {boolean} [params.deprecatedNoScope] - Whether to list deprecated no-scope controllers.\n * @returns {Promise<[Principal, Controller][]>} A promise that resolves to a list of controllers.\n */\nexport const listSatelliteControllers = ({\n deprecatedNoScope,\n ...params\n}: {\n satellite: SatelliteParameters;\n deprecatedNoScope?: boolean;\n}): Promise<[Principal, Controller][]> => {\n const list = deprecatedNoScope === true ? listDeprecatedNoScopeControllers : listControllers;\n return list(params);\n};\n\n/**\n * Sets the controllers of a satellite.\n * @param {Object} params - The parameters for setting the controllers.\n * @param {SatelliteParameters} params.satellite - The satellite parameters.\n * @param {SetControllersArgs} params.args - The arguments for setting the controllers.\n * @returns {Promise<[Principal, Controller][]>} A promise that resolves to a list of controllers.\n */\nexport const setSatelliteControllers = (params: {\n satellite: SatelliteParameters;\n args: SetControllersArgs;\n}): Promise<[Principal, Controller][]> => setControllers(params);\n", "import {countDocs as countDocsApi, deleteDocs as deleteDocsApi} from '../api/satellite.api';\nimport type {SatelliteParameters} from '../types/actor.types';\n\n/**\n * Counts the documents in a collection.\n * @param {Object} params - The parameters for counting the documents.\n * @param {string} params.collection - The name of the collection.\n * @param {SatelliteParameters} params.satellite - The satellite parameters.\n * @returns {Promise<bigint>} A promise that resolves to the number of documents in the collection.\n */\nexport const countDocs = (params: {\n collection: string;\n satellite: SatelliteParameters;\n}): Promise<bigint> => countDocsApi(params);\n\n/**\n * Deletes the documents in a collection.\n * @param {Object} params - The parameters for deleting the documents.\n * @param {string} params.collection - The name of the collection.\n * @param {SatelliteParameters} params.satellite - The satellite parameters.\n * @returns {Promise<void>} A promise that resolves when the documents are deleted.\n */\nexport const deleteDocs = (params: {\n collection: string;\n satellite: SatelliteParameters;\n}): Promise<void> => deleteDocsApi(params);\n", "import {fromNullable, nonNullish} from '@junobuild/utils';\nimport {\n listCustomDomains as listCustomDomainsApi,\n setCustomDomain as setCustomDomainApi\n} from '../api/satellite.api';\nimport type {SatelliteParameters} from '../types/actor.types';\nimport type {CustomDomain} from '../types/customdomain.types';\n\n/**\n * Lists the custom domains for a satellite.\n * @param {Object} params - The parameters for listing the custom domains.\n * @param {SatelliteParameters} params.satellite - The satellite parameters.\n * @returns {Promise<CustomDomain[]>} A promise that resolves to an array of custom domains.\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 const domainVersion = fromNullable(details.version);\n\n return {\n domain,\n bn_id: fromNullable(details.bn_id),\n created_at: details.created_at,\n updated_at: details.updated_at,\n ...(nonNullish(domainVersion) && {version: domainVersion})\n };\n });\n};\n\n/**\n * Sets the custom domains for a satellite.\n * @param {Object} params - The parameters for setting the custom domains.\n * @param {SatelliteParameters} params.satellite - The satellite parameters.\n * @param {CustomDomain[]} params.domains - The custom domains to set.\n * @returns {Promise<void[]>} A promise that resolves when the custom domains are set.\n */\nexport const setCustomDomains = ({\n satellite,\n domains\n}: {\n satellite: SatelliteParameters;\n domains: CustomDomain[];\n}): Promise<void[]> =>\n Promise.all(\n domains.map(({domain: domainName, bn_id: boundaryNodesId}) =>\n setCustomDomainApi({\n satellite,\n domainName,\n boundaryNodesId\n })\n )\n );\n", "import type {MemorySize} from '../../declarations/satellite/satellite.did';\nimport {memorySize} from '../api/satellite.api';\nimport type {SatelliteParameters} from '../types/actor.types';\n\n/**\n * Retrieves the memory size of a satellite.\n * @param {Object} params - The parameters for retrieving the memory size.\n * @param {SatelliteParameters} params.satellite - The satellite parameters.\n * @returns {Promise<MemorySize>} A promise that resolves to the memory size of the satellite.\n */\nexport const satelliteMemorySize = (params: {\n satellite: SatelliteParameters;\n}): Promise<MemorySize> => memorySize(params);\n", "import type {MemoryText, PermissionText, Rule, RulesType} from '@junobuild/config';\nimport {fromNullable, nonNullish, toNullable} from '@junobuild/utils';\nimport type {\n Memory,\n Permission,\n Rule as RuleApi,\n RulesType as RulesTypeApi,\n SetRule\n} from '../../declarations/satellite/satellite.did';\nimport {\n DbRulesType,\n DEFAULT_RATE_CONFIG_TIME_PER_TOKEN_NS,\n MemoryHeap,\n MemoryStable,\n PermissionControllers,\n PermissionManaged,\n PermissionPrivate,\n PermissionPublic,\n StorageRulesType\n} from '../constants/rules.constants';\n\nexport const mapRuleType = (type: RulesType): RulesTypeApi =>\n type === 'storage' ? StorageRulesType : DbRulesType;\n\nexport const mapSetRule = ({\n read,\n write,\n memory,\n maxSize,\n maxCapacity,\n version,\n mutablePermissions,\n maxTokens\n}: Pick<\n Rule,\n | 'read'\n | 'write'\n | 'maxSize'\n | 'maxCapacity'\n | 'version'\n | 'memory'\n | 'mutablePermissions'\n | 'maxTokens'\n>): SetRule => ({\n read: permissionFromText(read),\n write: permissionFromText(write),\n memory: nonNullish(memory) ? [memoryFromText(memory)] : [],\n version: toNullable(version),\n max_size: toNullable(nonNullish(maxSize) && maxSize > 0 ? BigInt(maxSize) : undefined),\n max_capacity: toNullable(nonNullish(maxCapacity) && maxCapacity > 0 ? maxCapacity : undefined),\n mutable_permissions: toNullable(mutablePermissions),\n rate_config: nonNullish(maxTokens)\n ? [\n {\n max_tokens: BigInt(maxTokens),\n time_per_token_ns: DEFAULT_RATE_CONFIG_TIME_PER_TOKEN_NS\n }\n ]\n : []\n});\n\nexport const mapRule = ([collection, rule]: [string, RuleApi]): Rule => {\n const {\n read,\n write,\n updated_at,\n created_at,\n max_size,\n max_capacity,\n memory,\n mutable_permissions,\n version,\n rate_config\n } = rule;\n\n const maxSize = (max_size?.[0] ?? 0n > 0n) ? Number(fromNullable(max_size)) : undefined;\n const maxCapacity = (max_capacity?.[0] ?? 0 > 0) ? fromNullable(max_capacity) : undefined;\n\n const ruleVersion = fromNullable(version);\n\n const maxTokens =\n (rate_config?.[0]?.max_tokens ?? 0n > 0n) ? fromNullable(rate_config)?.max_tokens : undefined;\n\n return {\n collection,\n read: permissionToText(read),\n write: permissionToText(write),\n memory: memoryToText(fromNullable(memory) ?? MemoryHeap),\n updatedAt: updated_at,\n createdAt: created_at,\n ...(nonNullish(ruleVersion) && {version: ruleVersion}),\n ...(nonNullish(maxSize) && {maxSize}),\n ...(nonNullish(maxCapacity) && {maxCapacity}),\n mutablePermissions: fromNullable(mutable_permissions) ?? true,\n ...(nonNullish(maxTokens) && {maxTokens: Number(maxTokens)})\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\nexport const memoryFromText = (text: MemoryText): Memory => {\n switch (text.toLowerCase()) {\n case 'heap':\n return MemoryHeap;\n default:\n return MemoryStable;\n }\n};\n\nexport const memoryToText = (memory: Memory): MemoryText => {\n if ('Heap' in memory) {\n return 'heap';\n }\n\n return 'stable';\n};\n", "import type {Memory, 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\nexport const MemoryHeap: Memory = {Heap: null};\nexport const MemoryStable: Memory = {Stable: null};\n\nexport const DEFAULT_RATE_CONFIG_TIME_PER_TOKEN_NS = 600_000_000n;\n", "import type {Rule, RulesType} from '@junobuild/config';\nimport {listRules as listRulesApi, setRule as setRuleApi} from '../api/satellite.api';\nimport type {SatelliteParameters} from '../types/actor.types';\nimport {mapRule, mapRuleType, mapSetRule} from '../utils/rule.utils';\n\n/**\n * Lists the rules for a satellite.\n * @param {Object} params - The parameters for listing the rules.\n * @param {RulesType} params.type - The type of rules to list.\n * @param {SatelliteParameters} params.satellite - The satellite parameters.\n * @returns {Promise<Rule[]>} A promise that resolves to an array of rules.\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\n/**\n * Sets a rule for a satellite.\n * @param {Object} params - The parameters for setting the rule.\n * @param {Rule} params.rule - The rule to set.\n * @param {RulesType} params.type - The type of rule.\n * @param {SatelliteParameters} params.satellite - The satellite parameters.\n * @returns {Promise<void>} A promise that resolves when the rule is set.\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 await setRuleApi({\n type: mapRuleType(type),\n rule: mapSetRule(rest),\n satellite,\n collection\n });\n};\n", "import {IDL} from '@dfinity/candid';\nimport {Principal} from '@dfinity/principal';\nimport {isNullish} from '@junobuild/utils';\nimport {\n listControllers,\n listDeprecatedControllers,\n listDeprecatedNoScopeControllers\n} from '../api/satellite.api';\nimport {INSTALL_MODE_RESET, INSTALL_MODE_UPGRADE} from '../constants/upgrade.constants';\nimport {upgrade} from '../handlers/upgrade.handlers';\nimport type {SatelliteParameters} from '../types/actor.types';\nimport {encodeIDLControllers} from '../utils/idl.utils';\n\n/**\n * Upgrades the satellite with the provided WASM module.\n * @param {Object} params - The parameters for upgrading the satellite.\n * @param {SatelliteParameters} params.satellite - The satellite parameters.\n * @param {Principal} [params.missionControlId] - The optional Mission Control ID in which the WASM chunks can potentially be stored. Useful to reuse chunks across installations.\n * @param {Uint8Array} params.wasm_module - The WASM module for the upgrade.\n * @param {boolean} params.deprecated - Whether the upgrade is deprecated.\n * @param {boolean} params.deprecatedNoScope - Whether the upgrade is deprecated with no scope.\n * @param {boolean} [params.reset=false] - Whether to reset the satellite (reinstall) instead of upgrading.\n * @param {boolean} [params.preClearChunks] - An optional parameter to force clearing the chunks before uploading the chunked WASM. Apply if WASM > 2Mb.\n * @returns {Promise<void>} A promise that resolves when the upgrade is complete.\n */\nexport const upgradeSatellite = async ({\n satellite,\n missionControlId,\n wasmModule,\n deprecated,\n deprecatedNoScope,\n reset = false,\n preClearChunks\n}: {\n satellite: SatelliteParameters;\n missionControlId?: Principal;\n wasmModule: Uint8Array;\n deprecated: boolean;\n deprecatedNoScope: boolean;\n reset?: boolean;\n preClearChunks?: boolean;\n}): Promise<void> => {\n const {satelliteId, ...actor} = satellite;\n\n if (isNullish(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 upgrade({\n actor,\n canisterId: Principal.fromText(satelliteId),\n missionControlId,\n arg: new Uint8Array(arg),\n wasmModule,\n mode: reset ? INSTALL_MODE_RESET : INSTALL_MODE_UPGRADE,\n preClearChunks\n });\n\n return;\n }\n\n const list = deprecatedNoScope ? listDeprecatedNoScopeControllers : listControllers;\n\n // We pass the controllers to the upgrade but, it's just for the state of the art because I don't want to call the install without passing args. The module's post_upgrade do not consider the init parameters.\n const controllers = await list({satellite});\n\n const arg = encodeIDLControllers(controllers);\n\n await upgrade({\n actor,\n canisterId: Principal.fromText(satelliteId),\n missionControlId,\n arg: new Uint8Array(arg),\n wasmModule,\n mode: reset ? INSTALL_MODE_RESET : INSTALL_MODE_UPGRADE,\n preClearChunks\n });\n};\n", "import {nonNullish} from '@junobuild/utils';\nimport {canisterMetadata} from '../api/ic.api';\nimport {buildVersion, version} from '../api/satellite.api';\nimport type {SatelliteParameters} from '../types/actor.types';\nimport type {BuildType} from '../types/build.types';\n\n/**\n * Retrieves the version of the satellite.\n * @param {Object} params - The parameters for retrieving the version.\n * @param {SatelliteParameters} params.satellite - The satellite parameters.\n * @returns {Promise<string>} A promise that resolves to the version of the satellite.\n */\nexport const satelliteVersion = (params: {satellite: SatelliteParameters}): Promise<string> =>\n version(params);\n\n/**\n * Retrieves the build version of the satellite.\n * @param {Object} params - The parameters for retrieving the build version.\n * @param {SatelliteParameters} params.satellite - The satellite parameters.\n * @returns {Promise<string>} A promise that resolves to the build version of the satellite.\n */\nexport const satelliteBuildVersion = (params: {satellite: SatelliteParameters}): Promise<string> =>\n buildVersion(params);\n\n/**\n * Retrieves the build type of the satellite.\n * @param {Object} params - The parameters for retrieving the build type.\n * @param {SatelliteParameters} params.satellite - The satellite parameters.\n * @returns {Promise<BuildType | undefined>} A promise that resolves to the build type of the satellite or undefined if not found.\n */\nexport const satelliteBuildType = async ({\n satellite: {satelliteId, ...rest}\n}: {\n satellite: SatelliteParameters;\n}): Promise<BuildType | undefined> => {\n const status = await canisterMetadata({...rest, canisterId: satelliteId, path: 'juno:build'});\n\n return nonNullish(status) && ['stock', 'extended'].includes(status as string)\n ? (status as BuildType)\n : undefined;\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["concat", "buffers", "result", "acc", "curr", "index", "b", "exports", "toHexString", "bytes", "str", "byte", "fromHexString", "hexString", "_a", "PipeArrayBuffer", "buffer", "length", "bufFromBufLike", "num", "buf", "offset", "amount", "v", "uint8ToBuf", "arr", "bufLike", "idlHash", "s", "array", "h", "c", "idlLabelToId", "label", "num", "exports", "buffer_1", "eob", "safeRead", "pipe", "num", "exports", "safeReadUint8", "byte", "lebEncode", "value", "byteLength", "i", "lebDecode", "weight", "slebEncode", "isNeg", "getLowerBytes", "bytes", "slebDecode", "pipeView", "len", "writeUIntLE", "writeIntLE", "mul", "sub", "readUIntLE", "val", "readIntLE", "ilog2", "n", "nBig", "exports", "iexp2", "principal_1", "buffer_1", "hash_1", "leb128_1", "bigint_math_1", "magicNumber", "toReadableString_max", "zipWith", "xs", "ys", "f", "x", "i", "TypeTable", "obj", "type", "buf", "idx", "knot", "knotIdx", "len", "typeName", "Visitor", "data", "ty", "fields", "components", "exports", "Type", "toReadableString", "typeTable", "PrimitiveType", "ConstructType", "RecClass", "EmptyClass", "v", "d", "UnknownClass", "b", "t", "decodedValue", "typeFunc", "BoolClass", "NullClass", "ReservedClass", "TextClass", "IntClass", "NatClass", "FloatClass", "_bits", "view", "opcode", "bytes", "FixedIntClass", "min", "max", "ok", "offset", "num", "FixedNatClass", "VecClass", "_VecClass", "_type", "bits", "e", "encoded", "opCode", "buffer", "vec", "rets", "OptClass", "_OptClass", "opt", "RecordClass", "_RecordClass", "a", "res", "key", "k", "values", "bufs", "c", "T", "_", "value", "record", "expectedRecordIdx", "actualRecordIdx", "hash", "expectKey", "expectType", "expectedId", "actualId", "TupleClass", "_TupleClass", "_components", "tuple", "wireType", "VariantClass", "_VariantClass", "name", "variant", "wireHash", "_RecClass", "decodePrincipalId", "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", "buildType", "entry", "Vec", "Opt", "Record", "Tuple", "Variant", "Func", "rec", "typeRef", "Service", "output", "ind", "ret", "InputBox", "idl", "ui", "status", "config", "value", "input", "err", "dom", "container", "label", "exports", "InputForm", "e", "form", "oldContainer", "RecordForm", "fields", "key", "type", "v", "_", "TupleForm", "components", "i", "VariantForm", "index", "variant", "select", "selected", "OptionForm", "ty", "opt", "VecForm", "len", "t", "IDL", "__importStar", "principal_1", "UI", "InputConfig", "parsePrimitive", "FormConfig", "renderInput", "inputBox", "t", "config", "exports", "recordForm", "fields", "tupleForm", "components", "variantForm", "optForm", "ty", "vecForm", "Render", "d", "input", "container", "form", "select", "key", "type", "option", "checkbox", "len", "Parse", "v", "x", "Random", "signed", "num", "renderValue", "value", "RenderValue", "open", "i", "selected", "require_types", "__commonJSMin", "exports", "__exportStar", "exports", "__importStar", "UpgradeCodeUnchangedError", "isNullish", "idlFactory", "IDL", "Orbiter", "CreateCanisterConfig", "Satellite", "DepositCyclesArgs", "Tokens", "Timestamp", "TransferArgs", "TransferError", "Result", "Account", "TransferArg", "TransferError_1", "Result_1", "ControllerScope", "Controller", "CanisterStatusType", "SegmentCanisterSettings", "SegmentCanisterStatus", "SegmentStatus", "Result_2", "SetController", "CronJobStatusesConfig", "StatusesArgs", "SegmentsStatuses", "idlFactory", "IDL", "DeleteControllersArgs", "ControllerScope", "Controller", "DelSatelliteConfig", "DepositCyclesArgs", "GetAnalytics", "AnalyticKey", "PageViewDevice", "PageView", "AnalyticsBrowsersPageViews", "AnalyticsDevicesPageViews", "AnalyticsClientsPageViews", "CalendarDate", "AnalyticsMetricsPageViews", "AnalyticsTop10PageViews", "NavigationType", "WebVitalsMetric", "PerformanceData", "PerformanceMetricName", "PerformanceMetric", "AnalyticsWebVitalsPageMetrics", "AnalyticsWebVitalsPerformanceMetrics", "TrackEvent", "AnalyticsTrackEvents", "OrbiterSatelliteFeatures", "OrbiterSatelliteConfig", "MemorySize", "SetController", "SetControllersArgs", "SetPageView", "Result", "Result_1", "SetPerformanceMetric", "Result_2", "SetSatelliteConfig", "SetTrackEvent", "Result_3", "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", "ListOrderField", "ListOrder", "TimestampMatcher", "ListMatcher", "ListPaginate", "ListParams", "DeleteControllersArgs", "ControllerScope", "Controller", "DelDoc", "RulesType", "DelRule", "DepositCyclesArgs", "AssetKey", "AssetEncodingNoContent", "AssetNoContent", "AuthenticationConfigInternetIdentity", "AuthenticationConfig", "ConfigMaxMemorySize", "DbConfig", "StorageConfigIFrame", "StorageConfigRawAccess", "StorageConfigRedirect", "StorageConfig", "Config", "Doc", "Memory", "Permission", "RateConfig", "Rule", "HttpRequest", "StreamingCallbackToken", "StreamingStrategy", "HttpResponse", "StreamingCallbackHttpResponse", "InitAssetKey", "InitUploadResult", "ListResults", "CustomDomain", "ListResults_1", "MemorySize", "SetController", "SetControllersArgs", "SetDoc", "SetRule", "UploadChunk", "UploadChunkResult", "Actor", "HttpAgent", "nonNullish", "createActor", "canisterId", "idlFactory", "config", "rest", "agent", "useOrInitAgent", "initAgent", "identity", "fetch", "container", "localActor", "host", "getDeprecatedSatelliteActor", "satelliteId", "rest", "getActor", "idlFactory", "getSatelliteActor", "getDeprecatedSatelliteNoScopeActor", "getMissionControlActor", "missionControlId", "getOrbiterActor", "orbiterId", "canisterId", "isNullish", "createActor", "version", "missionControl", "getMissionControlActor", "getUser", "listControllers", "setSatellitesController", "satelliteIds", "controllerIds", "controller", "setMissionControlController", "Principal", "nonNullish", "toNullable", "mapSetControllerParams", "controllerId", "profile", "toSetController", "setSatellitesController", "controllerId", "profile", "rest", "mapSetControllerParams", "setMissionControlController", "listMissionControlControllers", "params", "listControllers", "Principal", "INSTALL_MODE_RESET", "INSTALL_MODE_UPGRADE", "fromNullable", "isNullish", "CanisterStatus", "ICManagementCanister", "Principal", "assertNonNullish", "installCode", "actor", "code", "agent", "useOrInitAgent", "ICManagementCanister", "storedChunks", "canisterId", "clearChunkStore", "uploadChunk", "chunk", "installChunkedCode", "canisterStatus", "canisterMetadata", "path", "rest", "assertNonNullish", "CanisterStatus", "Principal", "uint8ArrayToHexString", "bytes", "str", "byte", "digestSha256", "data", "sha256ToHex", "hashBuffer", "b", "blobSha256", "blob", "uint8ArraySha256", "isNullish", "nonNullish", "upgradeChunkedCode", "actor", "canisterId", "missionControlId", "wasmModule", "userPreClearChunks", "rest", "clearChunkStore", "wasmChunks", "wasmToChunks", "uploadChunks", "storedChunks", "preClearChunks", "postClearChunks", "prepareUpload", "chunkIds", "results", "batchUploadChunks", "installChunkedCode", "orderIdA", "orderIdB", "chunkHash", "uint8ArraySha256", "blob", "chunkSize", "orderId", "start", "chunk", "blobSha256", "stored", "existingStoredChunks", "hash", "uint8ArrayToHexString", "sha256", "existingStoredChunk", "storedSha256", "nonNullish", "isNullish", "limit", "i", "batch", "uploadChunkParams", "uploadChunk", "upgrade", "wasmModule", "rest", "assertExistingCode", "upgradeChunkedCode", "upgradeCode", "actor", "canisterId", "module_hash", "canisterStatus", "installedHash", "fromNullable", "isNullish", "newWasmModuleHash", "uint8ArraySha256", "existingWasmModuleHash", "uint8ArrayToHexString", "UpgradeCodeUnchangedError", "installCode", "import_candid", "encoreIDLUser", "user", "encodeIDLControllers", "controllers", "controller", "_", "upgradeMissionControl", "missionControl", "wasmModule", "preClearChunks", "user", "getUser", "missionControlId", "actor", "arg", "encoreIDLUser", "upgrade", "Principal", "INSTALL_MODE_UPGRADE", "missionControlVersion", "params", "version", "version", "orbiter", "getOrbiterActor", "listControllers", "memorySize", "memory_size", "listOrbiterControllers", "params", "listControllers", "orbiterMemorySize", "params", "memorySize", "Principal", "upgradeOrbiter", "orbiter", "missionControlId", "wasmModule", "reset", "preClearChunks", "orbiterId", "actor", "controllers", "listControllers", "arg", "encodeIDLControllers", "upgrade", "Principal", "INSTALL_MODE_RESET", "INSTALL_MODE_UPGRADE", "orbiterVersion", "params", "version", "major", "minor", "patch", "checkUpgradeVersion", "currentVersion", "selectedVersion", "currentMajor", "selectedMajor", "currentMinor", "selectedMinor", "currentPath", "selectedPath", "toNullable", "setStorageConfig", "config", "satellite", "set_storage_config", "getSatelliteActor", "setDatastoreConfig", "set_db_config", "setAuthConfig", "set_auth_config", "getAuthConfig", "satellite", "get_auth_config", "getSatelliteActor", "listRules", "type", "setRule", "collection", "rule", "set_rule", "version", "buildVersion", "build_version", "listDeprecatedControllers", "getDeprecatedSatelliteActor", "listDeprecatedNoScopeControllers", "getDeprecatedSatelliteNoScopeActor", "listControllers", "listCustomDomains", "list_custom_domains", "setCustomDomain", "domainName", "boundaryNodesId", "set_custom_domain", "toNullable", "memorySize", "memory_size", "countDocs", "count_collection_docs", "countAssets", "count_collection_assets", "deleteDocs", "del_docs", "deleteAssets", "del_assets", "setControllers", "args", "set_controllers", "countAssets", "params", "deleteAssets", "fromNullable", "isNullish", "nonNullish", "nonNullish", "toNullable", "toMaxMemorySize", "configMaxMemorySize", "setStorageConfig", "configHeaders", "configRewrites", "configRedirects", "configIFrame", "configRawAccess", "configMaxMemorySize", "satellite", "headers", "source", "rewrites", "destination", "redirects", "location", "code", "toMaxMemorySize", "setDatastoreConfig", "maxMemorySize", "rest", "setAuthConfig", "internetIdentity", "isNullish", "getAuthConfig", "config", "fromNullable", "nonNullish", "listSatelliteControllers", "deprecatedNoScope", "params", "listDeprecatedNoScopeControllers", "listControllers", "setSatelliteControllers", "setControllers", "countDocs", "params", "deleteDocs", "fromNullable", "nonNullish", "listCustomDomains", "satellite", "domain", "details", "domainVersion", "fromNullable", "nonNullish", "setCustomDomains", "domains", "domainName", "boundaryNodesId", "setCustomDomain", "satelliteMemorySize", "params", "memorySize", "fromNullable", "nonNullish", "toNullable", "DbRulesType", "StorageRulesType", "PermissionPublic", "PermissionPrivate", "PermissionManaged", "PermissionControllers", "MemoryHeap", "MemoryStable", "DEFAULT_RATE_CONFIG_TIME_PER_TOKEN_NS", "mapRuleType", "type", "StorageRulesType", "DbRulesType", "mapSetRule", "read", "write", "memory", "maxSize", "maxCapacity", "version", "mutablePermissions", "maxTokens", "permissionFromText", "nonNullish", "memoryFromText", "toNullable", "DEFAULT_RATE_CONFIG_TIME_PER_TOKEN_NS", "mapRule", "collection", "rule", "updated_at", "created_at", "max_size", "max_capacity", "mutable_permissions", "rate_config", "fromNullable", "ruleVersion", "permissionToText", "memoryToText", "MemoryHeap", "permission", "text", "PermissionPublic", "PermissionPrivate", "PermissionManaged", "PermissionControllers", "MemoryStable", "listRules", "type", "satellite", "mapRuleType", "rule", "mapRule", "setRule", "collection", "rest", "mapSetRule", "import_candid", "Principal", "isNullish", "upgradeSatellite", "satellite", "missionControlId", "wasmModule", "deprecated", "deprecatedNoScope", "reset", "preClearChunks", "satelliteId", "actor", "isNullish", "controllers", "listDeprecatedControllers", "arg", "upgrade", "Principal", "INSTALL_MODE_RESET", "INSTALL_MODE_UPGRADE", "listDeprecatedNoScopeControllers", "listControllers", "encodeIDLControllers", "nonNullish", "satelliteVersion", "params", "version", "satelliteBuildVersion", "buildVersion", "satelliteBuildType", "satelliteId", "rest", "status", "canisterMetadata", "nonNullish"]
7
7
  }