@cartridge/connector 0.12.2 → 0.13.3

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.12.2 build:deps /home/runner/work/controller/controller/packages/connector
2
+ > @cartridge/connector@0.13.3 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/controller.js 1.63 KB
13
- ESM dist/index.js 2.41 KB
12
+ ESM dist/controller.js 1.97 KB
13
+ ESM dist/index.js 2.75 KB
14
14
  ESM dist/session.js 848.00 B
15
- ESM dist/controller.js.map 3.04 KB
16
- ESM dist/index.js.map 4.51 KB
15
+ ESM dist/index.js.map 5.01 KB
16
+ ESM dist/controller.js.map 3.54 KB
17
17
  ESM dist/session.js.map 1.51 KB
18
- ESM ⚡️ Build success in 76ms
18
+ ESM ⚡️ Build success in 70ms
19
19
  DTS Build start
20
- DTS ⚡️ Build success in 8168ms
20
+ DTS ⚡️ Build success in 6376ms
21
21
  DTS dist/index.d.ts 354.00 B
22
22
  DTS dist/controller.d.ts 1013.00 B
23
23
  DTS dist/session.d.ts 476.00 B
@@ -5,13 +5,16 @@ import { StarknetInjectedWallet } from "@starknet-io/get-starknet-wallet-standar
5
5
  var ControllerConnector = class extends InjectedConnector {
6
6
  controller;
7
7
  constructor(options = {}) {
8
- const controller = new ControllerProvider(options);
9
- super({
10
- options: {
11
- id: controller.id,
12
- name: controller.name
13
- }
14
- });
8
+ let controller;
9
+ if (typeof window !== "undefined" && window.starknet_controller) {
10
+ console.warn(
11
+ "ControllerConnector was instantiated multiple times. Reusing existing controller to prevent errors. To fix, create the connector at the module level instead of inside a React component."
12
+ );
13
+ controller = window.starknet_controller;
14
+ } else {
15
+ controller = new ControllerProvider(options);
16
+ }
17
+ super({ options: { id: controller.id, name: controller.name } });
15
18
  this.controller = controller;
16
19
  }
17
20
  async disconnect() {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/controller.ts"],"sourcesContent":["import ControllerProvider, {\n AuthOptions,\n ControllerOptions,\n} from \"@cartridge/controller\";\nimport { Connector, InjectedConnector } from \"@starknet-react/core\";\n\nimport { StarknetInjectedWallet } from \"@starknet-io/get-starknet-wallet-standard\";\nimport type { WalletWithStarknetFeatures } from \"@starknet-io/get-starknet-wallet-standard/features\";\n\nexport default class ControllerConnector extends InjectedConnector {\n public controller: ControllerProvider;\n\n constructor(options: ControllerOptions = {}) {\n const controller = new ControllerProvider(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 this.controller.disconnect();\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; signupOptions?: AuthOptions }) {\n const account = await this.controller.connect(args?.signupOptions);\n if (!account) {\n throw new Error(\"Failed to connect controller\");\n }\n return super.connect({ chainIdHint: args?.chainIdHint });\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(): WalletWithStarknetFeatures {\n if (typeof window !== \"undefined\") {\n console.warn(\n `Casting Controller to WalletWithStarknetFeatures is an experimental feature and may contain bugs. ` +\n `Please report any issues at https://github.com/cartridge-gg/controller/issues`,\n );\n }\n\n return new StarknetInjectedWallet(this.controller);\n }\n}\n"],"mappings":";AAAA,OAAO,wBAGA;AACP,SAAoB,yBAAyB;AAE7C,SAAS,8BAA8B;AAGvC,IAAqB,sBAArB,cAAiD,kBAAkB;AAAA,EAC1D;AAAA,EAEP,YAAY,UAA6B,CAAC,GAAG;AAC3C,UAAM,aAAa,IAAI,mBAAmB,OAAO;AAEjD,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,SAAK,WAAW,WAAW;AAAA,EAC7B;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,MAA8D;AAC1E,UAAM,UAAU,MAAM,KAAK,WAAW,QAAQ,MAAM,aAAa;AACjE,QAAI,CAAC,SAAS;AACZ,YAAM,IAAI,MAAM,8BAA8B;AAAA,IAChD;AACA,WAAO,MAAM,QAAQ,EAAE,aAAa,MAAM,YAAY,CAAC;AAAA,EACzD;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,mBAA+C;AAC7C,QAAI,OAAO,WAAW,aAAa;AACjC,cAAQ;AAAA,QACN;AAAA,MAEF;AAAA,IACF;AAEA,WAAO,IAAI,uBAAuB,KAAK,UAAU;AAAA,EACnD;AACF;","names":[]}
