@peerbit/canonical-client 1.0.0 → 1.1.0

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.
@@ -5,9 +5,24 @@ export type CanonicalOpenResult<T> = {
5
5
  proxy: T;
6
6
  address?: Address;
7
7
  };
8
+ /**
9
+ * Canonical open supports "proxy parents" (managed proxies returned by adapters),
10
+ * which are not instances of `Program`. This widens `OpenOptions.parent` so apps
11
+ * don't need `parent: proxy as any`.
12
+ */
13
+ export type CanonicalOpenOptions<S extends Program<any>> = Omit<OpenOptions<S>, "parent"> & {
14
+ parent?: unknown;
15
+ };
8
16
  export type CanonicalOpenAdapter<S extends Program<any> = Program<any>, T = unknown> = {
9
17
  name: string;
10
- canOpen(program: Program<any>): program is S;
18
+ /**
19
+ * Optional list of borsh @variant strings this adapter can open.
20
+ * If `canOpen` is omitted, canonical open will match by comparing
21
+ * `getSchema(program.constructor).variant` against these values.
22
+ */
23
+ variant?: string;
24
+ variants?: string[];
25
+ canOpen?(program: Program<any>): program is S;
11
26
  getKey?(program: S, options?: OpenOptions<S>): string | undefined;
12
27
  open(ctx: {
13
28
  program: S;
@@ -16,6 +31,13 @@ export type CanonicalOpenAdapter<S extends Program<any> = Program<any>, T = unkn
16
31
  client: CanonicalClient;
17
32
  }): Promise<CanonicalOpenResult<T>>;
18
33
  };
