@monterosa/sdk-core 2.0.0-rc.1 → 2.0.0-rc.3
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/dist/index.cjs +336 -0
- package/dist/index.cjs.map +1 -0
- package/dist/{index.esm.js → index.js} +28 -10
- package/dist/index.js.map +1 -0
- package/dist/src/api.d.ts +9 -4
- package/dist/src/index.d.ts +6 -5
- package/dist/src/log_version.d.ts +9 -0
- package/dist/src/types.d.ts +4 -2
- package/package.json +18 -12
- package/dist/index.cjs.js +0 -412
- package/dist/index.cjs.js.map +0 -1
- package/dist/index.esm.js.map +0 -1
package/dist/index.cjs
ADDED
|
@@ -0,0 +1,336 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var sdkUtil = require('@monterosa/sdk-util');
|
|
6
|
+
|
|
7
|
+
var version = "2.0.0-rc.3";
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* @license
|
|
11
|
+
* @monterosa/sdk-core
|
|
12
|
+
*
|
|
13
|
+
* Copyright © 2023-2024 Monterosa Productions Limited. All rights reserved.
|
|
14
|
+
*
|
|
15
|
+
* More details on the license can be found at https://www.monterosa.co/sdk/license
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* Default sdk name.
|
|
19
|
+
*
|
|
20
|
+
* @internal
|
|
21
|
+
*/
|
|
22
|
+
const DEFAULT_SDK_NAME = '[DEFAULT]';
|
|
23
|
+
/**
|
|
24
|
+
* The current SDK version.
|
|
25
|
+
*
|
|
26
|
+
* @public
|
|
27
|
+
*/
|
|
28
|
+
const VERSION = version;
|
|
29
|
+
/**
|
|
30
|
+
* Device ID storage key name
|
|
31
|
+
*
|
|
32
|
+
* @internal
|
|
33
|
+
*/
|
|
34
|
+
const DEVICE_ID_KEY = 'device_id';
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* @license
|
|
38
|
+
* @monterosa/sdk-core
|
|
39
|
+
*
|
|
40
|
+
* Copyright © 2026 Monterosa Productions Limited. All rights reserved.
|
|
41
|
+
*
|
|
42
|
+
* More details on the license can be found at https://www.monterosa.co/sdk/license
|
|
43
|
+
*/
|
|
44
|
+
var _a;
|
|
45
|
+
if (typeof document !== 'undefined') {
|
|
46
|
+
const title = document.title || ((_a = document.location) === null || _a === void 0 ? void 0 : _a.hostname) || '';
|
|
47
|
+
console.debug(`Monterosa SDK v${VERSION}${title ? ` — "${title}"` : ''}`);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* @license
|
|
52
|
+
* @monterosa/sdk-core
|
|
53
|
+
*
|
|
54
|
+
* Copyright © 2021-2024 Monterosa Productions Limited. All rights reserved.
|
|
55
|
+
*
|
|
56
|
+
* More details on the license can be found at https://www.monterosa.co/sdk/license
|
|
57
|
+
*/
|
|
58
|
+
/**
|
|
59
|
+
* @internal
|
|
60
|
+
*/
|
|
61
|
+
class Sdk {
|
|
62
|
+
constructor(options, name) {
|
|
63
|
+
this._isDestroyed = false;
|
|
64
|
+
this._options = Object.assign({}, options);
|
|
65
|
+
this._name = name;
|
|
66
|
+
this._kits = new Map();
|
|
67
|
+
}
|
|
68
|
+
get name() {
|
|
69
|
+
this.checkDestroyed();
|
|
70
|
+
return this._name;
|
|
71
|
+
}
|
|
72
|
+
get options() {
|
|
73
|
+
this.checkDestroyed();
|
|
74
|
+
return this._options;
|
|
75
|
+
}
|
|
76
|
+
get isDestroyed() {
|
|
77
|
+
return this._isDestroyed;
|
|
78
|
+
}
|
|
79
|
+
get kits() {
|
|
80
|
+
return this._kits;
|
|
81
|
+
}
|
|
82
|
+
set isDestroyed(value) {
|
|
83
|
+
this._isDestroyed = value;
|
|
84
|
+
}
|
|
85
|
+
deleteKits() {
|
|
86
|
+
this.kits.forEach((kit, name) => {
|
|
87
|
+
this.kits.delete(name);
|
|
88
|
+
kit.delete();
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
checkDestroyed() {
|
|
92
|
+
if (this.isDestroyed) {
|
|
93
|
+
throw new Error(`SDK named ${this.name} destroyed`);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* @internal
|
|
99
|
+
*/
|
|
100
|
+
function addKit(sdk, name, kit) {
|
|
101
|
+
sdk.kits.set(name, kit);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* @internal
|
|
105
|
+
*/
|
|
106
|
+
function getKit(sdk, name) {
|
|
107
|
+
return sdk.kits.get(name);
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* @internal
|
|
111
|
+
*/
|
|
112
|
+
function deleteKit(sdk, name) {
|
|
113
|
+
sdk.kits.delete(name);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* @license
|
|
118
|
+
* @monterosa/sdk-core
|
|
119
|
+
*
|
|
120
|
+
* Copyright © 2022-2024 Monterosa Productions Limited. All rights reserved.
|
|
121
|
+
*
|
|
122
|
+
* More details on the license can be found at https://www.monterosa.co/sdk/license
|
|
123
|
+
*/
|
|
124
|
+
const sdks = new Map();
|
|
125
|
+
let DEVICE_ID;
|
|
126
|
+
/**
|
|
127
|
+
* Returns all configured SDK instances.
|
|
128
|
+
*
|
|
129
|
+
* @returns An array of all configured SDK instances.
|
|
130
|
+
*
|
|
131
|
+
* @public
|
|
132
|
+
*/
|
|
133
|
+
function getSdks() {
|
|
134
|
+
return Array.from(sdks.values());
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Retrieves an SDK instance by its name.
|
|
138
|
+
*
|
|
139
|
+
* @example
|
|
140
|
+
* ```javascript
|
|
141
|
+
* const sdk = getSdk('my-sdk');
|
|
142
|
+
* ```
|
|
143
|
+
*
|
|
144
|
+
* @param name - Optional name of the sdk to initialise.
|
|
145
|
+
* If name is not provided, the default is "[DEFAULT]"
|
|
146
|
+
*
|
|
147
|
+
* @returns The configured SDK instance.
|
|
148
|
+
*
|
|
149
|
+
* @public
|
|
150
|
+
*/
|
|
151
|
+
function getSdk(name = DEFAULT_SDK_NAME) {
|
|
152
|
+
const sdk = sdks.get(name);
|
|
153
|
+
if (!sdk) {
|
|
154
|
+
throw new Error(`No Monterosa Sdk "${name}" has been configured.
|
|
155
|
+
You need to call configure() first`);
|
|
156
|
+
}
|
|
157
|
+
return sdk;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* @internal
|
|
161
|
+
*/
|
|
162
|
+
function getDeviceId() {
|
|
163
|
+
if (DEVICE_ID !== undefined) {
|
|
164
|
+
return DEVICE_ID;
|
|
165
|
+
}
|
|
166
|
+
if (!sdkUtil.checkAvailability()) {
|
|
167
|
+
DEVICE_ID = sdkUtil.generateUUID();
|
|
168
|
+
return DEVICE_ID;
|
|
169
|
+
}
|
|
170
|
+
const value = sdkUtil.getItem(DEVICE_ID_KEY);
|
|
171
|
+
if (value === null) {
|
|
172
|
+
DEVICE_ID = sdkUtil.generateUUID();
|
|
173
|
+
sdkUtil.setItem(DEVICE_ID_KEY, DEVICE_ID);
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
DEVICE_ID = value;
|
|
177
|
+
}
|
|
178
|
+
return DEVICE_ID;
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Creates an SDK instance.
|
|
182
|
+
*
|
|
183
|
+
* @example
|
|
184
|
+
*
|
|
185
|
+
* Configure default SDK with host and Project ID
|
|
186
|
+
*
|
|
187
|
+
* ```javascript
|
|
188
|
+
* configure({
|
|
189
|
+
* host: "...",
|
|
190
|
+
* projectId: "..."
|
|
191
|
+
* });
|
|
192
|
+
* ```
|
|
193
|
+
*
|
|
194
|
+
* @param options - Configuration object containing `host` and `projectId`.
|
|
195
|
+
* These values can be found in the Embed section of your Project in Studio.
|
|
196
|
+
* @param name - Optional name of the sdk to initialise.
|
|
197
|
+
* If name is not provided, the default is "[DEFAULT]"
|
|
198
|
+
*
|
|
199
|
+
* @returns Configured SDK instance.
|
|
200
|
+
*
|
|
201
|
+
* @public
|
|
202
|
+
*/
|
|
203
|
+
function configure(options, name = DEFAULT_SDK_NAME) {
|
|
204
|
+
const existingSdk = sdks.get(name);
|
|
205
|
+
if (existingSdk) {
|
|
206
|
+
return existingSdk;
|
|
207
|
+
}
|
|
208
|
+
const sdk = new Sdk(options, name);
|
|
209
|
+
sdks.set(name, sdk);
|
|
210
|
+
return sdk;
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Destroy initialised SDK
|
|
214
|
+
*
|
|
215
|
+
* @example
|
|
216
|
+
* ```javascript
|
|
217
|
+
* const sdk = configure(...);
|
|
218
|
+
*
|
|
219
|
+
* destroy(sdk);
|
|
220
|
+
* ```
|
|
221
|
+
*
|
|
222
|
+
* @param sdk - sdk instance
|
|
223
|
+
*/
|
|
224
|
+
function destroy(sdk) {
|
|
225
|
+
const { name } = sdk;
|
|
226
|
+
sdks.delete(name);
|
|
227
|
+
sdk.deleteKits();
|
|
228
|
+
sdk.isDestroyed = true;
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
/**
|
|
232
|
+
* @license
|
|
233
|
+
* @monterosa/sdk-core
|
|
234
|
+
*
|
|
235
|
+
* Copyright © 2022 Monterosa Productions Limited. All rights reserved.
|
|
236
|
+
*
|
|
237
|
+
* More details on the license can be found at https://www.monterosa.co/sdk/license
|
|
238
|
+
*/
|
|
239
|
+
/* eslint-disable no-console */
|
|
240
|
+
/**
|
|
241
|
+
* Represents the possible log levels.
|
|
242
|
+
*/
|
|
243
|
+
exports.LogLevel = void 0;
|
|
244
|
+
(function (LogLevel) {
|
|
245
|
+
/**
|
|
246
|
+
* Verbose level. Provides detailed and extensive logging.
|
|
247
|
+
*/
|
|
248
|
+
LogLevel[LogLevel["Verbose"] = 0] = "Verbose";
|
|
249
|
+
/**
|
|
250
|
+
* Debug level. Used for debugging and development purposes.
|
|
251
|
+
*/
|
|
252
|
+
LogLevel[LogLevel["Debug"] = 1] = "Debug";
|
|
253
|
+
/**
|
|
254
|
+
* Info level. Used to provide general information about the system's state.
|
|
255
|
+
*/
|
|
256
|
+
LogLevel[LogLevel["Info"] = 2] = "Info";
|
|
257
|
+
/**
|
|
258
|
+
* Warn level. Indicates potential issues or situations that might cause problems in the future.
|
|
259
|
+
*/
|
|
260
|
+
LogLevel[LogLevel["Warn"] = 3] = "Warn";
|
|
261
|
+
/**
|
|
262
|
+
* Error level. Indicates critical errors and issues that require immediate attention.
|
|
263
|
+
*/
|
|
264
|
+
LogLevel[LogLevel["Error"] = 4] = "Error";
|
|
265
|
+
/**
|
|
266
|
+
* Silent level. No logs will be output.
|
|
267
|
+
*/
|
|
268
|
+
LogLevel[LogLevel["Silent"] = 5] = "Silent";
|
|
269
|
+
})(exports.LogLevel || (exports.LogLevel = {}));
|
|
270
|
+
const Methods = {
|
|
271
|
+
[exports.LogLevel.Verbose]: 'log',
|
|
272
|
+
// `console.debug` is not shown in Chrome and Edge by default. It must be
|
|
273
|
+
// enabled manually. To avoid hassle for developers with settings debug
|
|
274
|
+
// messages are sent to `console.log`
|
|
275
|
+
[exports.LogLevel.Debug]: 'log',
|
|
276
|
+
[exports.LogLevel.Info]: 'info',
|
|
277
|
+
[exports.LogLevel.Warn]: 'warn',
|
|
278
|
+
[exports.LogLevel.Error]: 'error',
|
|
279
|
+
};
|
|
280
|
+
const logHandler = (logger, logLevel, ...args) => {
|
|
281
|
+
if (logger.logLevel > logLevel) {
|
|
282
|
+
return;
|
|
283
|
+
}
|
|
284
|
+
const method = Methods[logLevel];
|
|
285
|
+
console[method](new Date().toISOString().replace(/[TZ]/gi, ' ').trim(), `${exports.LogLevel[logLevel]}/${logger.name}:`, ...args);
|
|
286
|
+
};
|
|
287
|
+
/** @internal */
|
|
288
|
+
class Logger {
|
|
289
|
+
constructor(name) {
|
|
290
|
+
this.name = name;
|
|
291
|
+
this._logLevel = exports.LogLevel.Warn;
|
|
292
|
+
this._logHandler = logHandler;
|
|
293
|
+
}
|
|
294
|
+
get logLevel() {
|
|
295
|
+
return this._logLevel;
|
|
296
|
+
}
|
|
297
|
+
set logLevel(level) {
|
|
298
|
+
this._logLevel = level;
|
|
299
|
+
}
|
|
300
|
+
get logHandler() {
|
|
301
|
+
return this._logHandler;
|
|
302
|
+
}
|
|
303
|
+
set logHandler(handler) {
|
|
304
|
+
this.logHandler = handler;
|
|
305
|
+
}
|
|
306
|
+
log(...args) {
|
|
307
|
+
this.logHandler(this, exports.LogLevel.Verbose, ...args);
|
|
308
|
+
}
|
|
309
|
+
debug(...args) {
|
|
310
|
+
this.logHandler(this, exports.LogLevel.Debug, ...args);
|
|
311
|
+
}
|
|
312
|
+
info(...args) {
|
|
313
|
+
this.logHandler(this, exports.LogLevel.Info, ...args);
|
|
314
|
+
}
|
|
315
|
+
warn(...args) {
|
|
316
|
+
this.logHandler(this, exports.LogLevel.Warn, ...args);
|
|
317
|
+
}
|
|
318
|
+
error(...args) {
|
|
319
|
+
this.logHandler(this, exports.LogLevel.Error, ...args);
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
exports.DEFAULT_SDK_NAME = DEFAULT_SDK_NAME;
|
|
324
|
+
exports.DEVICE_ID_KEY = DEVICE_ID_KEY;
|
|
325
|
+
exports.Logger = Logger;
|
|
326
|
+
exports.Sdk = Sdk;
|
|
327
|
+
exports.VERSION = VERSION;
|
|
328
|
+
exports.addKit = addKit;
|
|
329
|
+
exports.configure = configure;
|
|
330
|
+
exports.deleteKit = deleteKit;
|
|
331
|
+
exports.destroy = destroy;
|
|
332
|
+
exports.getDeviceId = getDeviceId;
|
|
333
|
+
exports.getKit = getKit;
|
|
334
|
+
exports.getSdk = getSdk;
|
|
335
|
+
exports.getSdks = getSdks;
|
|
336
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../src/constants.ts","../src/log_version.ts","../src/sdk.ts","../src/api.ts","../src/utils/logger.ts"],"sourcesContent":["/**\n * @license\n * @monterosa/sdk-core\n *\n * Copyright © 2023-2024 Monterosa Productions Limited. All rights reserved.\n *\n * More details on the license can be found at https://www.monterosa.co/sdk/license\n */\n\nimport { version } from '../package.json';\n\n/**\n * Default sdk name.\n *\n * @internal\n */\nexport const DEFAULT_SDK_NAME = '[DEFAULT]';\n\n/**\n * The current SDK version.\n *\n * @public\n */\nexport const VERSION = version;\n\n/**\n * Device ID storage key name\n *\n * @internal\n */\nexport const DEVICE_ID_KEY = 'device_id';\n","/**\n * @license\n * @monterosa/sdk-core\n *\n * Copyright © 2026 Monterosa Productions Limited. All rights reserved.\n *\n * More details on the license can be found at https://www.monterosa.co/sdk/license\n */\n\nimport { VERSION } from './constants';\n\nif (typeof document !== 'undefined') {\n const title = document.title || document.location?.hostname || '';\n\n console.debug(`Monterosa SDK v${VERSION}${title ? ` — \"${title}\"` : ''}`);\n}\n","/**\n * @license\n * @monterosa/sdk-core\n *\n * Copyright © 2021-2024 Monterosa Productions Limited. All rights reserved.\n *\n * More details on the license can be found at https://www.monterosa.co/sdk/license\n */\n\nimport { MonterosaSdk, MonterosaKit, Kits, SdkOptions } from './types';\n\n/**\n * @internal\n */\nexport class Sdk implements MonterosaSdk {\n private readonly _options: Required<SdkOptions>;\n private readonly _name: string;\n private _isDestroyed: boolean = false;\n private _kits: Kits;\n\n constructor(options: SdkOptions, name: string) {\n this._options = { ...options };\n this._name = name;\n this._kits = new Map();\n }\n\n get name(): string {\n this.checkDestroyed();\n return this._name;\n }\n\n get options(): SdkOptions {\n this.checkDestroyed();\n return this._options;\n }\n\n get isDestroyed(): boolean {\n return this._isDestroyed;\n }\n\n get kits(): Kits {\n return this._kits;\n }\n\n set isDestroyed(value: boolean) {\n this._isDestroyed = value;\n }\n\n public deleteKits() {\n this.kits.forEach((kit, name) => {\n this.kits.delete(name);\n kit.delete();\n });\n }\n\n private checkDestroyed(): void {\n if (this.isDestroyed) {\n throw new Error(`SDK named ${this.name} destroyed`);\n }\n }\n}\n\n/**\n * @internal\n */\nexport function addKit(sdk: MonterosaSdk, name: string, kit: MonterosaKit) {\n sdk.kits.set(name, kit);\n}\n\n/**\n * @internal\n */\nexport function getKit(\n sdk: MonterosaSdk,\n name: string,\n): MonterosaKit | undefined {\n return sdk.kits.get(name);\n}\n\n/**\n * @internal\n */\nexport function deleteKit(sdk: MonterosaSdk, name: string): void {\n sdk.kits.delete(name);\n}\n","/**\n * @license\n * @monterosa/sdk-core\n *\n * Copyright © 2022-2024 Monterosa Productions Limited. All rights reserved.\n *\n * More details on the license can be found at https://www.monterosa.co/sdk/license\n */\n\nimport {\n getItem as getStorageItem,\n setItem as setStorageItem,\n checkAvailability as checkStorageAvailability,\n generateUUID,\n} from '@monterosa/sdk-util';\n\nimport { MonterosaSdk, SdkOptions } from './types';\nimport { DEFAULT_SDK_NAME, DEVICE_ID_KEY } from './constants';\nimport { Sdk } from './sdk';\n\nconst sdks = new Map<string, MonterosaSdk>();\n\nlet DEVICE_ID: string;\n\n/**\n * Returns all configured SDK instances.\n *\n * @returns An array of all configured SDK instances.\n *\n * @public\n */\nexport function getSdks(): MonterosaSdk[] {\n return Array.from(sdks.values());\n}\n\n/**\n * Retrieves an SDK instance by its name.\n *\n * @example\n * ```javascript\n * const sdk = getSdk('my-sdk');\n * ```\n *\n * @param name - Optional name of the sdk to initialise.\n * If name is not provided, the default is \"[DEFAULT]\"\n *\n * @returns The configured SDK instance.\n *\n * @public\n */\nexport function getSdk(name: string = DEFAULT_SDK_NAME): MonterosaSdk {\n const sdk = sdks.get(name);\n\n if (!sdk) {\n throw new Error(\n `No Monterosa Sdk \"${name}\" has been configured.\n You need to call configure() first`,\n );\n }\n\n return sdk;\n}\n\n/**\n * @internal\n */\nexport function getDeviceId() {\n if (DEVICE_ID !== undefined) {\n return DEVICE_ID;\n }\n\n if (!checkStorageAvailability()) {\n DEVICE_ID = generateUUID();\n\n return DEVICE_ID;\n }\n\n const value = getStorageItem(DEVICE_ID_KEY);\n\n if (value === null) {\n DEVICE_ID = generateUUID();\n\n setStorageItem(DEVICE_ID_KEY, DEVICE_ID);\n } else {\n DEVICE_ID = value;\n }\n\n return DEVICE_ID;\n}\n\n/**\n * Creates an SDK instance.\n *\n * @example\n *\n * Configure default SDK with host and Project ID\n *\n * ```javascript\n * configure({\n * host: \"...\",\n * projectId: \"...\"\n * });\n * ```\n *\n * @param options - Configuration object containing `host` and `projectId`.\n * These values can be found in the Embed section of your Project in Studio.\n * @param name - Optional name of the sdk to initialise.\n * If name is not provided, the default is \"[DEFAULT]\"\n *\n * @returns Configured SDK instance.\n *\n * @public\n */\nexport function configure(\n options: SdkOptions,\n name: string = DEFAULT_SDK_NAME,\n): MonterosaSdk {\n const existingSdk = sdks.get(name);\n\n if (existingSdk) {\n return existingSdk;\n }\n\n const sdk = new Sdk(options, name);\n\n sdks.set(name, sdk);\n\n return sdk;\n}\n\n/**\n * Destroy initialised SDK\n *\n * @example\n * ```javascript\n * const sdk = configure(...);\n *\n * destroy(sdk);\n * ```\n *\n * @param sdk - sdk instance\n */\nexport function destroy(sdk: MonterosaSdk) {\n const { name } = sdk;\n\n sdks.delete(name);\n sdk.deleteKits();\n sdk.isDestroyed = true;\n}\n","/**\n * @license\n * @monterosa/sdk-core\n *\n * Copyright © 2022 Monterosa Productions Limited. All rights reserved.\n *\n * More details on the license can be found at https://www.monterosa.co/sdk/license\n */\n\n/* eslint-disable no-console */\n\n/**\n * Represents the possible log levels.\n */\nexport enum LogLevel {\n /**\n * Verbose level. Provides detailed and extensive logging.\n */\n Verbose,\n /**\n * Debug level. Used for debugging and development purposes.\n */\n Debug,\n /**\n * Info level. Used to provide general information about the system's state.\n */\n Info,\n /**\n * Warn level. Indicates potential issues or situations that might cause problems in the future.\n */\n Warn,\n /**\n * Error level. Indicates critical errors and issues that require immediate attention.\n */\n Error,\n /**\n * Silent level. No logs will be output.\n */\n Silent,\n}\n\n/** @internal */\nexport type LogHandler = (\n logger: Logger,\n logType: LogLevel,\n ...args: unknown[]\n) => void;\n\nconst Methods = {\n [LogLevel.Verbose]: 'log',\n // `console.debug` is not shown in Chrome and Edge by default. It must be\n // enabled manually. To avoid hassle for developers with settings debug\n // messages are sent to `console.log`\n [LogLevel.Debug]: 'log',\n [LogLevel.Info]: 'info',\n [LogLevel.Warn]: 'warn',\n [LogLevel.Error]: 'error',\n} as const;\n\nconst logHandler: LogHandler = (logger, logLevel, ...args) => {\n if (logger.logLevel > logLevel) {\n return;\n }\n\n const method = Methods[logLevel as keyof typeof Methods];\n\n console[method](\n new Date().toISOString().replace(/[TZ]/gi, ' ').trim(),\n `${LogLevel[logLevel]}/${logger.name}:`,\n ...args,\n );\n};\n\n/** @internal */\nexport class Logger {\n private _logLevel: LogLevel = LogLevel.Warn;\n private _logHandler: LogHandler = logHandler;\n\n constructor(public name: string) {}\n\n get logLevel(): LogLevel {\n return this._logLevel;\n }\n\n set logLevel(level: LogLevel) {\n this._logLevel = level;\n }\n\n get logHandler(): LogHandler {\n return this._logHandler;\n }\n\n set logHandler(handler: LogHandler) {\n this.logHandler = handler;\n }\n\n log(...args: unknown[]) {\n this.logHandler(this, LogLevel.Verbose, ...args);\n }\n\n debug(...args: unknown[]) {\n this.logHandler(this, LogLevel.Debug, ...args);\n }\n\n info(...args: unknown[]) {\n this.logHandler(this, LogLevel.Info, ...args);\n }\n\n warn(...args: unknown[]) {\n this.logHandler(this, LogLevel.Warn, ...args);\n }\n\n error(...args: unknown[]) {\n this.logHandler(this, LogLevel.Error, ...args);\n }\n}\n"],"names":["checkStorageAvailability","generateUUID","getStorageItem","setStorageItem","LogLevel"],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { checkAvailability, getItem, setItem } from '@monterosa/sdk-util';
|
|
1
|
+
import { checkAvailability, generateUUID, getItem, setItem } from '@monterosa/sdk-util';
|
|
3
2
|
|
|
4
|
-
var version = "2.0.0-rc.
|
|
3
|
+
var version = "2.0.0-rc.3";
|
|
5
4
|
|
|
6
5
|
/**
|
|
7
6
|
* @license
|
|
@@ -30,6 +29,20 @@ const VERSION = version;
|
|
|
30
29
|
*/
|
|
31
30
|
const DEVICE_ID_KEY = 'device_id';
|
|
32
31
|
|
|
32
|
+
/**
|
|
33
|
+
* @license
|
|
34
|
+
* @monterosa/sdk-core
|
|
35
|
+
*
|
|
36
|
+
* Copyright © 2026 Monterosa Productions Limited. All rights reserved.
|
|
37
|
+
*
|
|
38
|
+
* More details on the license can be found at https://www.monterosa.co/sdk/license
|
|
39
|
+
*/
|
|
40
|
+
var _a;
|
|
41
|
+
if (typeof document !== 'undefined') {
|
|
42
|
+
const title = document.title || ((_a = document.location) === null || _a === void 0 ? void 0 : _a.hostname) || '';
|
|
43
|
+
console.debug(`Monterosa SDK v${VERSION}${title ? ` — "${title}"` : ''}`);
|
|
44
|
+
}
|
|
45
|
+
|
|
33
46
|
/**
|
|
34
47
|
* @license
|
|
35
48
|
* @monterosa/sdk-core
|
|
@@ -107,7 +120,9 @@ function deleteKit(sdk, name) {
|
|
|
107
120
|
const sdks = new Map();
|
|
108
121
|
let DEVICE_ID;
|
|
109
122
|
/**
|
|
110
|
-
*
|
|
123
|
+
* Returns all configured SDK instances.
|
|
124
|
+
*
|
|
125
|
+
* @returns An array of all configured SDK instances.
|
|
111
126
|
*
|
|
112
127
|
* @public
|
|
113
128
|
*/
|
|
@@ -125,6 +140,8 @@ function getSdks() {
|
|
|
125
140
|
* @param name - Optional name of the sdk to initialise.
|
|
126
141
|
* If name is not provided, the default is "[DEFAULT]"
|
|
127
142
|
*
|
|
143
|
+
* @returns The configured SDK instance.
|
|
144
|
+
*
|
|
128
145
|
* @public
|
|
129
146
|
*/
|
|
130
147
|
function getSdk(name = DEFAULT_SDK_NAME) {
|
|
@@ -143,12 +160,12 @@ function getDeviceId() {
|
|
|
143
160
|
return DEVICE_ID;
|
|
144
161
|
}
|
|
145
162
|
if (!checkAvailability()) {
|
|
146
|
-
DEVICE_ID =
|
|
163
|
+
DEVICE_ID = generateUUID();
|
|
147
164
|
return DEVICE_ID;
|
|
148
165
|
}
|
|
149
166
|
const value = getItem(DEVICE_ID_KEY);
|
|
150
167
|
if (value === null) {
|
|
151
|
-
DEVICE_ID =
|
|
168
|
+
DEVICE_ID = generateUUID();
|
|
152
169
|
setItem(DEVICE_ID_KEY, DEVICE_ID);
|
|
153
170
|
}
|
|
154
171
|
else {
|
|
@@ -161,7 +178,7 @@ function getDeviceId() {
|
|
|
161
178
|
*
|
|
162
179
|
* @example
|
|
163
180
|
*
|
|
164
|
-
* Configure default
|
|
181
|
+
* Configure default SDK with host and Project ID
|
|
165
182
|
*
|
|
166
183
|
* ```javascript
|
|
167
184
|
* configure({
|
|
@@ -170,7 +187,8 @@ function getDeviceId() {
|
|
|
170
187
|
* });
|
|
171
188
|
* ```
|
|
172
189
|
*
|
|
173
|
-
* @param options -
|
|
190
|
+
* @param options - Configuration object containing `host` and `projectId`.
|
|
191
|
+
* These values can be found in the Embed section of your Project in Studio.
|
|
174
192
|
* @param name - Optional name of the sdk to initialise.
|
|
175
193
|
* If name is not provided, the default is "[DEFAULT]"
|
|
176
194
|
*
|
|
@@ -188,7 +206,7 @@ function configure(options, name = DEFAULT_SDK_NAME) {
|
|
|
188
206
|
return sdk;
|
|
189
207
|
}
|
|
190
208
|
/**
|
|
191
|
-
* Destroy initialised
|
|
209
|
+
* Destroy initialised SDK
|
|
192
210
|
*
|
|
193
211
|
* @example
|
|
194
212
|
* ```javascript
|
|
@@ -299,4 +317,4 @@ class Logger {
|
|
|
299
317
|
}
|
|
300
318
|
|
|
301
319
|
export { DEFAULT_SDK_NAME, DEVICE_ID_KEY, LogLevel, Logger, Sdk, VERSION, addKit, configure, deleteKit, destroy, getDeviceId, getKit, getSdk, getSdks };
|
|
302
|
-
//# sourceMappingURL=index.
|
|
320
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/constants.ts","../src/log_version.ts","../src/sdk.ts","../src/api.ts","../src/utils/logger.ts"],"sourcesContent":["/**\n * @license\n * @monterosa/sdk-core\n *\n * Copyright © 2023-2024 Monterosa Productions Limited. All rights reserved.\n *\n * More details on the license can be found at https://www.monterosa.co/sdk/license\n */\n\nimport { version } from '../package.json';\n\n/**\n * Default sdk name.\n *\n * @internal\n */\nexport const DEFAULT_SDK_NAME = '[DEFAULT]';\n\n/**\n * The current SDK version.\n *\n * @public\n */\nexport const VERSION = version;\n\n/**\n * Device ID storage key name\n *\n * @internal\n */\nexport const DEVICE_ID_KEY = 'device_id';\n","/**\n * @license\n * @monterosa/sdk-core\n *\n * Copyright © 2026 Monterosa Productions Limited. All rights reserved.\n *\n * More details on the license can be found at https://www.monterosa.co/sdk/license\n */\n\nimport { VERSION } from './constants';\n\nif (typeof document !== 'undefined') {\n const title = document.title || document.location?.hostname || '';\n\n console.debug(`Monterosa SDK v${VERSION}${title ? ` — \"${title}\"` : ''}`);\n}\n","/**\n * @license\n * @monterosa/sdk-core\n *\n * Copyright © 2021-2024 Monterosa Productions Limited. All rights reserved.\n *\n * More details on the license can be found at https://www.monterosa.co/sdk/license\n */\n\nimport { MonterosaSdk, MonterosaKit, Kits, SdkOptions } from './types';\n\n/**\n * @internal\n */\nexport class Sdk implements MonterosaSdk {\n private readonly _options: Required<SdkOptions>;\n private readonly _name: string;\n private _isDestroyed: boolean = false;\n private _kits: Kits;\n\n constructor(options: SdkOptions, name: string) {\n this._options = { ...options };\n this._name = name;\n this._kits = new Map();\n }\n\n get name(): string {\n this.checkDestroyed();\n return this._name;\n }\n\n get options(): SdkOptions {\n this.checkDestroyed();\n return this._options;\n }\n\n get isDestroyed(): boolean {\n return this._isDestroyed;\n }\n\n get kits(): Kits {\n return this._kits;\n }\n\n set isDestroyed(value: boolean) {\n this._isDestroyed = value;\n }\n\n public deleteKits() {\n this.kits.forEach((kit, name) => {\n this.kits.delete(name);\n kit.delete();\n });\n }\n\n private checkDestroyed(): void {\n if (this.isDestroyed) {\n throw new Error(`SDK named ${this.name} destroyed`);\n }\n }\n}\n\n/**\n * @internal\n */\nexport function addKit(sdk: MonterosaSdk, name: string, kit: MonterosaKit) {\n sdk.kits.set(name, kit);\n}\n\n/**\n * @internal\n */\nexport function getKit(\n sdk: MonterosaSdk,\n name: string,\n): MonterosaKit | undefined {\n return sdk.kits.get(name);\n}\n\n/**\n * @internal\n */\nexport function deleteKit(sdk: MonterosaSdk, name: string): void {\n sdk.kits.delete(name);\n}\n","/**\n * @license\n * @monterosa/sdk-core\n *\n * Copyright © 2022-2024 Monterosa Productions Limited. All rights reserved.\n *\n * More details on the license can be found at https://www.monterosa.co/sdk/license\n */\n\nimport {\n getItem as getStorageItem,\n setItem as setStorageItem,\n checkAvailability as checkStorageAvailability,\n generateUUID,\n} from '@monterosa/sdk-util';\n\nimport { MonterosaSdk, SdkOptions } from './types';\nimport { DEFAULT_SDK_NAME, DEVICE_ID_KEY } from './constants';\nimport { Sdk } from './sdk';\n\nconst sdks = new Map<string, MonterosaSdk>();\n\nlet DEVICE_ID: string;\n\n/**\n * Returns all configured SDK instances.\n *\n * @returns An array of all configured SDK instances.\n *\n * @public\n */\nexport function getSdks(): MonterosaSdk[] {\n return Array.from(sdks.values());\n}\n\n/**\n * Retrieves an SDK instance by its name.\n *\n * @example\n * ```javascript\n * const sdk = getSdk('my-sdk');\n * ```\n *\n * @param name - Optional name of the sdk to initialise.\n * If name is not provided, the default is \"[DEFAULT]\"\n *\n * @returns The configured SDK instance.\n *\n * @public\n */\nexport function getSdk(name: string = DEFAULT_SDK_NAME): MonterosaSdk {\n const sdk = sdks.get(name);\n\n if (!sdk) {\n throw new Error(\n `No Monterosa Sdk \"${name}\" has been configured.\n You need to call configure() first`,\n );\n }\n\n return sdk;\n}\n\n/**\n * @internal\n */\nexport function getDeviceId() {\n if (DEVICE_ID !== undefined) {\n return DEVICE_ID;\n }\n\n if (!checkStorageAvailability()) {\n DEVICE_ID = generateUUID();\n\n return DEVICE_ID;\n }\n\n const value = getStorageItem(DEVICE_ID_KEY);\n\n if (value === null) {\n DEVICE_ID = generateUUID();\n\n setStorageItem(DEVICE_ID_KEY, DEVICE_ID);\n } else {\n DEVICE_ID = value;\n }\n\n return DEVICE_ID;\n}\n\n/**\n * Creates an SDK instance.\n *\n * @example\n *\n * Configure default SDK with host and Project ID\n *\n * ```javascript\n * configure({\n * host: \"...\",\n * projectId: \"...\"\n * });\n * ```\n *\n * @param options - Configuration object containing `host` and `projectId`.\n * These values can be found in the Embed section of your Project in Studio.\n * @param name - Optional name of the sdk to initialise.\n * If name is not provided, the default is \"[DEFAULT]\"\n *\n * @returns Configured SDK instance.\n *\n * @public\n */\nexport function configure(\n options: SdkOptions,\n name: string = DEFAULT_SDK_NAME,\n): MonterosaSdk {\n const existingSdk = sdks.get(name);\n\n if (existingSdk) {\n return existingSdk;\n }\n\n const sdk = new Sdk(options, name);\n\n sdks.set(name, sdk);\n\n return sdk;\n}\n\n/**\n * Destroy initialised SDK\n *\n * @example\n * ```javascript\n * const sdk = configure(...);\n *\n * destroy(sdk);\n * ```\n *\n * @param sdk - sdk instance\n */\nexport function destroy(sdk: MonterosaSdk) {\n const { name } = sdk;\n\n sdks.delete(name);\n sdk.deleteKits();\n sdk.isDestroyed = true;\n}\n","/**\n * @license\n * @monterosa/sdk-core\n *\n * Copyright © 2022 Monterosa Productions Limited. All rights reserved.\n *\n * More details on the license can be found at https://www.monterosa.co/sdk/license\n */\n\n/* eslint-disable no-console */\n\n/**\n * Represents the possible log levels.\n */\nexport enum LogLevel {\n /**\n * Verbose level. Provides detailed and extensive logging.\n */\n Verbose,\n /**\n * Debug level. Used for debugging and development purposes.\n */\n Debug,\n /**\n * Info level. Used to provide general information about the system's state.\n */\n Info,\n /**\n * Warn level. Indicates potential issues or situations that might cause problems in the future.\n */\n Warn,\n /**\n * Error level. Indicates critical errors and issues that require immediate attention.\n */\n Error,\n /**\n * Silent level. No logs will be output.\n */\n Silent,\n}\n\n/** @internal */\nexport type LogHandler = (\n logger: Logger,\n logType: LogLevel,\n ...args: unknown[]\n) => void;\n\nconst Methods = {\n [LogLevel.Verbose]: 'log',\n // `console.debug` is not shown in Chrome and Edge by default. It must be\n // enabled manually. To avoid hassle for developers with settings debug\n // messages are sent to `console.log`\n [LogLevel.Debug]: 'log',\n [LogLevel.Info]: 'info',\n [LogLevel.Warn]: 'warn',\n [LogLevel.Error]: 'error',\n} as const;\n\nconst logHandler: LogHandler = (logger, logLevel, ...args) => {\n if (logger.logLevel > logLevel) {\n return;\n }\n\n const method = Methods[logLevel as keyof typeof Methods];\n\n console[method](\n new Date().toISOString().replace(/[TZ]/gi, ' ').trim(),\n `${LogLevel[logLevel]}/${logger.name}:`,\n ...args,\n );\n};\n\n/** @internal */\nexport class Logger {\n private _logLevel: LogLevel = LogLevel.Warn;\n private _logHandler: LogHandler = logHandler;\n\n constructor(public name: string) {}\n\n get logLevel(): LogLevel {\n return this._logLevel;\n }\n\n set logLevel(level: LogLevel) {\n this._logLevel = level;\n }\n\n get logHandler(): LogHandler {\n return this._logHandler;\n }\n\n set logHandler(handler: LogHandler) {\n this.logHandler = handler;\n }\n\n log(...args: unknown[]) {\n this.logHandler(this, LogLevel.Verbose, ...args);\n }\n\n debug(...args: unknown[]) {\n this.logHandler(this, LogLevel.Debug, ...args);\n }\n\n info(...args: unknown[]) {\n this.logHandler(this, LogLevel.Info, ...args);\n }\n\n warn(...args: unknown[]) {\n this.logHandler(this, LogLevel.Warn, ...args);\n }\n\n error(...args: unknown[]) {\n this.logHandler(this, LogLevel.Error, ...args);\n }\n}\n"],"names":["checkStorageAvailability","getStorageItem","setStorageItem"],"mappings":"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"}
|
package/dist/src/api.d.ts
CHANGED
|
@@ -8,7 +8,9 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import { MonterosaSdk, SdkOptions } from './types';
|
|
10
10
|
/**
|
|
11
|
-
*
|
|
11
|
+
* Returns all configured SDK instances.
|
|
12
|
+
*
|
|
13
|
+
* @returns An array of all configured SDK instances.
|
|
12
14
|
*
|
|
13
15
|
* @public
|
|
14
16
|
*/
|
|
@@ -24,6 +26,8 @@ export declare function getSdks(): MonterosaSdk[];
|
|
|
24
26
|
* @param name - Optional name of the sdk to initialise.
|
|
25
27
|
* If name is not provided, the default is "[DEFAULT]"
|
|
26
28
|
*
|
|
29
|
+
* @returns The configured SDK instance.
|
|
30
|
+
*
|
|
27
31
|
* @public
|
|
28
32
|
*/
|
|
29
33
|
export declare function getSdk(name?: string): MonterosaSdk;
|
|
@@ -36,7 +40,7 @@ export declare function getDeviceId(): string;
|
|
|
36
40
|
*
|
|
37
41
|
* @example
|
|
38
42
|
*
|
|
39
|
-
* Configure default
|
|
43
|
+
* Configure default SDK with host and Project ID
|
|
40
44
|
*
|
|
41
45
|
* ```javascript
|
|
42
46
|
* configure({
|
|
@@ -45,7 +49,8 @@ export declare function getDeviceId(): string;
|
|
|
45
49
|
* });
|
|
46
50
|
* ```
|
|
47
51
|
*
|
|
48
|
-
* @param options -
|
|
52
|
+
* @param options - Configuration object containing `host` and `projectId`.
|
|
53
|
+
* These values can be found in the Embed section of your Project in Studio.
|
|
49
54
|
* @param name - Optional name of the sdk to initialise.
|
|
50
55
|
* If name is not provided, the default is "[DEFAULT]"
|
|
51
56
|
*
|
|
@@ -55,7 +60,7 @@ export declare function getDeviceId(): string;
|
|
|
55
60
|
*/
|
|
56
61
|
export declare function configure(options: SdkOptions, name?: string): MonterosaSdk;
|
|
57
62
|
/**
|
|
58
|
-
* Destroy initialised
|
|
63
|
+
* Destroy initialised SDK
|
|
59
64
|
*
|
|
60
65
|
* @example
|
|
61
66
|
* ```javascript
|
package/dist/src/index.d.ts
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Initialises the SDK and provides access to projects and configuration.
|
|
3
|
+
*
|
|
4
|
+
* @packageDocumentation
|
|
5
|
+
*/
|
|
1
6
|
/**
|
|
2
7
|
* @license
|
|
3
8
|
* @monterosa/sdk-core
|
|
@@ -6,11 +11,7 @@
|
|
|
6
11
|
*
|
|
7
12
|
* More details on the license can be found at https://www.monterosa.co/sdk/license
|
|
8
13
|
*/
|
|
9
|
-
|
|
10
|
-
* Monterosa SDK / Core
|
|
11
|
-
*
|
|
12
|
-
* @packageDocumentation
|
|
13
|
-
*/
|
|
14
|
+
import './log_version';
|
|
14
15
|
export * from './constants';
|
|
15
16
|
export * from './api';
|
|
16
17
|
export * from './sdk';
|
package/dist/src/types.d.ts
CHANGED
|
@@ -19,12 +19,14 @@ export interface SdkOptions {
|
|
|
19
19
|
*/
|
|
20
20
|
readonly host: string;
|
|
21
21
|
/**
|
|
22
|
-
* Unique identifier for the Studio
|
|
22
|
+
* Unique identifier for the Studio Project
|
|
23
23
|
*/
|
|
24
24
|
readonly projectId: string;
|
|
25
25
|
}
|
|
26
26
|
/**
|
|
27
|
-
*
|
|
27
|
+
* Represents a configured SDK instance. Obtain one via
|
|
28
|
+
* {@link configure} or retrieve an existing one with
|
|
29
|
+
* {@link getSdk}.
|
|
28
30
|
*/
|
|
29
31
|
export interface MonterosaSdk {
|
|
30
32
|
/**
|
package/package.json
CHANGED
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@monterosa/sdk-core",
|
|
3
|
-
"version": "2.0.0-rc.
|
|
3
|
+
"version": "2.0.0-rc.3",
|
|
4
4
|
"description": "Monterosa JS SDK / Core",
|
|
5
5
|
"author": "Monterosa Productions Limited <hello@monterosa.co.uk> (https://www.monterosa.co/)",
|
|
6
|
-
"main": "dist/index.cjs
|
|
7
|
-
"browser": "dist/index.esm.js",
|
|
8
|
-
"module": "dist/index.esm.js",
|
|
6
|
+
"main": "./dist/index.cjs",
|
|
9
7
|
"types": "./dist/src/index.d.ts",
|
|
10
|
-
"
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/src/index.d.ts",
|
|
11
|
+
"import": "./dist/index.js",
|
|
12
|
+
"require": "./dist/index.cjs",
|
|
13
|
+
"default": "./dist/index.cjs"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
11
16
|
"files": [
|
|
12
17
|
"dist"
|
|
13
18
|
],
|
|
@@ -19,14 +24,15 @@
|
|
|
19
24
|
"test:ci": "jest --color --ci --reporters=jest-junit --coverage",
|
|
20
25
|
"api-report": "api-extractor run --local --verbose"
|
|
21
26
|
},
|
|
22
|
-
"keywords": [
|
|
27
|
+
"keywords": [
|
|
28
|
+
"monterosa",
|
|
29
|
+
"sdk",
|
|
30
|
+
"interaction-cloud",
|
|
31
|
+
"core"
|
|
32
|
+
],
|
|
23
33
|
"license": "MIT",
|
|
24
|
-
"peerDependencies": {
|
|
25
|
-
"@monterosa/sdk-util": "0.x"
|
|
26
|
-
},
|
|
27
34
|
"dependencies": {
|
|
28
|
-
"@monterosa/sdk-util": "
|
|
29
|
-
"uuid": "^8.3.2"
|
|
35
|
+
"@monterosa/sdk-util": "2.0.0-rc.3"
|
|
30
36
|
},
|
|
31
37
|
"devDependencies": {
|
|
32
38
|
"@rollup/plugin-json": "^4.1.0",
|
|
@@ -47,5 +53,5 @@
|
|
|
47
53
|
"publishConfig": {
|
|
48
54
|
"access": "public"
|
|
49
55
|
},
|
|
50
|
-
"gitHead": "
|
|
56
|
+
"gitHead": "d692ad26af0b5ea7cd7b664168bffa069f9ab911"
|
|
51
57
|
}
|
package/dist/index.cjs.js
DELETED
|
@@ -1,412 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var uuid = require('uuid');
|
|
6
|
-
var sdkUtil = require('@monterosa/sdk-util');
|
|
7
|
-
|
|
8
|
-
var version = "2.0.0-rc.1";
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* @license
|
|
12
|
-
* @monterosa/sdk-core
|
|
13
|
-
*
|
|
14
|
-
* Copyright © 2023-2024 Monterosa Productions Limited. All rights reserved.
|
|
15
|
-
*
|
|
16
|
-
* More details on the license can be found at https://www.monterosa.co/sdk/license
|
|
17
|
-
*/
|
|
18
|
-
/**
|
|
19
|
-
* Default sdk name.
|
|
20
|
-
*
|
|
21
|
-
* @internal
|
|
22
|
-
*/
|
|
23
|
-
var DEFAULT_SDK_NAME = '[DEFAULT]';
|
|
24
|
-
/**
|
|
25
|
-
* The current SDK version.
|
|
26
|
-
*
|
|
27
|
-
* @public
|
|
28
|
-
*/
|
|
29
|
-
var VERSION = version;
|
|
30
|
-
/**
|
|
31
|
-
* Device ID storage key name
|
|
32
|
-
*
|
|
33
|
-
* @internal
|
|
34
|
-
*/
|
|
35
|
-
var DEVICE_ID_KEY = 'device_id';
|
|
36
|
-
|
|
37
|
-
/******************************************************************************
|
|
38
|
-
Copyright (c) Microsoft Corporation.
|
|
39
|
-
|
|
40
|
-
Permission to use, copy, modify, and/or distribute this software for any
|
|
41
|
-
purpose with or without fee is hereby granted.
|
|
42
|
-
|
|
43
|
-
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
44
|
-
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
45
|
-
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
46
|
-
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
47
|
-
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
48
|
-
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
49
|
-
PERFORMANCE OF THIS SOFTWARE.
|
|
50
|
-
***************************************************************************** */
|
|
51
|
-
|
|
52
|
-
var __assign = function() {
|
|
53
|
-
__assign = Object.assign || function __assign(t) {
|
|
54
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
55
|
-
s = arguments[i];
|
|
56
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
|
57
|
-
}
|
|
58
|
-
return t;
|
|
59
|
-
};
|
|
60
|
-
return __assign.apply(this, arguments);
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
function __spreadArray(to, from, pack) {
|
|
64
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
65
|
-
if (ar || !(i in from)) {
|
|
66
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
67
|
-
ar[i] = from[i];
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
74
|
-
var e = new Error(message);
|
|
75
|
-
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
76
|
-
};
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* @license
|
|
80
|
-
* @monterosa/sdk-core
|
|
81
|
-
*
|
|
82
|
-
* Copyright © 2021-2024 Monterosa Productions Limited. All rights reserved.
|
|
83
|
-
*
|
|
84
|
-
* More details on the license can be found at https://www.monterosa.co/sdk/license
|
|
85
|
-
*/
|
|
86
|
-
/**
|
|
87
|
-
* @internal
|
|
88
|
-
*/
|
|
89
|
-
var Sdk = /** @class */ (function () {
|
|
90
|
-
function Sdk(options, name) {
|
|
91
|
-
this._isDestroyed = false;
|
|
92
|
-
this._options = __assign({}, options);
|
|
93
|
-
this._name = name;
|
|
94
|
-
this._kits = new Map();
|
|
95
|
-
}
|
|
96
|
-
Object.defineProperty(Sdk.prototype, "name", {
|
|
97
|
-
get: function () {
|
|
98
|
-
this.checkDestroyed();
|
|
99
|
-
return this._name;
|
|
100
|
-
},
|
|
101
|
-
enumerable: false,
|
|
102
|
-
configurable: true
|
|
103
|
-
});
|
|
104
|
-
Object.defineProperty(Sdk.prototype, "options", {
|
|
105
|
-
get: function () {
|
|
106
|
-
this.checkDestroyed();
|
|
107
|
-
return this._options;
|
|
108
|
-
},
|
|
109
|
-
enumerable: false,
|
|
110
|
-
configurable: true
|
|
111
|
-
});
|
|
112
|
-
Object.defineProperty(Sdk.prototype, "isDestroyed", {
|
|
113
|
-
get: function () {
|
|
114
|
-
return this._isDestroyed;
|
|
115
|
-
},
|
|
116
|
-
set: function (value) {
|
|
117
|
-
this._isDestroyed = value;
|
|
118
|
-
},
|
|
119
|
-
enumerable: false,
|
|
120
|
-
configurable: true
|
|
121
|
-
});
|
|
122
|
-
Object.defineProperty(Sdk.prototype, "kits", {
|
|
123
|
-
get: function () {
|
|
124
|
-
return this._kits;
|
|
125
|
-
},
|
|
126
|
-
enumerable: false,
|
|
127
|
-
configurable: true
|
|
128
|
-
});
|
|
129
|
-
Sdk.prototype.deleteKits = function () {
|
|
130
|
-
var _this = this;
|
|
131
|
-
this.kits.forEach(function (kit, name) {
|
|
132
|
-
_this.kits.delete(name);
|
|
133
|
-
kit.delete();
|
|
134
|
-
});
|
|
135
|
-
};
|
|
136
|
-
Sdk.prototype.checkDestroyed = function () {
|
|
137
|
-
if (this.isDestroyed) {
|
|
138
|
-
throw new Error("SDK named ".concat(this.name, " destroyed"));
|
|
139
|
-
}
|
|
140
|
-
};
|
|
141
|
-
return Sdk;
|
|
142
|
-
}());
|
|
143
|
-
/**
|
|
144
|
-
* @internal
|
|
145
|
-
*/
|
|
146
|
-
function addKit(sdk, name, kit) {
|
|
147
|
-
sdk.kits.set(name, kit);
|
|
148
|
-
}
|
|
149
|
-
/**
|
|
150
|
-
* @internal
|
|
151
|
-
*/
|
|
152
|
-
function getKit(sdk, name) {
|
|
153
|
-
return sdk.kits.get(name);
|
|
154
|
-
}
|
|
155
|
-
/**
|
|
156
|
-
* @internal
|
|
157
|
-
*/
|
|
158
|
-
function deleteKit(sdk, name) {
|
|
159
|
-
sdk.kits.delete(name);
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
/**
|
|
163
|
-
* @license
|
|
164
|
-
* @monterosa/sdk-core
|
|
165
|
-
*
|
|
166
|
-
* Copyright © 2022-2024 Monterosa Productions Limited. All rights reserved.
|
|
167
|
-
*
|
|
168
|
-
* More details on the license can be found at https://www.monterosa.co/sdk/license
|
|
169
|
-
*/
|
|
170
|
-
var sdks = new Map();
|
|
171
|
-
var DEVICE_ID;
|
|
172
|
-
/**
|
|
173
|
-
* An array of all configured sdks.
|
|
174
|
-
*
|
|
175
|
-
* @public
|
|
176
|
-
*/
|
|
177
|
-
function getSdks() {
|
|
178
|
-
return Array.from(sdks.values());
|
|
179
|
-
}
|
|
180
|
-
/**
|
|
181
|
-
* Retrieves an SDK instance by its name.
|
|
182
|
-
*
|
|
183
|
-
* @example
|
|
184
|
-
* ```javascript
|
|
185
|
-
* const sdk = getSdk('my-sdk');
|
|
186
|
-
* ```
|
|
187
|
-
*
|
|
188
|
-
* @param name - Optional name of the sdk to initialise.
|
|
189
|
-
* If name is not provided, the default is "[DEFAULT]"
|
|
190
|
-
*
|
|
191
|
-
* @public
|
|
192
|
-
*/
|
|
193
|
-
function getSdk(name) {
|
|
194
|
-
if (name === void 0) { name = DEFAULT_SDK_NAME; }
|
|
195
|
-
var sdk = sdks.get(name);
|
|
196
|
-
if (!sdk) {
|
|
197
|
-
throw new Error("No Monterosa Sdk \"".concat(name, "\" has been configured.\n You need to call configure() first"));
|
|
198
|
-
}
|
|
199
|
-
return sdk;
|
|
200
|
-
}
|
|
201
|
-
/**
|
|
202
|
-
* @internal
|
|
203
|
-
*/
|
|
204
|
-
function getDeviceId() {
|
|
205
|
-
if (DEVICE_ID !== undefined) {
|
|
206
|
-
return DEVICE_ID;
|
|
207
|
-
}
|
|
208
|
-
if (!sdkUtil.checkAvailability()) {
|
|
209
|
-
DEVICE_ID = uuid.v4();
|
|
210
|
-
return DEVICE_ID;
|
|
211
|
-
}
|
|
212
|
-
var value = sdkUtil.getItem(DEVICE_ID_KEY);
|
|
213
|
-
if (value === null) {
|
|
214
|
-
DEVICE_ID = uuid.v4();
|
|
215
|
-
sdkUtil.setItem(DEVICE_ID_KEY, DEVICE_ID);
|
|
216
|
-
}
|
|
217
|
-
else {
|
|
218
|
-
DEVICE_ID = value;
|
|
219
|
-
}
|
|
220
|
-
return DEVICE_ID;
|
|
221
|
-
}
|
|
222
|
-
/**
|
|
223
|
-
* Creates an SDK instance.
|
|
224
|
-
*
|
|
225
|
-
* @example
|
|
226
|
-
*
|
|
227
|
-
* Configure default sdk with host and project id
|
|
228
|
-
*
|
|
229
|
-
* ```javascript
|
|
230
|
-
* configure({
|
|
231
|
-
* host: "...",
|
|
232
|
-
* projectId: "..."
|
|
233
|
-
* });
|
|
234
|
-
* ```
|
|
235
|
-
*
|
|
236
|
-
* @param options - Studio host
|
|
237
|
-
* @param name - Optional name of the sdk to initialise.
|
|
238
|
-
* If name is not provided, the default is "[DEFAULT]"
|
|
239
|
-
*
|
|
240
|
-
* @returns Configured SDK instance.
|
|
241
|
-
*
|
|
242
|
-
* @public
|
|
243
|
-
*/
|
|
244
|
-
function configure(options, name) {
|
|
245
|
-
if (name === void 0) { name = DEFAULT_SDK_NAME; }
|
|
246
|
-
var existingSdk = sdks.get(name);
|
|
247
|
-
if (existingSdk) {
|
|
248
|
-
return existingSdk;
|
|
249
|
-
}
|
|
250
|
-
var sdk = new Sdk(options, name);
|
|
251
|
-
sdks.set(name, sdk);
|
|
252
|
-
return sdk;
|
|
253
|
-
}
|
|
254
|
-
/**
|
|
255
|
-
* Destroy initialised sdk
|
|
256
|
-
*
|
|
257
|
-
* @example
|
|
258
|
-
* ```javascript
|
|
259
|
-
* const sdk = configure(...);
|
|
260
|
-
*
|
|
261
|
-
* destroy(sdk);
|
|
262
|
-
* ```
|
|
263
|
-
*
|
|
264
|
-
* @param sdk - sdk instance
|
|
265
|
-
*/
|
|
266
|
-
function destroy(sdk) {
|
|
267
|
-
var name = sdk.name;
|
|
268
|
-
sdks.delete(name);
|
|
269
|
-
sdk.deleteKits();
|
|
270
|
-
sdk.isDestroyed = true;
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
/**
|
|
274
|
-
* @license
|
|
275
|
-
* @monterosa/sdk-core
|
|
276
|
-
*
|
|
277
|
-
* Copyright © 2022 Monterosa Productions Limited. All rights reserved.
|
|
278
|
-
*
|
|
279
|
-
* More details on the license can be found at https://www.monterosa.co/sdk/license
|
|
280
|
-
*/
|
|
281
|
-
var _a;
|
|
282
|
-
/* eslint-disable no-console */
|
|
283
|
-
/**
|
|
284
|
-
* Represents the possible log levels.
|
|
285
|
-
*/
|
|
286
|
-
exports.LogLevel = void 0;
|
|
287
|
-
(function (LogLevel) {
|
|
288
|
-
/**
|
|
289
|
-
* Verbose level. Provides detailed and extensive logging.
|
|
290
|
-
*/
|
|
291
|
-
LogLevel[LogLevel["Verbose"] = 0] = "Verbose";
|
|
292
|
-
/**
|
|
293
|
-
* Debug level. Used for debugging and development purposes.
|
|
294
|
-
*/
|
|
295
|
-
LogLevel[LogLevel["Debug"] = 1] = "Debug";
|
|
296
|
-
/**
|
|
297
|
-
* Info level. Used to provide general information about the system's state.
|
|
298
|
-
*/
|
|
299
|
-
LogLevel[LogLevel["Info"] = 2] = "Info";
|
|
300
|
-
/**
|
|
301
|
-
* Warn level. Indicates potential issues or situations that might cause problems in the future.
|
|
302
|
-
*/
|
|
303
|
-
LogLevel[LogLevel["Warn"] = 3] = "Warn";
|
|
304
|
-
/**
|
|
305
|
-
* Error level. Indicates critical errors and issues that require immediate attention.
|
|
306
|
-
*/
|
|
307
|
-
LogLevel[LogLevel["Error"] = 4] = "Error";
|
|
308
|
-
/**
|
|
309
|
-
* Silent level. No logs will be output.
|
|
310
|
-
*/
|
|
311
|
-
LogLevel[LogLevel["Silent"] = 5] = "Silent";
|
|
312
|
-
})(exports.LogLevel || (exports.LogLevel = {}));
|
|
313
|
-
var Methods = (_a = {},
|
|
314
|
-
_a[exports.LogLevel.Verbose] = 'log',
|
|
315
|
-
// `console.debug` is not shown in Chrome and Edge by default. It must be
|
|
316
|
-
// enabled manually. To avoid hassle for developers with settings debug
|
|
317
|
-
// messages are sent to `console.log`
|
|
318
|
-
_a[exports.LogLevel.Debug] = 'log',
|
|
319
|
-
_a[exports.LogLevel.Info] = 'info',
|
|
320
|
-
_a[exports.LogLevel.Warn] = 'warn',
|
|
321
|
-
_a[exports.LogLevel.Error] = 'error',
|
|
322
|
-
_a);
|
|
323
|
-
var logHandler = function (logger, logLevel) {
|
|
324
|
-
var args = [];
|
|
325
|
-
for (var _i = 2; _i < arguments.length; _i++) {
|
|
326
|
-
args[_i - 2] = arguments[_i];
|
|
327
|
-
}
|
|
328
|
-
if (logger.logLevel > logLevel) {
|
|
329
|
-
return;
|
|
330
|
-
}
|
|
331
|
-
var method = Methods[logLevel];
|
|
332
|
-
console[method].apply(console, __spreadArray([new Date().toISOString().replace(/[TZ]/gi, ' ').trim(), "".concat(exports.LogLevel[logLevel], "/").concat(logger.name, ":")], args, false));
|
|
333
|
-
};
|
|
334
|
-
/** @internal */
|
|
335
|
-
var Logger = /** @class */ (function () {
|
|
336
|
-
function Logger(name) {
|
|
337
|
-
this.name = name;
|
|
338
|
-
this._logLevel = exports.LogLevel.Warn;
|
|
339
|
-
this._logHandler = logHandler;
|
|
340
|
-
}
|
|
341
|
-
Object.defineProperty(Logger.prototype, "logLevel", {
|
|
342
|
-
get: function () {
|
|
343
|
-
return this._logLevel;
|
|
344
|
-
},
|
|
345
|
-
set: function (level) {
|
|
346
|
-
this._logLevel = level;
|
|
347
|
-
},
|
|
348
|
-
enumerable: false,
|
|
349
|
-
configurable: true
|
|
350
|
-
});
|
|
351
|
-
Object.defineProperty(Logger.prototype, "logHandler", {
|
|
352
|
-
get: function () {
|
|
353
|
-
return this._logHandler;
|
|
354
|
-
},
|
|
355
|
-
set: function (handler) {
|
|
356
|
-
this.logHandler = handler;
|
|
357
|
-
},
|
|
358
|
-
enumerable: false,
|
|
359
|
-
configurable: true
|
|
360
|
-
});
|
|
361
|
-
Logger.prototype.log = function () {
|
|
362
|
-
var args = [];
|
|
363
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
364
|
-
args[_i] = arguments[_i];
|
|
365
|
-
}
|
|
366
|
-
this.logHandler.apply(this, __spreadArray([this, exports.LogLevel.Verbose], args, false));
|
|
367
|
-
};
|
|
368
|
-
Logger.prototype.debug = function () {
|
|
369
|
-
var args = [];
|
|
370
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
371
|
-
args[_i] = arguments[_i];
|
|
372
|
-
}
|
|
373
|
-
this.logHandler.apply(this, __spreadArray([this, exports.LogLevel.Debug], args, false));
|
|
374
|
-
};
|
|
375
|
-
Logger.prototype.info = function () {
|
|
376
|
-
var args = [];
|
|
377
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
378
|
-
args[_i] = arguments[_i];
|
|
379
|
-
}
|
|
380
|
-
this.logHandler.apply(this, __spreadArray([this, exports.LogLevel.Info], args, false));
|
|
381
|
-
};
|
|
382
|
-
Logger.prototype.warn = function () {
|
|
383
|
-
var args = [];
|
|
384
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
385
|
-
args[_i] = arguments[_i];
|
|
386
|
-
}
|
|
387
|
-
this.logHandler.apply(this, __spreadArray([this, exports.LogLevel.Warn], args, false));
|
|
388
|
-
};
|
|
389
|
-
Logger.prototype.error = function () {
|
|
390
|
-
var args = [];
|
|
391
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
392
|
-
args[_i] = arguments[_i];
|
|
393
|
-
}
|
|
394
|
-
this.logHandler.apply(this, __spreadArray([this, exports.LogLevel.Error], args, false));
|
|
395
|
-
};
|
|
396
|
-
return Logger;
|
|
397
|
-
}());
|
|
398
|
-
|
|
399
|
-
exports.DEFAULT_SDK_NAME = DEFAULT_SDK_NAME;
|
|
400
|
-
exports.DEVICE_ID_KEY = DEVICE_ID_KEY;
|
|
401
|
-
exports.Logger = Logger;
|
|
402
|
-
exports.Sdk = Sdk;
|
|
403
|
-
exports.VERSION = VERSION;
|
|
404
|
-
exports.addKit = addKit;
|
|
405
|
-
exports.configure = configure;
|
|
406
|
-
exports.deleteKit = deleteKit;
|
|
407
|
-
exports.destroy = destroy;
|
|
408
|
-
exports.getDeviceId = getDeviceId;
|
|
409
|
-
exports.getKit = getKit;
|
|
410
|
-
exports.getSdk = getSdk;
|
|
411
|
-
exports.getSdks = getSdks;
|
|
412
|
-
//# sourceMappingURL=index.cjs.js.map
|
package/dist/index.cjs.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs.js","sources":["../src/constants.ts","../src/sdk.ts","../src/api.ts","../src/utils/logger.ts"],"sourcesContent":["/**\n * @license\n * @monterosa/sdk-core\n *\n * Copyright © 2023-2024 Monterosa Productions Limited. All rights reserved.\n *\n * More details on the license can be found at https://www.monterosa.co/sdk/license\n */\n\nimport { version } from '../package.json';\n\n/**\n * Default sdk name.\n *\n * @internal\n */\nexport const DEFAULT_SDK_NAME = '[DEFAULT]';\n\n/**\n * The current SDK version.\n *\n * @public\n */\nexport const VERSION = version;\n\n/**\n * Device ID storage key name\n *\n * @internal\n */\nexport const DEVICE_ID_KEY = 'device_id';\n","/**\n * @license\n * @monterosa/sdk-core\n *\n * Copyright © 2021-2024 Monterosa Productions Limited. All rights reserved.\n *\n * More details on the license can be found at https://www.monterosa.co/sdk/license\n */\n\nimport { MonterosaSdk, MonterosaKit, Kits, SdkOptions } from './types';\n\n/**\n * @internal\n */\nexport class Sdk implements MonterosaSdk {\n private readonly _options: Required<SdkOptions>;\n private readonly _name: string;\n private _isDestroyed: boolean = false;\n private _kits: Kits;\n\n constructor(options: SdkOptions, name: string) {\n this._options = { ...options };\n this._name = name;\n this._kits = new Map();\n }\n\n get name(): string {\n this.checkDestroyed();\n return this._name;\n }\n\n get options(): SdkOptions {\n this.checkDestroyed();\n return this._options;\n }\n\n get isDestroyed(): boolean {\n return this._isDestroyed;\n }\n\n get kits(): Kits {\n return this._kits;\n }\n\n set isDestroyed(value: boolean) {\n this._isDestroyed = value;\n }\n\n public deleteKits() {\n this.kits.forEach((kit, name) => {\n this.kits.delete(name);\n kit.delete();\n });\n }\n\n private checkDestroyed(): void {\n if (this.isDestroyed) {\n throw new Error(`SDK named ${this.name} destroyed`);\n }\n }\n}\n\n/**\n * @internal\n */\nexport function addKit(sdk: MonterosaSdk, name: string, kit: MonterosaKit) {\n sdk.kits.set(name, kit);\n}\n\n/**\n * @internal\n */\nexport function getKit(\n sdk: MonterosaSdk,\n name: string,\n): MonterosaKit | undefined {\n return sdk.kits.get(name);\n}\n\n/**\n * @internal\n */\nexport function deleteKit(sdk: MonterosaSdk, name: string): void {\n sdk.kits.delete(name);\n}\n","/**\n * @license\n * @monterosa/sdk-core\n *\n * Copyright © 2022-2024 Monterosa Productions Limited. All rights reserved.\n *\n * More details on the license can be found at https://www.monterosa.co/sdk/license\n */\n\nimport { v4 as uuidv4 } from 'uuid';\nimport {\n getItem as getStorageItem,\n setItem as setStorageItem,\n checkAvailability as checkStorageAvailability,\n} from '@monterosa/sdk-util';\n\nimport { MonterosaSdk, SdkOptions } from './types';\nimport { DEFAULT_SDK_NAME, DEVICE_ID_KEY } from './constants';\nimport { Sdk } from './sdk';\n\nconst sdks = new Map<string, MonterosaSdk>();\n\nlet DEVICE_ID: string;\n\n/**\n * An array of all configured sdks.\n *\n * @public\n */\nexport function getSdks(): MonterosaSdk[] {\n return Array.from(sdks.values());\n}\n\n/**\n * Retrieves an SDK instance by its name.\n *\n * @example\n * ```javascript\n * const sdk = getSdk('my-sdk');\n * ```\n *\n * @param name - Optional name of the sdk to initialise.\n * If name is not provided, the default is \"[DEFAULT]\"\n *\n * @public\n */\nexport function getSdk(name: string = DEFAULT_SDK_NAME): MonterosaSdk {\n const sdk = sdks.get(name);\n\n if (!sdk) {\n throw new Error(\n `No Monterosa Sdk \"${name}\" has been configured.\n You need to call configure() first`,\n );\n }\n\n return sdk;\n}\n\n/**\n * @internal\n */\nexport function getDeviceId() {\n if (DEVICE_ID !== undefined) {\n return DEVICE_ID;\n }\n\n if (!checkStorageAvailability()) {\n DEVICE_ID = uuidv4();\n\n return DEVICE_ID;\n }\n\n const value = getStorageItem(DEVICE_ID_KEY);\n\n if (value === null) {\n DEVICE_ID = uuidv4();\n\n setStorageItem(DEVICE_ID_KEY, DEVICE_ID);\n } else {\n DEVICE_ID = value;\n }\n\n return DEVICE_ID;\n}\n\n/**\n * Creates an SDK instance.\n *\n * @example\n *\n * Configure default sdk with host and project id\n *\n * ```javascript\n * configure({\n * host: \"...\",\n * projectId: \"...\"\n * });\n * ```\n *\n * @param options - Studio host\n * @param name - Optional name of the sdk to initialise.\n * If name is not provided, the default is \"[DEFAULT]\"\n *\n * @returns Configured SDK instance.\n *\n * @public\n */\nexport function configure(\n options: SdkOptions,\n name: string = DEFAULT_SDK_NAME,\n): MonterosaSdk {\n const existingSdk = sdks.get(name);\n\n if (existingSdk) {\n return existingSdk;\n }\n\n const sdk = new Sdk(options, name);\n\n sdks.set(name, sdk);\n\n return sdk;\n}\n\n/**\n * Destroy initialised sdk\n *\n * @example\n * ```javascript\n * const sdk = configure(...);\n *\n * destroy(sdk);\n * ```\n *\n * @param sdk - sdk instance\n */\nexport function destroy(sdk: MonterosaSdk) {\n const { name } = sdk;\n\n sdks.delete(name);\n sdk.deleteKits();\n sdk.isDestroyed = true;\n}\n","/**\n * @license\n * @monterosa/sdk-core\n *\n * Copyright © 2022 Monterosa Productions Limited. All rights reserved.\n *\n * More details on the license can be found at https://www.monterosa.co/sdk/license\n */\n\n/* eslint-disable no-console */\n\n/**\n * Represents the possible log levels.\n */\nexport enum LogLevel {\n /**\n * Verbose level. Provides detailed and extensive logging.\n */\n Verbose,\n /**\n * Debug level. Used for debugging and development purposes.\n */\n Debug,\n /**\n * Info level. Used to provide general information about the system's state.\n */\n Info,\n /**\n * Warn level. Indicates potential issues or situations that might cause problems in the future.\n */\n Warn,\n /**\n * Error level. Indicates critical errors and issues that require immediate attention.\n */\n Error,\n /**\n * Silent level. No logs will be output.\n */\n Silent,\n}\n\n/** @internal */\nexport type LogHandler = (\n logger: Logger,\n logType: LogLevel,\n ...args: unknown[]\n) => void;\n\nconst Methods = {\n [LogLevel.Verbose]: 'log',\n // `console.debug` is not shown in Chrome and Edge by default. It must be\n // enabled manually. To avoid hassle for developers with settings debug\n // messages are sent to `console.log`\n [LogLevel.Debug]: 'log',\n [LogLevel.Info]: 'info',\n [LogLevel.Warn]: 'warn',\n [LogLevel.Error]: 'error',\n} as const;\n\nconst logHandler: LogHandler = (logger, logLevel, ...args) => {\n if (logger.logLevel > logLevel) {\n return;\n }\n\n const method = Methods[logLevel as keyof typeof Methods];\n\n console[method](\n new Date().toISOString().replace(/[TZ]/gi, ' ').trim(),\n `${LogLevel[logLevel]}/${logger.name}:`,\n ...args,\n );\n};\n\n/** @internal */\nexport class Logger {\n private _logLevel: LogLevel = LogLevel.Warn;\n private _logHandler: LogHandler = logHandler;\n\n constructor(public name: string) {}\n\n get logLevel(): LogLevel {\n return this._logLevel;\n }\n\n set logLevel(level: LogLevel) {\n this._logLevel = level;\n }\n\n get logHandler(): LogHandler {\n return this._logHandler;\n }\n\n set logHandler(handler: LogHandler) {\n this.logHandler = handler;\n }\n\n log(...args: unknown[]) {\n this.logHandler(this, LogLevel.Verbose, ...args);\n }\n\n debug(...args: unknown[]) {\n this.logHandler(this, LogLevel.Debug, ...args);\n }\n\n info(...args: unknown[]) {\n this.logHandler(this, LogLevel.Info, ...args);\n }\n\n warn(...args: unknown[]) {\n this.logHandler(this, LogLevel.Warn, ...args);\n }\n\n error(...args: unknown[]) {\n this.logHandler(this, LogLevel.Error, ...args);\n }\n}\n"],"names":["checkStorageAvailability","uuidv4","getStorageItem","setStorageItem","LogLevel"],"mappings":"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"}
|
package/dist/index.esm.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../src/constants.ts","../src/sdk.ts","../src/api.ts","../src/utils/logger.ts"],"sourcesContent":["/**\n * @license\n * @monterosa/sdk-core\n *\n * Copyright © 2023-2024 Monterosa Productions Limited. All rights reserved.\n *\n * More details on the license can be found at https://www.monterosa.co/sdk/license\n */\n\nimport { version } from '../package.json';\n\n/**\n * Default sdk name.\n *\n * @internal\n */\nexport const DEFAULT_SDK_NAME = '[DEFAULT]';\n\n/**\n * The current SDK version.\n *\n * @public\n */\nexport const VERSION = version;\n\n/**\n * Device ID storage key name\n *\n * @internal\n */\nexport const DEVICE_ID_KEY = 'device_id';\n","/**\n * @license\n * @monterosa/sdk-core\n *\n * Copyright © 2021-2024 Monterosa Productions Limited. All rights reserved.\n *\n * More details on the license can be found at https://www.monterosa.co/sdk/license\n */\n\nimport { MonterosaSdk, MonterosaKit, Kits, SdkOptions } from './types';\n\n/**\n * @internal\n */\nexport class Sdk implements MonterosaSdk {\n private readonly _options: Required<SdkOptions>;\n private readonly _name: string;\n private _isDestroyed: boolean = false;\n private _kits: Kits;\n\n constructor(options: SdkOptions, name: string) {\n this._options = { ...options };\n this._name = name;\n this._kits = new Map();\n }\n\n get name(): string {\n this.checkDestroyed();\n return this._name;\n }\n\n get options(): SdkOptions {\n this.checkDestroyed();\n return this._options;\n }\n\n get isDestroyed(): boolean {\n return this._isDestroyed;\n }\n\n get kits(): Kits {\n return this._kits;\n }\n\n set isDestroyed(value: boolean) {\n this._isDestroyed = value;\n }\n\n public deleteKits() {\n this.kits.forEach((kit, name) => {\n this.kits.delete(name);\n kit.delete();\n });\n }\n\n private checkDestroyed(): void {\n if (this.isDestroyed) {\n throw new Error(`SDK named ${this.name} destroyed`);\n }\n }\n}\n\n/**\n * @internal\n */\nexport function addKit(sdk: MonterosaSdk, name: string, kit: MonterosaKit) {\n sdk.kits.set(name, kit);\n}\n\n/**\n * @internal\n */\nexport function getKit(\n sdk: MonterosaSdk,\n name: string,\n): MonterosaKit | undefined {\n return sdk.kits.get(name);\n}\n\n/**\n * @internal\n */\nexport function deleteKit(sdk: MonterosaSdk, name: string): void {\n sdk.kits.delete(name);\n}\n","/**\n * @license\n * @monterosa/sdk-core\n *\n * Copyright © 2022-2024 Monterosa Productions Limited. All rights reserved.\n *\n * More details on the license can be found at https://www.monterosa.co/sdk/license\n */\n\nimport { v4 as uuidv4 } from 'uuid';\nimport {\n getItem as getStorageItem,\n setItem as setStorageItem,\n checkAvailability as checkStorageAvailability,\n} from '@monterosa/sdk-util';\n\nimport { MonterosaSdk, SdkOptions } from './types';\nimport { DEFAULT_SDK_NAME, DEVICE_ID_KEY } from './constants';\nimport { Sdk } from './sdk';\n\nconst sdks = new Map<string, MonterosaSdk>();\n\nlet DEVICE_ID: string;\n\n/**\n * An array of all configured sdks.\n *\n * @public\n */\nexport function getSdks(): MonterosaSdk[] {\n return Array.from(sdks.values());\n}\n\n/**\n * Retrieves an SDK instance by its name.\n *\n * @example\n * ```javascript\n * const sdk = getSdk('my-sdk');\n * ```\n *\n * @param name - Optional name of the sdk to initialise.\n * If name is not provided, the default is \"[DEFAULT]\"\n *\n * @public\n */\nexport function getSdk(name: string = DEFAULT_SDK_NAME): MonterosaSdk {\n const sdk = sdks.get(name);\n\n if (!sdk) {\n throw new Error(\n `No Monterosa Sdk \"${name}\" has been configured.\n You need to call configure() first`,\n );\n }\n\n return sdk;\n}\n\n/**\n * @internal\n */\nexport function getDeviceId() {\n if (DEVICE_ID !== undefined) {\n return DEVICE_ID;\n }\n\n if (!checkStorageAvailability()) {\n DEVICE_ID = uuidv4();\n\n return DEVICE_ID;\n }\n\n const value = getStorageItem(DEVICE_ID_KEY);\n\n if (value === null) {\n DEVICE_ID = uuidv4();\n\n setStorageItem(DEVICE_ID_KEY, DEVICE_ID);\n } else {\n DEVICE_ID = value;\n }\n\n return DEVICE_ID;\n}\n\n/**\n * Creates an SDK instance.\n *\n * @example\n *\n * Configure default sdk with host and project id\n *\n * ```javascript\n * configure({\n * host: \"...\",\n * projectId: \"...\"\n * });\n * ```\n *\n * @param options - Studio host\n * @param name - Optional name of the sdk to initialise.\n * If name is not provided, the default is \"[DEFAULT]\"\n *\n * @returns Configured SDK instance.\n *\n * @public\n */\nexport function configure(\n options: SdkOptions,\n name: string = DEFAULT_SDK_NAME,\n): MonterosaSdk {\n const existingSdk = sdks.get(name);\n\n if (existingSdk) {\n return existingSdk;\n }\n\n const sdk = new Sdk(options, name);\n\n sdks.set(name, sdk);\n\n return sdk;\n}\n\n/**\n * Destroy initialised sdk\n *\n * @example\n * ```javascript\n * const sdk = configure(...);\n *\n * destroy(sdk);\n * ```\n *\n * @param sdk - sdk instance\n */\nexport function destroy(sdk: MonterosaSdk) {\n const { name } = sdk;\n\n sdks.delete(name);\n sdk.deleteKits();\n sdk.isDestroyed = true;\n}\n","/**\n * @license\n * @monterosa/sdk-core\n *\n * Copyright © 2022 Monterosa Productions Limited. All rights reserved.\n *\n * More details on the license can be found at https://www.monterosa.co/sdk/license\n */\n\n/* eslint-disable no-console */\n\n/**\n * Represents the possible log levels.\n */\nexport enum LogLevel {\n /**\n * Verbose level. Provides detailed and extensive logging.\n */\n Verbose,\n /**\n * Debug level. Used for debugging and development purposes.\n */\n Debug,\n /**\n * Info level. Used to provide general information about the system's state.\n */\n Info,\n /**\n * Warn level. Indicates potential issues or situations that might cause problems in the future.\n */\n Warn,\n /**\n * Error level. Indicates critical errors and issues that require immediate attention.\n */\n Error,\n /**\n * Silent level. No logs will be output.\n */\n Silent,\n}\n\n/** @internal */\nexport type LogHandler = (\n logger: Logger,\n logType: LogLevel,\n ...args: unknown[]\n) => void;\n\nconst Methods = {\n [LogLevel.Verbose]: 'log',\n // `console.debug` is not shown in Chrome and Edge by default. It must be\n // enabled manually. To avoid hassle for developers with settings debug\n // messages are sent to `console.log`\n [LogLevel.Debug]: 'log',\n [LogLevel.Info]: 'info',\n [LogLevel.Warn]: 'warn',\n [LogLevel.Error]: 'error',\n} as const;\n\nconst logHandler: LogHandler = (logger, logLevel, ...args) => {\n if (logger.logLevel > logLevel) {\n return;\n }\n\n const method = Methods[logLevel as keyof typeof Methods];\n\n console[method](\n new Date().toISOString().replace(/[TZ]/gi, ' ').trim(),\n `${LogLevel[logLevel]}/${logger.name}:`,\n ...args,\n );\n};\n\n/** @internal */\nexport class Logger {\n private _logLevel: LogLevel = LogLevel.Warn;\n private _logHandler: LogHandler = logHandler;\n\n constructor(public name: string) {}\n\n get logLevel(): LogLevel {\n return this._logLevel;\n }\n\n set logLevel(level: LogLevel) {\n this._logLevel = level;\n }\n\n get logHandler(): LogHandler {\n return this._logHandler;\n }\n\n set logHandler(handler: LogHandler) {\n this.logHandler = handler;\n }\n\n log(...args: unknown[]) {\n this.logHandler(this, LogLevel.Verbose, ...args);\n }\n\n debug(...args: unknown[]) {\n this.logHandler(this, LogLevel.Debug, ...args);\n }\n\n info(...args: unknown[]) {\n this.logHandler(this, LogLevel.Info, ...args);\n }\n\n warn(...args: unknown[]) {\n this.logHandler(this, LogLevel.Warn, ...args);\n }\n\n error(...args: unknown[]) {\n this.logHandler(this, LogLevel.Error, ...args);\n }\n}\n"],"names":["checkStorageAvailability","uuidv4","getStorageItem","setStorageItem"],"mappings":"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"}
|