@monterosa/sdk-core 0.18.0 → 0.19.0-rc.2

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