@cartridge/connector 0.13.6 → 0.13.7

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.
@@ -1,5 +1,5 @@
1
1
 
2
- > @cartridge/connector@0.13.6 build:deps /home/runner/work/controller/controller/packages/connector
2
+ > @cartridge/connector@0.13.7 build:deps /home/runner/work/controller/controller/packages/connector
3
3
  > tsup --dts-resolve
4
4
 
5
5
  CLI Building entry: src/controller.ts, src/index.ts, src/session.ts
@@ -9,15 +9,15 @@
9
9
  CLI Target: esnext
10
10
  CLI Cleaning output folder
11
11
  ESM Build start
12
- ESM dist/index.js 2.83 KB
12
+ ESM dist/controller.js 2.06 KB
13
+ ESM dist/index.js 2.91 KB
13
14
  ESM dist/session.js 916.00 B
14
- ESM dist/controller.js 1.98 KB
15
- ESM dist/index.js.map 5.84 KB
15
+ ESM dist/controller.js.map 4.31 KB
16
+ ESM dist/index.js.map 5.99 KB
16
17
  ESM dist/session.js.map 1.73 KB
17
- ESM dist/controller.js.map 4.15 KB
18
- ESM ⚡️ Build success in 44ms
18
+ ESM ⚡️ Build success in 50ms
19
19
  DTS Build start
20
- DTS ⚡️ Build success in 6912ms
20
+ DTS ⚡️ Build success in 6450ms
21
21
  DTS dist/index.d.ts 290.00 B
22
- DTS dist/controller.d.ts 947.00 B
22
+ DTS dist/controller.d.ts 1.10 KB
23
23
  DTS dist/session.d.ts 476.00 B
@@ -1,12 +1,14 @@
1
1
  import * as _starknet_io_get_starknet_wallet_standard_features from '@starknet-io/get-starknet-wallet-standard/features';
2
- import ControllerProvider, { ControllerOptions, ConnectOptions } from '@cartridge/controller';
2
+ import * as ControllerProvider from '@cartridge/controller';
3
+ import ControllerProvider__default, { ControllerOptions, ConnectOptions } from '@cartridge/controller';
3
4
  import { InjectedConnector, Connector } from '@starknet-react/core';
4
5
 
