@dynamic-labs/message-transport 2.1.0-alpha.2 → 2.1.0-alpha.20

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/CHANGELOG.md +168 -0
  2. package/_virtual/_tslib.cjs +13 -0
  3. package/_virtual/_tslib.js +13 -1
  4. package/package.json +2 -2
  5. package/src/index.cjs +4 -0
  6. package/src/index.d.ts +4 -2
  7. package/src/index.js +2 -0
  8. package/src/messageTypes/ConsoleMessages.d.ts +11 -0
  9. package/src/messageTypes/EmbeddedWalletsModuleMessages.d.ts +8 -0
  10. package/src/messageTypes/EthMessages.d.ts +13 -0
  11. package/src/messageTypes/FetchMessages.d.ts +8 -0
  12. package/src/messageTypes/NetworksModuleMessages.d.ts +4 -0
  13. package/src/messageTypes/{OtpExtensionMessages.d.ts → OtpMessages.d.ts} +1 -1
  14. package/src/messageTypes/PasskeyMessages.d.ts +32 -0
  15. package/src/messageTypes/SdkModuleMessages.d.ts +4 -3
  16. package/src/messageTypes/UserInterfaceModuleMessages.d.ts +4 -0
  17. package/src/messageTypes/WalletsModuleMessages.d.ts +22 -0
  18. package/src/messageTypes/WebViewVisibilityMessages.d.ts +3 -0
  19. package/src/messageTypes/index.d.ts +9 -1
  20. package/src/requestChannel/requestChannel.cjs +10 -2
  21. package/src/requestChannel/requestChannel.js +10 -2
  22. package/src/store/types.d.ts +1 -1
  23. package/src/utils/isSerializedError/index.d.ts +1 -0
  24. package/src/utils/isSerializedError/isSerializedError.cjs +14 -0
  25. package/src/utils/isSerializedError/isSerializedError.d.ts +2 -0
  26. package/src/utils/isSerializedError/isSerializedError.js +10 -0
  27. package/src/utils/parseErrorFromTransport/index.d.ts +1 -0
  28. package/src/utils/parseErrorFromTransport/parseErrorFromTransport.cjs +54 -0
  29. package/src/utils/parseErrorFromTransport/parseErrorFromTransport.d.ts +11 -0
  30. package/src/utils/parseErrorFromTransport/parseErrorFromTransport.js +50 -0
  31. package/src/utils/serializeErrorForTransport/index.d.ts +1 -0
  32. package/src/utils/serializeErrorForTransport/serializeErrorForTransport.cjs +33 -0
  33. package/src/utils/serializeErrorForTransport/serializeErrorForTransport.d.ts +19 -0
  34. package/src/utils/serializeErrorForTransport/serializeErrorForTransport.js +29 -0
package/CHANGELOG.md CHANGED
@@ -1,4 +1,172 @@
1
1
 
