@dfinity/utils 0.0.8-next-2023-01-24 → 0.0.8

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/README.md CHANGED
@@ -164,6 +164,18 @@ Tags after patch version are ignored, e.g. 1.0.0-beta.1 is considered equal to 1
164
164
  | ---------------- | ----------------------------------------------------------------------------------------------- |
165
165
  | `smallerVersion` | `({ minVersion, currentVersion, }: { minVersion: string; currentVersion: string; }) => boolean` |
166
166
 
167
+ ### :factory: Canister
168
+
169
+ #### Constructors
170
+
171
+ `public`
172
+
173
+ Parameters:
174
+
175
+ - `id`
176
+ - `service`
177
+ - `certifiedService`
178
+
167
179
  ### :factory: NullishError
168
180
 
169
181
  #### Constructors
@@ -1,2 +1,2 @@
1
- "use strict";var c=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var T=Object.getOwnPropertyNames;var U=Object.prototype.hasOwnProperty;var N=(t,r)=>{for(var e in r)c(t,e,{get:r[e],enumerable:!0})},x=(t,r,e,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let i of T(r))!U.call(t,i)&&i!==e&&c(t,i,{get:()=>r[i],enumerable:!(n=b(r,i))||n.enumerable});return t};var w=t=>x(c({},"__esModule",{value:!0}),t);var q={};N(q,{NullishError:()=>s,arrayBufferToUint8Array:()=>V,arrayOfNumberToUint8Array:()=>C,asciiStringToByteArray:()=>D,assertNonNullish:()=>y,bigIntToUint8Array:()=>B,createAgent:()=>I,createServices:()=>S,defaultAgent:()=>p,fromDefinedNullable:()=>_,fromNullable:()=>u,numberToUint8Array:()=>h,principalToSubAccount:()=>F,smallerVersion:()=>L,toNullable:()=>P,uint8ArrayToArrayOfNumber:()=>R,uint8ArrayToBigInt:()=>O});module.exports=w(q);var f=require("@dfinity/agent");var o=require("@dfinity/agent"),p=()=>new o.HttpAgent({host:"https://ic0.app",identity:new o.AnonymousIdentity}),I=async({identity:t,host:r,fetchRootKey:e=!1})=>{let n=new o.HttpAgent({identity:t,...r!==void 0&&{host:r}});return e&&await n.fetchRootKey(),n};var S=({options:{canisterId:t,serviceOverride:r,certifiedServiceOverride:e,agent:n},idlFactory:i,certifiedIdlFactory:g})=>{let a=n??p(),d=r??f.Actor.createActor(i,{agent:a,canisterId:t}),l=e??f.Actor.createActor(g,{agent:a,canisterId:t});return{service:d,certifiedService:l,agent:a,canisterId:t}};var O=t=>{let r=new DataView(t.buffer,t.byteOffset,t.byteLength);if(typeof r.getBigUint64=="function")return r.getBigUint64(0);{let e=BigInt(r.getUint32(0)),n=BigInt(r.getUint32(4));return(e<<BigInt(32))+n}},B=t=>{let r=new ArrayBuffer(8),e=new DataView(r);if(typeof e.setBigUint64=="function")e.setBigUint64(0,t);else{let n=Number(t>>BigInt(32)),i=Number(t&BigInt(4294967295));e.setUint32(0,n),e.setUint32(4,i)}return new Uint8Array(r)},h=t=>{let r=new DataView(new ArrayBuffer(8));for(let e=7;e>=0;--e)r.setUint8(e,t%256),t=t>>8;return new Uint8Array(r.buffer)},V=t=>new Uint8Array(t),R=t=>Array.from(t),C=t=>new Uint8Array(t),D=t=>Array.from(t).map(r=>r.charCodeAt(0));var s=class extends Error{},y=(t,r)=>{if(t==null)throw new s(r)};var P=t=>t?[t]:[],u=t=>t==null?void 0:t[0],_=t=>{let r=u(t);return y(r),r};var F=t=>{let r=t.toUint8Array(),e=new Uint8Array(32);return e[0]=r.length,e.set(r,1),e};var m=(t,r)=>r>t.length?[...t,...[...Array(r-t.length).keys()].map(()=>0)]:t,A=t=>{if(!Number.isNaN(Number(t)))return Number(t);let r=t.split("").reduce((e,n)=>Number.isNaN(Number(n))?e:e+n,"");return Number(r)},L=({minVersion:t,currentVersion:r})=>{let e=m(t.split(".").map(A),3).join(".");return m(r.split(".").map(A),3).join(".").localeCompare(e,void 0,{numeric:!0,sensitivity:"base"})<0};0&&(module.exports={NullishError,arrayBufferToUint8Array,arrayOfNumberToUint8Array,asciiStringToByteArray,assertNonNullish,bigIntToUint8Array,createAgent,createServices,defaultAgent,fromDefinedNullable,fromNullable,numberToUint8Array,principalToSubAccount,smallerVersion,toNullable,uint8ArrayToArrayOfNumber,uint8ArrayToBigInt});
1
+ "use strict";var c=Object.defineProperty;var T=Object.getOwnPropertyDescriptor;var x=Object.getOwnPropertyNames;var U=Object.prototype.hasOwnProperty;var N=(t,r)=>{for(var e in r)c(t,e,{get:r[e],enumerable:!0})},w=(t,r,e,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let i of x(r))!U.call(t,i)&&i!==e&&c(t,i,{get:()=>r[i],enumerable:!(n=T(r,i))||n.enumerable});return t};var I=t=>w(c({},"__esModule",{value:!0}),t);var L={};N(L,{Canister:()=>p,NullishError:()=>s,arrayBufferToUint8Array:()=>V,arrayOfNumberToUint8Array:()=>C,asciiStringToByteArray:()=>D,assertNonNullish:()=>u,bigIntToUint8Array:()=>B,createAgent:()=>S,createServices:()=>h,defaultAgent:()=>f,fromDefinedNullable:()=>_,fromNullable:()=>m,numberToUint8Array:()=>P,principalToSubAccount:()=>q,smallerVersion:()=>F,toNullable:()=>v,uint8ArrayToArrayOfNumber:()=>R,uint8ArrayToBigInt:()=>O});module.exports=I(L);var p=class{constructor(r,e,n){this.id=r;this.service=e;this.certifiedService=n;this.caller=({certified:r=!0})=>r?this.certifiedService:this.service}get canisterId(){return this.id}};var y=require("@dfinity/agent");var o=require("@dfinity/agent"),f=()=>new o.HttpAgent({host:"https://ic0.app",identity:new o.AnonymousIdentity}),S=async({identity:t,host:r,fetchRootKey:e=!1})=>{let n=new o.HttpAgent({identity:t,...r!==void 0&&{host:r}});return e&&await n.fetchRootKey(),n};var h=({options:{canisterId:t,serviceOverride:r,certifiedServiceOverride:e,agent:n},idlFactory:i,certifiedIdlFactory:l})=>{let a=n??f(),g=r??y.Actor.createActor(i,{agent:a,canisterId:t}),b=e??y.Actor.createActor(l,{agent:a,canisterId:t});return{service:g,certifiedService:b,agent:a,canisterId:t}};var O=t=>{let r=new DataView(t.buffer,t.byteOffset,t.byteLength);if(typeof r.getBigUint64=="function")return r.getBigUint64(0);{let e=BigInt(r.getUint32(0)),n=BigInt(r.getUint32(4));return(e<<BigInt(32))+n}},B=t=>{let r=new ArrayBuffer(8),e=new DataView(r);if(typeof e.setBigUint64=="function")e.setBigUint64(0,t);else{let n=Number(t>>BigInt(32)),i=Number(t&BigInt(4294967295));e.setUint32(0,n),e.setUint32(4,i)}return new Uint8Array(r)},P=t=>{let r=new DataView(new ArrayBuffer(8));for(let e=7;e>=0;--e)r.setUint8(e,t%256),t=t>>8;return new Uint8Array(r.buffer)},V=t=>new Uint8Array(t),R=t=>Array.from(t),C=t=>new Uint8Array(t),D=t=>Array.from(t).map(r=>r.charCodeAt(0));var s=class extends Error{},u=(t,r)=>{if(t==null)throw new s(r)};var v=t=>t?[t]:[],m=t=>t==null?void 0:t[0],_=t=>{let r=m(t);return u(r),r};var q=t=>{let r=t.toUint8Array(),e=new Uint8Array(32);return e[0]=r.length,e.set(r,1),e};var A=(t,r)=>r>t.length?[...t,...[...Array(r-t.length).keys()].map(()=>0)]:t,d=t=>{if(!Number.isNaN(Number(t)))return Number(t);let r=t.split("").reduce((e,n)=>Number.isNaN(Number(n))?e:e+n,"");return Number(r)},F=({minVersion:t,currentVersion:r})=>{let e=A(t.split(".").map(d),3).join(".");return A(r.split(".").map(d),3).join(".").localeCompare(e,void 0,{numeric:!0,sensitivity:"base"})<0};0&&(module.exports={Canister,NullishError,arrayBufferToUint8Array,arrayOfNumberToUint8Array,asciiStringToByteArray,assertNonNullish,bigIntToUint8Array,createAgent,createServices,defaultAgent,fromDefinedNullable,fromNullable,numberToUint8Array,principalToSubAccount,smallerVersion,toNullable,uint8ArrayToArrayOfNumber,uint8ArrayToBigInt});
2
2
  //# sourceMappingURL=index.cjs.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/index.ts", "../../src/utils/actor.utils.ts", "../../src/utils/agent.utils.ts", "../../src/utils/arrays.utils.ts", "../../src/utils/asserts.utils.ts", "../../src/utils/did.utils.ts", "../../src/utils/principal.utils.ts", "../../src/utils/version.utils.ts"],
