@dynamic-labs/client 2.0.2 → 2.1.0-alpha.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.
- package/CHANGELOG.md +14 -12
- package/_virtual/_tslib.cjs +1 -0
- package/_virtual/_tslib.js +1 -0
- package/package.cjs +2 -1
- package/package.js +2 -1
- package/package.json +5 -3
- package/src/client/client.cjs +1 -0
- package/src/client/client.d.ts +3 -5
- package/src/client/client.js +1 -0
- package/src/client/core/core.cjs +15 -9
- package/src/client/core/core.js +14 -8
- package/src/index.cjs +1 -0
- package/src/index.d.ts +3 -0
- package/src/index.js +1 -0
- package/src/modules/authModule/authModule.cjs +2 -1
- package/src/modules/authModule/authModule.d.ts +3 -5
- package/src/modules/authModule/authModule.js +2 -1
- package/src/modules/sdkModule/manifest/manifest.cjs +1 -0
- package/src/modules/sdkModule/manifest/manifest.js +1 -0
- package/src/modules/sdkModule/sdkModule.cjs +3 -1
- package/src/modules/sdkModule/sdkModule.d.ts +3 -2
- package/src/modules/sdkModule/sdkModule.js +3 -1
- package/src/modules/walletsModule/walletsModule.cjs +1 -0
- package/src/modules/walletsModule/walletsModule.d.ts +3 -3
- package/src/modules/walletsModule/walletsModule.js +1 -0
- package/src/utils/Extendable/Extendable.cjs +4 -1
- package/src/utils/Extendable/Extendable.js +4 -1
- package/src/utils/Extendable/deepMerge/deepMergeInto.cjs +26 -0
- package/src/utils/Extendable/deepMerge/deepMergeInto.d.ts +6 -0
- package/src/utils/Extendable/deepMerge/deepMergeInto.js +22 -0
- package/src/utils/Extendable/deepMerge/index.d.ts +1 -0
- package/src/utils/pickListenerActions/pickListenerActions.cjs +1 -0
- package/src/utils/pickListenerActions/pickListenerActions.js +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,24 +1,26 @@
|
|
|
1
1
|
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
### Bug Fixes
|
|
6
|
-
|
|
7
|
-
* buffer polyfill for utils package ([#5404](https://github.com/dynamic-labs/DynamicAuth/issues/5404)) ([#5405](https://github.com/dynamic-labs/DynamicAuth/issues/5405)) ([679c197](https://github.com/dynamic-labs/DynamicAuth/commit/679c197a52969a0db614ed280d7b9a0bf172bf72))
|
|
8
|
-
|
|
9
|
-
### [2.0.1](https://github.com/dynamic-labs/DynamicAuth/compare/v2.0.0...v2.0.1) (2024-04-18)
|
|
2
|
+
## [2.1.0-alpha.1](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.0...v2.1.0-alpha.1) (2024-04-18)
|
|
10
3
|
|
|
11
4
|
|
|
12
5
|
### Features
|
|
13
6
|
|
|
14
|
-
* add
|
|
7
|
+
* add frame metadata to demo index page ([#5327](https://github.com/dynamic-labs/DynamicAuth/issues/5327)) ([34a071a](https://github.com/dynamic-labs/DynamicAuth/commit/34a071af8faa8a867ad747ec2a607056a883568d))
|
|
8
|
+
* add MfaChooseDeviceView and MfaSecureDeviceView ([#5343](https://github.com/dynamic-labs/DynamicAuth/issues/5343)) ([4c39b1c](https://github.com/dynamic-labs/DynamicAuth/commit/4c39b1c34b5091190b095770e95a733c8f458ca2)), closes [#5356](https://github.com/dynamic-labs/DynamicAuth/issues/5356)
|
|
9
|
+
* add redirectUri to farcaster connect ([#5373](https://github.com/dynamic-labs/DynamicAuth/issues/5373)) ([ed13fc2](https://github.com/dynamic-labs/DynamicAuth/commit/ed13fc2948e06df0017ac122db54aca44f264a6d))
|
|
10
|
+
* add useMfa hook ([#5337](https://github.com/dynamic-labs/DynamicAuth/issues/5337)) ([a7682ba](https://github.com/dynamic-labs/DynamicAuth/commit/a7682ba10fd0f0809af802e0172154726f1bd857))
|
|
11
|
+
* headless create session and is session active ([#5346](https://github.com/dynamic-labs/DynamicAuth/issues/5346)) ([a787bbc](https://github.com/dynamic-labs/DynamicAuth/commit/a787bbcbb44104d2d0bd263579bd87a78453681d))
|
|
12
|
+
* secure enclave wallet generate one-time code headless ([#5329](https://github.com/dynamic-labs/DynamicAuth/issues/5329)) ([cab80a2](https://github.com/dynamic-labs/DynamicAuth/commit/cab80a2bfa77e48263d47cdcb813c54ef5b831d5))
|
|
15
13
|
|
|
16
14
|
|
|
17
15
|
### Bug Fixes
|
|
18
16
|
|
|
19
|
-
*
|
|
20
|
-
* bitcoin connector
|
|
21
|
-
*
|
|
17
|
+
* always stringify the message before signing a message using walletUiUtils ([#5325](https://github.com/dynamic-labs/DynamicAuth/issues/5325)) ([7abf094](https://github.com/dynamic-labs/DynamicAuth/commit/7abf09456e30ad0657892e9ba58d7391f0f430e6))
|
|
18
|
+
* bitcoin network connector sendBitcoin methods updates ([#5369](https://github.com/dynamic-labs/DynamicAuth/issues/5369)) ([e9bf444](https://github.com/dynamic-labs/DynamicAuth/commit/e9bf444122ee86030d85b84ede96bdfb9772425e))
|
|
19
|
+
* buffer missing when using buffer util function ([#5360](https://github.com/dynamic-labs/DynamicAuth/issues/5360)) ([e998e46](https://github.com/dynamic-labs/DynamicAuth/commit/e998e464bd2671a82aa271b407a7d8fc49a16bd0))
|
|
20
|
+
* embedded solana send transaction shouldn't sign a signed transaction ([#5357](https://github.com/dynamic-labs/DynamicAuth/issues/5357)) ([c2ae2fa](https://github.com/dynamic-labs/DynamicAuth/commit/c2ae2faa509b62fc5ceb345fbc0f0b47217bf4b0))
|
|
21
|
+
* use network.name if vanity name is missing ([#5338](https://github.com/dynamic-labs/DynamicAuth/issues/5338)) ([34ec2ae](https://github.com/dynamic-labs/DynamicAuth/commit/34ec2ae5c4dad5376a3b9c5a07221f68a2f7756c))
|
|
22
|
+
|
|
23
|
+
## [2.1.0-alpha.0](https://github.com/dynamic-labs/DynamicAuth/compare/v2.0.0-alpha.32...v2.1.0-alpha.0) (2024-04-15)
|
|
22
24
|
|
|
23
25
|
## [2.0.0-alpha.32](https://github.com/dynamic-labs/DynamicAuth/compare/v2.0.0-alpha.31...v2.0.0-alpha.32) (2024-04-15)
|
|
24
26
|
|
package/_virtual/_tslib.cjs
CHANGED
package/_virtual/_tslib.js
CHANGED
package/package.cjs
CHANGED
package/package.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dynamic-labs/client",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.1.0-alpha.1",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/dynamic-labs/DynamicAuth.git",
|
|
@@ -25,9 +25,11 @@
|
|
|
25
25
|
},
|
|
26
26
|
"./package.json": "./package.json"
|
|
27
27
|
},
|
|
28
|
+
"dependencies": {
|
|
29
|
+
"@dynamic-labs/message-transport": "2.1.0-alpha.1"
|
|
30
|
+
},
|
|
28
31
|
"peerDependencies": {
|
|
29
|
-
"@dynamic-labs/
|
|
30
|
-
"@dynamic-labs/types": "2.0.2",
|
|
32
|
+
"@dynamic-labs/types": "2.1.0-alpha.1",
|
|
31
33
|
"eventemitter3": "5.0.1"
|
|
32
34
|
}
|
|
33
35
|
}
|
package/src/client/client.cjs
CHANGED
package/src/client/client.d.ts
CHANGED
|
@@ -16,11 +16,9 @@ export type ClientProps = {
|
|
|
16
16
|
*/
|
|
17
17
|
export declare const createClient: (props: ClientProps) => {
|
|
18
18
|
/** Module that gives access over authentication state, such as the auth token and user */
|
|
19
|
-
auth: import("
|
|
20
|
-
logout: () => Promise<void>;
|
|
21
|
-
};
|
|
19
|
+
auth: import("../modules/authModule").AuthModule;
|
|
22
20
|
/** Module that gives insight over the state of the SDK */
|
|
23
|
-
sdk: import("
|
|
21
|
+
sdk: import("../modules/sdkModule").SdkModule;
|
|
24
22
|
/** Module that provides access to user's wallets */
|
|
25
|
-
wallets: import("
|
|
23
|
+
wallets: import("../modules/walletsModule").WalletsModule;
|
|
26
24
|
} & Extendable;
|
package/src/client/client.js
CHANGED
package/src/client/core/core.cjs
CHANGED
|
@@ -1,9 +1,22 @@
|
|
|
1
|
+
'use client'
|
|
1
2
|
'use strict';
|
|
2
3
|
|
|
3
4
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
5
|
|
|
5
|
-
var messageTransport = require('@dynamic-labs/message-transport');
|
|
6
|
+
var messageTransport$1 = require('@dynamic-labs/message-transport');
|
|
6
7
|
|
|
8
|
+
const messageTransport = messageTransport$1.applyDefaultMessageOrigin({
|
|
9
|
+
defaultOrigin: 'host',
|
|
10
|
+
messageTransport: messageTransport$1.makeWaitForInitEvent({
|
|
11
|
+
bypassBlockIf: (message) => message.origin === 'webview',
|
|
12
|
+
initializeMessageType: messageTransport$1.sdkHasLoadedEventName,
|
|
13
|
+
messageTransport: messageTransport$1.createMessageTransport(),
|
|
14
|
+
}),
|
|
15
|
+
});
|
|
16
|
+
// Uncomment this to easily debug incoming/outgoing messages to webview
|
|
17
|
+
// messageTransport.on((message) =>
|
|
18
|
+
// console.log('message', JSON.stringify(message, null, 2)),
|
|
19
|
+
// );
|
|
7
20
|
const createCore = () => ({
|
|
8
21
|
/**
|
|
9
22
|
* Allows an extension to add its name to the list, such that
|
|
@@ -20,14 +33,7 @@ const createCore = () => ({
|
|
|
20
33
|
* Note: Doesn't implement forwarding messages to/from webview yet.
|
|
21
34
|
* The user is expected to extend the client with an Extension that implements that.
|
|
22
35
|
*/
|
|
23
|
-
messageTransport
|
|
24
|
-
defaultOrigin: 'host',
|
|
25
|
-
messageTransport: messageTransport.makeWaitForInitEvent({
|
|
26
|
-
bypassBlockIf: (message) => message.origin === 'webview',
|
|
27
|
-
initializeMessageType: messageTransport.sdkHasLoadedEventName,
|
|
28
|
-
messageTransport: messageTransport.createMessageTransport(),
|
|
29
|
-
}),
|
|
30
|
-
}),
|
|
36
|
+
messageTransport,
|
|
31
37
|
});
|
|
32
38
|
|
|
33
39
|
exports.createCore = createCore;
|
package/src/client/core/core.js
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
|
+
'use client'
|
|
1
2
|
import { applyDefaultMessageOrigin, makeWaitForInitEvent, sdkHasLoadedEventName, createMessageTransport } from '@dynamic-labs/message-transport';
|
|
2
3
|
|
|
4
|
+
const messageTransport = applyDefaultMessageOrigin({
|
|
5
|
+
defaultOrigin: 'host',
|
|
6
|
+
messageTransport: makeWaitForInitEvent({
|
|
7
|
+
bypassBlockIf: (message) => message.origin === 'webview',
|
|
8
|
+
initializeMessageType: sdkHasLoadedEventName,
|
|
9
|
+
messageTransport: createMessageTransport(),
|
|
10
|
+
}),
|
|
11
|
+
});
|
|
12
|
+
// Uncomment this to easily debug incoming/outgoing messages to webview
|
|
13
|
+
// messageTransport.on((message) =>
|
|
14
|
+
// console.log('message', JSON.stringify(message, null, 2)),
|
|
15
|
+
// );
|
|
3
16
|
const createCore = () => ({
|
|
4
17
|
/**
|
|
5
18
|
* Allows an extension to add its name to the list, such that
|
|
@@ -16,14 +29,7 @@ const createCore = () => ({
|
|
|
16
29
|
* Note: Doesn't implement forwarding messages to/from webview yet.
|
|
17
30
|
* The user is expected to extend the client with an Extension that implements that.
|
|
18
31
|
*/
|
|
19
|
-
messageTransport
|
|
20
|
-
defaultOrigin: 'host',
|
|
21
|
-
messageTransport: makeWaitForInitEvent({
|
|
22
|
-
bypassBlockIf: (message) => message.origin === 'webview',
|
|
23
|
-
initializeMessageType: sdkHasLoadedEventName,
|
|
24
|
-
messageTransport: createMessageTransport(),
|
|
25
|
-
}),
|
|
26
|
-
}),
|
|
32
|
+
messageTransport,
|
|
27
33
|
});
|
|
28
34
|
|
|
29
35
|
export { createCore };
|
package/src/index.cjs
CHANGED
package/src/index.d.ts
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
1
|
export { type Core } from './client/core';
|
|
2
2
|
export { Extendable, type Extension } from './utils/Extendable';
|
|
3
3
|
export { createClient, type BaseClient, type ClientProps } from './client';
|
|
4
|
+
export type { AuthModule } from './modules/authModule';
|
|
5
|
+
export type { SdkModule } from './modules/sdkModule';
|
|
6
|
+
export type { WalletsModule } from './modules/walletsModule';
|
package/src/index.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
'use client'
|
|
1
2
|
'use strict';
|
|
2
3
|
|
|
3
4
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
@@ -8,8 +9,8 @@ var pickListenerActions = require('../../utils/pickListenerActions/pickListenerA
|
|
|
8
9
|
const createAuthModule = (core) => {
|
|
9
10
|
const store = messageTransport.createStore({
|
|
10
11
|
initialState: {
|
|
11
|
-
authToken: null,
|
|
12
12
|
authenticatedUser: null,
|
|
13
|
+
token: null,
|
|
13
14
|
},
|
|
14
15
|
key: 'auth',
|
|
15
16
|
messageTransport: core.messageTransport,
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import { AuthModuleMessages, AuthModuleState } from '@dynamic-labs/message-transport';
|
|
1
|
+
import { AuthModuleMessages, AuthModuleState, StoreEventListeners } from '@dynamic-labs/message-transport';
|
|
2
2
|
import { Core } from '../../client/core';
|
|
3
|
-
export type AuthModule =
|
|
4
|
-
export declare const createAuthModule: (core: Core) =>
|
|
5
|
-
logout: () => Promise<void>;
|
|
6
|
-
};
|
|
3
|
+
export type AuthModule = AuthModuleState & StoreEventListeners<AuthModuleState> & Pick<AuthModuleMessages, 'logout'>;
|
|
4
|
+
export declare const createAuthModule: (core: Core) => AuthModule;
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
+
'use client'
|
|
1
2
|
import { createStore, createEventEmitterForMessages, createRequestChannel } from '@dynamic-labs/message-transport';
|
|
2
3
|
import { pickListenerActions } from '../../utils/pickListenerActions/pickListenerActions.js';
|
|
3
4
|
|
|
4
5
|
const createAuthModule = (core) => {
|
|
5
6
|
const store = createStore({
|
|
6
7
|
initialState: {
|
|
7
|
-
authToken: null,
|
|
8
8
|
authenticatedUser: null,
|
|
9
|
+
token: null,
|
|
9
10
|
},
|
|
10
11
|
key: 'auth',
|
|
11
12
|
messageTransport: core.messageTransport,
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
'use client'
|
|
1
2
|
'use strict';
|
|
2
3
|
|
|
3
4
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
5
|
|
|
5
6
|
var _tslib = require('../../../_virtual/_tslib.cjs');
|
|
6
7
|
var messageTransport = require('@dynamic-labs/message-transport');
|
|
8
|
+
var pickListenerActions = require('../../utils/pickListenerActions/pickListenerActions.cjs');
|
|
7
9
|
var manifest = require('./manifest/manifest.cjs');
|
|
8
10
|
|
|
9
11
|
const createSdkModule = (core, props) => {
|
|
@@ -16,7 +18,7 @@ const createSdkModule = (core, props) => {
|
|
|
16
18
|
key: 'sdk',
|
|
17
19
|
messageTransport: core.messageTransport,
|
|
18
20
|
});
|
|
19
|
-
return store.getters;
|
|
21
|
+
return Object.assign(store.getters, pickListenerActions.pickListenerActions(store.eventEmitter));
|
|
20
22
|
};
|
|
21
23
|
|
|
22
24
|
exports.createSdkModule = createSdkModule;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { SdkModuleState } from '@dynamic-labs/message-transport';
|
|
1
|
+
import { SdkModuleState, StoreEventListeners } from '@dynamic-labs/message-transport';
|
|
2
2
|
import type { ClientProps } from '../../client';
|
|
3
3
|
import { Core } from '../../client/core';
|
|
4
|
-
export
|
|
4
|
+
export type SdkModule = SdkModuleState & StoreEventListeners<SdkModuleState>;
|
|
5
|
+
export declare const createSdkModule: (core: Core, props: ClientProps) => SdkModule;
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
'use client'
|
|
1
2
|
import { __awaiter } from '../../../_virtual/_tslib.js';
|
|
2
3
|
import { createRequestChannel, createStore } from '@dynamic-labs/message-transport';
|
|
4
|
+
import { pickListenerActions } from '../../utils/pickListenerActions/pickListenerActions.js';
|
|
3
5
|
import { createManifest } from './manifest/manifest.js';
|
|
4
6
|
|
|
5
7
|
const createSdkModule = (core, props) => {
|
|
@@ -12,7 +14,7 @@ const createSdkModule = (core, props) => {
|
|
|
12
14
|
key: 'sdk',
|
|
13
15
|
messageTransport: core.messageTransport,
|
|
14
16
|
});
|
|
15
|
-
return store.getters;
|
|
17
|
+
return Object.assign(store.getters, pickListenerActions(store.eventEmitter));
|
|
16
18
|
};
|
|
17
19
|
|
|
18
20
|
export { createSdkModule };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { WalletsModuleState } from '@dynamic-labs/message-transport';
|
|
1
|
+
import { StoreEventListeners, WalletsModuleState } from '@dynamic-labs/message-transport';
|
|
2
2
|
import { Core } from '../../client/core';
|
|
3
|
-
export type WalletsModule =
|
|
4
|
-
export declare const createWalletsModule: (core: Core) =>
|
|
3
|
+
export type WalletsModule = WalletsModuleState & StoreEventListeners<WalletsModuleState>;
|
|
4
|
+
export declare const createWalletsModule: (core: Core) => WalletsModule;
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
'use client'
|
|
1
2
|
'use strict';
|
|
2
3
|
|
|
3
4
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
5
|
|
|
6
|
+
var deepMergeInto = require('./deepMerge/deepMergeInto.cjs');
|
|
7
|
+
|
|
5
8
|
// Class here is necessary to have access to "this" keyword
|
|
6
9
|
/**
|
|
7
10
|
* An object that can be extended.
|
|
@@ -19,7 +22,7 @@ class Extendable {
|
|
|
19
22
|
this.core = core;
|
|
20
23
|
}
|
|
21
24
|
extend(extension) {
|
|
22
|
-
return
|
|
25
|
+
return deepMergeInto.deepMergeInto(this, extension(this, this.core));
|
|
23
26
|
}
|
|
24
27
|
}
|
|
25
28
|
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
import { deepMergeInto } from './deepMerge/deepMergeInto.js';
|
|
3
|
+
|
|
1
4
|
// Class here is necessary to have access to "this" keyword
|
|
2
5
|
/**
|
|
3
6
|
* An object that can be extended.
|
|
@@ -15,7 +18,7 @@ class Extendable {
|
|
|
15
18
|
this.core = core;
|
|
16
19
|
}
|
|
17
20
|
extend(extension) {
|
|
18
|
-
return
|
|
21
|
+
return deepMergeInto(this, extension(this, this.core));
|
|
19
22
|
}
|
|
20
23
|
}
|
|
21
24
|
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
|
+
|
|
6
|
+
/** Performs a deep merge into obj1 */
|
|
7
|
+
const deepMergeInto = (obj1, obj2) => {
|
|
8
|
+
// Merge obj2 into obj1, recursively if the property is an object
|
|
9
|
+
for (const key in obj2) {
|
|
10
|
+
if (!Object.prototype.hasOwnProperty.call(obj2, key))
|
|
11
|
+
continue;
|
|
12
|
+
// If key exists in obj1 and both are objects, recurse
|
|
13
|
+
if (Object.prototype.hasOwnProperty.call(obj1, key) &&
|
|
14
|
+
typeof obj1[key] === 'object' &&
|
|
15
|
+
typeof obj2[key] === 'object') {
|
|
16
|
+
obj1[key] = deepMergeInto(obj1[key], obj2[key]);
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
// Otherwise, just overwrite/add the property from obj2
|
|
20
|
+
obj1[key] = obj2[key];
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return obj1;
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
exports.deepMergeInto = deepMergeInto;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
/** Performs a deep merge into obj1 */
|
|
3
|
+
const deepMergeInto = (obj1, obj2) => {
|
|
4
|
+
// Merge obj2 into obj1, recursively if the property is an object
|
|
5
|
+
for (const key in obj2) {
|
|
6
|
+
if (!Object.prototype.hasOwnProperty.call(obj2, key))
|
|
7
|
+
continue;
|
|
8
|
+
// If key exists in obj1 and both are objects, recurse
|
|
9
|
+
if (Object.prototype.hasOwnProperty.call(obj1, key) &&
|
|
10
|
+
typeof obj1[key] === 'object' &&
|
|
11
|
+
typeof obj2[key] === 'object') {
|
|
12
|
+
obj1[key] = deepMergeInto(obj1[key], obj2[key]);
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
// Otherwise, just overwrite/add the property from obj2
|
|
16
|
+
obj1[key] = obj2[key];
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return obj1;
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
export { deepMergeInto };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './deepMergeInto';
|