@reown/appkit 1.3.2 → 1.4.1

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 (34) hide show
  1. package/dist/esm/exports/adapters.js +2 -0
  2. package/dist/esm/exports/adapters.js.map +1 -0
  3. package/dist/esm/exports/constants.js +1 -1
  4. package/dist/esm/package.json +9 -1
  5. package/dist/esm/src/adapters/ChainAdapterBlueprint.js +138 -0
  6. package/dist/esm/src/adapters/ChainAdapterBlueprint.js.map +1 -0
  7. package/dist/esm/src/adapters/ChainAdapterConnector.js +2 -0
  8. package/dist/esm/src/adapters/ChainAdapterConnector.js.map +1 -0
  9. package/dist/esm/src/adapters/index.js +2 -0
  10. package/dist/esm/src/adapters/index.js.map +1 -0
  11. package/dist/esm/src/client.js +886 -40
  12. package/dist/esm/src/client.js.map +1 -1
  13. package/dist/esm/src/store/ProviderUtil.js.map +1 -1
  14. package/dist/esm/src/universal-adapter/client.js +98 -532
  15. package/dist/esm/src/universal-adapter/client.js.map +1 -1
  16. package/dist/esm/src/universal-adapter/index.js +1 -1
  17. package/dist/esm/src/universal-adapter/index.js.map +1 -1
  18. package/dist/esm/src/utils/HelpersUtil.js +6 -0
  19. package/dist/esm/src/utils/HelpersUtil.js.map +1 -1
  20. package/dist/esm/tsconfig.build.tsbuildinfo +1 -1
  21. package/dist/types/exports/adapters.d.ts +1 -0
  22. package/dist/types/exports/constants.d.ts +1 -1
  23. package/dist/types/src/adapters/ChainAdapterBlueprint.d.ts +324 -0
  24. package/dist/types/src/adapters/ChainAdapterConnector.d.ts +5 -0
  25. package/dist/types/src/adapters/index.d.ts +1 -0
  26. package/dist/types/src/client.d.ts +49 -10
  27. package/dist/types/src/library/react/index.d.ts +1 -1
  28. package/dist/types/src/library/vue/index.d.ts +1 -1
  29. package/dist/types/src/store/ProviderUtil.d.ts +5 -4
  30. package/dist/types/src/store/index.d.ts +1 -1
  31. package/dist/types/src/universal-adapter/client.d.ts +32 -44
  32. package/dist/types/src/universal-adapter/index.d.ts +1 -1
  33. package/dist/types/src/utils/HelpersUtil.d.ts +1 -0
  34. package/package.json +17 -9
@@ -0,0 +1,2 @@
1
+ export * from '../src/adapters/index.js';
2
+ //# sourceMappingURL=adapters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapters.js","sourceRoot":"","sources":["../../../exports/adapters.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAA"}
@@ -1,2 +1,2 @@
1
- export const PACKAGE_VERSION = '1.3.2';
1
+ export const PACKAGE_VERSION = '1.4.1';
2
2
  //# sourceMappingURL=constants.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reown/appkit",
3
- "version": "1.3.2",
3
+ "version": "1.4.1",
4
4
  "type": "module",
5
5
  "main": "./dist/esm/exports/index.js",
6
6
  "types": "./dist/types/exports/index.d.ts",
@@ -61,6 +61,11 @@
61
61
  "types": "./dist/types/exports/auth-provider.d.ts",
62
62
  "import": "./dist/esm/exports/auth-provider.js",
63
63
  "default": "./dist/esm/exports/auth-provider.js"
64
+ },
65
+ "./adapters": {
66
+ "types": "./dist/types/exports/adapters.d.ts",
67
+ "import": "./dist/esm/exports/adapters.js",
68
+ "default": "./dist/esm/exports/adapters.js"
64
69
  }
65
70
  },
66
71
  "typesVersions": {
@@ -85,6 +90,9 @@
85
90
  ],
86
91
  "auth-provider": [
87
92
  "./dist/types/exports/auth-provider.d.ts"
93
+ ],
94
+ "adapters": [
95
+ "./dist/types/exports/adapters.d.ts"
88
96
  ]
89
97
  }
90
98
  },
