@junobuild/core-peer 1.0.0 → 1.0.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.
- package/dist/browser/index.js +1 -1
- package/dist/browser/index.js.map +3 -3
- package/dist/node/index.mjs +1 -1
- package/dist/node/index.mjs.map +3 -3
- package/dist/workers/_auth.worker.handler.js +2 -2
- package/dist/workers/_auth.worker.handler.js.map +1 -1
- package/dist/workers/auth.worker.js +2 -2
- package/dist/workers/auth.worker.js.map +1 -1
- package/package.json +1 -1
package/dist/node/index.mjs.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/index.ts", "../../src/services/auth-timout.services.ts", "../../src/stores/_store.ts", "../../src/stores/auth.store.ts", "../../src/utils/events.utils.ts", "../../src/services/auth.services.ts", "../../src/constants/auth.constants.ts", "../../src/providers/auth.providers.ts", "../../src/constants/container.constants.ts", "../../src/stores/env.store.ts", "../../src/utils/window.utils.ts", "../../../utils/src/utils/did.utils.ts", "../../../utils/src/utils/env.utils.ts", "../../src/stores/actor.store.ts", "../../src/stores/agent.store.ts", "../../src/stores/_agent.factory.ts", "../../src/types/errors.ts", "../../src/utils/auth.utils.ts", "../../src/services/_user.services.ts", "../../../errors/src/utils.ts", "../../../errors/src/constants/cdn.constants.ts", "../../../errors/src/constants/collections.constants.ts", "../../../errors/src/constants/satellite.constants.ts", "../../../errors/src/constants/shared.constants.ts", "../../src/api/doc.api.ts", "../../src/utils/data.utils.ts", "../../src/utils/doc.utils.ts", "../../src/utils/list.utils.ts", "../../src/api/actor.api.ts", "../../src/utils/env.utils.ts", "../../declarations/satellite/satellite.factory.did.js", "../../declarations/satellite/satellite.factory.certified.did.js", "../../src/constants/call-options.constants.ts", "../../src/services/_identity.services.ts", "../../src/services/doc.services.ts", "../../src/utils/window.env.utils.ts", "../../src/services/functions.services.ts", "../../src/services/storage.services.ts", "../../src/api/storage.api.ts", "../../../storage/src/api/storage.api.ts", "../../src/utils/crypto.utils.ts"],
|
|
4
|
-
"sourcesContent": ["import {assertNonNullish} from '@dfinity/utils';\nimport type {Asset, AssetEncoding, AssetKey, EncodingType, Storage} from '@junobuild/storage';\nimport {initAuthTimeoutWorker} from './services/auth-timout.services';\nimport {initAuth} from './services/auth.services';\nimport {AuthStore} from './stores/auth.store';\nimport {EnvStore} from './stores/env.store';\nimport type {User} from './types/auth';\nimport type {Environment, UserEnvironment} from './types/env';\nimport type {Unsubscribe} from './types/subscription';\nimport {envContainer, envSatelliteId} from './utils/window.env.utils';\nexport * from './providers/auth.providers';\nexport {getIdentityOnce, signIn, signOut, unsafeIdentity} from './services/auth.services';\nexport * from './services/doc.services';\nexport * from './services/functions.services';\nexport * from './services/storage.services';\nexport type * from './types/auth';\nexport type * from './types/doc';\nexport type * from './types/env';\nexport * from './types/errors';\nexport {ListOrder, ListPaginate, ListParams, ListResults} from './types/list';\nexport type * from './types/satellite';\nexport type * from './types/storage.types';\nexport type * from './types/subscription';\nexport type * from './types/utility';\nexport type {Asset, AssetEncoding, AssetKey, EncodingType, Storage};\n\nconst parseEnv = (userEnv?: UserEnvironment): Environment => {\n const satelliteId = userEnv?.satelliteId ?? envSatelliteId();\n\n assertNonNullish(satelliteId, 'Satellite ID is not configured. Juno cannot be initialized.');\n\n const container = userEnv?.container ?? envContainer();\n\n return {\n satelliteId,\n internetIdentityId: userEnv?.internetIdentityId,\n workers: userEnv?.workers,\n container\n };\n};\n\n/**\n * Initializes Juno with the provided optional environment parameters.\n * If no environment is provided, the variables injected by the Vite or NextJS plugins will be used.\n * @deprecated Use {@link initSatellite} instead.\n * @param {UserEnvironment} [userEnv] - The optional user environment configuration.\n * @returns {Promise<Unsubscribe[]>} A promise that resolves to an array of unsubscribe functions.\n */\nexport const initJuno = (userEnv?: UserEnvironment): Promise<Unsubscribe[]> =>\n initSatellite(userEnv);\n\n/**\n * Initializes a Juno satellite with the provided optional environment parameters.\n * If no environment is provided, the variables injected by the Vite or NextJS plugins will be used.\n * @param {UserEnvironment} [userEnv] - The optional user environment configuration.\n * @returns {Promise<Unsubscribe[]>} A promise that resolves to an array of unsubscribe functions.\n */\nexport const initSatellite = async (userEnv?: UserEnvironment): Promise<Unsubscribe[]> => {\n const env = parseEnv(userEnv);\n\n EnvStore.getInstance().set(env);\n\n await initAuth();\n\n const authSubscribe =\n env.workers?.auth !== undefined ? initAuthTimeoutWorker(env.workers.auth) : undefined;\n\n return [...(authSubscribe ? [authSubscribe] : [])];\n};\n\n/**\n * Subscribes to authentication state changes. i.e. each time a user signs in or signs out, the callback will be triggered.\n * @param {function(User | null): void} callback - The callback function to execute when the authentication state changes.\n * @returns {Unsubscribe} A function to unsubscribe from the authentication state changes.\n */\nexport const authSubscribe = (callback: (authUser: User | null) => void): Unsubscribe =>\n AuthStore.getInstance().subscribe(callback);\n", "import {isNullish} from '@dfinity/utils';\nimport {AuthStore} from '../stores/auth.store';\nimport type {User} from '../types/auth';\nimport type {EnvironmentWorker} from '../types/env';\nimport type {PostMessage, PostMessageDataResponseAuth} from '../types/post-message';\nimport type {Unsubscribe} from '../types/subscription';\nimport {emit} from '../utils/events.utils';\nimport {signOut} from './auth.services';\n\nexport const initAuthTimeoutWorker = (auth: EnvironmentWorker): Unsubscribe => {\n const workerUrl = auth === true ? './workers/auth.worker.js' : auth;\n const worker = new Worker(workerUrl);\n\n const timeoutSignOut = async () => {\n emit({message: 'junoSignOutAuthTimer'});\n await signOut();\n };\n\n worker.onmessage = async ({data}: MessageEvent<PostMessage<PostMessageDataResponseAuth>>) => {\n const {msg, data: value} = data;\n\n switch (msg) {\n case 'junoSignOutAuthTimer':\n await timeoutSignOut();\n return;\n case 'junoDelegationRemainingTime':\n emit({message: 'junoDelegationRemainingTime', detail: value?.authRemainingTime});\n return;\n }\n };\n\n return AuthStore.getInstance().subscribe((user: User | null) => {\n if (isNullish(user)) {\n worker.postMessage({msg: 'junoStopAuthTimer'});\n return;\n }\n\n worker.postMessage({msg: 'junoStartAuthTimer'});\n });\n};\n", "export abstract class Store<T> {\n private callbacks: {id: symbol; callback: (data: T | null) => void}[] = [];\n\n protected populate(data: T | null) {\n this.callbacks.forEach(({callback}: {id: symbol; callback: (data: T | null) => void}) =>\n callback(data)\n );\n }\n\n subscribe(callback: (data: T | null) => void): () => void {\n const callbackId = Symbol();\n this.callbacks.push({id: callbackId, callback});\n\n return () =>\n (this.callbacks = this.callbacks.filter(\n ({id}: {id: symbol; callback: (data: T | null) => void}) => id !== callbackId\n ));\n }\n}\n", "import type {User} from '../types/auth';\nimport type {Unsubscribe} from '../types/subscription';\nimport {Store} from './_store';\n\nexport class AuthStore extends Store<User | null> {\n private static instance: AuthStore;\n\n private authUser: User | null = null;\n\n private constructor() {\n super();\n }\n\n static getInstance() {\n if (!AuthStore.instance) {\n AuthStore.instance = new AuthStore();\n }\n return AuthStore.instance;\n }\n\n set(authUser: User | null) {\n this.authUser = authUser;\n\n this.populate(authUser);\n }\n\n get(): User | null {\n return this.authUser;\n }\n\n override subscribe(callback: (data: User | null) => void): Unsubscribe {\n const unsubscribe: () => void = super.subscribe(callback);\n\n callback(this.authUser);\n\n return unsubscribe;\n }\n\n reset() {\n this.authUser = null;\n\n this.populate(this.authUser);\n }\n}\n", "export const emit = <T>({message, detail}: {message: string; detail?: T | undefined}) => {\n const $event: CustomEvent<T> = new CustomEvent<T>(message, {detail, bubbles: true});\n document.dispatchEvent($event);\n};\n", "import type {Identity} from '@dfinity/agent';\nimport {type AuthClient, ERROR_USER_INTERRUPT} from '@dfinity/auth-client';\nimport {isNullish} from '@dfinity/utils';\nimport {\n ALLOW_PIN_AUTHENTICATION,\n DELEGATION_IDENTITY_EXPIRATION\n} from '../constants/auth.constants';\nimport {InternetIdentityProvider} from '../providers/auth.providers';\nimport {ActorStore} from '../stores/actor.store';\nimport {AgentStore} from '../stores/agent.store';\nimport {AuthStore} from '../stores/auth.store';\nimport type {Provider, SignInOptions} from '../types/auth';\nimport {SignInError, SignInInitError, SignInUserInterruptError} from '../types/errors';\nimport {createAuthClient} from '../utils/auth.utils';\nimport {initUser} from './_user.services';\n\nlet authClient: AuthClient | undefined | null;\n\nexport const initAuth = async (provider?: Provider) => {\n authClient = authClient ?? (await createAuthClient());\n\n const isAuthenticated: boolean = (await authClient?.isAuthenticated()) ?? false;\n\n if (!isAuthenticated) {\n return;\n }\n\n const user = await initUser(provider);\n AuthStore.getInstance().set(user);\n};\n\n/**\n * Signs in a user with the specified options.\n *\n * @param {SignInOptions} [options] - The options for signing in.\n * @returns {Promise<void>} A promise that resolves when the sign-in process is complete and the authenticated user is initialized.\n * @throws {SignInError} If the sign-in process fails or no authentication client is available.\n */\nexport const signIn = (options?: SignInOptions): Promise<void> =>\n /* eslint-disable no-async-promise-executor */\n new Promise<void>(async (resolve, reject) => {\n if (isNullish(authClient)) {\n reject(\n new SignInInitError(\n 'No client is ready to perform a sign-in. Have you initialized the Satellite?'\n )\n );\n return;\n }\n\n const provider = options?.provider ?? new InternetIdentityProvider({});\n\n await authClient.login({\n onSuccess: async () => {\n await initAuth(provider.id);\n resolve();\n },\n onError: (error?: string) => {\n if (error === ERROR_USER_INTERRUPT) {\n reject(new SignInUserInterruptError(error));\n return;\n }\n\n reject(new SignInError(error));\n },\n maxTimeToLive: options?.maxTimeToLive ?? DELEGATION_IDENTITY_EXPIRATION,\n allowPinAuthentication: options?.allowPin ?? ALLOW_PIN_AUTHENTICATION,\n ...(options?.derivationOrigin !== undefined && {derivationOrigin: options.derivationOrigin}),\n ...provider.signInOptions({\n windowed: options?.windowed\n })\n });\n });\n\n/**\n * Signs out the current user.\n * @returns {Promise<void>} A promise that resolves when the sign-out process is complete.\n */\nexport const signOut = async (): Promise<void> => {\n await resetAuth();\n\n // Recreate an HttpClient immediately because next sign-in, if window is not reloaded, would fail if the agent is created within the process.\n // For example, Safari blocks the Internet Identity (II) window if the agent is created during the interaction.\n // Agent-js must be created either globally or at least before performing a sign-in.\n authClient = await createAuthClient();\n};\n\n/**\n * \u2139\uFE0F Exposed for testing purpose only. Should not be leaked to consumer or used by the library.\n */\nexport const resetAuth = async () => {\n await authClient?.logout();\n\n // Reset local object otherwise next sign in (sign in - sign out - sign in) might not work out - i.e. agent-js might not recreate the delegation or identity if not resetted\n // Technically we do not need this since we recreate the agent below. We just keep it to make the reset explicit.\n authClient = null;\n\n AuthStore.getInstance().reset();\n\n ActorStore.getInstance().reset();\n AgentStore.getInstance().reset();\n};\n\nexport const getIdentity = (): Identity | undefined => authClient?.getIdentity();\n\n/**\n * Returns the identity of a signed-in user or an anonymous identity.\n * This function is useful for loading an identity in web workers.\n * Used to imperatively get the identity. Please be certain before using it.\n * @returns {Promise<Identity>} A promise that resolves to the identity of the user or an anonymous identity.\n */\nexport const unsafeIdentity = async (): Promise<Identity> =>\n (authClient ?? (await createAuthClient())).getIdentity();\n\n/**\n * Returns the current identity if the user is authenticated.\n *\n * \u26A0\uFE0F Use this function imperatively only. Do **not** persist the identity in global state.\n * It is intended for short-lived or one-time operations.\n *\n * Typical use case is to enable developers to implement custom features for the Internet Computer:\n * - Passing the identity to temporarily create an actor or agent to call a canister\n * - Signing a message or making a one-time authenticated call\n *\n * @returns The authenticated identity, or null if unavailable.\n */\nexport const getIdentityOnce = async (): Promise<Identity | null> => {\n const user = AuthStore.getInstance().get();\n\n if (isNullish(user)) {\n return null;\n }\n\n const authenticated = (await authClient?.isAuthenticated()) ?? false;\n\n if (!authenticated) {\n return null;\n }\n\n return authClient?.getIdentity() ?? null;\n};\n", "// How long the delegation identity should remain valid?\n// e.g. BigInt(7 * 24 * 60 * 60 * 1000 * 1000 * 1000) = 7 days in nanoseconds\n// For Juno: 4 hours\nexport const DELEGATION_IDENTITY_EXPIRATION = BigInt(4 * 60 * 60 * 1000 * 1000 * 1000);\n\n// We consider PIN authentication as \"insecure\" because users can easily lose their PIN if they do not register a passphrase, especially since Safari clears the browser cache every two weeks in cases of inactivity.\n// That's why we disable it by default.\nexport const ALLOW_PIN_AUTHENTICATION = false;\n\nexport const II_POPUP: {width: number; height: number} = {width: 576, height: 576};\nexport const NFID_POPUP: {width: number; height: number} = {width: 505, height: 705};\n\nexport const INTERNET_COMPUTER_ORG = 'internetcomputer.org';\n\n// Worker\nexport const AUTH_TIMER_INTERVAL = 1000;\n", "import {isNullish, nonNullish} from '@dfinity/utils';\nimport {II_POPUP, INTERNET_COMPUTER_ORG, NFID_POPUP} from '../constants/auth.constants';\nimport {DOCKER_CONTAINER_URL, DOCKER_INTERNET_IDENTITY_ID} from '../constants/container.constants';\nimport {EnvStore} from '../stores/env.store';\nimport type {\n InternetIdentityConfig,\n InternetIdentityDomain,\n NFIDConfig,\n Provider,\n SignInOptions\n} from '../types/auth';\nimport {popupCenter} from '../utils/window.utils';\n\n/**\n * Options for signing in with an authentication provider.\n * @interface AuthProviderSignInOptions\n */\nexport interface AuthProviderSignInOptions {\n /**\n * The URL of the identity provider - commonly Internet Identity.\n */\n identityProvider: string;\n /**\n * Optional features for the window opener.\n */\n windowOpenerFeatures?: string;\n}\n\n/**\n * Common traits for all authentication providers\n * @interface AuthProvider\n */\nexport interface AuthProvider {\n /**\n * The unique identifier of the provider.\n */\n readonly id: Provider;\n /**\n * Method to get the sign-in options for the provider.\n * @param options - The sign-in options.\n * @returns The sign-in options for the provider that can be use to effectively perform a sign-in.\n */\n signInOptions: (options: Pick<SignInOptions, 'windowed'>) => AuthProviderSignInOptions;\n}\n\n/**\n * Internet Identity authentication provider.\n * @class InternetIdentityProvider\n * @implements {AuthProvider}\n */\nexport class InternetIdentityProvider implements AuthProvider {\n #domain?: InternetIdentityDomain;\n\n /**\n * Creates an instance of InternetIdentityProvider.\n * @param {InternetIdentityConfig} config - The configuration for Internet Identity.\n */\n constructor({domain}: InternetIdentityConfig) {\n this.#domain = domain;\n }\n\n /**\n * Gets the identifier of the provider.\n * @returns {Provider} The identifier of the provider - `internet_identity`.\n */\n get id(): Provider {\n return 'internet_identity';\n }\n\n /**\n * Gets the sign-in options for Internet Identity.\n * @param {Pick<SignInOptions, 'windowed'>} options - The sign-in options.\n * @returns {AuthProviderSignInOptions} The sign-in options for Internet Identity.\n */\n signInOptions({windowed}: Pick<SignInOptions, 'windowed'>): AuthProviderSignInOptions {\n const identityProviderUrl = (): string => {\n const container = EnvStore.getInstance().get()?.container;\n\n // Production\n if (isNullish(container) || container === false) {\n return `https://identity.${this.#domain ?? INTERNET_COMPUTER_ORG}`;\n }\n\n const env = EnvStore.getInstance().get();\n\n const internetIdentityId =\n nonNullish(env) && nonNullish(env?.internetIdentityId)\n ? env.internetIdentityId\n : DOCKER_INTERNET_IDENTITY_ID;\n\n const {host: containerHost, protocol} = new URL(\n container === true ? DOCKER_CONTAINER_URL : container\n );\n\n return /apple/i.test(navigator?.vendor)\n ? `${protocol}//${containerHost}?canisterId=${internetIdentityId}`\n : `${protocol}//${internetIdentityId}.${containerHost.replace('127.0.0.1', 'localhost')}`;\n };\n\n return {\n ...(windowed !== false && {\n windowOpenerFeatures: popupCenter(II_POPUP)\n }),\n identityProvider: identityProviderUrl()\n };\n }\n}\n\n/**\n * NFID authentication provider.\n * @class NFIDProvider\n * @implements {AuthProvider}\n */\nexport class NFIDProvider implements AuthProvider {\n #appName: string;\n #logoUrl: string;\n\n /**\n * Creates an instance of NFIDProvider.\n * @param {NFIDConfig} config - The configuration for NFID.\n */\n constructor({appName, logoUrl}: NFIDConfig) {\n this.#appName = appName;\n this.#logoUrl = logoUrl;\n }\n\n /**\n * Gets the identifier of the provider.\n * @returns {Provider} The identifier of the provider- nfid.\n */\n get id(): Provider {\n return 'nfid';\n }\n\n /**\n * Gets the sign-in options for NFID.\n * @param {Pick<SignInOptions, 'windowed'>} options - The sign-in options.\n * @returns {AuthProviderSignInOptions} The sign-in options to effectively sign-in with NFID.\n */\n signInOptions({windowed}: Pick<SignInOptions, 'windowed'>): AuthProviderSignInOptions {\n return {\n ...(windowed !== false && {\n windowOpenerFeatures: popupCenter(NFID_POPUP)\n }),\n identityProvider: `https://nfid.one/authenticate/?applicationName=${encodeURI(\n this.#appName\n )}&applicationLogo=${encodeURI(this.#logoUrl)}`\n };\n }\n}\n", "export const DOCKER_CONTAINER_URL = 'http://127.0.0.1:5987';\nexport const DOCKER_INTERNET_IDENTITY_ID = 'rdmx6-jaaaa-aaaaa-aaadq-cai';\n", "import type {Environment} from '../types/env';\nimport {Store} from './_store';\n\nexport class EnvStore extends Store<Environment | undefined> {\n private static instance: EnvStore;\n\n private env: Environment | undefined | null;\n\n private constructor() {\n super();\n }\n\n static getInstance() {\n if (!EnvStore.instance) {\n EnvStore.instance = new EnvStore();\n }\n return EnvStore.instance;\n }\n\n set(env: Environment | undefined) {\n this.env = env;\n\n this.populate(env);\n }\n\n get(): Environment | undefined | null {\n return this.env;\n }\n\n reset() {\n this.env = null;\n }\n\n override subscribe(callback: (data: Environment | null | undefined) => void): () => void {\n const unsubscribe: () => void = super.subscribe(callback);\n\n callback(this.env);\n\n return unsubscribe;\n }\n}\n", "import {isNullish} from '@dfinity/utils';\nimport {isBrowser} from '@junobuild/utils';\n\nexport const popupCenter = ({\n width,\n height\n}: {\n width: number;\n height: number;\n}): string | undefined => {\n if (!isBrowser()) {\n return undefined;\n }\n\n if (isNullish(window) || isNullish(window.top)) {\n return undefined;\n }\n\n const {\n top: {innerWidth, innerHeight}\n } = window;\n\n const y = innerHeight / 2 + screenY - height / 2;\n const x = innerWidth / 2 + screenX - width / 2;\n\n return `toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=no, copyhistory=no, width=${width}, height=${height}, top=${y}, left=${x}`;\n};\n", "import {jsonReplacer, jsonReviver} from '@dfinity/utils';\n\n/**\n * Converts data to a Uint8Array for transmission or storage.\n * @template T\n * @param {T} data - The data to convert.\n * @returns {Promise<Uint8Array>} A promise that resolves to a Uint8Array representation of the data.\n */\nexport const toArray = async <T>(data: T): Promise<Uint8Array> => {\n const blob: Blob = new Blob([JSON.stringify(data, jsonReplacer)], {\n type: 'application/json; charset=utf-8'\n });\n return new Uint8Array(await blob.arrayBuffer());\n};\n\n/**\n * Converts a Uint8Array or number array back to the original data type.\n * @template T\n * @param {(Uint8Array | number[])} data - The array to convert.\n * @returns {Promise<T>} A promise that resolves to the original data.\n */\nexport const fromArray = async <T>(data: Uint8Array | number[]): Promise<T> => {\n const blob: Blob = new Blob([data instanceof Uint8Array ? data : new Uint8Array(data)], {\n type: 'application/json; charset=utf-8'\n });\n return JSON.parse(await blob.text(), jsonReviver);\n};\n", "/**\n * Checks if the current environment is a browser.\n * @returns {boolean} True if the current environment is a browser, false otherwise.\n */\nexport const isBrowser = (): boolean => typeof window !== `undefined`;\n", "import {Actor, type ActorSubclass} from '@dfinity/agent';\nimport type {ActorMethod} from '@dfinity/agent/lib/esm/actor';\nimport type {IDL} from '@dfinity/candid';\nimport {isNullish} from '@dfinity/utils';\nimport type {ActorKey} from '../types/actor';\nimport type {SatelliteContext} from '../types/satellite';\nimport {AgentStore} from './agent.store';\n\ntype ActorParams = {\n idlFactory: IDL.InterfaceFactory;\n} & Required<Pick<SatelliteContext, 'satelliteId' | 'identity'>> &\n Pick<SatelliteContext, 'container'>;\n\ntype ActorRecord = Record<string, ActorMethod>;\n\nexport class ActorStore {\n private static instance: ActorStore;\n\n #actors: Record<string, ActorSubclass<ActorRecord>> | undefined | null = undefined;\n\n private constructor() {}\n\n static getInstance() {\n if (isNullish(ActorStore.instance)) {\n ActorStore.instance = new ActorStore();\n }\n return ActorStore.instance;\n }\n\n async getActor<T = ActorRecord>({\n satelliteId,\n identity,\n actorKey,\n ...rest\n }: ActorParams & {actorKey: ActorKey}): Promise<ActorSubclass<T>> {\n const key = `${actorKey}#${identity.getPrincipal().toText()}#${satelliteId};`;\n\n if (isNullish(this.#actors) || isNullish(this.#actors[key])) {\n const actor = await this.createActor({satelliteId, identity, ...rest});\n\n this.#actors = {\n ...(this.#actors ?? {}),\n [key]: actor\n };\n\n return actor as ActorSubclass<T>;\n }\n\n return this.#actors[key] as ActorSubclass<T>;\n }\n\n reset() {\n this.#actors = null;\n }\n\n private async createActor<T = ActorRecord>({\n idlFactory,\n satelliteId: canisterId,\n ...rest\n }: ActorParams): Promise<ActorSubclass<T>> {\n const agent = await AgentStore.getInstance().getAgent(rest);\n\n return Actor.createActor(idlFactory, {\n agent,\n canisterId\n });\n }\n}\n", "import type {Agent, HttpAgent} from '@dfinity/agent';\nimport {isNullish} from '@dfinity/utils';\nimport {type CreateAgentParams, createAgent} from './_agent.factory';\n\nexport class AgentStore {\n private static instance: AgentStore;\n\n #agents: Record<string, HttpAgent> | undefined | null = undefined;\n\n private constructor() {}\n\n static getInstance() {\n if (isNullish(AgentStore.instance)) {\n AgentStore.instance = new AgentStore();\n }\n return AgentStore.instance;\n }\n\n async getAgent({identity, ...rest}: CreateAgentParams): Promise<Agent> {\n const key = identity.getPrincipal().toText();\n\n if (isNullish(this.#agents) || isNullish(this.#agents[key])) {\n const agent = await createAgent({identity, ...rest});\n\n this.#agents = {\n ...(this.#agents ?? {}),\n [key]: agent\n };\n\n return agent;\n }\n\n return this.#agents[key];\n }\n\n reset() {\n this.#agents = null;\n }\n}\n", "import {HttpAgent} from '@dfinity/agent';\nimport {nonNullish} from '@dfinity/utils';\nimport {DOCKER_CONTAINER_URL} from '../constants/container.constants';\nimport type {SatelliteContext} from '../types/satellite';\n\nexport type CreateAgentParams = Required<Pick<SatelliteContext, 'identity'>> &\n Pick<SatelliteContext, 'container'>;\n\nexport const createAgent = async ({identity, container}: CreateAgentParams): Promise<HttpAgent> => {\n const localActor = nonNullish(container) && container !== false;\n\n const host = localActor\n ? container === true\n ? DOCKER_CONTAINER_URL\n : container\n : 'https://icp-api.io';\n\n const shouldFetchRootKey = nonNullish(container);\n\n return await HttpAgent.create({\n identity,\n shouldFetchRootKey,\n host\n });\n};\n", "export class SignInError extends Error {}\nexport class SignInInitError extends Error {}\nexport class SignInUserInterruptError extends Error {}\n\nexport class InitError extends Error {}\n\nexport class ListError extends Error {}\n", "import {AuthClient} from '@dfinity/auth-client';\n\nexport const createAuthClient = (): Promise<AuthClient> =>\n AuthClient.create({\n idleOptions: {\n disableIdle: true,\n disableDefaultIdleCallback: true\n }\n });\n", "import type {Identity} from '@dfinity/agent';\nimport {isNullish, nonNullish} from '@dfinity/utils';\nimport {isSatelliteError, JUNO_DATASTORE_ERROR_USER_CANNOT_UPDATE} from '@junobuild/errors';\nimport type {Provider, User, UserData} from '../types/auth';\nimport {InitError} from '../types/errors';\nimport {getIdentity} from './auth.services';\nimport {getDoc, setDoc} from './doc.services';\n\nexport const initUser = async (provider?: Provider): Promise<User> => {\n const identity: Identity | undefined = getIdentity();\n\n if (isNullish(identity)) {\n throw new InitError('No identity to initialize the user. Have you initialized Juno?');\n }\n\n const userId = identity.getPrincipal().toText();\n\n const loadUser = (): Promise<User | undefined> =>\n getDoc<UserData>({\n collection: `#user`,\n key: userId\n });\n\n const user = await loadUser();\n\n if (nonNullish(user)) {\n return user;\n }\n\n try {\n return await createUser({userId, provider});\n } catch (error: unknown) {\n // When a user signs in for the first time and get user returns `undefined`,\n // a new user entry is created. If the browser is reloaded and get user\n // still returns `undefined`, another try is made to create user entry, which is not\n // allowed since only the controller can update users, assuming the entry has been\n // created in the meantime. To prevent errors, we reload the user data,\n // as the issue indicates the user entity exists.\n if (isSatelliteError({error, type: JUNO_DATASTORE_ERROR_USER_CANNOT_UPDATE})) {\n const userOnCreateError = await loadUser();\n\n if (nonNullish(userOnCreateError)) {\n return userOnCreateError;\n }\n }\n\n throw error;\n }\n};\n\nconst createUser = ({\n userId,\n ...rest\n}: {\n userId: string;\n} & UserData): Promise<User> =>\n setDoc<UserData>({\n collection: `#user`,\n doc: {\n key: userId,\n data: rest\n }\n });\n", "export const isSatelliteError = ({error, type}: {error: unknown; type: string}): boolean => {\n if (typeof error === 'string') {\n return error.includes(type);\n }\n\n if (error instanceof Error) {\n return error.message.includes(type);\n }\n\n return false;\n};\n", "export const JUNO_CDN_PROPOSALS_ERROR_CANNOT_SUBMIT = 'juno.cdn.proposals.error.cannot_submit';\nexport const JUNO_CDN_PROPOSALS_ERROR_CANNOT_SUBMIT_INVALID_STATUS =\n 'juno.cdn.proposals.error.cannot_submit_invalid_status';\n\nexport const JUNO_CDN_PROPOSALS_ERROR_CANNOT_REJECT = 'juno.cdn.proposals.error.cannot_reject';\nexport const JUNO_CDN_PROPOSALS_ERROR_CANNOT_REJECT_INVALID_STATUS =\n 'juno.cdn.proposals.error.cannot_reject_invalid_status';\n\nexport const JUNO_CDN_PROPOSALS_ERROR_CANNOT_COMMIT = 'juno.cdn.proposals.error.cannot_commit';\nexport const JUNO_CDN_PROPOSALS_ERROR_CANNOT_COMMIT_INVALID_STATUS =\n 'juno.cdn.proposals.error.cannot_commit_invalid_status';\n\nexport const JUNO_CDN_PROPOSALS_ERROR_INVALID_HASH = 'juno.cdn.proposals.error.invalid_hash';\n\nexport const JUNO_CDN_PROPOSALS_ERROR_UNKNOWN_TYPE = 'juno.cdn.proposals.error.unknown_type';\n\nexport const JUNO_CDN_PROPOSALS_ERROR_EMPTY_CONTENT_CHUNKS =\n 'juno.cdn.proposals.error.empty_content_chunks';\nexport const JUNO_CDN_PROPOSALS_ERROR_NOT_CONTENT_CHUNKS_AT_INDEX =\n 'juno.cdn.proposals.error.no_content_chunks_at_index';\n\nexport const JUNO_CDN_PROPOSALS_ERROR_EMPTY_ASSETS = 'juno.cdn.proposals.error.empty_assets';\nexport const JUNO_CDN_PROPOSALS_ERROR_CANNOT_DELETE_ASSETS =\n 'juno.cdn.proposals.error.cannot_delete_assets';\nexport const JUNO_CDN_PROPOSALS_ERROR_CANNOT_DELETE_ASSETS_INVALID_STATUS =\n 'juno.cdn.proposals.error.cannot_delete_assets_invalid_status';\n\nexport const JUNO_CDN_PROPOSALS_ERROR_NEXT_ID_CONVERT = 'juno.cdn.proposals.error.next_id_convert';\nexport const JUNO_CDN_PROPOSALS_ERROR_NEXT_ID_OVERFLOW =\n 'juno.cdn.proposals.error.next_id_overflow';\n\nexport const JUNO_CDN_STORAGE_ERROR_CANNOT_INSERT_ASSET_UNKNOWN_REFERENCE_ID =\n 'juno.cdn.storage.error.cannot_insert_asset_unknown_reference_id';\nexport const JUNO_CDN_STORAGE_ERROR_CANNOT_GET_ASSET_UNKNOWN_REFERENCE_ID =\n 'juno.cdn.storage.error.cannot_get_asset_unknown_reference_id';\nexport const JUNO_CDN_STORAGE_ERROR_CANNOT_INSERT_ASSET_ENCODING_UNKNOWN_REFERENCE_ID =\n 'juno.cdn.storage.error.cannot_insert_asset_encoding_unknown_reference_id';\n\nexport const JUNO_CDN_STORAGE_ERROR_NO_PROPOSAL_FOUND = 'juno.cdn.storage.error.no_proposal_found';\n\nexport const JUNO_CDN_STORAGE_ERROR_INVALID_RELEASES_PATH =\n 'juno.cdn.storage.error.invalid_releases_path';\n\nexport const JUNO_CDN_STORAGE_ERROR_MISSING_RELEASES_DESCRIPTION =\n 'juno.cdn.storage.error.missing_releases_description';\n\nexport const JUNO_CDN_STORAGE_ERROR_INVALID_RELEASES_DESCRIPTION =\n 'juno.cdn.storage.error.invalid_releases_description';\n\nexport const JUNO_CDN_STORAGE_ERROR_INVALID_COLLECTION =\n 'juno.cdn.storage.error.invalid_collection';\n", "export const JUNO_COLLECTIONS_ERROR_MODIFY_RESERVED_COLLECTION =\n 'juno.collections.error.modify_reserved_collection';\nexport const JUNO_COLLECTIONS_ERROR_RESERVED_NAME = 'juno.collections.error.reserved_name';\nexport const JUNO_COLLECTIONS_ERROR_RESERVED_COLLECTION =\n 'juno.collections.error.reserved_collection';\nexport const JUNO_COLLECTIONS_ERROR_RATE_CONFIG_ENABLED =\n 'juno.collections.error.rate_config_enabled';\nexport const JUNO_COLLECTIONS_ERROR_DELETE_PREFIX_RESERVED =\n 'juno.collections.error.prefix_deletion';\nexport const JUNO_COLLECTIONS_ERROR_COLLECTION_NOT_EMPTY = 'juno.collections.error.not_empty';\nexport const JUNO_COLLECTIONS_ERROR_COLLECTION_NOT_FOUND = 'juno.collections.error.not_found';\nexport const JUNO_COLLECTIONS_ERROR_PREFIX_RESERVED = 'juno.collections.error.prefix_reserved';\n", "export const JUNO_ERROR_NO_TIMESTAMP_PROVIDED = 'juno.error.no_timestamp_provided';\nexport const JUNO_ERROR_TIMESTAMP_OUTDATED_OR_FUTURE = 'juno.error.timestamp_outdated_or_future';\nexport const JUNO_ERROR_NO_VERSION_PROVIDED = 'juno.error.no_version_provided';\nexport const JUNO_ERROR_VERSION_OUTDATED_OR_FUTURE = 'juno.error.version_outdated_or_future';\n\nexport const JUNO_DATASTORE_ERROR_CANNOT_WRITE = 'juno.datastore.error.cannot_write';\nexport const JUNO_DATASTORE_ERROR_CANNOT_READ = 'juno.datastore.error.cannot_read';\n\nexport const JUNO_STORAGE_ERROR_UPLOAD_NOT_ALLOWED = 'juno.storage.error.upload_not_allowed';\nexport const JUNO_STORAGE_ERROR_SET_NOT_ALLOWED = 'juno.storage.error.set_not_allowed';\nexport const JUNO_STORAGE_ERROR_CANNOT_COMMIT_INVALID_COLLECTION =\n 'juno.storage.error.cannot_commit_invalid_collection';\nexport const JUNO_STORAGE_ERROR_CANNOT_COMMIT_BATCH = 'juno.storage.error.cannot_commit_batch';\nexport const JUNO_STORAGE_ERROR_ASSET_NOT_FOUND = 'juno.storage.error.asset_not_found';\nexport const JUNO_STORAGE_ERROR_CANNOT_READ_ASSET = 'juno.storage.error.cannot_read_asset';\nexport const JUNO_STORAGE_ERROR_UPLOAD_PATH_COLLECTION_PREFIX =\n 'juno.storage.error.upload_path_collection_prefix';\nexport const JUNO_STORAGE_ERROR_RESERVED_ASSET = 'juno.storage.error.reserved_asset';\nexport const JUNO_STORAGE_ERROR_BATCH_NOT_FOUND = 'juno.storage.error.batch_not_found';\nexport const JUNO_STORAGE_ERROR_CHUNK_NOT_FOUND = 'juno.storage.error.chunk_not_found';\nexport const JUNO_STORAGE_ERROR_CHUNK_NOT_INCLUDED_IN_BATCH =\n 'juno.storage.error.chunk_not_included_in_batch';\nexport const JUNO_STORAGE_ERROR_CHUNK_TO_COMMIT_NOT_FOUND =\n 'juno.storage.error.chunk_to_commit_not_found';\nexport const JUNO_STORAGE_ERROR_ASSET_MAX_ALLOWED_SIZE =\n 'juno.storage.error.asset_max_allowed_size';\n\nexport const JUNO_AUTH_ERROR_NOT_ADMIN_CONTROLLER = 'juno.auth.error.not_admin_controller';\nexport const JUNO_AUTH_ERROR_INVALID_ORIGIN = 'juno.auth.error.invalid_origin';\nexport const JUNO_AUTH_ERROR_NOT_WRITE_CONTROLLER = 'juno.auth.error.not_write_controller';\nexport const JUNO_AUTH_ERROR_NOT_CONTROLLER = 'juno.auth.error.not_controller';\n\nexport const JUNO_DATASTORE_ERROR_USER_CANNOT_UPDATE = 'juno.datastore.error.user.cannot_update';\nexport const JUNO_DATASTORE_ERROR_USER_INVALID_DATA = 'juno.datastore.error.user.invalid_data';\nexport const JUNO_DATASTORE_ERROR_USER_CALLER_KEY = 'juno.datastore.error.user.caller_key';\nexport const JUNO_DATASTORE_ERROR_USER_KEY_NO_PRINCIPAL =\n 'juno.datastore.error.user.key_no_principal';\nexport const JUNO_DATASTORE_ERROR_USER_NOT_ALLOWED = 'juno.datastore.error.user.not_allowed';\nexport const JUNO_DATASTORE_ERROR_USER_USAGE_CHANGE_LIMIT_REACHED =\n 'juno.datastore.error.user.usage.change_limit_reached';\nexport const JUNO_DATASTORE_ERROR_USER_USAGE_INVALID_DATA =\n 'juno.datastore.error.user.usage.invalid_data';\n", "export const JUNO_ERROR_CONTROLLERS_MAX_NUMBER = 'juno.error.controllers.max_number';\nexport const JUNO_ERROR_CONTROLLERS_ANONYMOUS_NOT_ALLOWED =\n 'juno.error.controllers.anonymous_not_allowed';\nexport const JUNO_ERROR_CONTROLLERS_REVOKED_NOT_ALLOWED =\n 'juno.error.controllers.revoked_not_allowed';\n\nexport const JUNO_ERROR_MEMORY_STABLE_EXCEEDED = 'juno.error.memory.stable_exceeded';\nexport const JUNO_ERROR_MEMORY_HEAP_EXCEEDED = 'juno.error.memory.heap_exceeded';\n\nexport const JUNO_ERROR_CYCLES_DEPOSIT_BALANCE_LOW = 'juno.error.cycles.deposit_balance_low';\nexport const JUNO_ERROR_CYCLES_DEPOSIT_FAILED = 'juno.error.cycles.deposit_failed';\n\nexport const JUNO_ERROR_CANISTER_CREATE_FAILED = 'juno.error.canister.create_failed';\nexport const JUNO_ERROR_CANISTER_INSTALL_CODE_FAILED = 'juno.error.canister.install_code_failed';\n\nexport const JUNO_ERROR_SEGMENT_STOP_FAILED = 'juno.error.segment.stop_failed';\nexport const JUNO_ERROR_SEGMENT_DELETE_FAILED = 'juno.error.segment.delete_failed';\n\nexport const JUNO_ERROR_CMC_CALL_LEDGER_FAILED = 'juno.error.cmc.call_ledger_failed';\nexport const JUNO_ERROR_CMC_LEDGER_TRANSFER_FAILED = 'juno.error.cmc.ledger_transfer_failed';\nexport const JUNO_ERROR_CMC_TOP_UP_FAILED = 'juno.error.cmc.top_up_failed';\nexport const JUNO_ERROR_CMC_CALL_CREATE_CANISTER_FAILED =\n 'juno.error.cmc.call_create_canister_failed';\nexport const JUNO_ERROR_CMC_CREATE_CANISTER_FAILED = 'juno.error.cmc.create_canister_failed';\nexport const JUNO_ERROR_CMC_INSTALL_CODE_FAILED = 'juno.error.cmc.install_code_failed';\n\nexport const JUNO_ERROR_INVALID_REGEX = 'juno.error.invalid_regex';\n", "import {fromNullable, isNullish, nonNullish} from '@dfinity/utils';\nimport type {DelDoc, SetDoc} from '../../declarations/satellite/satellite.did';\nimport type {ActorReadParams, ActorUpdateParams} from '../types/actor';\nimport type {Doc} from '../types/doc';\nimport type {ListParams, ListResults} from '../types/list';\nimport type {ExcludeDate} from '../types/utility';\nimport {mapData} from '../utils/data.utils';\nimport {fromDoc, toDelDoc, toSetDoc} from '../utils/doc.utils';\nimport {toListParams} from '../utils/list.utils';\nimport {getSatelliteActor} from './actor.api';\n\nexport const getDoc = async <D>({\n collection,\n key,\n ...rest\n}: {\n collection: string;\n} & ActorReadParams &\n Pick<Doc<D>, 'key'>): Promise<Doc<D> | undefined> => {\n const {get_doc} = await getSatelliteActor(rest);\n\n const doc = fromNullable(await get_doc(collection, key));\n\n if (isNullish(doc)) {\n return undefined;\n }\n\n return fromDoc({doc, key});\n};\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nexport const getManyDocs = async ({\n docs,\n ...rest\n}: {\n docs: ({collection: string} & Pick<Doc<any>, 'key'>)[];\n} & ActorReadParams): Promise<(Doc<any> | undefined)[]> => {\n const {get_many_docs} = await getSatelliteActor(rest);\n\n const payload: [string, string][] = docs.map(({collection, key}) => [collection, key]);\n\n const resultsDocs = await get_many_docs(payload);\n\n const results: (Doc<any> | undefined)[] = [];\n for (const [key, resultDoc] of resultsDocs) {\n const doc = fromNullable(resultDoc);\n results.push(nonNullish(doc) ? await fromDoc({key, doc}) : undefined);\n }\n\n return results;\n};\n/* eslint-enable */\n\nexport const setDoc = async <D>({\n collection,\n doc,\n ...rest\n}: {\n collection: string;\n doc: Doc<D>;\n} & ActorUpdateParams): Promise<Doc<D>> => {\n const {set_doc} = await getSatelliteActor(rest);\n\n const {key} = doc;\n\n const setDoc = await toSetDoc(doc);\n\n const updatedDoc = await set_doc(collection, key, setDoc);\n\n return await fromDoc({key, doc: updatedDoc});\n};\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nexport const setManyDocs = async ({\n docs,\n ...rest\n}: {\n docs: {collection: string; doc: Doc<any>}[];\n} & ActorUpdateParams): Promise<Doc<any>[]> => {\n const {set_many_docs} = await getSatelliteActor(rest);\n\n const payload: [string, string, SetDoc][] = [];\n for (const {collection, doc} of docs) {\n const {key} = doc;\n payload.push([collection, key, await toSetDoc(doc)]);\n }\n\n const updatedDocs = await set_many_docs(payload);\n\n const results: Doc<any>[] = [];\n for (const [key, updatedDoc] of updatedDocs) {\n results.push(await fromDoc({key, doc: updatedDoc}));\n }\n\n return results;\n};\n/* eslint-enable */\n\nexport const deleteDoc = async <D>({\n collection,\n doc,\n ...rest\n}: {\n collection: string;\n doc: Doc<D>;\n} & ActorUpdateParams): Promise<void> => {\n const {del_doc} = await getSatelliteActor(rest);\n\n const {key} = doc;\n\n return del_doc(collection, key, toDelDoc(doc));\n};\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nexport const deleteManyDocs = async ({\n docs,\n ...rest\n}: {\n docs: {collection: string; doc: Doc<any>}[];\n} & ActorUpdateParams): Promise<void> => {\n const {del_many_docs} = await getSatelliteActor(rest);\n\n const payload: [string, string, DelDoc][] = docs.map(({collection, doc}) => [\n collection,\n doc.key,\n toDelDoc(doc)\n ]);\n\n await del_many_docs(payload);\n};\n/* eslint-enable */\n\nexport const deleteFilteredDocs = async ({\n collection,\n filter,\n ...rest\n}: {\n collection: string;\n filter: ListParams;\n} & ActorUpdateParams): Promise<void> => {\n const {del_filtered_docs} = await getSatelliteActor(rest);\n\n return del_filtered_docs(collection, toListParams(filter));\n};\n\nexport const listDocs = async <D>({\n collection,\n filter,\n ...rest\n}: {\n collection: string;\n filter: ListParams;\n} & ActorReadParams): Promise<ListResults<Doc<D>>> => {\n const {list_docs} = await getSatelliteActor(rest);\n\n const {items, items_page, items_length, matches_length, matches_pages} = await list_docs(\n collection,\n toListParams(filter)\n );\n\n const docs: Doc<D>[] = [];\n\n for (const [key, item] of items) {\n const {data: dataArray, owner, description, version, ...rest} = item;\n\n docs.push({\n key,\n description: fromNullable(description),\n owner: owner.toText(),\n data: await mapData<ExcludeDate<D>>({data: dataArray}),\n version: fromNullable(version),\n ...rest\n });\n }\n\n return {\n items: docs,\n items_length,\n items_page: fromNullable(items_page),\n matches_length,\n matches_pages: fromNullable(matches_pages)\n };\n};\n\nexport const countDocs = async ({\n collection,\n filter,\n ...rest\n}: {\n collection: string;\n filter: ListParams;\n} & ActorReadParams): Promise<bigint> => {\n const {count_docs} = await getSatelliteActor(rest);\n\n return count_docs(collection, toListParams(filter));\n};\n", "import {fromArray} from '@junobuild/utils';\nimport type {Doc} from '../../declarations/satellite/satellite.did';\n\nexport const mapData = async <D>({data}: Pick<Doc, 'data'>): Promise<D> => {\n try {\n return await fromArray<D>(data);\n } catch (err: unknown) {\n console.error('The data parsing has failed, mapping to undefined as a fallback.', err);\n return undefined as D;\n }\n};\n", "import {fromNullable, toNullable} from '@dfinity/utils';\nimport {fromArray, toArray} from '@junobuild/utils';\nimport type {DelDoc, Doc as DocApi, SetDoc} from '../../declarations/satellite/satellite.did';\nimport type {Doc} from '../types/doc';\nimport type {ExcludeDate} from '../types/utility';\n\nexport const toSetDoc = async <D>(doc: Doc<D>): Promise<SetDoc> => {\n const {data, version, description} = doc;\n\n return {\n description: toNullable(description),\n data: await toArray<ExcludeDate<D>>(data),\n version: toNullable(version)\n };\n};\n\nexport const toDelDoc = <D>(doc: Doc<D>): DelDoc => {\n const {version} = doc;\n\n return {\n version: toNullable(version)\n };\n};\n\nexport const fromDoc = async <D>({doc, key}: {doc: DocApi; key: string}): Promise<Doc<D>> => {\n const {owner, version, description: docDescription, data, ...rest} = doc;\n\n return {\n key,\n description: fromNullable(docDescription),\n owner: owner.toText(),\n data: await fromArray<ExcludeDate<D>>(data),\n version: fromNullable(version),\n ...rest\n };\n};\n", "import {Principal} from '@dfinity/principal';\nimport {isNullish, toNullable} from '@dfinity/utils';\nimport type {\n ListParams as ListParamsApi,\n TimestampMatcher\n} from '../../declarations/satellite/satellite.did';\nimport {ListError} from '../types/errors';\nimport type {ListParams, ListTimestampMatcher} from '../types/list';\n\nconst toListMatcherTimestamp = (matcher?: ListTimestampMatcher): [] | [TimestampMatcher] => {\n if (isNullish(matcher)) {\n return toNullable();\n }\n\n switch (matcher.matcher) {\n case 'equal':\n return toNullable({Equal: matcher.timestamp});\n case 'greaterThan':\n return toNullable({GreaterThan: matcher.timestamp});\n case 'lessThan':\n return toNullable({LessThan: matcher.timestamp});\n case 'between':\n return toNullable({Between: [matcher.timestamps.start, matcher.timestamps.end]});\n default:\n throw new ListError('Invalid list matcher for timestamp', matcher);\n }\n};\n\nexport const toListParams = ({matcher, paginate, order, owner}: ListParams): ListParamsApi => ({\n matcher: isNullish(matcher)\n ? []\n : [\n {\n key: toNullable(matcher.key),\n description: toNullable(matcher.description),\n created_at: toListMatcherTimestamp(matcher.createdAt),\n updated_at: toListMatcherTimestamp(matcher.updatedAt)\n }\n ],\n paginate: toNullable(\n isNullish(paginate)\n ? undefined\n : {\n start_after: toNullable(paginate.startAfter),\n limit: toNullable(isNullish(paginate.limit) ? undefined : BigInt(paginate.limit))\n }\n ),\n order: toNullable(\n isNullish(order)\n ? undefined\n : {\n desc: order.desc,\n field:\n order.field === 'created_at'\n ? {CreatedAt: null}\n : order.field === 'updated_at'\n ? {UpdatedAt: null}\n : {Keys: null}\n }\n ),\n owner: toNullable(\n isNullish(owner) ? undefined : typeof owner === 'string' ? Principal.fromText(owner) : owner\n )\n});\n", "import type {ActorMethod, ActorSubclass} from '@dfinity/agent';\nimport type {IDL} from '@dfinity/candid';\nimport {assertNonNullish} from '@dfinity/utils';\nimport {ActorStore} from '../stores/actor.store';\nimport type {ActorKey} from '../types/actor';\nimport type {CallOptions} from '../types/call-options';\nimport type {SatelliteContext} from '../types/satellite';\nimport {customOrEnvContainer, customOrEnvSatelliteId} from '../utils/env.utils';\nimport {\n idlCertifiedFactorySatellite,\n idlFactorySatellite,\n type SatelliteActor\n} from './_actor.factory';\n\nexport const getSatelliteActor = ({\n satellite,\n options: {certified}\n}: {\n satellite: SatelliteContext;\n options: CallOptions;\n}): Promise<SatelliteActor> =>\n getActor({\n idlFactory: certified ? idlCertifiedFactorySatellite : idlFactorySatellite,\n actorKey: `stock#${certified ? 'update' : 'query'}`,\n ...satellite\n });\n\nexport const getSatelliteExtendedActor = <T = Record<string, ActorMethod>>({\n idlFactory,\n ...rest\n}: SatelliteContext & {idlFactory: IDL.InterfaceFactory}): Promise<ActorSubclass<T>> =>\n getActor({\n idlFactory,\n actorKey: 'extended#query',\n ...rest\n });\n\nconst getActor = async <T = Record<string, ActorMethod>>({\n satelliteId: customSatelliteId,\n container: customContainer,\n ...rest\n}: SatelliteContext & {idlFactory: IDL.InterfaceFactory; actorKey: ActorKey}): Promise<\n ActorSubclass<T>\n> => {\n const {satelliteId} = customOrEnvSatelliteId({satelliteId: customSatelliteId});\n\n assertNonNullish(satelliteId, 'No satellite ID defined. Did you initialize Juno?');\n\n const {container} = customOrEnvContainer({container: customContainer});\n\n return await ActorStore.getInstance().getActor({\n satelliteId,\n container,\n ...rest\n });\n};\n", "import {nonNullish} from '@dfinity/utils';\nimport {DOCKER_CONTAINER_URL} from '../constants/container.constants';\nimport {EnvStore} from '../stores/env.store';\nimport type {SatelliteContext} from '../types/satellite';\n\nexport const satelliteUrl = ({\n satelliteId: customSatelliteId,\n container: customContainer\n}: SatelliteContext): string => {\n const {satelliteId} = customOrEnvSatelliteId({satelliteId: customSatelliteId});\n const {container} = customOrEnvContainer({container: customContainer});\n\n if (nonNullish(container) && container !== false) {\n const {host: containerHost, protocol} = new URL(\n container === true ? DOCKER_CONTAINER_URL : container\n );\n return `${protocol}//${satelliteId ?? 'unknown'}.${containerHost.replace('127.0.0.1', 'localhost')}`;\n }\n\n return `https://${satelliteId ?? 'unknown'}.icp0.io`;\n};\n\nexport const customOrEnvSatelliteId = ({\n satelliteId\n}: Pick<SatelliteContext, 'satelliteId'>): Pick<SatelliteContext, 'satelliteId'> =>\n nonNullish(satelliteId)\n ? {satelliteId}\n : (EnvStore.getInstance().get() ?? {satelliteId: undefined});\n\nexport const customOrEnvContainer = ({\n container: customContainer\n}: Pick<SatelliteContext, 'container'>): Pick<SatelliteContext, 'container'> =>\n nonNullish(customContainer)\n ? {container: customContainer}\n : (EnvStore.getInstance().get() ?? {container: undefined});\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 CommitProposal = IDL.Record({\n sha256: IDL.Vec(IDL.Nat8),\n proposal_id: 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 Submit: 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 CollectionType = IDL.Variant({Db: IDL.Null, Storage: IDL.Null});\n const DelRule = IDL.Record({version: IDL.Opt(IDL.Nat64)});\n const DeleteProposalAssets = IDL.Record({\n proposal_ids: IDL.Vec(IDL.Nat)\n });\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 external_alternative_origins: IDL.Opt(IDL.Vec(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 ProposalStatus = IDL.Variant({\n Initialized: IDL.Null,\n Failed: IDL.Null,\n Open: IDL.Null,\n Rejected: IDL.Null,\n Executed: IDL.Null,\n Accepted: IDL.Null\n });\n const AssetsUpgradeOptions = IDL.Record({\n clear_existing_assets: IDL.Opt(IDL.Bool)\n });\n const SegmentsDeploymentOptions = IDL.Record({\n orbiter: IDL.Opt(IDL.Text),\n mission_control_version: IDL.Opt(IDL.Text),\n satellite_version: IDL.Opt(IDL.Text)\n });\n const ProposalType = IDL.Variant({\n AssetsUpgrade: AssetsUpgradeOptions,\n SegmentsDeployment: SegmentsDeploymentOptions\n });\n const Proposal = IDL.Record({\n status: ProposalStatus,\n updated_at: IDL.Nat64,\n sha256: IDL.Opt(IDL.Vec(IDL.Nat8)),\n executed_at: IDL.Opt(IDL.Nat64),\n owner: IDL.Principal,\n created_at: IDL.Nat64,\n version: IDL.Opt(IDL.Nat64),\n proposal_type: ProposalType\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 max_changes_per_user: IDL.Opt(IDL.Nat32)\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 ListProposalsOrder = IDL.Record({desc: IDL.Bool});\n const ListProposalsPaginate = IDL.Record({\n start_after: IDL.Opt(IDL.Nat),\n limit: IDL.Opt(IDL.Nat)\n });\n const ListProposalsParams = IDL.Record({\n order: IDL.Opt(ListProposalsOrder),\n paginate: IDL.Opt(ListProposalsPaginate)\n });\n const ProposalKey = IDL.Record({proposal_id: IDL.Nat});\n const ListProposalResults = IDL.Record({\n matches_length: IDL.Nat64,\n items: IDL.Vec(IDL.Tuple(ProposalKey, Proposal)),\n items_length: IDL.Nat64\n });\n const ListRulesMatcher = IDL.Record({include_system: IDL.Bool});\n const ListRulesParams = IDL.Record({matcher: IDL.Opt(ListRulesMatcher)});\n const ListRulesResults = IDL.Record({\n matches_length: IDL.Nat64,\n items: IDL.Vec(IDL.Tuple(IDL.Text, Rule)),\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 max_changes_per_user: IDL.Opt(IDL.Nat32)\n });\n const UploadChunk = IDL.Record({\n content: IDL.Vec(IDL.Nat8),\n batch_id: IDL.Nat,\n order_id: IDL.Opt(IDL.Nat)\n });\n const UploadChunkResult = IDL.Record({chunk_id: IDL.Nat});\n return IDL.Service({\n commit_asset_upload: IDL.Func([CommitBatch], [], []),\n commit_proposal: IDL.Func([CommitProposal], [IDL.Null], []),\n commit_proposal_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 count_proposals: IDL.Func([], [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([CollectionType, IDL.Text, DelRule], [], []),\n delete_proposal_assets: IDL.Func([DeleteProposalAssets], [], []),\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_proposal: IDL.Func([IDL.Nat], [IDL.Opt(Proposal)], ['query']),\n get_rule: IDL.Func([CollectionType, 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 init_proposal: IDL.Func([ProposalType], [IDL.Nat, Proposal], []),\n init_proposal_asset_upload: IDL.Func([InitAssetKey, IDL.Nat], [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_proposals: IDL.Func([ListProposalsParams], [ListProposalResults], ['query']),\n list_rules: IDL.Func([CollectionType, ListRulesParams], [ListRulesResults], ['query']),\n memory_size: IDL.Func([], [MemorySize], ['query']),\n reject_proposal: IDL.Func([CommitProposal], [IDL.Null], []),\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([CollectionType, IDL.Text, SetRule], [Rule], []),\n set_storage_config: IDL.Func([StorageConfig], [], []),\n submit_proposal: IDL.Func([IDL.Nat], [IDL.Nat, Proposal], []),\n upload_asset_chunk: IDL.Func([UploadChunk], [UploadChunkResult], []),\n upload_proposal_asset_chunk: IDL.Func([UploadChunk], [UploadChunkResult], [])\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 CommitProposal = IDL.Record({\n sha256: IDL.Vec(IDL.Nat8),\n proposal_id: 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 Submit: 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 CollectionType = IDL.Variant({Db: IDL.Null, Storage: IDL.Null});\n const DelRule = IDL.Record({version: IDL.Opt(IDL.Nat64)});\n const DeleteProposalAssets = IDL.Record({\n proposal_ids: IDL.Vec(IDL.Nat)\n });\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 external_alternative_origins: IDL.Opt(IDL.Vec(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 ProposalStatus = IDL.Variant({\n Initialized: IDL.Null,\n Failed: IDL.Null,\n Open: IDL.Null,\n Rejected: IDL.Null,\n Executed: IDL.Null,\n Accepted: IDL.Null\n });\n const AssetsUpgradeOptions = IDL.Record({\n clear_existing_assets: IDL.Opt(IDL.Bool)\n });\n const SegmentsDeploymentOptions = IDL.Record({\n orbiter: IDL.Opt(IDL.Text),\n mission_control_version: IDL.Opt(IDL.Text),\n satellite_version: IDL.Opt(IDL.Text)\n });\n const ProposalType = IDL.Variant({\n AssetsUpgrade: AssetsUpgradeOptions,\n SegmentsDeployment: SegmentsDeploymentOptions\n });\n const Proposal = IDL.Record({\n status: ProposalStatus,\n updated_at: IDL.Nat64,\n sha256: IDL.Opt(IDL.Vec(IDL.Nat8)),\n executed_at: IDL.Opt(IDL.Nat64),\n owner: IDL.Principal,\n created_at: IDL.Nat64,\n version: IDL.Opt(IDL.Nat64),\n proposal_type: ProposalType\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 max_changes_per_user: IDL.Opt(IDL.Nat32)\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([], [], [])\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 ListProposalsOrder = IDL.Record({desc: IDL.Bool});\n const ListProposalsPaginate = IDL.Record({\n start_after: IDL.Opt(IDL.Nat),\n limit: IDL.Opt(IDL.Nat)\n });\n const ListProposalsParams = IDL.Record({\n order: IDL.Opt(ListProposalsOrder),\n paginate: IDL.Opt(ListProposalsPaginate)\n });\n const ProposalKey = IDL.Record({proposal_id: IDL.Nat});\n const ListProposalResults = IDL.Record({\n matches_length: IDL.Nat64,\n items: IDL.Vec(IDL.Tuple(ProposalKey, Proposal)),\n items_length: IDL.Nat64\n });\n const ListRulesMatcher = IDL.Record({include_system: IDL.Bool});\n const ListRulesParams = IDL.Record({matcher: IDL.Opt(ListRulesMatcher)});\n const ListRulesResults = IDL.Record({\n matches_length: IDL.Nat64,\n items: IDL.Vec(IDL.Tuple(IDL.Text, Rule)),\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 max_changes_per_user: IDL.Opt(IDL.Nat32)\n });\n const UploadChunk = IDL.Record({\n content: IDL.Vec(IDL.Nat8),\n batch_id: IDL.Nat,\n order_id: IDL.Opt(IDL.Nat)\n });\n const UploadChunkResult = IDL.Record({chunk_id: IDL.Nat});\n return IDL.Service({\n commit_asset_upload: IDL.Func([CommitBatch], [], []),\n commit_proposal: IDL.Func([CommitProposal], [IDL.Null], []),\n commit_proposal_asset_upload: IDL.Func([CommitBatch], [], []),\n count_assets: IDL.Func([IDL.Text, ListParams], [IDL.Nat64], []),\n count_collection_assets: IDL.Func([IDL.Text], [IDL.Nat64], []),\n count_collection_docs: IDL.Func([IDL.Text], [IDL.Nat64], []),\n count_docs: IDL.Func([IDL.Text, ListParams], [IDL.Nat64], []),\n count_proposals: IDL.Func([], [IDL.Nat64], []),\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([CollectionType, IDL.Text, DelRule], [], []),\n delete_proposal_assets: IDL.Func([DeleteProposalAssets], [], []),\n deposit_cycles: IDL.Func([DepositCyclesArgs], [], []),\n get_asset: IDL.Func([IDL.Text, IDL.Text], [IDL.Opt(AssetNoContent)], []),\n get_auth_config: IDL.Func([], [IDL.Opt(AuthenticationConfig)], []),\n get_config: IDL.Func([], [Config], []),\n get_db_config: IDL.Func([], [IDL.Opt(DbConfig)], []),\n get_doc: IDL.Func([IDL.Text, IDL.Text], [IDL.Opt(Doc)], []),\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 []\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 []\n ),\n get_proposal: IDL.Func([IDL.Nat], [IDL.Opt(Proposal)], []),\n get_rule: IDL.Func([CollectionType, IDL.Text], [IDL.Opt(Rule)], []),\n get_storage_config: IDL.Func([], [StorageConfig], []),\n http_request: IDL.Func([HttpRequest], [HttpResponse], []),\n http_request_streaming_callback: IDL.Func(\n [StreamingCallbackToken],\n [StreamingCallbackHttpResponse],\n []\n ),\n init_asset_upload: IDL.Func([InitAssetKey], [InitUploadResult], []),\n init_proposal: IDL.Func([ProposalType], [IDL.Nat, Proposal], []),\n init_proposal_asset_upload: IDL.Func([InitAssetKey, IDL.Nat], [InitUploadResult], []),\n list_assets: IDL.Func([IDL.Text, ListParams], [ListResults], []),\n list_controllers: IDL.Func([], [IDL.Vec(IDL.Tuple(IDL.Principal, Controller))], []),\n list_custom_domains: IDL.Func([], [IDL.Vec(IDL.Tuple(IDL.Text, CustomDomain))], []),\n list_docs: IDL.Func([IDL.Text, ListParams], [ListResults_1], []),\n list_proposals: IDL.Func([ListProposalsParams], [ListProposalResults], []),\n list_rules: IDL.Func([CollectionType, ListRulesParams], [ListRulesResults], []),\n memory_size: IDL.Func([], [MemorySize], []),\n reject_proposal: IDL.Func([CommitProposal], [IDL.Null], []),\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([CollectionType, IDL.Text, SetRule], [Rule], []),\n set_storage_config: IDL.Func([StorageConfig], [], []),\n submit_proposal: IDL.Func([IDL.Nat], [IDL.Nat, Proposal], []),\n upload_asset_chunk: IDL.Func([UploadChunk], [UploadChunkResult], []),\n upload_proposal_asset_chunk: IDL.Func([UploadChunk], [UploadChunkResult], [])\n });\n};\n// @ts-ignore\nexport const init = ({IDL}) => {\n return [];\n};\n", "import type {ReadOptions} from '../types/call-options';\n\n/**\n * Default options for read operations.\n *\n * For backwards compatibility and because most developers probably prioritize speed over\n * additional security when fetching read-only data from the Internet Computer,\n * read operations are performed in an uncertified way by default.\n */\nexport const DEFAULT_READ_OPTIONS: ReadOptions = {certified: false};\n", "import {AnonymousIdentity, type Identity} from '@dfinity/agent';\nimport {nonNullish} from '@dfinity/utils';\nimport {getIdentity as getAuthIdentity} from './auth.services';\n\nexport const getAnyIdentity = (identity?: Identity): Identity => {\n if (nonNullish(identity)) {\n return identity;\n }\n\n return getAuthIdentity() ?? new AnonymousIdentity();\n};\n", "import {\n countDocs as countDocsApi,\n deleteDoc as deleteDocApi,\n deleteFilteredDocs as deleteFilteredDocsApi,\n deleteManyDocs as deleteManyDocsApi,\n getDoc as getDocApi,\n getManyDocs as getManyDocsApi,\n listDocs as listDocsApi,\n setDoc as setDocApi,\n setManyDocs as setManyDocsApi\n} from '../api/doc.api';\nimport {DEFAULT_READ_OPTIONS} from '../constants/call-options.constants';\nimport type {ReadOptions} from '../types/call-options';\nimport type {Doc} from '../types/doc';\nimport type {ListParams, ListResults} from '../types/list';\nimport type {SatelliteOptions} from '../types/satellite';\nimport {getAnyIdentity} from './_identity.services';\n\n/**\n * Retrieves a single document from a collection.\n *\n * @template D\n * @param {Object} params - The parameters for retrieving the document.\n * @param {string} params.collection - The name of the collection.\n * @param {string} params.key - The key of the document to retrieve.\n * @param {ReadOptions} [params.options] - Call options controlling certification. Defaults to uncertified reads for performance unless specified.\n * @param {SatelliteOptions} [params.satellite] - Options to specify a satellite in a NodeJS environment only. In browser environments, the satellite configuration is inherited from the initialization through `initSatellite()`.\n * @returns {Promise<Doc<D> | undefined>} A promise that resolves to the document or undefined if not found.\n */\nexport const getDoc = async <D>({\n satellite,\n options,\n ...rest\n}: {\n collection: string;\n satellite?: SatelliteOptions;\n options?: ReadOptions;\n} & Pick<Doc<D>, 'key'>): Promise<Doc<D> | undefined> => {\n const identity = getAnyIdentity(satellite?.identity);\n\n return await getDocApi({\n ...rest,\n satellite: {...satellite, identity},\n options: options ?? DEFAULT_READ_OPTIONS\n });\n};\n\n/**\n * Retrieves multiple documents from a single or different collections in a single call.\n *\n * @param {Object} params - The parameters for retrieving the documents.\n * @param {Array} params.docs - The list of documents with their collections and keys.\n * @param {ReadOptions} [params.options] - Call options controlling certification. Defaults to uncertified reads for performance unless specified.\n * @param {SatelliteOptions} [params.satellite] - Options to specify a satellite in a NodeJS environment only. In browser environments, the satellite configuration is inherited from the initialization through `initSatellite()`.\n * @returns {Promise<Array<Doc<any> | undefined>>} A promise that resolves to an array of documents or undefined if not found.\n */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nexport const getManyDocs = async ({\n satellite,\n options,\n ...rest\n}: {\n docs: ({collection: string} & Pick<Doc<any>, 'key'>)[];\n satellite?: SatelliteOptions;\n options?: ReadOptions;\n}): Promise<(Doc<any> | undefined)[]> => {\n const identity = getAnyIdentity(satellite?.identity);\n\n return await getManyDocsApi({\n ...rest,\n satellite: {...satellite, identity},\n options: options ?? DEFAULT_READ_OPTIONS\n });\n};\n/* eslint-enable */\n\n/**\n * Adds or updates a single document in a collection.\n *\n * @template D\n * @param {Object} params - The parameters for adding or updating the document.\n * @param {string} params.collection - The name of the collection.\n * @param {Doc<D>} params.doc - The document to add or update.\n * @param {SatelliteOptions} [params.satellite] - Options to specify a satellite in a NodeJS environment only. In browser environments, the satellite configuration is inherited from the initialization through `initSatellite()`.\n * @returns {Promise<Doc<D>>} A promise that resolves to the added or updated document.\n */\nexport const setDoc = async <D>({\n satellite,\n ...rest\n}: {\n collection: string;\n doc: Doc<D>;\n satellite?: SatelliteOptions;\n}): Promise<Doc<D>> => {\n const identity = getAnyIdentity(satellite?.identity);\n\n return await setDocApi({\n ...rest,\n satellite: {...satellite, identity},\n options: {certified: true}\n });\n};\n\n/**\n * Adds or updates multiple documents in a or different collections.\n *\n * @param {Object} params - The parameters for adding or updating the documents.\n * @param {Array} params.docs - The list of documents with their collections and data.\n * @param {SatelliteOptions} [params.satellite] - Options to specify a satellite in a NodeJS environment only. In browser environments, the satellite configuration is inherited from the initialization through `initSatellite()`.\n * @returns {Promise<Array<Doc<any>>>} A promise that resolves to an array of added or updated documents.\n */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nexport const setManyDocs = async ({\n satellite,\n ...rest\n}: {\n docs: {collection: string; doc: Doc<any>}[];\n satellite?: SatelliteOptions;\n}): Promise<Doc<any>[]> => {\n const identity = getAnyIdentity(satellite?.identity);\n\n return await setManyDocsApi({\n ...rest,\n satellite: {...satellite, identity},\n options: {certified: true}\n });\n};\n/* eslint-enable */\n\n/**\n * Deletes a single document from a collection.\n *\n * @template D\n * @param {Object} params - The parameters for deleting the document.\n * @param {string} params.collection - The name of the collection.\n * @param {Doc<D>} params.doc - The document to delete.\n * @param {SatelliteOptions} [params.satellite] - Options to specify a satellite in a NodeJS environment only. In browser environments, the satellite configuration is inherited from the initialization through `initSatellite()`.\n * @returns {Promise<void>} A promise that resolves when the document is deleted.\n */\nexport const deleteDoc = async <D>({\n satellite,\n ...rest\n}: {\n collection: string;\n doc: Doc<D>;\n satellite?: SatelliteOptions;\n}): Promise<void> => {\n const identity = getAnyIdentity(satellite?.identity);\n\n return await deleteDocApi({\n ...rest,\n satellite: {...satellite, identity},\n options: {certified: true}\n });\n};\n\n/**\n * Deletes multiple documents from a or different collections.\n *\n * @param {Object} params - The parameters for deleting the documents.\n * @param {Array} params.docs - The list of documents with their collections and data.\n * @param {SatelliteOptions} [params.satellite] - Options to specify a satellite in a NodeJS environment only. In browser environments, the satellite configuration is inherited from the initialization through `initSatellite()`.\n * @returns {Promise<void>} A promise that resolves when the documents are deleted.\n */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nexport const deleteManyDocs = async ({\n satellite,\n ...rest\n}: {\n docs: {collection: string; doc: Doc<any>}[];\n satellite?: SatelliteOptions;\n}): Promise<void> => {\n const identity = getAnyIdentity(satellite?.identity);\n\n return await deleteManyDocsApi({\n ...rest,\n satellite: {...satellite, identity},\n options: {certified: true}\n });\n};\n/* eslint-enable */\n\n/**\n * Deletes documents from a collection with optional filtering.\n *\n * @param {Object} params - The parameters for deleting documents.\n * @param {string} params.collection - The name of the collection.\n * @param {ListParams} [params.filter] - The filter criteria to match documents for deletion.\n * @param {SatelliteOptions} [params.satellite] - Options to specify a satellite in a NodeJS environment only. In browser environments, the satellite configuration is inherited from the initialization through `initSatellite()`.\n * @returns {Promise<void>} A promise that resolves when the documents are deleted.\n */\nexport const deleteFilteredDocs = async ({\n satellite,\n filter,\n ...rest\n}: {\n collection: string;\n filter?: ListParams;\n satellite?: SatelliteOptions;\n}): Promise<void> => {\n const identity = getAnyIdentity(satellite?.identity);\n\n return await deleteFilteredDocsApi({\n ...rest,\n filter: filter ?? {},\n satellite: {...satellite, identity},\n options: {certified: true}\n });\n};\n\n/**\n * Lists documents in a collection with optional filtering.\n *\n * @template D\n * @param {Object} params - The parameters for listing the documents.\n * @param {string} params.collection - The name of the collection.\n * @param {ListParams} [params.filter] - Optional filter parameters.\n * @param {ReadOptions} [params.options] - Call options controlling certification. Defaults to uncertified reads for performance unless specified.\n * @param {SatelliteOptions} [params.satellite] - Options to specify a satellite in a NodeJS environment only. In browser environments, the satellite configuration is inherited from the initialization through `initSatellite()`.\n * @returns {Promise<ListResults<Doc<D>>>} A promise that resolves to the list of documents.\n */\nexport const listDocs = async <D>({\n satellite,\n options,\n filter,\n ...rest\n}: {\n collection: string;\n filter?: ListParams;\n satellite?: SatelliteOptions;\n options?: ReadOptions;\n}): Promise<ListResults<Doc<D>>> => {\n const identity = getAnyIdentity(satellite?.identity);\n\n return await listDocsApi<D>({\n ...rest,\n filter: filter ?? {},\n satellite: {...satellite, identity},\n options: options ?? DEFAULT_READ_OPTIONS\n });\n};\n\n/**\n * Counts documents in a collection with optional filtering.\n *\n * @param {Object} params - The parameters for counting the documents.\n * @param {string} params.collection - The name of the collection.\n * @param {ListParams} [params.filter] - Optional filter parameters.\n * @param {ReadOptions} [params.options] - Call options controlling certification. Defaults to uncertified reads for performance unless specified.\n * @param {SatelliteOptions} [params.satellite] - Options to specify a satellite in a NodeJS environment only. In browser environments, the satellite configuration is inherited from the initialization through `initSatellite()`.\n * @returns {Promise<bigint>} A promise that resolves to the count of documents as a bigint.\n */\nexport const countDocs = async ({\n satellite,\n options,\n filter,\n ...rest\n}: {\n collection: string;\n filter?: ListParams;\n satellite?: SatelliteOptions;\n options?: ReadOptions;\n}): Promise<bigint> => {\n const identity = getAnyIdentity(satellite?.identity);\n\n return await countDocsApi({\n ...rest,\n filter: filter ?? {},\n satellite: {...satellite, identity},\n options: options ?? DEFAULT_READ_OPTIONS\n });\n};\n", "// TODO: duplicated because those should not be bundled in web worker. We can avoid this by transforming utils into a library of modules.\ninterface ImportMeta {\n env: Record<string, string> | undefined;\n}\n\nexport const envSatelliteId = (): string | undefined => {\n const viteEnvSatelliteId = (): string | undefined =>\n typeof import.meta !== 'undefined' &&\n typeof (import.meta as unknown as ImportMeta).env !== 'undefined'\n ? ((import.meta as unknown as ImportMeta).env?.VITE_SATELLITE_ID ??\n (import.meta as unknown as ImportMeta).env?.PUBLIC_SATELLITE_ID)\n : undefined;\n\n return typeof process !== 'undefined'\n ? (process.env?.NEXT_PUBLIC_SATELLITE_ID ?? viteEnvSatelliteId())\n : viteEnvSatelliteId();\n};\n\nexport const envContainer = (): string | undefined => {\n const viteEnvContainer = (): string | undefined =>\n typeof import.meta !== 'undefined' &&\n typeof (import.meta as unknown as ImportMeta).env !== 'undefined'\n ? ((import.meta as unknown as ImportMeta).env?.VITE_CONTAINER ??\n (import.meta as unknown as ImportMeta).env?.PUBLIC_CONTAINER)\n : undefined;\n\n return typeof process !== 'undefined'\n ? (process.env?.NEXT_PUBLIC_CONTAINER ?? viteEnvContainer())\n : viteEnvContainer();\n};\n", "import type {ActorSubclass} from '@dfinity/agent';\nimport type {ActorMethod} from '@dfinity/agent/lib/esm/actor';\nimport type {IDL} from '@dfinity/candid';\nimport {getSatelliteExtendedActor as getSatelliteExtendedActorApi} from '../api/actor.api';\nimport type {SatelliteOptions} from '../types/satellite';\nimport {getAnyIdentity} from './_identity.services';\n\n/**\n * Returns an extended satellite actor instance using the provided IDL factory and satellite options.\n *\n * This function is intended for advanced use cases where developers have implemented\n * custom endpoints in their serverless functions using the extended build type.\n *\n * In most cases, developers should not need to call this directly.\n * Extended actors are typically mapped and handled automatically.\n *\n * @template T - The actor interface type.\n *\n * @param {Object} params - The parameters for creating the actor.\n * @param {IDL.InterfaceFactory} params.idlFactory - The IDL factory defining the custom actor interface.\n * @param {SatelliteOptions} [params.satellite] - Options to specify a satellite in a NodeJS environment only.\n * In browser environments, configuration is automatically inherited from `initSatellite()`.\n *\n * @returns {Promise<ActorSubclass<T>>} A promise that resolves to the extended actor instance.\n */\nexport const getSatelliteExtendedActor = async <T = Record<string, ActorMethod>>({\n idlFactory,\n satellite\n}: {\n idlFactory: IDL.InterfaceFactory;\n satellite?: SatelliteOptions;\n}): Promise<ActorSubclass<T>> => {\n const identity = getAnyIdentity(satellite?.identity);\n\n return await getSatelliteExtendedActorApi({\n idlFactory,\n ...satellite,\n identity\n });\n};\n", "import {fromNullable, nonNullish} from '@dfinity/utils';\nimport type {Asset, AssetEncoding, AssetKey, Storage} from '@junobuild/storage';\nimport type {AssetNoContent} from '../../declarations/satellite/satellite.did';\nimport {\n countAssets as countAssetsApi,\n deleteAsset as deleteAssetApi,\n deleteFilteredAssets as deleteFilteredAssetsApi,\n deleteManyAssets as deleteManyAssetsApi,\n getAsset as getAssetApi,\n getManyAssets as getManyAssetsApi,\n listAssets as listAssetsApi,\n uploadAsset as uploadAssetApi\n} from '../api/storage.api';\nimport {DEFAULT_READ_OPTIONS} from '../constants/call-options.constants';\nimport type {ReadOptions} from '../types/call-options';\nimport type {ListParams} from '../types/list';\nimport type {SatelliteOptions} from '../types/satellite';\nimport type {Assets} from '../types/storage.types';\nimport {sha256ToBase64String} from '../utils/crypto.utils';\nimport {satelliteUrl} from '../utils/env.utils';\nimport {getAnyIdentity} from './_identity.services';\n\n/**\n * Uploads a blob to the storage.\n *\n * @param {SatelliteOptions} [params.satellite] - Options to specify a satellite in a NodeJS environment only. In browser environments, the satellite configuration is inherited from the initialization through `initSatellite()`.\n * @returns {Promise<AssetKey>} A promise that resolves to the asset key.\n */\nexport const uploadBlob = (params: Storage & {satellite?: SatelliteOptions}): Promise<AssetKey> =>\n uploadAssetIC(params);\n\n/**\n * Uploads a file to the storage.\n *\n * @param {SatelliteOptions} [params.satellite] - Options to specify a satellite in a NodeJS environment only. In browser environments, the satellite configuration is inherited from the initialization through `initSatellite()`.\n * @returns {Promise<AssetKey>} A promise that resolves to the asset key.\n */\nexport const uploadFile = (\n params: Partial<Pick<Storage, 'filename'>> &\n Omit<Storage, 'filename' | 'data'> & {data: File} & {satellite?: SatelliteOptions}\n): Promise<AssetKey> =>\n uploadAssetIC({\n filename: params.data.name,\n ...params\n });\n\nconst uploadAssetIC = async ({\n filename: storageFilename,\n data,\n collection,\n headers = [],\n fullPath: storagePath,\n token,\n satellite: satelliteOptions,\n encoding,\n description\n}: Storage & {satellite?: SatelliteOptions}): Promise<AssetKey> => {\n const identity = getAnyIdentity(satelliteOptions?.identity);\n\n // The IC certification does not currently support encoding\n const filename: string = decodeURI(storageFilename);\n const fullPath: string = storagePath ?? `/${collection}/${filename}`;\n\n const satellite = {...satelliteOptions, identity};\n\n await uploadAssetApi({\n asset: {\n data,\n filename,\n collection,\n token,\n headers,\n fullPath,\n encoding,\n description\n },\n satellite,\n options: {certified: true}\n });\n\n return {\n downloadUrl: downloadUrl({\n satellite,\n assetKey: {\n fullPath,\n token\n }\n }),\n fullPath,\n name: filename\n };\n};\n\n/**\n * Lists assets in a collection with optional filtering.\n *\n * @param {Object} params - The parameters for listing the assets.\n * @param {string} params.collection - The name of the collection.\n * @param {ListParams} [params.filter] - The filter parameters.\n * @param {ReadOptions} [params.options] - Call options controlling certification. Defaults to uncertified reads for performance unless specified.\n * @param {SatelliteOptions} [params.satellite] - Options to specify a satellite in a NodeJS environment only. In browser environments, the satellite configuration is inherited from the initialization through `initSatellite()`.\n * @returns {Promise<Assets>} A promise that resolves to the list of assets.\n */\nexport const listAssets = async ({\n collection,\n filter,\n satellite: satelliteOptions,\n options\n}: {\n collection: string;\n filter?: ListParams;\n satellite?: SatelliteOptions;\n options?: ReadOptions;\n}): Promise<Assets> => {\n const satellite = {...satelliteOptions, identity: getAnyIdentity(satelliteOptions?.identity)};\n\n const {items, ...rest} = await listAssetsApi({\n collection,\n filter: filter ?? {},\n satellite,\n options: options ?? DEFAULT_READ_OPTIONS\n });\n\n const assets = items.map(\n ({\n key: {full_path: fullPath, token: t, name, owner, description},\n headers,\n encodings,\n created_at,\n updated_at\n }: AssetNoContent) => {\n const token = fromNullable(t);\n\n return {\n fullPath,\n description: fromNullable(description),\n name,\n downloadUrl: downloadUrl({\n satellite,\n assetKey: {fullPath, token}\n }),\n token,\n headers,\n encodings: encodings.reduce<Record<string, AssetEncoding>>(\n (acc, [type, {modified, sha256, total_length}]) => ({\n ...acc,\n [type]: {\n modified,\n sha256: sha256ToBase64String(sha256),\n total_length\n }\n }),\n {}\n ),\n owner: owner.toText(),\n created_at,\n updated_at\n } as Asset;\n }\n );\n\n return {\n items: assets,\n assets,\n ...rest\n };\n};\n\n/**\n * Counts assets in a collection with optional filtering.\n *\n * @param {Object} params - The parameters for counting the assets.\n * @param {string} params.collection - The name of the collection.\n * @param {ListParams} [params.filter] - The filter parameters for narrowing down the count.\n * @param {ReadOptions} [params.options] - Call options controlling certification. Defaults to uncertified reads for performance unless specified.\n * @param {SatelliteOptions} [params.satellite] - Options to specify a satellite in a NodeJS environment only. In browser environments, the satellite configuration is inherited from the initialization through `initSatellite()`.\n * @returns {Promise<bigint>} A promise that resolves to the count of assets as a bigint.\n */\nexport const countAssets = async ({\n collection,\n filter,\n satellite: satelliteOptions,\n options\n}: {\n collection: string;\n filter?: ListParams;\n satellite?: SatelliteOptions;\n options?: ReadOptions;\n}): Promise<bigint> => {\n const satellite = {...satelliteOptions, identity: getAnyIdentity(satelliteOptions?.identity)};\n\n return await countAssetsApi({\n collection,\n satellite,\n filter: filter ?? {},\n options: options ?? DEFAULT_READ_OPTIONS\n });\n};\n\n/**\n * Deletes an asset from the storage.\n *\n * @param {Object} params - The parameters for deleting the asset.\n * @param {string} params.collection - The name of the collection.\n * @param {string} params.fullPath - The full path of the asset.\n * @param {SatelliteOptions} [params.satellite] - Options to specify a satellite in a NodeJS environment only. In browser environments, the satellite configuration is inherited from the initialization through `initSatellite()`.\n * @returns {Promise<void>} A promise that resolves when the asset is deleted.\n */\nexport const deleteAsset = ({\n collection,\n fullPath,\n satellite\n}: {\n collection: string;\n satellite?: SatelliteOptions;\n} & Pick<AssetKey, 'fullPath'>): Promise<void> =>\n deleteAssetApi({\n collection,\n fullPath,\n satellite: {...satellite, identity: getAnyIdentity(satellite?.identity)},\n options: {certified: true}\n });\n\n/**\n * Deletes multiple assets from the storage.\n *\n * @param {Object} params - The parameters for deleting the assets.\n * @param {Array} params.assets - The list of assets with their collections and full paths.\n * @param {SatelliteOptions} [params.satellite] - Options to specify a satellite in a NodeJS environment only. In browser environments, the satellite configuration is inherited from the initialization through `initSatellite()`.\n * @returns {Promise<void>} A promise that resolves when the assets are deleted.\n */\nexport const deleteManyAssets = ({\n assets,\n satellite\n}: {\n assets: ({collection: string} & Pick<AssetKey, 'fullPath'>)[];\n satellite?: SatelliteOptions;\n}): Promise<void> =>\n deleteManyAssetsApi({\n assets,\n satellite: {...satellite, identity: getAnyIdentity(satellite?.identity)},\n options: {certified: true}\n });\n\n/**\n * Deletes multiple assets from a collection based on filtering criteria.\n *\n * @param {Object} params - The parameters for deleting the assets.\n * @param {string} params.collection - The name of the collection from which to delete assets.\n * @param {ListParams} [params.filter] - The filter criteria to match assets for deletion.\n * @param {SatelliteOptions} [params.satellite] - Options to specify a satellite in a NodeJS environment only. In browser environments, the satellite configuration is inherited from the initialization through `initSatellite()`.\n * @returns {Promise<void>} A promise that resolves when the assets matching the filter criteria are deleted.\n */\nexport const deleteFilteredAssets = async ({\n collection,\n satellite: satelliteOptions,\n filter\n}: {\n collection: string;\n satellite?: SatelliteOptions;\n filter?: ListParams;\n}): Promise<void> => {\n const satellite = {...satelliteOptions, identity: getAnyIdentity(satelliteOptions?.identity)};\n\n return await deleteFilteredAssetsApi({\n collection,\n satellite,\n filter: filter ?? {},\n options: {certified: true}\n });\n};\n\n/**\n * Retrieves an asset from the storage.\n *\n * @param {Object} params - The parameters for retrieving the asset.\n * @param {string} params.collection - The name of the collection.\n * @param {string} params.fullPath - The full path of the asset.\n * @param {ReadOptions} [params.options] - Call options controlling certification. Defaults to uncertified reads for performance unless specified.\n * @param {SatelliteOptions} [params.satellite] - Options to specify a satellite in a NodeJS environment only. In browser environments, the satellite configuration is inherited from the initialization through `initSatellite()`.\n * @returns {Promise<AssetNoContent | undefined>} A promise that resolves to the asset or undefined if not found.\n */\nexport const getAsset = async ({\n satellite,\n options,\n ...rest\n}: {\n collection: string;\n satellite?: SatelliteOptions;\n options?: ReadOptions;\n} & Pick<AssetKey, 'fullPath'>): Promise<AssetNoContent | undefined> => {\n const identity = getAnyIdentity(satellite?.identity);\n\n return await getAssetApi({\n ...rest,\n satellite: {...satellite, identity},\n options: options ?? DEFAULT_READ_OPTIONS\n });\n};\n\n/**\n * Retrieves multiple assets from the storage.\n *\n * @param {Object} params - The parameters for retrieving the assets.\n * @param {Array} params.assets - The list of assets with their collections and full paths.\n * @param {ReadOptions} [params.options] - Call options controlling certification. Defaults to uncertified reads for performance unless specified.\n * @param {SatelliteOptions} [params.satellite] - Options to specify a satellite in a NodeJS environment only. In browser environments, the satellite configuration is inherited from the initialization through `initSatellite()`.\n * @returns {Promise<Array<AssetNoContent | undefined>>} A promise that resolves to an array of assets or undefined if not found.\n */\nexport const getManyAssets = async ({\n satellite,\n options,\n ...rest\n}: {\n assets: ({collection: string} & Pick<AssetKey, 'fullPath'>)[];\n satellite?: SatelliteOptions;\n options?: ReadOptions;\n}): Promise<(AssetNoContent | undefined)[]> => {\n const identity = getAnyIdentity(satellite?.identity);\n\n return await getManyAssetsApi({\n ...rest,\n satellite: {...satellite, identity},\n options: options ?? DEFAULT_READ_OPTIONS\n });\n};\n\n/**\n * Returns a public URL for accessing a specific asset stored on a Satellite.\n *\n * This URL can be used to:\n * - Open the file directly in a browser\n * - Embed the asset in HTML elements like `<img src=\"...\">`, `<video src=\"...\">`, or `<a href=\"...\">`\n * - Programmatically download or display the asset in your application\n *\n * ### Example\n * ```ts\n * const url = downloadUrl({\n * assetKey: {\n * fullPath: '/images/logo.png',\n * }\n * });\n *\n * // Usage in an <img> tag\n * <img src={url} alt=\"Logo\" />\n * ```\n *\n * @param {Object} params - Parameters for generating the URL.\n * @param {Object} params.assetKey - Identifies the asset to generate the URL for.\n * @param {string} params.assetKey.fullPath - The full path of the asset (e.g., `/folder/file.jpg`).\n * @param {string} [params.assetKey.token] - Optional access token for accessing protected assets.\n * @param {SatelliteOptions} [params.satellite] - Options to specify a satellite in a NodeJS environment only. In browser environments, the satellite configuration is inherited from the initialization through `initSatellite()`.\n * @returns {string} A full URL pointing to the asset.\n */\nexport const downloadUrl = ({\n assetKey: {fullPath, token},\n satellite: satelliteOptions\n}: {\n assetKey: Pick<Asset, 'fullPath' | 'token'>;\n} & {satellite?: SatelliteOptions}): string => {\n const satellite = {...satelliteOptions, identity: getAnyIdentity(satelliteOptions?.identity)};\n\n return `${satelliteUrl(satellite)}${fullPath}${nonNullish(token) ? `?token=${token}` : ''}`;\n};\n", "import {fromNullable} from '@dfinity/utils';\nimport {\n uploadAsset as uploadAssetStorage,\n type AssetKey,\n type UploadAsset\n} from '@junobuild/storage';\nimport type {AssetNoContent} from '../../declarations/satellite/satellite.did';\nimport type {ActorReadParams, ActorUpdateParams} from '../types/actor';\nimport type {ListParams, ListResults} from '../types/list';\nimport {toListParams} from '../utils/list.utils';\nimport {getSatelliteActor} from './actor.api';\n\nexport const uploadAsset = async ({\n asset,\n ...rest\n}: {asset: UploadAsset} & ActorUpdateParams): Promise<void> => {\n const actor = await getSatelliteActor(rest);\n\n await uploadAssetStorage({\n actor,\n asset\n });\n};\n\nexport const listAssets = async ({\n collection,\n filter,\n ...rest\n}: {\n collection: string;\n filter: ListParams;\n} & ActorReadParams): Promise<ListResults<AssetNoContent>> => {\n const {list_assets} = await getSatelliteActor(rest);\n\n const {\n items: assets,\n items_length,\n items_page,\n matches_length,\n matches_pages\n } = await list_assets(collection, toListParams(filter));\n\n return {\n items: assets.map(([_, asset]) => asset),\n items_length,\n items_page: fromNullable(items_page),\n matches_length,\n matches_pages: fromNullable(matches_pages)\n };\n};\n\nexport const countAssets = async ({\n collection,\n filter,\n ...rest\n}: {\n collection: string;\n filter: ListParams;\n} & ActorReadParams): Promise<bigint> => {\n const {count_assets} = await getSatelliteActor(rest);\n\n return count_assets(collection, toListParams(filter));\n};\n\nexport const deleteAsset = async ({\n collection,\n fullPath,\n ...rest\n}: {\n collection: string;\n} & ActorUpdateParams &\n Pick<AssetKey, 'fullPath'>): Promise<void> => {\n const actor = await getSatelliteActor(rest);\n\n return actor.del_asset(collection, fullPath);\n};\n\nexport const deleteManyAssets = async ({\n assets,\n satellite\n}: {\n assets: ({collection: string} & Pick<AssetKey, 'fullPath'>)[];\n} & ActorUpdateParams): Promise<void> => {\n const {del_many_assets} = await getSatelliteActor({satellite, options: {certified: true}});\n\n const payload: [string, string][] = assets.map(({collection, fullPath}) => [\n collection,\n fullPath\n ]);\n\n await del_many_assets(payload);\n};\n\nexport const deleteFilteredAssets = async ({\n collection,\n filter,\n ...rest\n}: {\n collection: string;\n filter: ListParams;\n} & ActorUpdateParams): Promise<void> => {\n const {del_filtered_assets} = await getSatelliteActor(rest);\n\n return del_filtered_assets(collection, toListParams(filter));\n};\n\nexport const getAsset = async ({\n collection,\n fullPath,\n ...rest\n}: {\n collection: string;\n} & ActorReadParams &\n Pick<AssetKey, 'fullPath'>): Promise<AssetNoContent | undefined> => {\n const {get_asset} = await getSatelliteActor(rest);\n return fromNullable(await get_asset(collection, fullPath));\n};\n\nexport const getManyAssets = async ({\n assets,\n ...rest\n}: {\n assets: ({collection: string} & Pick<AssetKey, 'fullPath'>)[];\n} & ActorReadParams): Promise<(AssetNoContent | undefined)[]> => {\n const {get_many_assets} = await getSatelliteActor(rest);\n\n const payload: [string, string][] = assets.map(({collection, fullPath}) => [\n collection,\n fullPath\n ]);\n\n const resultsAssets = await get_many_assets(payload);\n\n return resultsAssets.map(([_, resultAsset]) => fromNullable(resultAsset));\n};\n", "import {toNullable} from '@dfinity/utils';\nimport {isBrowser} from '@junobuild/utils';\nimport type {\n _SERVICE as ConsoleActor,\n CommitBatch as ConsoleCommitBatch,\n InitAssetKey as ConsoleInitAssetKey,\n UploadChunk as ConsoleUploadChunk\n} from '../../declarations/console/console.did';\nimport type {\n _SERVICE as SatelliteActor,\n CommitBatch as SatelliteCommitBatch,\n InitAssetKey as SatelliteInitAssetKey,\n UploadChunk as SatelliteUploadChunk\n} from '../../declarations/satellite/satellite.did';\nimport type {EncodingType, Storage} from '../types/storage.types';\n\nexport type UploadAsset = Required<Omit<Storage, 'token' | 'encoding' | 'description'>> &\n Pick<Storage, 'token' | 'encoding' | 'description'>;\n\nexport type UploadAssetActor = SatelliteActor;\nexport type UploadAssetWithProposalActor = ConsoleActor | SatelliteActor;\n\ntype InitAssetKey = SatelliteInitAssetKey | ConsoleInitAssetKey;\ntype UploadChunk = SatelliteUploadChunk | ConsoleUploadChunk;\ntype CommitBatch = SatelliteCommitBatch | ConsoleCommitBatch;\n\nexport const uploadAsset = async ({\n asset: {data, headers, ...restAsset},\n actor\n}: {\n asset: UploadAsset;\n actor: UploadAssetActor;\n}): Promise<void> => {\n const {init_asset_upload, upload_asset_chunk, commit_asset_upload} = actor;\n\n const {batch_id: batchId} = await init_asset_upload(mapInitAssetUploadParams(restAsset));\n\n const {chunkIds} = await uploadChunks({data, uploadFn: upload_asset_chunk, batchId});\n\n await commitAsset({\n commitFn: commit_asset_upload,\n batchId,\n data,\n headers,\n chunkIds\n });\n};\n\nexport const uploadAssetWithProposal = async ({\n asset: {data, headers, ...restAsset},\n proposalId,\n actor\n}: {\n asset: UploadAsset;\n proposalId: bigint;\n actor: UploadAssetWithProposalActor;\n}): Promise<void> => {\n const {init_proposal_asset_upload, upload_proposal_asset_chunk, commit_proposal_asset_upload} =\n actor;\n\n const {batch_id: batchId} = await init_proposal_asset_upload(\n mapInitAssetUploadParams(restAsset),\n proposalId\n );\n\n const {chunkIds} = await uploadChunks({data, uploadFn: upload_proposal_asset_chunk, batchId});\n\n await commitAsset({\n commitFn: commit_proposal_asset_upload,\n batchId,\n data,\n headers,\n chunkIds\n });\n};\n\nconst mapInitAssetUploadParams = ({\n filename,\n collection,\n token,\n fullPath,\n encoding,\n description\n}: Omit<UploadAsset, 'headers' | 'data'>): InitAssetKey => ({\n collection,\n full_path: fullPath,\n name: filename,\n token: toNullable<string>(token),\n encoding_type: toNullable<EncodingType>(encoding),\n description: toNullable(description)\n});\n\nconst commitAsset = async ({\n commitFn,\n batchId,\n chunkIds,\n headers,\n data\n}: {\n commitFn: (commitBatch: CommitBatch) => Promise<void>;\n batchId: bigint;\n chunkIds: UploadChunkResult[];\n} & Pick<UploadAsset, 'headers' | 'data'>) => {\n const contentType: [[string, string]] | undefined =\n headers.find(([type, _]) => type.toLowerCase() === 'content-type') === undefined &&\n data.type !== undefined &&\n data.type !== ''\n ? [['Content-Type', data.type]]\n : undefined;\n\n await commitFn({\n batch_id: batchId,\n chunk_ids: chunkIds.map(({chunk_id}: UploadChunkResult) => chunk_id),\n headers: [...headers, ...(contentType ?? [])]\n });\n};\n\nconst uploadChunks = async ({\n data,\n uploadFn,\n batchId\n}: {\n batchId: bigint;\n} & Pick<UploadAsset, 'data'> &\n Pick<UploadChunkParams, 'uploadFn'>): Promise<{chunkIds: UploadChunkResult[]}> => {\n // https://forum.dfinity.org/t/optimal-upload-chunk-size/20444/23?u=peterparker\n const chunkSize = 1900000;\n\n const uploadChunks: UploadChunkParams[] = [];\n\n // Prevent transforming chunk to arrayBuffer error: The requested file could not be read, typically due to permission problems that have occurred after a reference to a file was acquired.\n const clone: Blob = isBrowser() ? new Blob([await data.arrayBuffer()]) : data;\n\n // Split data into chunks\n let orderId = 0n;\n for (let start = 0; start < clone.size; start += chunkSize) {\n const chunk: Blob = clone.slice(start, start + chunkSize);\n\n uploadChunks.push({\n batchId,\n chunk,\n uploadFn,\n orderId\n });\n\n orderId++;\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({uploadChunks})) {\n chunkIds = [...chunkIds, ...results];\n }\n\n return {chunkIds};\n};\n\nasync function* batchUploadChunks({\n uploadChunks,\n limit = 12\n}: {\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(batch.map((params) => uploadChunk(params)));\n yield result;\n }\n}\n\ninterface UploadChunkResult {\n chunk_id: bigint;\n}\n\ninterface UploadChunkParams {\n batchId: bigint;\n chunk: Blob;\n uploadFn: (uploadChunk: UploadChunk) => Promise<UploadChunkResult>;\n orderId: bigint;\n}\n\nconst uploadChunk = async ({\n batchId,\n chunk,\n uploadFn,\n orderId\n}: UploadChunkParams): Promise<UploadChunkResult> =>\n uploadFn({\n batch_id: batchId,\n content: new Uint8Array(await chunk.arrayBuffer()),\n order_id: toNullable(orderId)\n });\n", "export const sha256ToBase64String = (sha256: Iterable<number>): string =>\n btoa([...sha256].map((c) => String.fromCharCode(c)).join(''));\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["assertNonNullish", "isNullish", "Store", "data", "callback", "callbackId", "id", "AuthStore", "_AuthStore", "Store", "authUser", "callback", "unsubscribe", "emit", "message", "detail", "$event", "ERROR_USER_INTERRUPT", "isNullish", "DELEGATION_IDENTITY_EXPIRATION", "ALLOW_PIN_AUTHENTICATION", "II_POPUP", "NFID_POPUP", "INTERNET_COMPUTER_ORG", "isNullish", "nonNullish", "DOCKER_CONTAINER_URL", "DOCKER_INTERNET_IDENTITY_ID", "EnvStore", "_EnvStore", "Store", "env", "callback", "unsubscribe", "isNullish", "jsonReplacer", "jsonReviver", "toArray", "data", "blob", "fromArray", "isBrowser", "popupCenter", "width", "height", "p", "isNullish", "innerWidth", "innerHeight", "y", "x", "InternetIdentityProvider", "#domain", "domain", "windowed", "identityProviderUrl", "container", "EnvStore", "isNullish", "INTERNET_COMPUTER_ORG", "env", "internetIdentityId", "nonNullish", "DOCKER_INTERNET_IDENTITY_ID", "containerHost", "protocol", "DOCKER_CONTAINER_URL", "popupCenter", "II_POPUP", "NFIDProvider", "#appName", "#logoUrl", "appName", "logoUrl", "NFID_POPUP", "Actor", "isNullish", "isNullish", "HttpAgent", "nonNullish", "createAgent", "identity", "container", "host", "nonNullish", "DOCKER_CONTAINER_URL", "shouldFetchRootKey", "HttpAgent", "AgentStore", "_AgentStore", "#agents", "isNullish", "identity", "rest", "key", "agent", "createAgent", "ActorStore", "_ActorStore", "#actors", "isNullish", "satelliteId", "identity", "actorKey", "rest", "key", "actor", "idlFactory", "canisterId", "agent", "AgentStore", "Actor", "SignInError", "SignInInitError", "SignInUserInterruptError", "InitError", "ListError", "AuthClient", "createAuthClient", "isNullish", "nonNullish", "isSatelliteError", "error", "type", "JUNO_DATASTORE_ERROR_USER_CANNOT_UPDATE", "fromNullable", "isNullish", "nonNullish", "mapData", "data", "i", "err", "fromNullable", "toNullable", "toSetDoc", "doc", "data", "version", "description", "toNullable", "a", "toDelDoc", "fromDoc", "key", "owner", "docDescription", "rest", "fromNullable", "i", "Principal", "isNullish", "toNullable", "toListMatcherTimestamp", "matcher", "isNullish", "toNullable", "ListError", "toListParams", "paginate", "order", "owner", "Principal", "assertNonNullish", "nonNullish", "satelliteUrl", "customSatelliteId", "customContainer", "satelliteId", "customOrEnvSatelliteId", "container", "customOrEnvContainer", "nonNullish", "containerHost", "protocol", "DOCKER_CONTAINER_URL", "EnvStore", "idlFactory", "IDL", "CommitBatch", "CommitProposal", "ListOrderField", "ListOrder", "TimestampMatcher", "ListMatcher", "ListPaginate", "ListParams", "DeleteControllersArgs", "ControllerScope", "Controller", "DelDoc", "CollectionType", "DelRule", "DeleteProposalAssets", "DepositCyclesArgs", "AssetKey", "AssetEncodingNoContent", "AssetNoContent", "AuthenticationConfigInternetIdentity", "AuthenticationConfig", "ConfigMaxMemorySize", "DbConfig", "StorageConfigIFrame", "StorageConfigRawAccess", "StorageConfigRedirect", "StorageConfig", "Config", "Doc", "ProposalStatus", "AssetsUpgradeOptions", "SegmentsDeploymentOptions", "ProposalType", "Proposal", "Memory", "Permission", "RateConfig", "Rule", "HttpRequest", "StreamingCallbackToken", "StreamingStrategy", "HttpResponse", "StreamingCallbackHttpResponse", "InitAssetKey", "InitUploadResult", "ListResults", "CustomDomain", "ListResults_1", "ListProposalsOrder", "ListProposalsPaginate", "ListProposalsParams", "ProposalKey", "ListProposalResults", "ListRulesMatcher", "ListRulesParams", "ListRulesResults", "MemorySize", "SetController", "SetControllersArgs", "SetDoc", "SetRule", "UploadChunk", "UploadChunkResult", "idlFactory", "IDL", "CommitBatch", "CommitProposal", "ListOrderField", "ListOrder", "TimestampMatcher", "ListMatcher", "ListPaginate", "ListParams", "DeleteControllersArgs", "ControllerScope", "Controller", "DelDoc", "CollectionType", "DelRule", "DeleteProposalAssets", "DepositCyclesArgs", "AssetKey", "AssetEncodingNoContent", "AssetNoContent", "AuthenticationConfigInternetIdentity", "AuthenticationConfig", "ConfigMaxMemorySize", "DbConfig", "StorageConfigIFrame", "StorageConfigRawAccess", "StorageConfigRedirect", "StorageConfig", "Config", "Doc", "ProposalStatus", "AssetsUpgradeOptions", "SegmentsDeploymentOptions", "ProposalType", "Proposal", "Memory", "Permission", "RateConfig", "Rule", "HttpRequest", "StreamingCallbackToken", "StreamingStrategy", "HttpResponse", "StreamingCallbackHttpResponse", "InitAssetKey", "InitUploadResult", "ListResults", "CustomDomain", "ListResults_1", "ListProposalsOrder", "ListProposalsPaginate", "ListProposalsParams", "ProposalKey", "ListProposalResults", "ListRulesMatcher", "ListRulesParams", "ListRulesResults", "MemorySize", "SetController", "SetControllersArgs", "SetDoc", "SetRule", "UploadChunk", "UploadChunkResult", "getSatelliteActor", "satellite", "certified", "getActor", "idlFactory", "getSatelliteExtendedActor", "rest", "customSatelliteId", "customContainer", "satelliteId", "customOrEnvSatelliteId", "assertNonNullish", "container", "customOrEnvContainer", "ActorStore", "getDoc", "collection", "key", "rest", "get_doc", "getSatelliteActor", "doc", "fromNullable", "isNullish", "fromDoc", "getManyDocs", "docs", "get_many_docs", "payload", "resultsDocs", "results", "resultDoc", "nonNullish", "setDoc", "set_doc", "toSetDoc", "updatedDoc", "setManyDocs", "set_many_docs", "updatedDocs", "deleteDoc", "del_doc", "toDelDoc", "deleteManyDocs", "del_many_docs", "deleteFilteredDocs", "filter", "del_filtered_docs", "toListParams", "listDocs", "list_docs", "items", "items_page", "items_length", "matches_length", "matches_pages", "item", "dataArray", "owner", "description", "version", "mapData", "countDocs", "count_docs", "DEFAULT_READ_OPTIONS", "AnonymousIdentity", "nonNullish", "getAnyIdentity", "identity", "nonNullish", "getIdentity", "AnonymousIdentity", "getDoc", "satellite", "options", "rest", "identity", "getAnyIdentity", "DEFAULT_READ_OPTIONS", "getManyDocs", "setDoc", "setManyDocs", "deleteDoc", "deleteManyDocs", "deleteFilteredDocs", "filter", "listDocs", "countDocs", "initUser", "provider", "identity", "getIdentity", "isNullish", "InitError", "userId", "loadUser", "getDoc", "user", "nonNullish", "createUser", "error", "t", "
|
|
4
|
+
"sourcesContent": ["import {assertNonNullish} from '@dfinity/utils';\nimport type {Asset, AssetEncoding, AssetKey, EncodingType, Storage} from '@junobuild/storage';\nimport {initAuthTimeoutWorker} from './services/auth-timout.services';\nimport {initAuth} from './services/auth.services';\nimport {AuthStore} from './stores/auth.store';\nimport {EnvStore} from './stores/env.store';\nimport type {User} from './types/auth';\nimport type {Environment, UserEnvironment} from './types/env';\nimport type {Unsubscribe} from './types/subscription';\nimport {envContainer, envSatelliteId} from './utils/window.env.utils';\nexport * from './providers/auth.providers';\nexport {getIdentityOnce, signIn, signOut, unsafeIdentity} from './services/auth.services';\nexport * from './services/doc.services';\nexport * from './services/functions.services';\nexport * from './services/storage.services';\nexport type * from './types/auth';\nexport type * from './types/doc';\nexport type * from './types/env';\nexport * from './types/errors';\nexport {ListOrder, ListPaginate, ListParams, ListResults} from './types/list';\nexport type * from './types/satellite';\nexport type * from './types/storage.types';\nexport type * from './types/subscription';\nexport type * from './types/utility';\nexport type {Asset, AssetEncoding, AssetKey, EncodingType, Storage};\n\nconst parseEnv = (userEnv?: UserEnvironment): Environment => {\n const satelliteId = userEnv?.satelliteId ?? envSatelliteId();\n\n assertNonNullish(satelliteId, 'Satellite ID is not configured. Juno cannot be initialized.');\n\n const container = userEnv?.container ?? envContainer();\n\n return {\n satelliteId,\n internetIdentityId: userEnv?.internetIdentityId,\n workers: userEnv?.workers,\n container\n };\n};\n\n/**\n * Initializes Juno with the provided optional environment parameters.\n * If no environment is provided, the variables injected by the Vite or NextJS plugins will be used.\n * @deprecated Use {@link initSatellite} instead.\n * @param {UserEnvironment} [userEnv] - The optional user environment configuration.\n * @returns {Promise<Unsubscribe[]>} A promise that resolves to an array of unsubscribe functions.\n */\nexport const initJuno = (userEnv?: UserEnvironment): Promise<Unsubscribe[]> =>\n initSatellite(userEnv);\n\n/**\n * Initializes a Juno satellite with the provided optional environment parameters.\n * If no environment is provided, the variables injected by the Vite or NextJS plugins will be used.\n * @param {UserEnvironment} [userEnv] - The optional user environment configuration.\n * @returns {Promise<Unsubscribe[]>} A promise that resolves to an array of unsubscribe functions.\n */\nexport const initSatellite = async (userEnv?: UserEnvironment): Promise<Unsubscribe[]> => {\n const env = parseEnv(userEnv);\n\n EnvStore.getInstance().set(env);\n\n await initAuth();\n\n const authSubscribe =\n env.workers?.auth !== undefined ? initAuthTimeoutWorker(env.workers.auth) : undefined;\n\n return [...(authSubscribe ? [authSubscribe] : [])];\n};\n\n/**\n * Subscribes to authentication state changes. i.e. each time a user signs in or signs out, the callback will be triggered.\n * @param {function(User | null): void} callback - The callback function to execute when the authentication state changes.\n * @returns {Unsubscribe} A function to unsubscribe from the authentication state changes.\n */\nexport const authSubscribe = (callback: (authUser: User | null) => void): Unsubscribe =>\n AuthStore.getInstance().subscribe(callback);\n", "import {isNullish} from '@dfinity/utils';\nimport {AuthStore} from '../stores/auth.store';\nimport type {User} from '../types/auth';\nimport type {EnvironmentWorker} from '../types/env';\nimport type {PostMessage, PostMessageDataResponseAuth} from '../types/post-message';\nimport type {Unsubscribe} from '../types/subscription';\nimport {emit} from '../utils/events.utils';\nimport {signOut} from './auth.services';\n\nexport const initAuthTimeoutWorker = (auth: EnvironmentWorker): Unsubscribe => {\n const workerUrl = auth === true ? './workers/auth.worker.js' : auth;\n const worker = new Worker(workerUrl);\n\n const timeoutSignOut = async () => {\n emit({message: 'junoSignOutAuthTimer'});\n await signOut();\n };\n\n worker.onmessage = async ({data}: MessageEvent<PostMessage<PostMessageDataResponseAuth>>) => {\n const {msg, data: value} = data;\n\n switch (msg) {\n case 'junoSignOutAuthTimer':\n await timeoutSignOut();\n return;\n case 'junoDelegationRemainingTime':\n emit({message: 'junoDelegationRemainingTime', detail: value?.authRemainingTime});\n return;\n }\n };\n\n return AuthStore.getInstance().subscribe((user: User | null) => {\n if (isNullish(user)) {\n worker.postMessage({msg: 'junoStopAuthTimer'});\n return;\n }\n\n worker.postMessage({msg: 'junoStartAuthTimer'});\n });\n};\n", "export abstract class Store<T> {\n private callbacks: {id: symbol; callback: (data: T | null) => void}[] = [];\n\n protected populate(data: T | null) {\n this.callbacks.forEach(({callback}: {id: symbol; callback: (data: T | null) => void}) =>\n callback(data)\n );\n }\n\n subscribe(callback: (data: T | null) => void): () => void {\n const callbackId = Symbol();\n this.callbacks.push({id: callbackId, callback});\n\n return () =>\n (this.callbacks = this.callbacks.filter(\n ({id}: {id: symbol; callback: (data: T | null) => void}) => id !== callbackId\n ));\n }\n}\n", "import type {User} from '../types/auth';\nimport type {Unsubscribe} from '../types/subscription';\nimport {Store} from './_store';\n\nexport class AuthStore extends Store<User | null> {\n private static instance: AuthStore;\n\n private authUser: User | null = null;\n\n private constructor() {\n super();\n }\n\n static getInstance() {\n if (!AuthStore.instance) {\n AuthStore.instance = new AuthStore();\n }\n return AuthStore.instance;\n }\n\n set(authUser: User | null) {\n this.authUser = authUser;\n\n this.populate(authUser);\n }\n\n get(): User | null {\n return this.authUser;\n }\n\n override subscribe(callback: (data: User | null) => void): Unsubscribe {\n const unsubscribe: () => void = super.subscribe(callback);\n\n callback(this.authUser);\n\n return unsubscribe;\n }\n\n reset() {\n this.authUser = null;\n\n this.populate(this.authUser);\n }\n}\n", "export const emit = <T>({message, detail}: {message: string; detail?: T | undefined}) => {\n const $event: CustomEvent<T> = new CustomEvent<T>(message, {detail, bubbles: true});\n document.dispatchEvent($event);\n};\n", "import type {Identity} from '@dfinity/agent';\nimport {type AuthClient, ERROR_USER_INTERRUPT} from '@dfinity/auth-client';\nimport {isNullish} from '@dfinity/utils';\nimport {\n ALLOW_PIN_AUTHENTICATION,\n DELEGATION_IDENTITY_EXPIRATION\n} from '../constants/auth.constants';\nimport {InternetIdentityProvider} from '../providers/auth.providers';\nimport {ActorStore} from '../stores/actor.store';\nimport {AgentStore} from '../stores/agent.store';\nimport {AuthStore} from '../stores/auth.store';\nimport type {Provider, SignInOptions} from '../types/auth';\nimport {SignInError, SignInInitError, SignInUserInterruptError} from '../types/errors';\nimport {createAuthClient} from '../utils/auth.utils';\nimport {initUser} from './_user.services';\n\nlet authClient: AuthClient | undefined | null;\n\nexport const initAuth = async (provider?: Provider) => {\n authClient = authClient ?? (await createAuthClient());\n\n const isAuthenticated: boolean = (await authClient?.isAuthenticated()) ?? false;\n\n if (!isAuthenticated) {\n return;\n }\n\n const user = await initUser(provider);\n AuthStore.getInstance().set(user);\n};\n\n/**\n * Signs in a user with the specified options.\n *\n * @param {SignInOptions} [options] - The options for signing in.\n * @returns {Promise<void>} A promise that resolves when the sign-in process is complete and the authenticated user is initialized.\n * @throws {SignInError} If the sign-in process fails or no authentication client is available.\n */\nexport const signIn = (options?: SignInOptions): Promise<void> =>\n /* eslint-disable no-async-promise-executor */\n new Promise<void>(async (resolve, reject) => {\n if (isNullish(authClient)) {\n reject(\n new SignInInitError(\n 'No client is ready to perform a sign-in. Have you initialized the Satellite?'\n )\n );\n return;\n }\n\n const provider = options?.provider ?? new InternetIdentityProvider({});\n\n await authClient.login({\n onSuccess: async () => {\n await initAuth(provider.id);\n resolve();\n },\n onError: (error?: string) => {\n if (error === ERROR_USER_INTERRUPT) {\n reject(new SignInUserInterruptError(error));\n return;\n }\n\n reject(new SignInError(error));\n },\n maxTimeToLive: options?.maxTimeToLive ?? DELEGATION_IDENTITY_EXPIRATION,\n allowPinAuthentication: options?.allowPin ?? ALLOW_PIN_AUTHENTICATION,\n ...(options?.derivationOrigin !== undefined && {derivationOrigin: options.derivationOrigin}),\n ...provider.signInOptions({\n windowed: options?.windowed\n })\n });\n });\n\n/**\n * Signs out the current user.\n * @returns {Promise<void>} A promise that resolves when the sign-out process is complete.\n */\nexport const signOut = async (): Promise<void> => {\n await resetAuth();\n\n // Recreate an HttpClient immediately because next sign-in, if window is not reloaded, would fail if the agent is created within the process.\n // For example, Safari blocks the Internet Identity (II) window if the agent is created during the interaction.\n // Agent-js must be created either globally or at least before performing a sign-in.\n authClient = await createAuthClient();\n};\n\n/**\n * \u2139\uFE0F Exposed for testing purpose only. Should not be leaked to consumer or used by the library.\n */\nexport const resetAuth = async () => {\n await authClient?.logout();\n\n // Reset local object otherwise next sign in (sign in - sign out - sign in) might not work out - i.e. agent-js might not recreate the delegation or identity if not resetted\n // Technically we do not need this since we recreate the agent below. We just keep it to make the reset explicit.\n authClient = null;\n\n AuthStore.getInstance().reset();\n\n ActorStore.getInstance().reset();\n AgentStore.getInstance().reset();\n};\n\nexport const getIdentity = (): Identity | undefined => authClient?.getIdentity();\n\n/**\n * Returns the identity of a signed-in user or an anonymous identity.\n * This function is useful for loading an identity in web workers.\n * Used to imperatively get the identity. Please be certain before using it.\n * @returns {Promise<Identity>} A promise that resolves to the identity of the user or an anonymous identity.\n */\nexport const unsafeIdentity = async (): Promise<Identity> =>\n (authClient ?? (await createAuthClient())).getIdentity();\n\n/**\n * Returns the current identity if the user is authenticated.\n *\n * \u26A0\uFE0F Use this function imperatively only. Do **not** persist the identity in global state.\n * It is intended for short-lived or one-time operations.\n *\n * Typical use case is to enable developers to implement custom features for the Internet Computer:\n * - Passing the identity to temporarily create an actor or agent to call a canister\n * - Signing a message or making a one-time authenticated call\n *\n * @returns The authenticated identity, or null if unavailable.\n */\nexport const getIdentityOnce = async (): Promise<Identity | null> => {\n const user = AuthStore.getInstance().get();\n\n if (isNullish(user)) {\n return null;\n }\n\n const authenticated = (await authClient?.isAuthenticated()) ?? false;\n\n if (!authenticated) {\n return null;\n }\n\n return authClient?.getIdentity() ?? null;\n};\n", "// How long the delegation identity should remain valid?\n// e.g. BigInt(7 * 24 * 60 * 60 * 1000 * 1000 * 1000) = 7 days in nanoseconds\n// For Juno: 4 hours\nexport const DELEGATION_IDENTITY_EXPIRATION = BigInt(4 * 60 * 60 * 1000 * 1000 * 1000);\n\n// We consider PIN authentication as \"insecure\" because users can easily lose their PIN if they do not register a passphrase, especially since Safari clears the browser cache every two weeks in cases of inactivity.\n// That's why we disable it by default.\nexport const ALLOW_PIN_AUTHENTICATION = false;\n\nexport const II_POPUP: {width: number; height: number} = {width: 576, height: 576};\nexport const NFID_POPUP: {width: number; height: number} = {width: 505, height: 705};\n\nexport const INTERNET_COMPUTER_ORG = 'internetcomputer.org';\n\n// Worker\nexport const AUTH_TIMER_INTERVAL = 1000;\n", "import {isNullish, nonNullish} from '@dfinity/utils';\nimport {II_POPUP, INTERNET_COMPUTER_ORG, NFID_POPUP} from '../constants/auth.constants';\nimport {DOCKER_CONTAINER_URL, DOCKER_INTERNET_IDENTITY_ID} from '../constants/container.constants';\nimport {EnvStore} from '../stores/env.store';\nimport type {\n InternetIdentityConfig,\n InternetIdentityDomain,\n NFIDConfig,\n Provider,\n SignInOptions\n} from '../types/auth';\nimport {popupCenter} from '../utils/window.utils';\n\n/**\n * Options for signing in with an authentication provider.\n * @interface AuthProviderSignInOptions\n */\nexport interface AuthProviderSignInOptions {\n /**\n * The URL of the identity provider - commonly Internet Identity.\n */\n identityProvider: string;\n /**\n * Optional features for the window opener.\n */\n windowOpenerFeatures?: string;\n}\n\n/**\n * Common traits for all authentication providers\n * @interface AuthProvider\n */\nexport interface AuthProvider {\n /**\n * The unique identifier of the provider.\n */\n readonly id: Provider;\n /**\n * Method to get the sign-in options for the provider.\n * @param options - The sign-in options.\n * @returns The sign-in options for the provider that can be use to effectively perform a sign-in.\n */\n signInOptions: (options: Pick<SignInOptions, 'windowed'>) => AuthProviderSignInOptions;\n}\n\n/**\n * Internet Identity authentication provider.\n * @class InternetIdentityProvider\n * @implements {AuthProvider}\n */\nexport class InternetIdentityProvider implements AuthProvider {\n #domain?: InternetIdentityDomain;\n\n /**\n * Creates an instance of InternetIdentityProvider.\n * @param {InternetIdentityConfig} config - The configuration for Internet Identity.\n */\n constructor({domain}: InternetIdentityConfig) {\n this.#domain = domain;\n }\n\n /**\n * Gets the identifier of the provider.\n * @returns {Provider} The identifier of the provider - `internet_identity`.\n */\n get id(): Provider {\n return 'internet_identity';\n }\n\n /**\n * Gets the sign-in options for Internet Identity.\n * @param {Pick<SignInOptions, 'windowed'>} options - The sign-in options.\n * @returns {AuthProviderSignInOptions} The sign-in options for Internet Identity.\n */\n signInOptions({windowed}: Pick<SignInOptions, 'windowed'>): AuthProviderSignInOptions {\n const identityProviderUrl = (): string => {\n const container = EnvStore.getInstance().get()?.container;\n\n // Production\n if (isNullish(container) || container === false) {\n return `https://identity.${this.#domain ?? INTERNET_COMPUTER_ORG}`;\n }\n\n const env = EnvStore.getInstance().get();\n\n const internetIdentityId =\n nonNullish(env) && nonNullish(env?.internetIdentityId)\n ? env.internetIdentityId\n : DOCKER_INTERNET_IDENTITY_ID;\n\n const {host: containerHost, protocol} = new URL(\n container === true ? DOCKER_CONTAINER_URL : container\n );\n\n return /apple/i.test(navigator?.vendor)\n ? `${protocol}//${containerHost}?canisterId=${internetIdentityId}`\n : `${protocol}//${internetIdentityId}.${containerHost.replace('127.0.0.1', 'localhost')}`;\n };\n\n return {\n ...(windowed !== false && {\n windowOpenerFeatures: popupCenter(II_POPUP)\n }),\n identityProvider: identityProviderUrl()\n };\n }\n}\n\n/**\n * NFID authentication provider.\n * @class NFIDProvider\n * @implements {AuthProvider}\n */\nexport class NFIDProvider implements AuthProvider {\n #appName: string;\n #logoUrl: string;\n\n /**\n * Creates an instance of NFIDProvider.\n * @param {NFIDConfig} config - The configuration for NFID.\n */\n constructor({appName, logoUrl}: NFIDConfig) {\n this.#appName = appName;\n this.#logoUrl = logoUrl;\n }\n\n /**\n * Gets the identifier of the provider.\n * @returns {Provider} The identifier of the provider- nfid.\n */\n get id(): Provider {\n return 'nfid';\n }\n\n /**\n * Gets the sign-in options for NFID.\n * @param {Pick<SignInOptions, 'windowed'>} options - The sign-in options.\n * @returns {AuthProviderSignInOptions} The sign-in options to effectively sign-in with NFID.\n */\n signInOptions({windowed}: Pick<SignInOptions, 'windowed'>): AuthProviderSignInOptions {\n return {\n ...(windowed !== false && {\n windowOpenerFeatures: popupCenter(NFID_POPUP)\n }),\n identityProvider: `https://nfid.one/authenticate/?applicationName=${encodeURI(\n this.#appName\n )}&applicationLogo=${encodeURI(this.#logoUrl)}`\n };\n }\n}\n", "export const DOCKER_CONTAINER_URL = 'http://127.0.0.1:5987';\nexport const DOCKER_INTERNET_IDENTITY_ID = 'rdmx6-jaaaa-aaaaa-aaadq-cai';\n", "import type {Environment} from '../types/env';\nimport {Store} from './_store';\n\nexport class EnvStore extends Store<Environment | undefined> {\n private static instance: EnvStore;\n\n private env: Environment | undefined | null;\n\n private constructor() {\n super();\n }\n\n static getInstance() {\n if (!EnvStore.instance) {\n EnvStore.instance = new EnvStore();\n }\n return EnvStore.instance;\n }\n\n set(env: Environment | undefined) {\n this.env = env;\n\n this.populate(env);\n }\n\n get(): Environment | undefined | null {\n return this.env;\n }\n\n reset() {\n this.env = null;\n }\n\n override subscribe(callback: (data: Environment | null | undefined) => void): () => void {\n const unsubscribe: () => void = super.subscribe(callback);\n\n callback(this.env);\n\n return unsubscribe;\n }\n}\n", "import {isNullish} from '@dfinity/utils';\nimport {isBrowser} from '@junobuild/utils';\n\nexport const popupCenter = ({\n width,\n height\n}: {\n width: number;\n height: number;\n}): string | undefined => {\n if (!isBrowser()) {\n return undefined;\n }\n\n if (isNullish(window) || isNullish(window.top)) {\n return undefined;\n }\n\n const {\n top: {innerWidth, innerHeight}\n } = window;\n\n const y = innerHeight / 2 + screenY - height / 2;\n const x = innerWidth / 2 + screenX - width / 2;\n\n return `toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=no, copyhistory=no, width=${width}, height=${height}, top=${y}, left=${x}`;\n};\n", "import {jsonReplacer, jsonReviver} from '@dfinity/utils';\n\n/**\n * Converts data to a Uint8Array for transmission or storage.\n * @template T\n * @param {T} data - The data to convert.\n * @returns {Promise<Uint8Array>} A promise that resolves to a Uint8Array representation of the data.\n */\nexport const toArray = async <T>(data: T): Promise<Uint8Array> => {\n const blob: Blob = new Blob([JSON.stringify(data, jsonReplacer)], {\n type: 'application/json; charset=utf-8'\n });\n return new Uint8Array(await blob.arrayBuffer());\n};\n\n/**\n * Converts a Uint8Array or number array back to the original data type.\n * @template T\n * @param {(Uint8Array | number[])} data - The array to convert.\n * @returns {Promise<T>} A promise that resolves to the original data.\n */\nexport const fromArray = async <T>(data: Uint8Array | number[]): Promise<T> => {\n const blob: Blob = new Blob([data instanceof Uint8Array ? data : new Uint8Array(data)], {\n type: 'application/json; charset=utf-8'\n });\n return JSON.parse(await blob.text(), jsonReviver);\n};\n", "/**\n * Checks if the current environment is a browser.\n * @returns {boolean} True if the current environment is a browser, false otherwise.\n */\nexport const isBrowser = (): boolean => typeof window !== `undefined`;\n", "import {Actor, type ActorSubclass} from '@dfinity/agent';\nimport type {ActorMethod} from '@dfinity/agent/lib/esm/actor';\nimport type {IDL} from '@dfinity/candid';\nimport {isNullish} from '@dfinity/utils';\nimport type {ActorKey} from '../types/actor';\nimport type {SatelliteContext} from '../types/satellite';\nimport {AgentStore} from './agent.store';\n\ntype ActorParams = {\n idlFactory: IDL.InterfaceFactory;\n} & Required<Pick<SatelliteContext, 'satelliteId' | 'identity'>> &\n Pick<SatelliteContext, 'container'>;\n\ntype ActorRecord = Record<string, ActorMethod>;\n\nexport class ActorStore {\n private static instance: ActorStore;\n\n #actors: Record<string, ActorSubclass<ActorRecord>> | undefined | null = undefined;\n\n private constructor() {}\n\n static getInstance() {\n if (isNullish(ActorStore.instance)) {\n ActorStore.instance = new ActorStore();\n }\n return ActorStore.instance;\n }\n\n async getActor<T = ActorRecord>({\n satelliteId,\n identity,\n actorKey,\n ...rest\n }: ActorParams & {actorKey: ActorKey}): Promise<ActorSubclass<T>> {\n const key = `${actorKey}#${identity.getPrincipal().toText()}#${satelliteId};`;\n\n if (isNullish(this.#actors) || isNullish(this.#actors[key])) {\n const actor = await this.createActor({satelliteId, identity, ...rest});\n\n this.#actors = {\n ...(this.#actors ?? {}),\n [key]: actor\n };\n\n return actor as ActorSubclass<T>;\n }\n\n return this.#actors[key] as ActorSubclass<T>;\n }\n\n reset() {\n this.#actors = null;\n }\n\n private async createActor<T = ActorRecord>({\n idlFactory,\n satelliteId: canisterId,\n ...rest\n }: ActorParams): Promise<ActorSubclass<T>> {\n const agent = await AgentStore.getInstance().getAgent(rest);\n\n return Actor.createActor(idlFactory, {\n agent,\n canisterId\n });\n }\n}\n", "import type {Agent, HttpAgent} from '@dfinity/agent';\nimport {isNullish} from '@dfinity/utils';\nimport {type CreateAgentParams, createAgent} from './_agent.factory';\n\nexport class AgentStore {\n private static instance: AgentStore;\n\n #agents: Record<string, HttpAgent> | undefined | null = undefined;\n\n private constructor() {}\n\n static getInstance() {\n if (isNullish(AgentStore.instance)) {\n AgentStore.instance = new AgentStore();\n }\n return AgentStore.instance;\n }\n\n async getAgent({identity, ...rest}: CreateAgentParams): Promise<Agent> {\n const key = identity.getPrincipal().toText();\n\n if (isNullish(this.#agents) || isNullish(this.#agents[key])) {\n const agent = await createAgent({identity, ...rest});\n\n this.#agents = {\n ...(this.#agents ?? {}),\n [key]: agent\n };\n\n return agent;\n }\n\n return this.#agents[key];\n }\n\n reset() {\n this.#agents = null;\n }\n}\n", "import {HttpAgent} from '@dfinity/agent';\nimport {nonNullish} from '@dfinity/utils';\nimport {DOCKER_CONTAINER_URL} from '../constants/container.constants';\nimport type {SatelliteContext} from '../types/satellite';\n\nexport type CreateAgentParams = Required<Pick<SatelliteContext, 'identity'>> &\n Pick<SatelliteContext, 'container'>;\n\nexport const createAgent = async ({identity, container}: CreateAgentParams): Promise<HttpAgent> => {\n const localActor = nonNullish(container) && container !== false;\n\n const host = localActor\n ? container === true\n ? DOCKER_CONTAINER_URL\n : container\n : 'https://icp-api.io';\n\n const shouldFetchRootKey = nonNullish(container);\n\n return await HttpAgent.create({\n identity,\n shouldFetchRootKey,\n host\n });\n};\n", "export class SignInError extends Error {}\nexport class SignInInitError extends Error {}\nexport class SignInUserInterruptError extends Error {}\n\nexport class InitError extends Error {}\n\nexport class ListError extends Error {}\n", "import {AuthClient} from '@dfinity/auth-client';\n\nexport const createAuthClient = (): Promise<AuthClient> =>\n AuthClient.create({\n idleOptions: {\n disableIdle: true,\n disableDefaultIdleCallback: true\n }\n });\n", "import type {Identity} from '@dfinity/agent';\nimport {isNullish, nonNullish} from '@dfinity/utils';\nimport {isSatelliteError, JUNO_DATASTORE_ERROR_USER_CANNOT_UPDATE} from '@junobuild/errors';\nimport type {Provider, User, UserData} from '../types/auth';\nimport {InitError} from '../types/errors';\nimport {getIdentity} from './auth.services';\nimport {getDoc, setDoc} from './doc.services';\n\nexport const initUser = async (provider?: Provider): Promise<User> => {\n const identity: Identity | undefined = getIdentity();\n\n if (isNullish(identity)) {\n throw new InitError('No identity to initialize the user. Have you initialized Juno?');\n }\n\n const userId = identity.getPrincipal().toText();\n\n const loadUser = (): Promise<User | undefined> =>\n getDoc<UserData>({\n collection: `#user`,\n key: userId\n });\n\n const user = await loadUser();\n\n if (nonNullish(user)) {\n return user;\n }\n\n try {\n return await createUser({userId, provider});\n } catch (error: unknown) {\n // When a user signs in for the first time and get user returns `undefined`,\n // a new user entry is created. If the browser is reloaded and get user\n // still returns `undefined`, another try is made to create user entry, which is not\n // allowed since only the controller can update users, assuming the entry has been\n // created in the meantime. To prevent errors, we reload the user data,\n // as the issue indicates the user entity exists.\n if (isSatelliteError({error, type: JUNO_DATASTORE_ERROR_USER_CANNOT_UPDATE})) {\n const userOnCreateError = await loadUser();\n\n if (nonNullish(userOnCreateError)) {\n return userOnCreateError;\n }\n }\n\n throw error;\n }\n};\n\nconst createUser = ({\n userId,\n ...rest\n}: {\n userId: string;\n} & UserData): Promise<User> =>\n setDoc<UserData>({\n collection: `#user`,\n doc: {\n key: userId,\n data: rest\n }\n });\n", "export const isSatelliteError = ({error, type}: {error: unknown; type: string}): boolean => {\n if (typeof error === 'string') {\n return error.includes(type);\n }\n\n if (error instanceof Error) {\n return error.message.includes(type);\n }\n\n return false;\n};\n", "export const JUNO_CDN_PROPOSALS_ERROR_CANNOT_SUBMIT = 'juno.cdn.proposals.error.cannot_submit';\nexport const JUNO_CDN_PROPOSALS_ERROR_CANNOT_SUBMIT_INVALID_STATUS =\n 'juno.cdn.proposals.error.cannot_submit_invalid_status';\n\nexport const JUNO_CDN_PROPOSALS_ERROR_CANNOT_REJECT = 'juno.cdn.proposals.error.cannot_reject';\nexport const JUNO_CDN_PROPOSALS_ERROR_CANNOT_REJECT_INVALID_STATUS =\n 'juno.cdn.proposals.error.cannot_reject_invalid_status';\n\nexport const JUNO_CDN_PROPOSALS_ERROR_CANNOT_COMMIT = 'juno.cdn.proposals.error.cannot_commit';\nexport const JUNO_CDN_PROPOSALS_ERROR_CANNOT_COMMIT_INVALID_STATUS =\n 'juno.cdn.proposals.error.cannot_commit_invalid_status';\n\nexport const JUNO_CDN_PROPOSALS_ERROR_INVALID_HASH = 'juno.cdn.proposals.error.invalid_hash';\n\nexport const JUNO_CDN_PROPOSALS_ERROR_UNKNOWN_TYPE = 'juno.cdn.proposals.error.unknown_type';\n\nexport const JUNO_CDN_PROPOSALS_ERROR_EMPTY_CONTENT_CHUNKS =\n 'juno.cdn.proposals.error.empty_content_chunks';\nexport const JUNO_CDN_PROPOSALS_ERROR_NOT_CONTENT_CHUNKS_AT_INDEX =\n 'juno.cdn.proposals.error.no_content_chunks_at_index';\n\nexport const JUNO_CDN_PROPOSALS_ERROR_EMPTY_ASSETS = 'juno.cdn.proposals.error.empty_assets';\nexport const JUNO_CDN_PROPOSALS_ERROR_CANNOT_DELETE_ASSETS =\n 'juno.cdn.proposals.error.cannot_delete_assets';\nexport const JUNO_CDN_PROPOSALS_ERROR_CANNOT_DELETE_ASSETS_INVALID_STATUS =\n 'juno.cdn.proposals.error.cannot_delete_assets_invalid_status';\n\nexport const JUNO_CDN_PROPOSALS_ERROR_NEXT_ID_CONVERT = 'juno.cdn.proposals.error.next_id_convert';\nexport const JUNO_CDN_PROPOSALS_ERROR_NEXT_ID_OVERFLOW =\n 'juno.cdn.proposals.error.next_id_overflow';\n\nexport const JUNO_CDN_STORAGE_ERROR_CANNOT_INSERT_ASSET_UNKNOWN_REFERENCE_ID =\n 'juno.cdn.storage.error.cannot_insert_asset_unknown_reference_id';\nexport const JUNO_CDN_STORAGE_ERROR_CANNOT_GET_ASSET_UNKNOWN_REFERENCE_ID =\n 'juno.cdn.storage.error.cannot_get_asset_unknown_reference_id';\nexport const JUNO_CDN_STORAGE_ERROR_CANNOT_INSERT_ASSET_ENCODING_UNKNOWN_REFERENCE_ID =\n 'juno.cdn.storage.error.cannot_insert_asset_encoding_unknown_reference_id';\n\nexport const JUNO_CDN_STORAGE_ERROR_NO_PROPOSAL_FOUND = 'juno.cdn.storage.error.no_proposal_found';\n\nexport const JUNO_CDN_STORAGE_ERROR_INVALID_RELEASES_PATH =\n 'juno.cdn.storage.error.invalid_releases_path';\n\nexport const JUNO_CDN_STORAGE_ERROR_MISSING_RELEASES_DESCRIPTION =\n 'juno.cdn.storage.error.missing_releases_description';\n\nexport const JUNO_CDN_STORAGE_ERROR_INVALID_RELEASES_DESCRIPTION =\n 'juno.cdn.storage.error.invalid_releases_description';\n\nexport const JUNO_CDN_STORAGE_ERROR_INVALID_COLLECTION =\n 'juno.cdn.storage.error.invalid_collection';\n", "export const JUNO_COLLECTIONS_ERROR_MODIFY_RESERVED_COLLECTION =\n 'juno.collections.error.modify_reserved_collection';\nexport const JUNO_COLLECTIONS_ERROR_RESERVED_NAME = 'juno.collections.error.reserved_name';\nexport const JUNO_COLLECTIONS_ERROR_RESERVED_COLLECTION =\n 'juno.collections.error.reserved_collection';\nexport const JUNO_COLLECTIONS_ERROR_RATE_CONFIG_ENABLED =\n 'juno.collections.error.rate_config_enabled';\nexport const JUNO_COLLECTIONS_ERROR_DELETE_PREFIX_RESERVED =\n 'juno.collections.error.prefix_deletion';\nexport const JUNO_COLLECTIONS_ERROR_COLLECTION_NOT_EMPTY = 'juno.collections.error.not_empty';\nexport const JUNO_COLLECTIONS_ERROR_COLLECTION_NOT_FOUND = 'juno.collections.error.not_found';\nexport const JUNO_COLLECTIONS_ERROR_PREFIX_RESERVED = 'juno.collections.error.prefix_reserved';\n", "export const JUNO_ERROR_NO_TIMESTAMP_PROVIDED = 'juno.error.no_timestamp_provided';\nexport const JUNO_ERROR_TIMESTAMP_OUTDATED_OR_FUTURE = 'juno.error.timestamp_outdated_or_future';\nexport const JUNO_ERROR_NO_VERSION_PROVIDED = 'juno.error.no_version_provided';\nexport const JUNO_ERROR_VERSION_OUTDATED_OR_FUTURE = 'juno.error.version_outdated_or_future';\n\nexport const JUNO_DATASTORE_ERROR_CANNOT_WRITE = 'juno.datastore.error.cannot_write';\nexport const JUNO_DATASTORE_ERROR_CANNOT_READ = 'juno.datastore.error.cannot_read';\n\nexport const JUNO_STORAGE_ERROR_UPLOAD_NOT_ALLOWED = 'juno.storage.error.upload_not_allowed';\nexport const JUNO_STORAGE_ERROR_SET_NOT_ALLOWED = 'juno.storage.error.set_not_allowed';\nexport const JUNO_STORAGE_ERROR_CANNOT_COMMIT_INVALID_COLLECTION =\n 'juno.storage.error.cannot_commit_invalid_collection';\nexport const JUNO_STORAGE_ERROR_CANNOT_COMMIT_BATCH = 'juno.storage.error.cannot_commit_batch';\nexport const JUNO_STORAGE_ERROR_ASSET_NOT_FOUND = 'juno.storage.error.asset_not_found';\nexport const JUNO_STORAGE_ERROR_CANNOT_READ_ASSET = 'juno.storage.error.cannot_read_asset';\nexport const JUNO_STORAGE_ERROR_UPLOAD_PATH_COLLECTION_PREFIX =\n 'juno.storage.error.upload_path_collection_prefix';\nexport const JUNO_STORAGE_ERROR_RESERVED_ASSET = 'juno.storage.error.reserved_asset';\nexport const JUNO_STORAGE_ERROR_BATCH_NOT_FOUND = 'juno.storage.error.batch_not_found';\nexport const JUNO_STORAGE_ERROR_CHUNK_NOT_FOUND = 'juno.storage.error.chunk_not_found';\nexport const JUNO_STORAGE_ERROR_CHUNK_NOT_INCLUDED_IN_BATCH =\n 'juno.storage.error.chunk_not_included_in_batch';\nexport const JUNO_STORAGE_ERROR_CHUNK_TO_COMMIT_NOT_FOUND =\n 'juno.storage.error.chunk_to_commit_not_found';\nexport const JUNO_STORAGE_ERROR_ASSET_MAX_ALLOWED_SIZE =\n 'juno.storage.error.asset_max_allowed_size';\n\nexport const JUNO_AUTH_ERROR_NOT_ADMIN_CONTROLLER = 'juno.auth.error.not_admin_controller';\nexport const JUNO_AUTH_ERROR_INVALID_ORIGIN = 'juno.auth.error.invalid_origin';\nexport const JUNO_AUTH_ERROR_NOT_WRITE_CONTROLLER = 'juno.auth.error.not_write_controller';\nexport const JUNO_AUTH_ERROR_NOT_CONTROLLER = 'juno.auth.error.not_controller';\nexport const JUNO_AUTH_ERROR_CALLER_NOT_ALLOWED = 'juno.auth.error.caller.not_allowed';\n\nexport const JUNO_DATASTORE_ERROR_USER_CANNOT_UPDATE = 'juno.datastore.error.user.cannot_update';\nexport const JUNO_DATASTORE_ERROR_USER_INVALID_DATA = 'juno.datastore.error.user.invalid_data';\nexport const JUNO_DATASTORE_ERROR_USER_CALLER_KEY = 'juno.datastore.error.user.caller_key';\nexport const JUNO_DATASTORE_ERROR_USER_KEY_NO_PRINCIPAL =\n 'juno.datastore.error.user.key_no_principal';\nexport const JUNO_DATASTORE_ERROR_USER_NOT_ALLOWED = 'juno.datastore.error.user.not_allowed';\nexport const JUNO_DATASTORE_ERROR_USER_USAGE_CHANGE_LIMIT_REACHED =\n 'juno.datastore.error.user.usage.change_limit_reached';\nexport const JUNO_DATASTORE_ERROR_USER_USAGE_INVALID_DATA =\n 'juno.datastore.error.user.usage.invalid_data';\n", "export const JUNO_ERROR_CONTROLLERS_MAX_NUMBER = 'juno.error.controllers.max_number';\nexport const JUNO_ERROR_CONTROLLERS_ANONYMOUS_NOT_ALLOWED =\n 'juno.error.controllers.anonymous_not_allowed';\nexport const JUNO_ERROR_CONTROLLERS_REVOKED_NOT_ALLOWED =\n 'juno.error.controllers.revoked_not_allowed';\n\nexport const JUNO_ERROR_MEMORY_STABLE_EXCEEDED = 'juno.error.memory.stable_exceeded';\nexport const JUNO_ERROR_MEMORY_HEAP_EXCEEDED = 'juno.error.memory.heap_exceeded';\n\nexport const JUNO_ERROR_CYCLES_DEPOSIT_BALANCE_LOW = 'juno.error.cycles.deposit_balance_low';\nexport const JUNO_ERROR_CYCLES_DEPOSIT_FAILED = 'juno.error.cycles.deposit_failed';\n\nexport const JUNO_ERROR_CANISTER_CREATE_FAILED = 'juno.error.canister.create_failed';\nexport const JUNO_ERROR_CANISTER_INSTALL_CODE_FAILED = 'juno.error.canister.install_code_failed';\n\nexport const JUNO_ERROR_SEGMENT_STOP_FAILED = 'juno.error.segment.stop_failed';\nexport const JUNO_ERROR_SEGMENT_DELETE_FAILED = 'juno.error.segment.delete_failed';\n\nexport const JUNO_ERROR_CMC_CALL_LEDGER_FAILED = 'juno.error.cmc.call_ledger_failed';\nexport const JUNO_ERROR_CMC_LEDGER_TRANSFER_FAILED = 'juno.error.cmc.ledger_transfer_failed';\nexport const JUNO_ERROR_CMC_TOP_UP_FAILED = 'juno.error.cmc.top_up_failed';\nexport const JUNO_ERROR_CMC_CALL_CREATE_CANISTER_FAILED =\n 'juno.error.cmc.call_create_canister_failed';\nexport const JUNO_ERROR_CMC_CREATE_CANISTER_FAILED = 'juno.error.cmc.create_canister_failed';\nexport const JUNO_ERROR_CMC_INSTALL_CODE_FAILED = 'juno.error.cmc.install_code_failed';\n\nexport const JUNO_ERROR_INVALID_REGEX = 'juno.error.invalid_regex';\n", "import {fromNullable, isNullish, nonNullish} from '@dfinity/utils';\nimport type {DelDoc, SetDoc} from '../../declarations/satellite/satellite.did';\nimport type {ActorReadParams, ActorUpdateParams} from '../types/actor';\nimport type {Doc} from '../types/doc';\nimport type {ListParams, ListResults} from '../types/list';\nimport type {ExcludeDate} from '../types/utility';\nimport {mapData} from '../utils/data.utils';\nimport {fromDoc, toDelDoc, toSetDoc} from '../utils/doc.utils';\nimport {toListParams} from '../utils/list.utils';\nimport {getSatelliteActor} from './actor.api';\n\nexport const getDoc = async <D>({\n collection,\n key,\n ...rest\n}: {\n collection: string;\n} & ActorReadParams &\n Pick<Doc<D>, 'key'>): Promise<Doc<D> | undefined> => {\n const {get_doc} = await getSatelliteActor(rest);\n\n const doc = fromNullable(await get_doc(collection, key));\n\n if (isNullish(doc)) {\n return undefined;\n }\n\n return fromDoc({doc, key});\n};\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nexport const getManyDocs = async ({\n docs,\n ...rest\n}: {\n docs: ({collection: string} & Pick<Doc<any>, 'key'>)[];\n} & ActorReadParams): Promise<(Doc<any> | undefined)[]> => {\n const {get_many_docs} = await getSatelliteActor(rest);\n\n const payload: [string, string][] = docs.map(({collection, key}) => [collection, key]);\n\n const resultsDocs = await get_many_docs(payload);\n\n const results: (Doc<any> | undefined)[] = [];\n for (const [key, resultDoc] of resultsDocs) {\n const doc = fromNullable(resultDoc);\n results.push(nonNullish(doc) ? await fromDoc({key, doc}) : undefined);\n }\n\n return results;\n};\n/* eslint-enable */\n\nexport const setDoc = async <D>({\n collection,\n doc,\n ...rest\n}: {\n collection: string;\n doc: Doc<D>;\n} & ActorUpdateParams): Promise<Doc<D>> => {\n const {set_doc} = await getSatelliteActor(rest);\n\n const {key} = doc;\n\n const setDoc = await toSetDoc(doc);\n\n const updatedDoc = await set_doc(collection, key, setDoc);\n\n return await fromDoc({key, doc: updatedDoc});\n};\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nexport const setManyDocs = async ({\n docs,\n ...rest\n}: {\n docs: {collection: string; doc: Doc<any>}[];\n} & ActorUpdateParams): Promise<Doc<any>[]> => {\n const {set_many_docs} = await getSatelliteActor(rest);\n\n const payload: [string, string, SetDoc][] = [];\n for (const {collection, doc} of docs) {\n const {key} = doc;\n payload.push([collection, key, await toSetDoc(doc)]);\n }\n\n const updatedDocs = await set_many_docs(payload);\n\n const results: Doc<any>[] = [];\n for (const [key, updatedDoc] of updatedDocs) {\n results.push(await fromDoc({key, doc: updatedDoc}));\n }\n\n return results;\n};\n/* eslint-enable */\n\nexport const deleteDoc = async <D>({\n collection,\n doc,\n ...rest\n}: {\n collection: string;\n doc: Doc<D>;\n} & ActorUpdateParams): Promise<void> => {\n const {del_doc} = await getSatelliteActor(rest);\n\n const {key} = doc;\n\n return del_doc(collection, key, toDelDoc(doc));\n};\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nexport const deleteManyDocs = async ({\n docs,\n ...rest\n}: {\n docs: {collection: string; doc: Doc<any>}[];\n} & ActorUpdateParams): Promise<void> => {\n const {del_many_docs} = await getSatelliteActor(rest);\n\n const payload: [string, string, DelDoc][] = docs.map(({collection, doc}) => [\n collection,\n doc.key,\n toDelDoc(doc)\n ]);\n\n await del_many_docs(payload);\n};\n/* eslint-enable */\n\nexport const deleteFilteredDocs = async ({\n collection,\n filter,\n ...rest\n}: {\n collection: string;\n filter: ListParams;\n} & ActorUpdateParams): Promise<void> => {\n const {del_filtered_docs} = await getSatelliteActor(rest);\n\n return del_filtered_docs(collection, toListParams(filter));\n};\n\nexport const listDocs = async <D>({\n collection,\n filter,\n ...rest\n}: {\n collection: string;\n filter: ListParams;\n} & ActorReadParams): Promise<ListResults<Doc<D>>> => {\n const {list_docs} = await getSatelliteActor(rest);\n\n const {items, items_page, items_length, matches_length, matches_pages} = await list_docs(\n collection,\n toListParams(filter)\n );\n\n const docs: Doc<D>[] = [];\n\n for (const [key, item] of items) {\n const {data: dataArray, owner, description, version, ...rest} = item;\n\n docs.push({\n key,\n description: fromNullable(description),\n owner: owner.toText(),\n data: await mapData<ExcludeDate<D>>({data: dataArray}),\n version: fromNullable(version),\n ...rest\n });\n }\n\n return {\n items: docs,\n items_length,\n items_page: fromNullable(items_page),\n matches_length,\n matches_pages: fromNullable(matches_pages)\n };\n};\n\nexport const countDocs = async ({\n collection,\n filter,\n ...rest\n}: {\n collection: string;\n filter: ListParams;\n} & ActorReadParams): Promise<bigint> => {\n const {count_docs} = await getSatelliteActor(rest);\n\n return count_docs(collection, toListParams(filter));\n};\n", "import {fromArray} from '@junobuild/utils';\nimport type {Doc} from '../../declarations/satellite/satellite.did';\n\nexport const mapData = async <D>({data}: Pick<Doc, 'data'>): Promise<D> => {\n try {\n return await fromArray<D>(data);\n } catch (err: unknown) {\n console.error('The data parsing has failed, mapping to undefined as a fallback.', err);\n return undefined as D;\n }\n};\n", "import {fromNullable, toNullable} from '@dfinity/utils';\nimport {fromArray, toArray} from '@junobuild/utils';\nimport type {DelDoc, Doc as DocApi, SetDoc} from '../../declarations/satellite/satellite.did';\nimport type {Doc} from '../types/doc';\nimport type {ExcludeDate} from '../types/utility';\n\nexport const toSetDoc = async <D>(doc: Doc<D>): Promise<SetDoc> => {\n const {data, version, description} = doc;\n\n return {\n description: toNullable(description),\n data: await toArray<ExcludeDate<D>>(data),\n version: toNullable(version)\n };\n};\n\nexport const toDelDoc = <D>(doc: Doc<D>): DelDoc => {\n const {version} = doc;\n\n return {\n version: toNullable(version)\n };\n};\n\nexport const fromDoc = async <D>({doc, key}: {doc: DocApi; key: string}): Promise<Doc<D>> => {\n const {owner, version, description: docDescription, data, ...rest} = doc;\n\n return {\n key,\n description: fromNullable(docDescription),\n owner: owner.toText(),\n data: await fromArray<ExcludeDate<D>>(data),\n version: fromNullable(version),\n ...rest\n };\n};\n", "import {Principal} from '@dfinity/principal';\nimport {isNullish, toNullable} from '@dfinity/utils';\nimport type {\n ListParams as ListParamsApi,\n TimestampMatcher\n} from '../../declarations/satellite/satellite.did';\nimport {ListError} from '../types/errors';\nimport type {ListParams, ListTimestampMatcher} from '../types/list';\n\nconst toListMatcherTimestamp = (matcher?: ListTimestampMatcher): [] | [TimestampMatcher] => {\n if (isNullish(matcher)) {\n return toNullable();\n }\n\n switch (matcher.matcher) {\n case 'equal':\n return toNullable({Equal: matcher.timestamp});\n case 'greaterThan':\n return toNullable({GreaterThan: matcher.timestamp});\n case 'lessThan':\n return toNullable({LessThan: matcher.timestamp});\n case 'between':\n return toNullable({Between: [matcher.timestamps.start, matcher.timestamps.end]});\n default:\n throw new ListError('Invalid list matcher for timestamp', matcher);\n }\n};\n\nexport const toListParams = ({matcher, paginate, order, owner}: ListParams): ListParamsApi => ({\n matcher: isNullish(matcher)\n ? []\n : [\n {\n key: toNullable(matcher.key),\n description: toNullable(matcher.description),\n created_at: toListMatcherTimestamp(matcher.createdAt),\n updated_at: toListMatcherTimestamp(matcher.updatedAt)\n }\n ],\n paginate: toNullable(\n isNullish(paginate)\n ? undefined\n : {\n start_after: toNullable(paginate.startAfter),\n limit: toNullable(isNullish(paginate.limit) ? undefined : BigInt(paginate.limit))\n }\n ),\n order: toNullable(\n isNullish(order)\n ? undefined\n : {\n desc: order.desc,\n field:\n order.field === 'created_at'\n ? {CreatedAt: null}\n : order.field === 'updated_at'\n ? {UpdatedAt: null}\n : {Keys: null}\n }\n ),\n owner: toNullable(\n isNullish(owner) ? undefined : typeof owner === 'string' ? Principal.fromText(owner) : owner\n )\n});\n", "import type {ActorMethod, ActorSubclass} from '@dfinity/agent';\nimport type {IDL} from '@dfinity/candid';\nimport {assertNonNullish} from '@dfinity/utils';\nimport {ActorStore} from '../stores/actor.store';\nimport type {ActorKey} from '../types/actor';\nimport type {CallOptions} from '../types/call-options';\nimport type {SatelliteContext} from '../types/satellite';\nimport {customOrEnvContainer, customOrEnvSatelliteId} from '../utils/env.utils';\nimport {\n idlCertifiedFactorySatellite,\n idlFactorySatellite,\n type SatelliteActor\n} from './_actor.factory';\n\nexport const getSatelliteActor = ({\n satellite,\n options: {certified}\n}: {\n satellite: SatelliteContext;\n options: CallOptions;\n}): Promise<SatelliteActor> =>\n getActor({\n idlFactory: certified ? idlCertifiedFactorySatellite : idlFactorySatellite,\n actorKey: `stock#${certified ? 'update' : 'query'}`,\n ...satellite\n });\n\nexport const getSatelliteExtendedActor = <T = Record<string, ActorMethod>>({\n idlFactory,\n ...rest\n}: SatelliteContext & {idlFactory: IDL.InterfaceFactory}): Promise<ActorSubclass<T>> =>\n getActor({\n idlFactory,\n actorKey: 'extended#query',\n ...rest\n });\n\nconst getActor = async <T = Record<string, ActorMethod>>({\n satelliteId: customSatelliteId,\n container: customContainer,\n ...rest\n}: SatelliteContext & {idlFactory: IDL.InterfaceFactory; actorKey: ActorKey}): Promise<\n ActorSubclass<T>\n> => {\n const {satelliteId} = customOrEnvSatelliteId({satelliteId: customSatelliteId});\n\n assertNonNullish(satelliteId, 'No satellite ID defined. Did you initialize Juno?');\n\n const {container} = customOrEnvContainer({container: customContainer});\n\n return await ActorStore.getInstance().getActor({\n satelliteId,\n container,\n ...rest\n });\n};\n", "import {nonNullish} from '@dfinity/utils';\nimport {DOCKER_CONTAINER_URL} from '../constants/container.constants';\nimport {EnvStore} from '../stores/env.store';\nimport type {SatelliteContext} from '../types/satellite';\n\nexport const satelliteUrl = ({\n satelliteId: customSatelliteId,\n container: customContainer\n}: SatelliteContext): string => {\n const {satelliteId} = customOrEnvSatelliteId({satelliteId: customSatelliteId});\n const {container} = customOrEnvContainer({container: customContainer});\n\n if (nonNullish(container) && container !== false) {\n const {host: containerHost, protocol} = new URL(\n container === true ? DOCKER_CONTAINER_URL : container\n );\n return `${protocol}//${satelliteId ?? 'unknown'}.${containerHost.replace('127.0.0.1', 'localhost')}`;\n }\n\n return `https://${satelliteId ?? 'unknown'}.icp0.io`;\n};\n\nexport const customOrEnvSatelliteId = ({\n satelliteId\n}: Pick<SatelliteContext, 'satelliteId'>): Pick<SatelliteContext, 'satelliteId'> =>\n nonNullish(satelliteId)\n ? {satelliteId}\n : (EnvStore.getInstance().get() ?? {satelliteId: undefined});\n\nexport const customOrEnvContainer = ({\n container: customContainer\n}: Pick<SatelliteContext, 'container'>): Pick<SatelliteContext, 'container'> =>\n nonNullish(customContainer)\n ? {container: customContainer}\n : (EnvStore.getInstance().get() ?? {container: undefined});\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 CommitProposal = IDL.Record({\n sha256: IDL.Vec(IDL.Nat8),\n proposal_id: 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 Submit: 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 CollectionType = IDL.Variant({Db: IDL.Null, Storage: IDL.Null});\n const DelRule = IDL.Record({version: IDL.Opt(IDL.Nat64)});\n const DeleteProposalAssets = IDL.Record({\n proposal_ids: IDL.Vec(IDL.Nat)\n });\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 external_alternative_origins: IDL.Opt(IDL.Vec(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 ProposalStatus = IDL.Variant({\n Initialized: IDL.Null,\n Failed: IDL.Null,\n Open: IDL.Null,\n Rejected: IDL.Null,\n Executed: IDL.Null,\n Accepted: IDL.Null\n });\n const AssetsUpgradeOptions = IDL.Record({\n clear_existing_assets: IDL.Opt(IDL.Bool)\n });\n const SegmentsDeploymentOptions = IDL.Record({\n orbiter: IDL.Opt(IDL.Text),\n mission_control_version: IDL.Opt(IDL.Text),\n satellite_version: IDL.Opt(IDL.Text)\n });\n const ProposalType = IDL.Variant({\n AssetsUpgrade: AssetsUpgradeOptions,\n SegmentsDeployment: SegmentsDeploymentOptions\n });\n const Proposal = IDL.Record({\n status: ProposalStatus,\n updated_at: IDL.Nat64,\n sha256: IDL.Opt(IDL.Vec(IDL.Nat8)),\n executed_at: IDL.Opt(IDL.Nat64),\n owner: IDL.Principal,\n created_at: IDL.Nat64,\n version: IDL.Opt(IDL.Nat64),\n proposal_type: ProposalType\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 max_changes_per_user: IDL.Opt(IDL.Nat32)\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 ListProposalsOrder = IDL.Record({desc: IDL.Bool});\n const ListProposalsPaginate = IDL.Record({\n start_after: IDL.Opt(IDL.Nat),\n limit: IDL.Opt(IDL.Nat)\n });\n const ListProposalsParams = IDL.Record({\n order: IDL.Opt(ListProposalsOrder),\n paginate: IDL.Opt(ListProposalsPaginate)\n });\n const ProposalKey = IDL.Record({proposal_id: IDL.Nat});\n const ListProposalResults = IDL.Record({\n matches_length: IDL.Nat64,\n items: IDL.Vec(IDL.Tuple(ProposalKey, Proposal)),\n items_length: IDL.Nat64\n });\n const ListRulesMatcher = IDL.Record({include_system: IDL.Bool});\n const ListRulesParams = IDL.Record({matcher: IDL.Opt(ListRulesMatcher)});\n const ListRulesResults = IDL.Record({\n matches_length: IDL.Nat64,\n items: IDL.Vec(IDL.Tuple(IDL.Text, Rule)),\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 max_changes_per_user: IDL.Opt(IDL.Nat32)\n });\n const UploadChunk = IDL.Record({\n content: IDL.Vec(IDL.Nat8),\n batch_id: IDL.Nat,\n order_id: IDL.Opt(IDL.Nat)\n });\n const UploadChunkResult = IDL.Record({chunk_id: IDL.Nat});\n return IDL.Service({\n commit_asset_upload: IDL.Func([CommitBatch], [], []),\n commit_proposal: IDL.Func([CommitProposal], [IDL.Null], []),\n commit_proposal_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 count_proposals: IDL.Func([], [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([CollectionType, IDL.Text, DelRule], [], []),\n delete_proposal_assets: IDL.Func([DeleteProposalAssets], [], []),\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_proposal: IDL.Func([IDL.Nat], [IDL.Opt(Proposal)], ['query']),\n get_rule: IDL.Func([CollectionType, 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 init_proposal: IDL.Func([ProposalType], [IDL.Nat, Proposal], []),\n init_proposal_asset_upload: IDL.Func([InitAssetKey, IDL.Nat], [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_proposals: IDL.Func([ListProposalsParams], [ListProposalResults], ['query']),\n list_rules: IDL.Func([CollectionType, ListRulesParams], [ListRulesResults], ['query']),\n memory_size: IDL.Func([], [MemorySize], ['query']),\n reject_proposal: IDL.Func([CommitProposal], [IDL.Null], []),\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([CollectionType, IDL.Text, SetRule], [Rule], []),\n set_storage_config: IDL.Func([StorageConfig], [], []),\n submit_proposal: IDL.Func([IDL.Nat], [IDL.Nat, Proposal], []),\n upload_asset_chunk: IDL.Func([UploadChunk], [UploadChunkResult], []),\n upload_proposal_asset_chunk: IDL.Func([UploadChunk], [UploadChunkResult], [])\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 CommitProposal = IDL.Record({\n sha256: IDL.Vec(IDL.Nat8),\n proposal_id: 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 Submit: 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 CollectionType = IDL.Variant({Db: IDL.Null, Storage: IDL.Null});\n const DelRule = IDL.Record({version: IDL.Opt(IDL.Nat64)});\n const DeleteProposalAssets = IDL.Record({\n proposal_ids: IDL.Vec(IDL.Nat)\n });\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 external_alternative_origins: IDL.Opt(IDL.Vec(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 ProposalStatus = IDL.Variant({\n Initialized: IDL.Null,\n Failed: IDL.Null,\n Open: IDL.Null,\n Rejected: IDL.Null,\n Executed: IDL.Null,\n Accepted: IDL.Null\n });\n const AssetsUpgradeOptions = IDL.Record({\n clear_existing_assets: IDL.Opt(IDL.Bool)\n });\n const SegmentsDeploymentOptions = IDL.Record({\n orbiter: IDL.Opt(IDL.Text),\n mission_control_version: IDL.Opt(IDL.Text),\n satellite_version: IDL.Opt(IDL.Text)\n });\n const ProposalType = IDL.Variant({\n AssetsUpgrade: AssetsUpgradeOptions,\n SegmentsDeployment: SegmentsDeploymentOptions\n });\n const Proposal = IDL.Record({\n status: ProposalStatus,\n updated_at: IDL.Nat64,\n sha256: IDL.Opt(IDL.Vec(IDL.Nat8)),\n executed_at: IDL.Opt(IDL.Nat64),\n owner: IDL.Principal,\n created_at: IDL.Nat64,\n version: IDL.Opt(IDL.Nat64),\n proposal_type: ProposalType\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 max_changes_per_user: IDL.Opt(IDL.Nat32)\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([], [], [])\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 ListProposalsOrder = IDL.Record({desc: IDL.Bool});\n const ListProposalsPaginate = IDL.Record({\n start_after: IDL.Opt(IDL.Nat),\n limit: IDL.Opt(IDL.Nat)\n });\n const ListProposalsParams = IDL.Record({\n order: IDL.Opt(ListProposalsOrder),\n paginate: IDL.Opt(ListProposalsPaginate)\n });\n const ProposalKey = IDL.Record({proposal_id: IDL.Nat});\n const ListProposalResults = IDL.Record({\n matches_length: IDL.Nat64,\n items: IDL.Vec(IDL.Tuple(ProposalKey, Proposal)),\n items_length: IDL.Nat64\n });\n const ListRulesMatcher = IDL.Record({include_system: IDL.Bool});\n const ListRulesParams = IDL.Record({matcher: IDL.Opt(ListRulesMatcher)});\n const ListRulesResults = IDL.Record({\n matches_length: IDL.Nat64,\n items: IDL.Vec(IDL.Tuple(IDL.Text, Rule)),\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 max_changes_per_user: IDL.Opt(IDL.Nat32)\n });\n const UploadChunk = IDL.Record({\n content: IDL.Vec(IDL.Nat8),\n batch_id: IDL.Nat,\n order_id: IDL.Opt(IDL.Nat)\n });\n const UploadChunkResult = IDL.Record({chunk_id: IDL.Nat});\n return IDL.Service({\n commit_asset_upload: IDL.Func([CommitBatch], [], []),\n commit_proposal: IDL.Func([CommitProposal], [IDL.Null], []),\n commit_proposal_asset_upload: IDL.Func([CommitBatch], [], []),\n count_assets: IDL.Func([IDL.Text, ListParams], [IDL.Nat64], []),\n count_collection_assets: IDL.Func([IDL.Text], [IDL.Nat64], []),\n count_collection_docs: IDL.Func([IDL.Text], [IDL.Nat64], []),\n count_docs: IDL.Func([IDL.Text, ListParams], [IDL.Nat64], []),\n count_proposals: IDL.Func([], [IDL.Nat64], []),\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([CollectionType, IDL.Text, DelRule], [], []),\n delete_proposal_assets: IDL.Func([DeleteProposalAssets], [], []),\n deposit_cycles: IDL.Func([DepositCyclesArgs], [], []),\n get_asset: IDL.Func([IDL.Text, IDL.Text], [IDL.Opt(AssetNoContent)], []),\n get_auth_config: IDL.Func([], [IDL.Opt(AuthenticationConfig)], []),\n get_config: IDL.Func([], [Config], []),\n get_db_config: IDL.Func([], [IDL.Opt(DbConfig)], []),\n get_doc: IDL.Func([IDL.Text, IDL.Text], [IDL.Opt(Doc)], []),\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 []\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 []\n ),\n get_proposal: IDL.Func([IDL.Nat], [IDL.Opt(Proposal)], []),\n get_rule: IDL.Func([CollectionType, IDL.Text], [IDL.Opt(Rule)], []),\n get_storage_config: IDL.Func([], [StorageConfig], []),\n http_request: IDL.Func([HttpRequest], [HttpResponse], []),\n http_request_streaming_callback: IDL.Func(\n [StreamingCallbackToken],\n [StreamingCallbackHttpResponse],\n []\n ),\n init_asset_upload: IDL.Func([InitAssetKey], [InitUploadResult], []),\n init_proposal: IDL.Func([ProposalType], [IDL.Nat, Proposal], []),\n init_proposal_asset_upload: IDL.Func([InitAssetKey, IDL.Nat], [InitUploadResult], []),\n list_assets: IDL.Func([IDL.Text, ListParams], [ListResults], []),\n list_controllers: IDL.Func([], [IDL.Vec(IDL.Tuple(IDL.Principal, Controller))], []),\n list_custom_domains: IDL.Func([], [IDL.Vec(IDL.Tuple(IDL.Text, CustomDomain))], []),\n list_docs: IDL.Func([IDL.Text, ListParams], [ListResults_1], []),\n list_proposals: IDL.Func([ListProposalsParams], [ListProposalResults], []),\n list_rules: IDL.Func([CollectionType, ListRulesParams], [ListRulesResults], []),\n memory_size: IDL.Func([], [MemorySize], []),\n reject_proposal: IDL.Func([CommitProposal], [IDL.Null], []),\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([CollectionType, IDL.Text, SetRule], [Rule], []),\n set_storage_config: IDL.Func([StorageConfig], [], []),\n submit_proposal: IDL.Func([IDL.Nat], [IDL.Nat, Proposal], []),\n upload_asset_chunk: IDL.Func([UploadChunk], [UploadChunkResult], []),\n upload_proposal_asset_chunk: IDL.Func([UploadChunk], [UploadChunkResult], [])\n });\n};\n// @ts-ignore\nexport const init = ({IDL}) => {\n return [];\n};\n", "import type {ReadOptions} from '../types/call-options';\n\n/**\n * Default options for read operations.\n *\n * For backwards compatibility and because most developers probably prioritize speed over\n * additional security when fetching read-only data from the Internet Computer,\n * read operations are performed in an uncertified way by default.\n */\nexport const DEFAULT_READ_OPTIONS: ReadOptions = {certified: false};\n", "import {AnonymousIdentity, type Identity} from '@dfinity/agent';\nimport {nonNullish} from '@dfinity/utils';\nimport {getIdentity as getAuthIdentity} from './auth.services';\n\nexport const getAnyIdentity = (identity?: Identity): Identity => {\n if (nonNullish(identity)) {\n return identity;\n }\n\n return getAuthIdentity() ?? new AnonymousIdentity();\n};\n", "import {\n countDocs as countDocsApi,\n deleteDoc as deleteDocApi,\n deleteFilteredDocs as deleteFilteredDocsApi,\n deleteManyDocs as deleteManyDocsApi,\n getDoc as getDocApi,\n getManyDocs as getManyDocsApi,\n listDocs as listDocsApi,\n setDoc as setDocApi,\n setManyDocs as setManyDocsApi\n} from '../api/doc.api';\nimport {DEFAULT_READ_OPTIONS} from '../constants/call-options.constants';\nimport type {ReadOptions} from '../types/call-options';\nimport type {Doc} from '../types/doc';\nimport type {ListParams, ListResults} from '../types/list';\nimport type {SatelliteOptions} from '../types/satellite';\nimport {getAnyIdentity} from './_identity.services';\n\n/**\n * Retrieves a single document from a collection.\n *\n * @template D\n * @param {Object} params - The parameters for retrieving the document.\n * @param {string} params.collection - The name of the collection.\n * @param {string} params.key - The key of the document to retrieve.\n * @param {ReadOptions} [params.options] - Call options controlling certification. Defaults to uncertified reads for performance unless specified.\n * @param {SatelliteOptions} [params.satellite] - Options to specify a satellite in a NodeJS environment only. In browser environments, the satellite configuration is inherited from the initialization through `initSatellite()`.\n * @returns {Promise<Doc<D> | undefined>} A promise that resolves to the document or undefined if not found.\n */\nexport const getDoc = async <D>({\n satellite,\n options,\n ...rest\n}: {\n collection: string;\n satellite?: SatelliteOptions;\n options?: ReadOptions;\n} & Pick<Doc<D>, 'key'>): Promise<Doc<D> | undefined> => {\n const identity = getAnyIdentity(satellite?.identity);\n\n return await getDocApi({\n ...rest,\n satellite: {...satellite, identity},\n options: options ?? DEFAULT_READ_OPTIONS\n });\n};\n\n/**\n * Retrieves multiple documents from a single or different collections in a single call.\n *\n * @param {Object} params - The parameters for retrieving the documents.\n * @param {Array} params.docs - The list of documents with their collections and keys.\n * @param {ReadOptions} [params.options] - Call options controlling certification. Defaults to uncertified reads for performance unless specified.\n * @param {SatelliteOptions} [params.satellite] - Options to specify a satellite in a NodeJS environment only. In browser environments, the satellite configuration is inherited from the initialization through `initSatellite()`.\n * @returns {Promise<Array<Doc<any> | undefined>>} A promise that resolves to an array of documents or undefined if not found.\n */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nexport const getManyDocs = async ({\n satellite,\n options,\n ...rest\n}: {\n docs: ({collection: string} & Pick<Doc<any>, 'key'>)[];\n satellite?: SatelliteOptions;\n options?: ReadOptions;\n}): Promise<(Doc<any> | undefined)[]> => {\n const identity = getAnyIdentity(satellite?.identity);\n\n return await getManyDocsApi({\n ...rest,\n satellite: {...satellite, identity},\n options: options ?? DEFAULT_READ_OPTIONS\n });\n};\n/* eslint-enable */\n\n/**\n * Adds or updates a single document in a collection.\n *\n * @template D\n * @param {Object} params - The parameters for adding or updating the document.\n * @param {string} params.collection - The name of the collection.\n * @param {Doc<D>} params.doc - The document to add or update.\n * @param {SatelliteOptions} [params.satellite] - Options to specify a satellite in a NodeJS environment only. In browser environments, the satellite configuration is inherited from the initialization through `initSatellite()`.\n * @returns {Promise<Doc<D>>} A promise that resolves to the added or updated document.\n */\nexport const setDoc = async <D>({\n satellite,\n ...rest\n}: {\n collection: string;\n doc: Doc<D>;\n satellite?: SatelliteOptions;\n}): Promise<Doc<D>> => {\n const identity = getAnyIdentity(satellite?.identity);\n\n return await setDocApi({\n ...rest,\n satellite: {...satellite, identity},\n options: {certified: true}\n });\n};\n\n/**\n * Adds or updates multiple documents in a or different collections.\n *\n * @param {Object} params - The parameters for adding or updating the documents.\n * @param {Array} params.docs - The list of documents with their collections and data.\n * @param {SatelliteOptions} [params.satellite] - Options to specify a satellite in a NodeJS environment only. In browser environments, the satellite configuration is inherited from the initialization through `initSatellite()`.\n * @returns {Promise<Array<Doc<any>>>} A promise that resolves to an array of added or updated documents.\n */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nexport const setManyDocs = async ({\n satellite,\n ...rest\n}: {\n docs: {collection: string; doc: Doc<any>}[];\n satellite?: SatelliteOptions;\n}): Promise<Doc<any>[]> => {\n const identity = getAnyIdentity(satellite?.identity);\n\n return await setManyDocsApi({\n ...rest,\n satellite: {...satellite, identity},\n options: {certified: true}\n });\n};\n/* eslint-enable */\n\n/**\n * Deletes a single document from a collection.\n *\n * @template D\n * @param {Object} params - The parameters for deleting the document.\n * @param {string} params.collection - The name of the collection.\n * @param {Doc<D>} params.doc - The document to delete.\n * @param {SatelliteOptions} [params.satellite] - Options to specify a satellite in a NodeJS environment only. In browser environments, the satellite configuration is inherited from the initialization through `initSatellite()`.\n * @returns {Promise<void>} A promise that resolves when the document is deleted.\n */\nexport const deleteDoc = async <D>({\n satellite,\n ...rest\n}: {\n collection: string;\n doc: Doc<D>;\n satellite?: SatelliteOptions;\n}): Promise<void> => {\n const identity = getAnyIdentity(satellite?.identity);\n\n return await deleteDocApi({\n ...rest,\n satellite: {...satellite, identity},\n options: {certified: true}\n });\n};\n\n/**\n * Deletes multiple documents from a or different collections.\n *\n * @param {Object} params - The parameters for deleting the documents.\n * @param {Array} params.docs - The list of documents with their collections and data.\n * @param {SatelliteOptions} [params.satellite] - Options to specify a satellite in a NodeJS environment only. In browser environments, the satellite configuration is inherited from the initialization through `initSatellite()`.\n * @returns {Promise<void>} A promise that resolves when the documents are deleted.\n */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nexport const deleteManyDocs = async ({\n satellite,\n ...rest\n}: {\n docs: {collection: string; doc: Doc<any>}[];\n satellite?: SatelliteOptions;\n}): Promise<void> => {\n const identity = getAnyIdentity(satellite?.identity);\n\n return await deleteManyDocsApi({\n ...rest,\n satellite: {...satellite, identity},\n options: {certified: true}\n });\n};\n/* eslint-enable */\n\n/**\n * Deletes documents from a collection with optional filtering.\n *\n * @param {Object} params - The parameters for deleting documents.\n * @param {string} params.collection - The name of the collection.\n * @param {ListParams} [params.filter] - The filter criteria to match documents for deletion.\n * @param {SatelliteOptions} [params.satellite] - Options to specify a satellite in a NodeJS environment only. In browser environments, the satellite configuration is inherited from the initialization through `initSatellite()`.\n * @returns {Promise<void>} A promise that resolves when the documents are deleted.\n */\nexport const deleteFilteredDocs = async ({\n satellite,\n filter,\n ...rest\n}: {\n collection: string;\n filter?: ListParams;\n satellite?: SatelliteOptions;\n}): Promise<void> => {\n const identity = getAnyIdentity(satellite?.identity);\n\n return await deleteFilteredDocsApi({\n ...rest,\n filter: filter ?? {},\n satellite: {...satellite, identity},\n options: {certified: true}\n });\n};\n\n/**\n * Lists documents in a collection with optional filtering.\n *\n * @template D\n * @param {Object} params - The parameters for listing the documents.\n * @param {string} params.collection - The name of the collection.\n * @param {ListParams} [params.filter] - Optional filter parameters.\n * @param {ReadOptions} [params.options] - Call options controlling certification. Defaults to uncertified reads for performance unless specified.\n * @param {SatelliteOptions} [params.satellite] - Options to specify a satellite in a NodeJS environment only. In browser environments, the satellite configuration is inherited from the initialization through `initSatellite()`.\n * @returns {Promise<ListResults<Doc<D>>>} A promise that resolves to the list of documents.\n */\nexport const listDocs = async <D>({\n satellite,\n options,\n filter,\n ...rest\n}: {\n collection: string;\n filter?: ListParams;\n satellite?: SatelliteOptions;\n options?: ReadOptions;\n}): Promise<ListResults<Doc<D>>> => {\n const identity = getAnyIdentity(satellite?.identity);\n\n return await listDocsApi<D>({\n ...rest,\n filter: filter ?? {},\n satellite: {...satellite, identity},\n options: options ?? DEFAULT_READ_OPTIONS\n });\n};\n\n/**\n * Counts documents in a collection with optional filtering.\n *\n * @param {Object} params - The parameters for counting the documents.\n * @param {string} params.collection - The name of the collection.\n * @param {ListParams} [params.filter] - Optional filter parameters.\n * @param {ReadOptions} [params.options] - Call options controlling certification. Defaults to uncertified reads for performance unless specified.\n * @param {SatelliteOptions} [params.satellite] - Options to specify a satellite in a NodeJS environment only. In browser environments, the satellite configuration is inherited from the initialization through `initSatellite()`.\n * @returns {Promise<bigint>} A promise that resolves to the count of documents as a bigint.\n */\nexport const countDocs = async ({\n satellite,\n options,\n filter,\n ...rest\n}: {\n collection: string;\n filter?: ListParams;\n satellite?: SatelliteOptions;\n options?: ReadOptions;\n}): Promise<bigint> => {\n const identity = getAnyIdentity(satellite?.identity);\n\n return await countDocsApi({\n ...rest,\n filter: filter ?? {},\n satellite: {...satellite, identity},\n options: options ?? DEFAULT_READ_OPTIONS\n });\n};\n", "// TODO: duplicated because those should not be bundled in web worker. We can avoid this by transforming utils into a library of modules.\ninterface ImportMeta {\n env: Record<string, string> | undefined;\n}\n\nexport const envSatelliteId = (): string | undefined => {\n const viteEnvSatelliteId = (): string | undefined =>\n typeof import.meta !== 'undefined' &&\n typeof (import.meta as unknown as ImportMeta).env !== 'undefined'\n ? ((import.meta as unknown as ImportMeta).env?.VITE_SATELLITE_ID ??\n (import.meta as unknown as ImportMeta).env?.PUBLIC_SATELLITE_ID)\n : undefined;\n\n return typeof process !== 'undefined'\n ? (process.env?.NEXT_PUBLIC_SATELLITE_ID ?? viteEnvSatelliteId())\n : viteEnvSatelliteId();\n};\n\nexport const envContainer = (): string | undefined => {\n const viteEnvContainer = (): string | undefined =>\n typeof import.meta !== 'undefined' &&\n typeof (import.meta as unknown as ImportMeta).env !== 'undefined'\n ? ((import.meta as unknown as ImportMeta).env?.VITE_CONTAINER ??\n (import.meta as unknown as ImportMeta).env?.PUBLIC_CONTAINER)\n : undefined;\n\n return typeof process !== 'undefined'\n ? (process.env?.NEXT_PUBLIC_CONTAINER ?? viteEnvContainer())\n : viteEnvContainer();\n};\n", "import type {ActorSubclass} from '@dfinity/agent';\nimport type {ActorMethod} from '@dfinity/agent/lib/esm/actor';\nimport type {IDL} from '@dfinity/candid';\nimport {getSatelliteExtendedActor as getSatelliteExtendedActorApi} from '../api/actor.api';\nimport type {SatelliteOptions} from '../types/satellite';\nimport {getAnyIdentity} from './_identity.services';\n\n/**\n * Returns an extended satellite actor instance using the provided IDL factory and satellite options.\n *\n * This function is intended for advanced use cases where developers have implemented\n * custom endpoints in their serverless functions using the extended build type.\n *\n * In most cases, developers should not need to call this directly.\n * Extended actors are typically mapped and handled automatically.\n *\n * @template T - The actor interface type.\n *\n * @param {Object} params - The parameters for creating the actor.\n * @param {IDL.InterfaceFactory} params.idlFactory - The IDL factory defining the custom actor interface.\n * @param {SatelliteOptions} [params.satellite] - Options to specify a satellite in a NodeJS environment only.\n * In browser environments, configuration is automatically inherited from `initSatellite()`.\n *\n * @returns {Promise<ActorSubclass<T>>} A promise that resolves to the extended actor instance.\n */\nexport const getSatelliteExtendedActor = async <T = Record<string, ActorMethod>>({\n idlFactory,\n satellite\n}: {\n idlFactory: IDL.InterfaceFactory;\n satellite?: SatelliteOptions;\n}): Promise<ActorSubclass<T>> => {\n const identity = getAnyIdentity(satellite?.identity);\n\n return await getSatelliteExtendedActorApi({\n idlFactory,\n ...satellite,\n identity\n });\n};\n", "import {fromNullable, nonNullish} from '@dfinity/utils';\nimport type {Asset, AssetEncoding, AssetKey, Storage} from '@junobuild/storage';\nimport type {AssetNoContent} from '../../declarations/satellite/satellite.did';\nimport {\n countAssets as countAssetsApi,\n deleteAsset as deleteAssetApi,\n deleteFilteredAssets as deleteFilteredAssetsApi,\n deleteManyAssets as deleteManyAssetsApi,\n getAsset as getAssetApi,\n getManyAssets as getManyAssetsApi,\n listAssets as listAssetsApi,\n uploadAsset as uploadAssetApi\n} from '../api/storage.api';\nimport {DEFAULT_READ_OPTIONS} from '../constants/call-options.constants';\nimport type {ReadOptions} from '../types/call-options';\nimport type {ListParams} from '../types/list';\nimport type {SatelliteOptions} from '../types/satellite';\nimport type {Assets} from '../types/storage.types';\nimport {sha256ToBase64String} from '../utils/crypto.utils';\nimport {satelliteUrl} from '../utils/env.utils';\nimport {getAnyIdentity} from './_identity.services';\n\n/**\n * Uploads a blob to the storage.\n *\n * @param {SatelliteOptions} [params.satellite] - Options to specify a satellite in a NodeJS environment only. In browser environments, the satellite configuration is inherited from the initialization through `initSatellite()`.\n * @returns {Promise<AssetKey>} A promise that resolves to the asset key.\n */\nexport const uploadBlob = (params: Storage & {satellite?: SatelliteOptions}): Promise<AssetKey> =>\n uploadAssetIC(params);\n\n/**\n * Uploads a file to the storage.\n *\n * @param {SatelliteOptions} [params.satellite] - Options to specify a satellite in a NodeJS environment only. In browser environments, the satellite configuration is inherited from the initialization through `initSatellite()`.\n * @returns {Promise<AssetKey>} A promise that resolves to the asset key.\n */\nexport const uploadFile = (\n params: Partial<Pick<Storage, 'filename'>> &\n Omit<Storage, 'filename' | 'data'> & {data: File} & {satellite?: SatelliteOptions}\n): Promise<AssetKey> =>\n uploadAssetIC({\n filename: params.data.name,\n ...params\n });\n\nconst uploadAssetIC = async ({\n filename: storageFilename,\n data,\n collection,\n headers = [],\n fullPath: storagePath,\n token,\n satellite: satelliteOptions,\n encoding,\n description\n}: Storage & {satellite?: SatelliteOptions}): Promise<AssetKey> => {\n const identity = getAnyIdentity(satelliteOptions?.identity);\n\n // The IC certification does not currently support encoding\n const filename: string = decodeURI(storageFilename);\n const fullPath: string = storagePath ?? `/${collection}/${filename}`;\n\n const satellite = {...satelliteOptions, identity};\n\n await uploadAssetApi({\n asset: {\n data,\n filename,\n collection,\n token,\n headers,\n fullPath,\n encoding,\n description\n },\n satellite,\n options: {certified: true}\n });\n\n return {\n downloadUrl: downloadUrl({\n satellite,\n assetKey: {\n fullPath,\n token\n }\n }),\n fullPath,\n name: filename\n };\n};\n\n/**\n * Lists assets in a collection with optional filtering.\n *\n * @param {Object} params - The parameters for listing the assets.\n * @param {string} params.collection - The name of the collection.\n * @param {ListParams} [params.filter] - The filter parameters.\n * @param {ReadOptions} [params.options] - Call options controlling certification. Defaults to uncertified reads for performance unless specified.\n * @param {SatelliteOptions} [params.satellite] - Options to specify a satellite in a NodeJS environment only. In browser environments, the satellite configuration is inherited from the initialization through `initSatellite()`.\n * @returns {Promise<Assets>} A promise that resolves to the list of assets.\n */\nexport const listAssets = async ({\n collection,\n filter,\n satellite: satelliteOptions,\n options\n}: {\n collection: string;\n filter?: ListParams;\n satellite?: SatelliteOptions;\n options?: ReadOptions;\n}): Promise<Assets> => {\n const satellite = {...satelliteOptions, identity: getAnyIdentity(satelliteOptions?.identity)};\n\n const {items, ...rest} = await listAssetsApi({\n collection,\n filter: filter ?? {},\n satellite,\n options: options ?? DEFAULT_READ_OPTIONS\n });\n\n const assets = items.map(\n ({\n key: {full_path: fullPath, token: t, name, owner, description},\n headers,\n encodings,\n created_at,\n updated_at\n }: AssetNoContent) => {\n const token = fromNullable(t);\n\n return {\n fullPath,\n description: fromNullable(description),\n name,\n downloadUrl: downloadUrl({\n satellite,\n assetKey: {fullPath, token}\n }),\n token,\n headers,\n encodings: encodings.reduce<Record<string, AssetEncoding>>(\n (acc, [type, {modified, sha256, total_length}]) => ({\n ...acc,\n [type]: {\n modified,\n sha256: sha256ToBase64String(sha256),\n total_length\n }\n }),\n {}\n ),\n owner: owner.toText(),\n created_at,\n updated_at\n } as Asset;\n }\n );\n\n return {\n items: assets,\n assets,\n ...rest\n };\n};\n\n/**\n * Counts assets in a collection with optional filtering.\n *\n * @param {Object} params - The parameters for counting the assets.\n * @param {string} params.collection - The name of the collection.\n * @param {ListParams} [params.filter] - The filter parameters for narrowing down the count.\n * @param {ReadOptions} [params.options] - Call options controlling certification. Defaults to uncertified reads for performance unless specified.\n * @param {SatelliteOptions} [params.satellite] - Options to specify a satellite in a NodeJS environment only. In browser environments, the satellite configuration is inherited from the initialization through `initSatellite()`.\n * @returns {Promise<bigint>} A promise that resolves to the count of assets as a bigint.\n */\nexport const countAssets = async ({\n collection,\n filter,\n satellite: satelliteOptions,\n options\n}: {\n collection: string;\n filter?: ListParams;\n satellite?: SatelliteOptions;\n options?: ReadOptions;\n}): Promise<bigint> => {\n const satellite = {...satelliteOptions, identity: getAnyIdentity(satelliteOptions?.identity)};\n\n return await countAssetsApi({\n collection,\n satellite,\n filter: filter ?? {},\n options: options ?? DEFAULT_READ_OPTIONS\n });\n};\n\n/**\n * Deletes an asset from the storage.\n *\n * @param {Object} params - The parameters for deleting the asset.\n * @param {string} params.collection - The name of the collection.\n * @param {string} params.fullPath - The full path of the asset.\n * @param {SatelliteOptions} [params.satellite] - Options to specify a satellite in a NodeJS environment only. In browser environments, the satellite configuration is inherited from the initialization through `initSatellite()`.\n * @returns {Promise<void>} A promise that resolves when the asset is deleted.\n */\nexport const deleteAsset = ({\n collection,\n fullPath,\n satellite\n}: {\n collection: string;\n satellite?: SatelliteOptions;\n} & Pick<AssetKey, 'fullPath'>): Promise<void> =>\n deleteAssetApi({\n collection,\n fullPath,\n satellite: {...satellite, identity: getAnyIdentity(satellite?.identity)},\n options: {certified: true}\n });\n\n/**\n * Deletes multiple assets from the storage.\n *\n * @param {Object} params - The parameters for deleting the assets.\n * @param {Array} params.assets - The list of assets with their collections and full paths.\n * @param {SatelliteOptions} [params.satellite] - Options to specify a satellite in a NodeJS environment only. In browser environments, the satellite configuration is inherited from the initialization through `initSatellite()`.\n * @returns {Promise<void>} A promise that resolves when the assets are deleted.\n */\nexport const deleteManyAssets = ({\n assets,\n satellite\n}: {\n assets: ({collection: string} & Pick<AssetKey, 'fullPath'>)[];\n satellite?: SatelliteOptions;\n}): Promise<void> =>\n deleteManyAssetsApi({\n assets,\n satellite: {...satellite, identity: getAnyIdentity(satellite?.identity)},\n options: {certified: true}\n });\n\n/**\n * Deletes multiple assets from a collection based on filtering criteria.\n *\n * @param {Object} params - The parameters for deleting the assets.\n * @param {string} params.collection - The name of the collection from which to delete assets.\n * @param {ListParams} [params.filter] - The filter criteria to match assets for deletion.\n * @param {SatelliteOptions} [params.satellite] - Options to specify a satellite in a NodeJS environment only. In browser environments, the satellite configuration is inherited from the initialization through `initSatellite()`.\n * @returns {Promise<void>} A promise that resolves when the assets matching the filter criteria are deleted.\n */\nexport const deleteFilteredAssets = async ({\n collection,\n satellite: satelliteOptions,\n filter\n}: {\n collection: string;\n satellite?: SatelliteOptions;\n filter?: ListParams;\n}): Promise<void> => {\n const satellite = {...satelliteOptions, identity: getAnyIdentity(satelliteOptions?.identity)};\n\n return await deleteFilteredAssetsApi({\n collection,\n satellite,\n filter: filter ?? {},\n options: {certified: true}\n });\n};\n\n/**\n * Retrieves an asset from the storage.\n *\n * @param {Object} params - The parameters for retrieving the asset.\n * @param {string} params.collection - The name of the collection.\n * @param {string} params.fullPath - The full path of the asset.\n * @param {ReadOptions} [params.options] - Call options controlling certification. Defaults to uncertified reads for performance unless specified.\n * @param {SatelliteOptions} [params.satellite] - Options to specify a satellite in a NodeJS environment only. In browser environments, the satellite configuration is inherited from the initialization through `initSatellite()`.\n * @returns {Promise<AssetNoContent | undefined>} A promise that resolves to the asset or undefined if not found.\n */\nexport const getAsset = async ({\n satellite,\n options,\n ...rest\n}: {\n collection: string;\n satellite?: SatelliteOptions;\n options?: ReadOptions;\n} & Pick<AssetKey, 'fullPath'>): Promise<AssetNoContent | undefined> => {\n const identity = getAnyIdentity(satellite?.identity);\n\n return await getAssetApi({\n ...rest,\n satellite: {...satellite, identity},\n options: options ?? DEFAULT_READ_OPTIONS\n });\n};\n\n/**\n * Retrieves multiple assets from the storage.\n *\n * @param {Object} params - The parameters for retrieving the assets.\n * @param {Array} params.assets - The list of assets with their collections and full paths.\n * @param {ReadOptions} [params.options] - Call options controlling certification. Defaults to uncertified reads for performance unless specified.\n * @param {SatelliteOptions} [params.satellite] - Options to specify a satellite in a NodeJS environment only. In browser environments, the satellite configuration is inherited from the initialization through `initSatellite()`.\n * @returns {Promise<Array<AssetNoContent | undefined>>} A promise that resolves to an array of assets or undefined if not found.\n */\nexport const getManyAssets = async ({\n satellite,\n options,\n ...rest\n}: {\n assets: ({collection: string} & Pick<AssetKey, 'fullPath'>)[];\n satellite?: SatelliteOptions;\n options?: ReadOptions;\n}): Promise<(AssetNoContent | undefined)[]> => {\n const identity = getAnyIdentity(satellite?.identity);\n\n return await getManyAssetsApi({\n ...rest,\n satellite: {...satellite, identity},\n options: options ?? DEFAULT_READ_OPTIONS\n });\n};\n\n/**\n * Returns a public URL for accessing a specific asset stored on a Satellite.\n *\n * This URL can be used to:\n * - Open the file directly in a browser\n * - Embed the asset in HTML elements like `<img src=\"...\">`, `<video src=\"...\">`, or `<a href=\"...\">`\n * - Programmatically download or display the asset in your application\n *\n * ### Example\n * ```ts\n * const url = downloadUrl({\n * assetKey: {\n * fullPath: '/images/logo.png',\n * }\n * });\n *\n * // Usage in an <img> tag\n * <img src={url} alt=\"Logo\" />\n * ```\n *\n * @param {Object} params - Parameters for generating the URL.\n * @param {Object} params.assetKey - Identifies the asset to generate the URL for.\n * @param {string} params.assetKey.fullPath - The full path of the asset (e.g., `/folder/file.jpg`).\n * @param {string} [params.assetKey.token] - Optional access token for accessing protected assets.\n * @param {SatelliteOptions} [params.satellite] - Options to specify a satellite in a NodeJS environment only. In browser environments, the satellite configuration is inherited from the initialization through `initSatellite()`.\n * @returns {string} A full URL pointing to the asset.\n */\nexport const downloadUrl = ({\n assetKey: {fullPath, token},\n satellite: satelliteOptions\n}: {\n assetKey: Pick<Asset, 'fullPath' | 'token'>;\n} & {satellite?: SatelliteOptions}): string => {\n const satellite = {...satelliteOptions, identity: getAnyIdentity(satelliteOptions?.identity)};\n\n return `${satelliteUrl(satellite)}${fullPath}${nonNullish(token) ? `?token=${token}` : ''}`;\n};\n", "import {fromNullable} from '@dfinity/utils';\nimport {\n uploadAsset as uploadAssetStorage,\n type AssetKey,\n type UploadAsset\n} from '@junobuild/storage';\nimport type {AssetNoContent} from '../../declarations/satellite/satellite.did';\nimport type {ActorReadParams, ActorUpdateParams} from '../types/actor';\nimport type {ListParams, ListResults} from '../types/list';\nimport {toListParams} from '../utils/list.utils';\nimport {getSatelliteActor} from './actor.api';\n\nexport const uploadAsset = async ({\n asset,\n ...rest\n}: {asset: UploadAsset} & ActorUpdateParams): Promise<void> => {\n const actor = await getSatelliteActor(rest);\n\n await uploadAssetStorage({\n actor,\n asset\n });\n};\n\nexport const listAssets = async ({\n collection,\n filter,\n ...rest\n}: {\n collection: string;\n filter: ListParams;\n} & ActorReadParams): Promise<ListResults<AssetNoContent>> => {\n const {list_assets} = await getSatelliteActor(rest);\n\n const {\n items: assets,\n items_length,\n items_page,\n matches_length,\n matches_pages\n } = await list_assets(collection, toListParams(filter));\n\n return {\n items: assets.map(([_, asset]) => asset),\n items_length,\n items_page: fromNullable(items_page),\n matches_length,\n matches_pages: fromNullable(matches_pages)\n };\n};\n\nexport const countAssets = async ({\n collection,\n filter,\n ...rest\n}: {\n collection: string;\n filter: ListParams;\n} & ActorReadParams): Promise<bigint> => {\n const {count_assets} = await getSatelliteActor(rest);\n\n return count_assets(collection, toListParams(filter));\n};\n\nexport const deleteAsset = async ({\n collection,\n fullPath,\n ...rest\n}: {\n collection: string;\n} & ActorUpdateParams &\n Pick<AssetKey, 'fullPath'>): Promise<void> => {\n const actor = await getSatelliteActor(rest);\n\n return actor.del_asset(collection, fullPath);\n};\n\nexport const deleteManyAssets = async ({\n assets,\n satellite\n}: {\n assets: ({collection: string} & Pick<AssetKey, 'fullPath'>)[];\n} & ActorUpdateParams): Promise<void> => {\n const {del_many_assets} = await getSatelliteActor({satellite, options: {certified: true}});\n\n const payload: [string, string][] = assets.map(({collection, fullPath}) => [\n collection,\n fullPath\n ]);\n\n await del_many_assets(payload);\n};\n\nexport const deleteFilteredAssets = async ({\n collection,\n filter,\n ...rest\n}: {\n collection: string;\n filter: ListParams;\n} & ActorUpdateParams): Promise<void> => {\n const {del_filtered_assets} = await getSatelliteActor(rest);\n\n return del_filtered_assets(collection, toListParams(filter));\n};\n\nexport const getAsset = async ({\n collection,\n fullPath,\n ...rest\n}: {\n collection: string;\n} & ActorReadParams &\n Pick<AssetKey, 'fullPath'>): Promise<AssetNoContent | undefined> => {\n const {get_asset} = await getSatelliteActor(rest);\n return fromNullable(await get_asset(collection, fullPath));\n};\n\nexport const getManyAssets = async ({\n assets,\n ...rest\n}: {\n assets: ({collection: string} & Pick<AssetKey, 'fullPath'>)[];\n} & ActorReadParams): Promise<(AssetNoContent | undefined)[]> => {\n const {get_many_assets} = await getSatelliteActor(rest);\n\n const payload: [string, string][] = assets.map(({collection, fullPath}) => [\n collection,\n fullPath\n ]);\n\n const resultsAssets = await get_many_assets(payload);\n\n return resultsAssets.map(([_, resultAsset]) => fromNullable(resultAsset));\n};\n", "import {toNullable} from '@dfinity/utils';\nimport {isBrowser} from '@junobuild/utils';\nimport type {\n _SERVICE as ConsoleActor,\n CommitBatch as ConsoleCommitBatch,\n InitAssetKey as ConsoleInitAssetKey,\n UploadChunk as ConsoleUploadChunk\n} from '../../declarations/console/console.did';\nimport type {\n _SERVICE as SatelliteActor,\n CommitBatch as SatelliteCommitBatch,\n InitAssetKey as SatelliteInitAssetKey,\n UploadChunk as SatelliteUploadChunk\n} from '../../declarations/satellite/satellite.did';\nimport type {EncodingType, Storage} from '../types/storage.types';\n\nexport type UploadAsset = Required<Omit<Storage, 'token' | 'encoding' | 'description'>> &\n Pick<Storage, 'token' | 'encoding' | 'description'>;\n\nexport type UploadAssetActor = SatelliteActor;\nexport type UploadAssetWithProposalActor = ConsoleActor | SatelliteActor;\n\ntype InitAssetKey = SatelliteInitAssetKey | ConsoleInitAssetKey;\ntype UploadChunk = SatelliteUploadChunk | ConsoleUploadChunk;\ntype CommitBatch = SatelliteCommitBatch | ConsoleCommitBatch;\n\nexport const uploadAsset = async ({\n asset: {data, headers, ...restAsset},\n actor\n}: {\n asset: UploadAsset;\n actor: UploadAssetActor;\n}): Promise<void> => {\n const {init_asset_upload, upload_asset_chunk, commit_asset_upload} = actor;\n\n const {batch_id: batchId} = await init_asset_upload(mapInitAssetUploadParams(restAsset));\n\n const {chunkIds} = await uploadChunks({data, uploadFn: upload_asset_chunk, batchId});\n\n await commitAsset({\n commitFn: commit_asset_upload,\n batchId,\n data,\n headers,\n chunkIds\n });\n};\n\nexport const uploadAssetWithProposal = async ({\n asset: {data, headers, ...restAsset},\n proposalId,\n actor\n}: {\n asset: UploadAsset;\n proposalId: bigint;\n actor: UploadAssetWithProposalActor;\n}): Promise<void> => {\n const {init_proposal_asset_upload, upload_proposal_asset_chunk, commit_proposal_asset_upload} =\n actor;\n\n const {batch_id: batchId} = await init_proposal_asset_upload(\n mapInitAssetUploadParams(restAsset),\n proposalId\n );\n\n const {chunkIds} = await uploadChunks({data, uploadFn: upload_proposal_asset_chunk, batchId});\n\n await commitAsset({\n commitFn: commit_proposal_asset_upload,\n batchId,\n data,\n headers,\n chunkIds\n });\n};\n\nconst mapInitAssetUploadParams = ({\n filename,\n collection,\n token,\n fullPath,\n encoding,\n description\n}: Omit<UploadAsset, 'headers' | 'data'>): InitAssetKey => ({\n collection,\n full_path: fullPath,\n name: filename,\n token: toNullable<string>(token),\n encoding_type: toNullable<EncodingType>(encoding),\n description: toNullable(description)\n});\n\nconst commitAsset = async ({\n commitFn,\n batchId,\n chunkIds,\n headers,\n data\n}: {\n commitFn: (commitBatch: CommitBatch) => Promise<void>;\n batchId: bigint;\n chunkIds: UploadChunkResult[];\n} & Pick<UploadAsset, 'headers' | 'data'>) => {\n const contentType: [[string, string]] | undefined =\n headers.find(([type, _]) => type.toLowerCase() === 'content-type') === undefined &&\n data.type !== undefined &&\n data.type !== ''\n ? [['Content-Type', data.type]]\n : undefined;\n\n await commitFn({\n batch_id: batchId,\n chunk_ids: chunkIds.map(({chunk_id}: UploadChunkResult) => chunk_id),\n headers: [...headers, ...(contentType ?? [])]\n });\n};\n\nconst uploadChunks = async ({\n data,\n uploadFn,\n batchId\n}: {\n batchId: bigint;\n} & Pick<UploadAsset, 'data'> &\n Pick<UploadChunkParams, 'uploadFn'>): Promise<{chunkIds: UploadChunkResult[]}> => {\n // https://forum.dfinity.org/t/optimal-upload-chunk-size/20444/23?u=peterparker\n const chunkSize = 1900000;\n\n const uploadChunks: UploadChunkParams[] = [];\n\n // Prevent transforming chunk to arrayBuffer error: The requested file could not be read, typically due to permission problems that have occurred after a reference to a file was acquired.\n const clone: Blob = isBrowser() ? new Blob([await data.arrayBuffer()]) : data;\n\n // Split data into chunks\n let orderId = 0n;\n for (let start = 0; start < clone.size; start += chunkSize) {\n const chunk: Blob = clone.slice(start, start + chunkSize);\n\n uploadChunks.push({\n batchId,\n chunk,\n uploadFn,\n orderId\n });\n\n orderId++;\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({uploadChunks})) {\n chunkIds = [...chunkIds, ...results];\n }\n\n return {chunkIds};\n};\n\nasync function* batchUploadChunks({\n uploadChunks,\n limit = 12\n}: {\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(batch.map((params) => uploadChunk(params)));\n yield result;\n }\n}\n\ninterface UploadChunkResult {\n chunk_id: bigint;\n}\n\ninterface UploadChunkParams {\n batchId: bigint;\n chunk: Blob;\n uploadFn: (uploadChunk: UploadChunk) => Promise<UploadChunkResult>;\n orderId: bigint;\n}\n\nconst uploadChunk = async ({\n batchId,\n chunk,\n uploadFn,\n orderId\n}: UploadChunkParams): Promise<UploadChunkResult> =>\n uploadFn({\n batch_id: batchId,\n content: new Uint8Array(await chunk.arrayBuffer()),\n order_id: toNullable(orderId)\n });\n", "export const sha256ToBase64String = (sha256: Iterable<number>): string =>\n btoa([...sha256].map((c) => String.fromCharCode(c)).join(''));\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["assertNonNullish", "isNullish", "Store", "data", "callback", "callbackId", "id", "AuthStore", "_AuthStore", "Store", "authUser", "callback", "unsubscribe", "emit", "message", "detail", "$event", "ERROR_USER_INTERRUPT", "isNullish", "DELEGATION_IDENTITY_EXPIRATION", "ALLOW_PIN_AUTHENTICATION", "II_POPUP", "NFID_POPUP", "INTERNET_COMPUTER_ORG", "isNullish", "nonNullish", "DOCKER_CONTAINER_URL", "DOCKER_INTERNET_IDENTITY_ID", "EnvStore", "_EnvStore", "Store", "env", "callback", "unsubscribe", "isNullish", "jsonReplacer", "jsonReviver", "toArray", "data", "blob", "fromArray", "isBrowser", "popupCenter", "width", "height", "p", "isNullish", "innerWidth", "innerHeight", "y", "x", "InternetIdentityProvider", "#domain", "domain", "windowed", "identityProviderUrl", "container", "EnvStore", "isNullish", "INTERNET_COMPUTER_ORG", "env", "internetIdentityId", "nonNullish", "DOCKER_INTERNET_IDENTITY_ID", "containerHost", "protocol", "DOCKER_CONTAINER_URL", "popupCenter", "II_POPUP", "NFIDProvider", "#appName", "#logoUrl", "appName", "logoUrl", "NFID_POPUP", "Actor", "isNullish", "isNullish", "HttpAgent", "nonNullish", "createAgent", "identity", "container", "host", "nonNullish", "DOCKER_CONTAINER_URL", "shouldFetchRootKey", "HttpAgent", "AgentStore", "_AgentStore", "#agents", "isNullish", "identity", "rest", "key", "agent", "createAgent", "ActorStore", "_ActorStore", "#actors", "isNullish", "satelliteId", "identity", "actorKey", "rest", "key", "actor", "idlFactory", "canisterId", "agent", "AgentStore", "Actor", "SignInError", "SignInInitError", "SignInUserInterruptError", "InitError", "ListError", "AuthClient", "createAuthClient", "isNullish", "nonNullish", "isSatelliteError", "error", "type", "JUNO_DATASTORE_ERROR_USER_CANNOT_UPDATE", "fromNullable", "isNullish", "nonNullish", "mapData", "data", "i", "err", "fromNullable", "toNullable", "toSetDoc", "doc", "data", "version", "description", "toNullable", "a", "toDelDoc", "fromDoc", "key", "owner", "docDescription", "rest", "fromNullable", "i", "Principal", "isNullish", "toNullable", "toListMatcherTimestamp", "matcher", "isNullish", "toNullable", "ListError", "toListParams", "paginate", "order", "owner", "Principal", "assertNonNullish", "nonNullish", "satelliteUrl", "customSatelliteId", "customContainer", "satelliteId", "customOrEnvSatelliteId", "container", "customOrEnvContainer", "nonNullish", "containerHost", "protocol", "DOCKER_CONTAINER_URL", "EnvStore", "idlFactory", "IDL", "CommitBatch", "CommitProposal", "ListOrderField", "ListOrder", "TimestampMatcher", "ListMatcher", "ListPaginate", "ListParams", "DeleteControllersArgs", "ControllerScope", "Controller", "DelDoc", "CollectionType", "DelRule", "DeleteProposalAssets", "DepositCyclesArgs", "AssetKey", "AssetEncodingNoContent", "AssetNoContent", "AuthenticationConfigInternetIdentity", "AuthenticationConfig", "ConfigMaxMemorySize", "DbConfig", "StorageConfigIFrame", "StorageConfigRawAccess", "StorageConfigRedirect", "StorageConfig", "Config", "Doc", "ProposalStatus", "AssetsUpgradeOptions", "SegmentsDeploymentOptions", "ProposalType", "Proposal", "Memory", "Permission", "RateConfig", "Rule", "HttpRequest", "StreamingCallbackToken", "StreamingStrategy", "HttpResponse", "StreamingCallbackHttpResponse", "InitAssetKey", "InitUploadResult", "ListResults", "CustomDomain", "ListResults_1", "ListProposalsOrder", "ListProposalsPaginate", "ListProposalsParams", "ProposalKey", "ListProposalResults", "ListRulesMatcher", "ListRulesParams", "ListRulesResults", "MemorySize", "SetController", "SetControllersArgs", "SetDoc", "SetRule", "UploadChunk", "UploadChunkResult", "idlFactory", "IDL", "CommitBatch", "CommitProposal", "ListOrderField", "ListOrder", "TimestampMatcher", "ListMatcher", "ListPaginate", "ListParams", "DeleteControllersArgs", "ControllerScope", "Controller", "DelDoc", "CollectionType", "DelRule", "DeleteProposalAssets", "DepositCyclesArgs", "AssetKey", "AssetEncodingNoContent", "AssetNoContent", "AuthenticationConfigInternetIdentity", "AuthenticationConfig", "ConfigMaxMemorySize", "DbConfig", "StorageConfigIFrame", "StorageConfigRawAccess", "StorageConfigRedirect", "StorageConfig", "Config", "Doc", "ProposalStatus", "AssetsUpgradeOptions", "SegmentsDeploymentOptions", "ProposalType", "Proposal", "Memory", "Permission", "RateConfig", "Rule", "HttpRequest", "StreamingCallbackToken", "StreamingStrategy", "HttpResponse", "StreamingCallbackHttpResponse", "InitAssetKey", "InitUploadResult", "ListResults", "CustomDomain", "ListResults_1", "ListProposalsOrder", "ListProposalsPaginate", "ListProposalsParams", "ProposalKey", "ListProposalResults", "ListRulesMatcher", "ListRulesParams", "ListRulesResults", "MemorySize", "SetController", "SetControllersArgs", "SetDoc", "SetRule", "UploadChunk", "UploadChunkResult", "getSatelliteActor", "satellite", "certified", "getActor", "idlFactory", "getSatelliteExtendedActor", "rest", "customSatelliteId", "customContainer", "satelliteId", "customOrEnvSatelliteId", "assertNonNullish", "container", "customOrEnvContainer", "ActorStore", "getDoc", "collection", "key", "rest", "get_doc", "getSatelliteActor", "doc", "fromNullable", "isNullish", "fromDoc", "getManyDocs", "docs", "get_many_docs", "payload", "resultsDocs", "results", "resultDoc", "nonNullish", "setDoc", "set_doc", "toSetDoc", "updatedDoc", "setManyDocs", "set_many_docs", "updatedDocs", "deleteDoc", "del_doc", "toDelDoc", "deleteManyDocs", "del_many_docs", "deleteFilteredDocs", "filter", "del_filtered_docs", "toListParams", "listDocs", "list_docs", "items", "items_page", "items_length", "matches_length", "matches_pages", "item", "dataArray", "owner", "description", "version", "mapData", "countDocs", "count_docs", "DEFAULT_READ_OPTIONS", "AnonymousIdentity", "nonNullish", "getAnyIdentity", "identity", "nonNullish", "getIdentity", "AnonymousIdentity", "getDoc", "satellite", "options", "rest", "identity", "getAnyIdentity", "DEFAULT_READ_OPTIONS", "getManyDocs", "setDoc", "setManyDocs", "deleteDoc", "deleteManyDocs", "deleteFilteredDocs", "filter", "listDocs", "countDocs", "initUser", "provider", "identity", "getIdentity", "isNullish", "InitError", "userId", "loadUser", "getDoc", "user", "nonNullish", "createUser", "error", "t", "R_", "userOnCreateError", "rest", "setDoc", "authClient", "initAuth", "provider", "createAuthClient", "user", "initUser", "AuthStore", "signIn", "options", "resolve", "reject", "isNullish", "SignInInitError", "InternetIdentityProvider", "error", "ERROR_USER_INTERRUPT", "SignInUserInterruptError", "SignInError", "DELEGATION_IDENTITY_EXPIRATION", "ALLOW_PIN_AUTHENTICATION", "signOut", "resetAuth", "ActorStore", "AgentStore", "getIdentity", "unsafeIdentity", "getIdentityOnce", "initAuthTimeoutWorker", "auth", "workerUrl", "worker", "timeoutSignOut", "emit", "signOut", "data", "msg", "value", "AuthStore", "user", "isNullish", "envSatelliteId", "viteEnvSatelliteId", "envContainer", "viteEnvContainer", "getSatelliteExtendedActor", "idlFactory", "satellite", "identity", "getAnyIdentity", "fromNullable", "nonNullish", "fromNullable", "toNullable", "uploadAsset", "data", "headers", "restAsset", "actor", "init_asset_upload", "upload_asset_chunk", "commit_asset_upload", "batchId", "mapInitAssetUploadParams", "chunkIds", "uploadChunks", "commitAsset", "mapInitAssetUploadParams", "filename", "collection", "token", "fullPath", "encoding", "description", "toNullable", "commitAsset", "commitFn", "batchId", "chunkIds", "headers", "data", "contentType", "type", "_", "chunk_id", "uploadChunks", "uploadFn", "clone", "isBrowser", "orderId", "start", "chunk", "results", "batchUploadChunks", "limit", "i", "batch", "params", "uploadChunk", "uploadAsset", "asset", "rest", "actor", "getSatelliteActor", "A", "listAssets", "collection", "filter", "list_assets", "assets", "items_length", "items_page", "matches_length", "matches_pages", "toListParams", "_", "fromNullable", "countAssets", "count_assets", "deleteAsset", "fullPath", "deleteManyAssets", "satellite", "del_many_assets", "payload", "deleteFilteredAssets", "del_filtered_assets", "getAsset", "get_asset", "getManyAssets", "get_many_assets", "resultAsset", "sha256ToBase64String", "sha256", "c", "uploadBlob", "params", "uploadAssetIC", "uploadFile", "storageFilename", "data", "collection", "headers", "storagePath", "token", "satelliteOptions", "encoding", "description", "identity", "getAnyIdentity", "filename", "fullPath", "satellite", "uploadAsset", "downloadUrl", "listAssets", "filter", "options", "items", "rest", "DEFAULT_READ_OPTIONS", "assets", "t", "name", "owner", "encodings", "created_at", "updated_at", "fromNullable", "acc", "type", "modified", "sha256", "total_length", "sha256ToBase64String", "countAssets", "deleteAsset", "deleteManyAssets", "deleteFilteredAssets", "getAsset", "getManyAssets", "satelliteUrl", "nonNullish", "parseEnv", "userEnv", "satelliteId", "envSatelliteId", "assertNonNullish", "container", "envContainer", "initJuno", "initSatellite", "env", "EnvStore", "initAuth", "authSubscribe", "initAuthTimeoutWorker", "callback", "AuthStore"]
|
|
7
7
|
}
|