1
+ {"version":3,"sources":["../src/controller.ts"],"sourcesContent":["import ControllerProvider, {\n AuthOptions,\n ControllerOptions,\n} from \"@cartridge/controller\";\nimport { Connector, InjectedConnector } from \"@starknet-react/core\";\n\nimport { StarknetInjectedWallet } from \"@starknet-io/get-starknet-wallet-standard\";\nimport type { WalletWithStarknetFeatures } from \"@starknet-io/get-starknet-wallet-standard/features\";\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 this.controller.disconnect();\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; signupOptions?: AuthOptions }) {\n const account = await this.controller.connect(args?.signupOptions);\n if (!account) {\n throw new Error(\"Failed to connect controller\");\n }\n return super.connect({ chainIdHint: args?.chainIdHint });\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(): WalletWithStarknetFeatures {\n if (typeof window !== \"undefined\") {\n console.warn(\n `Casting Controller to WalletWithStarknetFeatures is an experimental feature and may contain bugs. ` +\n `Please report any issues at https://github.com/cartridge-gg/controller/issues`,\n );\n }\n\n return new StarknetInjectedWallet(this.controller);\n }\n}\n"],"mappings":";AAAA,OAAO,wBAGA;AACP,SAAoB,yBAAyB;AAE7C,SAAS,8BAA8B;AAGvC,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,SAAK,WAAW,WAAW;AAAA,EAC7B;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,MAA8D;AAC1E,UAAM,UAAU,MAAM,KAAK,WAAW,QAAQ,MAAM,aAAa;AACjE,QAAI,CAAC,SAAS;AACZ,YAAM,IAAI,MAAM,8BAA8B;AAAA,IAChD;AACA,WAAO,MAAM,QAAQ,EAAE,aAAa,MAAM,YAAY,CAAC;AAAA,EACzD;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,mBAA+C;AAC7C,QAAI,OAAO,WAAW,aAAa;AACjC,cAAQ;AAAA,QACN;AAAA,MAEF;AAAA,IACF;AAEA,WAAO,IAAI,uBAAuB,KAAK,UAAU;AAAA,EACnD;AACF;","names":[]}
package/dist/index.js CHANGED
@@ -5,13 +5,16 @@ import { StarknetInjectedWallet } from "@starknet-io/get-starknet-wallet-standar
5
5
  var ControllerConnector = class extends InjectedConnector {
6
6
  controller;
7
7
  constructor(options = {}) {
8
- const controller = new ControllerProvider(options);
9
- super({
10
- options: {
11
- id: controller.id,
12
- name: controller.name
13
- }
14
- });
8
+ let controller;
9
+ if (typeof window !== "undefined" && window.starknet_controller) {
10
+ console.warn(
11
+ "ControllerConnector was instantiated multiple times. Reusing existing controller to prevent errors. To fix, create the connector at the module level instead of inside a React component."
12
+ );
13
+ controller = window.starknet_controller;
14
+ } else {
15
+ controller = new ControllerProvider(options);
16
+ }
17
+ super({ options: { id: controller.id, name: controller.name } });
15
18
  this.controller = controller;
16
19
  }
17
20
  async disconnect() {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/controller.ts","../src/session.ts"],"sourcesContent":["import ControllerProvider, {\n AuthOptions,\n ControllerOptions,\n} from \"@cartridge/controller\";\nimport { Connector, InjectedConnector } from \"@starknet-react/core\";\n\nimport { StarknetInjectedWallet } from \"@starknet-io/get-starknet-wallet-standard\";\nimport type { WalletWithStarknetFeatures } from \"@starknet-io/get-starknet-wallet-standard/features\";\n\nexport default class ControllerConnector extends InjectedConnector {\n public controller: ControllerProvider;\n\n constructor(options: ControllerOptions = {}) {\n const controller = new ControllerProvider(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 this.controller.disconnect();\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; signupOptions?: AuthOptions }) {\n const account = await this.controller.connect(args?.signupOptions);\n if (!account) {\n throw new Error(\"Failed to connect controller\");\n }\n return super.connect({ chainIdHint: args?.chainIdHint });\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(): WalletWithStarknetFeatures {\n if (typeof window !== \"undefined\") {\n console.warn(\n `Casting Controller to WalletWithStarknetFeatures is an experimental feature and may contain bugs. ` +\n `Please report any issues at https://github.com/cartridge-gg/controller/issues`,\n );\n }\n\n return new StarknetInjectedWallet(this.controller);\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 this.controller.disconnect();\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,SAAS,8BAA8B;AAGvC,IAAqB,sBAArB,cAAiD,kBAAkB;AAAA,EAC1D;AAAA,EAEP,YAAY,UAA6B,CAAC,GAAG;AAC3C,UAAM,aAAa,IAAI,mBAAmB,OAAO;AAEjD,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,SAAK,WAAW,WAAW;AAAA,EAC7B;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,MAA8D;AAC1E,UAAM,UAAU,MAAM,KAAK,WAAW,QAAQ,MAAM,aAAa;AACjE,QAAI,CAAC,SAAS;AACZ,YAAM,IAAI,MAAM,8BAA8B;AAAA,IAChD;AACA,WAAO,MAAM,QAAQ,EAAE,aAAa,MAAM,YAAY,CAAC;AAAA,EACzD;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,mBAA+C;AAC7C,QAAI,OAAO,WAAW,aAAa;AACjC,cAAQ;AAAA,QACN;AAAA,MAEF;AAAA,IACF;AAEA,WAAO,IAAI,uBAAuB,KAAK,UAAU;AAAA,EACnD;AACF;;;ACnEA,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,SAAK,WAAW,WAAW;AAAA,EAC7B;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 AuthOptions,\n ControllerOptions,\n} from \"@cartridge/controller\";\nimport { Connector, InjectedConnector } from \"@starknet-react/core\";\n\nimport { StarknetInjectedWallet } from \"@starknet-io/get-starknet-wallet-standard\";\nimport type { WalletWithStarknetFeatures } from \"@starknet-io/get-starknet-wallet-standard/features\";\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 this.controller.disconnect();\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; signupOptions?: AuthOptions }) {\n const account = await this.controller.connect(args?.signupOptions);\n if (!account) {\n throw new Error(\"Failed to connect controller\");\n }\n return super.connect({ chainIdHint: args?.chainIdHint });\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(): WalletWithStarknetFeatures {\n if (typeof window !== \"undefined\") {\n console.warn(\n `Casting Controller to WalletWithStarknetFeatures is an experimental feature and may contain bugs. ` +\n `Please report any issues at https://github.com/cartridge-gg/controller/issues`,\n );\n }\n\n return new StarknetInjectedWallet(this.controller);\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 this.controller.disconnect();\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,SAAS,8BAA8B;AAGvC,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,SAAK,WAAW,WAAW;AAAA,EAC7B;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,MAA8D;AAC1E,UAAM,UAAU,MAAM,KAAK,WAAW,QAAQ,MAAM,aAAa;AACjE,QAAI,CAAC,SAAS;AACZ,YAAM,IAAI,MAAM,8BAA8B;AAAA,IAChD;AACA,WAAO,MAAM,QAAQ,EAAE,aAAa,MAAM,YAAY,CAAC;AAAA,EACzD;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,mBAA+C;AAC7C,QAAI,OAAO,WAAW,aAAa;AACjC,cAAQ;AAAA,QACN;AAAA,MAEF;AAAA,IACF;AAEA,WAAO,IAAI,uBAAuB,KAAK,UAAU;AAAA,EACnD;AACF;;;ACxEA,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,SAAK,WAAW,WAAW;AAAA,EAC7B;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,11 +1,21 @@
1
1
  {
2
2
  "name": "@cartridge/connector",
3
- "version": "0.12.2",
3
+ "version": "0.13.3",
4
4
  "description": "Cartridge Controller Connector",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "https://github.com/cartridge-gg/controller.git",
8
+ "directory": "packages/connector"
9
+ },
5
10
  "module": "dist/index.js",
6
11
  "types": "dist/index.d.ts",
7
12
  "type": "module",
8
13
  "sideEffects": false,
14
+ "scripts": {
15
+ "build:deps": "tsup --dts-resolve",
16
+ "format": "prettier --write \"src/**/*.ts\"",
17
+ "format:check": "prettier --check \"src/**/*.ts\""
18
+ },
9
19
  "exports": {
10
20
  ".": "./dist/index.js",
11
21
  "./controller": "./dist/controller.js",
@@ -39,18 +49,13 @@
39
49
  "@starknet-react/core": "^5.0.1"
40
50
  },
41
51
  "dependencies": {
42
- "@starknet-io/get-starknet-wallet-standard": "5.0.0-beta.0",
43
- "@cartridge/controller": "0.12.2"
52
+ "@cartridge/controller": "workspace:*",
53
+ "@starknet-io/get-starknet-wallet-standard": "5.0.0-beta.0"
44
54
  },
45
55
  "devDependencies": {
46
- "prettier": "^3.4.2",
47
- "tsup": "^8.0.1",
48
- "typescript": "^5.7.3",
49
- "@cartridge/tsconfig": "0.12.2"
50
- },
51
- "scripts": {
52
- "build:deps": "tsup --dts-resolve",
53
- "format": "prettier --write \"src/**/*.ts\"",
54
- "format:check": "prettier --check \"src/**/*.ts\""
56
+ "@cartridge/tsconfig": "workspace:*",
57
+ "prettier": "catalog:",
58
+ "tsup": "catalog:",
59
+ "typescript": "catalog:"
55
60
  }
56
- }
61
+ }
package/src/controller.ts CHANGED
@@ -11,15 +11,20 @@ export default class ControllerConnector extends InjectedConnector {
11
11
  public controller: ControllerProvider;
12
12
 
13
13
  constructor(options: ControllerOptions = {}) {
14
- const controller = new ControllerProvider(options);
14
+ let controller: ControllerProvider;
15
15
 
16
- super({
17
- options: {
18
- id: controller.id,
19
- name: controller.name,
20
- },
21
- });
16
+ if (typeof window !== "undefined" && (window as any).starknet_controller) {
17
+ console.warn(
18
+ "ControllerConnector was instantiated multiple times. " +
19
+ "Reusing existing controller to prevent errors. " +
20
+ "To fix, create the connector at the module level instead of inside a React component.",
21
+ );
22
+ controller = (window as any).starknet_controller;
23
+ } else {
24
+ controller = new ControllerProvider(options);
25
+ }
22
26
 
27
+ super({ options: { id: controller.id, name: controller.name } });
23
28
  this.controller = controller;
24
29
  }
25
30
 
package/LICENSE DELETED
@@ -1,16 +0,0 @@
1
- Copyright Cartridge Gaming Company 2022. All rights reserved.
2
-
3
- You acknowledge and agree that Cartridge Gaming Company (“Cartridge”) (or Cartridge’s licensors) own all legal right, title and interest in and to the work, software, application, source code, documentation and any other documents in this repository (collectively, the “Program”), including any intellectual property rights which subsist in the Program (whether those rights happen to be registered or not, and wherever in the world those rights may exist), whether in source code or any other form.
4
-
5
- Subject to the limited license below, you may not (and you may not permit anyone else to) distribute, publish, copy, modify, merge, combine with another program, create derivative works of, reverse engineer, decompile or otherwise attempt to extract the source code of, the Program or any part thereof, except that you may contribute to this repository.
6
-
7
- You are granted a non-exclusive, non-transferable, non-sublicensable license to distribute, publish, copy, modify, merge, combine with another program or create derivative works of the Program (such resulting program, collectively, the “Resulting Program”) solely for Non-Commercial Use as long as you:
8
- 1. give prominent notice (“Notice”) with each copy of the Resulting Program that the Program is used in the Resulting Program and that the Program is the copyright of Cartridge; and
9
- 2. subject the Resulting Program and any distribution, publication, copy, modification, merger therewith, combination with another program or derivative works thereof to the same Notice requirement and Non-Commercial Use restriction set forth herein.
10
-
11
- “Non-Commercial Use” means each use as described in clauses (1)-(3) below, as reasonably determined by Cartridge in its sole discretion:
12
- 1. personal use for research, personal study, private entertainment, hobby projects or amateur pursuits, in each case without any anticipated commercial application;
13
- 2. use by any charitable organization, educational institution, public research organization, public safety or health organization, environmental protection organization or government institution; or
14
- 3. the number of monthly active users of the Resulting Program across all versions thereof and platforms globally do not exceed 10,000 at any time.
15
-
16
- You will not use any trade mark, service mark, trade name, logo of Cartridge or any other company or organization in a way that is likely or intended to cause confusion about the owner or authorized user of such marks, names or logos.