@monterosa/sdk-core 0.19.0-rc.6 → 2.0.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.
@@ -1,7 +1,6 @@
1
- import { v4 } from 'uuid';
2
- import { checkAvailability, getItem, setItem } from '@monterosa/sdk-util';
1
+ import { checkAvailability, generateUUID, getItem, setItem } from '@monterosa/sdk-util';
3
2
 
4
- var version = "0.19.0-rc.6";
3
+ var version = "2.0.0-rc.2";
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
- * An array of all configured sdks.
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 = v4();
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 = v4();
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 sdk with host and project id
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 - Studio host
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 sdk
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.esm.js.map
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
- * An array of all configured sdks.
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 sdk with host and project id
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 - Studio host
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 sdk
63
+ * Destroy initialised SDK
59
64
  *
60
65
  * @example
61
66
  * ```javascript
@@ -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';
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @license
3
+ * @monterosa/sdk-core
4
+ *
5
+ * Copyright © 2026 Monterosa Productions Limited. All rights reserved.
6
+ *
7
+ * More details on the license can be found at https://www.monterosa.co/sdk/license
8
+ */
9
+ export {};
@@ -19,12 +19,14 @@ export interface SdkOptions {
19
19
  */
20
20
  readonly host: string;
21
21
  /**
22
- * Unique identifier for the Studio project
22
+ * Unique identifier for the Studio Project
23
23
  */
24
24
  readonly projectId: string;
25
25
  }
26
26
  /**
27
- * Monterosa SDK holds the information about the initialised SDK
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,17 @@
1
1
  {
2
2
  "name": "@monterosa/sdk-core",
3
- "version": "0.19.0-rc.6",
3
+ "version": "2.0.0-rc.2",
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.js",
7
- "browser": "dist/index.esm.js",
8
- "module": "dist/index.esm.js",
6
+ "main": "./dist/index.js",
9
7
  "types": "./dist/src/index.d.ts",
10
- "cdn": "../../dist",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/src/index.d.ts",
11
+ "import": "./dist/index.js",
12
+ "default": "./dist/index.js"
13
+ }
14
+ },
11
15
  "files": [
12
16
  "dist"
13
17
  ],
@@ -19,14 +23,15 @@
19
23
  "test:ci": "jest --color --ci --reporters=jest-junit --coverage",
20
24
  "api-report": "api-extractor run --local --verbose"
21
25
  },
22
- "keywords": [],
26
+ "keywords": [
27
+ "monterosa",
28
+ "sdk",
29
+ "interaction-cloud",
30
+ "core"
31
+ ],
23
32
  "license": "MIT",
24
- "peerDependencies": {
25
- "@monterosa/sdk-util": "0.x"
26
- },
27
33
  "dependencies": {
28
- "@monterosa/sdk-util": "^0.19.0-rc.6",
29
- "uuid": "^8.3.2"
34
+ "@monterosa/sdk-util": "2.0.0-rc.2"
30
35
  },
31
36
  "devDependencies": {
32
37
  "@rollup/plugin-json": "^4.1.0",
@@ -47,5 +52,5 @@
47
52
  "publishConfig": {
48
53
  "access": "public"
49
54
  },
50
- "gitHead": "8d0f5703fdcc56ea1422cf24d42f077a6b8651a2"
55
+ "gitHead": "0e2d4cd71055bf0ab38ec5a73d6040c55151da1c"
51
56
  }
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 = "0.19.0-rc.6";
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
@@ -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: 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 +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: 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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"}