2
+ ## [2.1.0-alpha.20](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.19...v2.1.0-alpha.20) (2024-05-21)
3
+
4
+
5
+ ### Features
6
+
7
+ * adds client.networks module ([#5650](https://github.com/dynamic-labs/DynamicAuth/issues/5650)) ([70f7fe5](https://github.com/dynamic-labs/DynamicAuth/commit/70f7fe5f437756c51e787ac12183be0a23c51b89))
8
+ * user fields supports custom fields ([#5639](https://github.com/dynamic-labs/DynamicAuth/issues/5639)) ([8eb5788](https://github.com/dynamic-labs/DynamicAuth/commit/8eb5788fc3e1286929f5949ecb57736b21b13fb5))
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * add webcredentials to expo ([#5640](https://github.com/dynamic-labs/DynamicAuth/issues/5640)) ([9026fbf](https://github.com/dynamic-labs/DynamicAuth/commit/9026fbf0108537e884588f3adcdb9f0db04a159b))
14
+ * init ethers web3provider without a network if selected network is unsupported ([#5651](https://github.com/dynamic-labs/DynamicAuth/issues/5651)) ([e82040f](https://github.com/dynamic-labs/DynamicAuth/commit/e82040f424b17a70fac4400ab5b85a0dc6c0e35a))
15
+
16
+ ## [2.1.0-alpha.19](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.18...v2.1.0-alpha.19) (2024-05-17)
17
+
18
+
19
+ ### Features
20
+
21
+ * add createUserProfileFromSDKUser ([#5596](https://github.com/dynamic-labs/DynamicAuth/issues/5596)) ([d37a1b4](https://github.com/dynamic-labs/DynamicAuth/commit/d37a1b4119f5ff4fff1e987d157f6d5abf105a8b))
22
+ * add headless social sign-in ([#5439](https://github.com/dynamic-labs/DynamicAuth/issues/5439)) ([e32fdf8](https://github.com/dynamic-labs/DynamicAuth/commit/e32fdf863718d661b90b592c8df734e92386ddf3))
23
+ * fetch custom fields in profile and update user ([#5627](https://github.com/dynamic-labs/DynamicAuth/issues/5627)) ([3940c25](https://github.com/dynamic-labs/DynamicAuth/commit/3940c2542bb330f3ed9a8eb98eed9d05c8fcb03a))
24
+
25
+
26
+ ### Bug Fixes
27
+
28
+ * include applinks details to AASA ([#5635](https://github.com/dynamic-labs/DynamicAuth/issues/5635)) ([ce94fec](https://github.com/dynamic-labs/DynamicAuth/commit/ce94fec80adbb3eb4efcb79d1aa2cc6eb35eab6f))
29
+ * include the appOrigin to every api call to create correct passkey ([#5636](https://github.com/dynamic-labs/DynamicAuth/issues/5636)) ([ee64df3](https://github.com/dynamic-labs/DynamicAuth/commit/ee64df3b90037bd29cca161e601973ef202c58f0))
30
+ * use PromptModal when using the DynamicMultiWalletPromptsWidget for pending connection views ([#5594](https://github.com/dynamic-labs/DynamicAuth/issues/5594)) ([c095b6e](https://github.com/dynamic-labs/DynamicAuth/commit/c095b6e4c974f02cfe632963be92d16bb201dfa5))
31
+
32
+ ## [2.1.0-alpha.18](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.17...v2.1.0-alpha.18) (2024-05-15)
33
+
34
+ ## [2.1.0-alpha.17](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.16...v2.1.0-alpha.17) (2024-05-15)
35
+
36
+
37
+ ### Features
38
+
39
+ * add coinbaseWalletPreference prop ([#5607](https://github.com/dynamic-labs/DynamicAuth/issues/5607)) ([1ac3b2c](https://github.com/dynamic-labs/DynamicAuth/commit/1ac3b2ce7abb136465f4aa88b045dfb70d99aad7))
40
+
41
+ ## [2.1.0-alpha.16](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.15...v2.1.0-alpha.16) (2024-05-14)
42
+
43
+
44
+ ### Features
45
+
46
+ * add client.sdk.error with errors from the webview ([#5520](https://github.com/dynamic-labs/DynamicAuth/issues/5520)) ([a886927](https://github.com/dynamic-labs/DynamicAuth/commit/a8869273bf361c870d6e3cb82a28d9ccec65905b))
47
+ * add setDefaultTabIndex to default the selected wallets tab ([#5593](https://github.com/dynamic-labs/DynamicAuth/issues/5593)) ([6e8ce05](https://github.com/dynamic-labs/DynamicAuth/commit/6e8ce053c4f6f009acc57dac55a8e9c74fbcc73b))
48
+ * add visibility/auth-flow/user-profile to react-native ([#5564](https://github.com/dynamic-labs/DynamicAuth/issues/5564)) ([d93cea8](https://github.com/dynamic-labs/DynamicAuth/commit/d93cea82a123c6ec4d3d594a7dc064f4db2981c2))
49
+
50
+ ## [2.1.0-alpha.15](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.14...v2.1.0-alpha.15) (2024-05-13)
51
+
52
+
53
+ ### Bug Fixes
54
+
55
+ * when a pregen is created, primaryWallet is not being setup ([#5584](https://github.com/dynamic-labs/DynamicAuth/issues/5584)) ([de08721](https://github.com/dynamic-labs/DynamicAuth/commit/de0872151e09f91dcbfaf1d043cf830f9df8d799))
56
+
57
+ ## [2.1.0-alpha.14](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.13...v2.1.0-alpha.14) (2024-05-09)
58
+
59
+
60
+ ### Features
61
+
62
+ * add useSwitchWallet ([#5575](https://github.com/dynamic-labs/DynamicAuth/issues/5575)) ([d3053d9](https://github.com/dynamic-labs/DynamicAuth/commit/d3053d920110c26ef8052e77bf59e07dedc7c683))
63
+
64
+
65
+ ### Bug Fixes
66
+
67
+ * linking phantom wallets in mobile ([#5524](https://github.com/dynamic-labs/DynamicAuth/issues/5524)) ([28d90f5](https://github.com/dynamic-labs/DynamicAuth/commit/28d90f5126b9c22535b63a3797cc060ef089fc63))
68
+ * only show farcaster QR code if Social Login is enabled ([#5559](https://github.com/dynamic-labs/DynamicAuth/issues/5559)) ([fa71aaf](https://github.com/dynamic-labs/DynamicAuth/commit/fa71aaf0f80da31d397600b2fd0cbea99b3689a4))
69
+ * remove goerli testnets and add sepolia ([#5565](https://github.com/dynamic-labs/DynamicAuth/issues/5565)) ([888eb03](https://github.com/dynamic-labs/DynamicAuth/commit/888eb031ef6f4dbbdc3015265cce8647d2c720b0))
70
+
71
+ ## [2.1.0-alpha.13](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.12...v2.1.0-alpha.13) (2024-05-03)
72
+
73
+
74
+ ### Bug Fixes
75
+
76
+ * ensure Farcaster QR uses useSocialAuth hook ([#5550](https://github.com/dynamic-labs/DynamicAuth/issues/5550)) ([57fcd97](https://github.com/dynamic-labs/DynamicAuth/commit/57fcd97c44e3f52065dcf856acf7bca7b24fabc7))
77
+
78
+ ## [2.1.0-alpha.12](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.11...v2.1.0-alpha.12) (2024-05-02)
79
+
80
+
81
+ ### Features
82
+
83
+ * display Farcaster QR code when it is the only login option ([#5514](https://github.com/dynamic-labs/DynamicAuth/issues/5514)) ([7b166d9](https://github.com/dynamic-labs/DynamicAuth/commit/7b166d9a30c581746f0e2edb71c44fc015dc128e))
84
+
85
+ ## [2.1.0-alpha.11](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.10...v2.1.0-alpha.11) (2024-05-02)
86
+
87
+
88
+ ### Features
89
+
90
+ * **GVTY-1050:** add account token balances hook ([#5521](https://github.com/dynamic-labs/DynamicAuth/issues/5521)) ([5a6f937](https://github.com/dynamic-labs/DynamicAuth/commit/5a6f93733019f3b8d5c7a2c7a5537172a1e7eba4))
91
+ * headless reveal embedded wallet key ([#5518](https://github.com/dynamic-labs/DynamicAuth/issues/5518)) ([77c1536](https://github.com/dynamic-labs/DynamicAuth/commit/77c15360b2b28c52cbdeafb3ce8ca7e80dbecf57))
92
+
93
+
94
+ ### Bug Fixes
95
+
96
+ * fallback to walletconnect for zerion on mobile ([#5536](https://github.com/dynamic-labs/DynamicAuth/issues/5536)) ([f0e5bfe](https://github.com/dynamic-labs/DynamicAuth/commit/f0e5bfea0b2ab271fd4c1475c8ce708ecb1a5926))
97
+
98
+ ## [2.1.0-alpha.10](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.9...v2.1.0-alpha.10) (2024-04-30)
99
+
100
+
101
+ ### Features
102
+
103
+ * bump @coinbase/wallet-sdk to latest beta ([#5388](https://github.com/dynamic-labs/DynamicAuth/issues/5388)) ([9225546](https://github.com/dynamic-labs/DynamicAuth/commit/922554630ccf2ef98bc297521309918f922bc671))
104
+
105
+ ## [2.1.0-alpha.9](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.8...v2.1.0-alpha.9) (2024-04-30)
106
+
107
+
108
+ ### Features
109
+
110
+ * headless create embedded wallet with optional passkey data parameter ([#5487](https://github.com/dynamic-labs/DynamicAuth/issues/5487)) ([891c3d7](https://github.com/dynamic-labs/DynamicAuth/commit/891c3d77a02a019140bcb8dd03b62b1afd69710e))
111
+
112
+ ## [2.1.0-alpha.8](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.7...v2.1.0-alpha.8) (2024-04-26)
113
+
114
+
115
+ ### Bug Fixes
116
+
117
+ * display wallet tabs when linking a wallet ([#5491](https://github.com/dynamic-labs/DynamicAuth/issues/5491)) ([10fd6b4](https://github.com/dynamic-labs/DynamicAuth/commit/10fd6b4d9aec7596338c50e17f79f6be534cf2c1))
118
+ * ensure zerodev viem client handles eth_accounts call ([#5477](https://github.com/dynamic-labs/DynamicAuth/issues/5477)) ([1132e1e](https://github.com/dynamic-labs/DynamicAuth/commit/1132e1e8655b58e81cb56789453ba56a059f52ec))
119
+ * network with keplr ([#5485](https://github.com/dynamic-labs/DynamicAuth/issues/5485)) ([b86f2fc](https://github.com/dynamic-labs/DynamicAuth/commit/b86f2fce491f9752e80a86643916da9ac7fb9276))
120
+ * refetch nameservice data and display properly ([#5476](https://github.com/dynamic-labs/DynamicAuth/issues/5476)) ([2aee798](https://github.com/dynamic-labs/DynamicAuth/commit/2aee798846f69496201bec7aa52e7ec1f370b7c3))
121
+ * use embeddedWallet create response authToken in embeddedWalletCreated ([#5478](https://github.com/dynamic-labs/DynamicAuth/issues/5478)) ([51772da](https://github.com/dynamic-labs/DynamicAuth/commit/51772daf557a72984c757efd8301e2b510dc37f1))
122
+
123
+ ## [2.1.0-alpha.7](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.6...v2.1.0-alpha.7) (2024-04-25)
124
+
125
+
126
+ ### Bug Fixes
127
+
128
+ * restore embedded wallet session iframe element conflict ([#5474](https://github.com/dynamic-labs/DynamicAuth/issues/5474)) ([c157477](https://github.com/dynamic-labs/DynamicAuth/commit/c157477ea126b3130b13b711796bdd06215e7af1))
129
+
130
+ ## [2.1.0-alpha.6](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.5...v2.1.0-alpha.6) (2024-04-24)
131
+
132
+
133
+ ### Bug Fixes
134
+
135
+ * embedded wallets headless session control fixes ([#5469](https://github.com/dynamic-labs/DynamicAuth/issues/5469)) ([92e6c35](https://github.com/dynamic-labs/DynamicAuth/commit/92e6c359d2710fd4f5f5a6fedc4acf6c4bab78ba))
136
+
137
+ ## [2.1.0-alpha.5](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.4...v2.1.0-alpha.5) (2024-04-23)
138
+
139
+
140
+ ### Bug Fixes
141
+
142
+ * get embedded wallet checking the wrong chain enum ([#5458](https://github.com/dynamic-labs/DynamicAuth/issues/5458)) ([ed1c523](https://github.com/dynamic-labs/DynamicAuth/commit/ed1c523ca14cd4d21c00181ab40802f876c02b80))
143
+
144
+ ## [2.1.0-alpha.4](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.3...v2.1.0-alpha.4) (2024-04-23)
145
+
146
+
147
+ ### Features
148
+
149
+ * add email and sms to client auth module ([#5436](https://github.com/dynamic-labs/DynamicAuth/issues/5436)) ([5420476](https://github.com/dynamic-labs/DynamicAuth/commit/5420476d1ba38fd4f987f28e9aefbfb3e61ea2bf))
150
+ * headless create passkeys for embedded wallets ([#5395](https://github.com/dynamic-labs/DynamicAuth/issues/5395)) ([0b64099](https://github.com/dynamic-labs/DynamicAuth/commit/0b6409968457f65886248f0a0879e39ec3803fd0))
151
+
152
+
153
+ ### Bug Fixes
154
+
155
+ * prevent wagmi from reconnect when DynamicContextProvider rerender ([#5446](https://github.com/dynamic-labs/DynamicAuth/issues/5446)) ([33337af](https://github.com/dynamic-labs/DynamicAuth/commit/33337af76786963cb3db7fa7c58c1292c529d0ac))
156
+
157
+ ## [2.1.0-alpha.3](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.2...v2.1.0-alpha.3) (2024-04-23)
158
+
159
+
160
+ ### Features
161
+
162
+ * add merge user accounts flow ([#5429](https://github.com/dynamic-labs/DynamicAuth/issues/5429)) ([41d4239](https://github.com/dynamic-labs/DynamicAuth/commit/41d423906625e28004ba8f20baf57847ed8bf5d0))
163
+
164
+
165
+ ### Bug Fixes
166
+
167
+ * disconnect wallet on lock in connect-only ([#5422](https://github.com/dynamic-labs/DynamicAuth/issues/5422)) ([a26f9fe](https://github.com/dynamic-labs/DynamicAuth/commit/a26f9fe93cf8568f1482e10b831de98c77fb2a2d))
168
+ * useReactiveProxy to stop proxing when it finds a reactive value ([#5428](https://github.com/dynamic-labs/DynamicAuth/issues/5428)) ([838dce9](https://github.com/dynamic-labs/DynamicAuth/commit/838dce9ee953361e41772239a91adb1dd8d40234))
169
+
2
170
  ## [2.1.0-alpha.2](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.1...v2.1.0-alpha.2) (2024-04-19)
3
171
 
4
172
 
@@ -18,6 +18,18 @@ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
18
18
  PERFORMANCE OF THIS SOFTWARE.
19
19
  ***************************************************************************** */
20
20
 
21
+ function __rest(s, e) {
22
+ var t = {};
23
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
24
+ t[p] = s[p];
25
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
26
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
27
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
28
+ t[p[i]] = s[p[i]];
29
+ }
30
+ return t;
31
+ }
32
+
21
33
  function __awaiter(thisArg, _arguments, P, generator) {
22
34
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
23
35
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -34,3 +46,4 @@ typeof SuppressedError === "function" ? SuppressedError : function (error, suppr
34
46
  };
35
47
 
36
48
  exports.__awaiter = __awaiter;
49
+ exports.__rest = __rest;
@@ -14,6 +14,18 @@ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
14
14
  PERFORMANCE OF THIS SOFTWARE.
15
15
  ***************************************************************************** */
16
16
 
17
+ function __rest(s, e) {
18
+ var t = {};
19
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
20
+ t[p] = s[p];
21
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
22
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
23
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
24
+ t[p[i]] = s[p[i]];
25
+ }
26
+ return t;
27
+ }
28
+
17
29
  function __awaiter(thisArg, _arguments, P, generator) {
18
30
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
19
31
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -29,4 +41,4 @@ typeof SuppressedError === "function" ? SuppressedError : function (error, suppr
29
41
  return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
30
42
  };
31
43
 
32
- export { __awaiter };
44
+ export { __awaiter, __rest };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynamic-labs/message-transport",
3
- "version": "2.1.0-alpha.2",
3
+ "version": "2.1.0-alpha.20",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/dynamic-labs/DynamicAuth.git",
@@ -27,7 +27,7 @@
27
27
  },
28
28
  "dependencies": {
29
29
  "@vue/reactivity": "3.4.21",
30
- "@dynamic-labs/types": "2.1.0-alpha.2",
30
+ "@dynamic-labs/types": "2.1.0-alpha.20",
31
31
  "eventemitter3": "5.0.1"
32
32
  }
33
33
  }
package/src/index.cjs CHANGED
@@ -8,7 +8,9 @@ var applyDefaultMessageOrigin = require('./messageTransport/decorators/applyDefa
8
8
  var makeWaitForInitEvent = require('./messageTransport/decorators/makeWaitForInitEvent/makeWaitForInitEvent.cjs');
9
9
  var makeWaitForUnblock = require('./messageTransport/decorators/makeWaitForUnblock/makeWaitForUnblock.cjs');
10
10
  var requestChannel = require('./requestChannel/requestChannel.cjs');
11
+ var parseErrorFromTransport = require('./utils/parseErrorFromTransport/parseErrorFromTransport.cjs');
11
12
  var parseMessageTransportData = require('./utils/parseMessageTransportData/parseMessageTransportData.cjs');
13
+ var serializeErrorForTransport = require('./utils/serializeErrorForTransport/serializeErrorForTransport.cjs');
12
14
  var createEventEmitterForMessages = require('./store/createEventEmitterForMessages/createEventEmitterForMessages.cjs');
13
15
  var store = require('./store/store.cjs');
14
16
  var storeSetter = require('./store/storeSetter/storeSetter.cjs');
@@ -21,7 +23,9 @@ exports.applyDefaultMessageOrigin = applyDefaultMessageOrigin.applyDefaultMessag
21
23
  exports.makeWaitForInitEvent = makeWaitForInitEvent.makeWaitForInitEvent;
22
24
  exports.makeWaitForUnblock = makeWaitForUnblock.makeWaitForUnblock;
23
25
  exports.createRequestChannel = requestChannel.createRequestChannel;
26
+ exports.parseErrorFromTransport = parseErrorFromTransport.parseErrorFromTransport;
24
27
  exports.parseMessageTransportData = parseMessageTransportData.parseMessageTransportData;
28
+ exports.serializeErrorForTransport = serializeErrorForTransport.serializeErrorForTransport;
25
29
  exports.createEventEmitterForMessages = createEventEmitterForMessages.createEventEmitterForMessages;
26
30
  exports.createStore = store.createStore;
27
31
  exports.createStoreSetter = storeSetter.createStoreSetter;
package/src/index.d.ts CHANGED
@@ -1,6 +1,8 @@
1
1
  export { applyDefaultMessageOrigin, createMessageTransport, makeWaitForInitEvent, makeWaitForUnblock, type BypassBlockCallback, type MessageTransport, type MessageTransportCallback, type MessageTransportData, type MessageTransportDataOptionalOrigin, type MessageTransportWithDefaultOrigin, } from './messageTransport';
2
2
  export { createRequestChannel, type RequestChannel } from './requestChannel';
3
+ export { parseErrorFromTransport } from './utils/parseErrorFromTransport';
3
4
  export { parseMessageTransportData } from './utils/parseMessageTransportData';
5
+ export { serializeErrorForTransport } from './utils/serializeErrorForTransport';
4
6
  export { createEventEmitterForMessages, createStore, createStoreSetter, type MessagesForEventEmitter, } from './store';
5
- export type { Store, StoreKeys, StoreSetter, StoreStateEvents, StoreStateGetters, StoreEventListeners, } from './store/types';
6
- export { sdkHasLoadedEventName, type AuthModuleMessages, type AuthModuleState, type ClientManifest, type OtpExtensionMessages, type SdkModuleMessages, type SdkModuleState, type WalletsModuleState, } from './messageTypes';
7
+ export type { Store, StoreEventListeners, StoreKeys, StoreSetter, StoreStateEvents, StoreStateGetters, } from './store/types';
8
+ export { sdkHasLoadedEventName, type AuthModuleMessages, type AuthModuleState, type ClientManifest, type ConsoleMessages, type EmbeddedWalletsModuleMessages, type EmbeddedWalletsModuleState, type EthMessages, type FetchMessages, type OtpMessages, type PasskeyMessages, type SdkModuleMessages, type SdkModuleState, type UserInterfaceModuleMessages, type WalletsModuleMessages, type WalletsModuleState, type WebViewVisibilityMessages, type NetworksModuleState, } from './messageTypes';
package/src/index.js CHANGED
@@ -4,7 +4,9 @@ export { applyDefaultMessageOrigin } from './messageTransport/decorators/applyDe
4
4
  export { makeWaitForInitEvent } from './messageTransport/decorators/makeWaitForInitEvent/makeWaitForInitEvent.js';
5
5
  export { makeWaitForUnblock } from './messageTransport/decorators/makeWaitForUnblock/makeWaitForUnblock.js';
6
6
  export { createRequestChannel } from './requestChannel/requestChannel.js';
7
+ export { parseErrorFromTransport } from './utils/parseErrorFromTransport/parseErrorFromTransport.js';
7
8
  export { parseMessageTransportData } from './utils/parseMessageTransportData/parseMessageTransportData.js';
9
+ export { serializeErrorForTransport } from './utils/serializeErrorForTransport/serializeErrorForTransport.js';
8
10
  export { createEventEmitterForMessages } from './store/createEventEmitterForMessages/createEventEmitterForMessages.js';
9
11
  export { createStore } from './store/store.js';
10
12
  export { createStoreSetter } from './store/storeSetter/storeSetter.js';
@@ -0,0 +1,11 @@
1
+ import { SerializedError } from '../utils/serializeErrorForTransport';
2
+ export type ConsoleMessages = {
3
+ error: (serializedError: SerializedError, props: {
4
+ /**
5
+ * Describes the severity of the error sent to the host.
6
+ * fatal: The error has not been handled and the SDK is unusable.
7
+ * log-only: The error has been handled but should still be logged.
8
+ */
9
+ severity: 'fatal' | 'log-only';
10
+ }) => void;
11
+ };
@@ -0,0 +1,8 @@
1
+ import { BaseWallet } from '@dynamic-labs/types';
2
+ export type EmbeddedWalletsModuleState = {
3
+ hasWallet: boolean;
4
+ };
5
+ export type EmbeddedWalletsModuleMessages = {
6
+ getWallet: () => Promise<BaseWallet | null>;
7
+ createWallet: () => Promise<BaseWallet>;
8
+ };
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Messages exchanged for evm requests.
3
+ */
4
+ export type EthMessages = {
5
+ ethRequest(props: {
6
+ method: string;
7
+ params: readonly unknown[];
8
+ } & ({
9
+ address: string;
10
+ } | {
11
+ chainId: number;
12
+ })): Promise<string>;
13
+ };
@@ -0,0 +1,8 @@
1
+ export type FetchMessages = {
2
+ fetch: (input: RequestInfo, init?: RequestInit) => Promise<{
3
+ body: string;
4
+ status: number;
5
+ statusText: string;
6
+ headers: Record<string, string>;
7
+ }>;
8
+ };
@@ -0,0 +1,4 @@
1
+ import { GenericNetwork } from '@dynamic-labs/types';
2
+ export type NetworksModuleState = {
3
+ evm: GenericNetwork[];
4
+ };
@@ -6,7 +6,7 @@ type OtpData = {
6
6
  destination: Extract<OtpDestination, 'sms'>;
7
7
  target: PhoneData;
8
8
  };
9
- export type OtpExtensionMessages = {
9
+ export type OtpMessages = {
10
10
  /** Request to send an OTP to a destination for verification */
11
11
  sendOTP: (data: OtpData) => Promise<void>;
12
12
  /** Performs verification for the latest send OTP */
@@ -0,0 +1,32 @@
1
+ type CustomPublicKeyCredentialUserEntity = Omit<PublicKeyCredentialUserEntity, 'id'> & {
2
+ id: string;
3
+ };
4
+ type CustomPublicKeyCredentialRpEntity = Omit<PublicKeyCredentialRpEntity, 'id'> & {
5
+ id: string;
6
+ };
7
+ export type PasskeyMessages = {
8
+ createPasskey: (params: {
9
+ publicKey: {
10
+ authenticatorName: string;
11
+ attestation?: AttestationConveyancePreference;
12
+ authenticatorSelection?: AuthenticatorSelectionCriteria;
13
+ challenge?: string;
14
+ pubKeyCredParams: PublicKeyCredentialParameters[];
15
+ rp: CustomPublicKeyCredentialRpEntity;
16
+ timeout?: number;
17
+ user: CustomPublicKeyCredentialUserEntity;
18
+ };
19
+ }) => Promise<{
20
+ attestation: {
21
+ credentialId: string;
22
+ clientDataJson: string;
23
+ attestationObject: string;
24
+ transports: ('AUTHENTICATOR_TRANSPORT_BLE' | 'AUTHENTICATOR_TRANSPORT_INTERNAL' | 'AUTHENTICATOR_TRANSPORT_NFC' | 'AUTHENTICATOR_TRANSPORT_USB' | 'AUTHENTICATOR_TRANSPORT_HYBRID')[];
25
+ };
26
+ }>;
27
+ passkeyStamp: (rdId: string, payload: string) => Promise<{
28
+ stampHeaderName: string;
29
+ stampHeaderValue: string;
30
+ }>;
31
+ };
32
+ export {};
@@ -3,12 +3,13 @@
3
3
  * inside the webview
4
4
  */
5
5
  export type ClientManifest = {
6
- environmentId: string;
7
- clientVersion: string;
8
6
  apiBaseUrl?: string;
9
- appName?: string;
10
7
  appLogoUrl?: string;
8
+ appName?: string;
9
+ appOrigin?: string;
10
+ clientVersion: string;
11
11
  cssOverrides?: string;
12
+ environmentId: string;
12
13
  };
13
14
  export type SdkModuleState = {
14
15
  /** Indicates the SDK is set up and ready for requests */
@@ -0,0 +1,4 @@
1
+ export type UserInterfaceModuleMessages = {
2
+ openUserProfile: () => void;
3
+ openAuthFlow: () => void;
4
+ };
@@ -3,3 +3,25 @@ export type WalletsModuleState = {
3
3
  userWallets: BaseWallet[];
4
4
  primary: BaseWallet | undefined;
5
5
  };
6
+ export type WalletsModuleMessages = {
7
+ getBalance: (params: {
8
+ wallet: BaseWallet;
9
+ }) => Promise<{
10
+ balance: string;
11
+ }>;
12
+ signMessage: (params: {
13
+ wallet: BaseWallet;
14
+ message: string;
15
+ }) => Promise<{
16
+ signedMessage: string;
17
+ }>;
18
+ getNetwork: (params: {
19
+ wallet: BaseWallet;
20
+ }) => Promise<{
21
+ network: string | number;
22
+ }>;
23
+ switchNetwork: (params: {
24
+ wallet: BaseWallet;
25
+ chainId: string | number;
26
+ }) => Promise<void>;
27
+ };
@@ -0,0 +1,3 @@
1
+ export type WebViewVisibilityMessages = {
2
+ setVisibility: (visible: boolean) => void;
3
+ };
@@ -1,4 +1,12 @@
1
1
  export * from './AuthModuleMessages';
2
- export * from './OtpExtensionMessages';
2
+ export * from './ConsoleMessages';
3
+ export * from './EmbeddedWalletsModuleMessages';
4
+ export * from './EthMessages';
5
+ export * from './FetchMessages';
6
+ export * from './OtpMessages';
7
+ export * from './PasskeyMessages';
3
8
  export * from './SdkModuleMessages';
9
+ export * from './UserInterfaceModuleMessages';
4
10
  export * from './WalletsModuleMessages';
11
+ export * from './WebViewVisibilityMessages';
12
+ export * from './NetworksModuleMessages';
@@ -4,6 +4,9 @@
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
6
  var _tslib = require('../../_virtual/_tslib.cjs');
7
+ var parseErrorFromTransport = require('../utils/parseErrorFromTransport/parseErrorFromTransport.cjs');
8
+ var serializeErrorForTransport = require('../utils/serializeErrorForTransport/serializeErrorForTransport.cjs');
9
+ var isSerializedError = require('../utils/isSerializedError/isSerializedError.cjs');
7
10
 
8
11
  /** Given a request event name, returns the event name for its resolve */
9
12
  const getResolveMessageType = (type) => `${type}__resolve`;
@@ -65,7 +68,7 @@ const createRequestChannel = (messageTransport) => {
65
68
  }
66
69
  catch (error) {
67
70
  messageTransport.emit({
68
- args: [error],
71
+ args: [serializeErrorForTransport.serializeErrorForTransport(error)],
69
72
  messageSessionId,
70
73
  type: getRejectMessageType(requestType),
71
74
  });
@@ -92,7 +95,12 @@ const createRequestChannel = (messageTransport) => {
92
95
  cleanup();
93
96
  }
94
97
  if (incomingType === rejectMessageType) {
95
- reject(result);
98
+ if (isSerializedError.isSerializedError(result)) {
99
+ reject(parseErrorFromTransport.parseErrorFromTransport(result));
100
+ }
101
+ else {
102
+ reject(result);
103
+ }
96
104
  cleanup();
97
105
  }
98
106
  };
@@ -1,5 +1,8 @@
1
1
  'use client'
2
2
  import { __awaiter } from '../../_virtual/_tslib.js';
3
+ import { parseErrorFromTransport } from '../utils/parseErrorFromTransport/parseErrorFromTransport.js';
4
+ import { serializeErrorForTransport } from '../utils/serializeErrorForTransport/serializeErrorForTransport.js';
5
+ import { isSerializedError } from '../utils/isSerializedError/isSerializedError.js';
3
6
 
4
7
  /** Given a request event name, returns the event name for its resolve */
5
8
  const getResolveMessageType = (type) => `${type}__resolve`;
@@ -61,7 +64,7 @@ const createRequestChannel = (messageTransport) => {
61
64
  }
62
65
  catch (error) {
63
66
  messageTransport.emit({
64
- args: [error],
67
+ args: [serializeErrorForTransport(error)],
65
68
  messageSessionId,
66
69
  type: getRejectMessageType(requestType),
67
70
  });
@@ -88,7 +91,12 @@ const createRequestChannel = (messageTransport) => {
88
91
  cleanup();
89
92
  }
90
93
  if (incomingType === rejectMessageType) {
91
- reject(result);
94
+ if (isSerializedError(result)) {
95
+ reject(parseErrorFromTransport(result));
96
+ }
97
+ else {
98
+ reject(result);
99
+ }
92
100
  cleanup();
93
101
  }
94
102
  };
@@ -1,5 +1,5 @@
1
1
  import EventEmitter from 'eventemitter3';
2
- export type StoreKeys = 'auth' | 'sdk' | 'wallets';
2
+ export type StoreKeys = 'auth' | 'sdk' | 'wallets' | 'embeddedWallets' | 'networks';
3
3
  /**
4
4
  * Readonly getters for the store values
5
5
  */
@@ -0,0 +1 @@
1
+ export { isSerializedError } from './isSerializedError';
@@ -0,0 +1,14 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ const isSerializedError = (serializedError) => {
7
+ if (typeof serializedError !== 'object' || serializedError === null) {
8
+ return false;
9
+ }
10
+ const { message, stack } = serializedError;
11
+ return typeof message === 'string' && typeof stack === 'string';
12
+ };
13
+
14
+ exports.isSerializedError = isSerializedError;
@@ -0,0 +1,2 @@
1
+ import { SerializedError } from '../serializeErrorForTransport';
2
+ export declare const isSerializedError: (serializedError: SerializedError | unknown) => serializedError is SerializedError;
@@ -0,0 +1,10 @@
1
+ 'use client'
2
+ const isSerializedError = (serializedError) => {
3
+ if (typeof serializedError !== 'object' || serializedError === null) {
4
+ return false;
5
+ }
6
+ const { message, stack } = serializedError;
7
+ return typeof message === 'string' && typeof stack === 'string';
8
+ };
9
+
10
+ export { isSerializedError };
@@ -0,0 +1 @@
1
+ export { parseErrorFromTransport } from './parseErrorFromTransport';
@@ -0,0 +1,54 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var _tslib = require('../../../_virtual/_tslib.cjs');
7
+
8
+ /**
9
+ * Parses a serialized error object back into an Error instance.
10
+ * This function will recreate an Error or a specific subclass of Error
11
+ * based on the name property if it matches known error types.
12
+ * Additional properties are added back to the reconstructed error object.
13
+ *
14
+ * @param {SerializedError} serializedError - The serialized error object to parse.
15
+ * @returns {Error} - The reconstructed Error instance.
16
+ */
17
+ const parseErrorFromTransport = (serializedError) => {
18
+ const { message, name, stack } = serializedError, otherProps = _tslib.__rest(serializedError, ["message", "name", "stack"]);
19
+ let error;
20
+ // Determine the type of the error based on the 'name' property and instantiate accordingly
21
+ switch (name) {
22
+ case 'TypeError':
23
+ error = new TypeError(message);
24
+ break;
25
+ case 'ReferenceError':
26
+ error = new ReferenceError(message);
27
+ break;
28
+ case 'SyntaxError':
29
+ error = new SyntaxError(message);
30
+ break;
31
+ case 'RangeError':
32
+ error = new RangeError(message);
33
+ break;
34
+ case 'EvalError':
35
+ error = new EvalError(message);
36
+ break;
37
+ case 'URIError':
38
+ error = new URIError(message);
39
+ break;
40
+ default:
41
+ // Default to a generic Error if the specific type isn't recognized
42
+ error = new Error(message);
43
+ error.name = name || 'Error'; // Ensure the name is set, defaulting to 'Error' if not provided
44
+ }
45
+ // Reattach the stack trace and any other enumerable properties
46
+ if (stack) {
47
+ error.stack = [message, stack].join('\n');
48
+ }
49
+ // Reattach other custom properties that may have been serialized
50
+ Object.assign(error, otherProps);
51
+ return error;
52
+ };
53
+
54
+ exports.parseErrorFromTransport = parseErrorFromTransport;
@@ -0,0 +1,11 @@
1
+ import { SerializedError } from '../serializeErrorForTransport';
2
+ /**
3
+ * Parses a serialized error object back into an Error instance.
4
+ * This function will recreate an Error or a specific subclass of Error
5
+ * based on the name property if it matches known error types.
6
+ * Additional properties are added back to the reconstructed error object.
7
+ *
8
+ * @param {SerializedError} serializedError - The serialized error object to parse.
9
+ * @returns {Error} - The reconstructed Error instance.
10
+ */
11
+ export declare const parseErrorFromTransport: (serializedError: SerializedError) => Error;
@@ -0,0 +1,50 @@
1
+ 'use client'
2
+ import { __rest } from '../../../_virtual/_tslib.js';
3
+
4
+ /**
5
+ * Parses a serialized error object back into an Error instance.
6
+ * This function will recreate an Error or a specific subclass of Error
7
+ * based on the name property if it matches known error types.
8
+ * Additional properties are added back to the reconstructed error object.
9
+ *
10
+ * @param {SerializedError} serializedError - The serialized error object to parse.
11
+ * @returns {Error} - The reconstructed Error instance.
12
+ */
13
+ const parseErrorFromTransport = (serializedError) => {
14
+ const { message, name, stack } = serializedError, otherProps = __rest(serializedError, ["message", "name", "stack"]);
15
+ let error;
16
+ // Determine the type of the error based on the 'name' property and instantiate accordingly
17
+ switch (name) {
18
+ case 'TypeError':
19
+ error = new TypeError(message);
20
+ break;
21
+ case 'ReferenceError':
22
+ error = new ReferenceError(message);
23
+ break;
24
+ case 'SyntaxError':
25
+ error = new SyntaxError(message);
26
+ break;
27
+ case 'RangeError':
28
+ error = new RangeError(message);
29
+ break;
30
+ case 'EvalError':
31
+ error = new EvalError(message);
32
+ break;
33
+ case 'URIError':
34
+ error = new URIError(message);
35
+ break;
36
+ default:
37
+ // Default to a generic Error if the specific type isn't recognized
38
+ error = new Error(message);
39
+ error.name = name || 'Error'; // Ensure the name is set, defaulting to 'Error' if not provided
40
+ }
41
+ // Reattach the stack trace and any other enumerable properties
42
+ if (stack) {
43
+ error.stack = [message, stack].join('\n');
44
+ }
45
+ // Reattach other custom properties that may have been serialized
46
+ Object.assign(error, otherProps);
47
+ return error;
48
+ };
49
+
50
+ export { parseErrorFromTransport };
@@ -0,0 +1 @@
1
+ export { serializeErrorForTransport, type SerializedError, } from './serializeErrorForTransport';
@@ -0,0 +1,33 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ /**
7
+ * Serializes an error to a JSON object to be sent by transport.
8
+ * This function checks if the input is an instance of Error to capture
9
+ * standard properties like message, name, and stack. It also attempts to
10
+ * serialize any enumerable properties that are present on error-like objects.
11
+ *
12
+ * @param {unknown} err - The error or error-like object to serialize.
13
+ * @returns {SerializedError} - The serialized error object.
14
+ */
15
+ const serializeErrorForTransport = (err) => {
16
+ if (err instanceof Error) {
17
+ return Object.assign({
18
+ // @ts-expect-error message is a standard property of Error
19
+ message: err.message,
20
+ // @ts-expect-error name is a standard property of Error
21
+ name: err.name, stack: err.stack }, err);
22
+ }
23
+ else if (typeof err === 'object' && err !== null) {
24
+ const plainObject = {};
25
+ for (const [key, value] of Object.entries(err)) {
26
+ plainObject[key] = value;
27
+ }
28
+ return plainObject;
29
+ }
30
+ return { message: String(err) };
31
+ };
32
+
33
+ exports.serializeErrorForTransport = serializeErrorForTransport;
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Defines the shape of a serialized error object.
3
+ */
4
+ export type SerializedError = {
5
+ message?: string;
6
+ name?: string;
7
+ stack?: string;
8
+ [key: string]: unknown;
9
+ };
10
+ /**
11
+ * Serializes an error to a JSON object to be sent by transport.
12
+ * This function checks if the input is an instance of Error to capture
13
+ * standard properties like message, name, and stack. It also attempts to
14
+ * serialize any enumerable properties that are present on error-like objects.
15
+ *
16
+ * @param {unknown} err - The error or error-like object to serialize.
17
+ * @returns {SerializedError} - The serialized error object.
18
+ */
19
+ export declare const serializeErrorForTransport: (err: unknown) => SerializedError;
@@ -0,0 +1,29 @@
1
+ 'use client'
2
+ /**
3
+ * Serializes an error to a JSON object to be sent by transport.
4
+ * This function checks if the input is an instance of Error to capture
5
+ * standard properties like message, name, and stack. It also attempts to
6
+ * serialize any enumerable properties that are present on error-like objects.
7
+ *
8
+ * @param {unknown} err - The error or error-like object to serialize.
9
+ * @returns {SerializedError} - The serialized error object.
10
+ */
11
+ const serializeErrorForTransport = (err) => {
12
+ if (err instanceof Error) {
13
+ return Object.assign({
14
+ // @ts-expect-error message is a standard property of Error
15
+ message: err.message,
16
+ // @ts-expect-error name is a standard property of Error
17
+ name: err.name, stack: err.stack }, err);
18
+ }
19
+ else if (typeof err === 'object' && err !== null) {
20
+ const plainObject = {};
21
+ for (const [key, value] of Object.entries(err)) {
22
+ plainObject[key] = value;
23
+ }
24
+ return plainObject;
25
+ }
26
+ return { message: String(err) };
27
+ };
28
+
29
+ export { serializeErrorForTransport };