UNPKG

@junobuild/cdn

Version:

A toolkit for working with modules that implement Juno's CDN functionality

5 lines 69.2 kB
{ "version": 3, "sources": ["../../src/api/_actor.api.ts", "../../declarations/console/console.factory.did.js", "../../declarations/satellite/satellite.factory.did.js", "../../src/utils/actor.utils.ts", "../../src/api/proposal.api.ts", "../../src/api/storage.api.ts", "../../src/handlers/proposal.apply.handlers.ts", "../../src/api/ic.api.ts", "../../src/types/proposal.params.ts", "../../src/handlers/proposal.reject.handlers.ts"], "sourcesContent": ["import type {IDL} from '@dfinity/candid';\nimport type {Principal} from '@dfinity/principal';\nimport {assertNonNullish} from '@dfinity/utils';\nimport type {_SERVICE as ConsoleActor} from '../../declarations/console/console.did';\n// eslint-disable-next-line import/no-relative-parent-imports\nimport {idlFactory as idlFactoryConsole} from '../../declarations/console/console.factory.did.js';\nimport type {_SERVICE as SatelliteActor} from '../../declarations/satellite/satellite.did';\n// eslint-disable-next-line import/no-relative-parent-imports\nimport {idlFactory as idlFactorySatellite} from '../../declarations/satellite/satellite.factory.did.js';\nimport type {\n ActorParameters,\n CdnParameters,\n ConsoleParameters,\n SatelliteParameters\n} from '../types/actor.params';\nimport {createActor} from '../utils/actor.utils';\n\nexport const getCdnActor = (cdn: CdnParameters): Promise<ConsoleActor | SatelliteActor> =>\n 'satellite' in cdn ? getSatelliteActor(cdn.satellite) : getConsoleActor(cdn.console);\n\nconst getConsoleActor = ({consoleId, ...rest}: ConsoleParameters): Promise<ConsoleActor> =>\n getActor({\n canisterId: consoleId,\n ...rest,\n idlFactory: idlFactoryConsole\n });\n\nconst getSatelliteActor = ({satelliteId, ...rest}: SatelliteParameters): Promise<SatelliteActor> =>\n getActor({\n canisterId: satelliteId,\n ...rest,\n idlFactory: idlFactorySatellite\n });\n\nconst getActor = <T>({\n canisterId,\n idlFactory,\n ...rest\n}: ActorParameters & {\n canisterId: string | Principal | undefined;\n idlFactory: IDL.InterfaceFactory;\n}): Promise<T> => {\n assertNonNullish(canisterId, 'No canister ID provided.');\n\n return createActor({\n canisterId,\n idlFactory,\n ...rest\n });\n};\n", "// @ts-ignore\nexport const idlFactory = ({IDL}) => {\n const Tokens = IDL.Record({e8s: IDL.Nat64});\n const AssertMissionControlCenterArgs = IDL.Record({\n mission_control_id: IDL.Principal,\n user: IDL.Principal\n });\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 CreateCanisterArgs = IDL.Record({\n block_index: IDL.Opt(IDL.Nat64),\n subnet_id: IDL.Opt(IDL.Principal),\n user: IDL.Principal\n });\n const DeleteControllersArgs = IDL.Record({\n controllers: IDL.Vec(IDL.Principal)\n });\n const DeleteProposalAssets = IDL.Record({\n proposal_ids: IDL.Vec(IDL.Nat)\n });\n const StorageConfigIFrame = IDL.Variant({\n Deny: IDL.Null,\n AllowAny: IDL.Null,\n SameOrigin: IDL.Null\n });\n const ConfigMaxMemorySize = IDL.Record({\n stable: IDL.Opt(IDL.Nat64),\n heap: IDL.Opt(IDL.Nat64)\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({storage: StorageConfig});\n const GetCreateCanisterFeeArgs = IDL.Record({user: IDL.Principal});\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 MissionControl = IDL.Record({\n updated_at: IDL.Nat64,\n credits: Tokens,\n mission_control_id: IDL.Opt(IDL.Principal),\n owner: IDL.Principal,\n created_at: IDL.Nat64\n });\n const HttpRequest = IDL.Record({\n url: IDL.Text,\n method: IDL.Text,\n body: IDL.Vec(IDL.Nat8),\n headers: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),\n certificate_version: IDL.Opt(IDL.Nat16)\n });\n const Memory = IDL.Variant({Heap: IDL.Null, Stable: IDL.Null});\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 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 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 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 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 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 PaymentStatus = IDL.Variant({\n Refunded: IDL.Null,\n Acknowledged: IDL.Null,\n Completed: IDL.Null\n });\n const Payment = IDL.Record({\n status: PaymentStatus,\n updated_at: IDL.Nat64,\n block_index_payment: IDL.Nat64,\n mission_control_id: IDL.Opt(IDL.Principal),\n created_at: IDL.Nat64,\n block_index_refunded: IDL.Opt(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 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 SegmentKind = IDL.Variant({\n Orbiter: IDL.Null,\n MissionControl: IDL.Null,\n Satellite: IDL.Null\n });\n const RateConfig = IDL.Record({\n max_tokens: IDL.Nat64,\n time_per_token_ns: IDL.Nat64\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 add_credits: IDL.Func([IDL.Principal, Tokens], [], []),\n add_invitation_code: IDL.Func([IDL.Text], [], []),\n assert_mission_control_center: IDL.Func([AssertMissionControlCenterArgs], [], ['query']),\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_proposals: IDL.Func([], [IDL.Nat64], ['query']),\n create_orbiter: IDL.Func([CreateCanisterArgs], [IDL.Principal], []),\n create_satellite: IDL.Func([CreateCanisterArgs], [IDL.Principal], []),\n del_controllers: IDL.Func([DeleteControllersArgs], [], []),\n del_custom_domain: IDL.Func([IDL.Text], [], []),\n delete_proposal_assets: IDL.Func([DeleteProposalAssets], [], []),\n get_config: IDL.Func([], [Config], ['query']),\n get_create_orbiter_fee: IDL.Func([GetCreateCanisterFeeArgs], [IDL.Opt(Tokens)], ['query']),\n get_create_satellite_fee: IDL.Func([GetCreateCanisterFeeArgs], [IDL.Opt(Tokens)], ['query']),\n get_credits: IDL.Func([], [Tokens], ['query']),\n get_proposal: IDL.Func([IDL.Nat], [IDL.Opt(Proposal)], ['query']),\n get_storage_config: IDL.Func([], [StorageConfig], ['query']),\n get_user_mission_control_center: IDL.Func([], [IDL.Opt(MissionControl)], ['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, IDL.Nat], [InitUploadResult], []),\n init_proposal: IDL.Func([ProposalType], [IDL.Nat, Proposal], []),\n init_proposal_asset_upload: IDL.Func([InitAssetKey, IDL.Nat], [InitUploadResult], []),\n init_user_mission_control_center: IDL.Func([], [MissionControl], []),\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_payments: IDL.Func([], [IDL.Vec(IDL.Tuple(IDL.Nat64, Payment))], ['query']),\n list_proposals: IDL.Func([ListProposalsParams], [ListProposalResults], ['query']),\n list_user_mission_control_centers: IDL.Func(\n [],\n [IDL.Vec(IDL.Tuple(IDL.Principal, MissionControl))],\n ['query']\n ),\n reject_proposal: IDL.Func([CommitProposal], [IDL.Null], []),\n set_controllers: IDL.Func([SetControllersArgs], [], []),\n set_custom_domain: IDL.Func([IDL.Text, IDL.Opt(IDL.Text)], [], []),\n set_fee: IDL.Func([SegmentKind, Tokens], [], []),\n set_storage_config: IDL.Func([StorageConfig], [], []),\n submit_proposal: IDL.Func([IDL.Nat], [IDL.Nat, Proposal], []),\n update_rate_config: IDL.Func([SegmentKind, RateConfig], [], []),\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([], [], ['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", "import {\n Actor,\n HttpAgent,\n type ActorConfig,\n type ActorMethod,\n type ActorSubclass\n} from '@dfinity/agent';\nimport type {IDL} from '@dfinity/candid';\nimport type {Principal} from '@dfinity/principal';\nimport {nonNullish} from '@dfinity/utils';\nimport type {ActorParameters} from '../types/actor.params';\n\nexport const createActor = async <T = Record<string, ActorMethod>>({\n canisterId,\n idlFactory,\n config,\n ...rest\n}: {\n idlFactory: IDL.InterfaceFactory;\n canisterId: string | Principal;\n config?: Pick<ActorConfig, 'callTransform' | 'queryTransform'>;\n} & ActorParameters): Promise<ActorSubclass<T>> => {\n const agent = await useOrInitAgent(rest);\n\n // Creates an actor with using the candid interface and the HttpAgent\n return Actor.createActor(idlFactory, {\n agent,\n canisterId,\n ...(config ?? {})\n });\n};\n\nexport const useOrInitAgent = async ({agent, ...rest}: ActorParameters): Promise<HttpAgent> =>\n agent ?? (await initAgent(rest));\n\nconst initAgent = async ({\n identity,\n container\n}: Omit<ActorParameters, 'agent'>): Promise<HttpAgent> => {\n const localActor = nonNullish(container) && container !== false;\n\n const host = localActor\n ? container === true\n ? 'http://127.0.0.1:5987'\n : container\n : 'https://icp-api.io';\n\n return await HttpAgent.create({\n identity,\n host,\n retryTimes: 10,\n shouldFetchRootKey: localActor\n });\n};\n", "import type {\n ListProposalResults,\n ListProposalsParams\n} from '../../declarations/console/console.did';\nimport type {CdnParameters} from '../types/actor.params';\nimport type {\n CommitProposal,\n Proposal,\n ProposalId,\n ProposalType,\n RejectProposal\n} from '../types/cdn';\nimport {getCdnActor} from './_actor.api';\n\nexport const initProposal = async ({\n cdn,\n proposalType\n}: {\n proposalType: ProposalType;\n cdn: CdnParameters;\n}): Promise<[ProposalId, Proposal]> => {\n const {init_proposal} = await getCdnActor(cdn);\n return init_proposal(proposalType);\n};\n\nexport const submitProposal = async ({\n cdn,\n proposalId\n}: {\n cdn: CdnParameters;\n proposalId: ProposalId;\n}): Promise<[ProposalId, Proposal]> => {\n const {submit_proposal} = await getCdnActor(cdn);\n return submit_proposal(proposalId);\n};\n\nexport const rejectProposal = async ({\n cdn,\n proposal\n}: {\n cdn: CdnParameters;\n proposal: RejectProposal;\n}): Promise<void> => {\n const {reject_proposal} = await getCdnActor(cdn);\n await reject_proposal(proposal);\n};\n\nexport const commitProposal = async ({\n cdn,\n proposal\n}: {\n cdn: CdnParameters;\n proposal: CommitProposal;\n}): Promise<void> => {\n const {commit_proposal} = await getCdnActor(cdn);\n await commit_proposal(proposal);\n};\n\nexport const deleteProposalAssets = async ({\n cdn,\n proposalIds\n}: {\n cdn: CdnParameters;\n proposalIds: ProposalId[];\n}): Promise<void> => {\n const {delete_proposal_assets} = await getCdnActor(cdn);\n await delete_proposal_assets({proposal_ids: proposalIds});\n};\n\nexport const countProposals = async ({cdn}: {cdn: CdnParameters}): Promise<bigint> => {\n const {count_proposals} = await getCdnActor(cdn);\n return count_proposals();\n};\n\nexport const listProposals = async ({\n cdn,\n filter\n}: {\n cdn: CdnParameters;\n filter: ListProposalsParams;\n}): Promise<ListProposalResults> => {\n const {list_proposals} = await getCdnActor(cdn);\n return list_proposals(filter);\n};\n\nexport const getProposal = async ({\n cdn,\n proposalId\n}: {\n cdn: CdnParameters;\n proposalId: ProposalId;\n}): Promise<[] | [Proposal]> => {\n const {get_proposal} = await getCdnActor(cdn);\n return get_proposal(proposalId);\n};\n", "import {\n uploadAssetWithProposal as uploadAssetWithProposalStorage,\n type UploadAsset\n} from '@junobuild/storage';\nimport type {CdnParameters} from '../types/actor.params';\nimport type {ProposalId} from '../types/cdn';\nimport {getCdnActor} from './_actor.api';\n\nexport const uploadAssetWithProposal = async ({\n cdn,\n proposalId,\n asset\n}: {\n asset: UploadAsset;\n cdn: CdnParameters;\n proposalId: ProposalId;\n}): Promise<void> => {\n const actor = await getCdnActor(cdn);\n\n await uploadAssetWithProposalStorage({\n actor,\n asset,\n proposalId\n });\n};\n", "import {nonNullish} from '@dfinity/utils';\nimport {createSnapshot} from '../api/ic.api';\nimport {commitProposal, deleteProposalAssets} from '../api/proposal.api';\nimport {type ApplyProposalParams, ApplyProposalProgressStep} from '../types/proposal.params';\n\nexport const executeApplyProposal = async ({\n takeSnapshot = false,\n clearProposalAssets = false,\n onProgress,\n cdn,\n proposal,\n postApply\n}: ApplyProposalParams) => {\n try {\n // 1. We take a snapshot - if the dev opted-in\n const snapshot = async () => (takeSnapshot ? await createSnapshot({cdn}) : Promise.resolve());\n await execute({fn: snapshot, onProgress, step: ApplyProposalProgressStep.TakingSnapshot});\n\n // 2. Commit the proposal\n const commit = async () => await commitProposal({cdn, proposal});\n await execute({fn: commit, onProgress, step: ApplyProposalProgressStep.CommittingProposal});\n\n // 3. Clear proposal assets if required\n const clear = async () =>\n clearProposalAssets\n ? await deleteProposalAssets({cdn, proposalIds: [proposal.proposal_id]})\n : Promise.resolve();\n await execute({fn: clear, onProgress, step: ApplyProposalProgressStep.ClearingProposalAssets});\n } finally {\n // 4. If provided, the post apply runs in any case\n const job = async () => (nonNullish(postApply) ? await postApply() : Promise.resolve());\n await execute({fn: job, onProgress, step: ApplyProposalProgressStep.PostApply});\n }\n};\n\nconst execute = async ({\n fn,\n step,\n onProgress\n}: {fn: () => Promise<void>; step: ApplyProposalProgressStep} & Pick<\n ApplyProposalParams,\n 'onProgress'\n>) => {\n onProgress?.({\n step,\n state: 'in_progress'\n });\n\n try {\n await fn();\n\n onProgress?.({\n step,\n state: 'success'\n });\n } catch (err: unknown) {\n onProgress?.({\n step,\n state: 'error'\n });\n\n throw err;\n }\n};\n", "import {\n type list_canister_snapshots_result,\n type snapshot_id,\n type take_canister_snapshot_result,\n ICManagementCanister\n} from '@dfinity/ic-management';\nimport {Principal} from '@dfinity/principal';\nimport type {ActorParameters, CdnParameters} from '../types/actor.params';\nimport {useOrInitAgent} from '../utils/actor.utils';\n\nconst listCanisterSnapshots = async ({\n actor,\n canisterId\n}: {\n actor: ActorParameters;\n canisterId: Principal;\n}): Promise<list_canister_snapshots_result> => {\n const agent = await useOrInitAgent(actor);\n\n const {listCanisterSnapshots} = ICManagementCanister.create({\n agent\n });\n\n return listCanisterSnapshots({canisterId});\n};\n\nconst takeCanisterSnapshot = async ({\n actor,\n ...rest\n}: {\n actor: ActorParameters;\n canisterId: Principal;\n snapshotId?: snapshot_id;\n}): Promise<take_canister_snapshot_result> => {\n const agent = await useOrInitAgent(actor);\n\n const {takeCanisterSnapshot} = ICManagementCanister.create({\n agent\n });\n\n return takeCanisterSnapshot(rest);\n};\n\nexport const createSnapshot = async ({cdn}: {cdn: CdnParameters}) => {\n const mapParams = (): {actor: ActorParameters; canisterId: Principal} => {\n if ('satellite' in cdn) {\n const {\n satellite: {satelliteId, ...rest}\n } = cdn;\n return {\n canisterId:\n satelliteId instanceof Principal ? satelliteId : Principal.fromText(satelliteId),\n actor: rest\n };\n }\n\n const {\n console: {consoleId, ...rest}\n } = cdn;\n return {\n canisterId: consoleId instanceof Principal ? consoleId : Principal.fromText(consoleId),\n actor: rest\n };\n };\n\n const params = mapParams();\n\n const snapshots = await listCanisterSnapshots(params);\n\n // TODO: currently only one snapshot per canister is supported on the IC\n await takeCanisterSnapshot({\n ...params,\n snapshotId: snapshots?.[0]?.id\n });\n};\n", "import type {CdnParameters} from './actor.params';\nimport type {CommitProposal} from './cdn';\n\nexport enum ApplyProposalProgressStep {\n TakingSnapshot,\n CommittingProposal,\n ClearingProposalAssets,\n PostApply\n}\n\nexport enum RejectProposalProgressStep {\n RejectingProposal,\n ClearingProposalAssets,\n PostReject\n}\n\nexport type ProposalProgressState = 'in_progress' | 'success' | 'error';\n\nexport interface ApplyProposalProgress {\n step: ApplyProposalProgressStep;\n state: ProposalProgressState;\n}\n\nexport interface RejectProposalProgress {\n step: RejectProposalProgressStep;\n state: ProposalProgressState;\n}\n\nexport interface ApplyProposalParams {\n cdn: CdnParameters;\n proposal: CommitProposal;\n takeSnapshot?: boolean;\n clearProposalAssets?: boolean;\n postApply?: () => Promise<void>;\n onProgress?: (progress: ApplyProposalProgress) => void;\n}\n\nexport type RejectProposalParams = Omit<\n ApplyProposalParams,\n 'postApply' | 'takeSnapshot' | 'onProgress'\n> & {\n postReject?: () => Promise<void>;\n onProgress?: (progress: RejectProposalProgress) => void;\n};\n", "import {nonNullish} from '@dfinity/utils';\nimport {deleteProposalAssets, rejectProposal} from '../api/proposal.api';\nimport {type RejectProposalParams, RejectProposalProgressStep} from '../types/proposal.params';\n\nexport const executeRejectProposal = async ({\n clearProposalAssets = false,\n onProgress,\n cdn,\n proposal,\n postReject\n}: RejectProposalParams) => {\n try {\n // 1. Reject the proposal\n const reject = async () => await rejectProposal({cdn, proposal});\n await execute({fn: reject, onProgress, step: RejectProposalProgressStep.RejectingProposal});\n\n // 2. Clear proposal assets if required\n const clear = async () =>\n clearProposalAssets\n ? await deleteProposalAssets({cdn, proposalIds: [proposal.proposal_id]})\n : Promise.resolve();\n await execute({fn: clear, onProgress, step: RejectProposalProgressStep.ClearingProposalAssets});\n } finally {\n // 3. If provided, the post apply runs in any case\n const job = async () => (nonNullish(postReject) ? await postReject() : Promise.resolve());\n await execute({fn: job, onProgress, step: RejectProposalProgressStep.PostReject});\n }\n};\n\nconst execute = async ({\n fn,\n step,\n onProgress\n}: {fn: () => Promise<void>; step: RejectProposalProgressStep} & Pick<\n RejectProposalParams,\n 'onProgress'\n>) => {\n onProgress?.({\n step,\n state: 'in_progress'\n });\n\n try {\n await fn();\n\n onProgress?.({\n step,\n state: 'success'\n });\n } catch (err: unknown) {\n onProgress?.({\n step,\n state: 'error'\n });\n\n throw err;\n }\n};\n"], "mappings": "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