4
- "sourcesContent": ["export type { CanisterOptions } from \"./types/canister.options\";\nexport * from \"./utils/actor.utils\";\nexport * from \"./utils/agent.utils\";\nexport * from \"./utils/arrays.utils\";\nexport * from \"./utils/asserts.utils\";\nexport * from \"./utils/did.utils\";\nexport * from \"./utils/principal.utils\";\nexport * from \"./utils/version.utils\";\n", "import type { ActorSubclass, Agent } from \"@dfinity/agent\";\nimport { Actor } from \"@dfinity/agent\";\nimport type { IDL } from \"@dfinity/candid\";\nimport type { Principal } from \"@dfinity/principal\";\nimport type { CanisterOptions } from \"../types/canister.options\";\nimport { defaultAgent } from \"./agent.utils\";\n\ntype RequiredCanisterOptions<T> = Required<\n Pick<CanisterOptions<T>, \"canisterId\">\n> &\n Omit<CanisterOptions<T>, \"canisterId\">;\n\nexport const createServices = <T>({\n options: {\n canisterId,\n serviceOverride,\n certifiedServiceOverride,\n agent: agentOption,\n },\n idlFactory,\n certifiedIdlFactory,\n}: {\n options: RequiredCanisterOptions<T>;\n idlFactory: IDL.InterfaceFactory;\n certifiedIdlFactory: IDL.InterfaceFactory;\n}): {\n service: ActorSubclass<T>;\n certifiedService: ActorSubclass<T>;\n agent: Agent;\n canisterId: Principal;\n} => {\n const agent: Agent = agentOption ?? defaultAgent();\n\n const service: ActorSubclass<T> =\n serviceOverride ??\n Actor.createActor<T>(idlFactory, {\n agent,\n canisterId,\n });\n\n const certifiedService: ActorSubclass<T> =\n certifiedServiceOverride ??\n Actor.createActor<T>(certifiedIdlFactory, {\n agent,\n canisterId,\n });\n\n return { service, certifiedService, agent, canisterId };\n};\n", "import type { Agent, Identity } from \"@dfinity/agent\";\nimport { AnonymousIdentity, HttpAgent } from \"@dfinity/agent\";\n\n/**\n * Get a default agent that connects to mainnet with the anonymous identity.\n * @returns The default agent to use\n */\nexport const defaultAgent = (): Agent =>\n new HttpAgent({\n host: \"https://ic0.app\",\n identity: new AnonymousIdentity(),\n });\n\n/**\n * Create an agent for a given identity\n * @param identity A mandatory identity to use for the agent\n * @param host An optional host to connect to\n * @param fetchRootKey Fetch root key for certificate validation during local development or on testnet\n */\nexport const createAgent = async ({\n identity,\n host,\n fetchRootKey = false,\n}: {\n identity: Identity;\n host?: string;\n fetchRootKey?: boolean;\n}): Promise<HttpAgent> => {\n const agent: HttpAgent = new HttpAgent({\n identity,\n ...(host !== undefined && { host }),\n });\n\n if (fetchRootKey) {\n await agent.fetchRootKey();\n }\n\n return agent;\n};\n", "export const uint8ArrayToBigInt = (array: Uint8Array): bigint => {\n const view = new DataView(array.buffer, array.byteOffset, array.byteLength);\n if (typeof view.getBigUint64 === \"function\") {\n return view.getBigUint64(0);\n } else {\n const high = BigInt(view.getUint32(0));\n const low = BigInt(view.getUint32(4));\n\n return (high << BigInt(32)) + low;\n }\n};\n\nexport const bigIntToUint8Array = (value: bigint): Uint8Array => {\n const buffer = new ArrayBuffer(8);\n const view = new DataView(buffer);\n if (typeof view.setBigUint64 === \"function\") {\n view.setBigUint64(0, value);\n } else {\n const high = Number(value >> BigInt(32));\n const low = Number(value & BigInt(0xffffffff));\n\n view.setUint32(0, high);\n view.setUint32(4, low);\n }\n\n return new Uint8Array(buffer);\n};\n\nexport const numberToUint8Array = (value: number): Uint8Array => {\n const view = new DataView(new ArrayBuffer(8));\n for (let index = 7; index >= 0; --index) {\n view.setUint8(index, value % 256);\n value = value >> 8;\n }\n return new Uint8Array(view.buffer);\n};\n\nexport const arrayBufferToUint8Array = (buffer: ArrayBuffer): Uint8Array =>\n new Uint8Array(buffer);\n\nexport const uint8ArrayToArrayOfNumber = (array: Uint8Array): Array<number> =>\n Array.from(array);\n\nexport const arrayOfNumberToUint8Array = (numbers: Array<number>): Uint8Array =>\n new Uint8Array(numbers);\n\nexport const asciiStringToByteArray = (text: string): Array<number> =>\n Array.from(text).map((c) => c.charCodeAt(0));\n", "export class NullishError extends Error {}\n\nexport const assertNonNullish: <T>(\n value: T,\n message?: string\n) => asserts value is NonNullable<T> = <T>(\n value: T,\n message?: string\n): void => {\n if (value === null || value === undefined) {\n throw new NullishError(message);\n }\n};\n", "import { assertNonNullish } from \"./asserts.utils\";\n\nexport const toNullable = <T>(value?: T): [] | [T] => {\n return value ? [value] : [];\n};\n\nexport const fromNullable = <T>(value: [] | [T]): T | undefined => {\n return value?.[0];\n};\n\nexport const fromDefinedNullable = <T>(value: [] | [T]): T => {\n const result = fromNullable(value);\n\n assertNonNullish(result);\n\n return result;\n};\n", "import type { Principal } from \"@dfinity/principal\";\n\n/**\n * Convert a principal to a Uint8Array 32 length.\n * e.g. Useful to convert a canister ID when topping up cycles with the Cmc canister\n * @param principal The principal that needs to be converted to Subaccount\n */\nexport const principalToSubAccount = (principal: Principal): Uint8Array => {\n const bytes: Uint8Array = principal.toUint8Array();\n const subAccount: Uint8Array = new Uint8Array(32);\n subAccount[0] = bytes.length;\n subAccount.set(bytes, 1);\n return subAccount;\n};\n", "const AMOUNT_VERSION_PARTS = 3;\nconst addZeros = (nums: number[], amountZeros: number): number[] =>\n amountZeros > nums.length\n ? [...nums, ...[...Array(amountZeros - nums.length).keys()].map(() => 0)]\n : nums;\n\nconst convertToNumber = (versionStringPart: string): number => {\n if (!Number.isNaN(Number(versionStringPart))) {\n return Number(versionStringPart);\n }\n const strippedVersion = versionStringPart.split(\"\").reduce((acc, char) => {\n if (Number.isNaN(Number(char))) {\n return acc;\n }\n return acc + char;\n }, \"\");\n return Number(strippedVersion);\n};\n/**\n * Returns true if the current version is smaller than the minVersion, false if equal or bigger.\n * Tags after patch version are ignored, e.g. 1.0.0-beta.1 is considered equal to 1.0.0.\n *\n * @param {Object} params\n * @param {string} params.minVersion Ex: \"1.0.0\"\n * @param {string} params.currentVersion Ex: \"2.0.0\"\n * @returns boolean\n */\nexport const smallerVersion = ({\n minVersion,\n currentVersion,\n}: {\n minVersion: string;\n currentVersion: string;\n}): boolean => {\n const minVersionStandarized = addZeros(\n minVersion.split(\".\").map(convertToNumber),\n AMOUNT_VERSION_PARTS\n ).join(\".\");\n const currentVersionStandarized = addZeros(\n currentVersion.split(\".\").map(convertToNumber),\n AMOUNT_VERSION_PARTS\n ).join(\".\");\n // Versions need to have the same number of parts to be comparable\n // Source: https://stackoverflow.com/a/65687141\n return (\n currentVersionStandarized.localeCompare(minVersionStandarized, undefined, {\n numeric: true,\n sensitivity: \"base\",\n }) < 0\n );\n};\n"],
5
- "mappings": "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",
6
- "names": ["src_exports", "__export", "NullishError", "arrayBufferToUint8Array", "arrayOfNumberToUint8Array", "asciiStringToByteArray", "assertNonNullish", "bigIntToUint8Array", "createAgent", "createServices", "defaultAgent", "fromDefinedNullable", "fromNullable", "numberToUint8Array", "principalToSubAccount", "smallerVersion", "toNullable", "uint8ArrayToArrayOfNumber", "uint8ArrayToBigInt", "__toCommonJS", "import_agent", "import_agent", "defaultAgent", "createAgent", "identity", "host", "fetchRootKey", "agent", "createServices", "canisterId", "serviceOverride", "certifiedServiceOverride", "agentOption", "idlFactory", "certifiedIdlFactory", "agent", "defaultAgent", "service", "certifiedService", "uint8ArrayToBigInt", "array", "view", "high", "low", "bigIntToUint8Array", "value", "buffer", "numberToUint8Array", "index", "arrayBufferToUint8Array", "uint8ArrayToArrayOfNumber", "arrayOfNumberToUint8Array", "numbers", "asciiStringToByteArray", "text", "c", "NullishError", "assertNonNullish", "value", "message", "toNullable", "value", "fromNullable", "fromDefinedNullable", "result", "assertNonNullish", "principalToSubAccount", "principal", "bytes", "subAccount", "addZeros", "nums", "amountZeros", "convertToNumber", "versionStringPart", "strippedVersion", "acc", "char", "smallerVersion", "minVersion", "currentVersion", "minVersionStandarized"]
3
+ "sources": ["../../src/index.ts", "../../src/services/canister.ts", "../../src/utils/actor.utils.ts", "../../src/utils/agent.utils.ts", "../../src/utils/arrays.utils.ts", "../../src/utils/asserts.utils.ts", "../../src/utils/did.utils.ts", "../../src/utils/principal.utils.ts", "../../src/utils/version.utils.ts"],
4
+ "sourcesContent": ["export * from \"./services/canister\";\nexport type { CanisterOptions } from \"./types/canister.options\";\nexport type { QueryParams } from \"./types/query.params\";\nexport * from \"./utils/actor.utils\";\nexport * from \"./utils/agent.utils\";\nexport * from \"./utils/arrays.utils\";\nexport * from \"./utils/asserts.utils\";\nexport * from \"./utils/did.utils\";\nexport * from \"./utils/principal.utils\";\nexport * from \"./utils/version.utils\";\n", "import type { Principal } from \"@dfinity/principal\";\nimport type { QueryParams } from \"../types/query.params\";\n\nexport abstract class Canister<T> {\n protected constructor(\n private readonly id: Principal,\n protected readonly service: T,\n protected readonly certifiedService: T\n ) {}\n\n get canisterId(): Principal {\n return this.id;\n }\n\n protected caller = ({ certified = true }: QueryParams): T =>\n certified ? this.certifiedService : this.service;\n}\n", "import type { ActorSubclass, Agent } from \"@dfinity/agent\";\nimport { Actor } from \"@dfinity/agent\";\nimport type { IDL } from \"@dfinity/candid\";\nimport type { Principal } from \"@dfinity/principal\";\nimport type { CanisterOptions } from \"../types/canister.options\";\nimport { defaultAgent } from \"./agent.utils\";\n\ntype RequiredCanisterOptions<T> = Required<\n Pick<CanisterOptions<T>, \"canisterId\">\n> &\n Omit<CanisterOptions<T>, \"canisterId\">;\n\nexport const createServices = <T>({\n options: {\n canisterId,\n serviceOverride,\n certifiedServiceOverride,\n agent: agentOption,\n },\n idlFactory,\n certifiedIdlFactory,\n}: {\n options: RequiredCanisterOptions<T>;\n idlFactory: IDL.InterfaceFactory;\n certifiedIdlFactory: IDL.InterfaceFactory;\n}): {\n service: ActorSubclass<T>;\n certifiedService: ActorSubclass<T>;\n agent: Agent;\n canisterId: Principal;\n} => {\n const agent: Agent = agentOption ?? defaultAgent();\n\n const service: ActorSubclass<T> =\n serviceOverride ??\n Actor.createActor<T>(idlFactory, {\n agent,\n canisterId,\n });\n\n const certifiedService: ActorSubclass<T> =\n certifiedServiceOverride ??\n Actor.createActor<T>(certifiedIdlFactory, {\n agent,\n canisterId,\n });\n\n return { service, certifiedService, agent, canisterId };\n};\n", "import type { Agent, Identity } from \"@dfinity/agent\";\nimport { AnonymousIdentity, HttpAgent } from \"@dfinity/agent\";\n\n/**\n * Get a default agent that connects to mainnet with the anonymous identity.\n * @returns The default agent to use\n */\nexport const defaultAgent = (): Agent =>\n new HttpAgent({\n host: \"https://ic0.app\",\n identity: new AnonymousIdentity(),\n });\n\n/**\n * Create an agent for a given identity\n * @param identity A mandatory identity to use for the agent\n * @param host An optional host to connect to\n * @param fetchRootKey Fetch root key for certificate validation during local development or on testnet\n */\nexport const createAgent = async ({\n identity,\n host,\n fetchRootKey = false,\n}: {\n identity: Identity;\n host?: string;\n fetchRootKey?: boolean;\n}): Promise<HttpAgent> => {\n const agent: HttpAgent = new HttpAgent({\n identity,\n ...(host !== undefined && { host }),\n });\n\n if (fetchRootKey) {\n await agent.fetchRootKey();\n }\n\n return agent;\n};\n", "export const uint8ArrayToBigInt = (array: Uint8Array): bigint => {\n const view = new DataView(array.buffer, array.byteOffset, array.byteLength);\n if (typeof view.getBigUint64 === \"function\") {\n return view.getBigUint64(0);\n } else {\n const high = BigInt(view.getUint32(0));\n const low = BigInt(view.getUint32(4));\n\n return (high << BigInt(32)) + low;\n }\n};\n\nexport const bigIntToUint8Array = (value: bigint): Uint8Array => {\n const buffer = new ArrayBuffer(8);\n const view = new DataView(buffer);\n if (typeof view.setBigUint64 === \"function\") {\n view.setBigUint64(0, value);\n } else {\n const high = Number(value >> BigInt(32));\n const low = Number(value & BigInt(0xffffffff));\n\n view.setUint32(0, high);\n view.setUint32(4, low);\n }\n\n return new Uint8Array(buffer);\n};\n\nexport const numberToUint8Array = (value: number): Uint8Array => {\n const view = new DataView(new ArrayBuffer(8));\n for (let index = 7; index >= 0; --index) {\n view.setUint8(index, value % 256);\n value = value >> 8;\n }\n return new Uint8Array(view.buffer);\n};\n\nexport const arrayBufferToUint8Array = (buffer: ArrayBuffer): Uint8Array =>\n new Uint8Array(buffer);\n\nexport const uint8ArrayToArrayOfNumber = (array: Uint8Array): Array<number> =>\n Array.from(array);\n\nexport const arrayOfNumberToUint8Array = (numbers: Array<number>): Uint8Array =>\n new Uint8Array(numbers);\n\nexport const asciiStringToByteArray = (text: string): Array<number> =>\n Array.from(text).map((c) => c.charCodeAt(0));\n", "export class NullishError extends Error {}\n\nexport const assertNonNullish: <T>(\n value: T,\n message?: string\n) => asserts value is NonNullable<T> = <T>(\n value: T,\n message?: string\n): void => {\n if (value === null || value === undefined) {\n throw new NullishError(message);\n }\n};\n", "import { assertNonNullish } from \"./asserts.utils\";\n\nexport const toNullable = <T>(value?: T): [] | [T] => {\n return value ? [value] : [];\n};\n\nexport const fromNullable = <T>(value: [] | [T]): T | undefined => {\n return value?.[0];\n};\n\nexport const fromDefinedNullable = <T>(value: [] | [T]): T => {\n const result = fromNullable(value);\n\n assertNonNullish(result);\n\n return result;\n};\n", "import type { Principal } from \"@dfinity/principal\";\n\n/**\n * Convert a principal to a Uint8Array 32 length.\n * e.g. Useful to convert a canister ID when topping up cycles with the Cmc canister\n * @param principal The principal that needs to be converted to Subaccount\n */\nexport const principalToSubAccount = (principal: Principal): Uint8Array => {\n const bytes: Uint8Array = principal.toUint8Array();\n const subAccount: Uint8Array = new Uint8Array(32);\n subAccount[0] = bytes.length;\n subAccount.set(bytes, 1);\n return subAccount;\n};\n", "const AMOUNT_VERSION_PARTS = 3;\nconst addZeros = (nums: number[], amountZeros: number): number[] =>\n amountZeros > nums.length\n ? [...nums, ...[...Array(amountZeros - nums.length).keys()].map(() => 0)]\n : nums;\n\nconst convertToNumber = (versionStringPart: string): number => {\n if (!Number.isNaN(Number(versionStringPart))) {\n return Number(versionStringPart);\n }\n const strippedVersion = versionStringPart.split(\"\").reduce((acc, char) => {\n if (Number.isNaN(Number(char))) {\n return acc;\n }\n return acc + char;\n }, \"\");\n return Number(strippedVersion);\n};\n/**\n * Returns true if the current version is smaller than the minVersion, false if equal or bigger.\n * Tags after patch version are ignored, e.g. 1.0.0-beta.1 is considered equal to 1.0.0.\n *\n * @param {Object} params\n * @param {string} params.minVersion Ex: \"1.0.0\"\n * @param {string} params.currentVersion Ex: \"2.0.0\"\n * @returns boolean\n */\nexport const smallerVersion = ({\n minVersion,\n currentVersion,\n}: {\n minVersion: string;\n currentVersion: string;\n}): boolean => {\n const minVersionStandarized = addZeros(\n minVersion.split(\".\").map(convertToNumber),\n AMOUNT_VERSION_PARTS\n ).join(\".\");\n const currentVersionStandarized = addZeros(\n currentVersion.split(\".\").map(convertToNumber),\n AMOUNT_VERSION_PARTS\n ).join(\".\");\n // Versions need to have the same number of parts to be comparable\n // Source: https://stackoverflow.com/a/65687141\n return (\n currentVersionStandarized.localeCompare(minVersionStandarized, undefined, {\n numeric: true,\n sensitivity: \"base\",\n }) < 0\n );\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["src_exports", "__export", "Canister", "NullishError", "arrayBufferToUint8Array", "arrayOfNumberToUint8Array", "asciiStringToByteArray", "assertNonNullish", "bigIntToUint8Array", "createAgent", "createServices", "defaultAgent", "fromDefinedNullable", "fromNullable", "numberToUint8Array", "principalToSubAccount", "smallerVersion", "toNullable", "uint8ArrayToArrayOfNumber", "uint8ArrayToBigInt", "__toCommonJS", "Canister", "id", "service", "certifiedService", "certified", "import_agent", "import_agent", "defaultAgent", "createAgent", "identity", "host", "fetchRootKey", "agent", "createServices", "canisterId", "serviceOverride", "certifiedServiceOverride", "agentOption", "idlFactory", "certifiedIdlFactory", "agent", "defaultAgent", "service", "certifiedService", "uint8ArrayToBigInt", "array", "view", "high", "low", "bigIntToUint8Array", "value", "buffer", "numberToUint8Array", "index", "arrayBufferToUint8Array", "uint8ArrayToArrayOfNumber", "arrayOfNumberToUint8Array", "numbers", "asciiStringToByteArray", "text", "c", "NullishError", "assertNonNullish", "value", "message", "toNullable", "value", "fromNullable", "fromDefinedNullable", "result", "assertNonNullish", "principalToSubAccount", "principal", "bytes", "subAccount", "addZeros", "nums", "amountZeros", "convertToNumber", "versionStringPart", "strippedVersion", "acc", "char", "smallerVersion", "minVersion", "currentVersion", "minVersionStandarized"]
7
7
  }
