@hub3js/core 0.61.1 → 0.61.2-next.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.
Files changed (47) hide show
  1. package/dist/builders/namespace.d.ts +2 -2
  2. package/dist/builders/namespace.d.ts.map +1 -1
  3. package/dist/builders/provider.d.ts +2 -1
  4. package/dist/builders/provider.d.ts.map +1 -1
  5. package/dist/hub/helpers.d.ts +2 -1
  6. package/dist/hub/helpers.d.ts.map +1 -1
  7. package/dist/hub/hub.d.ts +8 -7
  8. package/dist/hub/hub.d.ts.map +1 -1
  9. package/dist/hub/mod.d.ts +2 -2
  10. package/dist/hub/mod.d.ts.map +1 -1
  11. package/dist/hub/namespaces/namespace.d.ts +3 -3
  12. package/dist/hub/namespaces/namespace.d.ts.map +1 -1
  13. package/dist/hub/provider/provider.d.ts +3 -3
  14. package/dist/hub/provider/provider.d.ts.map +1 -1
  15. package/dist/hub/store/events.d.ts +9 -8
  16. package/dist/hub/store/events.d.ts.map +1 -1
  17. package/dist/hub/store/mod.d.ts +1 -1
  18. package/dist/hub/store/mod.d.ts.map +1 -1
  19. package/dist/hub/store/mod.js +1 -1
  20. package/dist/hub/store/mod.js.map +2 -2
  21. package/dist/hub/store/namespaces.d.ts +2 -1
  22. package/dist/hub/store/namespaces.d.ts.map +1 -1
  23. package/dist/hub/store/providers.d.ts +7 -6
  24. package/dist/hub/store/providers.d.ts.map +1 -1
  25. package/dist/hub/store/selectors.d.ts +2 -1
  26. package/dist/hub/store/selectors.d.ts.map +1 -1
  27. package/dist/hub/types.d.ts +1 -0
  28. package/dist/hub/types.d.ts.map +1 -1
  29. package/dist/mod.d.ts +1 -1
  30. package/dist/mod.d.ts.map +1 -1
  31. package/dist/mod.js +1 -1
  32. package/dist/mod.js.map +2 -2
  33. package/package.json +1 -1
  34. package/src/builders/namespace.ts +3 -3
  35. package/src/builders/provider.ts +3 -2
  36. package/src/hub/helpers.ts +3 -1
  37. package/src/hub/hub.ts +9 -8
  38. package/src/hub/mod.ts +8 -2
  39. package/src/hub/namespaces/namespace.ts +3 -2
  40. package/src/hub/provider/provider.ts +3 -3
  41. package/src/hub/store/events.ts +10 -8
  42. package/src/hub/store/mod.ts +2 -0
  43. package/src/hub/store/namespaces.ts +2 -1
  44. package/src/hub/store/providers.ts +8 -7
  45. package/src/hub/store/selectors.ts +2 -1
  46. package/src/hub/types.ts +2 -0
  47. package/src/mod.ts +3 -0
@@ -2,7 +2,7 @@ import type { ActionByBuilder } from './action.js';
2
2
  import type { ProxiedNamespace } from './types.js';
3
3
  import type { Actions, Context } from '../hub/namespaces/mod.js';
4
4
  import type { NamespaceConfig } from '../hub/store/mod.js';
5
- import type { FunctionWithContext } from '../hub/types.js';
5
+ import type { FunctionWithContext, WalletType } from '../hub/types.js';
6
6
  /**
7
7
  * There are Namespace's methods that should be called directly on Proxy object.
8
8
  * The Proxy object is creating in `.build`.
@@ -10,7 +10,7 @@ import type { FunctionWithContext } from '../hub/types.js';
10
10
  export declare const allowedMethods: readonly ["init", "state", "after", "before", "and_then", "or_else", "store"];
11
11
  export declare class NamespaceBuilder<T extends Actions<T>> {
12
12
  #private;
13
- constructor(id: string, providerId: string);
13
+ constructor(id: string, providerId: WalletType);
14
14
  /** There are some predefined configs that can be set for each namespace separately */
15
15
  config<K extends keyof NamespaceConfig>(name: K, value: NamespaceConfig[K]): this;
16
16
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../src/builders/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAE,OAAO,EAAc,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAI3D;;;GAGG;AACH,eAAO,MAAM,cAAc,+EAQjB,CAAC;AAaX,qBAAa,gBAAgB,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC;;gBAYpC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAM1C,sFAAsF;IAC/E,MAAM,CAAC,CAAC,SAAS,MAAM,eAAe,EAC3C,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC;IAM3B;;;;;;;;;;;OAWG;IACI,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,EAC7B,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAC9D,gBAAgB,CAAC,CAAC,CAAC;IAEtB;;;;;;;;OAQG;IACI,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,EAC7B,MAAM,EAAE,CAAC,EACT,QAAQ,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,GAC9C,gBAAgB,CAAC,CAAC,CAAC;IAEf,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC;IA0C1E;;;;OAIG;IACI,KAAK,IAAI,gBAAgB,CAAC,CAAC,CAAC;CAwHpC"}
1
+ {"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../src/builders/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAE,OAAO,EAAc,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAIvE;;;GAGG;AACH,eAAO,MAAM,cAAc,+EAQjB,CAAC;AAaX,qBAAa,gBAAgB,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC;;gBAYpC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU;IAM9C,sFAAsF;IAC/E,MAAM,CAAC,CAAC,SAAS,MAAM,eAAe,EAC3C,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC;IAM3B;;;;;;;;;;;OAWG;IACI,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,EAC7B,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAC9D,gBAAgB,CAAC,CAAC,CAAC;IAEtB;;;;;;;;OAQG;IACI,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,EAC7B,MAAM,EAAE,CAAC,EACT,QAAQ,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,GAC9C,gBAAgB,CAAC,CAAC,CAAC;IAEf,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC;IA0C1E;;;;OAIG;IACI,KAAK,IAAI,gBAAgB,CAAC,CAAC,CAAC;CAwHpC"}
@@ -2,6 +2,7 @@ import type { ProxiedNamespace } from './types.js';
2
2
  import type { Actions } from '../hub/namespaces/mod.js';
3
3
  import type { ExtendableInternalActions, ProviderBuilderOptions } from '../hub/provider/mod.js';
4
4
  import type { ProviderConfig } from '../hub/store/mod.js';
5
+ import type { WalletType } from '../hub/types.js';
5
6
  import { Provider } from '../hub/provider/mod.js';
6
7
  /**
7
8
  * Fluent builder for `Provider`. Each `.add(key, namespace)` call accumulates
@@ -23,7 +24,7 @@ import { Provider } from '../hub/provider/mod.js';
23
24
  */
