@dynamic-labs-sdk/client 0.0.1-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 +9 -0
- package/README.md +29 -0
- package/index.cjs.d.ts +1 -0
- package/index.cjs.js +530 -0
- package/index.esm.d.ts +1 -0
- package/index.esm.js +522 -0
- package/package.json +20 -0
- package/src/client/consts.d.ts +5 -0
- package/src/client/consts.d.ts.map +1 -0
- package/src/client/createCore/createCore.d.ts +7 -0
- package/src/client/createCore/createCore.d.ts.map +1 -0
- package/src/client/createCore/index.d.ts +2 -0
- package/src/client/createCore/index.d.ts.map +1 -0
- package/src/client/createCore/types/DynamicCore.d.ts +56 -0
- package/src/client/createCore/types/DynamicCore.d.ts.map +1 -0
- package/src/client/createCore/types/DynamicCoreConfig.d.ts +6 -0
- package/src/client/createCore/types/DynamicCoreConfig.d.ts.map +1 -0
- package/src/client/createCore/types/DynamicCoreState.d.ts +30 -0
- package/src/client/createCore/types/DynamicCoreState.d.ts.map +1 -0
- package/src/client/createCore/types/index.d.ts +4 -0
- package/src/client/createCore/types/index.d.ts.map +1 -0
- package/src/client/createDynamicClient/createDynamicClient.d.ts +3 -0
- package/src/client/createDynamicClient/createDynamicClient.d.ts.map +1 -0
- package/src/client/createDynamicClient/index.d.ts +2 -0
- package/src/client/createDynamicClient/index.d.ts.map +1 -0
- package/src/client/types/DynamicClient.d.ts +25 -0
- package/src/client/types/DynamicClient.d.ts.map +1 -0
- package/src/client/types/DynamicClientConfig.d.ts +42 -0
- package/src/client/types/DynamicClientConfig.d.ts.map +1 -0
- package/src/client/types/index.d.ts +3 -0
- package/src/client/types/index.d.ts.map +1 -0
- package/src/errors/base/BaseError.d.ts +29 -0
- package/src/errors/base/BaseError.d.ts.map +1 -0
- package/src/errors/base/index.d.ts +2 -0
- package/src/errors/base/index.d.ts.map +1 -0
- package/src/index.d.ts +9 -0
- package/src/index.d.ts.map +1 -0
- package/src/modules/apiClient/createApiClient.d.ts +9 -0
- package/src/modules/apiClient/createApiClient.d.ts.map +1 -0
- package/src/modules/apiClient/index.d.ts +2 -0
- package/src/modules/apiClient/index.d.ts.map +1 -0
- package/src/modules/auth/logout/index.d.ts +3 -0
- package/src/modules/auth/logout/index.d.ts.map +1 -0
- package/src/modules/auth/logout/logout.d.ts +3 -0
- package/src/modules/auth/logout/logout.d.ts.map +1 -0
- package/src/modules/auth/logout/types.d.ts +10 -0
- package/src/modules/auth/logout/types.d.ts.map +1 -0
- package/src/modules/events/events.d.ts +19 -0
- package/src/modules/events/events.d.ts.map +1 -0
- package/src/modules/events/index.d.ts +2 -0
- package/src/modules/events/index.d.ts.map +1 -0
- package/src/modules/events/types.d.ts +12 -0
- package/src/modules/events/types.d.ts.map +1 -0
- package/src/modules/initializeClient/errors/ClientAlreadyInitializedError.d.ts +5 -0
- package/src/modules/initializeClient/errors/ClientAlreadyInitializedError.d.ts.map +1 -0
- package/src/modules/initializeClient/index.d.ts +2 -0
- package/src/modules/initializeClient/index.d.ts.map +1 -0
- package/src/modules/initializeClient/initializeClient.d.ts +7 -0
- package/src/modules/initializeClient/initializeClient.d.ts.map +1 -0
- package/src/modules/otp/sendEmailOTP/index.d.ts +2 -0
- package/src/modules/otp/sendEmailOTP/index.d.ts.map +1 -0
- package/src/modules/otp/sendEmailOTP/sendEmailOTP.d.ts +7 -0
- package/src/modules/otp/sendEmailOTP/sendEmailOTP.d.ts.map +1 -0
- package/src/modules/otp/types.d.ts +19 -0
- package/src/modules/otp/types.d.ts.map +1 -0
- package/src/modules/otp/verifyOTP/index.d.ts +2 -0
- package/src/modules/otp/verifyOTP/index.d.ts.map +1 -0
- package/src/modules/otp/verifyOTP/verifyOTP.d.ts +6 -0
- package/src/modules/otp/verifyOTP/verifyOTP.d.ts.map +1 -0
- package/src/modules/projectSettings/fetchProjectSettings.d.ts +6 -0
- package/src/modules/projectSettings/fetchProjectSettings.d.ts.map +1 -0
- package/src/modules/projectSettings/index.d.ts +2 -0
- package/src/modules/projectSettings/index.d.ts.map +1 -0
- package/src/modules/user/types.d.ts +6 -0
- package/src/modules/user/types.d.ts.map +1 -0
- package/src/services/asyncTrack/createAsyncTrack.d.ts +6 -0
- package/src/services/asyncTrack/createAsyncTrack.d.ts.map +1 -0
- package/src/services/asyncTrack/errors/CannotTrackError.d.ts +5 -0
- package/src/services/asyncTrack/errors/CannotTrackError.d.ts.map +1 -0
- package/src/services/asyncTrack/index.d.ts +3 -0
- package/src/services/asyncTrack/index.d.ts.map +1 -0
- package/src/services/asyncTrack/types.d.ts +45 -0
- package/src/services/asyncTrack/types.d.ts.map +1 -0
- package/src/services/eventEmitter/createEventEmitter.d.ts +3 -0
- package/src/services/eventEmitter/createEventEmitter.d.ts.map +1 -0
- package/src/services/eventEmitter/index.d.ts +2 -0
- package/src/services/eventEmitter/index.d.ts.map +1 -0
- package/src/services/fetch/createWebFetch.d.ts +6 -0
- package/src/services/fetch/createWebFetch.d.ts.map +1 -0
- package/src/services/fetch/index.d.ts +2 -0
- package/src/services/fetch/index.d.ts.map +1 -0
- package/src/services/fetch/types.d.ts +5 -0
- package/src/services/fetch/types.d.ts.map +1 -0
- package/src/services/logger/createLogger/createLogger.d.ts +14 -0
- package/src/services/logger/createLogger/createLogger.d.ts.map +1 -0
- package/src/services/logger/createLogger/index.d.ts +2 -0
- package/src/services/logger/createLogger/index.d.ts.map +1 -0
- package/src/services/logger/index.d.ts +2 -0
- package/src/services/logger/index.d.ts.map +1 -0
- package/src/services/logger/types.d.ts +15 -0
- package/src/services/logger/types.d.ts.map +1 -0
- package/src/services/openDeeplink/createWebDeeplinkOpener/createWebDeeplinkOpener.d.ts +6 -0
- package/src/services/openDeeplink/createWebDeeplinkOpener/createWebDeeplinkOpener.d.ts.map +1 -0
- package/src/services/openDeeplink/createWebDeeplinkOpener/index.d.ts +2 -0
- package/src/services/openDeeplink/createWebDeeplinkOpener/index.d.ts.map +1 -0
- package/src/services/openDeeplink/index.d.ts +2 -0
- package/src/services/openDeeplink/index.d.ts.map +1 -0
- package/src/services/openDeeplink/types.d.ts +5 -0
- package/src/services/openDeeplink/types.d.ts.map +1 -0
- package/src/services/storage/createWebStorage/createWebStorage.d.ts +6 -0
- package/src/services/storage/createWebStorage/createWebStorage.d.ts.map +1 -0
- package/src/services/storage/createWebStorage/formatForStorage/index.d.ts +2 -0
- package/src/services/storage/createWebStorage/formatForStorage/index.d.ts.map +1 -0
- package/src/services/storage/createWebStorage/formatForStorage/storageFormat.d.ts +3 -0
- package/src/services/storage/createWebStorage/formatForStorage/storageFormat.d.ts.map +1 -0
- package/src/services/storage/createWebStorage/index.d.ts +2 -0
- package/src/services/storage/createWebStorage/index.d.ts.map +1 -0
- package/src/services/storage/types.d.ts +24 -0
- package/src/services/storage/types.d.ts.map +1 -0
- package/src/utils/deferredPromise/createDeferredPromise.d.ts +3 -0
- package/src/utils/deferredPromise/createDeferredPromise.d.ts.map +1 -0
- package/src/utils/deferredPromise/index.d.ts +3 -0
- package/src/utils/deferredPromise/index.d.ts.map +1 -0
- package/src/utils/deferredPromise/types.d.ts +6 -0
- package/src/utils/deferredPromise/types.d.ts.map +1 -0
- package/src/utils/getClient/assignClient.d.ts +3 -0
- package/src/utils/getClient/assignClient.d.ts.map +1 -0
- package/src/utils/getClient/erros/ClientNotPresentError.d.ts +5 -0
- package/src/utils/getClient/erros/ClientNotPresentError.d.ts.map +1 -0
- package/src/utils/getClient/getClient.d.ts +2 -0
- package/src/utils/getClient/getClient.d.ts.map +1 -0
- package/src/utils/getClient/index.d.ts +3 -0
- package/src/utils/getClient/index.d.ts.map +1 -0
- package/src/utils/getCore/getCore.d.ts +4 -0
- package/src/utils/getCore/getCore.d.ts.map +1 -0
- package/src/utils/getCore/index.d.ts +2 -0
- package/src/utils/getCore/index.d.ts.map +1 -0
- package/src/utils/observable/createObservableState/createObservableState.d.ts +3 -0
- package/src/utils/observable/createObservableState/createObservableState.d.ts.map +1 -0
- package/src/utils/observable/createObservableState/index.d.ts +2 -0
- package/src/utils/observable/createObservableState/index.d.ts.map +1 -0
- package/src/utils/observable/subscribeWithSelector/index.d.ts +2 -0
- package/src/utils/observable/subscribeWithSelector/index.d.ts.map +1 -0
- package/src/utils/observable/subscribeWithSelector/isEqualShallow/index.d.ts +2 -0
- package/src/utils/observable/subscribeWithSelector/isEqualShallow/index.d.ts.map +1 -0
- package/src/utils/observable/subscribeWithSelector/isEqualShallow/isEqualShallow.d.ts +7 -0
- package/src/utils/observable/subscribeWithSelector/isEqualShallow/isEqualShallow.d.ts.map +1 -0
- package/src/utils/observable/subscribeWithSelector/subscribeWithSelector.d.ts +10 -0
- package/src/utils/observable/subscribeWithSelector/subscribeWithSelector.d.ts.map +1 -0
- package/src/utils/observable/types.d.ts +28 -0
- package/src/utils/observable/types.d.ts.map +1 -0
package/index.esm.js
ADDED
|
@@ -0,0 +1,522 @@
|
|
|
1
|
+
import { SDKApi, Configuration } from '@dynamic-labs/sdk-api-core';
|
|
2
|
+
import EventEmitter$1, { EventEmitter } from 'eventemitter3';
|
|
3
|
+
|
|
4
|
+
const getCore = (client)=>{
|
|
5
|
+
// @ts-expect-error - this was hidden from the public API
|
|
6
|
+
return client.__core;
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
function _extends() {
|
|
10
|
+
_extends = Object.assign || function assign(target) {
|
|
11
|
+
for(var i = 1; i < arguments.length; i++){
|
|
12
|
+
var source = arguments[i];
|
|
13
|
+
for(var key in source)if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key];
|
|
14
|
+
}
|
|
15
|
+
return target;
|
|
16
|
+
};
|
|
17
|
+
return _extends.apply(this, arguments);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
var version = "0.0.1-alpha.1";
|
|
21
|
+
var dependencies = {
|
|
22
|
+
"@dynamic-labs/sdk-api-core": "0.0.630"};
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Returns a new instance of the SDK API client.
|
|
26
|
+
*
|
|
27
|
+
* This is not meant for storing, as it is very light we can create it whenever needed.
|
|
28
|
+
*/ const createApiClient = (client)=>{
|
|
29
|
+
const core = getCore(client);
|
|
30
|
+
const settings = {
|
|
31
|
+
basePath: core.apiBaseUrl,
|
|
32
|
+
headers: {
|
|
33
|
+
'Content-Type': 'application/json',
|
|
34
|
+
'x-dyn-api-version': dependencies['@dynamic-labs/sdk-api-core'],
|
|
35
|
+
'x-dyn-version': core.version
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
if (client.token) {
|
|
39
|
+
settings.headers.Authorization = `Bearer ${client.token}`;
|
|
40
|
+
}
|
|
41
|
+
return new SDKApi(new Configuration(_extends({}, settings, {
|
|
42
|
+
fetchApi: core.fetch
|
|
43
|
+
})));
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Updates the project settings in the core state to the latest values.
|
|
48
|
+
*/ const fetchProjectSettings = async (client)=>{
|
|
49
|
+
const core = getCore(client);
|
|
50
|
+
const apiClient = createApiClient(client);
|
|
51
|
+
const projectSettings = await apiClient.getEnvironmentSettings({
|
|
52
|
+
environmentId: core.environmentId,
|
|
53
|
+
sdkVersion: `WalletKit/${core.version}`
|
|
54
|
+
}, {
|
|
55
|
+
credentials: 'omit'
|
|
56
|
+
});
|
|
57
|
+
core.state.set({
|
|
58
|
+
projectSettings
|
|
59
|
+
});
|
|
60
|
+
return projectSettings;
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
const getDetails = ({ details, cause })=>{
|
|
64
|
+
if (cause instanceof BaseError) {
|
|
65
|
+
return cause.details;
|
|
66
|
+
}
|
|
67
|
+
if (cause == null ? void 0 : cause.message) {
|
|
68
|
+
return cause.message;
|
|
69
|
+
}
|
|
70
|
+
return details;
|
|
71
|
+
};
|
|
72
|
+
/**
|
|
73
|
+
* Formats the error message with all available information
|
|
74
|
+
*/ const formatMessage = ({ shortMessage, details, docsUrl, metaMessages })=>{
|
|
75
|
+
return [
|
|
76
|
+
shortMessage,
|
|
77
|
+
'',
|
|
78
|
+
...metaMessages ? [
|
|
79
|
+
...metaMessages,
|
|
80
|
+
''
|
|
81
|
+
] : [],
|
|
82
|
+
...docsUrl ? [
|
|
83
|
+
`Docs: ${docsUrl}`
|
|
84
|
+
] : [],
|
|
85
|
+
...details ? [
|
|
86
|
+
`Details: ${details}`
|
|
87
|
+
] : [],
|
|
88
|
+
`Version: ${version}`,
|
|
89
|
+
`Timestamp: ${new Date().toISOString()}`
|
|
90
|
+
].join('\n');
|
|
91
|
+
};
|
|
92
|
+
/**
|
|
93
|
+
* Base error class that provides structured error handling with detailed information
|
|
94
|
+
*/ class BaseError extends Error {
|
|
95
|
+
/**
|
|
96
|
+
* Walks the cause chain of the error and returns the root error
|
|
97
|
+
*/ walk() {
|
|
98
|
+
const cause = this.cause;
|
|
99
|
+
if (cause instanceof BaseError) {
|
|
100
|
+
return cause.walk();
|
|
101
|
+
}
|
|
102
|
+
return cause;
|
|
103
|
+
}
|
|
104
|
+
constructor(args){
|
|
105
|
+
const details = getDetails(args);
|
|
106
|
+
super(formatMessage(_extends({}, args, {
|
|
107
|
+
details
|
|
108
|
+
})), args.cause ? {
|
|
109
|
+
cause: args.cause
|
|
110
|
+
} : undefined);
|
|
111
|
+
this.name = 'BaseError';
|
|
112
|
+
this.details = details;
|
|
113
|
+
var _args_name;
|
|
114
|
+
this.name = (_args_name = args.name) != null ? _args_name : this.name;
|
|
115
|
+
var _args_cause;
|
|
116
|
+
this.cause = (_args_cause = args.cause) != null ? _args_cause : this.cause;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
class ClientAlreadyInitializedError extends BaseError {
|
|
121
|
+
constructor(){
|
|
122
|
+
super({
|
|
123
|
+
cause: null,
|
|
124
|
+
docsUrl: null,
|
|
125
|
+
name: 'ClientAlreadyInitializedError',
|
|
126
|
+
shortMessage: 'Client must not be initialized more than once'
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Orchestrates the initialization of all modules and services of the SDK, and keeps
|
|
133
|
+
* the loading flag updated.
|
|
134
|
+
*/ const initializeClient = async (client)=>{
|
|
135
|
+
const core = getCore(client);
|
|
136
|
+
if (core.state.get().initStatus !== 'uninitialized') {
|
|
137
|
+
throw new ClientAlreadyInitializedError();
|
|
138
|
+
}
|
|
139
|
+
core.state.set({
|
|
140
|
+
initStatus: 'in-progress'
|
|
141
|
+
});
|
|
142
|
+
const projectSettingsPromise = fetchProjectSettings(client);
|
|
143
|
+
core.initTrack.track({
|
|
144
|
+
name: 'project-settings',
|
|
145
|
+
promise: projectSettingsPromise
|
|
146
|
+
});
|
|
147
|
+
try {
|
|
148
|
+
await core.initTrack.waitForAll();
|
|
149
|
+
core.state.set({
|
|
150
|
+
initStatus: 'finished'
|
|
151
|
+
});
|
|
152
|
+
} catch (error) {
|
|
153
|
+
core.state.set({
|
|
154
|
+
initStatus: 'failed'
|
|
155
|
+
});
|
|
156
|
+
throw error;
|
|
157
|
+
}
|
|
158
|
+
};
|
|
159
|
+
|
|
160
|
+
const createDeferredPromise = ()=>{
|
|
161
|
+
let resolve;
|
|
162
|
+
let reject;
|
|
163
|
+
const promise = new Promise((_resolve, _reject)=>{
|
|
164
|
+
resolve = _resolve;
|
|
165
|
+
reject = _reject;
|
|
166
|
+
});
|
|
167
|
+
return {
|
|
168
|
+
promise,
|
|
169
|
+
reject: (reason)=>reject == null ? void 0 : reject(reason),
|
|
170
|
+
resolve: (value)=>resolve == null ? void 0 : resolve(value)
|
|
171
|
+
};
|
|
172
|
+
};
|
|
173
|
+
|
|
174
|
+
class CannotTrackError extends BaseError {
|
|
175
|
+
constructor(){
|
|
176
|
+
super({
|
|
177
|
+
cause: null,
|
|
178
|
+
docsUrl: null,
|
|
179
|
+
name: 'CannotTrackError',
|
|
180
|
+
shortMessage: 'All track calls must be performed in the same node tick'
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* Creates a tracker that associates names with promises and raises as promises resolve.
|
|
187
|
+
*/ const createAsyncTrack = ()=>{
|
|
188
|
+
/**
|
|
189
|
+
* Whether tracking is enabled.
|
|
190
|
+
* All processes must be tracked on the same node tick.
|
|
191
|
+
*
|
|
192
|
+
* This ensures no process is missed (as it would throw when tracked on a different node tick).
|
|
193
|
+
*/ let isTrackEnabled = true;
|
|
194
|
+
const eventEmitter = new EventEmitter();
|
|
195
|
+
const allSettledPromise = createDeferredPromise();
|
|
196
|
+
const tracker = new Map();
|
|
197
|
+
/**
|
|
198
|
+
* Checks if all processes are initialized and resolves the main promise if they are.
|
|
199
|
+
*/ const checkIfAllSettled = ()=>{
|
|
200
|
+
const allSettled = Array.from(tracker.values()).every((status)=>status === 'resolved');
|
|
201
|
+
if (!allSettled) return;
|
|
202
|
+
allSettledPromise.resolve();
|
|
203
|
+
};
|
|
204
|
+
const track = ({ name, promise })=>{
|
|
205
|
+
if (!isTrackEnabled) {
|
|
206
|
+
throw new CannotTrackError();
|
|
207
|
+
}
|
|
208
|
+
// Disable tracking in the next node tick
|
|
209
|
+
void Promise.resolve().then(()=>isTrackEnabled = false);
|
|
210
|
+
tracker.set(name, 'pending');
|
|
211
|
+
promise.then(()=>{
|
|
212
|
+
tracker.set(name, 'resolved');
|
|
213
|
+
eventEmitter.emit('resolved', name);
|
|
214
|
+
checkIfAllSettled();
|
|
215
|
+
}).catch((error)=>{
|
|
216
|
+
tracker.set(name, 'failed');
|
|
217
|
+
eventEmitter.emit('failed', name, error);
|
|
218
|
+
allSettledPromise.reject(error);
|
|
219
|
+
});
|
|
220
|
+
};
|
|
221
|
+
const waitForAll = ()=>allSettledPromise.promise;
|
|
222
|
+
const getTracker = ()=>tracker;
|
|
223
|
+
return {
|
|
224
|
+
getTracker,
|
|
225
|
+
off: eventEmitter.off.bind(eventEmitter),
|
|
226
|
+
on: eventEmitter.on.bind(eventEmitter),
|
|
227
|
+
track,
|
|
228
|
+
waitForAll
|
|
229
|
+
};
|
|
230
|
+
};
|
|
231
|
+
|
|
232
|
+
const createEventEmitter = ()=>new EventEmitter$1();
|
|
233
|
+
|
|
234
|
+
/**
|
|
235
|
+
* Creates a fetch instance that uses the native window.fetch API.
|
|
236
|
+
*/ // eslint-disable-next-line no-restricted-globals -- this is the abstraction for fetch
|
|
237
|
+
const createWebFetch = ()=>window.fetch;
|
|
238
|
+
|
|
239
|
+
/**
|
|
240
|
+
* Log levels and their corresponding numeric values
|
|
241
|
+
*/ const LOG_LEVELS = {
|
|
242
|
+
debug: 0,
|
|
243
|
+
error: 3,
|
|
244
|
+
info: 1,
|
|
245
|
+
warn: 2
|
|
246
|
+
};
|
|
247
|
+
// Assign to avoid lint errors
|
|
248
|
+
const defaultConsole = console;
|
|
249
|
+
/**
|
|
250
|
+
* Creates a logger instance with configurable log level and event emission capabilities.
|
|
251
|
+
* @returns A logger instance with debug, info, warn, and error methods
|
|
252
|
+
*/ const createLogger = (options = {})=>{
|
|
253
|
+
const eventEmitter = new EventEmitter();
|
|
254
|
+
var _options_level;
|
|
255
|
+
// Default to 'debug' if no level is provided
|
|
256
|
+
const minLevel = (_options_level = options.level) != null ? _options_level : 'warn';
|
|
257
|
+
// Helper to decide if we should log based on current log level
|
|
258
|
+
const shouldLog = (level)=>{
|
|
259
|
+
return LOG_LEVELS[level] >= LOG_LEVELS[minLevel];
|
|
260
|
+
};
|
|
261
|
+
// Helper to format the log message
|
|
262
|
+
const formatMessage = (level, message)=>{
|
|
263
|
+
const timestamp = new Date().toISOString();
|
|
264
|
+
return `[${timestamp}] ${level.toUpperCase()}: ${message}`;
|
|
265
|
+
};
|
|
266
|
+
// Unified logger function that checks the level and calls the appropriate console method
|
|
267
|
+
const log = (level, consoleMethod, message, ...args)=>{
|
|
268
|
+
eventEmitter.emit('log', level, message, ...args);
|
|
269
|
+
if (!shouldLog(level)) return;
|
|
270
|
+
consoleMethod(formatMessage(level, message), ...args);
|
|
271
|
+
};
|
|
272
|
+
return {
|
|
273
|
+
debug: (message, ...args)=>log('debug', defaultConsole.debug, message, ...args),
|
|
274
|
+
error: (message, ...args)=>log('error', defaultConsole.error, message, ...args),
|
|
275
|
+
info: (message, ...args)=>log('info', defaultConsole.info, message, ...args),
|
|
276
|
+
off: eventEmitter.off.bind(eventEmitter),
|
|
277
|
+
on: eventEmitter.on.bind(eventEmitter),
|
|
278
|
+
warn: (message, ...args)=>log('warn', defaultConsole.warn, message, ...args)
|
|
279
|
+
};
|
|
280
|
+
};
|
|
281
|
+
|
|
282
|
+
/**
|
|
283
|
+
* Creates a deeplink opener that uses the native window.open API.
|
|
284
|
+
*/ const createWebDeeplinkOpener = ()=>{
|
|
285
|
+
return async (url)=>{
|
|
286
|
+
// eslint-disable-next-line no-restricted-globals -- this is the abstraction for opening a deeplink
|
|
287
|
+
window.open(url, '_blank');
|
|
288
|
+
};
|
|
289
|
+
};
|
|
290
|
+
|
|
291
|
+
const formatForStorage = (value)=>{
|
|
292
|
+
const item = {
|
|
293
|
+
value
|
|
294
|
+
};
|
|
295
|
+
return JSON.stringify(item);
|
|
296
|
+
};
|
|
297
|
+
const parseFromStorage = (value)=>{
|
|
298
|
+
const item = JSON.parse(value);
|
|
299
|
+
return item.value;
|
|
300
|
+
};
|
|
301
|
+
|
|
302
|
+
/**
|
|
303
|
+
* Creates a Storage instance that uses localStorage as the storage model meant for use in the browser.
|
|
304
|
+
*/ const createWebStorage = ()=>({
|
|
305
|
+
getItem: async (key)=>{
|
|
306
|
+
const rawItem = localStorage.getItem(key);
|
|
307
|
+
return rawItem ? parseFromStorage(rawItem) : null;
|
|
308
|
+
},
|
|
309
|
+
removeItem: async (key)=>{
|
|
310
|
+
localStorage.removeItem(key);
|
|
311
|
+
},
|
|
312
|
+
setItem: async (key, value)=>{
|
|
313
|
+
const item = formatForStorage(value);
|
|
314
|
+
localStorage.setItem(key, item);
|
|
315
|
+
}
|
|
316
|
+
});
|
|
317
|
+
|
|
318
|
+
const createObservableState = (getInitialState)=>{
|
|
319
|
+
// ===============
|
|
320
|
+
// NOTIFICATIONS
|
|
321
|
+
// ===============
|
|
322
|
+
const subscribers = new Set();
|
|
323
|
+
const notifySubscribers = (value)=>{
|
|
324
|
+
subscribers.forEach((callback)=>callback(value));
|
|
325
|
+
};
|
|
326
|
+
const subscribe = (callback)=>{
|
|
327
|
+
subscribers.add(callback);
|
|
328
|
+
return ()=>unsubscribe(callback);
|
|
329
|
+
};
|
|
330
|
+
const unsubscribe = (callback)=>{
|
|
331
|
+
subscribers.delete(callback);
|
|
332
|
+
};
|
|
333
|
+
// ===============
|
|
334
|
+
// STATE
|
|
335
|
+
// ===============
|
|
336
|
+
const currentValue = getInitialState();
|
|
337
|
+
const get = ()=>currentValue;
|
|
338
|
+
const set = (partial)=>{
|
|
339
|
+
Object.assign(currentValue, partial);
|
|
340
|
+
notifySubscribers(currentValue);
|
|
341
|
+
};
|
|
342
|
+
return {
|
|
343
|
+
get,
|
|
344
|
+
getInitialState,
|
|
345
|
+
set,
|
|
346
|
+
subscribe,
|
|
347
|
+
unsubscribe
|
|
348
|
+
};
|
|
349
|
+
};
|
|
350
|
+
|
|
351
|
+
/**
|
|
352
|
+
* The default API base URL for Dynamic apps in production.
|
|
353
|
+
*/ const DEFAULT_API_BASE_URL = 'https://app.dynamic.xyz/api/v0';
|
|
354
|
+
|
|
355
|
+
/**
|
|
356
|
+
* Creates a core instance that contains all the services and state of the Dynamic SDK client.
|
|
357
|
+
*/ const createCore = (config)=>{
|
|
358
|
+
var _config_coreConfig, _config_coreConfig1, _config_coreConfig2, _config_coreConfig3, _config_coreConfig4;
|
|
359
|
+
var _config_coreConfig_apiBaseUrl;
|
|
360
|
+
const apiBaseUrl = (_config_coreConfig_apiBaseUrl = (_config_coreConfig = config.coreConfig) == null ? void 0 : _config_coreConfig.apiBaseUrl) != null ? _config_coreConfig_apiBaseUrl : DEFAULT_API_BASE_URL;
|
|
361
|
+
var _config_coreConfig_logger;
|
|
362
|
+
const logger = (_config_coreConfig_logger = (_config_coreConfig1 = config.coreConfig) == null ? void 0 : _config_coreConfig1.logger) != null ? _config_coreConfig_logger : createLogger();
|
|
363
|
+
var _config_coreConfig_storage;
|
|
364
|
+
const storage = (_config_coreConfig_storage = (_config_coreConfig2 = config.coreConfig) == null ? void 0 : _config_coreConfig2.storage) != null ? _config_coreConfig_storage : createWebStorage();
|
|
365
|
+
var _config_coreConfig_fetch;
|
|
366
|
+
const fetch = (_config_coreConfig_fetch = (_config_coreConfig3 = config.coreConfig) == null ? void 0 : _config_coreConfig3.fetch) != null ? _config_coreConfig_fetch : createWebFetch();
|
|
367
|
+
var _config_coreConfig_openDeeplink;
|
|
368
|
+
const openDeeplink = (_config_coreConfig_openDeeplink = (_config_coreConfig4 = config.coreConfig) == null ? void 0 : _config_coreConfig4.openDeeplink) != null ? _config_coreConfig_openDeeplink : createWebDeeplinkOpener();
|
|
369
|
+
const state = createObservableState(()=>({
|
|
370
|
+
initStatus: 'uninitialized',
|
|
371
|
+
loaded: false,
|
|
372
|
+
projectSettings: null,
|
|
373
|
+
token: null,
|
|
374
|
+
user: null
|
|
375
|
+
}));
|
|
376
|
+
const eventEmitter = createEventEmitter();
|
|
377
|
+
const initTrack = createAsyncTrack();
|
|
378
|
+
return {
|
|
379
|
+
apiBaseUrl,
|
|
380
|
+
environmentId: config.environmentId,
|
|
381
|
+
eventEmitter,
|
|
382
|
+
fetch,
|
|
383
|
+
initTrack,
|
|
384
|
+
logger,
|
|
385
|
+
openDeeplink,
|
|
386
|
+
state,
|
|
387
|
+
storage,
|
|
388
|
+
version
|
|
389
|
+
};
|
|
390
|
+
};
|
|
391
|
+
|
|
392
|
+
const createDynamicClient = (config)=>{
|
|
393
|
+
const core = createCore(config);
|
|
394
|
+
const client = {
|
|
395
|
+
get __core () {
|
|
396
|
+
return core;
|
|
397
|
+
},
|
|
398
|
+
get initStatus () {
|
|
399
|
+
return core.state.get().initStatus;
|
|
400
|
+
},
|
|
401
|
+
get projectSettings () {
|
|
402
|
+
return core.state.get().projectSettings;
|
|
403
|
+
},
|
|
404
|
+
get token () {
|
|
405
|
+
return core.state.get().token;
|
|
406
|
+
},
|
|
407
|
+
get user () {
|
|
408
|
+
return core.state.get().user;
|
|
409
|
+
}
|
|
410
|
+
};
|
|
411
|
+
var _config_autoInitialize;
|
|
412
|
+
const autoInitialize = (_config_autoInitialize = config.autoInitialize) != null ? _config_autoInitialize : true;
|
|
413
|
+
if (autoInitialize) {
|
|
414
|
+
void initializeClient(client);
|
|
415
|
+
}
|
|
416
|
+
return client;
|
|
417
|
+
};
|
|
418
|
+
|
|
419
|
+
const logout = async (client)=>{
|
|
420
|
+
const core = getCore(client);
|
|
421
|
+
const apiClient = createApiClient(client);
|
|
422
|
+
await apiClient.revokeSession({
|
|
423
|
+
environmentId: core.environmentId
|
|
424
|
+
});
|
|
425
|
+
core.state.set({
|
|
426
|
+
token: null,
|
|
427
|
+
user: null
|
|
428
|
+
});
|
|
429
|
+
};
|
|
430
|
+
|
|
431
|
+
/**
|
|
432
|
+
* Listen to an event from the client.
|
|
433
|
+
*
|
|
434
|
+
* @returns A function that can be called to remove the listener.
|
|
435
|
+
*/ const onEvent = (client, event, listener)=>{
|
|
436
|
+
const { eventEmitter } = getCore(client);
|
|
437
|
+
eventEmitter.on(event, listener);
|
|
438
|
+
return ()=>{
|
|
439
|
+
eventEmitter.off(event, listener);
|
|
440
|
+
};
|
|
441
|
+
};
|
|
442
|
+
/**
|
|
443
|
+
* Remove a listener from an event.
|
|
444
|
+
*/ const offEvent = (client, event, listener)=>{
|
|
445
|
+
const { eventEmitter } = getCore(client);
|
|
446
|
+
eventEmitter.off(event, listener);
|
|
447
|
+
};
|
|
448
|
+
/**
|
|
449
|
+
* Listen to an event that will only fire once.
|
|
450
|
+
*
|
|
451
|
+
* @returns A function that can be called to remove the listener.
|
|
452
|
+
*/ const onceEvent = (client, event, listener)=>{
|
|
453
|
+
const { eventEmitter } = getCore(client);
|
|
454
|
+
eventEmitter.once(event, listener);
|
|
455
|
+
return ()=>{
|
|
456
|
+
eventEmitter.off(event, listener);
|
|
457
|
+
};
|
|
458
|
+
};
|
|
459
|
+
|
|
460
|
+
const assignClient = (target, client)=>{
|
|
461
|
+
Object.defineProperty(target, '__client', {
|
|
462
|
+
// hide from enumeration
|
|
463
|
+
configurable: true,
|
|
464
|
+
enumerable: false,
|
|
465
|
+
get: ()=>client
|
|
466
|
+
});
|
|
467
|
+
return target;
|
|
468
|
+
};
|
|
469
|
+
|
|
470
|
+
class ClientNotPresentError extends BaseError {
|
|
471
|
+
constructor(){
|
|
472
|
+
super({
|
|
473
|
+
cause: null,
|
|
474
|
+
docsUrl: null,
|
|
475
|
+
name: 'ClientNotPresentError',
|
|
476
|
+
shortMessage: 'The client is not present in the target object.'
|
|
477
|
+
});
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
|
|
481
|
+
const getClient = (target)=>{
|
|
482
|
+
if (!Object.prototype.hasOwnProperty.call(target, '__client')) {
|
|
483
|
+
throw new ClientNotPresentError();
|
|
484
|
+
}
|
|
485
|
+
// @ts-expect-error - this was hidden from the public API
|
|
486
|
+
return target.__client;
|
|
487
|
+
};
|
|
488
|
+
|
|
489
|
+
const sendEmailOTP = async (client, { email })=>{
|
|
490
|
+
const core = getCore(client);
|
|
491
|
+
const apiClient = createApiClient(client);
|
|
492
|
+
const { verificationUUID } = await apiClient.createEmailVerification({
|
|
493
|
+
emailVerificationCreateRequest: {
|
|
494
|
+
email
|
|
495
|
+
},
|
|
496
|
+
environmentId: core.environmentId
|
|
497
|
+
});
|
|
498
|
+
return assignClient({
|
|
499
|
+
email,
|
|
500
|
+
verificationUUID
|
|
501
|
+
}, client);
|
|
502
|
+
};
|
|
503
|
+
|
|
504
|
+
const verifyOTP = async (otpVerification, { verificationToken })=>{
|
|
505
|
+
const client = getClient(otpVerification);
|
|
506
|
+
const core = getCore(client);
|
|
507
|
+
const apiClient = createApiClient(client);
|
|
508
|
+
const { user, minifiedJwt } = await apiClient.signInWithEmailVerification({
|
|
509
|
+
emailVerificationVerifyRequest: {
|
|
510
|
+
verificationToken,
|
|
511
|
+
verificationUUID: otpVerification.verificationUUID
|
|
512
|
+
},
|
|
513
|
+
environmentId: core.environmentId
|
|
514
|
+
});
|
|
515
|
+
core.state.set({
|
|
516
|
+
token: minifiedJwt,
|
|
517
|
+
user
|
|
518
|
+
});
|
|
519
|
+
return user;
|
|
520
|
+
};
|
|
521
|
+
|
|
522
|
+
export { createDynamicClient, logout, offEvent, onEvent, onceEvent, sendEmailOTP, verifyOTP };
|
package/package.json
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@dynamic-labs-sdk/client",
|
|
3
|
+
"version": "0.0.1-alpha.1",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"main": "./index.esm.js",
|
|
6
|
+
"module": "./index.esm.js",
|
|
7
|
+
"types": "./index.esm.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
"./package.json": "./package.json",
|
|
10
|
+
".": {
|
|
11
|
+
"types": "./index.esm.d.ts",
|
|
12
|
+
"import": "./index.esm.js",
|
|
13
|
+
"default": "./index.esm.js"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"dependencies": {
|
|
17
|
+
"@dynamic-labs/sdk-api-core": "0.0.630",
|
|
18
|
+
"eventemitter3": "^5.0.1"
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../../../../../packages/client/src/client/consts.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,oBAAoB,mCAAmC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { DynamicClientConfig } from '../types';
|
|
2
|
+
import type { DynamicCore } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Creates a core instance that contains all the services and state of the Dynamic SDK client.
|
|
5
|
+
*/
|
|
6
|
+
export declare const createCore: (config: DynamicClientConfig) => DynamicCore;
|
|
7
|
+
//# sourceMappingURL=createCore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createCore.d.ts","sourceRoot":"","sources":["../../../../../../packages/client/src/client/createCore/createCore.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAoB,MAAM,SAAS,CAAC;AAE7D;;GAEG;AACH,eAAO,MAAM,UAAU,WAAY,mBAAmB,KAAG,WAqCxD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/client/src/client/createCore/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type EventEmitter from 'eventemitter3';
|
|
2
|
+
import type { AsyncTrack } from '../../../services/asyncTrack';
|
|
3
|
+
import type { Fetch } from '../../../services/fetch';
|
|
4
|
+
import type { Logger } from '../../../services/logger';
|
|
5
|
+
import type { OpenDeeplink } from '../../../services/openDeeplink';
|
|
6
|
+
import type { Storage } from '../../../services/storage/types';
|
|
7
|
+
import type { ObservableState } from '../../../utils/observable/types';
|
|
8
|
+
import type { DynamicCoreState } from './DynamicCoreState';
|
|
9
|
+
/**
|
|
10
|
+
* The core object needed to work with Dynamic SDK's functionality.
|
|
11
|
+
*
|
|
12
|
+
* Holds all state and services any module might need to use.
|
|
13
|
+
*/
|
|
14
|
+
export type DynamicCore = {
|
|
15
|
+
/**
|
|
16
|
+
* The base URL to use for API requests to Dynamic.
|
|
17
|
+
*/
|
|
18
|
+
apiBaseUrl: string;
|
|
19
|
+
/**
|
|
20
|
+
* The environment ID of the Dynamic app.
|
|
21
|
+
*/
|
|
22
|
+
environmentId: string;
|
|
23
|
+
/**
|
|
24
|
+
* A generic event emitter instance for handling events.
|
|
25
|
+
*/
|
|
26
|
+
eventEmitter: EventEmitter;
|
|
27
|
+
/**
|
|
28
|
+
* Instance of the fetch service, used for making any HTTP requests.
|
|
29
|
+
*/
|
|
30
|
+
fetch: Fetch;
|
|
31
|
+
/**
|
|
32
|
+
* Instance of the async track service, used for tracking status of SDK initialization promises.
|
|
33
|
+
*/
|
|
34
|
+
initTrack: AsyncTrack;
|
|
35
|
+
/**
|
|
36
|
+
* Instance of the logger service, used for logging messages to the console and controlling the log level.
|
|
37
|
+
*/
|
|
38
|
+
logger: Logger;
|
|
39
|
+
/**
|
|
40
|
+
* Instance of the open deeplink service, used for triggering deeplinks using the appropriate device method.
|
|
41
|
+
*/
|
|
42
|
+
openDeeplink: OpenDeeplink;
|
|
43
|
+
/**
|
|
44
|
+
* Reactive object with all variable state of the client.
|
|
45
|
+
*/
|
|
46
|
+
state: ObservableState<DynamicCoreState>;
|
|
47
|
+
/**
|
|
48
|
+
* Instance of the storage service, used for interacting with the device's storage.
|
|
49
|
+
*/
|
|
50
|
+
storage: Storage<DynamicCoreState>;
|
|
51
|
+
/**
|
|
52
|
+
* The NPM version of the Dynamic SDK client package.
|
|
53
|
+
*/
|
|
54
|
+
version: string;
|
|
55
|
+
};
|
|
56
|
+
//# sourceMappingURL=DynamicCore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DynamicCore.d.ts","sourceRoot":"","sources":["../../../../../../../packages/client/src/client/createCore/types/DynamicCore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,eAAe,CAAC;AAE9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,YAAY,EAAE,YAAY,CAAC;IAE3B;;OAEG;IACH,KAAK,EAAE,KAAK,CAAC;IAEb;;OAEG;IACH,SAAS,EAAE,UAAU,CAAC;IAEtB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,YAAY,EAAE,YAAY,CAAC;IAE3B;;OAEG;IACH,KAAK,EAAE,eAAe,CAAC,gBAAgB,CAAC,CAAC;IAEzC;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAEnC;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { DynamicCore } from './DynamicCore';
|
|
2
|
+
/**
|
|
3
|
+
* Available options for internal configuration of the Dynamic SDK client.
|
|
4
|
+
*/
|
|
5
|
+
export type DynamicCoreConfig = Partial<Pick<DynamicCore, 'apiBaseUrl' | 'fetch' | 'logger' | 'openDeeplink' | 'storage'>>;
|
|
6
|
+
//# sourceMappingURL=DynamicCoreConfig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DynamicCoreConfig.d.ts","sourceRoot":"","sources":["../../../../../../../packages/client/src/client/createCore/types/DynamicCoreConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,OAAO,CACrC,IAAI,CACF,WAAW,EACX,YAAY,GAAG,OAAO,GAAG,QAAQ,GAAG,cAAc,GAAG,SAAS,CAC/D,CACF,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { ProjectSettings } from '@dynamic-labs/sdk-api-core';
|
|
2
|
+
import type { User } from 'src/modules/user/types';
|
|
3
|
+
export type DynamicInitStatus = 'uninitialized' | 'in-progress' | 'finished' | 'failed';
|
|
4
|
+
/**
|
|
5
|
+
* Object with all variable state of the client
|
|
6
|
+
*/
|
|
7
|
+
export type DynamicCoreState = {
|
|
8
|
+
/**
|
|
9
|
+
* Status of client initialization.
|
|
10
|
+
*
|
|
11
|
+
* - `uninitialized`: Initialization has not started yet.
|
|
12
|
+
* - `in-progress`: Initialization is in progress.
|
|
13
|
+
* - `finished`: Initialization has finished successfully.
|
|
14
|
+
* - `failed`: Initialization failed. Check console logs for more details.
|
|
15
|
+
*/
|
|
16
|
+
initStatus: DynamicInitStatus;
|
|
17
|
+
/**
|
|
18
|
+
* The settings of the Dynamic project as configured in dashboard.
|
|
19
|
+
*/
|
|
20
|
+
projectSettings: ProjectSettings | null;
|
|
21
|
+
/**
|
|
22
|
+
* The JWT of the current user.
|
|
23
|
+
*/
|
|
24
|
+
token: string | null;
|
|
25
|
+
/**
|
|
26
|
+
* The current user of the app.
|
|
27
|
+
*/
|
|
28
|
+
user: User | null;
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=DynamicCoreState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DynamicCoreState.d.ts","sourceRoot":"","sources":["../../../../../../../packages/client/src/client/createCore/types/DynamicCoreState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAEnD,MAAM,MAAM,iBAAiB,GACzB,eAAe,GACf,aAAa,GACb,UAAU,GACV,QAAQ,CAAC;AAEb;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;;;;;;OAOG;IACH,UAAU,EAAE,iBAAiB,CAAC;IAE9B;;OAEG;IACH,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IAExC;;OAEG;IACH,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAErB;;OAEG;IACH,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;CACnB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../packages/client/src/client/createCore/types/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,YAAY,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC"}
|