UNPKG

@dfinity/assets

Version:

JavaScript and TypeScript library to manage assets on the Internet Computer

154 lines (152 loc) 4.32 kB
import type { IDL } from '@dfinity/candid'; export const idlFactory: IDL.InterfaceFactory = ({ IDL }) => { const ClearArguments = IDL.Record({}); const BatchId = IDL.Nat; const Key = IDL.Text; const HeaderField = IDL.Tuple(IDL.Text, IDL.Text); const CreateAssetArguments = IDL.Record({ key: Key, content_type: IDL.Text, headers: IDL.Opt(IDL.Vec(HeaderField)), }); const UnsetAssetContentArguments = IDL.Record({ key: Key, content_encoding: IDL.Text, }); const DeleteAssetArguments = IDL.Record({ key: Key }); const ChunkId = IDL.Nat; const SetAssetContentArguments = IDL.Record({ key: Key, sha256: IDL.Opt(IDL.Vec(IDL.Nat8)), chunk_ids: IDL.Vec(ChunkId), content_encoding: IDL.Text, }); const BatchOperationKind = IDL.Variant({ CreateAsset: CreateAssetArguments, UnsetAssetContent: UnsetAssetContentArguments, DeleteAsset: DeleteAssetArguments, SetAssetContent: SetAssetContentArguments, Clear: ClearArguments, }); const HttpRequest = IDL.Record({ url: IDL.Text, method: IDL.Text, body: IDL.Vec(IDL.Nat8), headers: IDL.Vec(HeaderField), }); const StreamingCallbackToken = IDL.Record({ key: Key, sha256: IDL.Opt(IDL.Vec(IDL.Nat8)), index: IDL.Nat, content_encoding: IDL.Text, }); const StreamingCallbackHttpResponse = IDL.Record({ token: IDL.Opt(StreamingCallbackToken), body: IDL.Vec(IDL.Nat8), }); const StreamingStrategy = IDL.Variant({ Callback: IDL.Record({ token: StreamingCallbackToken, callback: IDL.Func( [StreamingCallbackToken], [IDL.Opt(StreamingCallbackHttpResponse)], ['query'], ), }), }); const HttpResponse = IDL.Record({ body: IDL.Vec(IDL.Nat8), headers: IDL.Vec(HeaderField), streaming_strategy: IDL.Opt(StreamingStrategy), status_code: IDL.Nat16, }); const Time = IDL.Int; return IDL.Service({ authorize: IDL.Func([IDL.Principal], [], []), clear: IDL.Func([ClearArguments], [], []), commit_batch: IDL.Func( [ IDL.Record({ batch_id: BatchId, operations: IDL.Vec(BatchOperationKind), }), ], [], [], ), create_asset: IDL.Func([CreateAssetArguments], [], []), create_batch: IDL.Func([IDL.Record({})], [IDL.Record({ batch_id: BatchId })], []), create_chunk: IDL.Func( [IDL.Record({ content: IDL.Vec(IDL.Nat8), batch_id: BatchId })], [IDL.Record({ chunk_id: ChunkId })], [], ), delete_asset: IDL.Func([DeleteAssetArguments], [], []), get: IDL.Func( [IDL.Record({ key: Key, accept_encodings: IDL.Vec(IDL.Text) })], [ IDL.Record({ content: IDL.Vec(IDL.Nat8), sha256: IDL.Opt(IDL.Vec(IDL.Nat8)), content_type: IDL.Text, content_encoding: IDL.Text, total_length: IDL.Nat, }), ], ['query'], ), get_chunk: IDL.Func( [ IDL.Record({ key: Key, sha256: IDL.Opt(IDL.Vec(IDL.Nat8)), index: IDL.Nat, content_encoding: IDL.Text, }), ], [IDL.Record({ content: IDL.Vec(IDL.Nat8) })], ['query'], ), http_request: IDL.Func([HttpRequest], [HttpResponse], ['query']), http_request_streaming_callback: IDL.Func( [StreamingCallbackToken], [IDL.Opt(StreamingCallbackHttpResponse)], ['query'], ), list: IDL.Func( [IDL.Record({})], [ IDL.Vec( IDL.Record({ key: Key, encodings: IDL.Vec( IDL.Record({ modified: Time, sha256: IDL.Opt(IDL.Vec(IDL.Nat8)), length: IDL.Nat, content_encoding: IDL.Text, }), ), content_type: IDL.Text, }), ), ], ['query'], ), set_asset_content: IDL.Func([SetAssetContentArguments], [], []), store: IDL.Func( [ IDL.Record({ key: Key, content: IDL.Vec(IDL.Nat8), sha256: IDL.Opt(IDL.Vec(IDL.Nat8)), content_type: IDL.Text, content_encoding: IDL.Text, }), ], [], [], ), unset_asset_content: IDL.Func([UnsetAssetContentArguments], [], []), }); };