package/dist/esm/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import{Actor as p}from"@dfinity/agent";import{AnonymousIdentity as g,HttpAgent as a}from"@dfinity/agent";var c=()=>new a({host:"https://ic0.app",identity:new g}),T=async({identity:t,host:r,fetchRootKey:e=!1})=>{let n=new a({identity:t,...r!==void 0&&{host:r}});return e&&await n.fetchRootKey(),n};var w=({options:{canisterId:t,serviceOverride:r,certifiedServiceOverride:e,agent:n},idlFactory:i,certifiedIdlFactory:m})=>{let o=n??c(),A=r??p.createActor(i,{agent:o,canisterId:t}),l=e??p.createActor(m,{agent:o,canisterId:t});return{service:A,certifiedService:l,agent:o,canisterId:t}};var S=t=>{let r=new DataView(t.buffer,t.byteOffset,t.byteLength);if(typeof r.getBigUint64=="function")return r.getBigUint64(0);{let e=BigInt(r.getUint32(0)),n=BigInt(r.getUint32(4));return(e<<BigInt(32))+n}},O=t=>{let r=new ArrayBuffer(8),e=new DataView(r);if(typeof e.setBigUint64=="function")e.setBigUint64(0,t);else{let n=Number(t>>BigInt(32)),i=Number(t&BigInt(4294967295));e.setUint32(0,n),e.setUint32(4,i)}return new Uint8Array(r)},B=t=>{let r=new DataView(new ArrayBuffer(8));for(let e=7;e>=0;--e)r.setUint8(e,t%256),t=t>>8;return new Uint8Array(r.buffer)},h=t=>new Uint8Array(t),V=t=>Array.from(t),R=t=>new Uint8Array(t),C=t=>Array.from(t).map(r=>r.charCodeAt(0));var s=class extends Error{},f=(t,r)=>{if(t==null)throw new s(r)};var v=t=>t?[t]:[],d=t=>t?.[0],F=t=>{let r=d(t);return f(r),r};var q=t=>{let r=t.toUint8Array(),e=new Uint8Array(32);return e[0]=r.length,e.set(r,1),e};var u=(t,r)=>r>t.length?[...t,...[...Array(r-t.length).keys()].map(()=>0)]:t,y=t=>{if(!Number.isNaN(Number(t)))return Number(t);let r=t.split("").reduce((e,n)=>Number.isNaN(Number(n))?e:e+n,"");return Number(r)},E=({minVersion:t,currentVersion:r})=>{let e=u(t.split(".").map(y),3).join(".");return u(r.split(".").map(y),3).join(".").localeCompare(e,void 0,{numeric:!0,sensitivity:"base"})<0};export{s as NullishError,h as arrayBufferToUint8Array,R as arrayOfNumberToUint8Array,C as asciiStringToByteArray,f as assertNonNullish,O as bigIntToUint8Array,T as createAgent,w as createServices,c as defaultAgent,F as fromDefinedNullable,d as fromNullable,B as numberToUint8Array,q as principalToSubAccount,E as smallerVersion,v as toNullable,V as uint8ArrayToArrayOfNumber,S as uint8ArrayToBigInt};
1
+ var a=class{constructor(r,e,n){this.id=r;this.service=e;this.certifiedService=n}get canisterId(){return this.id}caller=({certified:r=!0})=>r?this.certifiedService:this.service};import{Actor as f}from"@dfinity/agent";import{AnonymousIdentity as g,HttpAgent as c}from"@dfinity/agent";var p=()=>new c({host:"https://ic0.app",identity:new g}),U=async({identity:t,host:r,fetchRootKey:e=!1})=>{let n=new c({identity:t,...r!==void 0&&{host:r}});return e&&await n.fetchRootKey(),n};var S=({options:{canisterId:t,serviceOverride:r,certifiedServiceOverride:e,agent:n},idlFactory:i,certifiedIdlFactory:A})=>{let o=n??p(),d=r??f.createActor(i,{agent:o,canisterId:t}),l=e??f.createActor(A,{agent:o,canisterId:t});return{service:d,certifiedService:l,agent:o,canisterId:t}};var O=t=>{let r=new DataView(t.buffer,t.byteOffset,t.byteLength);if(typeof r.getBigUint64=="function")return r.getBigUint64(0);{let e=BigInt(r.getUint32(0)),n=BigInt(r.getUint32(4));return(e<<BigInt(32))+n}},B=t=>{let r=new ArrayBuffer(8),e=new DataView(r);if(typeof e.setBigUint64=="function")e.setBigUint64(0,t);else{let n=Number(t>>BigInt(32)),i=Number(t&BigInt(4294967295));e.setUint32(0,n),e.setUint32(4,i)}return new Uint8Array(r)},P=t=>{let r=new DataView(new ArrayBuffer(8));for(let e=7;e>=0;--e)r.setUint8(e,t%256),t=t>>8;return new Uint8Array(r.buffer)},V=t=>new Uint8Array(t),R=t=>Array.from(t),v=t=>new Uint8Array(t),C=t=>Array.from(t).map(r=>r.charCodeAt(0));var s=class extends Error{},y=(t,r)=>{if(t==null)throw new s(r)};var F=t=>t?[t]:[],b=t=>t?.[0],L=t=>{let r=b(t);return y(r),r};var E=t=>{let r=t.toUint8Array(),e=new Uint8Array(32);return e[0]=r.length,e.set(r,1),e};var u=(t,r)=>r>t.length?[...t,...[...Array(r-t.length).keys()].map(()=>0)]:t,m=t=>{if(!Number.isNaN(Number(t)))return Number(t);let r=t.split("").reduce((e,n)=>Number.isNaN(Number(n))?e:e+n,"");return Number(r)},M=({minVersion:t,currentVersion:r})=>{let e=u(t.split(".").map(m),3).join(".");return u(r.split(".").map(m),3).join(".").localeCompare(e,void 0,{numeric:!0,sensitivity:"base"})<0};export{a as Canister,s as NullishError,V as arrayBufferToUint8Array,v as arrayOfNumberToUint8Array,C as asciiStringToByteArray,y as assertNonNullish,B as bigIntToUint8Array,U as createAgent,S as createServices,p as defaultAgent,L as fromDefinedNullable,b as fromNullable,P as numberToUint8Array,E as principalToSubAccount,M as smallerVersion,F as toNullable,R as uint8ArrayToArrayOfNumber,O as uint8ArrayToBigInt};
2
2
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/utils/actor.utils.ts", "../../src/utils/agent.utils.ts", "../../src/utils/arrays.utils.ts", "../../src/utils/asserts.utils.ts", "../../src/utils/did.utils.ts", "../../src/utils/principal.utils.ts", "../../src/utils/version.utils.ts"],
4
- "sourcesContent": ["import type { ActorSubclass, Agent } from \"@dfinity/agent\";\nimport { Actor } from \"@dfinity/agent\";\nimport type { IDL } from \"@dfinity/candid\";\nimport type { Principal } from \"@dfinity/principal\";\nimport type { CanisterOptions } from \"../types/canister.options\";\nimport { defaultAgent } from \"./agent.utils\";\n\ntype RequiredCanisterOptions<T> = Required<\n Pick<CanisterOptions<T>, \"canisterId\">\n> &\n Omit<CanisterOptions<T>, \"canisterId\">;\n\nexport const createServices = <T>({\n options: {\n canisterId,\n serviceOverride,\n certifiedServiceOverride,\n agent: agentOption,\n },\n idlFactory,\n certifiedIdlFactory,\n}: {\n options: RequiredCanisterOptions<T>;\n idlFactory: IDL.InterfaceFactory;\n certifiedIdlFactory: IDL.InterfaceFactory;\n}): {\n service: ActorSubclass<T>;\n certifiedService: ActorSubclass<T>;\n agent: Agent;\n canisterId: Principal;\n} => {\n const agent: Agent = agentOption ?? defaultAgent();\n\n const service: ActorSubclass<T> =\n serviceOverride ??\n Actor.createActor<T>(idlFactory, {\n agent,\n canisterId,\n });\n\n const certifiedService: ActorSubclass<T> =\n certifiedServiceOverride ??\n Actor.createActor<T>(certifiedIdlFactory, {\n agent,\n canisterId,\n });\n\n return { service, certifiedService, agent, canisterId };\n};\n", "import type { Agent, Identity } from \"@dfinity/agent\";\nimport { AnonymousIdentity, HttpAgent } from \"@dfinity/agent\";\n\n/**\n * Get a default agent that connects to mainnet with the anonymous identity.\n * @returns The default agent to use\n */\nexport const defaultAgent = (): Agent =>\n new HttpAgent({\n host: \"https://ic0.app\",\n identity: new AnonymousIdentity(),\n });\n\n/**\n * Create an agent for a given identity\n * @param identity A mandatory identity to use for the agent\n * @param host An optional host to connect to\n * @param fetchRootKey Fetch root key for certificate validation during local development or on testnet\n */\nexport const createAgent = async ({\n identity,\n host,\n fetchRootKey = false,\n}: {\n identity: Identity;\n host?: string;\n fetchRootKey?: boolean;\n}): Promise<HttpAgent> => {\n const agent: HttpAgent = new HttpAgent({\n identity,\n ...(host !== undefined && { host }),\n });\n\n if (fetchRootKey) {\n await agent.fetchRootKey();\n }\n\n return agent;\n};\n", "export const uint8ArrayToBigInt = (array: Uint8Array): bigint => {\n const view = new DataView(array.buffer, array.byteOffset, array.byteLength);\n if (typeof view.getBigUint64 === \"function\") {\n return view.getBigUint64(0);\n } else {\n const high = BigInt(view.getUint32(0));\n const low = BigInt(view.getUint32(4));\n\n return (high << BigInt(32)) + low;\n }\n};\n\nexport const bigIntToUint8Array = (value: bigint): Uint8Array => {\n const buffer = new ArrayBuffer(8);\n const view = new DataView(buffer);\n if (typeof view.setBigUint64 === \"function\") {\n view.setBigUint64(0, value);\n } else {\n const high = Number(value >> BigInt(32));\n const low = Number(value & BigInt(0xffffffff));\n\n view.setUint32(0, high);\n view.setUint32(4, low);\n }\n\n return new Uint8Array(buffer);\n};\n\nexport const numberToUint8Array = (value: number): Uint8Array => {\n const view = new DataView(new ArrayBuffer(8));\n for (let index = 7; index >= 0; --index) {\n view.setUint8(index, value % 256);\n value = value >> 8;\n }\n return new Uint8Array(view.buffer);\n};\n\nexport const arrayBufferToUint8Array = (buffer: ArrayBuffer): Uint8Array =>\n new Uint8Array(buffer);\n\nexport const uint8ArrayToArrayOfNumber = (array: Uint8Array): Array<number> =>\n Array.from(array);\n\nexport const arrayOfNumberToUint8Array = (numbers: Array<number>): Uint8Array =>\n new Uint8Array(numbers);\n\nexport const asciiStringToByteArray = (text: string): Array<number> =>\n Array.from(text).map((c) => c.charCodeAt(0));\n", "export class NullishError extends Error {}\n\nexport const assertNonNullish: <T>(\n value: T,\n message?: string\n) => asserts value is NonNullable<T> = <T>(\n value: T,\n message?: string\n): void => {\n if (value === null || value === undefined) {\n throw new NullishError(message);\n }\n};\n", "import { assertNonNullish } from \"./asserts.utils\";\n\nexport const toNullable = <T>(value?: T): [] | [T] => {\n return value ? [value] : [];\n};\n\nexport const fromNullable = <T>(value: [] | [T]): T | undefined => {\n return value?.[0];\n};\n\nexport const fromDefinedNullable = <T>(value: [] | [T]): T => {\n const result = fromNullable(value);\n\n assertNonNullish(result);\n\n return result;\n};\n", "import type { Principal } from \"@dfinity/principal\";\n\n/**\n * Convert a principal to a Uint8Array 32 length.\n * e.g. Useful to convert a canister ID when topping up cycles with the Cmc canister\n * @param principal The principal that needs to be converted to Subaccount\n */\nexport const principalToSubAccount = (principal: Principal): Uint8Array => {\n const bytes: Uint8Array = principal.toUint8Array();\n const subAccount: Uint8Array = new Uint8Array(32);\n subAccount[0] = bytes.length;\n subAccount.set(bytes, 1);\n return subAccount;\n};\n", "const AMOUNT_VERSION_PARTS = 3;\nconst addZeros = (nums: number[], amountZeros: number): number[] =>\n amountZeros > nums.length\n ? [...nums, ...[...Array(amountZeros - nums.length).keys()].map(() => 0)]\n : nums;\n\nconst convertToNumber = (versionStringPart: string): number => {\n if (!Number.isNaN(Number(versionStringPart))) {\n return Number(versionStringPart);\n }\n const strippedVersion = versionStringPart.split(\"\").reduce((acc, char) => {\n if (Number.isNaN(Number(char))) {\n return acc;\n }\n return acc + char;\n }, \"\");\n return Number(strippedVersion);\n};\n/**\n * Returns true if the current version is smaller than the minVersion, false if equal or bigger.\n * Tags after patch version are ignored, e.g. 1.0.0-beta.1 is considered equal to 1.0.0.\n *\n * @param {Object} params\n * @param {string} params.minVersion Ex: \"1.0.0\"\n * @param {string} params.currentVersion Ex: \"2.0.0\"\n * @returns boolean\n */\nexport const smallerVersion = ({\n minVersion,\n currentVersion,\n}: {\n minVersion: string;\n currentVersion: string;\n}): boolean => {\n const minVersionStandarized = addZeros(\n minVersion.split(\".\").map(convertToNumber),\n AMOUNT_VERSION_PARTS\n ).join(\".\");\n const currentVersionStandarized = addZeros(\n currentVersion.split(\".\").map(convertToNumber),\n AMOUNT_VERSION_PARTS\n ).join(\".\");\n // Versions need to have the same number of parts to be comparable\n // Source: https://stackoverflow.com/a/65687141\n return (\n currentVersionStandarized.localeCompare(minVersionStandarized, undefined, {\n numeric: true,\n sensitivity: \"base\",\n }) < 0\n );\n};\n"],
5
- "mappings": "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",
6
- "names": ["Actor", "AnonymousIdentity", "HttpAgent", "defaultAgent", "createAgent", "identity", "host", "fetchRootKey", "agent", "createServices", "canisterId", "serviceOverride", "certifiedServiceOverride", "agentOption", "idlFactory", "certifiedIdlFactory", "agent", "defaultAgent", "service", "Actor", "certifiedService", "uint8ArrayToBigInt", "array", "view", "high", "low", "bigIntToUint8Array", "value", "buffer", "numberToUint8Array", "index", "arrayBufferToUint8Array", "uint8ArrayToArrayOfNumber", "arrayOfNumberToUint8Array", "numbers", "asciiStringToByteArray", "text", "c", "NullishError", "assertNonNullish", "value", "message", "toNullable", "value", "fromNullable", "fromDefinedNullable", "result", "assertNonNullish", "principalToSubAccount", "principal", "bytes", "subAccount", "addZeros", "nums", "amountZeros", "convertToNumber", "versionStringPart", "strippedVersion", "acc", "char", "smallerVersion", "minVersion", "currentVersion", "minVersionStandarized"]
3
+ "sources": ["../../src/services/canister.ts", "../../src/utils/actor.utils.ts", "../../src/utils/agent.utils.ts", "../../src/utils/arrays.utils.ts", "../../src/utils/asserts.utils.ts", "../../src/utils/did.utils.ts", "../../src/utils/principal.utils.ts", "../../src/utils/version.utils.ts"],
4
+ "sourcesContent": ["import type { Principal } from \"@dfinity/principal\";\nimport type { QueryParams } from \"../types/query.params\";\n\nexport abstract class Canister<T> {\n protected constructor(\n private readonly id: Principal,\n protected readonly service: T,\n protected readonly certifiedService: T\n ) {}\n\n get canisterId(): Principal {\n return this.id;\n }\n\n protected caller = ({ certified = true }: QueryParams): T =>\n certified ? this.certifiedService : this.service;\n}\n", "import type { ActorSubclass, Agent } from \"@dfinity/agent\";\nimport { Actor } from \"@dfinity/agent\";\nimport type { IDL } from \"@dfinity/candid\";\nimport type { Principal } from \"@dfinity/principal\";\nimport type { CanisterOptions } from \"../types/canister.options\";\nimport { defaultAgent } from \"./agent.utils\";\n\ntype RequiredCanisterOptions<T> = Required<\n Pick<CanisterOptions<T>, \"canisterId\">\n> &\n Omit<CanisterOptions<T>, \"canisterId\">;\n\nexport const createServices = <T>({\n options: {\n canisterId,\n serviceOverride,\n certifiedServiceOverride,\n agent: agentOption,\n },\n idlFactory,\n certifiedIdlFactory,\n}: {\n options: RequiredCanisterOptions<T>;\n idlFactory: IDL.InterfaceFactory;\n certifiedIdlFactory: IDL.InterfaceFactory;\n}): {\n service: ActorSubclass<T>;\n certifiedService: ActorSubclass<T>;\n agent: Agent;\n canisterId: Principal;\n} => {\n const agent: Agent = agentOption ?? defaultAgent();\n\n const service: ActorSubclass<T> =\n serviceOverride ??\n Actor.createActor<T>(idlFactory, {\n agent,\n canisterId,\n });\n\n const certifiedService: ActorSubclass<T> =\n certifiedServiceOverride ??\n Actor.createActor<T>(certifiedIdlFactory, {\n agent,\n canisterId,\n });\n\n return { service, certifiedService, agent, canisterId };\n};\n", "import type { Agent, Identity } from \"@dfinity/agent\";\nimport { AnonymousIdentity, HttpAgent } from \"@dfinity/agent\";\n\n/**\n * Get a default agent that connects to mainnet with the anonymous identity.\n * @returns The default agent to use\n */\nexport const defaultAgent = (): Agent =>\n new HttpAgent({\n host: \"https://ic0.app\",\n identity: new AnonymousIdentity(),\n });\n\n/**\n * Create an agent for a given identity\n * @param identity A mandatory identity to use for the agent\n * @param host An optional host to connect to\n * @param fetchRootKey Fetch root key for certificate validation during local development or on testnet\n */\nexport const createAgent = async ({\n identity,\n host,\n fetchRootKey = false,\n}: {\n identity: Identity;\n host?: string;\n fetchRootKey?: boolean;\n}): Promise<HttpAgent> => {\n const agent: HttpAgent = new HttpAgent({\n identity,\n ...(host !== undefined && { host }),\n });\n\n if (fetchRootKey) {\n await agent.fetchRootKey();\n }\n\n return agent;\n};\n", "export const uint8ArrayToBigInt = (array: Uint8Array): bigint => {\n const view = new DataView(array.buffer, array.byteOffset, array.byteLength);\n if (typeof view.getBigUint64 === \"function\") {\n return view.getBigUint64(0);\n } else {\n const high = BigInt(view.getUint32(0));\n const low = BigInt(view.getUint32(4));\n\n return (high << BigInt(32)) + low;\n }\n};\n\nexport const bigIntToUint8Array = (value: bigint): Uint8Array => {\n const buffer = new ArrayBuffer(8);\n const view = new DataView(buffer);\n if (typeof view.setBigUint64 === \"function\") {\n view.setBigUint64(0, value);\n } else {\n const high = Number(value >> BigInt(32));\n const low = Number(value & BigInt(0xffffffff));\n\n view.setUint32(0, high);\n view.setUint32(4, low);\n }\n\n return new Uint8Array(buffer);\n};\n\nexport const numberToUint8Array = (value: number): Uint8Array => {\n const view = new DataView(new ArrayBuffer(8));\n for (let index = 7; index >= 0; --index) {\n view.setUint8(index, value % 256);\n value = value >> 8;\n }\n return new Uint8Array(view.buffer);\n};\n\nexport const arrayBufferToUint8Array = (buffer: ArrayBuffer): Uint8Array =>\n new Uint8Array(buffer);\n\nexport const uint8ArrayToArrayOfNumber = (array: Uint8Array): Array<number> =>\n Array.from(array);\n\nexport const arrayOfNumberToUint8Array = (numbers: Array<number>): Uint8Array =>\n new Uint8Array(numbers);\n\nexport const asciiStringToByteArray = (text: string): Array<number> =>\n Array.from(text).map((c) => c.charCodeAt(0));\n", "export class NullishError extends Error {}\n\nexport const assertNonNullish: <T>(\n value: T,\n message?: string\n) => asserts value is NonNullable<T> = <T>(\n value: T,\n message?: string\n): void => {\n if (value === null || value === undefined) {\n throw new NullishError(message);\n }\n};\n", "import { assertNonNullish } from \"./asserts.utils\";\n\nexport const toNullable = <T>(value?: T): [] | [T] => {\n return value ? [value] : [];\n};\n\nexport const fromNullable = <T>(value: [] | [T]): T | undefined => {\n return value?.[0];\n};\n\nexport const fromDefinedNullable = <T>(value: [] | [T]): T => {\n const result = fromNullable(value);\n\n assertNonNullish(result);\n\n return result;\n};\n", "import type { Principal } from \"@dfinity/principal\";\n\n/**\n * Convert a principal to a Uint8Array 32 length.\n * e.g. Useful to convert a canister ID when topping up cycles with the Cmc canister\n * @param principal The principal that needs to be converted to Subaccount\n */\nexport const principalToSubAccount = (principal: Principal): Uint8Array => {\n const bytes: Uint8Array = principal.toUint8Array();\n const subAccount: Uint8Array = new Uint8Array(32);\n subAccount[0] = bytes.length;\n subAccount.set(bytes, 1);\n return subAccount;\n};\n", "const AMOUNT_VERSION_PARTS = 3;\nconst addZeros = (nums: number[], amountZeros: number): number[] =>\n amountZeros > nums.length\n ? [...nums, ...[...Array(amountZeros - nums.length).keys()].map(() => 0)]\n : nums;\n\nconst convertToNumber = (versionStringPart: string): number => {\n if (!Number.isNaN(Number(versionStringPart))) {\n return Number(versionStringPart);\n }\n const strippedVersion = versionStringPart.split(\"\").reduce((acc, char) => {\n if (Number.isNaN(Number(char))) {\n return acc;\n }\n return acc + char;\n }, \"\");\n return Number(strippedVersion);\n};\n/**\n * Returns true if the current version is smaller than the minVersion, false if equal or bigger.\n * Tags after patch version are ignored, e.g. 1.0.0-beta.1 is considered equal to 1.0.0.\n *\n * @param {Object} params\n * @param {string} params.minVersion Ex: \"1.0.0\"\n * @param {string} params.currentVersion Ex: \"2.0.0\"\n * @returns boolean\n */\nexport const smallerVersion = ({\n minVersion,\n currentVersion,\n}: {\n minVersion: string;\n currentVersion: string;\n}): boolean => {\n const minVersionStandarized = addZeros(\n minVersion.split(\".\").map(convertToNumber),\n AMOUNT_VERSION_PARTS\n ).join(\".\");\n const currentVersionStandarized = addZeros(\n currentVersion.split(\".\").map(convertToNumber),\n AMOUNT_VERSION_PARTS\n ).join(\".\");\n // Versions need to have the same number of parts to be comparable\n // Source: https://stackoverflow.com/a/65687141\n return (\n currentVersionStandarized.localeCompare(minVersionStandarized, undefined, {\n numeric: true,\n sensitivity: \"base\",\n }) < 0\n );\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["Canister", "id", "service", "certifiedService", "certified", "Actor", "AnonymousIdentity", "HttpAgent", "defaultAgent", "createAgent", "identity", "host", "fetchRootKey", "agent", "createServices", "canisterId", "serviceOverride", "certifiedServiceOverride", "agentOption", "idlFactory", "certifiedIdlFactory", "agent", "defaultAgent", "service", "Actor", "certifiedService", "uint8ArrayToBigInt", "array", "view", "high", "low", "bigIntToUint8Array", "value", "buffer", "numberToUint8Array", "index", "arrayBufferToUint8Array", "uint8ArrayToArrayOfNumber", "arrayOfNumberToUint8Array", "numbers", "asciiStringToByteArray", "text", "c", "NullishError", "assertNonNullish", "value", "message", "toNullable", "value", "fromNullable", "fromDefinedNullable", "result", "assertNonNullish", "principalToSubAccount", "principal", "bytes", "subAccount", "addZeros", "nums", "amountZeros", "convertToNumber", "versionStringPart", "strippedVersion", "acc", "char", "smallerVersion", "minVersion", "currentVersion", "minVersionStandarized"]
7
7
  }