@@ -0,0 +1,138 @@
1
+ import { getW3mThemeVariables } from '@reown/appkit-common';
2
+ import { OptionsController, ThemeController } from '@reown/appkit-core';
3
+ import { ConstantsUtil, PresetsUtil } from '@reown/appkit-utils';
4
+ import { snapshot } from 'valtio';
5
+ /**
6
+ * Abstract class representing a chain adapter blueprint.
7
+ * @template Connector - The type of connector extending ChainAdapterConnector
8
+ */
9
+ export class AdapterBlueprint {
10
+ /**
11
+ * Creates an instance of AdapterBlueprint.
12
+ * @param {AdapterBlueprint.Params} params - The parameters for initializing the adapter
13
+ */
14
+ constructor(params) {
15
+ this.availableConnectors = [];
16
+ this.eventListeners = new Map();
17
+ if (params) {
18
+ this.construct(params);
19
+ }
20
+ }
21
+ /**
22
+ * Initializes the adapter with the given parameters.
23
+ * @param {AdapterBlueprint.Params} params - The parameters for initializing the adapter
24
+ */
25
+ construct(params) {
26
+ this.caipNetworks = params.networks;
27
+ this.projectId = params.projectId;
28
+ this.namespace = params.namespace;
29
+ }
30
+ /**
31
+ * Gets the available connectors.
32
+ * @returns {Connector[]} An array of available connectors
33
+ */
34
+ get connectors() {
35
+ return this.availableConnectors;
36
+ }
37
+ /**
38
+ * Gets the supported networks.
39
+ * @returns {CaipNetwork[]} An array of supported networks
40
+ */
41
+ get networks() {
42
+ return this.caipNetworks || [];
43
+ }
44
+ /**
45
+ * Sets the universal provider for WalletConnect.
46
+ * @param {UniversalProvider} universalProvider - The universal provider instance
47
+ */
48
+ setUniversalProvider(universalProvider) {
49
+ this.addConnector({
50
+ id: ConstantsUtil.WALLET_CONNECT_CONNECTOR_ID,
51
+ type: 'WALLET_CONNECT',
52
+ name: PresetsUtil.ConnectorNamesMap[ConstantsUtil.WALLET_CONNECT_CONNECTOR_ID],
53
+ provider: universalProvider,
54
+ imageId: PresetsUtil.ConnectorImageIds[ConstantsUtil.WALLET_CONNECT_CONNECTOR_ID],
55
+ chain: this.namespace,
56
+ chains: []
57
+ });
58
+ }
59
+ /**
60
+ * Sets the auth provider.
61
+ * @param {W3mFrameProvider} authProvider - The auth provider instance
62
+ */
63
+ setAuthProvider(authProvider) {
64
+ this.addConnector({
65
+ id: ConstantsUtil.AUTH_CONNECTOR_ID,
66
+ type: 'AUTH',
67
+ name: 'Auth',
68
+ provider: authProvider,
69
+ imageId: PresetsUtil.ConnectorImageIds[ConstantsUtil.AUTH_CONNECTOR_ID],
70
+ chain: this.namespace,
71
+ chains: []
72
+ });
73
+ }
74
+ /**
75
+ * Adds one or more connectors to the available connectors list.
76
+ * @param {...Connector} connectors - The connectors to add
77
+ */
78
+ addConnector(...connectors) {
79
+ if (connectors.some(connector => connector.id === 'ID_AUTH')) {
80
+ const authConnector = connectors.find(connector => connector.id === 'ID_AUTH');
81
+ const optionsState = snapshot(OptionsController.state);
82
+ const themeMode = ThemeController.getSnapshot().themeMode;
83
+ const themeVariables = ThemeController.getSnapshot().themeVariables;
84
+ authConnector?.provider?.syncDappData?.({
85
+ metadata: optionsState.metadata,
86
+ sdkVersion: optionsState.sdkVersion,
87
+ projectId: optionsState.projectId,
88
+ sdkType: optionsState.sdkType
89
+ });
90
+ authConnector.provider.syncTheme({
91
+ themeMode,
92
+ themeVariables,
93
+ w3mThemeVariables: getW3mThemeVariables(themeVariables, themeMode)
94
+ });
95
+ }
96
+ this.availableConnectors = [
97
+ ...this.availableConnectors.filter(existing => !connectors.some(newConnector => newConnector.id === existing.id)),
98
+ ...connectors
99
+ ];
100
+ }
101
+ /**
102
+ * Adds an event listener for a specific event.
103
+ * @template T
104
+ * @param {T} eventName - The name of the event
105
+ * @param {EventCallback<T>} callback - The callback function to be called when the event is emitted
106
+ */
107
+ on(eventName, callback) {
108
+ if (!this.eventListeners.has(eventName)) {
109
+ this.eventListeners.set(eventName, new Set());
110
+ }
111
+ this.eventListeners.get(eventName)?.add(callback);
112
+ }
113
+ /**
114
+ * Removes an event listener for a specific event.
115
+ * @template T
116
+ * @param {T} eventName - The name of the event
117
+ * @param {EventCallback<T>} callback - The callback function to be removed
118
+ */
119
+ off(eventName, callback) {
120
+ const listeners = this.eventListeners.get(eventName);
121
+ if (listeners) {
122
+ listeners.delete(callback);
123
+ }
124
+ }
125
+ /**
126
+ * Emits an event with the given name and optional data.
127
+ * @template T
128
+ * @param {T} eventName - The name of the event to emit
129
+ * @param {EventData[T]} [data] - The optional data to be passed to the event listeners
130
+ */
131
+ emit(eventName, data) {
132
+ const listeners = this.eventListeners.get(eventName);
133
+ if (listeners) {
134
+ listeners.forEach(callback => callback(data));
135
+ }
136
+ }
137
+ }
138
+ //# sourceMappingURL=ChainAdapterBlueprint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChainAdapterBlueprint.js","sourceRoot":"","sources":["../../../../src/adapters/ChainAdapterBlueprint.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ChainAdapterConnector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChainAdapterConnector.js","sourceRoot":"","sources":["../../../../src/adapters/ChainAdapterConnector.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export { AdapterBlueprint } from './ChainAdapterBlueprint.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/adapters/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA"}