@dynamic-labs-sdk/client 0.0.1-alpha.1 → 0.0.1-alpha.2
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 +9 -0
- package/core.cjs.d.ts +1 -0
- package/core.cjs.js +22 -0
- package/core.esm.d.ts +1 -0
- package/core.esm.js +18 -0
- package/events.cjs.js +101 -0
- package/events.esm.js +93 -0
- package/index.cjs.d.ts +1 -1
- package/index.cjs.js +1240 -85
- package/index.esm.d.ts +1 -1
- package/index.esm.js +1232 -78
- package/package.json +7 -1
- package/src/client/{createCore → core/createCore}/createCore.d.ts +2 -2
- package/src/client/core/createCore/createCore.d.ts.map +1 -0
- package/src/client/core/createCore/index.d.ts.map +1 -0
- package/src/client/core/createCore/initialState.d.ts +6 -0
- package/src/client/core/createCore/initialState.d.ts.map +1 -0
- package/src/client/core/getCore/getCore.d.ts +4 -0
- package/src/client/core/getCore/getCore.d.ts.map +1 -0
- package/src/client/core/getCore/index.d.ts.map +1 -0
- package/src/client/{createCore → core}/types/DynamicCore.d.ts +5 -1
- package/src/client/core/types/DynamicCore.d.ts.map +1 -0
- package/src/client/core/types/DynamicCoreConfig.d.ts.map +1 -0
- package/src/client/{createCore → core}/types/DynamicCoreState.d.ts +8 -1
- package/src/client/core/types/DynamicCoreState.d.ts.map +1 -0
- package/src/client/core/types/index.d.ts.map +1 -0
- package/src/client/types/DynamicClient.d.ts +2 -2
- package/src/client/types/DynamicClient.d.ts.map +1 -1
- package/src/client/types/DynamicClientConfig.d.ts +1 -1
- package/src/client/types/DynamicClientConfig.d.ts.map +1 -1
- package/src/constants.d.ts +2 -0
- package/src/constants.d.ts.map +1 -0
- package/src/exports/core.d.ts +6 -0
- package/src/exports/core.d.ts.map +1 -0
- package/src/exports/index.d.ts +11 -0
- package/src/exports/index.d.ts.map +1 -0
- package/src/modules/auth/initializeAuth/index.d.ts +2 -0
- package/src/modules/auth/initializeAuth/index.d.ts.map +1 -0
- package/src/modules/auth/initializeAuth/initializeAuth.d.ts +6 -0
- package/src/modules/auth/initializeAuth/initializeAuth.d.ts.map +1 -0
- package/src/modules/auth/initializeAuth/setLongTimeout/index.d.ts +2 -0
- package/src/modules/auth/initializeAuth/setLongTimeout/index.d.ts.map +1 -0
- package/src/modules/auth/initializeAuth/setLongTimeout/setLongTimeout.d.ts +5 -0
- package/src/modules/auth/initializeAuth/setLongTimeout/setLongTimeout.d.ts.map +1 -0
- package/src/modules/auth/logout/logout.d.ts.map +1 -1
- package/src/modules/events/events.d.ts +4 -0
- package/src/modules/events/events.d.ts.map +1 -1
- package/src/modules/events/index.d.ts +1 -1
- package/src/modules/events/index.d.ts.map +1 -1
- package/src/modules/extension/hasExtension/hasExtension.d.ts +6 -0
- package/src/modules/extension/hasExtension/hasExtension.d.ts.map +1 -0
- package/src/modules/extension/hasExtension/index.d.ts +2 -0
- package/src/modules/extension/hasExtension/index.d.ts.map +1 -0
- package/src/modules/extension/registerExtension/index.d.ts +2 -0
- package/src/modules/extension/registerExtension/index.d.ts.map +1 -0
- package/src/modules/extension/registerExtension/registerExtension.d.ts +13 -0
- package/src/modules/extension/registerExtension/registerExtension.d.ts.map +1 -0
- package/src/modules/initializeClient/initializeClient.d.ts.map +1 -1
- package/src/modules/otp/sendSmsOTP/index.d.ts +2 -0
- package/src/modules/otp/sendSmsOTP/index.d.ts.map +1 -0
- package/src/modules/otp/sendSmsOTP/sendSmsOTP.d.ts +9 -0
- package/src/modules/otp/sendSmsOTP/sendSmsOTP.d.ts.map +1 -0
- package/src/modules/otp/sendSmsOTP/supportedCountries.d.ts +8 -0
- package/src/modules/otp/sendSmsOTP/supportedCountries.d.ts.map +1 -0
- package/src/modules/otp/types.d.ts +9 -0
- package/src/modules/otp/types.d.ts.map +1 -1
- package/src/modules/otp/verifyOTP/verifyOTP.d.ts.map +1 -1
- package/src/modules/state/raiseStateEvents/events.d.ts +22 -0
- package/src/modules/state/raiseStateEvents/events.d.ts.map +1 -0
- package/src/modules/state/raiseStateEvents/index.d.ts +2 -0
- package/src/modules/state/raiseStateEvents/index.d.ts.map +1 -0
- package/src/modules/state/raiseStateEvents/raiseStateEvents.d.ts +3 -0
- package/src/modules/state/raiseStateEvents/raiseStateEvents.d.ts.map +1 -0
- package/src/modules/storageSync/hydrateStateWithStorage/hydrateStateWithStorage.d.ts +3 -0
- package/src/modules/storageSync/hydrateStateWithStorage/hydrateStateWithStorage.d.ts.map +1 -0
- package/src/modules/storageSync/hydrateStateWithStorage/index.d.ts +2 -0
- package/src/modules/storageSync/hydrateStateWithStorage/index.d.ts.map +1 -0
- package/src/modules/storageSync/index.d.ts +2 -0
- package/src/modules/storageSync/index.d.ts.map +1 -0
- package/src/modules/storageSync/initializeStorageSync.d.ts +3 -0
- package/src/modules/storageSync/initializeStorageSync.d.ts.map +1 -0
- package/src/modules/storageSync/syncStateWithStorage/index.d.ts +2 -0
- package/src/modules/storageSync/syncStateWithStorage/index.d.ts.map +1 -0
- package/src/modules/storageSync/syncStateWithStorage/syncStateWithStorage.d.ts +3 -0
- package/src/modules/storageSync/syncStateWithStorage/syncStateWithStorage.d.ts.map +1 -0
- package/src/services/storage/createStorageKeySchema/createStorageKeySchema.d.ts +7 -0
- package/src/services/storage/createStorageKeySchema/createStorageKeySchema.d.ts.map +1 -0
- package/src/services/storage/createStorageKeySchema/index.d.ts +2 -0
- package/src/services/storage/createStorageKeySchema/index.d.ts.map +1 -0
- package/src/services/storage/createWebStorage/createWebStorage.d.ts +5 -1
- package/src/services/storage/createWebStorage/createWebStorage.d.ts.map +1 -1
- package/src/services/storage/createWebStorage/errors/InvalidStorageSet.d.ts +10 -0
- package/src/services/storage/createWebStorage/errors/InvalidStorageSet.d.ts.map +1 -0
- package/src/services/storage/createWebStorage/formatForStorage/storageFormat.d.ts +2 -1
- package/src/services/storage/createWebStorage/formatForStorage/storageFormat.d.ts.map +1 -1
- package/src/services/storage/createWebStorage/index.d.ts +1 -0
- package/src/services/storage/createWebStorage/index.d.ts.map +1 -1
- package/src/services/storage/index.d.ts +3 -0
- package/src/services/storage/index.d.ts.map +1 -0
- package/src/services/storage/storageKeySchemas/sessionKeySchema.d.ts +5 -0
- package/src/services/storage/storageKeySchemas/sessionKeySchema.d.ts.map +1 -0
- package/src/services/storage/storageKeySchemas/stateStorageKeySchema.d.ts +7 -0
- package/src/services/storage/storageKeySchemas/stateStorageKeySchema.d.ts.map +1 -0
- package/src/services/storage/types.d.ts +13 -4
- package/src/services/storage/types.d.ts.map +1 -1
- package/src/utils/getClient/assignClient.d.ts +1 -1
- package/src/utils/getClient/assignClient.d.ts.map +1 -1
- package/src/utils/isEqualShallow/index.d.ts.map +1 -0
- package/src/utils/isEqualShallow/isEqualShallow.d.ts.map +1 -0
- package/src/utils/observable/createObservableState/createObservableState.d.ts.map +1 -1
- package/src/utils/observable/subscribeWithSelector/subscribeWithSelector.d.ts +2 -0
- package/src/utils/observable/subscribeWithSelector/subscribeWithSelector.d.ts.map +1 -1
- package/src/utils/observable/types.d.ts +2 -2
- package/src/utils/observable/types.d.ts.map +1 -1
- package/src/client/createCore/createCore.d.ts.map +0 -1
- package/src/client/createCore/index.d.ts.map +0 -1
- package/src/client/createCore/types/DynamicCore.d.ts.map +0 -1
- package/src/client/createCore/types/DynamicCoreConfig.d.ts.map +0 -1
- package/src/client/createCore/types/DynamicCoreState.d.ts.map +0 -1
- package/src/client/createCore/types/index.d.ts.map +0 -1
- package/src/index.d.ts +0 -9
- package/src/index.d.ts.map +0 -1
- package/src/utils/getCore/getCore.d.ts +0 -4
- package/src/utils/getCore/getCore.d.ts.map +0 -1
- package/src/utils/getCore/index.d.ts.map +0 -1
- package/src/utils/observable/subscribeWithSelector/isEqualShallow/index.d.ts.map +0 -1
- package/src/utils/observable/subscribeWithSelector/isEqualShallow/isEqualShallow.d.ts.map +0 -1
- /package/src/client/{createCore → core/createCore}/index.d.ts +0 -0
- /package/src/{utils → client/core}/getCore/index.d.ts +0 -0
- /package/src/client/{createCore → core}/types/DynamicCoreConfig.d.ts +0 -0
- /package/src/client/{createCore → core}/types/index.d.ts +0 -0
- /package/src/utils/{observable/subscribeWithSelector/isEqualShallow → isEqualShallow}/index.d.ts +0 -0
- /package/src/utils/{observable/subscribeWithSelector/isEqualShallow → isEqualShallow}/isEqualShallow.d.ts +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
## 0.0.1-alpha.2 (2025-05-26)
|
|
2
|
+
|
|
3
|
+
### 🚀 Features
|
|
4
|
+
|
|
5
|
+
- logout user when session expires ([#47](https://github.com/dynamic-labs/dynamic-sdk/pull/47))
|
|
6
|
+
- add sms verification ([#78](https://github.com/dynamic-labs/dynamic-sdk/pull/78))
|
|
7
|
+
- raise changed events for state variables ([#79](https://github.com/dynamic-labs/dynamic-sdk/pull/79))
|
|
8
|
+
- allow extending the client ([#80](https://github.com/dynamic-labs/dynamic-sdk/pull/80))
|
|
9
|
+
|
|
1
10
|
## 0.0.1-alpha.1 (2025-05-19)
|
|
2
11
|
|
|
3
12
|
### 🩹 Fixes
|
package/core.cjs.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./src/exports/core";
|
package/core.cjs.js
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var events = require('./events.cjs.js');
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Registers an extension to the client.
|
|
7
|
+
*
|
|
8
|
+
* Other extensions can be aware of which extensions are present,
|
|
9
|
+
* and allows creating dependencies between extensions.
|
|
10
|
+
*
|
|
11
|
+
* @param client - The client instance.
|
|
12
|
+
* @param extensionKey - The key of the extension to register.
|
|
13
|
+
* @returns The client instance.
|
|
14
|
+
*/ const registerExtension = (client, extensionKey)=>{
|
|
15
|
+
const core = events.getCore(client);
|
|
16
|
+
core.extensions.add(extensionKey);
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
exports.emitEvent = events.emitEvent;
|
|
20
|
+
exports.getCore = events.getCore;
|
|
21
|
+
exports.subscribeWithSelector = events.subscribeWithSelector;
|
|
22
|
+
exports.registerExtension = registerExtension;
|
package/core.esm.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./src/exports/core";
|
package/core.esm.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { g as getCore } from './events.esm.js';
|
|
2
|
+
export { e as emitEvent, s as subscribeWithSelector } from './events.esm.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Registers an extension to the client.
|
|
6
|
+
*
|
|
7
|
+
* Other extensions can be aware of which extensions are present,
|
|
8
|
+
* and allows creating dependencies between extensions.
|
|
9
|
+
*
|
|
10
|
+
* @param client - The client instance.
|
|
11
|
+
* @param extensionKey - The key of the extension to register.
|
|
12
|
+
* @returns The client instance.
|
|
13
|
+
*/ const registerExtension = (client, extensionKey)=>{
|
|
14
|
+
const core = getCore(client);
|
|
15
|
+
core.extensions.add(extensionKey);
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export { getCore, registerExtension };
|
package/events.cjs.js
ADDED
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const getCore = (client)=>{
|
|
4
|
+
// @ts-expect-error - this was hidden from the public API
|
|
5
|
+
return client.__core;
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Shallow compare two objects.
|
|
10
|
+
*
|
|
11
|
+
* Source: https://github.com/pmndrs/zustand/blob/main/src/vanilla/shallow.ts
|
|
12
|
+
*/ const isEqualShallow = (objA, objB)=>{
|
|
13
|
+
if (Object.is(objA, objB)) return true;
|
|
14
|
+
if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {
|
|
15
|
+
return objA === objB;
|
|
16
|
+
}
|
|
17
|
+
if (objA instanceof Map && objB instanceof Map) {
|
|
18
|
+
if (objA.size !== objB.size) return false;
|
|
19
|
+
for (const [key, value] of objA){
|
|
20
|
+
if (!Object.is(value, objB.get(key))) return false;
|
|
21
|
+
}
|
|
22
|
+
return true;
|
|
23
|
+
}
|
|
24
|
+
if (objA instanceof Set && objB instanceof Set) {
|
|
25
|
+
if (objA.size !== objB.size) return false;
|
|
26
|
+
for (const value of objA){
|
|
27
|
+
if (!objB.has(value)) return false;
|
|
28
|
+
}
|
|
29
|
+
return true;
|
|
30
|
+
}
|
|
31
|
+
const keysA = Object.keys(objA);
|
|
32
|
+
if (keysA.length !== Object.keys(objB).length) return false;
|
|
33
|
+
for (const keyA of keysA){
|
|
34
|
+
if (!Object.prototype.hasOwnProperty.call(objB, keyA) || !Object.is(objA[keyA], objB[keyA])) {
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
if (objA.constructor !== objB.constructor) return false;
|
|
39
|
+
return true;
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Allows subscribing to a slice of the state.
|
|
44
|
+
* The slice is a computation of the states.
|
|
45
|
+
*
|
|
46
|
+
* The callback will only be called when the slice has changed.
|
|
47
|
+
* Change is determined by shallow comparison.
|
|
48
|
+
*
|
|
49
|
+
* Returns a function to unsubscribe the callback.
|
|
50
|
+
*/ const subscribeWithSelector = (observable, selector)=>(callback)=>{
|
|
51
|
+
let lastSlice = selector(observable.get());
|
|
52
|
+
return observable.subscribe((value)=>{
|
|
53
|
+
const nextSlice = selector(value);
|
|
54
|
+
if (isEqualShallow(nextSlice, lastSlice)) return;
|
|
55
|
+
lastSlice = nextSlice;
|
|
56
|
+
callback(nextSlice);
|
|
57
|
+
});
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Listen to an event from the client.
|
|
62
|
+
*
|
|
63
|
+
* @returns A function that can be called to remove the listener.
|
|
64
|
+
*/ const onEvent = (client, event, listener)=>{
|
|
65
|
+
const { eventEmitter } = getCore(client);
|
|
66
|
+
eventEmitter.on(event, listener);
|
|
67
|
+
return ()=>{
|
|
68
|
+
eventEmitter.off(event, listener);
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
/**
|
|
72
|
+
* Remove a listener from an event.
|
|
73
|
+
*/ const offEvent = (client, event, listener)=>{
|
|
74
|
+
const { eventEmitter } = getCore(client);
|
|
75
|
+
eventEmitter.off(event, listener);
|
|
76
|
+
};
|
|
77
|
+
/**
|
|
78
|
+
* Listen to an event that will only fire once.
|
|
79
|
+
*
|
|
80
|
+
* @returns A function that can be called to remove the listener.
|
|
81
|
+
*/ const onceEvent = (client, event, listener)=>{
|
|
82
|
+
const { eventEmitter } = getCore(client);
|
|
83
|
+
eventEmitter.once(event, listener);
|
|
84
|
+
return ()=>{
|
|
85
|
+
eventEmitter.off(event, listener);
|
|
86
|
+
};
|
|
87
|
+
};
|
|
88
|
+
/**
|
|
89
|
+
* Emit an event.
|
|
90
|
+
*/ const emitEvent = (client, event, ...args)=>{
|
|
91
|
+
const { eventEmitter } = getCore(client);
|
|
92
|
+
eventEmitter.emit(event, ...args);
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
exports.emitEvent = emitEvent;
|
|
96
|
+
exports.getCore = getCore;
|
|
97
|
+
exports.isEqualShallow = isEqualShallow;
|
|
98
|
+
exports.offEvent = offEvent;
|
|
99
|
+
exports.onEvent = onEvent;
|
|
100
|
+
exports.onceEvent = onceEvent;
|
|
101
|
+
exports.subscribeWithSelector = subscribeWithSelector;
|
package/events.esm.js
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
const getCore = (client)=>{
|
|
2
|
+
// @ts-expect-error - this was hidden from the public API
|
|
3
|
+
return client.__core;
|
|
4
|
+
};
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Shallow compare two objects.
|
|
8
|
+
*
|
|
9
|
+
* Source: https://github.com/pmndrs/zustand/blob/main/src/vanilla/shallow.ts
|
|
10
|
+
*/ const isEqualShallow = (objA, objB)=>{
|
|
11
|
+
if (Object.is(objA, objB)) return true;
|
|
12
|
+
if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {
|
|
13
|
+
return objA === objB;
|
|
14
|
+
}
|
|
15
|
+
if (objA instanceof Map && objB instanceof Map) {
|
|
16
|
+
if (objA.size !== objB.size) return false;
|
|
17
|
+
for (const [key, value] of objA){
|
|
18
|
+
if (!Object.is(value, objB.get(key))) return false;
|
|
19
|
+
}
|
|
20
|
+
return true;
|
|
21
|
+
}
|
|
22
|
+
if (objA instanceof Set && objB instanceof Set) {
|
|
23
|
+
if (objA.size !== objB.size) return false;
|
|
24
|
+
for (const value of objA){
|
|
25
|
+
if (!objB.has(value)) return false;
|
|
26
|
+
}
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
const keysA = Object.keys(objA);
|
|
30
|
+
if (keysA.length !== Object.keys(objB).length) return false;
|
|
31
|
+
for (const keyA of keysA){
|
|
32
|
+
if (!Object.prototype.hasOwnProperty.call(objB, keyA) || !Object.is(objA[keyA], objB[keyA])) {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
if (objA.constructor !== objB.constructor) return false;
|
|
37
|
+
return true;
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Allows subscribing to a slice of the state.
|
|
42
|
+
* The slice is a computation of the states.
|
|
43
|
+
*
|
|
44
|
+
* The callback will only be called when the slice has changed.
|
|
45
|
+
* Change is determined by shallow comparison.
|
|
46
|
+
*
|
|
47
|
+
* Returns a function to unsubscribe the callback.
|
|
48
|
+
*/ const subscribeWithSelector = (observable, selector)=>(callback)=>{
|
|
49
|
+
let lastSlice = selector(observable.get());
|
|
50
|
+
return observable.subscribe((value)=>{
|
|
51
|
+
const nextSlice = selector(value);
|
|
52
|
+
if (isEqualShallow(nextSlice, lastSlice)) return;
|
|
53
|
+
lastSlice = nextSlice;
|
|
54
|
+
callback(nextSlice);
|
|
55
|
+
});
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Listen to an event from the client.
|
|
60
|
+
*
|
|
61
|
+
* @returns A function that can be called to remove the listener.
|
|
62
|
+
*/ const onEvent = (client, event, listener)=>{
|
|
63
|
+
const { eventEmitter } = getCore(client);
|
|
64
|
+
eventEmitter.on(event, listener);
|
|
65
|
+
return ()=>{
|
|
66
|
+
eventEmitter.off(event, listener);
|
|
67
|
+
};
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* Remove a listener from an event.
|
|
71
|
+
*/ const offEvent = (client, event, listener)=>{
|
|
72
|
+
const { eventEmitter } = getCore(client);
|
|
73
|
+
eventEmitter.off(event, listener);
|
|
74
|
+
};
|
|
75
|
+
/**
|
|
76
|
+
* Listen to an event that will only fire once.
|
|
77
|
+
*
|
|
78
|
+
* @returns A function that can be called to remove the listener.
|
|
79
|
+
*/ const onceEvent = (client, event, listener)=>{
|
|
80
|
+
const { eventEmitter } = getCore(client);
|
|
81
|
+
eventEmitter.once(event, listener);
|
|
82
|
+
return ()=>{
|
|
83
|
+
eventEmitter.off(event, listener);
|
|
84
|
+
};
|
|
85
|
+
};
|
|
86
|
+
/**
|
|
87
|
+
* Emit an event.
|
|
88
|
+
*/ const emitEvent = (client, event, ...args)=>{
|
|
89
|
+
const { eventEmitter } = getCore(client);
|
|
90
|
+
eventEmitter.emit(event, ...args);
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
export { onceEvent as a, onEvent as b, emitEvent as e, getCore as g, isEqualShallow as i, offEvent as o, subscribeWithSelector as s };
|
package/index.cjs.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "./src/index";
|
|
1
|
+
export * from "./src/exports/index";
|