5
6
  declare class ControllerConnector extends InjectedConnector {
6
- controller: ControllerProvider;
7
+ controller: ControllerProvider__default;
7
8
  constructor(options?: ControllerOptions);
8
9
  disconnect(): Promise<void>;
9
10
  username(): Promise<string> | undefined;
11
+ lookupUsername(username: string): Promise<ControllerProvider.HeadlessUsernameLookupResult>;
10
12
  isReady(): boolean;
11
13
  delegateAccount(): Promise<string | null>;
12
14
  connect(args?: {
@@ -26,6 +26,9 @@ var ControllerConnector = class extends InjectedConnector {
26
26
  username() {
27
27
  return this.controller.username();
28
28
  }
29
+ lookupUsername(username) {
30
+ return this.controller.lookupUsername(username);
31
+ }
29
32
  isReady() {
30
33
  return this.controller.isReady();
31
34
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/controller.ts"],"sourcesContent":["import ControllerProvider, {\n ConnectOptions,\n ControllerOptions,\n} from \"@cartridge/controller\";\nimport { Connector, InjectedConnector } from \"@starknet-react/core\";\n\nexport default class ControllerConnector extends InjectedConnector {\n public controller: ControllerProvider;\n\n constructor(options: ControllerOptions = {}) {\n let controller: ControllerProvider;\n\n if (typeof window !== \"undefined\" && (window as any).starknet_controller) {\n console.warn(\n \"ControllerConnector was instantiated multiple times. \" +\n \"Reusing existing controller to prevent errors. \" +\n \"To fix, create the connector at the module level instead of inside a React component.\",\n );\n controller = (window as any).starknet_controller;\n } else {\n controller = new ControllerProvider(options);\n }\n\n super({ options: { id: controller.id, name: controller.name } });\n this.controller = controller;\n }\n\n async disconnect() {\n await this.controller.disconnect();\n try {\n await super.disconnect();\n } catch {\n // Best-effort: starknet-react may call disconnect even when the injected wallet isn't present.\n }\n }\n\n username() {\n return this.controller.username();\n }\n\n isReady(): boolean {\n return this.controller.isReady();\n }\n\n async delegateAccount() {\n return await this.controller.delegateAccount();\n }\n\n async connect(args?: { chainIdHint?: bigint } & ConnectOptions) {\n const { chainIdHint, ...connectOptions } = args ?? {};\n const controllerArgs =\n args && Object.keys(connectOptions).length > 0\n ? (connectOptions as ConnectOptions)\n : undefined;\n\n const account = await this.controller.connect(controllerArgs);\n if (!account) {\n throw new Error(\"Failed to connect controller\");\n }\n\n // Ensure the injected wallet instance used by starknet-react (window.starknet_controller)\n // always points at the same ControllerProvider instance this connector wraps.\n if (typeof window !== \"undefined\") {\n (window as any).starknet_controller = this.controller;\n }\n\n const data = await super.connect({ chainIdHint });\n\n // `@starknet-react/core` updates its state from the `account` returned here.\n // Use the authoritative address from `controller.connect()` to avoid edge cases\n // where the injected wallet request returns an empty/undefined account.\n return { ...data, account: account.address };\n }\n\n static fromConnectors(connectors: Connector[]): ControllerConnector {\n const connector = connectors.find((c) => c.id === \"controller\");\n if (!connector) {\n throw new Error(\"Controller connector not found\");\n }\n return connector as ControllerConnector;\n }\n\n asWalletStandard() {\n return this.controller.asWalletStandard();\n }\n}\n"],"mappings":";AAAA,OAAO,wBAGA;AACP,SAAoB,yBAAyB;AAE7C,IAAqB,sBAArB,cAAiD,kBAAkB;AAAA,EAC1D;AAAA,EAEP,YAAY,UAA6B,CAAC,GAAG;AAC3C,QAAI;AAEJ,QAAI,OAAO,WAAW,eAAgB,OAAe,qBAAqB;AACxE,cAAQ;AAAA,QACN;AAAA,MAGF;AACA,mBAAc,OAAe;AAAA,IAC/B,OAAO;AACL,mBAAa,IAAI,mBAAmB,OAAO;AAAA,IAC7C;AAEA,UAAM,EAAE,SAAS,EAAE,IAAI,WAAW,IAAI,MAAM,WAAW,KAAK,EAAE,CAAC;AAC/D,SAAK,aAAa;AAAA,EACpB;AAAA,EAEA,MAAM,aAAa;AACjB,UAAM,KAAK,WAAW,WAAW;AACjC,QAAI;AACF,YAAM,MAAM,WAAW;AAAA,IACzB,QAAQ;AAAA,IAER;AAAA,EACF;AAAA,EAEA,WAAW;AACT,WAAO,KAAK,WAAW,SAAS;AAAA,EAClC;AAAA,EAEA,UAAmB;AACjB,WAAO,KAAK,WAAW,QAAQ;AAAA,EACjC;AAAA,EAEA,MAAM,kBAAkB;AACtB,WAAO,MAAM,KAAK,WAAW,gBAAgB;AAAA,EAC/C;AAAA,EAEA,MAAM,QAAQ,MAAkD;AAC9D,UAAM,EAAE,aAAa,GAAG,eAAe,IAAI,QAAQ,CAAC;AACpD,UAAM,iBACJ,QAAQ,OAAO,KAAK,cAAc,EAAE,SAAS,IACxC,iBACD;AAEN,UAAM,UAAU,MAAM,KAAK,WAAW,QAAQ,cAAc;AAC5D,QAAI,CAAC,SAAS;AACZ,YAAM,IAAI,MAAM,8BAA8B;AAAA,IAChD;AAIA,QAAI,OAAO,WAAW,aAAa;AACjC,MAAC,OAAe,sBAAsB,KAAK;AAAA,IAC7C;AAEA,UAAM,OAAO,MAAM,MAAM,QAAQ,EAAE,YAAY,CAAC;AAKhD,WAAO,EAAE,GAAG,MAAM,SAAS,QAAQ,QAAQ;AAAA,EAC7C;AAAA,EAEA,OAAO,eAAe,YAA8C;AAClE,UAAM,YAAY,WAAW,KAAK,CAAC,MAAM,EAAE,OAAO,YAAY;AAC9D,QAAI,CAAC,WAAW;AACd,YAAM,IAAI,MAAM,gCAAgC;AAAA,IAClD;AACA,WAAO;AAAA,EACT;AAAA,EAEA,mBAAmB;AACjB,WAAO,KAAK,WAAW,iBAAiB;AAAA,EAC1C;AACF;","names":[]}
1
+ {"version":3,"sources":["../src/controller.ts"],"sourcesContent":["import ControllerProvider, {\n ConnectOptions,\n ControllerOptions,\n} from \"@cartridge/controller\";\nimport { Connector, InjectedConnector } from \"@starknet-react/core\";\n\nexport default class ControllerConnector extends InjectedConnector {\n public controller: ControllerProvider;\n\n constructor(options: ControllerOptions = {}) {\n let controller: ControllerProvider;\n\n if (typeof window !== \"undefined\" && (window as any).starknet_controller) {\n console.warn(\n \"ControllerConnector was instantiated multiple times. \" +\n \"Reusing existing controller to prevent errors. \" +\n \"To fix, create the connector at the module level instead of inside a React component.\",\n );\n controller = (window as any).starknet_controller;\n } else {\n controller = new ControllerProvider(options);\n }\n\n super({ options: { id: controller.id, name: controller.name } });\n this.controller = controller;\n }\n\n async disconnect() {\n await this.controller.disconnect();\n try {\n await super.disconnect();\n } catch {\n // Best-effort: starknet-react may call disconnect even when the injected wallet isn't present.\n }\n }\n\n username() {\n return this.controller.username();\n }\n\n lookupUsername(username: string) {\n return this.controller.lookupUsername(username);\n }\n\n isReady(): boolean {\n return this.controller.isReady();\n }\n\n async delegateAccount() {\n return await this.controller.delegateAccount();\n }\n\n async connect(args?: { chainIdHint?: bigint } & ConnectOptions) {\n const { chainIdHint, ...connectOptions } = args ?? {};\n const controllerArgs =\n args && Object.keys(connectOptions).length > 0\n ? (connectOptions as ConnectOptions)\n : undefined;\n\n const account = await this.controller.connect(controllerArgs);\n if (!account) {\n throw new Error(\"Failed to connect controller\");\n }\n\n // Ensure the injected wallet instance used by starknet-react (window.starknet_controller)\n // always points at the same ControllerProvider instance this connector wraps.\n if (typeof window !== \"undefined\") {\n (window as any).starknet_controller = this.controller;\n }\n\n const data = await super.connect({ chainIdHint });\n\n // `@starknet-react/core` updates its state from the `account` returned here.\n // Use the authoritative address from `controller.connect()` to avoid edge cases\n // where the injected wallet request returns an empty/undefined account.\n return { ...data, account: account.address };\n }\n\n static fromConnectors(connectors: Connector[]): ControllerConnector {\n const connector = connectors.find((c) => c.id === \"controller\");\n if (!connector) {\n throw new Error(\"Controller connector not found\");\n }\n return connector as ControllerConnector;\n }\n\n asWalletStandard() {\n return this.controller.asWalletStandard();\n }\n}\n"],"mappings":";AAAA,OAAO,wBAGA;AACP,SAAoB,yBAAyB;AAE7C,IAAqB,sBAArB,cAAiD,kBAAkB;AAAA,EAC1D;AAAA,EAEP,YAAY,UAA6B,CAAC,GAAG;AAC3C,QAAI;AAEJ,QAAI,OAAO,WAAW,eAAgB,OAAe,qBAAqB;AACxE,cAAQ;AAAA,QACN;AAAA,MAGF;AACA,mBAAc,OAAe;AAAA,IAC/B,OAAO;AACL,mBAAa,IAAI,mBAAmB,OAAO;AAAA,IAC7C;AAEA,UAAM,EAAE,SAAS,EAAE,IAAI,WAAW,IAAI,MAAM,WAAW,KAAK,EAAE,CAAC;AAC/D,SAAK,aAAa;AAAA,EACpB;AAAA,EAEA,MAAM,aAAa;AACjB,UAAM,KAAK,WAAW,WAAW;AACjC,QAAI;AACF,YAAM,MAAM,WAAW;AAAA,IACzB,QAAQ;AAAA,IAER;AAAA,EACF;AAAA,EAEA,WAAW;AACT,WAAO,KAAK,WAAW,SAAS;AAAA,EAClC;AAAA,EAEA,eAAe,UAAkB;AAC/B,WAAO,KAAK,WAAW,eAAe,QAAQ;AAAA,EAChD;AAAA,EAEA,UAAmB;AACjB,WAAO,KAAK,WAAW,QAAQ;AAAA,EACjC;AAAA,EAEA,MAAM,kBAAkB;AACtB,WAAO,MAAM,KAAK,WAAW,gBAAgB;AAAA,EAC/C;AAAA,EAEA,MAAM,QAAQ,MAAkD;AAC9D,UAAM,EAAE,aAAa,GAAG,eAAe,IAAI,QAAQ,CAAC;AACpD,UAAM,iBACJ,QAAQ,OAAO,KAAK,cAAc,EAAE,SAAS,IACxC,iBACD;AAEN,UAAM,UAAU,MAAM,KAAK,WAAW,QAAQ,cAAc;AAC5D,QAAI,CAAC,SAAS;AACZ,YAAM,IAAI,MAAM,8BAA8B;AAAA,IAChD;AAIA,QAAI,OAAO,WAAW,aAAa;AACjC,MAAC,OAAe,sBAAsB,KAAK;AAAA,IAC7C;AAEA,UAAM,OAAO,MAAM,MAAM,QAAQ,EAAE,YAAY,CAAC;AAKhD,WAAO,EAAE,GAAG,MAAM,SAAS,QAAQ,QAAQ;AAAA,EAC7C;AAAA,EAEA,OAAO,eAAe,YAA8C;AAClE,UAAM,YAAY,WAAW,KAAK,CAAC,MAAM,EAAE,OAAO,YAAY;AAC9D,QAAI,CAAC,WAAW;AACd,YAAM,IAAI,MAAM,gCAAgC;AAAA,IAClD;AACA,WAAO;AAAA,EACT;AAAA,EAEA,mBAAmB;AACjB,WAAO,KAAK,WAAW,iBAAiB;AAAA,EAC1C;AACF;","names":[]}
package/dist/index.js CHANGED
@@ -26,6 +26,9 @@ var ControllerConnector = class extends InjectedConnector {
26
26
  username() {
27
27
  return this.controller.username();
28
28
  }
29
+ lookupUsername(username) {
30
+ return this.controller.lookupUsername(username);
31
+ }
29
32
  isReady() {
30
33
  return this.controller.isReady();
31
34
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/controller.ts","../src/session.ts"],"sourcesContent":["import ControllerProvider, {\n ConnectOptions,\n ControllerOptions,\n} from \"@cartridge/controller\";\nimport { Connector, InjectedConnector } from \"@starknet-react/core\";\n\nexport default class ControllerConnector extends InjectedConnector {\n public controller: ControllerProvider;\n\n constructor(options: ControllerOptions = {}) {\n let controller: ControllerProvider;\n\n if (typeof window !== \"undefined\" && (window as any).starknet_controller) {\n console.warn(\n \"ControllerConnector was instantiated multiple times. \" +\n \"Reusing existing controller to prevent errors. \" +\n \"To fix, create the connector at the module level instead of inside a React component.\",\n );\n controller = (window as any).starknet_controller;\n } else {\n controller = new ControllerProvider(options);\n }\n\n super({ options: { id: controller.id, name: controller.name } });\n this.controller = controller;\n }\n\n async disconnect() {\n await this.controller.disconnect();\n try {\n await super.disconnect();\n } catch {\n // Best-effort: starknet-react may call disconnect even when the injected wallet isn't present.\n }\n }\n\n username() {\n return this.controller.username();\n }\n\n isReady(): boolean {\n return this.controller.isReady();\n }\n\n async delegateAccount() {\n return await this.controller.delegateAccount();\n }\n\n async connect(args?: { chainIdHint?: bigint } & ConnectOptions) {\n const { chainIdHint, ...connectOptions } = args ?? {};\n const controllerArgs =\n args && Object.keys(connectOptions).length > 0\n ? (connectOptions as ConnectOptions)\n : undefined;\n\n const account = await this.controller.connect(controllerArgs);\n if (!account) {\n throw new Error(\"Failed to connect controller\");\n }\n\n // Ensure the injected wallet instance used by starknet-react (window.starknet_controller)\n // always points at the same ControllerProvider instance this connector wraps.\n if (typeof window !== \"undefined\") {\n (window as any).starknet_controller = this.controller;\n }\n\n const data = await super.connect({ chainIdHint });\n\n // `@starknet-react/core` updates its state from the `account` returned here.\n // Use the authoritative address from `controller.connect()` to avoid edge cases\n // where the injected wallet request returns an empty/undefined account.\n return { ...data, account: account.address };\n }\n\n static fromConnectors(connectors: Connector[]): ControllerConnector {\n const connector = connectors.find((c) => c.id === \"controller\");\n if (!connector) {\n throw new Error(\"Controller connector not found\");\n }\n return connector as ControllerConnector;\n }\n\n asWalletStandard() {\n return this.controller.asWalletStandard();\n }\n}\n","import SessionProvider, { SessionOptions } from \"@cartridge/controller/session\";\nimport { Connector, InjectedConnector } from \"@starknet-react/core\";\n\nexport default class SessionConnector extends InjectedConnector {\n public controller: SessionProvider;\n\n constructor(options: SessionOptions) {\n const controller = new SessionProvider(options);\n\n super({\n options: {\n id: controller.id,\n name: controller.name,\n },\n });\n\n this.controller = controller;\n }\n\n async disconnect() {\n await this.controller.disconnect();\n try {\n await super.disconnect();\n } catch {\n // Best-effort: disconnect should not throw if the injected wallet isn't available.\n }\n }\n\n static fromConnectors(connectors: Connector[]): SessionConnector {\n const connector = connectors.find((c) => c.id === \"controller_session\");\n if (!connector) {\n throw new Error(\"Session connector not found\");\n }\n return connector as SessionConnector;\n }\n\n username() {\n return this.controller.username();\n }\n}\n"],"mappings":";AAAA,OAAO,wBAGA;AACP,SAAoB,yBAAyB;AAE7C,IAAqB,sBAArB,cAAiD,kBAAkB;AAAA,EAC1D;AAAA,EAEP,YAAY,UAA6B,CAAC,GAAG;AAC3C,QAAI;AAEJ,QAAI,OAAO,WAAW,eAAgB,OAAe,qBAAqB;AACxE,cAAQ;AAAA,QACN;AAAA,MAGF;AACA,mBAAc,OAAe;AAAA,IAC/B,OAAO;AACL,mBAAa,IAAI,mBAAmB,OAAO;AAAA,IAC7C;AAEA,UAAM,EAAE,SAAS,EAAE,IAAI,WAAW,IAAI,MAAM,WAAW,KAAK,EAAE,CAAC;AAC/D,SAAK,aAAa;AAAA,EACpB;AAAA,EAEA,MAAM,aAAa;AACjB,UAAM,KAAK,WAAW,WAAW;AACjC,QAAI;AACF,YAAM,MAAM,WAAW;AAAA,IACzB,QAAQ;AAAA,IAER;AAAA,EACF;AAAA,EAEA,WAAW;AACT,WAAO,KAAK,WAAW,SAAS;AAAA,EAClC;AAAA,EAEA,UAAmB;AACjB,WAAO,KAAK,WAAW,QAAQ;AAAA,EACjC;AAAA,EAEA,MAAM,kBAAkB;AACtB,WAAO,MAAM,KAAK,WAAW,gBAAgB;AAAA,EAC/C;AAAA,EAEA,MAAM,QAAQ,MAAkD;AAC9D,UAAM,EAAE,aAAa,GAAG,eAAe,IAAI,QAAQ,CAAC;AACpD,UAAM,iBACJ,QAAQ,OAAO,KAAK,cAAc,EAAE,SAAS,IACxC,iBACD;AAEN,UAAM,UAAU,MAAM,KAAK,WAAW,QAAQ,cAAc;AAC5D,QAAI,CAAC,SAAS;AACZ,YAAM,IAAI,MAAM,8BAA8B;AAAA,IAChD;AAIA,QAAI,OAAO,WAAW,aAAa;AACjC,MAAC,OAAe,sBAAsB,KAAK;AAAA,IAC7C;AAEA,UAAM,OAAO,MAAM,MAAM,QAAQ,EAAE,YAAY,CAAC;AAKhD,WAAO,EAAE,GAAG,MAAM,SAAS,QAAQ,QAAQ;AAAA,EAC7C;AAAA,EAEA,OAAO,eAAe,YAA8C;AAClE,UAAM,YAAY,WAAW,KAAK,CAAC,MAAM,EAAE,OAAO,YAAY;AAC9D,QAAI,CAAC,WAAW;AACd,YAAM,IAAI,MAAM,gCAAgC;AAAA,IAClD;AACA,WAAO;AAAA,EACT;AAAA,EAEA,mBAAmB;AACjB,WAAO,KAAK,WAAW,iBAAiB;AAAA,EAC1C;AACF;;;ACrFA,OAAO,qBAAyC;AAChD,SAAoB,qBAAAA,0BAAyB;AAE7C,IAAqB,mBAArB,cAA8CA,mBAAkB;AAAA,EACvD;AAAA,EAEP,YAAY,SAAyB;AACnC,UAAM,aAAa,IAAI,gBAAgB,OAAO;AAE9C,UAAM;AAAA,MACJ,SAAS;AAAA,QACP,IAAI,WAAW;AAAA,QACf,MAAM,WAAW;AAAA,MACnB;AAAA,IACF,CAAC;AAED,SAAK,aAAa;AAAA,EACpB;AAAA,EAEA,MAAM,aAAa;AACjB,UAAM,KAAK,WAAW,WAAW;AACjC,QAAI;AACF,YAAM,MAAM,WAAW;AAAA,IACzB,QAAQ;AAAA,IAER;AAAA,EACF;AAAA,EAEA,OAAO,eAAe,YAA2C;AAC/D,UAAM,YAAY,WAAW,KAAK,CAAC,MAAM,EAAE,OAAO,oBAAoB;AACtE,QAAI,CAAC,WAAW;AACd,YAAM,IAAI,MAAM,6BAA6B;AAAA,IAC/C;AACA,WAAO;AAAA,EACT;AAAA,EAEA,WAAW;AACT,WAAO,KAAK,WAAW,SAAS;AAAA,EAClC;AACF;","names":["InjectedConnector"]}
1
+ {"version":3,"sources":["../src/controller.ts","../src/session.ts"],"sourcesContent":["import ControllerProvider, {\n ConnectOptions,\n ControllerOptions,\n} from \"@cartridge/controller\";\nimport { Connector, InjectedConnector } from \"@starknet-react/core\";\n\nexport default class ControllerConnector extends InjectedConnector {\n public controller: ControllerProvider;\n\n constructor(options: ControllerOptions = {}) {\n let controller: ControllerProvider;\n\n if (typeof window !== \"undefined\" && (window as any).starknet_controller) {\n console.warn(\n \"ControllerConnector was instantiated multiple times. \" +\n \"Reusing existing controller to prevent errors. \" +\n \"To fix, create the connector at the module level instead of inside a React component.\",\n );\n controller = (window as any).starknet_controller;\n } else {\n controller = new ControllerProvider(options);\n }\n\n super({ options: { id: controller.id, name: controller.name } });\n this.controller = controller;\n }\n\n async disconnect() {\n await this.controller.disconnect();\n try {\n await super.disconnect();\n } catch {\n // Best-effort: starknet-react may call disconnect even when the injected wallet isn't present.\n }\n }\n\n username() {\n return this.controller.username();\n }\n\n lookupUsername(username: string) {\n return this.controller.lookupUsername(username);\n }\n\n isReady(): boolean {\n return this.controller.isReady();\n }\n\n async delegateAccount() {\n return await this.controller.delegateAccount();\n }\n\n async connect(args?: { chainIdHint?: bigint } & ConnectOptions) {\n const { chainIdHint, ...connectOptions } = args ?? {};\n const controllerArgs =\n args && Object.keys(connectOptions).length > 0\n ? (connectOptions as ConnectOptions)\n : undefined;\n\n const account = await this.controller.connect(controllerArgs);\n if (!account) {\n throw new Error(\"Failed to connect controller\");\n }\n\n // Ensure the injected wallet instance used by starknet-react (window.starknet_controller)\n // always points at the same ControllerProvider instance this connector wraps.\n if (typeof window !== \"undefined\") {\n (window as any).starknet_controller = this.controller;\n }\n\n const data = await super.connect({ chainIdHint });\n\n // `@starknet-react/core` updates its state from the `account` returned here.\n // Use the authoritative address from `controller.connect()` to avoid edge cases\n // where the injected wallet request returns an empty/undefined account.\n return { ...data, account: account.address };\n }\n\n static fromConnectors(connectors: Connector[]): ControllerConnector {\n const connector = connectors.find((c) => c.id === \"controller\");\n if (!connector) {\n throw new Error(\"Controller connector not found\");\n }\n return connector as ControllerConnector;\n }\n\n asWalletStandard() {\n return this.controller.asWalletStandard();\n }\n}\n","import SessionProvider, { SessionOptions } from \"@cartridge/controller/session\";\nimport { Connector, InjectedConnector } from \"@starknet-react/core\";\n\nexport default class SessionConnector extends InjectedConnector {\n public controller: SessionProvider;\n\n constructor(options: SessionOptions) {\n const controller = new SessionProvider(options);\n\n super({\n options: {\n id: controller.id,\n name: controller.name,\n },\n });\n\n this.controller = controller;\n }\n\n async disconnect() {\n await this.controller.disconnect();\n try {\n await super.disconnect();\n } catch {\n // Best-effort: disconnect should not throw if the injected wallet isn't available.\n }\n }\n\n static fromConnectors(connectors: Connector[]): SessionConnector {\n const connector = connectors.find((c) => c.id === \"controller_session\");\n if (!connector) {\n throw new Error(\"Session connector not found\");\n }\n return connector as SessionConnector;\n }\n\n username() {\n return this.controller.username();\n }\n}\n"],"mappings":";AAAA,OAAO,wBAGA;AACP,SAAoB,yBAAyB;AAE7C,IAAqB,sBAArB,cAAiD,kBAAkB;AAAA,EAC1D;AAAA,EAEP,YAAY,UAA6B,CAAC,GAAG;AAC3C,QAAI;AAEJ,QAAI,OAAO,WAAW,eAAgB,OAAe,qBAAqB;AACxE,cAAQ;AAAA,QACN;AAAA,MAGF;AACA,mBAAc,OAAe;AAAA,IAC/B,OAAO;AACL,mBAAa,IAAI,mBAAmB,OAAO;AAAA,IAC7C;AAEA,UAAM,EAAE,SAAS,EAAE,IAAI,WAAW,IAAI,MAAM,WAAW,KAAK,EAAE,CAAC;AAC/D,SAAK,aAAa;AAAA,EACpB;AAAA,EAEA,MAAM,aAAa;AACjB,UAAM,KAAK,WAAW,WAAW;AACjC,QAAI;AACF,YAAM,MAAM,WAAW;AAAA,IACzB,QAAQ;AAAA,IAER;AAAA,EACF;AAAA,EAEA,WAAW;AACT,WAAO,KAAK,WAAW,SAAS;AAAA,EAClC;AAAA,EAEA,eAAe,UAAkB;AAC/B,WAAO,KAAK,WAAW,eAAe,QAAQ;AAAA,EAChD;AAAA,EAEA,UAAmB;AACjB,WAAO,KAAK,WAAW,QAAQ;AAAA,EACjC;AAAA,EAEA,MAAM,kBAAkB;AACtB,WAAO,MAAM,KAAK,WAAW,gBAAgB;AAAA,EAC/C;AAAA,EAEA,MAAM,QAAQ,MAAkD;AAC9D,UAAM,EAAE,aAAa,GAAG,eAAe,IAAI,QAAQ,CAAC;AACpD,UAAM,iBACJ,QAAQ,OAAO,KAAK,cAAc,EAAE,SAAS,IACxC,iBACD;AAEN,UAAM,UAAU,MAAM,KAAK,WAAW,QAAQ,cAAc;AAC5D,QAAI,CAAC,SAAS;AACZ,YAAM,IAAI,MAAM,8BAA8B;AAAA,IAChD;AAIA,QAAI,OAAO,WAAW,aAAa;AACjC,MAAC,OAAe,sBAAsB,KAAK;AAAA,IAC7C;AAEA,UAAM,OAAO,MAAM,MAAM,QAAQ,EAAE,YAAY,CAAC;AAKhD,WAAO,EAAE,GAAG,MAAM,SAAS,QAAQ,QAAQ;AAAA,EAC7C;AAAA,EAEA,OAAO,eAAe,YAA8C;AAClE,UAAM,YAAY,WAAW,KAAK,CAAC,MAAM,EAAE,OAAO,YAAY;AAC9D,QAAI,CAAC,WAAW;AACd,YAAM,IAAI,MAAM,gCAAgC;AAAA,IAClD;AACA,WAAO;AAAA,EACT;AAAA,EAEA,mBAAmB;AACjB,WAAO,KAAK,WAAW,iBAAiB;AAAA,EAC1C;AACF;;;ACzFA,OAAO,qBAAyC;AAChD,SAAoB,qBAAAA,0BAAyB;AAE7C,IAAqB,mBAArB,cAA8CA,mBAAkB;AAAA,EACvD;AAAA,EAEP,YAAY,SAAyB;AACnC,UAAM,aAAa,IAAI,gBAAgB,OAAO;AAE9C,UAAM;AAAA,MACJ,SAAS;AAAA,QACP,IAAI,WAAW;AAAA,QACf,MAAM,WAAW;AAAA,MACnB;AAAA,IACF,CAAC;AAED,SAAK,aAAa;AAAA,EACpB;AAAA,EAEA,MAAM,aAAa;AACjB,UAAM,KAAK,WAAW,WAAW;AACjC,QAAI;AACF,YAAM,MAAM,WAAW;AAAA,IACzB,QAAQ;AAAA,IAER;AAAA,EACF;AAAA,EAEA,OAAO,eAAe,YAA2C;AAC/D,UAAM,YAAY,WAAW,KAAK,CAAC,MAAM,EAAE,OAAO,oBAAoB;AACtE,QAAI,CAAC,WAAW;AACd,YAAM,IAAI,MAAM,6BAA6B;AAAA,IAC/C;AACA,WAAO;AAAA,EACT;AAAA,EAEA,WAAW;AACT,WAAO,KAAK,WAAW,SAAS;AAAA,EAClC;AACF;","names":["InjectedConnector"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cartridge/connector",
3
- "version": "0.13.6",
3
+ "version": "0.13.7",
4
4
  "description": "Cartridge Controller Connector",
5
5
  "repository": {
6
6
  "type": "git",
@@ -44,7 +44,7 @@
44
44
  "@starknet-react/core": "^5.0.1"
45
45
  },
46
46
  "dependencies": {
47
- "@cartridge/controller": "0.13.6"
47
+ "@cartridge/controller": "0.13.7"
48
48
  },
49
49
  "devDependencies": {
50
50
  "@vitest/coverage-v8": "2.1.8",
@@ -52,7 +52,7 @@
52
52
  "tsup": "^8.0.1",
53
53
  "typescript": "^5.7.3",
54
54
  "vitest": "2.1.8",
55
- "@cartridge/tsconfig": "0.13.6"
55
+ "@cartridge/tsconfig": "0.13.7"
56
56
  },
57
57
  "scripts": {
58
58
  "build:deps": "tsup --dts-resolve",
package/src/controller.ts CHANGED
@@ -38,6 +38,10 @@ export default class ControllerConnector extends InjectedConnector {
38
38
  return this.controller.username();
39
39
  }
40
40
 
41
+ lookupUsername(username: string) {
42
+ return this.controller.lookupUsername(username);
43
+ }
44
+
41
45
  isReady(): boolean {
42
46
  return this.controller.isReady();
43
47
  }