34
+ export declare const getProgramVariant: (program: Program<any>) => string | undefined;
35
+ export declare const createVariantAdapter: <S extends Program<any> = Program<any>, T = unknown>(options: {
36
+ name: string;
37
+ variant: string | string[];
38
+ getKey?: (program: S, options?: OpenOptions<S>) => string | undefined;
39
+ open: CanonicalOpenAdapter<S, T>["open"];
40
+ }) => CanonicalOpenAdapter<S, T>;
19
41
  type ManagedProxy = {
20
42
  parents: any[];
21
43
  children: any[];
@@ -1 +1 @@
1
- {"version":3,"file":"auto.d.ts","sourceRoot":"","sources":["../../src/auto.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,OAAO,EACP,WAAW,EACX,OAAO,EACP,aAAa,EACb,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,OAAO,GAAG,WAAW,CAAC;AAE/D,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI;IACpC,KAAK,EAAE,CAAC,CAAC;IACT,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,oBAAoB,CAC/B,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,EACrC,CAAC,GAAG,OAAO,IACR;IACH,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC;IAC7C,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,SAAS,CAAC;IAClE,IAAI,CAAC,GAAG,EAAE;QACT,OAAO,EAAE,CAAC,CAAC;QACX,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,EAAE,aAAa,CAAC;QACpB,MAAM,EAAE,eAAe,CAAC;KACxB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;CACpC,CAAC;AAEF,KAAK,YAAY,GAAG;IACnB,OAAO,EAAE,GAAG,EAAE,CAAC;IACf,QAAQ,EAAE,GAAG,EAAE,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACxC,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACvC,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACzC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,CAAC,SAAS;IAAE,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,EAC1E,OAAO,CAAC,EACR,UAAS;IACR,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CAChB,KACJ,CAAC,GAAG,YAiHN,CAAC"}
1
+ {"version":3,"file":"auto.d.ts","sourceRoot":"","sources":["../../src/auto.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,OAAO,EACP,WAAW,EACX,OAAO,EACP,aAAa,EACb,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,OAAO,GAAG,WAAW,CAAC;AAE/D,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI;IACpC,KAAK,EAAE,CAAC,CAAC;IACT,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,CAC9D,WAAW,CAAC,CAAC,CAAC,EACd,QAAQ,CACR,GAAG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,oBAAoB,CAC/B,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,EACrC,CAAC,GAAG,OAAO,IACR;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC;IAC9C,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,SAAS,CAAC;IAClE,IAAI,CAAC,GAAG,EAAE;QACT,OAAO,EAAE,CAAC,CAAC;QACX,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,EAAE,aAAa,CAAC;QACpB,MAAM,EAAE,eAAe,CAAC;KACxB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;CACpC,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,SAAS,OAAO,CAAC,GAAG,CAAC,KAAG,MAAM,GAAG,SASlE,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAChC,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,EACrC,CAAC,GAAG,OAAO,EACV,SAAS;IACV,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC3B,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,MAAM,GAAG,SAAS,CAAC;IACtE,IAAI,EAAE,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;CACzC,KAAG,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAc5B,CAAC;AAEF,KAAK,YAAY,GAAG;IACnB,OAAO,EAAE,GAAG,EAAE,CAAC;IACf,QAAQ,EAAE,GAAG,EAAE,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACxC,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACvC,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACzC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,CAAC,SAAS;IAAE,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,EAC1E,OAAO,CAAC,EACR,UAAS;IACR,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CAChB,KACJ,CAAC,GAAG,YAiHN,CAAC"}
package/dist/src/auto.js CHANGED
@@ -1,3 +1,29 @@
1
+ import { getSchema } from "@dao-xyz/borsh";
2
+ export const getProgramVariant = (program) => {
3
+ if (!program || typeof program !== "object")
4
+ return undefined;
5
+ try {
6
+ const schema = getSchema(program.constructor);
7
+ const variant = schema?.variant;
8
+ return typeof variant === "string" ? variant : undefined;
9
+ }
10
+ catch {
11
+ return undefined;
12
+ }
13
+ };
14
+ export const createVariantAdapter = (options) => {
15
+ const variants = (Array.isArray(options.variant) ? options.variant : [options.variant]).map(String);
16
+ return {
17
+ name: options.name,
18
+ variants,
19
+ canOpen: (program) => {
20
+ const candidate = getProgramVariant(program);
21
+ return !!candidate && variants.includes(candidate);
22
+ },
23
+ getKey: options.getKey,
24
+ open: options.open,
25
+ };
26
+ };
1
27
  export const createManagedProxy = (proxy, options = {}) => {
2
28
  const parents = [];
3
29
  const children = [];
@@ -1 +1 @@
1
- {"version":3,"file":"auto.js","sourceRoot":"","sources":["../../src/auto.ts"],"names":[],"mappings":"AA6CA,MAAM,CAAC,MAAM,kBAAkB,GAAG,CACjC,KAAQ,EACR,UAII,EAAE,EACa,EAAE;IACrB,MAAM,OAAO,GAAU,EAAE,CAAC;IAC1B,MAAM,QAAQ,GAAU,EAAE,CAAC;IAC3B,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEzC,MAAM,KAAK,GAAG,KAAK,EAAE,IAAU,EAAoB,EAAE;QACpD,IAAI,MAAM;YAAE,OAAO,IAAI,CAAC;QACxB,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YAClB,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;YACjD,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;gBAChB,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;YAC1C,CAAC;YACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBACvB,OAAO,KAAK,CAAC;YACd,CAAC;QACF,CAAC;QAED,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,OAAO,CAAC,GAAG,CAChB,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACrB,OAAO,KAAK,EAAE,KAAK,KAAK,UAAU;YACjC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAY,CAAC;YAC3B,CAAC,CAAC,SAAS,CACZ,CACD,CAAC;QAEF,MAAM,QAAQ,EAAE,CAAC;QACjB,MAAM,GAAG,IAAI,CAAC;QACb,KAAa,CAAC,MAAM,GAAG,IAAI,CAAC;QAC7B,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IACb,CAAC,CAAC;IAEF,MAAM,IAAI,GAAG,KAAK,EAAE,IAAU,EAAoB,EAAE;QACnD,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,KAAkB,EAAE,EAAE;QACxC,MAAM,MAAM,GAAI,KAAa,CAAC,MAAM,CAAC;QACrC,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,aAAa,KAAK,UAAU,EAAE,CAAC;YAC1D,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;IACF,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,GAAG,EAAE;QACnB,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAClD,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;IAC1D,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,GAAG,EAAE;QACxB,IAAI,IAAI,GAAQ,KAAK,CAAC;QACtB,OAAO,IAAI,EAAE,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YACnD,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,CAAC,MAAM;gBAAE,MAAM;YACnB,IAAI,GAAG,MAAM,CAAC;QACf,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,EAAE,OAAO,CAAC;QAC9B,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACzC,CAAC;QACD,OAAO,OAAkB,CAAC;IAC3B,CAAC,CAAC;IAEF,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;QACvB,IAAI,OAAO,CAAC,OAAO;YAAE,OAAO,OAAO,CAAC,OAAO,CAAC;QAC5C,IAAK,KAAa,CAAC,OAAO;YAAE,OAAQ,KAAa,CAAC,OAAkB,CAAC;QACrE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IACzC,CAAC,CAAC;IAEF,MAAM,GAAG,GAAG,KAAK,IAAI,EAAE;QACtB,MAAM,KAAK,EAAE,CAAC;IACf,CAAC,CAAC;IAEF,MAAM,CAAC,MAAM,CAAC,KAAY,EAAE;QAC3B,OAAO;QACP,QAAQ;QACR,KAAK;QACL,IAAI;QACJ,SAAS;KACT,CAAC,CAAC;IACF,KAAa,CAAC,MAAM,GAAG,MAAM,CAAC;IAC/B,IAAI,CAAC,CAAC,QAAQ,IAAK,KAAa,CAAC,EAAE,CAAC;QACnC,MAAM,CAAC,cAAc,CAAC,KAAY,EAAE,QAAQ,EAAE;YAC7C,GAAG,EAAE,MAAM;YACX,UAAU,EAAE,IAAI;SAChB,CAAC,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,CAAC,aAAa,IAAK,KAAa,CAAC,EAAE,CAAC;QACxC,MAAM,CAAC,cAAc,CAAC,KAAY,EAAE,aAAa,EAAE;YAClD,GAAG,EAAE,WAAW;YAChB,UAAU,EAAE,IAAI;SAChB,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,KAAa,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAC1C,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,KAAa,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IACpC,CAAC;IACD,IAAI,OAAQ,KAAa,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAC9C,KAAa,CAAC,IAAI,GAAG,IAAI,CAAC;IAC5B,CAAC;IACD,IAAI,OAAQ,KAAa,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QAChD,KAAa,CAAC,MAAM,GAAG,GAAG,CAAC;IAC7B,CAAC;IAED,OAAO,KAAyB,CAAC;AAClC,CAAC,CAAC"}
1
+ {"version":3,"file":"auto.js","sourceRoot":"","sources":["../../src/auto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAkD3C,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,OAAqB,EAAsB,EAAE;IAC9E,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC9D,IAAI,CAAC;QACJ,MAAM,MAAM,GAAG,SAAS,CAAE,OAAe,CAAC,WAAW,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,MAAM,EAAE,OAAO,CAAC;QAChC,OAAO,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,SAAS,CAAC;IAClB,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAGlC,OAKD,EAA8B,EAAE;IAChC,MAAM,QAAQ,GAAG,CAChB,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CACpE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACd,OAAO;QACN,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,QAAQ;QACR,OAAO,EAAE,CAAC,OAAqB,EAAgB,EAAE;YAChD,MAAM,SAAS,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAC7C,OAAO,CAAC,CAAC,SAAS,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACpD,CAAC;QACD,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,IAAI,EAAE,OAAO,CAAC,IAAI;KAClB,CAAC;AACH,CAAC,CAAC;AAiBF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CACjC,KAAQ,EACR,UAII,EAAE,EACa,EAAE;IACrB,MAAM,OAAO,GAAU,EAAE,CAAC;IAC1B,MAAM,QAAQ,GAAU,EAAE,CAAC;IAC3B,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEzC,MAAM,KAAK,GAAG,KAAK,EAAE,IAAU,EAAoB,EAAE;QACpD,IAAI,MAAM;YAAE,OAAO,IAAI,CAAC;QACxB,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YAClB,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;YACjD,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;gBAChB,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;YAC1C,CAAC;YACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBACvB,OAAO,KAAK,CAAC;YACd,CAAC;QACF,CAAC;QAED,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,OAAO,CAAC,GAAG,CAChB,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACrB,OAAO,KAAK,EAAE,KAAK,KAAK,UAAU;YACjC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAY,CAAC;YAC3B,CAAC,CAAC,SAAS,CACZ,CACD,CAAC;QAEF,MAAM,QAAQ,EAAE,CAAC;QACjB,MAAM,GAAG,IAAI,CAAC;QACb,KAAa,CAAC,MAAM,GAAG,IAAI,CAAC;QAC7B,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IACb,CAAC,CAAC;IAEF,MAAM,IAAI,GAAG,KAAK,EAAE,IAAU,EAAoB,EAAE;QACnD,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,KAAkB,EAAE,EAAE;QACxC,MAAM,MAAM,GAAI,KAAa,CAAC,MAAM,CAAC;QACrC,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,aAAa,KAAK,UAAU,EAAE,CAAC;YAC1D,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;IACF,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,GAAG,EAAE;QACnB,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAClD,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;IAC1D,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,GAAG,EAAE;QACxB,IAAI,IAAI,GAAQ,KAAK,CAAC;QACtB,OAAO,IAAI,EAAE,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YACnD,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,CAAC,MAAM;gBAAE,MAAM;YACnB,IAAI,GAAG,MAAM,CAAC;QACf,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,EAAE,OAAO,CAAC;QAC9B,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACzC,CAAC;QACD,OAAO,OAAkB,CAAC;IAC3B,CAAC,CAAC;IAEF,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;QACvB,IAAI,OAAO,CAAC,OAAO;YAAE,OAAO,OAAO,CAAC,OAAO,CAAC;QAC5C,IAAK,KAAa,CAAC,OAAO;YAAE,OAAQ,KAAa,CAAC,OAAkB,CAAC;QACrE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IACzC,CAAC,CAAC;IAEF,MAAM,GAAG,GAAG,KAAK,IAAI,EAAE;QACtB,MAAM,KAAK,EAAE,CAAC;IACf,CAAC,CAAC;IAEF,MAAM,CAAC,MAAM,CAAC,KAAY,EAAE;QAC3B,OAAO;QACP,QAAQ;QACR,KAAK;QACL,IAAI;QACJ,SAAS;KACT,CAAC,CAAC;IACF,KAAa,CAAC,MAAM,GAAG,MAAM,CAAC;IAC/B,IAAI,CAAC,CAAC,QAAQ,IAAK,KAAa,CAAC,EAAE,CAAC;QACnC,MAAM,CAAC,cAAc,CAAC,KAAY,EAAE,QAAQ,EAAE;YAC7C,GAAG,EAAE,MAAM;YACX,UAAU,EAAE,IAAI;SAChB,CAAC,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,CAAC,aAAa,IAAK,KAAa,CAAC,EAAE,CAAC;QACxC,MAAM,CAAC,cAAc,CAAC,KAAY,EAAE,aAAa,EAAE;YAClD,GAAG,EAAE,WAAW;YAChB,UAAU,EAAE,IAAI;SAChB,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,KAAa,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAC1C,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,KAAa,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IACpC,CAAC;IACD,IAAI,OAAQ,KAAa,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAC9C,KAAa,CAAC,IAAI,GAAG,IAAI,CAAC;IAC5B,CAAC;IACD,IAAI,OAAQ,KAAa,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QAChD,KAAa,CAAC,MAAM,GAAG,GAAG,CAAC;IAC7B,CAAC;IAED,OAAO,KAAyB,CAAC;AAClC,CAAC,CAAC"}
@@ -1,5 +1,6 @@
1
1
  export * from "./client.js";
2
- export type { CanonicalOpenAdapter, CanonicalOpenMode, CanonicalOpenResult, } from "./auto.js";
2
+ export type { CanonicalOpenAdapter, CanonicalOpenMode, CanonicalOpenOptions, CanonicalOpenResult, } from "./auto.js";
3
+ export { createVariantAdapter, getProgramVariant } from "./auto.js";
3
4
  export * from "./service-worker.js";
4
5
  export * from "./window.js";
5
6
  export * from "./peerbit.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,YAAY,EACX,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,GACnB,MAAM,WAAW,CAAC;AACnB,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,YAAY,EACX,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,GACnB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AACpE,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC"}
package/dist/src/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from "./client.js";
2
+ export { createVariantAdapter, getProgramVariant } from "./auto.js";
2
3
  export * from "./service-worker.js";
3
4
  export * from "./window.js";
4
5
  export * from "./peerbit.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAM5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAO5B,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AACpE,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC"}
@@ -2,8 +2,8 @@ import type { PeerId } from "@libp2p/interface";
2
2
  import { type Multiaddr } from "@multiformats/multiaddr";
3
3
  import type { Identity, PreHash, PublicSignKey, SignatureWithKey } from "@peerbit/crypto";
4
4
  import { Program } from "@peerbit/program";
5
- import type { Address, OpenOptions, ProgramClient } from "@peerbit/program";
6
- import { type CanonicalOpenAdapter, type CanonicalOpenMode } from "./auto.js";
5
+ import type { Address, ProgramClient } from "@peerbit/program";
6
+ import { type CanonicalOpenAdapter, type CanonicalOpenMode, type CanonicalOpenOptions } from "./auto.js";
7
7
  import type { CanonicalChannel } from "./client.js";
8
8
  import type { CanonicalClient } from "./index.js";
9
9
  type IdentityProxy = Identity<PublicSignKey> & {
@@ -44,7 +44,7 @@ export declare class PeerbitCanonicalClient {
44
44
  stop(): Promise<void>;
45
45
  bootstrap(addresses?: string[] | Multiaddr[]): Promise<void>;
46
46
  openPort(name: string, payload: Uint8Array): Promise<CanonicalChannel>;
47
- open<S extends Program<any>>(storeOrAddress: S | Address, openOptions?: OpenOptions<S>): Promise<S>;
47
+ open<S extends Program<any>>(storeOrAddress: S | Address, openOptions?: CanonicalOpenOptions<S>): Promise<S>;
48
48
  close(): void;
49
49
  }
50
50
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"peerbit.d.ts","sourceRoot":"","sources":["../../src/peerbit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EACN,KAAK,SAAS,EAGd,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EACX,QAAQ,EACR,OAAO,EACP,aAAa,EACb,gBAAgB,EAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EACN,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EAEtB,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,KAAK,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG;IAC9C,MAAM,EAAE,CACP,OAAO,CAAC,EAAE,OAAO,KACb,CAAC,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;CACrD,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,aAAa,CAAC;IACxB,UAAU,EAAE,SAAS,EAAE,CAAC;CACxB,CAAC;AASF,qBAAa,sBAAsB;IAYjC,QAAQ,CAAC,SAAS,EAAE,eAAe;IAXpC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,SAAS,CAAC,CAKhB;IAEF,OAAO;WASM,MAAM,CAClB,SAAS,EAAE,eAAe,EAC1B,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,oBAAoB,EAAE,CAAC;QAAC,IAAI,CAAC,EAAE,iBAAiB,CAAA;KAAE,GACvE,OAAO,CAAC,sBAAsB,CAAC;IAalC,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,QAAQ,IAAI,aAAa,CAE5B;IAED,aAAa,IAAI,SAAS,EAAE;IAI5B,OAAO,CAAC,MAAM,CAAC,YAAY;YAab,gBAAgB;IAe9B,UAAU,CAAC,OAAO,EAAE;QACnB,QAAQ,EAAE,oBAAoB,EAAE,CAAC;QACjC,IAAI,CAAC,EAAE,iBAAiB,CAAC;KACzB,GAAG,IAAI;IAcR;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,wBAAwB,CAAC;IAYpD,IAAI,CACT,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,EAAE,GAAG,aAAa,GACvD,OAAO,CAAC,OAAO,CAAC;IAqCb,MAAM,CACX,OAAO,EAAE,MAAM,GAAG,aAAa,GAAG,MAAM,GAAG,SAAS,GAClD,OAAO,CAAC,IAAI,CAAC;IAyBV,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAKrB,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAWlE,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAIhE,IAAI,CAAC,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,EAChC,cAAc,EAAE,CAAC,GAAG,OAAO,EAC3B,WAAW,GAAE,WAAW,CAAC,CAAC,CAAM,GAC9B,OAAO,CAAC,CAAC,CAAC;IAwGb,KAAK,IAAI,IAAI;CAIb"}
1
+ {"version":3,"file":"peerbit.d.ts","sourceRoot":"","sources":["../../src/peerbit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EACN,KAAK,SAAS,EAGd,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EACX,QAAQ,EACR,OAAO,EACP,aAAa,EACb,gBAAgB,EAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,KAAK,EAAE,OAAO,EAAe,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EACN,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EAGzB,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,KAAK,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG;IAC9C,MAAM,EAAE,CACP,OAAO,CAAC,EAAE,OAAO,KACb,CAAC,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;CACrD,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,aAAa,CAAC;IACxB,UAAU,EAAE,SAAS,EAAE,CAAC;CACxB,CAAC;AASF,qBAAa,sBAAsB;IAYjC,QAAQ,CAAC,SAAS,EAAE,eAAe;IAXpC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,SAAS,CAAC,CAKhB;IAEF,OAAO;WASM,MAAM,CAClB,SAAS,EAAE,eAAe,EAC1B,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,oBAAoB,EAAE,CAAC;QAAC,IAAI,CAAC,EAAE,iBAAiB,CAAA;KAAE,GACvE,OAAO,CAAC,sBAAsB,CAAC;IAalC,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,QAAQ,IAAI,aAAa,CAE5B;IAED,aAAa,IAAI,SAAS,EAAE;IAI5B,OAAO,CAAC,MAAM,CAAC,YAAY;YAab,gBAAgB;IAe9B,UAAU,CAAC,OAAO,EAAE;QACnB,QAAQ,EAAE,oBAAoB,EAAE,CAAC;QACjC,IAAI,CAAC,EAAE,iBAAiB,CAAC;KACzB,GAAG,IAAI;IAcR;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,wBAAwB,CAAC;IAYpD,IAAI,CACT,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,EAAE,GAAG,aAAa,GACvD,OAAO,CAAC,OAAO,CAAC;IAqCb,MAAM,CACX,OAAO,EAAE,MAAM,GAAG,aAAa,GAAG,MAAM,GAAG,SAAS,GAClD,OAAO,CAAC,IAAI,CAAC;IAyBV,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAKrB,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAWlE,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAIhE,IAAI,CAAC,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,EAChC,cAAc,EAAE,CAAC,GAAG,OAAO,EAC3B,WAAW,GAAE,oBAAoB,CAAC,CAAC,CAAM,GACvC,OAAO,CAAC,CAAC,CAAC;IAqHb,KAAK,IAAI,IAAI;CAIb"}
@@ -2,7 +2,7 @@ import { deserialize } from "@dao-xyz/borsh";
2
2
  import { peerIdFromString } from "@libp2p/peer-id";
3
3
  import { isMultiaddr, multiaddr, } from "@multiformats/multiaddr";
4
4
  import { Program } from "@peerbit/program";
5
- import { createManagedProxy, } from "./auto.js";
5
+ import { createManagedProxy, getProgramVariant, } from "./auto.js";
6
6
  const asMultiaddrs = (value) => {
7
7
  if (Array.isArray(value) && value.every((x) => isMultiaddr(x))) {
8
8
  return value;
@@ -182,9 +182,18 @@ export class PeerbitCanonicalClient {
182
182
  return this.open(loaded, openOptions);
183
183
  }
184
184
  const program = storeOrAddress;
185
- const adapter = state.adapters.find((candidate) => candidate.canOpen(program));
185
+ const programVariant = getProgramVariant(program);
186
+ const adapter = state.adapters.find((candidate) => typeof candidate.canOpen === "function"
187
+ ? candidate.canOpen(program)
188
+ : !!programVariant &&
189
+ (candidate.variants ?? (candidate.variant ? [candidate.variant] : []))
190
+ .map(String)
191
+ .includes(programVariant));
186
192
  if (!adapter) {
187
- throw new Error(`No canonical adapter registered for ${program.constructor?.name ?? "program"}`);
193
+ const knownVariants = state.adapters
194
+ .flatMap((candidate) => candidate.variants ?? (candidate.variant ? [candidate.variant] : []))
195
+ .filter((x) => typeof x === "string" && x.length > 0);
196
+ throw new Error(`No canonical adapter registered for ${program.constructor?.name ?? "program"}${programVariant ? ` (variant: '${programVariant}')` : ""}${knownVariants.length ? `. Known variants: ${knownVariants.join(", ")}` : ""}`);
188
197
  }
189
198
  const key = adapter.getKey?.(program, openOptions);
190
199
  if (adapter.getKey && key === undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"peerbit.js","sourceRoot":"","sources":["../../src/peerbit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"peerbit.js","sourceRoot":"","sources":["../../src/peerbit.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@peerbit/canonical-client",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "description": "Client helpers for connecting to a Peerbit canonical runtime",
5
5
  "author": "dao.xyz",
6
6
  "license": "MIT",
@@ -68,7 +68,7 @@
68
68
  "@multiformats/multiaddr": "^13.0.1",
69
69
  "@peerbit/canonical-transport": "1.0.0",
70
70
  "@peerbit/crypto": "2.4.1",
71
- "@peerbit/program": "5.6.0"
71
+ "@peerbit/program": "5.6.1"
72
72
  },
73
73
  "devDependencies": {},
74
74
  "localMaintainers": [
package/src/auto.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { getSchema } from "@dao-xyz/borsh";
1
2
  import type {
2
3
  Address,
3
4
  OpenOptions,
@@ -13,12 +14,31 @@ export type CanonicalOpenResult<T> = {
13
14
  address?: Address;
14
15
  };
15
16
 
17
+ /**
18
+ * Canonical open supports "proxy parents" (managed proxies returned by adapters),
19
+ * which are not instances of `Program`. This widens `OpenOptions.parent` so apps
20
+ * don't need `parent: proxy as any`.
21
+ */
22
+ export type CanonicalOpenOptions<S extends Program<any>> = Omit<
23
+ OpenOptions<S>,
24
+ "parent"
25
+ > & {
26
+ parent?: unknown;
27
+ };
28
+
16
29
  export type CanonicalOpenAdapter<
17
30
  S extends Program<any> = Program<any>,
18
31
  T = unknown,
19
32
  > = {
20
33
  name: string;
21
- canOpen(program: Program<any>): program is S;
34
+ /**
35
+ * Optional list of borsh @variant strings this adapter can open.
36
+ * If `canOpen` is omitted, canonical open will match by comparing
37
+ * `getSchema(program.constructor).variant` against these values.
38
+ */
39
+ variant?: string;
40
+ variants?: string[];
41
+ canOpen?(program: Program<any>): program is S;
22
42
  getKey?(program: S, options?: OpenOptions<S>): string | undefined;
23
43
  open(ctx: {
24
44
  program: S;
@@ -28,6 +48,41 @@ export type CanonicalOpenAdapter<
28
48
  }): Promise<CanonicalOpenResult<T>>;
29
49
  };
30
50
 
51
+ export const getProgramVariant = (program: Program<any>): string | undefined => {
52
+ if (!program || typeof program !== "object") return undefined;
53
+ try {
54
+ const schema = getSchema((program as any).constructor);
55
+ const variant = schema?.variant;
56
+ return typeof variant === "string" ? variant : undefined;
57
+ } catch {
58
+ return undefined;
59
+ }
60
+ };
61
+
62
+ export const createVariantAdapter = <
63
+ S extends Program<any> = Program<any>,
64
+ T = unknown,
65
+ >(options: {
66
+ name: string;
67
+ variant: string | string[];
68
+ getKey?: (program: S, options?: OpenOptions<S>) => string | undefined;
69
+ open: CanonicalOpenAdapter<S, T>["open"];
70
+ }): CanonicalOpenAdapter<S, T> => {
71
+ const variants = (
72
+ Array.isArray(options.variant) ? options.variant : [options.variant]
73
+ ).map(String);
74
+ return {
75
+ name: options.name,
76
+ variants,
77
+ canOpen: (program: Program<any>): program is S => {
78
+ const candidate = getProgramVariant(program);
79
+ return !!candidate && variants.includes(candidate);
80
+ },
81
+ getKey: options.getKey,
82
+ open: options.open,
83
+ };
84
+ };
85
+
31
86
  type ManagedProxy = {
32
87
  parents: any[];
33
88
  children: any[];
package/src/index.ts CHANGED
@@ -2,8 +2,10 @@ export * from "./client.js";
2
2
  export type {
3
3
  CanonicalOpenAdapter,
4
4
  CanonicalOpenMode,
5
+ CanonicalOpenOptions,
5
6
  CanonicalOpenResult,
6
7
  } from "./auto.js";
8
+ export { createVariantAdapter, getProgramVariant } from "./auto.js";
7
9
  export * from "./service-worker.js";
8
10
  export * from "./window.js";
9
11
  export * from "./peerbit.js";
package/src/peerbit.ts CHANGED
@@ -17,7 +17,9 @@ import type { Address, OpenOptions, ProgramClient } from "@peerbit/program";
17
17
  import {
18
18
  type CanonicalOpenAdapter,
19
19
  type CanonicalOpenMode,
20
+ type CanonicalOpenOptions,
20
21
  createManagedProxy,
22
+ getProgramVariant,
21
23
  } from "./auto.js";
22
24
  import type { CanonicalChannel } from "./client.js";
23
25
  import type { CanonicalClient } from "./index.js";
@@ -242,7 +244,7 @@ export class PeerbitCanonicalClient {
242
244
 
243
245
  async open<S extends Program<any>>(
244
246
  storeOrAddress: S | Address,
245
- openOptions: OpenOptions<S> = {},
247
+ openOptions: CanonicalOpenOptions<S> = {},
246
248
  ): Promise<S> {
247
249
  const state = this.openState;
248
250
  if (!state || state.adapters.length === 0) {
@@ -269,16 +271,29 @@ export class PeerbitCanonicalClient {
269
271
  }
270
272
 
271
273
  const program = storeOrAddress as Program<any>;
274
+ const programVariant = getProgramVariant(program);
272
275
  const adapter = state.adapters.find((candidate) =>
273
- candidate.canOpen(program),
276
+ typeof candidate.canOpen === "function"
277
+ ? candidate.canOpen(program)
278
+ : !!programVariant &&
279
+ (candidate.variants ?? (candidate.variant ? [candidate.variant] : []))
280
+ .map(String)
281
+ .includes(programVariant),
274
282
  );
275
283
  if (!adapter) {
284
+ const knownVariants = state.adapters
285
+ .flatMap((candidate) =>
286
+ candidate.variants ?? (candidate.variant ? [candidate.variant] : []),
287
+ )
288
+ .filter((x): x is string => typeof x === "string" && x.length > 0);
276
289
  throw new Error(
277
- `No canonical adapter registered for ${program.constructor?.name ?? "program"}`,
290
+ `No canonical adapter registered for ${program.constructor?.name ?? "program"}${
291
+ programVariant ? ` (variant: '${programVariant}')` : ""
292
+ }${knownVariants.length ? `. Known variants: ${knownVariants.join(", ")}` : ""}`,
278
293
  );
279
294
  }
280
295
 
281
- const key = adapter.getKey?.(program as any, openOptions);
296
+ const key = adapter.getKey?.(program as any, openOptions as OpenOptions<any>);
282
297
  if (adapter.getKey && key === undefined) {
283
298
  throw new Error(
284
299
  `Canonical adapter '${adapter.name}' requires a cache key (adapter.getKey returned undefined)`,
@@ -306,21 +321,21 @@ export class PeerbitCanonicalClient {
306
321
  if (openOptions?.parent) {
307
322
  PeerbitCanonicalClient.attachParent(
308
323
  existingProxy as any,
309
- openOptions.parent,
324
+ openOptions.parent as any,
310
325
  );
311
326
  }
312
327
  return existingProxy as S;
313
328
  }
314
329
  }
315
330
 
316
- const peer = this as any as ProgramClient;
317
- const openPromise = (async () => {
318
- const result = await adapter.open({
319
- program: program as any,
320
- options: openOptions,
321
- peer,
322
- client: this.canonical,
323
- });
331
+ const peer = this as any as ProgramClient;
332
+ const openPromise = (async () => {
333
+ const result = await adapter.open({
334
+ program: program as any,
335
+ options: openOptions as OpenOptions<any>,
336
+ peer,
337
+ client: this.canonical,
338
+ });
324
339
 
325
340
  let managed: any;
326
341
  managed = createManagedProxy(result.proxy as any, {
@@ -336,7 +351,7 @@ export class PeerbitCanonicalClient {
336
351
 
337
352
  this.openState?.proxies.add(managed);
338
353
  if (openOptions?.parent) {
339
- PeerbitCanonicalClient.attachParent(managed, openOptions.parent);
354
+ PeerbitCanonicalClient.attachParent(managed, openOptions.parent as any);
340
355
  }
341
356
  return managed as S;
342
357
  })();