@@ -1,4 +1,6 @@
1
+ export * from "./services/canister";
1
2
  export type { CanisterOptions } from "./types/canister.options";
3
+ export type { QueryParams } from "./types/query.params";
2
4
  export * from "./utils/actor.utils";
3
5
  export * from "./utils/agent.utils";
4
6
  export * from "./utils/arrays.utils";
@@ -0,0 +1,10 @@
1
+ import type { Principal } from "@dfinity/principal";
2
+ import type { QueryParams } from "../types/query.params";
3
+ export declare abstract class Canister<T> {
4
+ private readonly id;
5
+ protected readonly service: T;
6
+ protected readonly certifiedService: T;
7
+ protected constructor(id: Principal, service: T, certifiedService: T);
8
+ get canisterId(): Principal;
9
+ protected caller: ({ certified }: QueryParams) => T;
10
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * The common parameters to query features
3
+ */
4
+ export interface QueryParams {
5
+ /** Perform update calls (certified) or query calls (not certified). */
6
+ certified?: boolean;
7
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dfinity/utils",
3
- "version": "0.0.8-next-2023-01-24",
3
+ "version": "0.0.8",
4
4
  "description": "A collection of utilities and constants for NNS/SNS projects.",
5
5
  "license": "Apache-2.0",
6
6
  "main": "dist/cjs/index.cjs.js",
@@ -48,4 +48,4 @@
48
48
  "service nervous system",
49
49
  "service-nervous-system"
50
50
  ]
51
- }
51
+ }