24
25
  export declare class ProviderBuilder<TNS = {}> {
25
26
  #private;
26
- constructor(id: string, options?: ProviderBuilderOptions);
27
+ constructor(id: WalletType, options?: ProviderBuilderOptions);
27
28
  /**
28
29
  * Register a namespace under `id`. Captures both the key and the namespace's
29
30
  * action interface into the builder's `TNS` so subsequent operations are
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/builders/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,KAAK,EACV,yBAAyB,EACzB,sBAAsB,EAEvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAElD;;;;;;;;;;;;;;;;;GAiBG;AAEH,qBAAa,eAAe,CAAC,GAAG,GAAG,EAAE;;gBAWvB,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,sBAAsB;IAKxD;;;;OAIG;IACI,GAAG,CAAC,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC,EACrD,EAAE,EAAE,CAAC,EACL,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAC7B,eAAe,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAQ/B,MAAM,CAAC,CAAC,SAAS,MAAM,cAAc,CAAC,GAAG,CAAC,EAC/C,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAC5B,IAAI;IAKA,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,yBAAyB,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,GAAG,IAAI;IAKrE,KAAK,IAAI,QAAQ,CAAC,GAAG,CAAC;CAyB9B"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/builders/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,KAAK,EACV,yBAAyB,EACzB,sBAAsB,EAEvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAElD;;;;;;;;;;;;;;;;;GAiBG;AAEH,qBAAa,eAAe,CAAC,GAAG,GAAG,EAAE;;gBAWvB,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,sBAAsB;IAK5D;;;;OAIG;IACI,GAAG,CAAC,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC,EACrD,EAAE,EAAE,CAAC,EACL,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAC7B,eAAe,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAQ/B,MAAM,CAAC,CAAC,SAAS,MAAM,cAAc,CAAC,GAAG,CAAC,EAC/C,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAC5B,IAAI;IAKA,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,yBAAyB,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,GAAG,IAAI;IAKrE,KAAK,IAAI,QAAQ,CAAC,GAAG,CAAC;CAyB9B"}
@@ -1,6 +1,7 @@
1
+ import type { WalletType } from './types.js';
1
2
  /**
2
3
  * Note: This only works native async, if we are going to support for old transpilers like Babel.
3
4
  */
4
5
  export declare function isAsync(fn: Function): boolean;
5
- export declare function generateStoreId(providerId: string, namespace: string): string;
6
+ export declare function generateStoreId(providerId: WalletType, namespace: string): string;
6
7
  //# sourceMappingURL=helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/hub/helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,wBAAgB,OAAO,CAAC,EAAE,EAAE,QAAQ,WAEnC;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,UAEpE"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/hub/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C;;GAEG;AAEH,wBAAgB,OAAO,CAAC,EAAE,EAAE,QAAQ,WAEnC;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,UAExE"}
package/dist/hub/hub.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import type { State as NamespaceState } from './namespaces/mod.js';
2
2
  import type { Provider, State as ProviderState } from './provider/mod.js';
3
3
  import type { Store } from './store/mod.js';
4
+ import type { WalletType } from './types.js';
4
5
  /**
5
6
  * Hub stores providers with heterogeneous `TNS` shapes. `Provider<TNS>` is
6
7
  * invariant in `TNS` (TNS appears in both reading and writing positions via
@@ -17,17 +18,17 @@ import type { Store } from './store/mod.js';
17
18
  */
18
19
  type AnyProvider = Provider<any>;
19
20
  type HubState = {
20
- [key in string]: ProviderState & {
21
+ [key in WalletType]: ProviderState & {
21
22
  namespaces: NamespaceState[];
22
23
  };
23
24
  };
24
25
  type RunAllResult = {
25
- id: string;
26
+ id: WalletType;
26
27
  provider: unknown;
27
28
  namespaces: unknown[];
28
29
  };
29
30
  type RunAllArgs = {
30
- [providerId: string]: {
31
+ [providerId: WalletType]: {
31
32
  provider?: unknown;
32
33
  namespaces?: {
33
34
  [namespaceId: string]: unknown;
@@ -42,10 +43,10 @@ export declare class Hub {
42
43
  constructor(options?: HubOptions);
43
44
  init(args?: RunAllArgs): void;
44
45
  runAll(action: string, args?: RunAllArgs): RunAllResult[];
45
- add(id: string, provider: AnyProvider): this;
46
- remove(id: string): this;
47
- get(providerId: string): AnyProvider | undefined;
48
- getAll(): Map<string, AnyProvider>;
46
+ add(id: WalletType, provider: AnyProvider): this;
47
+ remove(id: WalletType): this;
48
+ get(providerId: WalletType): AnyProvider | undefined;
49
+ getAll(): Map<WalletType, AnyProvider>;
49
50
  state(): HubState;
50
51
  }
51
52
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"hub.d.ts","sourceRoot":"","sources":["../../src/hub/hub.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,KAAK,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,IAAI,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAE5C;;;;;;;;;;;;;GAaG;AAEH,KAAK,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;AAEjC,KAAK,QAAQ,GAAG;KACb,GAAG,IAAI,MAAM,GAAG,aAAa,GAAG;QAC/B,UAAU,EAAE,cAAc,EAAE,CAAC;KAC9B;CACF,CAAC;AAEF,KAAK,YAAY,GAAG;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,OAAO,EAAE,CAAC;CACvB,CAAC;AAEF,KAAK,UAAU,GAAG;IAChB,CAAC,UAAU,EAAE,MAAM,GAAG;QACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,UAAU,CAAC,EAAE;YACX,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;SAChC,CAAC;KACH,CAAC;CACH,CAAC;AAEF,UAAU,UAAU;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,qBAAa,GAAG;;gBAIF,OAAO,CAAC,EAAE,UAAU;IAIhC,IAAI,CAAC,IAAI,CAAC,EAAE,UAAU;IAStB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,YAAY,EAAE;IA0CzD,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,GAAG,IAAI;IAQ5C,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAaxB,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAIhD,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC;IAIlC,KAAK,IAAI,QAAQ;CAwBlB"}
1
+ {"version":3,"file":"hub.d.ts","sourceRoot":"","sources":["../../src/hub/hub.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,KAAK,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,IAAI,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C;;;;;;;;;;;;;GAaG;AAEH,KAAK,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;AAEjC,KAAK,QAAQ,GAAG;KACb,GAAG,IAAI,UAAU,GAAG,aAAa,GAAG;QACnC,UAAU,EAAE,cAAc,EAAE,CAAC;KAC9B;CACF,CAAC;AAEF,KAAK,YAAY,GAAG;IAClB,EAAE,EAAE,UAAU,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,OAAO,EAAE,CAAC;CACvB,CAAC;AAEF,KAAK,UAAU,GAAG;IAChB,CAAC,UAAU,EAAE,UAAU,GAAG;QACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,UAAU,CAAC,EAAE;YACX,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;SAChC,CAAC;KACH,CAAC;CACH,CAAC;AAEF,UAAU,UAAU;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,qBAAa,GAAG;;gBAIF,OAAO,CAAC,EAAE,UAAU;IAIhC,IAAI,CAAC,IAAI,CAAC,EAAE,UAAU;IAStB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,YAAY,EAAE;IA0CzD,GAAG,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,GAAG,IAAI;IAQhD,MAAM,CAAC,EAAE,EAAE,UAAU,GAAG,IAAI;IAa5B,GAAG,CAAC,UAAU,EAAE,UAAU,GAAG,WAAW,GAAG,SAAS;IAIpD,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC;IAItC,KAAK,IAAI,QAAQ;CAwBlB"}
package/dist/hub/mod.d.ts CHANGED
@@ -3,9 +3,9 @@ export { Namespace } from './namespaces/mod.js';
3
3
  export { Provider } from './provider/mod.js';
4
4
  export type { RegisteredNamespaces } from './provider/mod.js';
5
5
  export { Hub } from './hub.js';
6
- export type { Store, State, ProviderMetadata } from './store/mod.js';
6
+ export type { Store, State, ProviderMetadata, NamespacesProperty, DerivationPathProperty, } from './store/mod.js';
7
7
  export { createStore, guessProviderStateSelector, namespaceStateSelector, } from './store/mod.js';
8
8
  export { generateStoreId } from './helpers.js';
9
9
  export type { CanEagerConnect } from './namespaces/types.js';
10
- export type { FunctionWithContext, AnyFunction } from './types.js';
10
+ export type { FunctionWithContext, AnyFunction, WalletType } from './types.js';
11
11
  //# sourceMappingURL=mod.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../src/hub/mod.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,OAAO,EACP,UAAU,EACV,iBAAiB,EACjB,OAAO,GACR,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EACL,WAAW,EACX,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,YAAY,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../src/hub/mod.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,OAAO,EACP,UAAU,EACV,iBAAiB,EACjB,OAAO,GACR,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,YAAY,EACV,KAAK,EACL,KAAK,EACL,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,WAAW,EACX,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,YAAY,EAAE,mBAAmB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import type { Actions, Context, GetState, RegisteredActions, SetState } from './types.js';
2
2
  import type { NamespaceConfig, Store } from '../store/mod.js';
3
- import type { AndFunction, AnyFunction, FunctionWithContext } from '../types.js';
3
+ import type { AndFunction, AnyFunction, FunctionWithContext, WalletType } from '../types.js';
4
4
  type Params = any[];
5
5
  /**
6
6
  *
@@ -18,8 +18,8 @@ declare class Namespace<T extends Actions<T>> {
18
18
  /** it will be used for `store` and accessing to store by its id mainly. */
19
19
  readonly namespaceId: string;
20
20
  /** it will be used for `store` and accessing to store by its id mainly. */
21
- readonly providerId: string;
22
- constructor(id: string, providerId: string, options: {
21
+ readonly providerId: WalletType;
22
+ constructor(id: string, providerId: WalletType, options: {
23
23
  store?: Store;
24
24
  configs?: NamespaceConfig;
25
25
  actions: RegisteredActions<T>;
@@ -1 +1 @@
1
- {"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../../src/hub/namespaces/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,OAAO,EACP,QAAQ,EAGR,iBAAiB,EACjB,QAAQ,EAET,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACX,mBAAmB,EACpB,MAAM,aAAa,CAAC;AAYrB,KAAK,MAAM,GAAG,GAAG,EAAE,CAAC;AAEpB;;;;;;;;;;GAUG;AACH,cAAM,SAAS,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC;;IAClC,2EAA2E;IAC3E,SAAgB,WAAW,EAAE,MAAM,CAAC;IACpC,2EAA2E;IAC3E,SAAgB,UAAU,EAAE,MAAM,CAAC;gBAgBjC,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE;QACP,KAAK,CAAC,EAAE,KAAK,CAAC;QACd,OAAO,CAAC,EAAE,eAAe,CAAC;QAC1B,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;KAC/B;IAeH;;;;;;;;;;;;;;;;;OAiBG;IACI,IAAI,IAAI,IAAI;IAenB;;;;;;;;OAQG;IACI,KAAK,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC;IA0BpC;;;;;;;;;;;OAWG;IACI,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAYhC;;;;;;;;;;;;;OAaG;IACI,QAAQ,CAAC,CAAC,SAAS,MAAM,CAAC,EAC/B,UAAU,EAAE,CAAC,EACb,UAAU,EAAE,mBAAmB,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,GAC1D,IAAI;IAOP;;;;;;;;;;;;OAYG;IACI,OAAO,CAAC,CAAC,SAAS,MAAM,CAAC,EAC9B,UAAU,EAAE,CAAC,EACb,UAAU,EAAE,mBAAmB,CAAC,WAAW,EAAE,OAAO,CAAC,GACpD,IAAI;IAOP;;;;;;;;;;;OAWG;IACI,KAAK,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,CAAC,GAAG,OAAO,EACzC,UAAU,EAAE,CAAC,EACb,IAAI,EAAE,mBAAmB,CAAC,WAAW,EAAE,CAAC,CAAC,EACzC,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,CAAC,CAAA;KAAE,GACxB,IAAI;IAaP;;;;;;;;;;;OAWG;IACI,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,CAAC,GAAG,OAAO,EAC1C,UAAU,EAAE,CAAC,EACb,IAAI,EAAE,mBAAmB,CAAC,WAAW,EAAE,CAAC,CAAC,EACzC,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,CAAC,CAAA;KAAE,GACxB,IAAI;IAeA,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC,GAAG,OAAO;IAGrD;;;;;;;;;;;;;;;OAeG;IACI,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,EAC1B,UAAU,EAAE,CAAC,EACb,GAAG,IAAI,EAAE,MAAM,GACd,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;CAqK9B;AAED,OAAO,EAAE,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../../src/hub/namespaces/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,OAAO,EACP,QAAQ,EAGR,iBAAiB,EACjB,QAAQ,EAET,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACX,mBAAmB,EACnB,UAAU,EACX,MAAM,aAAa,CAAC;AAYrB,KAAK,MAAM,GAAG,GAAG,EAAE,CAAC;AAEpB;;;;;;;;;;GAUG;AACH,cAAM,SAAS,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC;;IAClC,2EAA2E;IAC3E,SAAgB,WAAW,EAAE,MAAM,CAAC;IACpC,2EAA2E;IAC3E,SAAgB,UAAU,EAAE,UAAU,CAAC;gBAgBrC,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE;QACP,KAAK,CAAC,EAAE,KAAK,CAAC;QACd,OAAO,CAAC,EAAE,eAAe,CAAC;QAC1B,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;KAC/B;IAeH;;;;;;;;;;;;;;;;;OAiBG;IACI,IAAI,IAAI,IAAI;IAenB;;;;;;;;OAQG;IACI,KAAK,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC;IA0BpC;;;;;;;;;;;OAWG;IACI,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAYhC;;;;;;;;;;;;;OAaG;IACI,QAAQ,CAAC,CAAC,SAAS,MAAM,CAAC,EAC/B,UAAU,EAAE,CAAC,EACb,UAAU,EAAE,mBAAmB,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,GAC1D,IAAI;IAOP;;;;;;;;;;;;OAYG;IACI,OAAO,CAAC,CAAC,SAAS,MAAM,CAAC,EAC9B,UAAU,EAAE,CAAC,EACb,UAAU,EAAE,mBAAmB,CAAC,WAAW,EAAE,OAAO,CAAC,GACpD,IAAI;IAOP;;;;;;;;;;;OAWG;IACI,KAAK,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,CAAC,GAAG,OAAO,EACzC,UAAU,EAAE,CAAC,EACb,IAAI,EAAE,mBAAmB,CAAC,WAAW,EAAE,CAAC,CAAC,EACzC,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,CAAC,CAAA;KAAE,GACxB,IAAI;IAaP;;;;;;;;;;;OAWG;IACI,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,CAAC,GAAG,OAAO,EAC1C,UAAU,EAAE,CAAC,EACb,IAAI,EAAE,mBAAmB,CAAC,WAAW,EAAE,CAAC,CAAC,EACzC,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,CAAC,CAAA;KAAE,GACxB,IAAI;IAeA,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC,GAAG,OAAO;IAGrD;;;;;;;;;;;;;;;OAeG;IACI,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,EAC1B,UAAU,EAAE,CAAC,EACb,GAAG,IAAI,EAAE,MAAM,GACd,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;CAqK9B;AAED,OAAO,EAAE,SAAS,EAAE,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import type { Context, ExtendableInternalActions, GetState, RegisteredNamespaces, SetState } from './types.js';
2
2
  import type { FindProxiedNamespace } from '../../builders/mod.js';
3
3
  import type { ProviderConfig, ProviderInfo, Store } from '../store/mod.js';
4
- import type { AnyFunction, FunctionWithContext } from '../types.js';
4
+ import type { AnyFunction, FunctionWithContext, WalletType } from '../types.js';
5
5
  /**
6
6
  * A `Provider` represents one wallet/integration and owns the set of namespaces
7
7
  * that wallet exposes (e.g. `evm`, `solana`).
@@ -14,9 +14,9 @@ import type { AnyFunction, FunctionWithContext } from '../types.js';
14
14
  */
15
15
  export declare class Provider<TNS = unknown> {
16
16
  #private;
17
- readonly id: string;
17
+ readonly id: WalletType;
18
18
  readonly version = "1.0";
19
- constructor(id: string, namespaces: RegisteredNamespaces<TNS>, configs: ProviderConfig<TNS>, options?: {
19
+ constructor(id: WalletType, namespaces: RegisteredNamespaces<TNS>, configs: ProviderConfig<TNS>, options?: {
20
20
  /**
21
21
  * There are some cases we need to have a behavior like initializing a provider which will be run when we are creating an instance.
22
22
  * These internal steps and behaviors will be useful for library user to extend the behavior by running a specific code.
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/hub/provider/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,yBAAyB,EACzB,QAAQ,EACR,oBAAoB,EACpB,QAAQ,EAET,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAIpE;;;;;;;;;GASG;AACH,qBAAa,QAAQ,CAAC,GAAG,GAAG,OAAO;;IACjC,SAAgB,EAAE,EAAE,MAAM,CAAC;IAC3B,SAAgB,OAAO,SAAW;gBAShC,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,oBAAoB,CAAC,GAAG,CAAC,EACrC,OAAO,EAAE,cAAc,CAAC,GAAG,CAAC,EAC5B,OAAO,CAAC,EAAE;QACR;;;WAGG;QACH,qBAAqB,CAAC,EAAE,yBAAyB,CAAC;QAClD,KAAK,CAAC,EAAE,KAAK,CAAC;KACf;IAkBH;;;;;;;;;;;;;;;OAeG;IACI,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI;IAajC;;;;;;;;;;;;OAYG;IACI,KAAK,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAyCpC;;;;OAIG;IACI,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAWhC;;OAEG;IACI,IAAI,IAAI,YAAY,CAAC,GAAG,CAAC,GAAG,SAAS;IAU5C;;OAEG;IACI,MAAM,IAAI,oBAAoB,CAAC,GAAG,CAAC;IAI1C;;;;;;;OAOG;IACI,GAAG,CAAC,CAAC,SAAS,MAAM,GAAG,EAC5B,EAAE,EAAE,CAAC,GACJ,oBAAoB,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,SAAS;IAI3C;;;;;;;;;;OAUG;IACI,eAAe,CACpB,mBAAmB,EAAE,MAAM,GAC1B,oBAAoB,CAAC,MAAM,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS;IAYnD;;OAEG;IACI,MAAM,CACX,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,mBAAmB,CAAC,WAAW,EAAE,OAAO,CAAC,GAChD,IAAI;IAKP;;OAEG;IACI,KAAK,CACV,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,mBAAmB,CAAC,WAAW,EAAE,OAAO,CAAC,GAChD,IAAI;CA+CR"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/hub/provider/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,yBAAyB,EACzB,QAAQ,EACR,oBAAoB,EACpB,QAAQ,EAET,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAIhF;;;;;;;;;GASG;AACH,qBAAa,QAAQ,CAAC,GAAG,GAAG,OAAO;;IACjC,SAAgB,EAAE,EAAE,UAAU,CAAC;IAC/B,SAAgB,OAAO,SAAW;gBAShC,EAAE,EAAE,UAAU,EACd,UAAU,EAAE,oBAAoB,CAAC,GAAG,CAAC,EACrC,OAAO,EAAE,cAAc,CAAC,GAAG,CAAC,EAC5B,OAAO,CAAC,EAAE;QACR;;;WAGG;QACH,qBAAqB,CAAC,EAAE,yBAAyB,CAAC;QAClD,KAAK,CAAC,EAAE,KAAK,CAAC;KACf;IAkBH;;;;;;;;;;;;;;;OAeG;IACI,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI;IAajC;;;;;;;;;;;;OAYG;IACI,KAAK,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAyCpC;;;;OAIG;IACI,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAWhC;;OAEG;IACI,IAAI,IAAI,YAAY,CAAC,GAAG,CAAC,GAAG,SAAS;IAU5C;;OAEG;IACI,MAAM,IAAI,oBAAoB,CAAC,GAAG,CAAC;IAI1C;;;;;;;OAOG;IACI,GAAG,CAAC,CAAC,SAAS,MAAM,GAAG,EAC5B,EAAE,EAAE,CAAC,GACJ,oBAAoB,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,SAAS;IAI3C;;;;;;;;;;OAUG;IACI,eAAe,CACpB,mBAAmB,EAAE,MAAM,GAC1B,oBAAoB,CAAC,MAAM,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS;IAYnD;;OAEG;IACI,MAAM,CACX,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,mBAAmB,CAAC,WAAW,EAAE,OAAO,CAAC,GAChD,IAAI;IAKP;;OAEG;IACI,KAAK,CACV,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,mBAAmB,CAAC,WAAW,EAAE,OAAO,CAAC,GAChD,IAAI;CA+CR"}
@@ -1,44 +1,45 @@
1
+ import type { WalletType } from '../types.js';
1
2
  export type NamespaceDisconnectedEvent = {
2
3
  type: 'namespace_disconnected';
3
- provider: string;
4
+ provider: WalletType;
4
5
  namespace: string;
5
6
  };
6
7
  export type NamespaceConnectedEvent = {
7
8
  type: 'namespace_connected';
8
- provider: string;
9
+ provider: WalletType;
9
10
  namespace: string;
10
11
  accounts: string[];
11
12
  };
12
13
  export type NamespaceSwitchedAccountEvent = {
13
14
  type: 'namespace_account_switched';
14
- provider: string;
15
+ provider: WalletType;
15
16
  namespace: string;
16
17
  accounts: string[];
17
18
  previousAccounts: string[];
18
19
  };
19
20
  export type NamespaceSwitchedNetworkEvent = {
20
21
  type: 'namespace_network_switched';
21
- provider: string;
22
+ provider: WalletType;
22
23
  namespace: string;
23
24
  network: string;
24
25
  previousNetwork: string | null;
25
26
  };
26
27
  export type ProviderDetectedEvent = {
27
28
  type: 'provider_detected';
28
- provider: string;
29
+ provider: WalletType;
29
30
  };
30
31
  export type ProviderConnectingEvent = {
31
32
  type: 'provider_connecting';
32
- provider: string;
33
+ provider: WalletType;
33
34
  value: boolean;
34
35
  };
35
36
  export type ProviderConnectedEvent = {
36
37
  type: 'provider_connected';
37
- provider: string;
38
+ provider: WalletType;
38
39
  };
39
40
  export type ProviderDisconnectedEvent = {
40
41
  type: 'provider_disconnected';
41
- provider: string;
42
+ provider: WalletType;
42
43
  };
43
44
  export type Event = NamespaceDisconnectedEvent | NamespaceConnectedEvent | NamespaceSwitchedAccountEvent | NamespaceSwitchedNetworkEvent | ProviderDetectedEvent | ProviderConnectingEvent | ProviderConnectedEvent | ProviderDisconnectedEvent;
44
45
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/hub/store/events.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,EAAE,wBAAwB,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,IAAI,EAAE,4BAA4B,CAAC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,IAAI,EAAE,4BAA4B,CAAC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,IAAI,EAAE,uBAAuB,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,KAAK,GACb,0BAA0B,GAC1B,uBAAuB,GACvB,6BAA6B,GAC7B,6BAA6B,GAC7B,qBAAqB,GACrB,uBAAuB,GACvB,sBAAsB,GACtB,yBAAyB,CAAC;AAE9B;;;;GAIG;AACH,qBAAa,gBAAgB;;IAG3B,IAAI,CAAC,GAAG,EAAE,KAAK;IAIf,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC;CAgBrC"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/hub/store/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,EAAE,wBAAwB,CAAC;IAC/B,QAAQ,EAAE,UAAU,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,QAAQ,EAAE,UAAU,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,IAAI,EAAE,4BAA4B,CAAC;IACnC,QAAQ,EAAE,UAAU,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,IAAI,EAAE,4BAA4B,CAAC;IACnC,QAAQ,EAAE,UAAU,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,QAAQ,EAAE,UAAU,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,QAAQ,EAAE,UAAU,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,QAAQ,EAAE,UAAU,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,IAAI,EAAE,uBAAuB,CAAC;IAC9B,QAAQ,EAAE,UAAU,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,KAAK,GACb,0BAA0B,GAC1B,uBAAuB,GACvB,6BAA6B,GAC7B,6BAA6B,GAC7B,qBAAqB,GACrB,uBAAuB,GACvB,sBAAsB,GACtB,yBAAyB,CAAC;AAE9B;;;;GAIG;AACH,qBAAa,gBAAgB;;IAG3B,IAAI,CAAC,GAAG,EAAE,KAAK;IAIf,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC;CAgBrC"}
@@ -2,7 +2,7 @@ export { guessProviderStateSelector, namespaceStateSelector, } from './selectors
2
2
  export type { Store } from './extend.js';
3
3
  export type { State } from './store.js';
4
4
  export type { Event, ProviderDetectedEvent, ProviderConnectingEvent, ProviderConnectedEvent, ProviderDisconnectedEvent, NamespaceDisconnectedEvent, NamespaceConnectedEvent, NamespaceSwitchedAccountEvent, } from './events.js';
5
- export type { ProviderMetadata, ProviderConfig, ProviderInfo, ProviderProperty, } from './providers.js';
5
+ export type { ProviderMetadata, ProviderConfig, ProviderInfo, ProviderProperty, NamespacesProperty, DerivationPathProperty, } from './providers.js';
6
6
  export type { NamespaceConfig, NamespaceData } from './namespaces.js';
7
7
  export { createStore } from './store.js';
8
8
  //# sourceMappingURL=mod.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../src/hub/store/mod.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,YAAY,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,YAAY,EACV,KAAK,EAEL,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,EAEzB,0BAA0B,EAC1B,uBAAuB,EACvB,6BAA6B,GAC9B,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../src/hub/store/mod.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,YAAY,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,YAAY,EACV,KAAK,EAEL,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,EAEzB,0BAA0B,EAC1B,uBAAuB,EACvB,6BAA6B,GAC9B,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}
@@ -1,2 +1,2 @@
1
- var E=Object.defineProperty;var o=(i,r)=>E(i,"name",{value:r,configurable:!0});function d(i,r){let e=i.namespaces.list,n=Object.keys(e).filter(c=>e[c].info.providerId===r),a=!!i.providers.list[r]?.data.installed,t=n.length>0?n.some(c=>e[c].data.connected):!1,s=n.length>0?n.some(c=>e[c].data.connecting):!1;return{installed:a,connected:t,connecting:s}}o(d,"guessProviderStateSelector");function S(i,r){return i.namespaces.list[r].data}o(S,"namespaceStateSelector");import{createStore as h}from"zustand/vanilla";function f(i){let r=o(e=>n=>{let a=o((t,s,c)=>{for(let p of t)n(p,s,c)},"executeListener");return e.subscribe((t,s)=>{let c=x(t,s),m=[...l(t),...c];a(m,t,s)}),{flushEvents:o(()=>{let t=e.getState(),s=l(t);a(s,t,t)},"flushEvents")}},"extendedSubscribe");return new Proxy(i,{get:o(function(e,n,a){return n==="subscribe"?r(e):Reflect.get(e,n,a)},"get")})}o(f,"extend");function l(i){return[...i.providers.events,...i.namespaces.events]}o(l,"tryConsumeEvents");function x(i,r){let e=[];for(let n of Object.keys(i.providers.list)){let a=d(i,n),t=d(r,n);if(t.connecting!==a.connecting){let s={type:"provider_connecting",provider:n,value:a.connecting};e.push(s)}if(!t.connected&&a.connected){let s={type:"provider_connected",provider:n};e.push(s)}if(t.connected&&!a.connected){let s={type:"provider_disconnected",provider:n};e.push(s)}}return e}o(x,"getEventsLike");var y=o(()=>({config:{}}),"hubStore");import{produce as g}from"immer";var v=class{static{o(this,"ConsumableEvents")}#e=[];push(r){this.#e.push(r)}[Symbol.iterator](){return{next:o(()=>this.#e.length==0?{done:!0,value:void 0}:{done:!1,value:this.#e.shift()},"next")}}};var P=o((i,r)=>({events:new v,list:{},addNamespace:o((e,n)=>{let t={data:{accounts:null,network:null,connected:!1,connecting:!1,connectArgs:null},error:"",info:n};i(g(s=>{s.namespaces.list[e]=t}))},"addNamespace"),updateStatus:o((e,n,a)=>{let t=r().namespaces.list[e];if(!t)throw new Error(`No namespace with '${e}' found.`);r().namespaces._produceEventsWhenUpdatingStatus(t,e,n,a),i(g(s=>{s.namespaces.list[e].data[n]=a}))},"updateStatus"),getNamespaceData(e){return S(r(),e)},_produceEventsWhenUpdatingStatus:o((e,n,a,t)=>{if(a==="accounts")if(Object.is(t,null)||Array.isArray(t)&&t.length===0){if(r().namespaces.list[n].data.connected){let p={type:"namespace_disconnected",provider:e.info.providerId,namespace:e.info.namespaceId};r().namespaces.events.push(p)}}else{let c=r().namespaces.list[n].data.accounts;if(c){if(!([...c].sort().toString()===t.sort().toString())){let m={type:"namespace_account_switched",provider:e.info.providerId,namespace:e.info.namespaceId,previousAccounts:c,accounts:t};r().namespaces.events.push(m)}}else{let p={type:"namespace_connected",provider:e.info.providerId,namespace:e.info.namespaceId,accounts:t};r().namespaces.events.push(p)}}else if(a==="network"){let s=r().namespaces.list[n].data.network,c={type:"namespace_network_switched",provider:e.info.providerId,namespace:e.info.namespaceId,network:t,previousNetwork:s};r().namespaces.events.push(c)}},"_produceEventsWhenUpdatingStatus")}),"namespacesStore");import{produce as u}from"immer";var N=o((i,r)=>({events:new v,list:{},addProvider:o((e,n)=>{let a={data:{installed:!1},error:"",config:n};i(u(t=>{t.providers.list[e]=a}))},"addProvider"),removeProvider:o(e=>{i(u(n=>{delete n.providers.list[e]}))},"removeProvider"),updateStatus:o((e,n,a)=>{let t=r().providers.list[e];if(!t)throw new Error(`No namespace namespace with '${e}' found.`);r().providers._produceEventsWhenUpdatingStatus(t,e,n,a),i(u(s=>{s.providers.list[e].data[n]=a}))},"updateStatus"),guessNamespacesState:o(e=>d(r(),e),"guessNamespacesState"),_produceEventsWhenUpdatingStatus:o((e,n,a,t)=>{if(a==="installed"){let s={type:"provider_detected",provider:n};r().providers.events.push(s)}},"_produceEventsWhenUpdatingStatus")}),"providersStore");var w=o(()=>{let i=h((...r)=>({hub:y(...r),providers:N(...r),namespaces:P(...r)}));return f(i)},"createStore");export{w as createStore,d as guessProviderStateSelector,S as namespaceStateSelector};
1
+ var E=Object.defineProperty;var n=(i,r)=>E(i,"name",{value:r,configurable:!0});function d(i,r){let e=i.namespaces.list,o=Object.keys(e).filter(c=>e[c].info.providerId===r),a=!!i.providers.list[r]?.data.installed,t=o.length>0?o.some(c=>e[c].data.connected):!1,s=o.length>0?o.some(c=>e[c].data.connecting):!1;return{installed:a,connected:t,connecting:s}}n(d,"guessProviderStateSelector");function l(i,r){return i.namespaces.list[r].data}n(l,"namespaceStateSelector");import{createStore as x}from"zustand/vanilla";function y(i){let r=n(e=>o=>{let a=n((t,s,c)=>{for(let p of t)o(p,s,c)},"executeListener");return e.subscribe((t,s)=>{let c=h(t,s),m=[...u(t),...c];a(m,t,s)}),{flushEvents:n(()=>{let t=e.getState(),s=u(t);a(s,t,t)},"flushEvents")}},"extendedSubscribe");return new Proxy(i,{get:n(function(e,o,a){return o==="subscribe"?r(e):Reflect.get(e,o,a)},"get")})}n(y,"extend");function u(i){return[...i.providers.events,...i.namespaces.events]}n(u,"tryConsumeEvents");function h(i,r){let e=[];for(let o of Object.keys(i.providers.list)){let a=d(i,o),t=d(r,o);if(t.connecting!==a.connecting){let s={type:"provider_connecting",provider:o,value:a.connecting};e.push(s)}if(!t.connected&&a.connected){let s={type:"provider_connected",provider:o};e.push(s)}if(t.connected&&!a.connected){let s={type:"provider_disconnected",provider:o};e.push(s)}}return e}n(h,"getEventsLike");var f=n(()=>({config:{}}),"hubStore");import{produce as P}from"immer";var v=class{static{n(this,"ConsumableEvents")}#e=[];push(r){this.#e.push(r)}[Symbol.iterator](){return{next:n(()=>this.#e.length==0?{done:!0,value:void 0}:{done:!1,value:this.#e.shift()},"next")}}};var g=n((i,r)=>({events:new v,list:{},addNamespace:n((e,o)=>{let t={data:{accounts:null,network:null,connected:!1,connecting:!1,connectArgs:null},error:"",info:o};i(P(s=>{s.namespaces.list[e]=t}))},"addNamespace"),updateStatus:n((e,o,a)=>{let t=r().namespaces.list[e];if(!t)throw new Error(`No namespace with '${e}' found.`);r().namespaces._produceEventsWhenUpdatingStatus(t,e,o,a),i(P(s=>{s.namespaces.list[e].data[o]=a}))},"updateStatus"),getNamespaceData(e){return l(r(),e)},_produceEventsWhenUpdatingStatus:n((e,o,a,t)=>{if(a==="accounts")if(Object.is(t,null)||Array.isArray(t)&&t.length===0){if(r().namespaces.list[o].data.connected){let p={type:"namespace_disconnected",provider:e.info.providerId,namespace:e.info.namespaceId};r().namespaces.events.push(p)}}else{let c=r().namespaces.list[o].data.accounts;if(c){if(!([...c].sort().toString()===t.sort().toString())){let m={type:"namespace_account_switched",provider:e.info.providerId,namespace:e.info.namespaceId,previousAccounts:c,accounts:t};r().namespaces.events.push(m)}}else{let p={type:"namespace_connected",provider:e.info.providerId,namespace:e.info.namespaceId,accounts:t};r().namespaces.events.push(p)}}else if(a==="network"){let s=r().namespaces.list[o].data.network,c={type:"namespace_network_switched",provider:e.info.providerId,namespace:e.info.namespaceId,network:t,previousNetwork:s};r().namespaces.events.push(c)}},"_produceEventsWhenUpdatingStatus")}),"namespacesStore");import{produce as S}from"immer";var N=n((i,r)=>({events:new v,list:{},addProvider:n((e,o)=>{let a={data:{installed:!1},error:"",config:o};i(S(t=>{t.providers.list[e]=a}))},"addProvider"),removeProvider:n(e=>{i(S(o=>{delete o.providers.list[e]}))},"removeProvider"),updateStatus:n((e,o,a)=>{let t=r().providers.list[e];if(!t)throw new Error(`No namespace namespace with '${e}' found.`);r().providers._produceEventsWhenUpdatingStatus(t,e,o,a),i(S(s=>{s.providers.list[e].data[o]=a}))},"updateStatus"),guessNamespacesState:n(e=>d(r(),e),"guessNamespacesState"),_produceEventsWhenUpdatingStatus:n((e,o,a,t)=>{if(a==="installed"){let s={type:"provider_detected",provider:o};r().providers.events.push(s)}},"_produceEventsWhenUpdatingStatus")}),"providersStore");var w=n(()=>{let i=x((...r)=>({hub:f(...r),providers:N(...r),namespaces:g(...r)}));return y(i)},"createStore");export{w as createStore,d as guessProviderStateSelector,l as namespaceStateSelector};
2
2
  //# sourceMappingURL=mod.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/hub/store/selectors.ts", "../../../src/hub/store/store.ts", "../../../src/hub/store/extend.ts", "../../../src/hub/store/hub.ts", "../../../src/hub/store/namespaces.ts", "../../../src/hub/store/events.ts", "../../../src/hub/store/providers.ts"],
4
- "sourcesContent": ["/**\n * Note: Zustand has some difficulty when you are trying to `previous` state on `subscribe`.\n * If these selectors define inside store directly and use `get()` for accessing state, it will get the latest state\n * instead of previous state which desired.\n * So make them a helper will let us to reuse them both in store and outside of store in a `subscribe`.\n */\nimport type { State } from '../mod.js';\nimport type { State as InternalProviderState } from '../provider/mod.js';\n\n/**\n * Legacy provider state includes `connecting` and `connected` values. It hadn't a separation layer for `namespaces`.\n * For compatibility reasons, we should produce these two values somehow.\n *\n * Currently, We return `true` if any of namespaces return true. We are missing failed namespace here.\n * But if we want to solve that, we should migrate our client code to use `namespace` state directly and not from `provider`\n */\nexport function guessProviderStateSelector(\n state: State,\n providerId: string,\n): InternalProviderState {\n /*\n * We keep namespaces in a separate branch than providers.\n * We should look at all of them and find all the namespaces that for our current proivder.\n */\n const allNamespaces = state.namespaces.list;\n const currentProviderNamespaces = Object.keys(allNamespaces).filter(\n (key) => allNamespaces[key].info.providerId === providerId,\n );\n\n // Returning provider state value directly.\n const installed = !!state.providers.list[providerId]?.data.installed;\n\n /*\n * If any namespaces returns `true`, we consider the whole provider for this field to be `true`.\n * it has a downside regarding errors which explained on top of the function.\n */\n const connected =\n currentProviderNamespaces.length > 0\n ? currentProviderNamespaces.some(\n (key) => allNamespaces[key].data.connected,\n )\n : false;\n const connecting =\n currentProviderNamespaces.length > 0\n ? currentProviderNamespaces.some(\n (key) => allNamespaces[key].data.connecting,\n )\n : false;\n\n return {\n installed,\n connected,\n connecting,\n };\n}\n\nexport function namespaceStateSelector(state: State, storeId: string) {\n return state.namespaces.list[storeId].data;\n}\n", "import type { StoreApi } from 'zustand/vanilla';\n\nimport { createStore as createZustandStore } from 'zustand/vanilla';\n\nimport { extend, type Store } from './extend.js';\nimport { hubStore, type HubStore } from './hub.js';\nimport { namespacesStore, type NamespaceStore } from './namespaces.js';\nimport { providersStore, type ProviderStore } from './providers.js';\n\n/************ State ************/\n\nexport interface State {\n hub: HubStore;\n providers: ProviderStore;\n namespaces: NamespaceStore;\n}\n\nexport type RawStore = StoreApi<State>;\n\nexport const createStore = (): Store => {\n const store = createZustandStore<State>((...api) => {\n return {\n hub: hubStore(...api),\n providers: providersStore(...api),\n namespaces: namespacesStore(...api),\n };\n });\n\n return extend(store);\n};\n", "import type {\n Event,\n ProviderConnectedEvent,\n ProviderConnectingEvent,\n ProviderDisconnectedEvent,\n} from './events.js';\nimport type { RawStore, State } from './store.js';\n\nimport { guessProviderStateSelector } from './selectors.js';\n\nexport interface Store extends Omit<RawStore, 'subscribe'> {\n subscribe(listener: (event: Event, state: State, prevState: State) => void): {\n flushEvents(): void;\n };\n}\n\n/**\n * Zustand's store provides a set of built-in functionalities,\n * but it may not meet all our requirements.\n * This function modifies the interface and adds or updates the available methods.\n */\nexport function extend(store: RawStore): Store {\n const extendedSubscribe: (store: RawStore) => Store['subscribe'] =\n (store) => (listener) => {\n const executeListener = (\n events: Event[],\n state: State,\n prevState: State,\n ) => {\n for (const ev of events) {\n listener(ev, state, prevState);\n }\n };\n\n /*\n * only known changes will fire event for lib users\n * so all the changes in store won't trigger a user-face event\n */\n store.subscribe((state, prevState) => {\n const eventsLike = getEventsLike(state, prevState);\n const events = tryConsumeEvents(state);\n const allQueuedEvents = [...events, ...eventsLike];\n executeListener(allQueuedEvents, state, prevState);\n });\n\n return {\n /**\n * Manually run pending events.\n * This useful when use `subscribe` method after sometime and when store initialized.\n *\n * Note: Please consider both current and previous state will be same and we don't have access to previous state in a such scenario.\n */\n flushEvents: () => {\n const state = store.getState();\n const events = tryConsumeEvents(state);\n executeListener(events, state, state);\n },\n };\n };\n\n return new Proxy(store, {\n get: function (target, prop, receiver) {\n if (prop === 'subscribe') {\n return extendedSubscribe(target);\n }\n return Reflect.get(target, prop, receiver);\n },\n }) as unknown as Store;\n}\n\n/**\n * Retrieves the ConsumableEvent from the store and returns its values.\n * The values will be consumed by iterating over the field.\n */\nfunction tryConsumeEvents(state: State): Event[] {\n return [...state.providers.events, ...state.namespaces.events];\n}\n\n/**\n * In certain cases, adding events to the store is not possible (e.g., namespace or provider layer).\n * In these cases, we observe store changes and treat specific patterns as events when detected.\n *\n * Note: This approach should be avoided in most cases. It is used here to maintain backward compatibility\n * with the provider's legacy interface.\n */\nfunction getEventsLike(state: State, prevState: State): Event[] {\n const events: Event[] = [];\n\n for (const providerId of Object.keys(state.providers.list)) {\n const currentProviderState = guessProviderStateSelector(state, providerId);\n const previousProviderState = guessProviderStateSelector(\n prevState,\n providerId,\n );\n\n if (previousProviderState.connecting !== currentProviderState.connecting) {\n const ev: ProviderConnectingEvent = {\n type: 'provider_connecting',\n provider: providerId,\n value: currentProviderState.connecting,\n };\n events.push(ev);\n }\n\n if (!previousProviderState.connected && currentProviderState.connected) {\n const ev: ProviderConnectedEvent = {\n type: 'provider_connected',\n provider: providerId,\n };\n\n events.push(ev);\n }\n\n if (previousProviderState.connected && !currentProviderState.connected) {\n const ev: ProviderDisconnectedEvent = {\n type: 'provider_disconnected',\n provider: providerId,\n };\n\n events.push(ev);\n }\n }\n\n return events;\n}\n", "/************ Hub ************/\n\nimport type { State } from './mod.js';\nimport type { StateCreator } from 'zustand';\n\ntype HubConfig = object;\n\nexport interface HubStore {\n config: HubConfig;\n}\n\ntype HubStateCreator = StateCreator<State, [], [], HubStore>;\n\nconst hubStore: HubStateCreator = () => ({\n config: {},\n});\n\nexport { hubStore };\n", "/************ Namespace ************/\n\nimport type { StateCreator } from 'zustand';\n\nimport { produce } from 'immer';\n\nimport {\n ConsumableEvents,\n type NamespaceConnectedEvent,\n type NamespaceDisconnectedEvent,\n type NamespaceSwitchedAccountEvent,\n type NamespaceSwitchedNetworkEvent,\n} from './events.js';\nimport { namespaceStateSelector, type State } from './mod.js';\n\n// Currently, namespace doesn't has any config.\nexport type NamespaceConfig = object;\n\nexport interface NamespaceData {\n accounts: null | string[];\n network: null | string;\n connected: boolean;\n connecting: boolean;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n connectArgs: Record<string, any> | null;\n}\n\ninterface NamespaceInfo {\n providerId: string;\n namespaceId: string;\n}\n\ninterface NamespaceItem {\n info: NamespaceInfo;\n data: NamespaceData;\n error: unknown;\n}\n\ntype NamespaceState = {\n events: InstanceType<typeof ConsumableEvents>;\n list: Record<string, NamespaceItem>;\n};\n\ninterface NamespaceActions {\n addNamespace: (id: string, config: NamespaceInfo) => void;\n updateStatus: <K extends keyof NamespaceData>(\n id: string,\n key: K,\n value: NamespaceData[K],\n ) => void;\n\n _produceEventsWhenUpdatingStatus: <K extends keyof NamespaceData>(\n namespace: NamespaceItem,\n id: string,\n key: K,\n value: NamespaceData[K],\n ) => void;\n}\ninterface NamespaceSelectors {\n getNamespaceData(storeId: string): NamespaceData;\n}\n\nexport type NamespaceStore = NamespaceState &\n NamespaceActions &\n NamespaceSelectors;\ntype NamespaceStateCreator = StateCreator<State, [], [], NamespaceStore>;\n\nconst namespacesStore: NamespaceStateCreator = (set, get) => ({\n events: new ConsumableEvents(),\n\n list: {},\n addNamespace: (id, info) => {\n const data: NamespaceData = {\n accounts: null,\n network: null,\n connected: false,\n connecting: false,\n connectArgs: null,\n };\n\n const item = {\n data,\n error: '',\n info,\n };\n\n set(\n produce((state: State) => {\n state.namespaces.list[id] = item;\n }),\n );\n },\n updateStatus: (id, key, value) => {\n const ns = get().namespaces.list[id];\n if (!ns) {\n throw new Error(`No namespace with '${id}' found.`);\n }\n\n get().namespaces._produceEventsWhenUpdatingStatus(ns, id, key, value);\n\n // Updating state\n set(\n produce((state: State) => {\n state.namespaces.list[id].data[key] = value;\n }),\n );\n },\n getNamespaceData(storeId) {\n return namespaceStateSelector(get(), storeId);\n },\n\n _produceEventsWhenUpdatingStatus: (namespace, id, key, value) => {\n if (key === 'accounts') {\n // check for both null and empty array\n const isAccountsEmpty =\n Object.is(value, null) || (Array.isArray(value) && value.length === 0);\n\n if (isAccountsEmpty) {\n const currentConnectedStatus = get().namespaces.list[id].data.connected;\n if (currentConnectedStatus) {\n const event: NamespaceDisconnectedEvent = {\n type: 'namespace_disconnected',\n provider: namespace.info.providerId,\n namespace: namespace.info.namespaceId,\n };\n\n get().namespaces.events.push(event);\n }\n // Skip emitting disconnect event, if the `connected` is false\n } else {\n const currentAccounts = get().namespaces.list[id].data.accounts;\n\n if (!currentAccounts) {\n const event: NamespaceConnectedEvent = {\n type: 'namespace_connected',\n provider: namespace.info.providerId,\n namespace: namespace.info.namespaceId,\n accounts: value as string[],\n };\n\n get().namespaces.events.push(event);\n } else {\n const areSameAccounts =\n // Clone the object from the Zustand store, as it's immutable, to avoid errors during sorting.\n [...currentAccounts].sort().toString() ===\n (value as string[]).sort().toString();\n\n if (!areSameAccounts) {\n const event: NamespaceSwitchedAccountEvent = {\n type: 'namespace_account_switched',\n provider: namespace.info.providerId,\n namespace: namespace.info.namespaceId,\n previousAccounts: currentAccounts,\n accounts: value as string[],\n };\n\n get().namespaces.events.push(event);\n }\n }\n }\n } else if (key === 'network') {\n const currentNetwork = get().namespaces.list[id].data.network;\n\n const event: NamespaceSwitchedNetworkEvent = {\n type: 'namespace_network_switched',\n provider: namespace.info.providerId,\n namespace: namespace.info.namespaceId,\n network: value as string,\n previousNetwork: currentNetwork,\n };\n\n get().namespaces.events.push(event);\n }\n },\n});\n\nexport { namespacesStore };\n", "export type NamespaceDisconnectedEvent = {\n type: 'namespace_disconnected';\n provider: string;\n namespace: string;\n};\n\nexport type NamespaceConnectedEvent = {\n type: 'namespace_connected';\n provider: string;\n namespace: string;\n accounts: string[];\n};\n\nexport type NamespaceSwitchedAccountEvent = {\n type: 'namespace_account_switched';\n provider: string;\n namespace: string;\n accounts: string[];\n previousAccounts: string[];\n};\n\nexport type NamespaceSwitchedNetworkEvent = {\n type: 'namespace_network_switched';\n provider: string;\n namespace: string;\n network: string;\n previousNetwork: string | null;\n};\n\nexport type ProviderDetectedEvent = {\n type: 'provider_detected';\n provider: string;\n};\n\nexport type ProviderConnectingEvent = {\n type: 'provider_connecting';\n provider: string;\n value: boolean;\n};\n\nexport type ProviderConnectedEvent = {\n type: 'provider_connected';\n provider: string;\n};\n\nexport type ProviderDisconnectedEvent = {\n type: 'provider_disconnected';\n provider: string;\n};\n\nexport type Event =\n | NamespaceDisconnectedEvent\n | NamespaceConnectedEvent\n | NamespaceSwitchedAccountEvent\n | NamespaceSwitchedNetworkEvent\n | ProviderDetectedEvent\n | ProviderConnectingEvent\n | ProviderConnectedEvent\n | ProviderDisconnectedEvent;\n\n/**\n *\n * Keeping an array of Event and when iterates over its values, it will be removed (consume) from the array.\n *\n */\nexport class ConsumableEvents {\n #data: Event[] = [];\n\n push(val: Event) {\n this.#data.push(val);\n }\n\n [Symbol.iterator](): Iterator<Event> {\n return {\n next: (): IteratorResult<Event> => {\n if (this.#data.length == 0) {\n return { done: true, value: undefined };\n }\n\n // Typescript can not narrow the type, but we have a runtime check to ensure it will never be an empty list\n const value = this.#data.shift()!;\n return {\n done: false,\n value,\n };\n },\n };\n }\n}\n", "import type { State as InternalProviderState } from '../provider/mod.js';\nimport type { SignerFactory } from 'rango-types';\nimport type { StateCreator } from 'zustand';\n\nimport { produce } from 'immer';\n\nimport { ConsumableEvents, type ProviderDetectedEvent } from './events.js';\nimport { guessProviderStateSelector, type State } from './mod.js';\n\ntype Browsers = 'firefox' | 'chrome' | 'edge' | 'brave' | 'homepage';\n\ntype Property<N extends string, V> = { name: N; value: V };\n\n/**\n * The set of namespace keys a provider registered. Falls back to `string` when\n * `TNS` is empty (e.g., `.config('metadata', ...)` was called before any\n * `.add()`), so the metadata can still be written. After `.add()` calls\n * accumulate, this narrows to exactly the registered keys.\n */\ntype RegisteredKey<TNS> = [keyof TNS] extends [never]\n ? string\n : keyof TNS & string;\n\nexport type NamespacesProperty<TNS = unknown> = Property<\n 'namespaces',\n {\n selection: 'single' | 'multiple';\n data: {\n label: string;\n id: string;\n value: RegisteredKey<TNS>;\n unsupported?: boolean;\n isChainSupported: (chainId: string) => boolean;\n }[];\n }\n>;\n\nexport type DerivationPathProperty<TNS = unknown> = Property<\n 'derivationPath',\n {\n data: {\n id: string;\n label: string;\n namespace: RegisteredKey<TNS>;\n generateDerivationPath: (index: string) => string;\n }[];\n }\n>;\n\nexport type DetailsProperty = Property<\n 'details',\n {\n mobileWallet?: boolean;\n showOnMobile?: boolean;\n isContractWallet?: boolean;\n }\n>;\n\nexport type SignersProperty = Property<\n 'signers',\n {\n getSigners: () => Promise<SignerFactory>;\n }\n>;\n\nexport type ProviderProperty<TNS = unknown> =\n | NamespacesProperty<TNS>\n | DerivationPathProperty<TNS>\n | DetailsProperty\n | SignersProperty;\n\nexport interface ProviderMetadata<TNS = unknown> {\n name: string;\n icon: string;\n extensions: Partial<Record<Browsers, string>>;\n properties?: ProviderProperty<TNS>[];\n}\n\nexport interface ProviderConfig<TNS = unknown> {\n metadata: ProviderMetadata<TNS>;\n}\n\nexport type ProviderInfo<TNS = unknown> = ProviderConfig<TNS>;\n\ninterface ProviderData {\n installed: boolean;\n}\n\ninterface ProviderItem {\n config: ProviderConfig;\n data: ProviderData;\n error: unknown;\n}\n\ntype ProviderState = {\n events: ConsumableEvents;\n list: Record<string, ProviderItem>;\n};\ninterface ProviderActions {\n addProvider: (id: string, config: ProviderConfig) => void;\n removeProvider: (id: string) => void;\n updateStatus: <K extends keyof ProviderData>(\n id: string,\n key: K,\n value: ProviderData[K],\n ) => void;\n\n _produceEventsWhenUpdatingStatus: <K extends keyof ProviderData>(\n provider: ProviderItem,\n id: string,\n key: K,\n value: ProviderData[K],\n ) => void;\n}\n\ninterface ProviderSelectors {\n /**\n * Provider has a limited state to itself, to be compatible with legacy, we try to produce same object as legacy\n * which includes namespace state as well.\n */\n guessNamespacesState: (id: string) => InternalProviderState;\n}\n\nexport type ProviderStore = ProviderState & ProviderActions & ProviderSelectors;\ntype ProvidersStateCreator = StateCreator<State, [], [], ProviderStore>;\n\nconst providersStore: ProvidersStateCreator = (set, get) => ({\n events: new ConsumableEvents(),\n\n list: {},\n addProvider: (id, config) => {\n const item = {\n data: {\n installed: false,\n },\n error: '',\n config,\n };\n\n set(\n produce((state: State) => {\n state.providers.list[id] = item;\n }),\n );\n },\n removeProvider: (id) => {\n set(\n produce((state: State) => {\n delete state.providers.list[id];\n }),\n );\n },\n updateStatus: (id, key, value) => {\n const provider = get().providers.list[id];\n if (!provider) {\n throw new Error(`No namespace namespace with '${id}' found.`);\n }\n\n get().providers._produceEventsWhenUpdatingStatus(provider, id, key, value);\n\n set(\n produce((state: State) => {\n state.providers.list[id].data[key] = value;\n }),\n );\n },\n guessNamespacesState: (providerId: string): InternalProviderState => {\n return guessProviderStateSelector(get(), providerId);\n },\n\n _produceEventsWhenUpdatingStatus: (_provider, id, key, _value) => {\n if (key === 'installed') {\n const event: ProviderDetectedEvent = {\n type: 'provider_detected',\n provider: id,\n };\n\n get().providers.events.push(event);\n }\n },\n});\n\nexport { providersStore };\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * Note: Zustand has some difficulty when you are trying to `previous` state on `subscribe`.\n * If these selectors define inside store directly and use `get()` for accessing state, it will get the latest state\n * instead of previous state which desired.\n * So make them a helper will let us to reuse them both in store and outside of store in a `subscribe`.\n */\nimport type { State } from '../mod.js';\nimport type { State as InternalProviderState } from '../provider/mod.js';\nimport type { WalletType } from '../types.js';\n\n/**\n * Legacy provider state includes `connecting` and `connected` values. It hadn't a separation layer for `namespaces`.\n * For compatibility reasons, we should produce these two values somehow.\n *\n * Currently, We return `true` if any of namespaces return true. We are missing failed namespace here.\n * But if we want to solve that, we should migrate our client code to use `namespace` state directly and not from `provider`\n */\nexport function guessProviderStateSelector(\n state: State,\n providerId: WalletType,\n): InternalProviderState {\n /*\n * We keep namespaces in a separate branch than providers.\n * We should look at all of them and find all the namespaces that for our current proivder.\n */\n const allNamespaces = state.namespaces.list;\n const currentProviderNamespaces = Object.keys(allNamespaces).filter(\n (key) => allNamespaces[key].info.providerId === providerId,\n );\n\n // Returning provider state value directly.\n const installed = !!state.providers.list[providerId]?.data.installed;\n\n /*\n * If any namespaces returns `true`, we consider the whole provider for this field to be `true`.\n * it has a downside regarding errors which explained on top of the function.\n */\n const connected =\n currentProviderNamespaces.length > 0\n ? currentProviderNamespaces.some(\n (key) => allNamespaces[key].data.connected,\n )\n : false;\n const connecting =\n currentProviderNamespaces.length > 0\n ? currentProviderNamespaces.some(\n (key) => allNamespaces[key].data.connecting,\n )\n : false;\n\n return {\n installed,\n connected,\n connecting,\n };\n}\n\nexport function namespaceStateSelector(state: State, storeId: string) {\n return state.namespaces.list[storeId].data;\n}\n", "import type { StoreApi } from 'zustand/vanilla';\n\nimport { createStore as createZustandStore } from 'zustand/vanilla';\n\nimport { extend, type Store } from './extend.js';\nimport { hubStore, type HubStore } from './hub.js';\nimport { namespacesStore, type NamespaceStore } from './namespaces.js';\nimport { providersStore, type ProviderStore } from './providers.js';\n\n/************ State ************/\n\nexport interface State {\n hub: HubStore;\n providers: ProviderStore;\n namespaces: NamespaceStore;\n}\n\nexport type RawStore = StoreApi<State>;\n\nexport const createStore = (): Store => {\n const store = createZustandStore<State>((...api) => {\n return {\n hub: hubStore(...api),\n providers: providersStore(...api),\n namespaces: namespacesStore(...api),\n };\n });\n\n return extend(store);\n};\n", "import type {\n Event,\n ProviderConnectedEvent,\n ProviderConnectingEvent,\n ProviderDisconnectedEvent,\n} from './events.js';\nimport type { RawStore, State } from './store.js';\n\nimport { guessProviderStateSelector } from './selectors.js';\n\nexport interface Store extends Omit<RawStore, 'subscribe'> {\n subscribe(listener: (event: Event, state: State, prevState: State) => void): {\n flushEvents(): void;\n };\n}\n\n/**\n * Zustand's store provides a set of built-in functionalities,\n * but it may not meet all our requirements.\n * This function modifies the interface and adds or updates the available methods.\n */\nexport function extend(store: RawStore): Store {\n const extendedSubscribe: (store: RawStore) => Store['subscribe'] =\n (store) => (listener) => {\n const executeListener = (\n events: Event[],\n state: State,\n prevState: State,\n ) => {\n for (const ev of events) {\n listener(ev, state, prevState);\n }\n };\n\n /*\n * only known changes will fire event for lib users\n * so all the changes in store won't trigger a user-face event\n */\n store.subscribe((state, prevState) => {\n const eventsLike = getEventsLike(state, prevState);\n const events = tryConsumeEvents(state);\n const allQueuedEvents = [...events, ...eventsLike];\n executeListener(allQueuedEvents, state, prevState);\n });\n\n return {\n /**\n * Manually run pending events.\n * This useful when use `subscribe` method after sometime and when store initialized.\n *\n * Note: Please consider both current and previous state will be same and we don't have access to previous state in a such scenario.\n */\n flushEvents: () => {\n const state = store.getState();\n const events = tryConsumeEvents(state);\n executeListener(events, state, state);\n },\n };\n };\n\n return new Proxy(store, {\n get: function (target, prop, receiver) {\n if (prop === 'subscribe') {\n return extendedSubscribe(target);\n }\n return Reflect.get(target, prop, receiver);\n },\n }) as unknown as Store;\n}\n\n/**\n * Retrieves the ConsumableEvent from the store and returns its values.\n * The values will be consumed by iterating over the field.\n */\nfunction tryConsumeEvents(state: State): Event[] {\n return [...state.providers.events, ...state.namespaces.events];\n}\n\n/**\n * In certain cases, adding events to the store is not possible (e.g., namespace or provider layer).\n * In these cases, we observe store changes and treat specific patterns as events when detected.\n *\n * Note: This approach should be avoided in most cases. It is used here to maintain backward compatibility\n * with the provider's legacy interface.\n */\nfunction getEventsLike(state: State, prevState: State): Event[] {\n const events: Event[] = [];\n\n for (const providerId of Object.keys(state.providers.list)) {\n const currentProviderState = guessProviderStateSelector(state, providerId);\n const previousProviderState = guessProviderStateSelector(\n prevState,\n providerId,\n );\n\n if (previousProviderState.connecting !== currentProviderState.connecting) {\n const ev: ProviderConnectingEvent = {\n type: 'provider_connecting',\n provider: providerId,\n value: currentProviderState.connecting,\n };\n events.push(ev);\n }\n\n if (!previousProviderState.connected && currentProviderState.connected) {\n const ev: ProviderConnectedEvent = {\n type: 'provider_connected',\n provider: providerId,\n };\n\n events.push(ev);\n }\n\n if (previousProviderState.connected && !currentProviderState.connected) {\n const ev: ProviderDisconnectedEvent = {\n type: 'provider_disconnected',\n provider: providerId,\n };\n\n events.push(ev);\n }\n }\n\n return events;\n}\n", "/************ Hub ************/\n\nimport type { State } from './mod.js';\nimport type { StateCreator } from 'zustand';\n\ntype HubConfig = object;\n\nexport interface HubStore {\n config: HubConfig;\n}\n\ntype HubStateCreator = StateCreator<State, [], [], HubStore>;\n\nconst hubStore: HubStateCreator = () => ({\n config: {},\n});\n\nexport { hubStore };\n", "/************ Namespace ************/\n\nimport type { WalletType } from '../types.js';\nimport type { StateCreator } from 'zustand';\n\nimport { produce } from 'immer';\n\nimport {\n ConsumableEvents,\n type NamespaceConnectedEvent,\n type NamespaceDisconnectedEvent,\n type NamespaceSwitchedAccountEvent,\n type NamespaceSwitchedNetworkEvent,\n} from './events.js';\nimport { namespaceStateSelector, type State } from './mod.js';\n\n// Currently, namespace doesn't has any config.\nexport type NamespaceConfig = object;\n\nexport interface NamespaceData {\n accounts: null | string[];\n network: null | string;\n connected: boolean;\n connecting: boolean;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n connectArgs: Record<string, any> | null;\n}\n\ninterface NamespaceInfo {\n providerId: WalletType;\n namespaceId: string;\n}\n\ninterface NamespaceItem {\n info: NamespaceInfo;\n data: NamespaceData;\n error: unknown;\n}\n\ntype NamespaceState = {\n events: InstanceType<typeof ConsumableEvents>;\n list: Record<string, NamespaceItem>;\n};\n\ninterface NamespaceActions {\n addNamespace: (id: string, config: NamespaceInfo) => void;\n updateStatus: <K extends keyof NamespaceData>(\n id: string,\n key: K,\n value: NamespaceData[K],\n ) => void;\n\n _produceEventsWhenUpdatingStatus: <K extends keyof NamespaceData>(\n namespace: NamespaceItem,\n id: string,\n key: K,\n value: NamespaceData[K],\n ) => void;\n}\ninterface NamespaceSelectors {\n getNamespaceData(storeId: string): NamespaceData;\n}\n\nexport type NamespaceStore = NamespaceState &\n NamespaceActions &\n NamespaceSelectors;\ntype NamespaceStateCreator = StateCreator<State, [], [], NamespaceStore>;\n\nconst namespacesStore: NamespaceStateCreator = (set, get) => ({\n events: new ConsumableEvents(),\n\n list: {},\n addNamespace: (id, info) => {\n const data: NamespaceData = {\n accounts: null,\n network: null,\n connected: false,\n connecting: false,\n connectArgs: null,\n };\n\n const item = {\n data,\n error: '',\n info,\n };\n\n set(\n produce((state: State) => {\n state.namespaces.list[id] = item;\n }),\n );\n },\n updateStatus: (id, key, value) => {\n const ns = get().namespaces.list[id];\n if (!ns) {\n throw new Error(`No namespace with '${id}' found.`);\n }\n\n get().namespaces._produceEventsWhenUpdatingStatus(ns, id, key, value);\n\n // Updating state\n set(\n produce((state: State) => {\n state.namespaces.list[id].data[key] = value;\n }),\n );\n },\n getNamespaceData(storeId) {\n return namespaceStateSelector(get(), storeId);\n },\n\n _produceEventsWhenUpdatingStatus: (namespace, id, key, value) => {\n if (key === 'accounts') {\n // check for both null and empty array\n const isAccountsEmpty =\n Object.is(value, null) || (Array.isArray(value) && value.length === 0);\n\n if (isAccountsEmpty) {\n const currentConnectedStatus = get().namespaces.list[id].data.connected;\n if (currentConnectedStatus) {\n const event: NamespaceDisconnectedEvent = {\n type: 'namespace_disconnected',\n provider: namespace.info.providerId,\n namespace: namespace.info.namespaceId,\n };\n\n get().namespaces.events.push(event);\n }\n // Skip emitting disconnect event, if the `connected` is false\n } else {\n const currentAccounts = get().namespaces.list[id].data.accounts;\n\n if (!currentAccounts) {\n const event: NamespaceConnectedEvent = {\n type: 'namespace_connected',\n provider: namespace.info.providerId,\n namespace: namespace.info.namespaceId,\n accounts: value as string[],\n };\n\n get().namespaces.events.push(event);\n } else {\n const areSameAccounts =\n // Clone the object from the Zustand store, as it's immutable, to avoid errors during sorting.\n [...currentAccounts].sort().toString() ===\n (value as string[]).sort().toString();\n\n if (!areSameAccounts) {\n const event: NamespaceSwitchedAccountEvent = {\n type: 'namespace_account_switched',\n provider: namespace.info.providerId,\n namespace: namespace.info.namespaceId,\n previousAccounts: currentAccounts,\n accounts: value as string[],\n };\n\n get().namespaces.events.push(event);\n }\n }\n }\n } else if (key === 'network') {\n const currentNetwork = get().namespaces.list[id].data.network;\n\n const event: NamespaceSwitchedNetworkEvent = {\n type: 'namespace_network_switched',\n provider: namespace.info.providerId,\n namespace: namespace.info.namespaceId,\n network: value as string,\n previousNetwork: currentNetwork,\n };\n\n get().namespaces.events.push(event);\n }\n },\n});\n\nexport { namespacesStore };\n", "import type { WalletType } from '../types.js';\n\nexport type NamespaceDisconnectedEvent = {\n type: 'namespace_disconnected';\n provider: WalletType;\n namespace: string;\n};\n\nexport type NamespaceConnectedEvent = {\n type: 'namespace_connected';\n provider: WalletType;\n namespace: string;\n accounts: string[];\n};\n\nexport type NamespaceSwitchedAccountEvent = {\n type: 'namespace_account_switched';\n provider: WalletType;\n namespace: string;\n accounts: string[];\n previousAccounts: string[];\n};\n\nexport type NamespaceSwitchedNetworkEvent = {\n type: 'namespace_network_switched';\n provider: WalletType;\n namespace: string;\n network: string;\n previousNetwork: string | null;\n};\n\nexport type ProviderDetectedEvent = {\n type: 'provider_detected';\n provider: WalletType;\n};\n\nexport type ProviderConnectingEvent = {\n type: 'provider_connecting';\n provider: WalletType;\n value: boolean;\n};\n\nexport type ProviderConnectedEvent = {\n type: 'provider_connected';\n provider: WalletType;\n};\n\nexport type ProviderDisconnectedEvent = {\n type: 'provider_disconnected';\n provider: WalletType;\n};\n\nexport type Event =\n | NamespaceDisconnectedEvent\n | NamespaceConnectedEvent\n | NamespaceSwitchedAccountEvent\n | NamespaceSwitchedNetworkEvent\n | ProviderDetectedEvent\n | ProviderConnectingEvent\n | ProviderConnectedEvent\n | ProviderDisconnectedEvent;\n\n/**\n *\n * Keeping an array of Event and when iterates over its values, it will be removed (consume) from the array.\n *\n */\nexport class ConsumableEvents {\n #data: Event[] = [];\n\n push(val: Event) {\n this.#data.push(val);\n }\n\n [Symbol.iterator](): Iterator<Event> {\n return {\n next: (): IteratorResult<Event> => {\n if (this.#data.length == 0) {\n return { done: true, value: undefined };\n }\n\n // Typescript can not narrow the type, but we have a runtime check to ensure it will never be an empty list\n const value = this.#data.shift()!;\n return {\n done: false,\n value,\n };\n },\n };\n }\n}\n", "import type { State as InternalProviderState } from '../provider/mod.js';\nimport type { WalletType } from '../types.js';\nimport type { SignerFactory } from 'rango-types';\nimport type { StateCreator } from 'zustand';\n\nimport { produce } from 'immer';\n\nimport { ConsumableEvents, type ProviderDetectedEvent } from './events.js';\nimport { guessProviderStateSelector, type State } from './mod.js';\n\ntype Browsers = 'firefox' | 'chrome' | 'edge' | 'brave' | 'homepage';\n\ntype Property<N extends string, V> = { name: N; value: V };\n\n/**\n * The set of namespace keys a provider registered. Falls back to `string` when\n * `TNS` is empty (e.g., `.config('metadata', ...)` was called before any\n * `.add()`), so the metadata can still be written. After `.add()` calls\n * accumulate, this narrows to exactly the registered keys.\n */\ntype RegisteredKey<TNS> = [keyof TNS] extends [never]\n ? string\n : keyof TNS & string;\n\nexport type NamespacesProperty<TNS = unknown> = Property<\n 'namespaces',\n {\n selection: 'single' | 'multiple';\n data: {\n label: string;\n id: string;\n value: RegisteredKey<TNS>;\n unsupported?: boolean;\n isChainSupported: (chainId: string) => boolean;\n }[];\n }\n>;\n\nexport type DerivationPathProperty<TNS = unknown> = Property<\n 'derivationPath',\n {\n data: {\n id: string;\n label: string;\n namespace: RegisteredKey<TNS>;\n generateDerivationPath: (index: string) => string;\n }[];\n }\n>;\n\nexport type DetailsProperty = Property<\n 'details',\n {\n mobileWallet?: boolean;\n showOnMobile?: boolean;\n isContractWallet?: boolean;\n }\n>;\n\nexport type SignersProperty = Property<\n 'signers',\n {\n getSigners: () => Promise<SignerFactory>;\n }\n>;\n\nexport type ProviderProperty<TNS = unknown> =\n | NamespacesProperty<TNS>\n | DerivationPathProperty<TNS>\n | DetailsProperty\n | SignersProperty;\n\nexport interface ProviderMetadata<TNS = unknown> {\n name: string;\n icon: string;\n extensions: Partial<Record<Browsers, string>>;\n properties?: ProviderProperty<TNS>[];\n}\n\nexport interface ProviderConfig<TNS = unknown> {\n metadata: ProviderMetadata<TNS>;\n}\n\nexport type ProviderInfo<TNS = unknown> = ProviderConfig<TNS>;\n\ninterface ProviderData {\n installed: boolean;\n}\n\ninterface ProviderItem {\n config: ProviderConfig;\n data: ProviderData;\n error: unknown;\n}\n\ntype ProviderState = {\n events: ConsumableEvents;\n list: Record<WalletType, ProviderItem>;\n};\ninterface ProviderActions {\n addProvider: (id: WalletType, config: ProviderConfig) => void;\n removeProvider: (id: WalletType) => void;\n updateStatus: <K extends keyof ProviderData>(\n id: WalletType,\n key: K,\n value: ProviderData[K],\n ) => void;\n\n _produceEventsWhenUpdatingStatus: <K extends keyof ProviderData>(\n provider: ProviderItem,\n id: WalletType,\n key: K,\n value: ProviderData[K],\n ) => void;\n}\n\ninterface ProviderSelectors {\n /**\n * Provider has a limited state to itself, to be compatible with legacy, we try to produce same object as legacy\n * which includes namespace state as well.\n */\n guessNamespacesState: (id: WalletType) => InternalProviderState;\n}\n\nexport type ProviderStore = ProviderState & ProviderActions & ProviderSelectors;\ntype ProvidersStateCreator = StateCreator<State, [], [], ProviderStore>;\n\nconst providersStore: ProvidersStateCreator = (set, get) => ({\n events: new ConsumableEvents(),\n\n list: {},\n addProvider: (id, config) => {\n const item = {\n data: {\n installed: false,\n },\n error: '',\n config,\n };\n\n set(\n produce((state: State) => {\n state.providers.list[id] = item;\n }),\n );\n },\n removeProvider: (id) => {\n set(\n produce((state: State) => {\n delete state.providers.list[id];\n }),\n );\n },\n updateStatus: (id, key, value) => {\n const provider = get().providers.list[id];\n if (!provider) {\n throw new Error(`No namespace namespace with '${id}' found.`);\n }\n\n get().providers._produceEventsWhenUpdatingStatus(provider, id, key, value);\n\n set(\n produce((state: State) => {\n state.providers.list[id].data[key] = value;\n }),\n );\n },\n guessNamespacesState: (providerId: WalletType): InternalProviderState => {\n return guessProviderStateSelector(get(), providerId);\n },\n\n _produceEventsWhenUpdatingStatus: (_provider, id, key, _value) => {\n if (key === 'installed') {\n const event: ProviderDetectedEvent = {\n type: 'provider_detected',\n provider: id,\n };\n\n get().providers.events.push(event);\n }\n },\n});\n\nexport { providersStore };\n"],
5
+ "mappings": "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",
6
6
  "names": ["guessProviderStateSelector", "state", "providerId", "allNamespaces", "currentProviderNamespaces", "key", "installed", "connected", "connecting", "__name", "namespaceStateSelector", "storeId", "createZustandStore", "extend", "store", "extendedSubscribe", "__name", "listener", "executeListener", "events", "state", "prevState", "ev", "eventsLike", "getEventsLike", "allQueuedEvents", "tryConsumeEvents", "target", "prop", "receiver", "providerId", "currentProviderState", "guessProviderStateSelector", "previousProviderState", "hubStore", "__name", "produce", "ConsumableEvents", "__name", "#data", "val", "namespacesStore", "__name", "set", "get", "ConsumableEvents", "id", "info", "item", "produce", "state", "key", "value", "ns", "storeId", "namespaceStateSelector", "namespace", "event", "currentAccounts", "currentNetwork", "produce", "providersStore", "__name", "set", "get", "ConsumableEvents", "id", "config", "item", "produce", "state", "key", "value", "provider", "providerId", "guessProviderStateSelector", "_provider", "_value", "event", "createStore", "__name", "store", "createZustandStore", "api", "hubStore", "providersStore", "namespacesStore", "extend"]
7
7
  }
@@ -1,4 +1,5 @@
1
1
  /************ Namespace ************/
2
+ import type { WalletType } from '../types.js';
2
3
  import type { StateCreator } from 'zustand';
3
4
  import { ConsumableEvents } from './events.js';
4
5
  import { type State } from './mod.js';
@@ -11,7 +12,7 @@ export interface NamespaceData {
11
12
  connectArgs: Record<string, any> | null;
12
13
  }
13
14
  interface NamespaceInfo {
14
- providerId: string;
15
+ providerId: WalletType;
15
16
  namespaceId: string;
16
17
  }
17
18
  interface NamespaceItem {
@@ -1 +1 @@
1
- {"version":3,"file":"namespaces.d.ts","sourceRoot":"","sources":["../../../src/hub/store/namespaces.ts"],"names":[],"mappings":"AAAA,qCAAqC;AAErC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAI5C,OAAO,EACL,gBAAgB,EAKjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAA0B,KAAK,KAAK,EAAE,MAAM,UAAU,CAAC;AAG9D,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC;AAErC,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,IAAI,GAAG,MAAM,EAAE,CAAC;IAC1B,OAAO,EAAE,IAAI,GAAG,MAAM,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IAEpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;CACzC;AAED,UAAU,aAAa;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,aAAa;IACrB,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,KAAK,cAAc,GAAG;IACpB,MAAM,EAAE,YAAY,CAAC,OAAO,gBAAgB,CAAC,CAAC;IAC9C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CACrC,CAAC;AAEF,UAAU,gBAAgB;IACxB,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,KAAK,IAAI,CAAC;IAC1D,YAAY,EAAE,CAAC,CAAC,SAAS,MAAM,aAAa,EAC1C,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,CAAC,EACN,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,KACpB,IAAI,CAAC;IAEV,gCAAgC,EAAE,CAAC,CAAC,SAAS,MAAM,aAAa,EAC9D,SAAS,EAAE,aAAa,EACxB,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,CAAC,EACN,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,KACpB,IAAI,CAAC;CACX;AACD,UAAU,kBAAkB;IAC1B,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CAAC;CAClD;AAED,MAAM,MAAM,cAAc,GAAG,cAAc,GACzC,gBAAgB,GAChB,kBAAkB,CAAC;AACrB,KAAK,qBAAqB,GAAG,YAAY,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,cAAc,CAAC,CAAC;AAEzE,QAAA,MAAM,eAAe,EAAE,qBA2GrB,CAAC;AAEH,OAAO,EAAE,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"namespaces.d.ts","sourceRoot":"","sources":["../../../src/hub/store/namespaces.ts"],"names":[],"mappings":"AAAA,qCAAqC;AAErC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAI5C,OAAO,EACL,gBAAgB,EAKjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAA0B,KAAK,KAAK,EAAE,MAAM,UAAU,CAAC;AAG9D,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC;AAErC,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,IAAI,GAAG,MAAM,EAAE,CAAC;IAC1B,OAAO,EAAE,IAAI,GAAG,MAAM,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IAEpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;CACzC;AAED,UAAU,aAAa;IACrB,UAAU,EAAE,UAAU,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,aAAa;IACrB,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,KAAK,cAAc,GAAG;IACpB,MAAM,EAAE,YAAY,CAAC,OAAO,gBAAgB,CAAC,CAAC;IAC9C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CACrC,CAAC;AAEF,UAAU,gBAAgB;IACxB,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,KAAK,IAAI,CAAC;IAC1D,YAAY,EAAE,CAAC,CAAC,SAAS,MAAM,aAAa,EAC1C,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,CAAC,EACN,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,KACpB,IAAI,CAAC;IAEV,gCAAgC,EAAE,CAAC,CAAC,SAAS,MAAM,aAAa,EAC9D,SAAS,EAAE,aAAa,EACxB,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,CAAC,EACN,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,KACpB,IAAI,CAAC;CACX;AACD,UAAU,kBAAkB;IAC1B,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CAAC;CAClD;AAED,MAAM,MAAM,cAAc,GAAG,cAAc,GACzC,gBAAgB,GAChB,kBAAkB,CAAC;AACrB,KAAK,qBAAqB,GAAG,YAAY,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,cAAc,CAAC,CAAC;AAEzE,QAAA,MAAM,eAAe,EAAE,qBA2GrB,CAAC;AAEH,OAAO,EAAE,eAAe,EAAE,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { State as InternalProviderState } from '../provider/mod.js';
2
+ import type { WalletType } from '../types.js';
2
3
  import type { SignerFactory } from 'rango-types';
3
4
  import type { StateCreator } from 'zustand';
4
5
  import { ConsumableEvents } from './events.js';
@@ -62,20 +63,20 @@ interface ProviderItem {
62
63
  }
63
64
  type ProviderState = {
64
65
  events: ConsumableEvents;
65
- list: Record<string, ProviderItem>;
66
+ list: Record<WalletType, ProviderItem>;
66
67
  };
67
68
  interface ProviderActions {
68
- addProvider: (id: string, config: ProviderConfig) => void;
69
- removeProvider: (id: string) => void;
70
- updateStatus: <K extends keyof ProviderData>(id: string, key: K, value: ProviderData[K]) => void;
71
- _produceEventsWhenUpdatingStatus: <K extends keyof ProviderData>(provider: ProviderItem, id: string, key: K, value: ProviderData[K]) => void;
69
+ addProvider: (id: WalletType, config: ProviderConfig) => void;
70
+ removeProvider: (id: WalletType) => void;
71
+ updateStatus: <K extends keyof ProviderData>(id: WalletType, key: K, value: ProviderData[K]) => void;
72
+ _produceEventsWhenUpdatingStatus: <K extends keyof ProviderData>(provider: ProviderItem, id: WalletType, key: K, value: ProviderData[K]) => void;
72
73
  }
73
74
  interface ProviderSelectors {
74
75
  /**
75
76
  * Provider has a limited state to itself, to be compatible with legacy, we try to produce same object as legacy
76
77
  * which includes namespace state as well.
77
78
  */
78
- guessNamespacesState: (id: string) => InternalProviderState;
79
+ guessNamespacesState: (id: WalletType) => InternalProviderState;
79
80
  }
80
81
  export type ProviderStore = ProviderState & ProviderActions & ProviderSelectors;
81
82
  type ProvidersStateCreator = StateCreator<State, [], [], ProviderStore>;
@@ -1 +1 @@
1
- {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../../src/hub/store/providers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../../src/hub/store/providers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,IAAI,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAI5C,OAAO,EAAE,gBAAgB,EAA8B,MAAM,aAAa,CAAC;AAC3E,OAAO,EAA8B,KAAK,KAAK,EAAE,MAAM,UAAU,CAAC;AAElE,KAAK,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,CAAC;AAErE,KAAK,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,IAAI;IAAE,IAAI,EAAE,CAAC,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CAAC;AAE3D;;;;;GAKG;AACH,KAAK,aAAa,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,GACjD,MAAM,GACN,MAAM,GAAG,GAAG,MAAM,CAAC;AAEvB,MAAM,MAAM,kBAAkB,CAAC,GAAG,GAAG,OAAO,IAAI,QAAQ,CACtD,YAAY,EACZ;IACE,SAAS,EAAE,QAAQ,GAAG,UAAU,CAAC;IACjC,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,CAAC;QACd,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC;QAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;KAChD,EAAE,CAAC;CACL,CACF,CAAC;AAEF,MAAM,MAAM,sBAAsB,CAAC,GAAG,GAAG,OAAO,IAAI,QAAQ,CAC1D,gBAAgB,EAChB;IACE,IAAI,EAAE;QACJ,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC;QAC9B,sBAAsB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;KACnD,EAAE,CAAC;CACL,CACF,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,QAAQ,CACpC,SAAS,EACT;IACE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,CACF,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,QAAQ,CACpC,SAAS,EACT;IACE,UAAU,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;CAC1C,CACF,CAAC;AAEF,MAAM,MAAM,gBAAgB,CAAC,GAAG,GAAG,OAAO,IACtC,kBAAkB,CAAC,GAAG,CAAC,GACvB,sBAAsB,CAAC,GAAG,CAAC,GAC3B,eAAe,GACf,eAAe,CAAC;AAEpB,MAAM,WAAW,gBAAgB,CAAC,GAAG,GAAG,OAAO;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IAC9C,UAAU,CAAC,EAAE,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,cAAc,CAAC,GAAG,GAAG,OAAO;IAC3C,QAAQ,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC;CACjC;AAED,MAAM,MAAM,YAAY,CAAC,GAAG,GAAG,OAAO,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC;AAE9D,UAAU,YAAY;IACpB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,UAAU,YAAY;IACpB,MAAM,EAAE,cAAc,CAAC;IACvB,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,KAAK,aAAa,GAAG;IACnB,MAAM,EAAE,gBAAgB,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;CACxC,CAAC;AACF,UAAU,eAAe;IACvB,WAAW,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC;IAC9D,cAAc,EAAE,CAAC,EAAE,EAAE,UAAU,KAAK,IAAI,CAAC;IACzC,YAAY,EAAE,CAAC,CAAC,SAAS,MAAM,YAAY,EACzC,EAAE,EAAE,UAAU,EACd,GAAG,EAAE,CAAC,EACN,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,KACnB,IAAI,CAAC;IAEV,gCAAgC,EAAE,CAAC,CAAC,SAAS,MAAM,YAAY,EAC7D,QAAQ,EAAE,YAAY,EACtB,EAAE,EAAE,UAAU,EACd,GAAG,EAAE,CAAC,EACN,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,KACnB,IAAI,CAAC;CACX;AAED,UAAU,iBAAiB;IACzB;;;OAGG;IACH,oBAAoB,EAAE,CAAC,EAAE,EAAE,UAAU,KAAK,qBAAqB,CAAC;CACjE;AAED,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG,eAAe,GAAG,iBAAiB,CAAC;AAChF,KAAK,qBAAqB,GAAG,YAAY,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,aAAa,CAAC,CAAC;AAExE,QAAA,MAAM,cAAc,EAAE,qBAsDpB,CAAC;AAEH,OAAO,EAAE,cAAc,EAAE,CAAC"}
@@ -6,6 +6,7 @@
6
6
  */
7
7
  import type { State } from '../mod.js';
8
8
  import type { State as InternalProviderState } from '../provider/mod.js';
9
+ import type { WalletType } from '../types.js';
9
10
  /**
10
11
  * Legacy provider state includes `connecting` and `connected` values. It hadn't a separation layer for `namespaces`.
11
12
  * For compatibility reasons, we should produce these two values somehow.
@@ -13,6 +14,6 @@ import type { State as InternalProviderState } from '../provider/mod.js';
13
14
  * Currently, We return `true` if any of namespaces return true. We are missing failed namespace here.
14
15
  * But if we want to solve that, we should migrate our client code to use `namespace` state directly and not from `provider`
15
16
  */
16
- export declare function guessProviderStateSelector(state: State, providerId: string): InternalProviderState;
17
+ export declare function guessProviderStateSelector(state: State, providerId: WalletType): InternalProviderState;
17
18
  export declare function namespaceStateSelector(state: State, storeId: string): import("./namespaces.js").NamespaceData;
18
19
  //# sourceMappingURL=selectors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"selectors.d.ts","sourceRoot":"","sources":["../../../src/hub/store/selectors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,KAAK,EAAE,KAAK,IAAI,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAEzE;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,MAAM,GACjB,qBAAqB,CAmCvB;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,2CAEnE"}
1
+ {"version":3,"file":"selectors.d.ts","sourceRoot":"","sources":["../../../src/hub/store/selectors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,KAAK,EAAE,KAAK,IAAI,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,UAAU,GACrB,qBAAqB,CAmCvB;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,2CAEnE"}
@@ -1,3 +1,4 @@
1
+ export type WalletType = string;
1
2
  export type AnyFunction = (...args: any[]) => any;
2
3
  export type AnyPromiseFunction = (...args: any[]) => Promise<any>;
3
4
  export type AndFunction<T extends Record<string, AnyPromiseFunction>, K extends keyof T> = (result: Awaited<ReturnType<T[K]>>) => Awaited<ReturnType<T[K]>>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/hub/types.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;AAElD,MAAM,MAAM,kBAAkB,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;AAElE,MAAM,MAAM,WAAW,CACrB,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAC5C,CAAC,SAAS,MAAM,CAAC,IACf,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAErE,MAAM,MAAM,mBAAmB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC,GAC3E,CAAC,OAAO,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,GAC7B,KAAK,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/hub/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC;AAGhC,MAAM,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;AAElD,MAAM,MAAM,kBAAkB,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;AAElE,MAAM,MAAM,WAAW,CACrB,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAC5C,CAAC,SAAS,MAAM,CAAC,IACf,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAErE,MAAM,MAAM,mBAAmB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC,GAC3E,CAAC,OAAO,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,GAC7B,KAAK,CAAC"}
package/dist/mod.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export type { Actions, RegisteredNamespaces, Store, State, ProviderMetadata, Subscriber, SubscriberCleanUp, Context, CanEagerConnect, FunctionWithContext, AnyFunction, } from './hub/mod.js';
1
+ export type { Actions, RegisteredNamespaces, Store, State, ProviderMetadata, NamespacesProperty, DerivationPathProperty, WalletType, Subscriber, SubscriberCleanUp, Context, CanEagerConnect, FunctionWithContext, AnyFunction, } from './hub/mod.js';
2
2
  export { Hub, Provider, Namespace, createStore, guessProviderStateSelector, namespaceStateSelector, } from './hub/mod.js';
3
3
  export type { ProxiedNamespace, FindProxiedNamespace } from './builders/mod.js';
4
4
  export { NamespaceBuilder, ProviderBuilder, ActionBuilder, } from './builders/mod.js';
package/dist/mod.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,OAAO,EACP,oBAAoB,EACpB,KAAK,EACL,KAAK,EACL,gBAAgB,EAChB,UAAU,EACV,iBAAiB,EACjB,OAAO,EACP,eAAe,EACf,mBAAmB,EACnB,WAAW,GACZ,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,GAAG,EACH,QAAQ,EACR,SAAS,EACT,WAAW,EACX,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,cAAc,CAAC;AAEtB,YAAY,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,aAAa,GACd,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,OAAO,EACP,oBAAoB,EACpB,KAAK,EACL,KAAK,EACL,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,EACtB,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,OAAO,EACP,eAAe,EACf,mBAAmB,EACnB,WAAW,GACZ,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,GAAG,EACH,QAAQ,EACR,SAAS,EACT,WAAW,EACX,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,cAAc,CAAC;AAEtB,YAAY,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,aAAa,GACd,MAAM,mBAAmB,CAAC"}