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