@dynamic-labs/utils 4.9.1-preview.0 → 4.9.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 (35) hide show
  1. package/CHANGELOG.md +11 -2
  2. package/package.cjs +1 -1
  3. package/package.js +1 -1
  4. package/package.json +4 -4
  5. package/src/index.cjs +2 -0
  6. package/src/index.d.ts +1 -0
  7. package/src/index.js +1 -0
  8. package/src/setupInsideIframe/index.d.ts +1 -0
  9. package/src/setupInsideIframe/setupInsideIframe.cjs +18 -0
  10. package/src/setupInsideIframe/setupInsideIframe.d.ts +1 -0
  11. package/src/setupInsideIframe/setupInsideIframe.js +14 -0
  12. package/src/setupInsideIframe/types.d.ts +18 -0
  13. package/src/setupInsideIframe/utils/createMessageHandler/createMessageHandler.cjs +30 -0
  14. package/src/setupInsideIframe/utils/createMessageHandler/createMessageHandler.d.ts +2 -0
  15. package/src/setupInsideIframe/utils/createMessageHandler/createMessageHandler.js +26 -0
  16. package/src/setupInsideIframe/utils/createMessageHandler/index.d.ts +1 -0
  17. package/src/setupInsideIframe/utils/createMessageSender/createMessageSender.cjs +8 -0
  18. package/src/setupInsideIframe/utils/createMessageSender/createMessageSender.d.ts +2 -0
  19. package/src/setupInsideIframe/utils/createMessageSender/createMessageSender.js +4 -0
  20. package/src/setupInsideIframe/utils/createMessageSender/index.d.ts +1 -0
  21. package/src/setupInsideIframe/utils/getInitialParentURL/getInitialParentURL.cjs +14 -0
  22. package/src/setupInsideIframe/utils/getInitialParentURL/getInitialParentURL.d.ts +1 -0
  23. package/src/setupInsideIframe/utils/getInitialParentURL/getInitialParentURL.js +10 -0
  24. package/src/setupInsideIframe/utils/getInitialParentURL/index.d.ts +1 -0
  25. package/src/setupInsideIframe/utils/logger.cjs +10 -0
  26. package/src/setupInsideIframe/utils/logger.d.ts +2 -0
  27. package/src/setupInsideIframe/utils/logger.js +6 -0
  28. package/src/setupInsideIframe/utils/setupPlatformEventsService/index.d.ts +1 -0
  29. package/src/setupInsideIframe/utils/setupPlatformEventsService/setupPlatformEventsService.cjs +23 -0
  30. package/src/setupInsideIframe/utils/setupPlatformEventsService/setupPlatformEventsService.d.ts +1 -0
  31. package/src/setupInsideIframe/utils/setupPlatformEventsService/setupPlatformEventsService.js +15 -0
  32. package/src/setupInsideIframe/utils/setupPlatformService/index.d.ts +1 -0
  33. package/src/setupInsideIframe/utils/setupPlatformService/setupPlatformService.cjs +37 -0
  34. package/src/setupInsideIframe/utils/setupPlatformService/setupPlatformService.d.ts +1 -0
  35. package/src/setupInsideIframe/utils/setupPlatformService/setupPlatformService.js +33 -0
package/CHANGELOG.md CHANGED
@@ -1,11 +1,20 @@
1
1
 
2
- ### [4.9.1-preview.0](https://github.com/dynamic-labs/dynamic-auth/compare/v4.9.0...v4.9.1-preview.0) (2025-03-07)
2
+ ### [4.9.1](https://github.com/dynamic-labs/dynamic-auth/compare/v4.9.0...v4.9.1) (2025-03-11)
3
+
4
+
5
+ ### Features
6
+
7
+ * waas svm connector ([#8191](https://github.com/dynamic-labs/dynamic-auth/issues/8191)) ([049a360](https://github.com/dynamic-labs/dynamic-auth/commit/049a360642d6aa2122676c7a29d36a7baef9e49b))
3
8
 
4
9
 
5
10
  ### Bug Fixes
6
11
 
7
12
  * 7702 on sepolia ([#8242](https://github.com/dynamic-labs/dynamic-auth/issues/8242)) ([8e1c63f](https://github.com/dynamic-labs/dynamic-auth/commit/8e1c63f240024f419e12787636dd2ebaacf8da94))
8
- * embedded widget race condition that would show both embedded and non-embedded widgets at the same time ([8a52778](https://github.com/dynamic-labs/dynamic-auth/commit/8a5277888489e03871532331760c197aa6216495))
13
+ * close auth flow when promptExport enabled but createWallet is false ([#8239](https://github.com/dynamic-labs/dynamic-auth/issues/8239)) ([f82429f](https://github.com/dynamic-labs/dynamic-auth/commit/f82429f85e729a76c2516f0db112033fdd2a36d5))
14
+ * fix solana genesis hashes bug that was causing a breaking change ([#8250](https://github.com/dynamic-labs/dynamic-auth/issues/8250)) ([731c93b](https://github.com/dynamic-labs/dynamic-auth/commit/731c93bea4b8b95caa8cc665f2ecb53f9948ef8e))
15
+ * move setup-inside-iframe utility method to the utils package ([#8256](https://github.com/dynamic-labs/dynamic-auth/issues/8256)) ([d34eb6d](https://github.com/dynamic-labs/dynamic-auth/commit/d34eb6d211baecb496b84fefaee8179a5fb1b52a))
16
+ * **QNTM-2952:** support headless social sign in ([#8226](https://github.com/dynamic-labs/dynamic-auth/issues/8226)) ([0c3082d](https://github.com/dynamic-labs/dynamic-auth/commit/0c3082d593c633519c9eed20be15186f18f65c09))
17
+ * sign message with trust wallet on solana ([#8249](https://github.com/dynamic-labs/dynamic-auth/issues/8249)) ([99a7917](https://github.com/dynamic-labs/dynamic-auth/commit/99a791796f7d2c83b9f18e45367aa9689c67869d))
9
18
 
10
19
  ## [4.9.0](https://github.com/dynamic-labs/dynamic-auth/compare/v4.8.6...v4.9.0) (2025-03-07)
11
20
 
package/package.cjs CHANGED
@@ -3,6 +3,6 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
- var version = "4.9.1-preview.0";
6
+ var version = "4.9.1";
7
7
 
8
8
  exports.version = version;
package/package.js CHANGED
@@ -1,4 +1,4 @@
1
1
  'use client'
2
- var version = "4.9.1-preview.0";
2
+ var version = "4.9.1";
3
3
 
4
4
  export { version };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynamic-labs/utils",
3
- "version": "4.9.1-preview.0",
3
+ "version": "4.9.1",
4
4
  "description": "A React SDK for implementing wallet web3 authentication and authorization to your website.",
5
5
  "author": "Dynamic Labs, Inc.",
6
6
  "license": "MIT",
@@ -20,9 +20,9 @@
20
20
  "dependencies": {
21
21
  "@dynamic-labs/sdk-api-core": "0.0.638",
22
22
  "tldts": "6.0.16",
23
- "@dynamic-labs/assert-package-version": "4.9.1-preview.0",
24
- "@dynamic-labs/logger": "4.9.1-preview.0",
25
- "@dynamic-labs/types": "4.9.1-preview.0",
23
+ "@dynamic-labs/assert-package-version": "4.9.1",
24
+ "@dynamic-labs/logger": "4.9.1",
25
+ "@dynamic-labs/types": "4.9.1",
26
26
  "buffer": "6.0.3",
27
27
  "eventemitter3": "5.0.1"
28
28
  },
package/src/index.cjs CHANGED
@@ -101,6 +101,7 @@ var applyPostfixToStorageService = require('./services/StorageService/applyPostf
101
101
  var connectWithAppleId = require('./services/Oauth2Service/utils/connectWithAppleId/connectWithAppleId.cjs');
102
102
  var solToLamports = require('./solToLamports/solToLamports.cjs');
103
103
  var getEnvVarWithFallback = require('./env/getEnvVarWithFallback.cjs');
104
+ var setupInsideIframe = require('./setupInsideIframe/setupInsideIframe.cjs');
104
105
 
105
106
  assertPackageVersion.assertPackageVersion('@dynamic-labs/utils', _package.version);
106
107
 
@@ -222,3 +223,4 @@ exports.applyPostfixToStorageService = applyPostfixToStorageService.applyPostfix
222
223
  exports.connectWithAppleId = connectWithAppleId.connectWithAppleId;
223
224
  exports.solToLamports = solToLamports.solToLamports;
224
225
  exports.getEnvVarWithFallback = getEnvVarWithFallback.getEnvVarWithFallback;
226
+ exports.setupInsideIframe = setupInsideIframe.setupInsideIframe;
package/src/index.d.ts CHANGED
@@ -45,3 +45,4 @@ export { type IStorageService, type StorageOptions, StorageService, createStorag
45
45
  export { connectWithAppleId } from './services/Oauth2Service/utils/connectWithAppleId';
46
46
  export { solToLamports } from './solToLamports';
47
47
  export { getEnvVarWithFallback } from './env/getEnvVarWithFallback';
48
+ export { setupInsideIframe } from './setupInsideIframe';
package/src/index.js CHANGED
@@ -97,5 +97,6 @@ export { applyPostfixToStorageService } from './services/StorageService/applyPos
97
97
  export { connectWithAppleId } from './services/Oauth2Service/utils/connectWithAppleId/connectWithAppleId.js';
98
98
  export { solToLamports } from './solToLamports/solToLamports.js';
99
99
  export { getEnvVarWithFallback } from './env/getEnvVarWithFallback.js';
100
+ export { setupInsideIframe } from './setupInsideIframe/setupInsideIframe.js';
100
101
 
101
102
  assertPackageVersion('@dynamic-labs/utils', version);
@@ -0,0 +1 @@
1
+ export { setupInsideIframe } from './setupInsideIframe';
@@ -0,0 +1,18 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var setupPlatformService = require('./utils/setupPlatformService/setupPlatformService.cjs');
7
+ var getInitialParentURL = require('./utils/getInitialParentURL/getInitialParentURL.cjs');
8
+ var setupPlatformEventsService = require('./utils/setupPlatformEventsService/setupPlatformEventsService.cjs');
9
+
10
+ const setupInsideIframe = () => {
11
+ // Get the initial parent URL
12
+ const initialParentURL = getInitialParentURL.getInitialParentURL();
13
+ // Setup services
14
+ setupPlatformService.setupPlatformService(initialParentURL);
15
+ setupPlatformEventsService.setupPlatformEventsService(initialParentURL);
16
+ };
17
+
18
+ exports.setupInsideIframe = setupInsideIframe;
@@ -0,0 +1 @@
1
+ export declare const setupInsideIframe: () => void;
@@ -0,0 +1,14 @@
1
+ 'use client'
2
+ import { setupPlatformService } from './utils/setupPlatformService/setupPlatformService.js';
3
+ import { getInitialParentURL } from './utils/getInitialParentURL/getInitialParentURL.js';
4
+ import { setupPlatformEventsService } from './utils/setupPlatformEventsService/setupPlatformEventsService.js';
5
+
6
+ const setupInsideIframe = () => {
7
+ // Get the initial parent URL
8
+ const initialParentURL = getInitialParentURL();
9
+ // Setup services
10
+ setupPlatformService(initialParentURL);
11
+ setupPlatformEventsService(initialParentURL);
12
+ };
13
+
14
+ export { setupInsideIframe };
@@ -0,0 +1,18 @@
1
+ /**
2
+ * The same implementation was added to the iframe-setup package
3
+ * and they should be kept in sync
4
+ * The type is duplicated here to avoid a dependency on the iframe-setup package
5
+ * @see packages/iframe-setup/src/lib/setupIframe/setupIframe.ts
6
+ */
7
+ export type MESSAGE_HANDLER = (...params: any[]) => Promise<any> | void;
8
+ export type IFRAME_EVENTS = {
9
+ OPEN_URL: (args: {
10
+ url: string;
11
+ target?: 'self' | 'blank';
12
+ features?: string;
13
+ }) => void;
14
+ UPDATE_PARENT_URL: (args: {
15
+ url: string;
16
+ }) => void;
17
+ APP_FOCUS: () => void;
18
+ };
@@ -0,0 +1,30 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var logger = require('../logger.cjs');
7
+
8
+ const createMessageHandler = (parentOrigin) => (eventName, handler) => {
9
+ window.addEventListener('message', (event) => {
10
+ if (event.origin !== parentOrigin) {
11
+ return;
12
+ }
13
+ try {
14
+ if (!Object.prototype.hasOwnProperty.call(event.data, 'eventName') ||
15
+ !Object.prototype.hasOwnProperty.call(event.data, 'args') ||
16
+ !Array.isArray(event.data.args)) {
17
+ return;
18
+ }
19
+ const { eventName: incomingEventName, args } = event.data;
20
+ if (incomingEventName === eventName) {
21
+ handler(...args);
22
+ }
23
+ }
24
+ catch (error) {
25
+ logger.logger.error('Failed to parse message', error);
26
+ }
27
+ });
28
+ };
29
+
30
+ exports.createMessageHandler = createMessageHandler;
@@ -0,0 +1,2 @@
1
+ import { MESSAGE_HANDLER } from '../../types';
2
+ export declare const createMessageHandler: <T extends Record<string, MESSAGE_HANDLER>>(parentOrigin: string) => <K extends Extract<keyof T, string>>(eventName: K, handler: T[K]) => void;
@@ -0,0 +1,26 @@
1
+ 'use client'
2
+ import { logger } from '../logger.js';
3
+
4
+ const createMessageHandler = (parentOrigin) => (eventName, handler) => {
5
+ window.addEventListener('message', (event) => {
6
+ if (event.origin !== parentOrigin) {
7
+ return;
8
+ }
9
+ try {
10
+ if (!Object.prototype.hasOwnProperty.call(event.data, 'eventName') ||
11
+ !Object.prototype.hasOwnProperty.call(event.data, 'args') ||
12
+ !Array.isArray(event.data.args)) {
13
+ return;
14
+ }
15
+ const { eventName: incomingEventName, args } = event.data;
16
+ if (incomingEventName === eventName) {
17
+ handler(...args);
18
+ }
19
+ }
20
+ catch (error) {
21
+ logger.error('Failed to parse message', error);
22
+ }
23
+ });
24
+ };
25
+
26
+ export { createMessageHandler };
@@ -0,0 +1 @@
1
+ export { createMessageHandler } from './createMessageHandler';
@@ -0,0 +1,8 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ const createMessageSender = (parentOrigin) => (eventName, ...args) => window.parent.postMessage({ args, eventName }, parentOrigin);
7
+
8
+ exports.createMessageSender = createMessageSender;
@@ -0,0 +1,2 @@
1
+ import { MESSAGE_HANDLER } from '../../types';
2
+ export declare const createMessageSender: <T extends Record<string, MESSAGE_HANDLER>>(parentOrigin: string) => <EVENT_NAME extends Extract<keyof T, string>>(eventName: EVENT_NAME, ...args: Parameters<T[EVENT_NAME]>) => void;
@@ -0,0 +1,4 @@
1
+ 'use client'
2
+ const createMessageSender = (parentOrigin) => (eventName, ...args) => window.parent.postMessage({ args, eventName }, parentOrigin);
3
+
4
+ export { createMessageSender };
@@ -0,0 +1 @@
1
+ export { createMessageSender } from './createMessageSender';
@@ -0,0 +1,14 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ const getInitialParentURL = () => {
7
+ const initialParentURL = new URLSearchParams(window.location.search).get('initial-parent-url');
8
+ if (!initialParentURL) {
9
+ throw new Error('Parent URL is required');
10
+ }
11
+ return new URL(decodeURIComponent(initialParentURL));
12
+ };
13
+
14
+ exports.getInitialParentURL = getInitialParentURL;
@@ -0,0 +1 @@
1
+ export declare const getInitialParentURL: () => URL;
@@ -0,0 +1,10 @@
1
+ 'use client'
2
+ const getInitialParentURL = () => {
3
+ const initialParentURL = new URLSearchParams(window.location.search).get('initial-parent-url');
4
+ if (!initialParentURL) {
5
+ throw new Error('Parent URL is required');
6
+ }
7
+ return new URL(decodeURIComponent(initialParentURL));
8
+ };
9
+
10
+ export { getInitialParentURL };
@@ -0,0 +1 @@
1
+ export { getInitialParentURL } from './getInitialParentURL';
@@ -0,0 +1,10 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var logger$1 = require('@dynamic-labs/logger');
7
+
8
+ const logger = new logger$1.Logger('@dynamic-labs/iframe-setup');
9
+
10
+ exports.logger = logger;
@@ -0,0 +1,2 @@
1
+ import { Logger } from '@dynamic-labs/logger';
2
+ export declare const logger: Logger;
@@ -0,0 +1,6 @@
1
+ 'use client'
2
+ import { Logger } from '@dynamic-labs/logger';
3
+
4
+ const logger = new Logger('@dynamic-labs/iframe-setup');
5
+
6
+ export { logger };
@@ -0,0 +1 @@
1
+ export { setupPlatformEventsService } from './setupPlatformEventsService';
@@ -0,0 +1,23 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var EventEmitter = require('eventemitter3');
7
+ var createMessageHandler = require('../createMessageHandler/createMessageHandler.cjs');
8
+ var PlatformEventsService = require('../../../services/PlatformEventsService/PlatformEventsService.cjs');
9
+
10
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
11
+
12
+ var EventEmitter__default = /*#__PURE__*/_interopDefaultLegacy(EventEmitter);
13
+
14
+ const setupPlatformEventsService = (initialParentURL) => {
15
+ const emitter = new EventEmitter__default["default"]();
16
+ const messageHandler = createMessageHandler.createMessageHandler(initialParentURL.origin);
17
+ PlatformEventsService.PlatformEventsService.implementation = emitter;
18
+ messageHandler('APP_FOCUS', () => {
19
+ emitter.emit('appFocused');
20
+ });
21
+ };
22
+
23
+ exports.setupPlatformEventsService = setupPlatformEventsService;
@@ -0,0 +1 @@
1
+ export declare const setupPlatformEventsService: (initialParentURL: URL) => void;
@@ -0,0 +1,15 @@
1
+ 'use client'
2
+ import EventEmitter from 'eventemitter3';
3
+ import { createMessageHandler } from '../createMessageHandler/createMessageHandler.js';
4
+ import { PlatformEventsService } from '../../../services/PlatformEventsService/PlatformEventsService.js';
5
+
6
+ const setupPlatformEventsService = (initialParentURL) => {
7
+ const emitter = new EventEmitter();
8
+ const messageHandler = createMessageHandler(initialParentURL.origin);
9
+ PlatformEventsService.implementation = emitter;
10
+ messageHandler('APP_FOCUS', () => {
11
+ emitter.emit('appFocused');
12
+ });
13
+ };
14
+
15
+ export { setupPlatformEventsService };
@@ -0,0 +1 @@
1
+ export { setupPlatformService } from './setupPlatformService';
@@ -0,0 +1,37 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var _tslib = require('../../../../_virtual/_tslib.cjs');
7
+ var createMessageSender = require('../createMessageSender/createMessageSender.cjs');
8
+ var createMessageHandler = require('../createMessageHandler/createMessageHandler.cjs');
9
+ var PlatformService = require('../../../services/PlatformService/PlatformService.cjs');
10
+ require('tldts');
11
+
12
+ const setupPlatformService = (initialParentURL) => {
13
+ let parentURL = new URL(initialParentURL);
14
+ const messageHandler = createMessageHandler.createMessageHandler(initialParentURL.origin);
15
+ const messageSender = createMessageSender.createMessageSender(initialParentURL.origin);
16
+ PlatformService.PlatformService.implementation = {
17
+ getDisplayOrigin: () => parentURL.origin,
18
+ getHost: () => parentURL.host,
19
+ getHostname: () => parentURL.hostname,
20
+ getOrigin: () => parentURL.origin,
21
+ getTLD: () => parentURL.hostname,
22
+ getUrl: () => parentURL,
23
+ isNativeMobile: false,
24
+ openURL: (url_1, ...args_1) => _tslib.__awaiter(void 0, [url_1, ...args_1], void 0, function* (url, target = 'self', features = '') {
25
+ return messageSender('OPEN_URL', {
26
+ features,
27
+ target,
28
+ url,
29
+ });
30
+ }),
31
+ };
32
+ messageHandler('UPDATE_PARENT_URL', ({ url }) => {
33
+ parentURL = new URL(url);
34
+ });
35
+ };
36
+
37
+ exports.setupPlatformService = setupPlatformService;
@@ -0,0 +1 @@
1
+ export declare const setupPlatformService: (initialParentURL: URL) => void;
@@ -0,0 +1,33 @@
1
+ 'use client'
2
+ import { __awaiter } from '../../../../_virtual/_tslib.js';
3
+ import { createMessageSender } from '../createMessageSender/createMessageSender.js';
4
+ import { createMessageHandler } from '../createMessageHandler/createMessageHandler.js';
5
+ import { PlatformService } from '../../../services/PlatformService/PlatformService.js';
6
+ import 'tldts';
7
+
8
+ const setupPlatformService = (initialParentURL) => {
9
+ let parentURL = new URL(initialParentURL);
10
+ const messageHandler = createMessageHandler(initialParentURL.origin);
11
+ const messageSender = createMessageSender(initialParentURL.origin);
12
+ PlatformService.implementation = {
13
+ getDisplayOrigin: () => parentURL.origin,
14
+ getHost: () => parentURL.host,
15
+ getHostname: () => parentURL.hostname,
16
+ getOrigin: () => parentURL.origin,
17
+ getTLD: () => parentURL.hostname,
18
+ getUrl: () => parentURL,
19
+ isNativeMobile: false,
20
+ openURL: (url_1, ...args_1) => __awaiter(void 0, [url_1, ...args_1], void 0, function* (url, target = 'self', features = '') {
21
+ return messageSender('OPEN_URL', {
22
+ features,
23
+ target,
24
+ url,
25
+ });
26
+ }),
27
+ };
28
+ messageHandler('UPDATE_PARENT_URL', ({ url }) => {
29
+ parentURL = new URL(url);
30
+ });
31
+ };
32
+
33
+ export { setupPlatformService };