@iobroker/db-base 7.2.2 → 7.2.3-alpha.1-20260621-61726ea22
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/build/cjs/lib/inMemFileDB.d.ts +81 -1
- package/build/cjs/lib/inMemFileDB.js +60 -1
- package/build/cjs/lib/inMemFileDB.js.map +2 -2
- package/build/esm/lib/inMemFileDB.d.ts +81 -1
- package/build/esm/lib/inMemFileDB.d.ts.map +1 -1
- package/build/esm/lib/inMemFileDB.js +61 -2
- package/build/esm/lib/inMemFileDB.js.map +1 -1
- package/build/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +3 -3
|
@@ -1,28 +1,37 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* States DB in memory - Server
|
|
3
3
|
*
|
|
4
|
-
* Copyright 2013-
|
|
4
|
+
* Copyright 2013-2026 bluefox <dogafox@gmail.com>
|
|
5
5
|
*
|
|
6
6
|
* MIT License
|
|
7
7
|
*
|
|
8
8
|
*/
|
|
9
9
|
import type { InternalLogger } from '@iobroker/js-controller-common-db/tools';
|
|
10
|
+
/** Options describing how to connect to the database server */
|
|
10
11
|
export interface ConnectionOptions {
|
|
12
|
+
/** Password for authentication, if required */
|
|
11
13
|
pass?: string;
|
|
14
|
+
/** Name of the sentinel master to connect to */
|
|
12
15
|
sentinelName?: string;
|
|
13
16
|
/** array on sentinel */
|
|
14
17
|
host: string | string[];
|
|
15
18
|
/** array on sentinel */
|
|
16
19
|
port: number | number[];
|
|
20
|
+
/** Additional connection options passed to the database driver */
|
|
17
21
|
options: Record<string, any>;
|
|
22
|
+
/** Enable more verbose connection logging */
|
|
18
23
|
enhancedLogging?: boolean;
|
|
24
|
+
/** Backup configuration */
|
|
19
25
|
backup?: BackupOptions;
|
|
20
26
|
/** relative path to the data dir */
|
|
21
27
|
dataDir?: string;
|
|
22
28
|
}
|
|
23
29
|
type ChangeFunction = (id: string, state: any) => void;
|
|
30
|
+
/** Status information about the database */
|
|
24
31
|
export interface DbStatus {
|
|
32
|
+
/** Type of the database backend (e.g. file, jsonl, redis) */
|
|
25
33
|
type: string;
|
|
34
|
+
/** Whether this process runs the database server */
|
|
26
35
|
server: boolean;
|
|
27
36
|
}
|
|
28
37
|
interface BackupOptions {
|
|
@@ -35,8 +44,11 @@ interface BackupOptions {
|
|
|
35
44
|
period: number;
|
|
36
45
|
path: string;
|
|
37
46
|
}
|
|
47
|
+
/** Options describing where the database stores its files */
|
|
38
48
|
export interface DbOptions {
|
|
49
|
+
/** Name of the directory used for backups */
|
|
39
50
|
backupDirName: string;
|
|
51
|
+
/** Name of the database file */
|
|
40
52
|
fileName: string;
|
|
41
53
|
}
|
|
42
54
|
interface FileDbSettings {
|
|
@@ -81,7 +93,13 @@ export declare class InMemoryFileDB {
|
|
|
81
93
|
private readonly datasetName;
|
|
82
94
|
private log;
|
|
83
95
|
private readonly backupDir;
|
|
96
|
+
/**
|
|
97
|
+
* @param settings Settings for the database, the connection and backups
|
|
98
|
+
*/
|
|
84
99
|
constructor(settings: FileDbSettings);
|
|
100
|
+
/**
|
|
101
|
+
* Open the database by loading the dataset from disk
|
|
102
|
+
*/
|
|
85
103
|
open(): Promise<void>;
|
|
86
104
|
/**
|
|
87
105
|
* Loads a dataset file
|
|
@@ -97,12 +115,58 @@ export declare class InMemoryFileDB {
|
|
|
97
115
|
* @returns obj dataset read as object
|
|
98
116
|
*/
|
|
99
117
|
loadDataset(datasetName: string): Promise<Record<string, any>>;
|
|
118
|
+
/**
|
|
119
|
+
* Normalize the backup settings and create the backup directory
|
|
120
|
+
*/
|
|
100
121
|
initBackupDir(): void;
|
|
122
|
+
/**
|
|
123
|
+
* Subscribe a client to changes matching the given pattern
|
|
124
|
+
*
|
|
125
|
+
* @param client The client to register the subscription for
|
|
126
|
+
* @param type The subscription type (e.g. objects or states)
|
|
127
|
+
* @param pattern One or more patterns to subscribe to
|
|
128
|
+
* @param cb Called once the subscription has been registered
|
|
129
|
+
*/
|
|
101
130
|
handleSubscribe(client: SubscriptionClient, type: string, pattern: string | string[], cb?: () => void): void;
|
|
131
|
+
/**
|
|
132
|
+
* Subscribe a client to changes matching the given pattern
|
|
133
|
+
*
|
|
134
|
+
* @param client The client to register the subscription for
|
|
135
|
+
* @param type The subscription type (e.g. objects or states)
|
|
136
|
+
* @param pattern One or more patterns to subscribe to
|
|
137
|
+
* @param options Subscription options
|
|
138
|
+
* @param cb Called once the subscription has been registered
|
|
139
|
+
*/
|
|
102
140
|
handleSubscribe(client: SubscriptionClient, type: string, pattern: string | string[], options: any, cb?: () => void): void;
|
|
141
|
+
/**
|
|
142
|
+
* Remove a client's subscription for the given pattern
|
|
143
|
+
*
|
|
144
|
+
* @param client The client whose subscription should be removed
|
|
145
|
+
* @param type The subscription type (e.g. objects or states)
|
|
146
|
+
* @param pattern One or more patterns to unsubscribe from
|
|
147
|
+
* @param cb Called once the subscription has been removed
|
|
148
|
+
*/
|
|
103
149
|
handleUnsubscribe(client: SubscriptionClient, type: string, pattern: string | string[], cb?: () => void): void | Promise<void>;
|
|
150
|
+
/**
|
|
151
|
+
* Publish a change to a single client. Must be implemented by a subclass that handles client communication.
|
|
152
|
+
*
|
|
153
|
+
* @param _client The client to publish to
|
|
154
|
+
* @param _type The change type (e.g. objects or states)
|
|
155
|
+
* @param _id The ID of the changed object or state
|
|
156
|
+
* @param _obj The new value of the object or state
|
|
157
|
+
*/
|
|
104
158
|
publishToClients(_client: SubscriptionClient, _type: string, _id: string, _obj: any): number;
|
|
159
|
+
/**
|
|
160
|
+
* Delete outdated backup files according to the configured retention settings
|
|
161
|
+
*
|
|
162
|
+
* @param baseFilename Base file name of the backups that should be pruned
|
|
163
|
+
*/
|
|
105
164
|
deleteOldBackupFiles(baseFilename: string): void;
|
|
165
|
+
/**
|
|
166
|
+
* Format a timestamp into a "YYYY-MM-DD_HH-MM-SS" string used for backup file names
|
|
167
|
+
*
|
|
168
|
+
* @param date Timestamp in milliseconds
|
|
169
|
+
*/
|
|
106
170
|
getTimeStr(date: number): string;
|
|
107
171
|
/**
|
|
108
172
|
* Handle saving the dataset incl. backups
|
|
@@ -120,9 +184,25 @@ export declare class InMemoryFileDB {
|
|
|
120
184
|
* @param jsonString JSON string of the complete dataset to also be stored into a compressed backup file
|
|
121
185
|
*/
|
|
122
186
|
saveBackup(jsonString: string): void;
|
|
187
|
+
/**
|
|
188
|
+
* Get the current status of the database
|
|
189
|
+
*/
|
|
123
190
|
getStatus(): DbStatus;
|
|
191
|
+
/**
|
|
192
|
+
* Get the currently connected clients. Subclasses override this to return the real clients.
|
|
193
|
+
*/
|
|
124
194
|
getClients(): Record<string, any>;
|
|
195
|
+
/**
|
|
196
|
+
* Publish a change to all connected clients and local subscribers
|
|
197
|
+
*
|
|
198
|
+
* @param type The change type (e.g. objects or states)
|
|
199
|
+
* @param id The ID of the changed object or state
|
|
200
|
+
* @param obj The new value of the object or state
|
|
201
|
+
*/
|
|
125
202
|
publishAll(type: string, id: string, obj: any): number;
|
|
203
|
+
/**
|
|
204
|
+
* Destructor of the class. Called when shutting down to persist state and clear timers.
|
|
205
|
+
*/
|
|
126
206
|
destroy(): Promise<void>;
|
|
127
207
|
}
|
|
128
208
|
export {};
|
|
@@ -47,6 +47,9 @@ class InMemoryFileDB {
|
|
|
47
47
|
datasetName;
|
|
48
48
|
log;
|
|
49
49
|
backupDir;
|
|
50
|
+
/**
|
|
51
|
+
* @param settings Settings for the database, the connection and backups
|
|
52
|
+
*/
|
|
50
53
|
constructor(settings) {
|
|
51
54
|
this.settings = settings || {};
|
|
52
55
|
this.change = this.settings.change;
|
|
@@ -89,6 +92,9 @@ class InMemoryFileDB {
|
|
|
89
92
|
}
|
|
90
93
|
this.log.debug(`${this.namespace} Data File: ${this.datasetName}`);
|
|
91
94
|
}
|
|
95
|
+
/**
|
|
96
|
+
* Open the database by loading the dataset from disk
|
|
97
|
+
*/
|
|
92
98
|
async open() {
|
|
93
99
|
this.dataset = await this.loadDataset(this.datasetName);
|
|
94
100
|
}
|
|
@@ -151,6 +157,9 @@ class InMemoryFileDB {
|
|
|
151
157
|
}
|
|
152
158
|
return ret;
|
|
153
159
|
}
|
|
160
|
+
/**
|
|
161
|
+
* Normalize the backup settings and create the backup directory
|
|
162
|
+
*/
|
|
154
163
|
initBackupDir() {
|
|
155
164
|
this.settings.backup.period = this.settings.backup.period === void 0 ? 120 : parseInt(String(this.settings.backup.period));
|
|
156
165
|
if (isNaN(this.settings.backup.period)) {
|
|
@@ -172,6 +181,15 @@ class InMemoryFileDB {
|
|
|
172
181
|
}
|
|
173
182
|
import_fs_extra.default.ensureDirSync(this.backupDir);
|
|
174
183
|
}
|
|
184
|
+
/**
|
|
185
|
+
* Subscribe a client to changes matching the given pattern
|
|
186
|
+
*
|
|
187
|
+
* @param client The client to register the subscription for
|
|
188
|
+
* @param type The subscription type (e.g. objects or states)
|
|
189
|
+
* @param pattern One or more patterns to subscribe to
|
|
190
|
+
* @param options Subscription options, or the callback if omitted
|
|
191
|
+
* @param cb Called once the subscription has been registered
|
|
192
|
+
*/
|
|
175
193
|
handleSubscribe(client, type, pattern, options, cb) {
|
|
176
194
|
if (typeof options === "function") {
|
|
177
195
|
cb = options;
|
|
@@ -194,6 +212,14 @@ class InMemoryFileDB {
|
|
|
194
212
|
}
|
|
195
213
|
typeof cb === "function" && cb();
|
|
196
214
|
}
|
|
215
|
+
/**
|
|
216
|
+
* Remove a client's subscription for the given pattern
|
|
217
|
+
*
|
|
218
|
+
* @param client The client whose subscription should be removed
|
|
219
|
+
* @param type The subscription type (e.g. objects or states)
|
|
220
|
+
* @param pattern One or more patterns to unsubscribe from
|
|
221
|
+
* @param cb Called once the subscription has been removed
|
|
222
|
+
*/
|
|
197
223
|
handleUnsubscribe(client, type, pattern, cb) {
|
|
198
224
|
const s = client?._subscribe?.[type];
|
|
199
225
|
if (s) {
|
|
@@ -213,9 +239,22 @@ class InMemoryFileDB {
|
|
|
213
239
|
}
|
|
214
240
|
return import_js_controller_common_db.tools.maybeCallback(cb);
|
|
215
241
|
}
|
|
242
|
+
/**
|
|
243
|
+
* Publish a change to a single client. Must be implemented by a subclass that handles client communication.
|
|
244
|
+
*
|
|
245
|
+
* @param _client The client to publish to
|
|
246
|
+
* @param _type The change type (e.g. objects or states)
|
|
247
|
+
* @param _id The ID of the changed object or state
|
|
248
|
+
* @param _obj The new value of the object or state
|
|
249
|
+
*/
|
|
216
250
|
publishToClients(_client, _type, _id, _obj) {
|
|
217
251
|
throw new Error("no communication handling implemented");
|
|
218
252
|
}
|
|
253
|
+
/**
|
|
254
|
+
* Delete outdated backup files according to the configured retention settings
|
|
255
|
+
*
|
|
256
|
+
* @param baseFilename Base file name of the backups that should be pruned
|
|
257
|
+
*/
|
|
219
258
|
deleteOldBackupFiles(baseFilename) {
|
|
220
259
|
let files = import_fs_extra.default.readdirSync(this.backupDir);
|
|
221
260
|
files.sort();
|
|
@@ -236,6 +275,11 @@ class InMemoryFileDB {
|
|
|
236
275
|
}
|
|
237
276
|
}
|
|
238
277
|
}
|
|
278
|
+
/**
|
|
279
|
+
* Format a timestamp into a "YYYY-MM-DD_HH-MM-SS" string used for backup file names
|
|
280
|
+
*
|
|
281
|
+
* @param date Timestamp in milliseconds
|
|
282
|
+
*/
|
|
239
283
|
getTimeStr(date) {
|
|
240
284
|
const dateObj = new Date(date);
|
|
241
285
|
let text = `${dateObj.getFullYear().toString()}-`;
|
|
@@ -352,12 +396,25 @@ class InMemoryFileDB {
|
|
|
352
396
|
}
|
|
353
397
|
}
|
|
354
398
|
}
|
|
399
|
+
/**
|
|
400
|
+
* Get the current status of the database
|
|
401
|
+
*/
|
|
355
402
|
getStatus() {
|
|
356
403
|
return { type: "file", server: true };
|
|
357
404
|
}
|
|
405
|
+
/**
|
|
406
|
+
* Get the currently connected clients. Subclasses override this to return the real clients.
|
|
407
|
+
*/
|
|
358
408
|
getClients() {
|
|
359
409
|
return {};
|
|
360
410
|
}
|
|
411
|
+
/**
|
|
412
|
+
* Publish a change to all connected clients and local subscribers
|
|
413
|
+
*
|
|
414
|
+
* @param type The change type (e.g. objects or states)
|
|
415
|
+
* @param id The ID of the changed object or state
|
|
416
|
+
* @param obj The new value of the object or state
|
|
417
|
+
*/
|
|
361
418
|
publishAll(type, id, obj) {
|
|
362
419
|
if (id === void 0) {
|
|
363
420
|
this.log.error(`${this.namespace} Can not publish empty ID`);
|
|
@@ -380,7 +437,9 @@ class InMemoryFileDB {
|
|
|
380
437
|
}
|
|
381
438
|
return publishCount;
|
|
382
439
|
}
|
|
383
|
-
|
|
440
|
+
/**
|
|
441
|
+
* Destructor of the class. Called when shutting down to persist state and clear timers.
|
|
442
|
+
*/
|
|
384
443
|
async destroy() {
|
|
385
444
|
if (this.stateTimer) {
|
|
386
445
|
clearTimeout(this.stateTimer);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/lib/inMemFileDB.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * States DB in memory - Server\n *\n * Copyright 2013-2024 bluefox <dogafox@gmail.com>\n *\n * MIT License\n *\n */\n\nimport fs from 'fs-extra';\nimport path from 'node:path';\nimport { tools } from '@iobroker/js-controller-common-db';\nimport type { InternalLogger } from '@iobroker/js-controller-common-db/tools';\nimport { createGzip } from 'node:zlib';\n\n// settings = {\n// change: function (id, state) {},\n// connected: function (nameOfServer) {},\n// logger: {\n// silly: function (msg) {},\n// debug: function (msg) {},\n// info: function (msg) {},\n// warn: function (msg) {},\n// error: function (msg) {}\n// },\n// connection: {\n// dataDir: 'relative path'\n// },\n// auth: null, //unused\n// secure: true/false,\n// certificates: as required by createServer\n// port: 9000,\n// host: localhost\n// };\n//\n\nexport interface ConnectionOptions {\n pass?: string;\n sentinelName?: string;\n /** array on sentinel */\n host: string | string[];\n /** array on sentinel */\n port: number | number[];\n options: Record<string, any>;\n enhancedLogging?: boolean;\n backup?: BackupOptions;\n /** relative path to the data dir */\n dataDir?: string;\n}\n\ntype ChangeFunction = (id: string, state: any) => void;\n\nexport interface DbStatus {\n type: string;\n server: boolean;\n}\n\ninterface BackupOptions {\n /** deactivates backup if true */\n disabled: boolean;\n /** minimum number of files */\n files: number;\n hours: number;\n /** minutes */\n period: number;\n path: string;\n}\n\nexport interface DbOptions {\n backupDirName: string;\n fileName: string;\n}\n\ninterface FileDbSettings {\n fileDB: DbOptions;\n jsonlDB: DbOptions;\n backup: BackupOptions;\n change?: ChangeFunction;\n connected: (nameOfServer: string) => void;\n logger: InternalLogger;\n connection: ConnectionOptions;\n /** unused */\n auth?: null;\n secure: boolean;\n /** as required by createServer TODO: if createServer is typed, add type */\n certificates: any;\n port: number;\n host: string;\n /** logging namespace */\n namespace?: string;\n}\n\ninterface Subscription {\n pattern: string;\n regex: RegExp;\n options: any;\n}\n\ninterface SubscriptionClient {\n _subscribe?: Record<string, Subscription[]>;\n}\n\n/**\n * The parent of the class structure, which provides basic JSON storage\n * and general subscription and publish functionality\n */\nexport class InMemoryFileDB {\n private settings: FileDbSettings;\n private readonly change: ChangeFunction | undefined;\n protected dataset: Record<string, any>;\n private readonly namespace: string;\n private lastSave: null | number;\n private stateTimer: NodeJS.Timeout | null;\n private callbackSubscriptionClient: SubscriptionClient;\n private readonly dataDir: string;\n private readonly datasetName: string;\n private log: InternalLogger;\n private readonly backupDir: string;\n\n constructor(settings: FileDbSettings) {\n this.settings = settings || {};\n\n this.change = this.settings.change;\n\n this.dataset = {};\n\n this.namespace = this.settings.namespace || '';\n this.lastSave = null;\n this.callbackSubscriptionClient = {};\n\n this.settings.backup = this.settings.connection.backup || {\n disabled: false, // deactivates\n files: 24, // minimum number of files\n hours: 48, // hours\n period: 120, // minutes\n path: '', // use default path\n };\n\n this.dataDir = this.settings.connection.dataDir || tools.getDefaultDataDir();\n if (!path.isAbsolute(this.dataDir)) {\n this.dataDir = path.normalize(path.join(tools.getControllerDir(), this.dataDir));\n }\n this.dataDir = this.dataDir.replace(/\\\\/g, '/');\n\n const fileName = this.settings.jsonlDB ? this.settings.jsonlDB.fileName : this.settings.fileDB.fileName;\n this.datasetName = path.join(this.dataDir, fileName);\n const parts = path.dirname(this.datasetName);\n fs.ensureDirSync(parts);\n\n this.stateTimer = null;\n\n this.backupDir = this.settings.backup.path || path.join(this.dataDir, this.settings.fileDB.backupDirName);\n\n this.log = tools.getLogger(this.settings.logger);\n\n if (!this.settings.backup.disabled) {\n try {\n this.initBackupDir();\n } catch (e) {\n this.log.error(\n `Database backups are disabled, because backup directory could not be initialized: ${e.message}`,\n );\n this.log.error(\n 'This leads to an increased risk of data loss, please check that the configured backup directory is available and restart the controller',\n );\n this.settings.backup.disabled = true;\n }\n }\n\n this.log.debug(`${this.namespace} Data File: ${this.datasetName}`);\n }\n\n async open(): Promise<void> {\n // load values from file\n this.dataset = await this.loadDataset(this.datasetName);\n }\n\n /**\n * Loads a dataset file\n *\n * @param datasetName Filename of the file to load\n * @returns obj read data, normally as object\n */\n async loadDatasetFile(datasetName: string): Promise<Record<string, any>> {\n if (!(await fs.pathExists(datasetName))) {\n throw new Error(`Database file ${datasetName} does not exists.`);\n }\n return fs.readJSON(datasetName);\n }\n\n /**\n * Loads the dataset including pot. Fallback handling\n *\n * @param datasetName Filename of the file to load\n * @returns obj dataset read as object\n */\n async loadDataset(datasetName: string): Promise<Record<string, any>> {\n let ret = {};\n try {\n ret = await this.loadDatasetFile(datasetName);\n\n // loading worked, make sure that \"bak\" File is not broken\n try {\n await fs.readJSON(`${datasetName}.bak`);\n } catch (e) {\n this.log.info(\n `${this.namespace} Rewrite bak file, because error on verify ${datasetName}.bak: ${e.message}`,\n );\n try {\n const jsonString = JSON.stringify(ret);\n await fs.writeFile(`${datasetName}.bak`, jsonString);\n } catch (e) {\n this.log.error(`${this.namespace} Cannot save ${datasetName}.bak: ${e.message}`);\n }\n }\n } catch (err) {\n this.log.error(`${this.namespace} Cannot load ${datasetName}: ${err.message}. We try last Backup!`);\n\n try {\n ret = await this.loadDatasetFile(`${datasetName}.bak`);\n\n // it worked, lets overwrite old file and store the broken one for pot. forensic check\n try {\n if (await fs.pathExists(datasetName)) {\n try {\n await fs.move(datasetName, `${datasetName}.broken`, { overwrite: true });\n } catch (e) {\n this.log.error(\n `${this.namespace} Cannot copy the broken file ${datasetName} to ${datasetName}.broken ${e.message}`,\n );\n }\n try {\n await fs.writeFile(datasetName, JSON.stringify(ret));\n } catch (e) {\n this.log.error(\n `${this.namespace} Cannot restore backup file as new main ${datasetName}: ${e.message}`,\n );\n }\n }\n } catch {\n // ignore, file does not exist\n }\n } catch (err) {\n this.log.error(\n `${this.namespace} Cannot load ${datasetName}.bak: ${err.message}. Continue with empty dataset!`,\n );\n this.log.error(\n `${this.namespace} If this is no Migration or initial start please restore the last backup from ${this.backupDir}`,\n );\n }\n }\n return ret;\n }\n\n initBackupDir(): void {\n // Interval in minutes => to milliseconds\n this.settings.backup.period =\n this.settings.backup.period === undefined ? 120 : parseInt(String(this.settings.backup.period));\n if (isNaN(this.settings.backup.period)) {\n this.settings.backup.period = 120;\n }\n // Node.js timeouts overflow after roughly 24 days, defaulting to 1 millisecond, which causes chaos.\n // If a user configured the backup this way, we use our default of 120 minutes instead.\n const maxTimeoutMinutes = Math.floor((2 ** 31 - 1) / 60000);\n if (this.settings.backup.period > maxTimeoutMinutes) {\n this.log.warn(\n `${this.namespace} Configured backup period ${this.settings.backup.period} is larger than the supported maximum of ${maxTimeoutMinutes} minutes. Defaulting to 120 minutes.`,\n );\n this.settings.backup.period = 120;\n }\n this.settings.backup.period *= 60_000;\n\n this.settings.backup.files =\n this.settings.backup.files === undefined ? 24 : parseInt(String(this.settings.backup.files));\n if (isNaN(this.settings.backup.files)) {\n this.settings.backup.files = 24;\n }\n\n this.settings.backup.hours =\n this.settings.backup.hours === undefined ? 48 : parseInt(String(this.settings.backup.hours));\n if (isNaN(this.settings.backup.hours)) {\n this.settings.backup.hours = 48;\n }\n // Create backup directory\n fs.ensureDirSync(this.backupDir);\n }\n\n handleSubscribe(client: SubscriptionClient, type: string, pattern: string | string[], cb?: () => void): void;\n handleSubscribe(\n client: SubscriptionClient,\n type: string,\n pattern: string | string[],\n options: any,\n cb?: () => void,\n ): void;\n\n handleSubscribe(\n client: SubscriptionClient,\n type: string,\n pattern: string | string[],\n options: any,\n cb?: () => void,\n ): void {\n if (typeof options === 'function') {\n cb = options;\n options = undefined;\n }\n client._subscribe = client._subscribe || {};\n client._subscribe[type] = client._subscribe[type] || [];\n\n const s = client._subscribe[type];\n\n if (pattern instanceof Array) {\n pattern.forEach(pattern => {\n if (s.find(sub => sub.pattern === pattern)) {\n return;\n }\n\n s.push({ pattern, regex: new RegExp(tools.pattern2RegEx(pattern)), options });\n });\n } else {\n if (!s.find(sub => sub.pattern === pattern)) {\n s.push({ pattern, regex: new RegExp(tools.pattern2RegEx(pattern)), options });\n }\n }\n\n typeof cb === 'function' && cb();\n }\n\n handleUnsubscribe(\n client: SubscriptionClient,\n type: string,\n pattern: string | string[],\n cb?: () => void,\n ): void | Promise<void> {\n const s = client?._subscribe?.[type];\n if (s) {\n const removeEntry = (p: string): void => {\n const index = s.findIndex(sub => sub.pattern === p);\n if (index > -1) {\n s.splice(index, 1);\n }\n };\n\n if (pattern instanceof Array) {\n pattern.forEach(p => {\n removeEntry(p);\n });\n } else {\n removeEntry(pattern);\n }\n }\n\n return tools.maybeCallback(cb);\n }\n\n publishToClients(_client: SubscriptionClient, _type: string, _id: string, _obj: any): number {\n throw new Error('no communication handling implemented');\n }\n\n deleteOldBackupFiles(baseFilename: string): void {\n // delete files only if settings.backupNumber is not 0\n let files = fs.readdirSync(this.backupDir);\n files.sort();\n const limit = Date.now() - this.settings.backup.hours * 3600000;\n\n files = files.filter(f => f.endsWith(`${baseFilename}.gz`));\n\n while (files.length > this.settings.backup.files) {\n const file = files.shift();\n if (!file) {\n continue;\n }\n // extract time\n const ms = new Date(`${file.substring(0, 10)} ${file.substring(11, 16).replace('-', ':')}:00`).getTime();\n if (limit > ms) {\n try {\n fs.unlinkSync(path.join(this.backupDir, file));\n } catch (e) {\n this.log.error(\n `${this.namespace} Cannot delete file \"${path.join(this.backupDir, file)}: ${e.message}`,\n );\n }\n }\n }\n }\n\n getTimeStr(date: number): string {\n const dateObj = new Date(date);\n\n let text = `${dateObj.getFullYear().toString()}-`;\n let v = dateObj.getMonth() + 1;\n if (v < 10) {\n text += '0';\n }\n text += `${v.toString()}-`;\n\n v = dateObj.getDate();\n if (v < 10) {\n text += '0';\n }\n text += `${v.toString()}_`;\n\n v = dateObj.getHours();\n if (v < 10) {\n text += '0';\n }\n text += `${v.toString()}-`;\n\n v = dateObj.getMinutes();\n if (v < 10) {\n text += '0';\n }\n text += v.toString();\n\n return text;\n }\n\n /**\n * Handle saving the dataset incl. backups\n */\n async saveState(): Promise<void> {\n try {\n const jsonString = await this.saveDataset();\n\n if (!this.settings.backup.disabled && jsonString) {\n this.saveBackup(jsonString);\n }\n } finally {\n if (this.stateTimer) {\n clearTimeout(this.stateTimer);\n this.stateTimer = null;\n }\n }\n }\n\n /**\n * Saves the dataset into File incl. handling of a fallback backup file\n *\n * @returns dataset JSON string of the complete dataset to also be stored into a compressed backup file\n */\n async saveDataset(): Promise<string> {\n const jsonString = JSON.stringify(this.dataset);\n\n try {\n await fs.writeFile(`${this.datasetName}.new`, jsonString);\n } catch (e) {\n this.log.error(`${this.namespace} Cannot save Dataset to ${this.datasetName}.new: ${e.message}`);\n return jsonString;\n }\n\n let bakOk = true;\n try {\n if (await fs.pathExists(this.datasetName)) {\n try {\n await fs.move(this.datasetName, `${this.datasetName}.bak`, { overwrite: true });\n } catch (e) {\n bakOk = false;\n this.log.error(`${this.namespace} Cannot backup file ${this.datasetName}.bak: ${e.message}`);\n }\n } else {\n bakOk = false;\n }\n } catch {\n bakOk = false;\n // ignore, file does not exist\n }\n\n try {\n await fs.move(`${this.datasetName}.new`, this.datasetName, { overwrite: true });\n } catch (e) {\n this.log.error(\n `${this.namespace} Cannot move ${this.datasetName}.new to ${this.datasetName}: ${e.message}. Try direct write as fallback`,\n );\n try {\n await fs.writeFile(this.datasetName, jsonString);\n } catch (e) {\n this.log.error(`${this.namespace} Cannot directly write Dataset to ${this.datasetName}: ${e.message}`);\n return jsonString;\n }\n }\n\n if (!bakOk) {\n // it seems the bak File is not successfully there, write current content again\n try {\n await fs.writeFile(`${this.datasetName}.bak`, jsonString);\n } catch (e) {\n this.log.error(`${this.namespace} Cannot save ${this.datasetName}.bak: ${e.message}`);\n }\n }\n\n return jsonString;\n }\n\n /**\n * Stores a compressed backup of the DB in definable intervals\n *\n * @param jsonString JSON string of the complete dataset to also be stored into a compressed backup file\n */\n saveBackup(jsonString: string): void {\n // save files for the last x hours\n const now = Date.now();\n\n // makes backups only if settings.backupInterval is not 0\n if (this.settings.backup.period && (!this.lastSave || now - this.lastSave > this.settings.backup.period)) {\n this.lastSave = now;\n const backFileName = path.join(\n this.backupDir,\n `${this.getTimeStr(now)}_${this.settings.fileDB.fileName}.gz`,\n );\n\n try {\n if (!fs.existsSync(backFileName)) {\n const output = fs.createWriteStream(backFileName);\n output.on('error', err => {\n this.log.error(`${this.namespace} Cannot save ${this.datasetName}: ${err.stack}`);\n });\n\n const compress = createGzip();\n /* The following line will pipe everything written into compress to the file stream */\n compress.pipe(output);\n /* Since we're piped through the file stream, the following line will do:\n 'Hello World!'->gzip compression->file which is the desired effect */\n compress.write(jsonString);\n compress.end();\n\n // analyse older files\n this.deleteOldBackupFiles(this.settings.fileDB.fileName);\n }\n } catch (e) {\n this.log.error(`${this.namespace} Cannot save backup ${backFileName}: ${e.message}`);\n }\n }\n }\n\n getStatus(): DbStatus {\n return { type: 'file', server: true };\n }\n\n getClients(): Record<string, any> {\n return {};\n }\n\n publishAll(type: string, id: string, obj: any): number {\n if (id === undefined) {\n this.log.error(`${this.namespace} Can not publish empty ID`);\n return 0;\n }\n\n const clients = this.getClients();\n let publishCount = 0;\n\n if (clients && typeof clients === 'object') {\n for (const i of Object.keys(clients)) {\n publishCount += this.publishToClients(clients[i], type, id, obj);\n }\n }\n\n // local subscriptions\n if (\n this.change &&\n this.callbackSubscriptionClient._subscribe &&\n this.callbackSubscriptionClient._subscribe[type]\n ) {\n for (const entry of this.callbackSubscriptionClient._subscribe[type]) {\n if (entry.regex.test(id)) {\n // @ts-expect-error we have checked 3 lines above\n setImmediate(() => this.change(id, obj));\n break;\n }\n }\n }\n\n return publishCount;\n }\n\n // Destructor of the class. Called by shutting down.\n async destroy(): Promise<void> {\n if (this.stateTimer) {\n clearTimeout(this.stateTimer);\n await this.saveState();\n }\n }\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;AASA,sBAAe;AACf,uBAAiB;AACjB,qCAAsB;AAEtB,uBAA2B;
|
|
4
|
+
"sourcesContent": ["/**\n * States DB in memory - Server\n *\n * Copyright 2013-2026 bluefox <dogafox@gmail.com>\n *\n * MIT License\n *\n */\n\nimport fs from 'fs-extra';\nimport path from 'node:path';\nimport { tools } from '@iobroker/js-controller-common-db';\nimport type { InternalLogger } from '@iobroker/js-controller-common-db/tools';\nimport { createGzip } from 'node:zlib';\n\n// settings = {\n// change: function (id, state) {},\n// connected: function (nameOfServer) {},\n// logger: {\n// silly: function (msg) {},\n// debug: function (msg) {},\n// info: function (msg) {},\n// warn: function (msg) {},\n// error: function (msg) {}\n// },\n// connection: {\n// dataDir: 'relative path'\n// },\n// auth: null, //unused\n// secure: true/false,\n// certificates: as required by createServer\n// port: 9000,\n// host: localhost\n// };\n//\n\n/** Options describing how to connect to the database server */\nexport interface ConnectionOptions {\n /** Password for authentication, if required */\n pass?: string;\n /** Name of the sentinel master to connect to */\n sentinelName?: string;\n /** array on sentinel */\n host: string | string[];\n /** array on sentinel */\n port: number | number[];\n /** Additional connection options passed to the database driver */\n options: Record<string, any>;\n /** Enable more verbose connection logging */\n enhancedLogging?: boolean;\n /** Backup configuration */\n backup?: BackupOptions;\n /** relative path to the data dir */\n dataDir?: string;\n}\n\ntype ChangeFunction = (id: string, state: any) => void;\n\n/** Status information about the database */\nexport interface DbStatus {\n /** Type of the database backend (e.g. file, jsonl, redis) */\n type: string;\n /** Whether this process runs the database server */\n server: boolean;\n}\n\ninterface BackupOptions {\n /** deactivates backup if true */\n disabled: boolean;\n /** minimum number of files */\n files: number;\n hours: number;\n /** minutes */\n period: number;\n path: string;\n}\n\n/** Options describing where the database stores its files */\nexport interface DbOptions {\n /** Name of the directory used for backups */\n backupDirName: string;\n /** Name of the database file */\n fileName: string;\n}\n\ninterface FileDbSettings {\n fileDB: DbOptions;\n jsonlDB: DbOptions;\n backup: BackupOptions;\n change?: ChangeFunction;\n connected: (nameOfServer: string) => void;\n logger: InternalLogger;\n connection: ConnectionOptions;\n /** unused */\n auth?: null;\n secure: boolean;\n /** as required by createServer TODO: if createServer is typed, add type */\n certificates: any;\n port: number;\n host: string;\n /** logging namespace */\n namespace?: string;\n}\n\ninterface Subscription {\n pattern: string;\n regex: RegExp;\n options: any;\n}\n\ninterface SubscriptionClient {\n _subscribe?: Record<string, Subscription[]>;\n}\n\n/**\n * The parent of the class structure, which provides basic JSON storage\n * and general subscription and publish functionality\n */\nexport class InMemoryFileDB {\n private settings: FileDbSettings;\n private readonly change: ChangeFunction | undefined;\n protected dataset: Record<string, any>;\n private readonly namespace: string;\n private lastSave: null | number;\n private stateTimer: NodeJS.Timeout | null;\n private callbackSubscriptionClient: SubscriptionClient;\n private readonly dataDir: string;\n private readonly datasetName: string;\n private log: InternalLogger;\n private readonly backupDir: string;\n\n /**\n * @param settings Settings for the database, the connection and backups\n */\n constructor(settings: FileDbSettings) {\n this.settings = settings || {};\n\n this.change = this.settings.change;\n\n this.dataset = {};\n\n this.namespace = this.settings.namespace || '';\n this.lastSave = null;\n this.callbackSubscriptionClient = {};\n\n this.settings.backup = this.settings.connection.backup || {\n disabled: false, // deactivates\n files: 24, // minimum number of files\n hours: 48, // hours\n period: 120, // minutes\n path: '', // use default path\n };\n\n this.dataDir = this.settings.connection.dataDir || tools.getDefaultDataDir();\n if (!path.isAbsolute(this.dataDir)) {\n this.dataDir = path.normalize(path.join(tools.getControllerDir(), this.dataDir));\n }\n this.dataDir = this.dataDir.replace(/\\\\/g, '/');\n\n const fileName = this.settings.jsonlDB ? this.settings.jsonlDB.fileName : this.settings.fileDB.fileName;\n this.datasetName = path.join(this.dataDir, fileName);\n const parts = path.dirname(this.datasetName);\n fs.ensureDirSync(parts);\n\n this.stateTimer = null;\n\n this.backupDir = this.settings.backup.path || path.join(this.dataDir, this.settings.fileDB.backupDirName);\n\n this.log = tools.getLogger(this.settings.logger);\n\n if (!this.settings.backup.disabled) {\n try {\n this.initBackupDir();\n } catch (e) {\n this.log.error(\n `Database backups are disabled, because backup directory could not be initialized: ${e.message}`,\n );\n this.log.error(\n 'This leads to an increased risk of data loss, please check that the configured backup directory is available and restart the controller',\n );\n this.settings.backup.disabled = true;\n }\n }\n\n this.log.debug(`${this.namespace} Data File: ${this.datasetName}`);\n }\n\n /**\n * Open the database by loading the dataset from disk\n */\n async open(): Promise<void> {\n // load values from file\n this.dataset = await this.loadDataset(this.datasetName);\n }\n\n /**\n * Loads a dataset file\n *\n * @param datasetName Filename of the file to load\n * @returns obj read data, normally as object\n */\n async loadDatasetFile(datasetName: string): Promise<Record<string, any>> {\n if (!(await fs.pathExists(datasetName))) {\n throw new Error(`Database file ${datasetName} does not exists.`);\n }\n return fs.readJSON(datasetName);\n }\n\n /**\n * Loads the dataset including pot. Fallback handling\n *\n * @param datasetName Filename of the file to load\n * @returns obj dataset read as object\n */\n async loadDataset(datasetName: string): Promise<Record<string, any>> {\n let ret = {};\n try {\n ret = await this.loadDatasetFile(datasetName);\n\n // loading worked, make sure that \"bak\" File is not broken\n try {\n await fs.readJSON(`${datasetName}.bak`);\n } catch (e) {\n this.log.info(\n `${this.namespace} Rewrite bak file, because error on verify ${datasetName}.bak: ${e.message}`,\n );\n try {\n const jsonString = JSON.stringify(ret);\n await fs.writeFile(`${datasetName}.bak`, jsonString);\n } catch (e) {\n this.log.error(`${this.namespace} Cannot save ${datasetName}.bak: ${e.message}`);\n }\n }\n } catch (err) {\n this.log.error(`${this.namespace} Cannot load ${datasetName}: ${err.message}. We try last Backup!`);\n\n try {\n ret = await this.loadDatasetFile(`${datasetName}.bak`);\n\n // it worked, lets overwrite old file and store the broken one for pot. forensic check\n try {\n if (await fs.pathExists(datasetName)) {\n try {\n await fs.move(datasetName, `${datasetName}.broken`, { overwrite: true });\n } catch (e) {\n this.log.error(\n `${this.namespace} Cannot copy the broken file ${datasetName} to ${datasetName}.broken ${e.message}`,\n );\n }\n try {\n await fs.writeFile(datasetName, JSON.stringify(ret));\n } catch (e) {\n this.log.error(\n `${this.namespace} Cannot restore backup file as new main ${datasetName}: ${e.message}`,\n );\n }\n }\n } catch {\n // ignore, file does not exist\n }\n } catch (err) {\n this.log.error(\n `${this.namespace} Cannot load ${datasetName}.bak: ${err.message}. Continue with empty dataset!`,\n );\n this.log.error(\n `${this.namespace} If this is no Migration or initial start please restore the last backup from ${this.backupDir}`,\n );\n }\n }\n return ret;\n }\n\n /**\n * Normalize the backup settings and create the backup directory\n */\n initBackupDir(): void {\n // Interval in minutes => to milliseconds\n this.settings.backup.period =\n this.settings.backup.period === undefined ? 120 : parseInt(String(this.settings.backup.period));\n if (isNaN(this.settings.backup.period)) {\n this.settings.backup.period = 120;\n }\n // Node.js timeouts overflow after roughly 24 days, defaulting to 1 millisecond, which causes chaos.\n // If a user configured the backup this way, we use our default of 120 minutes instead.\n const maxTimeoutMinutes = Math.floor((2 ** 31 - 1) / 60000);\n if (this.settings.backup.period > maxTimeoutMinutes) {\n this.log.warn(\n `${this.namespace} Configured backup period ${this.settings.backup.period} is larger than the supported maximum of ${maxTimeoutMinutes} minutes. Defaulting to 120 minutes.`,\n );\n this.settings.backup.period = 120;\n }\n this.settings.backup.period *= 60_000;\n\n this.settings.backup.files =\n this.settings.backup.files === undefined ? 24 : parseInt(String(this.settings.backup.files));\n if (isNaN(this.settings.backup.files)) {\n this.settings.backup.files = 24;\n }\n\n this.settings.backup.hours =\n this.settings.backup.hours === undefined ? 48 : parseInt(String(this.settings.backup.hours));\n if (isNaN(this.settings.backup.hours)) {\n this.settings.backup.hours = 48;\n }\n // Create backup directory\n fs.ensureDirSync(this.backupDir);\n }\n\n /**\n * Subscribe a client to changes matching the given pattern\n *\n * @param client The client to register the subscription for\n * @param type The subscription type (e.g. objects or states)\n * @param pattern One or more patterns to subscribe to\n * @param cb Called once the subscription has been registered\n */\n handleSubscribe(client: SubscriptionClient, type: string, pattern: string | string[], cb?: () => void): void;\n /**\n * Subscribe a client to changes matching the given pattern\n *\n * @param client The client to register the subscription for\n * @param type The subscription type (e.g. objects or states)\n * @param pattern One or more patterns to subscribe to\n * @param options Subscription options\n * @param cb Called once the subscription has been registered\n */\n handleSubscribe(\n client: SubscriptionClient,\n type: string,\n pattern: string | string[],\n options: any,\n cb?: () => void,\n ): void;\n\n /**\n * Subscribe a client to changes matching the given pattern\n *\n * @param client The client to register the subscription for\n * @param type The subscription type (e.g. objects or states)\n * @param pattern One or more patterns to subscribe to\n * @param options Subscription options, or the callback if omitted\n * @param cb Called once the subscription has been registered\n */\n handleSubscribe(\n client: SubscriptionClient,\n type: string,\n pattern: string | string[],\n options: any,\n cb?: () => void,\n ): void {\n if (typeof options === 'function') {\n cb = options;\n options = undefined;\n }\n client._subscribe = client._subscribe || {};\n client._subscribe[type] = client._subscribe[type] || [];\n\n const s = client._subscribe[type];\n\n if (pattern instanceof Array) {\n pattern.forEach(pattern => {\n if (s.find(sub => sub.pattern === pattern)) {\n return;\n }\n\n s.push({ pattern, regex: new RegExp(tools.pattern2RegEx(pattern)), options });\n });\n } else {\n if (!s.find(sub => sub.pattern === pattern)) {\n s.push({ pattern, regex: new RegExp(tools.pattern2RegEx(pattern)), options });\n }\n }\n\n typeof cb === 'function' && cb();\n }\n\n /**\n * Remove a client's subscription for the given pattern\n *\n * @param client The client whose subscription should be removed\n * @param type The subscription type (e.g. objects or states)\n * @param pattern One or more patterns to unsubscribe from\n * @param cb Called once the subscription has been removed\n */\n handleUnsubscribe(\n client: SubscriptionClient,\n type: string,\n pattern: string | string[],\n cb?: () => void,\n ): void | Promise<void> {\n const s = client?._subscribe?.[type];\n if (s) {\n const removeEntry = (p: string): void => {\n const index = s.findIndex(sub => sub.pattern === p);\n if (index > -1) {\n s.splice(index, 1);\n }\n };\n\n if (pattern instanceof Array) {\n pattern.forEach(p => {\n removeEntry(p);\n });\n } else {\n removeEntry(pattern);\n }\n }\n\n return tools.maybeCallback(cb);\n }\n\n /**\n * Publish a change to a single client. Must be implemented by a subclass that handles client communication.\n *\n * @param _client The client to publish to\n * @param _type The change type (e.g. objects or states)\n * @param _id The ID of the changed object or state\n * @param _obj The new value of the object or state\n */\n publishToClients(_client: SubscriptionClient, _type: string, _id: string, _obj: any): number {\n throw new Error('no communication handling implemented');\n }\n\n /**\n * Delete outdated backup files according to the configured retention settings\n *\n * @param baseFilename Base file name of the backups that should be pruned\n */\n deleteOldBackupFiles(baseFilename: string): void {\n // delete files only if settings.backupNumber is not 0\n let files = fs.readdirSync(this.backupDir);\n files.sort();\n const limit = Date.now() - this.settings.backup.hours * 3600000;\n\n files = files.filter(f => f.endsWith(`${baseFilename}.gz`));\n\n while (files.length > this.settings.backup.files) {\n const file = files.shift();\n if (!file) {\n continue;\n }\n // extract time\n const ms = new Date(`${file.substring(0, 10)} ${file.substring(11, 16).replace('-', ':')}:00`).getTime();\n if (limit > ms) {\n try {\n fs.unlinkSync(path.join(this.backupDir, file));\n } catch (e) {\n this.log.error(\n `${this.namespace} Cannot delete file \"${path.join(this.backupDir, file)}: ${e.message}`,\n );\n }\n }\n }\n }\n\n /**\n * Format a timestamp into a \"YYYY-MM-DD_HH-MM-SS\" string used for backup file names\n *\n * @param date Timestamp in milliseconds\n */\n getTimeStr(date: number): string {\n const dateObj = new Date(date);\n\n let text = `${dateObj.getFullYear().toString()}-`;\n let v = dateObj.getMonth() + 1;\n if (v < 10) {\n text += '0';\n }\n text += `${v.toString()}-`;\n\n v = dateObj.getDate();\n if (v < 10) {\n text += '0';\n }\n text += `${v.toString()}_`;\n\n v = dateObj.getHours();\n if (v < 10) {\n text += '0';\n }\n text += `${v.toString()}-`;\n\n v = dateObj.getMinutes();\n if (v < 10) {\n text += '0';\n }\n text += v.toString();\n\n return text;\n }\n\n /**\n * Handle saving the dataset incl. backups\n */\n async saveState(): Promise<void> {\n try {\n const jsonString = await this.saveDataset();\n\n if (!this.settings.backup.disabled && jsonString) {\n this.saveBackup(jsonString);\n }\n } finally {\n if (this.stateTimer) {\n clearTimeout(this.stateTimer);\n this.stateTimer = null;\n }\n }\n }\n\n /**\n * Saves the dataset into File incl. handling of a fallback backup file\n *\n * @returns dataset JSON string of the complete dataset to also be stored into a compressed backup file\n */\n async saveDataset(): Promise<string> {\n const jsonString = JSON.stringify(this.dataset);\n\n try {\n await fs.writeFile(`${this.datasetName}.new`, jsonString);\n } catch (e) {\n this.log.error(`${this.namespace} Cannot save Dataset to ${this.datasetName}.new: ${e.message}`);\n return jsonString;\n }\n\n let bakOk = true;\n try {\n if (await fs.pathExists(this.datasetName)) {\n try {\n await fs.move(this.datasetName, `${this.datasetName}.bak`, { overwrite: true });\n } catch (e) {\n bakOk = false;\n this.log.error(`${this.namespace} Cannot backup file ${this.datasetName}.bak: ${e.message}`);\n }\n } else {\n bakOk = false;\n }\n } catch {\n bakOk = false;\n // ignore, file does not exist\n }\n\n try {\n await fs.move(`${this.datasetName}.new`, this.datasetName, { overwrite: true });\n } catch (e) {\n this.log.error(\n `${this.namespace} Cannot move ${this.datasetName}.new to ${this.datasetName}: ${e.message}. Try direct write as fallback`,\n );\n try {\n await fs.writeFile(this.datasetName, jsonString);\n } catch (e) {\n this.log.error(`${this.namespace} Cannot directly write Dataset to ${this.datasetName}: ${e.message}`);\n return jsonString;\n }\n }\n\n if (!bakOk) {\n // it seems the bak File is not successfully there, write current content again\n try {\n await fs.writeFile(`${this.datasetName}.bak`, jsonString);\n } catch (e) {\n this.log.error(`${this.namespace} Cannot save ${this.datasetName}.bak: ${e.message}`);\n }\n }\n\n return jsonString;\n }\n\n /**\n * Stores a compressed backup of the DB in definable intervals\n *\n * @param jsonString JSON string of the complete dataset to also be stored into a compressed backup file\n */\n saveBackup(jsonString: string): void {\n // save files for the last x hours\n const now = Date.now();\n\n // makes backups only if settings.backupInterval is not 0\n if (this.settings.backup.period && (!this.lastSave || now - this.lastSave > this.settings.backup.period)) {\n this.lastSave = now;\n const backFileName = path.join(\n this.backupDir,\n `${this.getTimeStr(now)}_${this.settings.fileDB.fileName}.gz`,\n );\n\n try {\n if (!fs.existsSync(backFileName)) {\n const output = fs.createWriteStream(backFileName);\n output.on('error', err => {\n this.log.error(`${this.namespace} Cannot save ${this.datasetName}: ${err.stack}`);\n });\n\n const compress = createGzip();\n /* The following line will pipe everything written into compress to the file stream */\n compress.pipe(output);\n /* Since we're piped through the file stream, the following line will do:\n 'Hello World!'->gzip compression->file which is the desired effect */\n compress.write(jsonString);\n compress.end();\n\n // analyse older files\n this.deleteOldBackupFiles(this.settings.fileDB.fileName);\n }\n } catch (e) {\n this.log.error(`${this.namespace} Cannot save backup ${backFileName}: ${e.message}`);\n }\n }\n }\n\n /**\n * Get the current status of the database\n */\n getStatus(): DbStatus {\n return { type: 'file', server: true };\n }\n\n /**\n * Get the currently connected clients. Subclasses override this to return the real clients.\n */\n getClients(): Record<string, any> {\n return {};\n }\n\n /**\n * Publish a change to all connected clients and local subscribers\n *\n * @param type The change type (e.g. objects or states)\n * @param id The ID of the changed object or state\n * @param obj The new value of the object or state\n */\n publishAll(type: string, id: string, obj: any): number {\n if (id === undefined) {\n this.log.error(`${this.namespace} Can not publish empty ID`);\n return 0;\n }\n\n const clients = this.getClients();\n let publishCount = 0;\n\n if (clients && typeof clients === 'object') {\n for (const i of Object.keys(clients)) {\n publishCount += this.publishToClients(clients[i], type, id, obj);\n }\n }\n\n // local subscriptions\n if (\n this.change &&\n this.callbackSubscriptionClient._subscribe &&\n this.callbackSubscriptionClient._subscribe[type]\n ) {\n for (const entry of this.callbackSubscriptionClient._subscribe[type]) {\n if (entry.regex.test(id)) {\n // @ts-expect-error we have checked 3 lines above\n setImmediate(() => this.change(id, obj));\n break;\n }\n }\n }\n\n return publishCount;\n }\n\n /**\n * Destructor of the class. Called when shutting down to persist state and clear timers.\n */\n async destroy(): Promise<void> {\n if (this.stateTimer) {\n clearTimeout(this.stateTimer);\n await this.saveState();\n }\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["path", "fs", "e", "err", "pattern"]
|
|
7
7
|
}
|
|
@@ -1,28 +1,37 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* States DB in memory - Server
|
|
3
3
|
*
|
|
4
|
-
* Copyright 2013-
|
|
4
|
+
* Copyright 2013-2026 bluefox <dogafox@gmail.com>
|
|
5
5
|
*
|
|
6
6
|
* MIT License
|
|
7
7
|
*
|
|
8
8
|
*/
|
|
9
9
|
import type { InternalLogger } from '@iobroker/js-controller-common-db/tools';
|
|
10
|
+
/** Options describing how to connect to the database server */
|
|
10
11
|
export interface ConnectionOptions {
|
|
12
|
+
/** Password for authentication, if required */
|
|
11
13
|
pass?: string;
|
|
14
|
+
/** Name of the sentinel master to connect to */
|
|
12
15
|
sentinelName?: string;
|
|
13
16
|
/** array on sentinel */
|
|
14
17
|
host: string | string[];
|
|
15
18
|
/** array on sentinel */
|
|
16
19
|
port: number | number[];
|
|
20
|
+
/** Additional connection options passed to the database driver */
|
|
17
21
|
options: Record<string, any>;
|
|
22
|
+
/** Enable more verbose connection logging */
|
|
18
23
|
enhancedLogging?: boolean;
|
|
24
|
+
/** Backup configuration */
|
|
19
25
|
backup?: BackupOptions;
|
|
20
26
|
/** relative path to the data dir */
|
|
21
27
|
dataDir?: string;
|
|
22
28
|
}
|
|
23
29
|
type ChangeFunction = (id: string, state: any) => void;
|
|
30
|
+
/** Status information about the database */
|
|
24
31
|
export interface DbStatus {
|
|
32
|
+
/** Type of the database backend (e.g. file, jsonl, redis) */
|
|
25
33
|
type: string;
|
|
34
|
+
/** Whether this process runs the database server */
|
|
26
35
|
server: boolean;
|
|
27
36
|
}
|
|
28
37
|
interface BackupOptions {
|
|
@@ -35,8 +44,11 @@ interface BackupOptions {
|
|
|
35
44
|
period: number;
|
|
36
45
|
path: string;
|
|
37
46
|
}
|
|
47
|
+
/** Options describing where the database stores its files */
|
|
38
48
|
export interface DbOptions {
|
|
49
|
+
/** Name of the directory used for backups */
|
|
39
50
|
backupDirName: string;
|
|
51
|
+
/** Name of the database file */
|
|
40
52
|
fileName: string;
|
|
41
53
|
}
|
|
42
54
|
interface FileDbSettings {
|
|
@@ -81,7 +93,13 @@ export declare class InMemoryFileDB {
|
|
|
81
93
|
private readonly datasetName;
|
|
82
94
|
private log;
|
|
83
95
|
private readonly backupDir;
|
|
96
|
+
/**
|
|
97
|
+
* @param settings Settings for the database, the connection and backups
|
|
98
|
+
*/
|
|
84
99
|
constructor(settings: FileDbSettings);
|
|
100
|
+
/**
|
|
101
|
+
* Open the database by loading the dataset from disk
|
|
102
|
+
*/
|
|
85
103
|
open(): Promise<void>;
|
|
86
104
|
/**
|
|
87
105
|
* Loads a dataset file
|
|
@@ -97,12 +115,58 @@ export declare class InMemoryFileDB {
|
|
|
97
115
|
* @returns obj dataset read as object
|
|
98
116
|
*/
|
|
99
117
|
loadDataset(datasetName: string): Promise<Record<string, any>>;
|
|
118
|
+
/**
|
|
119
|
+
* Normalize the backup settings and create the backup directory
|
|
120
|
+
*/
|
|
100
121
|
initBackupDir(): void;
|
|
122
|
+
/**
|
|
123
|
+
* Subscribe a client to changes matching the given pattern
|
|
124
|
+
*
|
|
125
|
+
* @param client The client to register the subscription for
|
|
126
|
+
* @param type The subscription type (e.g. objects or states)
|
|
127
|
+
* @param pattern One or more patterns to subscribe to
|
|
128
|
+
* @param cb Called once the subscription has been registered
|
|
129
|
+
*/
|
|
101
130
|
handleSubscribe(client: SubscriptionClient, type: string, pattern: string | string[], cb?: () => void): void;
|
|
131
|
+
/**
|
|
132
|
+
* Subscribe a client to changes matching the given pattern
|
|
133
|
+
*
|
|
134
|
+
* @param client The client to register the subscription for
|
|
135
|
+
* @param type The subscription type (e.g. objects or states)
|
|
136
|
+
* @param pattern One or more patterns to subscribe to
|
|
137
|
+
* @param options Subscription options
|
|
138
|
+
* @param cb Called once the subscription has been registered
|
|
139
|
+
*/
|
|
102
140
|
handleSubscribe(client: SubscriptionClient, type: string, pattern: string | string[], options: any, cb?: () => void): void;
|
|
141
|
+
/**
|
|
142
|
+
* Remove a client's subscription for the given pattern
|
|
143
|
+
*
|
|
144
|
+
* @param client The client whose subscription should be removed
|
|
145
|
+
* @param type The subscription type (e.g. objects or states)
|
|
146
|
+
* @param pattern One or more patterns to unsubscribe from
|
|
147
|
+
* @param cb Called once the subscription has been removed
|
|
148
|
+
*/
|
|
103
149
|
handleUnsubscribe(client: SubscriptionClient, type: string, pattern: string | string[], cb?: () => void): void | Promise<void>;
|
|
150
|
+
/**
|
|
151
|
+
* Publish a change to a single client. Must be implemented by a subclass that handles client communication.
|
|
152
|
+
*
|
|
153
|
+
* @param _client The client to publish to
|
|
154
|
+
* @param _type The change type (e.g. objects or states)
|
|
155
|
+
* @param _id The ID of the changed object or state
|
|
156
|
+
* @param _obj The new value of the object or state
|
|
157
|
+
*/
|
|
104
158
|
publishToClients(_client: SubscriptionClient, _type: string, _id: string, _obj: any): number;
|
|
159
|
+
/**
|
|
160
|
+
* Delete outdated backup files according to the configured retention settings
|
|
161
|
+
*
|
|
162
|
+
* @param baseFilename Base file name of the backups that should be pruned
|
|
163
|
+
*/
|
|
105
164
|
deleteOldBackupFiles(baseFilename: string): void;
|
|
165
|
+
/**
|
|
166
|
+
* Format a timestamp into a "YYYY-MM-DD_HH-MM-SS" string used for backup file names
|
|
167
|
+
*
|
|
168
|
+
* @param date Timestamp in milliseconds
|
|
169
|
+
*/
|
|
106
170
|
getTimeStr(date: number): string;
|
|
107
171
|
/**
|
|
108
172
|
* Handle saving the dataset incl. backups
|
|
@@ -120,9 +184,25 @@ export declare class InMemoryFileDB {
|
|
|
120
184
|
* @param jsonString JSON string of the complete dataset to also be stored into a compressed backup file
|
|
121
185
|
*/
|
|
122
186
|
saveBackup(jsonString: string): void;
|
|
187
|
+
/**
|
|
188
|
+
* Get the current status of the database
|
|
189
|
+
*/
|
|
123
190
|
getStatus(): DbStatus;
|
|
191
|
+
/**
|
|
192
|
+
* Get the currently connected clients. Subclasses override this to return the real clients.
|
|
193
|
+
*/
|
|
124
194
|
getClients(): Record<string, any>;
|
|
195
|
+
/**
|
|
196
|
+
* Publish a change to all connected clients and local subscribers
|
|
197
|
+
*
|
|
198
|
+
* @param type The change type (e.g. objects or states)
|
|
199
|
+
* @param id The ID of the changed object or state
|
|
200
|
+
* @param obj The new value of the object or state
|
|
201
|
+
*/
|
|
125
202
|
publishAll(type: string, id: string, obj: any): number;
|
|
203
|
+
/**
|
|
204
|
+
* Destructor of the class. Called when shutting down to persist state and clear timers.
|
|
205
|
+
*/
|
|
126
206
|
destroy(): Promise<void>;
|
|
127
207
|
}
|
|
128
208
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inMemFileDB.d.ts","sourceRoot":"","sources":["../../../src/lib/inMemFileDB.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAwB9E,MAAM,WAAW,iBAAiB;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wBAAwB;IACxB,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACxB,wBAAwB;IACxB,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,oCAAoC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,KAAK,cAAc,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;AAEvD,MAAM,WAAW,QAAQ;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;CACnB;AAED,UAAU,aAAa;IACnB,iCAAiC;IACjC,QAAQ,EAAE,OAAO,CAAC;IAClB,8BAA8B;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,cAAc;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,SAAS;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,cAAc;IACpB,MAAM,EAAE,SAAS,CAAC;IAClB,OAAO,EAAE,SAAS,CAAC;IACnB,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,SAAS,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,MAAM,EAAE,cAAc,CAAC;IACvB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,aAAa;IACb,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,MAAM,EAAE,OAAO,CAAC;IAChB,2EAA2E;IAC3E,YAAY,EAAE,GAAG,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,YAAY;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,GAAG,CAAC;CAChB;AAED,UAAU,kBAAkB;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;CAC/C;AAED;;;GAGG;AACH,qBAAa,cAAc;IACvB,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6B;IACpD,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACvC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,UAAU,CAAwB;IAC1C,OAAO,CAAC,0BAA0B,CAAqB;IACvD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,GAAG,CAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;
|
|
1
|
+
{"version":3,"file":"inMemFileDB.d.ts","sourceRoot":"","sources":["../../../src/lib/inMemFileDB.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* States DB in memory - Server
|
|
3
3
|
*
|
|
4
|
-
* Copyright 2013-
|
|
4
|
+
* Copyright 2013-2026 bluefox <dogafox@gmail.com>
|
|
5
5
|
*
|
|
6
6
|
* MIT License
|
|
7
7
|
*
|
|
@@ -26,6 +26,9 @@ export class InMemoryFileDB {
|
|
|
26
26
|
datasetName;
|
|
27
27
|
log;
|
|
28
28
|
backupDir;
|
|
29
|
+
/**
|
|
30
|
+
* @param settings Settings for the database, the connection and backups
|
|
31
|
+
*/
|
|
29
32
|
constructor(settings) {
|
|
30
33
|
this.settings = settings || {};
|
|
31
34
|
this.change = this.settings.change;
|
|
@@ -64,6 +67,9 @@ export class InMemoryFileDB {
|
|
|
64
67
|
}
|
|
65
68
|
this.log.debug(`${this.namespace} Data File: ${this.datasetName}`);
|
|
66
69
|
}
|
|
70
|
+
/**
|
|
71
|
+
* Open the database by loading the dataset from disk
|
|
72
|
+
*/
|
|
67
73
|
async open() {
|
|
68
74
|
// load values from file
|
|
69
75
|
this.dataset = await this.loadDataset(this.datasetName);
|
|
@@ -137,6 +143,9 @@ export class InMemoryFileDB {
|
|
|
137
143
|
}
|
|
138
144
|
return ret;
|
|
139
145
|
}
|
|
146
|
+
/**
|
|
147
|
+
* Normalize the backup settings and create the backup directory
|
|
148
|
+
*/
|
|
140
149
|
initBackupDir() {
|
|
141
150
|
// Interval in minutes => to milliseconds
|
|
142
151
|
this.settings.backup.period =
|
|
@@ -165,6 +174,15 @@ export class InMemoryFileDB {
|
|
|
165
174
|
// Create backup directory
|
|
166
175
|
fs.ensureDirSync(this.backupDir);
|
|
167
176
|
}
|
|
177
|
+
/**
|
|
178
|
+
* Subscribe a client to changes matching the given pattern
|
|
179
|
+
*
|
|
180
|
+
* @param client The client to register the subscription for
|
|
181
|
+
* @param type The subscription type (e.g. objects or states)
|
|
182
|
+
* @param pattern One or more patterns to subscribe to
|
|
183
|
+
* @param options Subscription options, or the callback if omitted
|
|
184
|
+
* @param cb Called once the subscription has been registered
|
|
185
|
+
*/
|
|
168
186
|
handleSubscribe(client, type, pattern, options, cb) {
|
|
169
187
|
if (typeof options === 'function') {
|
|
170
188
|
cb = options;
|
|
@@ -188,6 +206,14 @@ export class InMemoryFileDB {
|
|
|
188
206
|
}
|
|
189
207
|
typeof cb === 'function' && cb();
|
|
190
208
|
}
|
|
209
|
+
/**
|
|
210
|
+
* Remove a client's subscription for the given pattern
|
|
211
|
+
*
|
|
212
|
+
* @param client The client whose subscription should be removed
|
|
213
|
+
* @param type The subscription type (e.g. objects or states)
|
|
214
|
+
* @param pattern One or more patterns to unsubscribe from
|
|
215
|
+
* @param cb Called once the subscription has been removed
|
|
216
|
+
*/
|
|
191
217
|
handleUnsubscribe(client, type, pattern, cb) {
|
|
192
218
|
const s = client?._subscribe?.[type];
|
|
193
219
|
if (s) {
|
|
@@ -208,9 +234,22 @@ export class InMemoryFileDB {
|
|
|
208
234
|
}
|
|
209
235
|
return tools.maybeCallback(cb);
|
|
210
236
|
}
|
|
237
|
+
/**
|
|
238
|
+
* Publish a change to a single client. Must be implemented by a subclass that handles client communication.
|
|
239
|
+
*
|
|
240
|
+
* @param _client The client to publish to
|
|
241
|
+
* @param _type The change type (e.g. objects or states)
|
|
242
|
+
* @param _id The ID of the changed object or state
|
|
243
|
+
* @param _obj The new value of the object or state
|
|
244
|
+
*/
|
|
211
245
|
publishToClients(_client, _type, _id, _obj) {
|
|
212
246
|
throw new Error('no communication handling implemented');
|
|
213
247
|
}
|
|
248
|
+
/**
|
|
249
|
+
* Delete outdated backup files according to the configured retention settings
|
|
250
|
+
*
|
|
251
|
+
* @param baseFilename Base file name of the backups that should be pruned
|
|
252
|
+
*/
|
|
214
253
|
deleteOldBackupFiles(baseFilename) {
|
|
215
254
|
// delete files only if settings.backupNumber is not 0
|
|
216
255
|
let files = fs.readdirSync(this.backupDir);
|
|
@@ -234,6 +273,11 @@ export class InMemoryFileDB {
|
|
|
234
273
|
}
|
|
235
274
|
}
|
|
236
275
|
}
|
|
276
|
+
/**
|
|
277
|
+
* Format a timestamp into a "YYYY-MM-DD_HH-MM-SS" string used for backup file names
|
|
278
|
+
*
|
|
279
|
+
* @param date Timestamp in milliseconds
|
|
280
|
+
*/
|
|
237
281
|
getTimeStr(date) {
|
|
238
282
|
const dateObj = new Date(date);
|
|
239
283
|
let text = `${dateObj.getFullYear().toString()}-`;
|
|
@@ -367,12 +411,25 @@ export class InMemoryFileDB {
|
|
|
367
411
|
}
|
|
368
412
|
}
|
|
369
413
|
}
|
|
414
|
+
/**
|
|
415
|
+
* Get the current status of the database
|
|
416
|
+
*/
|
|
370
417
|
getStatus() {
|
|
371
418
|
return { type: 'file', server: true };
|
|
372
419
|
}
|
|
420
|
+
/**
|
|
421
|
+
* Get the currently connected clients. Subclasses override this to return the real clients.
|
|
422
|
+
*/
|
|
373
423
|
getClients() {
|
|
374
424
|
return {};
|
|
375
425
|
}
|
|
426
|
+
/**
|
|
427
|
+
* Publish a change to all connected clients and local subscribers
|
|
428
|
+
*
|
|
429
|
+
* @param type The change type (e.g. objects or states)
|
|
430
|
+
* @param id The ID of the changed object or state
|
|
431
|
+
* @param obj The new value of the object or state
|
|
432
|
+
*/
|
|
376
433
|
publishAll(type, id, obj) {
|
|
377
434
|
if (id === undefined) {
|
|
378
435
|
this.log.error(`${this.namespace} Can not publish empty ID`);
|
|
@@ -399,7 +456,9 @@ export class InMemoryFileDB {
|
|
|
399
456
|
}
|
|
400
457
|
return publishCount;
|
|
401
458
|
}
|
|
402
|
-
|
|
459
|
+
/**
|
|
460
|
+
* Destructor of the class. Called when shutting down to persist state and clear timers.
|
|
461
|
+
*/
|
|
403
462
|
async destroy() {
|
|
404
463
|
if (this.stateTimer) {
|
|
405
464
|
clearTimeout(this.stateTimer);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inMemFileDB.js","sourceRoot":"","sources":["../../../src/lib/inMemFileDB.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"inMemFileDB.js","sourceRoot":"","sources":["../../../src/lib/inMemFileDB.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/typescript/lib/lib.es2023.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2023.array.d.ts","../../../node_modules/typescript/lib/lib.es2023.collection.d.ts","../../../node_modules/typescript/lib/lib.es2023.intl.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/@types/node/compatibility/disposable.d.ts","../../../node_modules/@types/node/compatibility/indexable.d.ts","../../../node_modules/@types/node/compatibility/iterators.d.ts","../../../node_modules/@types/node/compatibility/index.d.ts","../../../node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/buffer/index.d.ts","../../../node_modules/undici-types/header.d.ts","../../../node_modules/undici-types/readable.d.ts","../../../node_modules/undici-types/file.d.ts","../../../node_modules/undici-types/fetch.d.ts","../../../node_modules/undici-types/formdata.d.ts","../../../node_modules/undici-types/connector.d.ts","../../../node_modules/undici-types/client.d.ts","../../../node_modules/undici-types/errors.d.ts","../../../node_modules/undici-types/dispatcher.d.ts","../../../node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/undici-types/global-origin.d.ts","../../../node_modules/undici-types/pool-stats.d.ts","../../../node_modules/undici-types/pool.d.ts","../../../node_modules/undici-types/handlers.d.ts","../../../node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/undici-types/agent.d.ts","../../../node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/undici-types/mock-agent.d.ts","../../../node_modules/undici-types/mock-client.d.ts","../../../node_modules/undici-types/mock-pool.d.ts","../../../node_modules/undici-types/mock-errors.d.ts","../../../node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/undici-types/retry-handler.d.ts","../../../node_modules/undici-types/retry-agent.d.ts","../../../node_modules/undici-types/api.d.ts","../../../node_modules/undici-types/interceptors.d.ts","../../../node_modules/undici-types/util.d.ts","../../../node_modules/undici-types/cookies.d.ts","../../../node_modules/undici-types/patch.d.ts","../../../node_modules/undici-types/websocket.d.ts","../../../node_modules/undici-types/eventsource.d.ts","../../../node_modules/undici-types/filereader.d.ts","../../../node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/undici-types/content-type.d.ts","../../../node_modules/undici-types/cache.d.ts","../../../node_modules/undici-types/index.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/dns/promises.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/dom-events.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/readline/promises.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/sea.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/stream/promises.d.ts","../../../node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/@types/node/stream/web.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/test.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/timers/promises.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/index.d.ts","../../../node_modules/@types/jsonfile/index.d.ts","../../../node_modules/@types/jsonfile/utils.d.ts","../../../node_modules/@types/fs-extra/index.d.ts","../../../node_modules/promisify-child-process/index.d.ts","../../../node_modules/execa/index.d.ts","../../../node_modules/@alcalzone/pak/build/lib/package-managers/package-manager.d.ts","../../../node_modules/@alcalzone/pak/build/lib/package-managers/npm/index.d.ts","../../../node_modules/@alcalzone/pak/build/lib/package-managers/yarn-berry/index.d.ts","../../../node_modules/@alcalzone/pak/build/lib/package-managers/yarn-classic/index.d.ts","../../../node_modules/@alcalzone/pak/build/lib/pak.d.ts","../../../node_modules/@alcalzone/pak/build/index.d.ts","../../common-db/build/esm/lib/common/maybeCallback.d.ts","../../common-db/build/esm/lib/common/tools.d.ts","../../common-db/build/esm/lib/common/exitCodes.d.ts","../../common-db/build/esm/lib/common/password.d.ts","../../../node_modules/@types/triple-beam/index.d.ts","../../../node_modules/logform/index.d.ts","../../../node_modules/winston-transport/index.d.ts","../../../node_modules/winston/lib/winston/config/index.d.ts","../../../node_modules/winston/lib/winston/transports/index.d.ts","../../../node_modules/winston/index.d.ts","../../common-db/build/esm/lib/common/logger.d.ts","../../common-db/build/esm/lib/common/interview.d.ts","../../common-db/build/esm/lib/common/session.d.ts","../../common-db/build/esm/lib/common/constants.d.ts","../../common-db/build/esm/index.d.ts","../src/lib/inMemFileDB.ts","../src/lib/constants.ts","../src/lib/redisHandler.ts","../src/index.ts","../../../node_modules/@types/argparse/index.d.ts","../../../node_modules/@types/ms/index.d.ts","../../../node_modules/@types/debug/index.d.ts","../../../node_modules/@types/estree/index.d.ts","../../../node_modules/@types/event-stream/index.d.ts","../../../node_modules/@types/glossy/index.d.ts","../../../node_modules/@types/unist/index.d.ts","../../../node_modules/@types/hast/index.d.ts","../../../node_modules/@types/ioredis/index.d.ts","../../../node_modules/@types/json-schema/index.d.ts","../../../node_modules/@types/jsonwebtoken/index.d.ts","../../../node_modules/@types/mime-types/index.d.ts","../../../node_modules/@types/minimist/index.d.ts","../../../node_modules/@types/mocha/index.d.ts","../../../node_modules/@types/node-forge/index.d.ts","../../../node_modules/@types/node-schedule/index.d.ts","../../../node_modules/@types/normalize-package-data/index.d.ts","../../../node_modules/@types/pidusage/index.d.ts","../../../node_modules/@types/revalidator/index.d.ts","../../../node_modules/@types/prompt/index.d.ts","../../../node_modules/@types/readline-sync/index.d.ts","../../../node_modules/@types/semver/classes/semver.d.ts","../../../node_modules/@types/semver/functions/parse.d.ts","../../../node_modules/@types/semver/functions/valid.d.ts","../../../node_modules/@types/semver/functions/clean.d.ts","../../../node_modules/@types/semver/functions/inc.d.ts","../../../node_modules/@types/semver/functions/diff.d.ts","../../../node_modules/@types/semver/functions/major.d.ts","../../../node_modules/@types/semver/functions/minor.d.ts","../../../node_modules/@types/semver/functions/patch.d.ts","../../../node_modules/@types/semver/functions/prerelease.d.ts","../../../node_modules/@types/semver/functions/compare.d.ts","../../../node_modules/@types/semver/functions/rcompare.d.ts","../../../node_modules/@types/semver/functions/compare-loose.d.ts","../../../node_modules/@types/semver/functions/compare-build.d.ts","../../../node_modules/@types/semver/functions/sort.d.ts","../../../node_modules/@types/semver/functions/rsort.d.ts","../../../node_modules/@types/semver/functions/gt.d.ts","../../../node_modules/@types/semver/functions/lt.d.ts","../../../node_modules/@types/semver/functions/eq.d.ts","../../../node_modules/@types/semver/functions/neq.d.ts","../../../node_modules/@types/semver/functions/gte.d.ts","../../../node_modules/@types/semver/functions/lte.d.ts","../../../node_modules/@types/semver/functions/cmp.d.ts","../../../node_modules/@types/semver/functions/coerce.d.ts","../../../node_modules/@types/semver/classes/comparator.d.ts","../../../node_modules/@types/semver/classes/range.d.ts","../../../node_modules/@types/semver/functions/satisfies.d.ts","../../../node_modules/@types/semver/ranges/max-satisfying.d.ts","../../../node_modules/@types/semver/ranges/min-satisfying.d.ts","../../../node_modules/@types/semver/ranges/to-comparators.d.ts","../../../node_modules/@types/semver/ranges/min-version.d.ts","../../../node_modules/@types/semver/ranges/valid.d.ts","../../../node_modules/@types/semver/ranges/outside.d.ts","../../../node_modules/@types/semver/ranges/gtr.d.ts","../../../node_modules/@types/semver/ranges/ltr.d.ts","../../../node_modules/@types/semver/ranges/intersects.d.ts","../../../node_modules/@types/semver/ranges/simplify.d.ts","../../../node_modules/@types/semver/ranges/subset.d.ts","../../../node_modules/@types/semver/internals/identifiers.d.ts","../../../node_modules/@types/semver/index.d.ts","../../../node_modules/@types/sinonjs__fake-timers/index.d.ts","../../../node_modules/@types/sinon/index.d.ts","../../../node_modules/minipass/index.d.ts","../../../node_modules/@types/tar/index.d.ts","../../../node_modules/@types/winston-syslog/index.d.ts","../../../node_modules/@types/yargs-parser/index.d.ts","../../../node_modules/@types/yargs/index.d.ts"],"fileIdsList":[[67,110,165,169],[67,110,165],[67,110,141,159,164],[67,110,165,166,167,168],[67,110],[67,110,191],[67,110,141,159],[67,110,123,159,160,161],[67,110,159],[67,110,196],[67,110,122,141,149,159],[67,110,123,152,159],[67,110,122,159],[67,107,110],[67,109,110],[110],[67,110,115,144],[67,110,111,116,122,123,130,141,152],[67,110,111,112,122,130],[62,63,64,67,110],[67,110,113,153],[67,110,114,115,123,131],[67,110,115,141,149],[67,110,116,118,122,130],[67,109,110,117],[67,110,118,119],[67,110,122],[67,110,120,122],[67,109,110,122],[67,110,122,123,124,141,152],[67,110,122,123,124,137,141,144],[67,105,110,157],[67,110,118,122,125,130,141,152],[67,110,122,123,125,126,130,141,149,152],[67,110,125,127,141,149,152],[65,66,67,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158],[67,110,122,128],[67,110,129,152,157],[67,110,118,122,130,141],[67,110,131],[67,110,132],[67,109,110,133],[67,107,108,109,110,111,112,113,114,115,116,117,118,119,120,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158],[67,110,135],[67,110,136],[67,110,122,137,138],[67,110,137,139,153,155],[67,110,122,141,142,143,144],[67,110,141,143],[67,110,141,142],[67,110,144],[67,110,145],[67,107,110,141],[67,110,122,147,148],[67,110,147,148],[67,110,115,130,141,149],[67,110,150],[67,110,130,151],[67,110,125,136,152],[67,110,115,153],[67,110,141,154],[67,110,129,155],[67,110,156],[67,110,115,122,124,133,141,152,155,157],[67,110,141,158],[67,110,122,151,159,208],[67,110,211,250],[67,110,211,235,250],[67,110,250],[67,110,211],[67,110,211,236,250],[67,110,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249],[67,110,236,250],[67,110,251],[67,110,123,141,158,159,253],[67,110,116,130,159,177,195],[67,110,256],[67,110,111,141,159],[67,110,175],[67,110,122,141,159],[67,110,111],[67,77,81,110,152],[67,77,110,141,152],[67,72,110],[67,74,77,110,149,152],[67,110,130,149],[67,72,110,159],[67,74,77,110,130,152],[67,69,70,73,76,110,122,141,152],[67,77,84,110],[67,69,75,110],[67,77,98,99,110],[67,73,77,110,144,152,159],[67,98,110,159],[67,71,72,110,159],[67,77,110],[67,71,72,73,74,75,76,77,78,79,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,104,110],[67,77,92,110],[67,77,84,85,110],[67,75,77,85,86,110],[67,76,110],[67,69,72,77,110],[67,77,81,85,86,110],[67,81,110],[67,75,77,80,110,152],[67,69,74,77,84,110],[67,110,141],[67,72,77,98,110,157,159],[67,110,141,159,176],[67,110,141,159,176,177,178,179],[67,110,125,159,177],[67,110,172,173,174,181,182,183,184],[67,110,180],[67,110,111,163,170,171],[67,110,185,186,188],[67,110,132,158,162,172,185],[67,110,122,130,172,187]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"df83c2a6c73228b625b0beb6669c7ee2a09c914637e2d35170723ad49c0f5cd4","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"70521b6ab0dcba37539e5303104f29b721bfb2940b2776da4cc818c07e1fefc1","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"a79e62f1e20467e11a904399b8b18b18c0c6eea6b50c1168bf215356d5bebfaf","affectsGlobalScope":true,"impliedFormat":1},{"version":"0fd06258805d26c72f5997e07a23155d322d5f05387adb3744a791fe6a0b042d","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"24bd580b5743dc56402c440dc7f9a4f5d592ad7a419f25414d37a7bfe11e342b","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"6bdc71028db658243775263e93a7db2fd2abfce3ca569c3cca5aee6ed5eb186d","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"4d2b0eb911816f66abe4970898f97a2cfc902bcd743cbfa5017fad79f7ef90d8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","impliedFormat":1},{"version":"24b8685c62562f5d98615c5a0c1d05f297cf5065f15246edfe99e81ec4c0e011","impliedFormat":1},{"version":"93507c745e8f29090efb99399c3f77bec07db17acd75634249dc92f961573387","impliedFormat":1},{"version":"339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"ca6d304b929748ea15c33f28c1f159df18a94470b424ab78c52d68d40a41e1e9","affectsGlobalScope":true,"impliedFormat":1},{"version":"a72ffc815104fb5c075106ebca459b2d55d07862a773768fce89efc621b3964b","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"3d77c73be94570813f8cadd1f05ebc3dc5e2e4fdefe4d340ca20cd018724ee36","impliedFormat":1},{"version":"d674383111e06b6741c4ad2db962131b5b0fa4d0294b998566c635e86195a453","affectsGlobalScope":true,"impliedFormat":1},{"version":"f3e58c4c18a031cbb17abec7a4ad0bd5ae9fc70c1f4ba1e7fb921ad87c504aca","impliedFormat":1},{"version":"a3e8bafb2af8e850c644f4be7f5156cf7d23b7bfdc3b786bd4d10ed40329649c","impliedFormat":1},{"version":"35ec8b6760fd7138bbf5809b84551e31028fb2ba7b6dc91d95d098bf212ca8b4","affectsGlobalScope":true,"impliedFormat":1},{"version":"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","impliedFormat":1},{"version":"f77d9188e41291acf14f476e931972460a303e1952538f9546e7b370cb8d0d20","affectsGlobalScope":true,"impliedFormat":1},{"version":"b0c0d1d13be149f790a75b381b413490f98558649428bb916fd2d71a3f47a134","impliedFormat":1},{"version":"3c884d9d9ec454bdf0d5a0b8465bf8297d2caa4d853851d92cc417ac6f30b969","impliedFormat":1},{"version":"5a369483ac4cfbdf0331c248deeb36140e6907db5e1daed241546b4a2055f82c","impliedFormat":1},{"version":"e8f5b5cc36615c17d330eaf8eebbc0d6bdd942c25991f96ef122f246f4ff722f","impliedFormat":1},{"version":"f0bd7e6d931657b59605c44112eaf8b980ba7f957a5051ed21cb93d978cf2f45","impliedFormat":1},{"version":"ee1ee365d88c4c6c0c0a5a5701d66ebc27ccd0bcfcfaa482c6e2e7fe7b98edf7","affectsGlobalScope":true,"impliedFormat":1},{"version":"4d7da7075068195f8f127f41c61e304cdca5aafb1be2d0f4fb67c6b4c3e98d50","affectsGlobalScope":true,"impliedFormat":1},{"version":"a4bdde4e601e9554a844e1e0d0ccfa05e183ef9d82ab3ac25f17c1709033d360","impliedFormat":1},{"version":"ad23fd126ff06e72728dd7bfc84326a8ca8cec2b9d2dac0193d42a777df0e7d8","impliedFormat":1},{"version":"9dd9f50652a176469e85fb65aa081d2e7eb807e2c476f378233de4f1f6604962","impliedFormat":1},{"version":"93bd413918fa921c8729cef45302b24d8b6c7855d72d5bf82d3972595ae8dcbf","impliedFormat":1},{"version":"4ff41188773cbf465807dd2f7059c7494cbee5115608efc297383832a1150c43","impliedFormat":1},{"version":"dccdf1677e531e33f8ac961a68bc537418c9a414797c1ea7e91307501cdc3f5e","impliedFormat":1},{"version":"7edec695cdb707c7146ac34c44ca364469c7ea504344b3206c686e79f61b61a2","affectsGlobalScope":true,"impliedFormat":1},{"version":"d206b4baf4ddcc15d9d69a9a2f4999a72a2c6adeaa8af20fa7a9960816287555","impliedFormat":1},{"version":"93f437e1398a4f06a984f441f7fa7a9f0535c04399619b5c22e0b87bdee182cb","impliedFormat":1},{"version":"afbe24ab0d74694372baa632ecb28bb375be53f3be53f9b07ecd7fc994907de5","impliedFormat":1},{"version":"70731d10d5311bd4cf710ef7f6539b62660f4b0bfdbb3f9fbe1d25fe6366a7fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"a20f1e119615bf7632729fd89b6c0b5ffdc2df3b512d6304146294528e3ebe19","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e043a1bc8fbf2a255bccf9bf27e0f1caf916c3b0518ea34aa72357c0afd42ec","impliedFormat":1},{"version":"137c2894e8f3e9672d401cc0a305dc7b1db7c69511cf6d3970fb53302f9eae09","impliedFormat":1},{"version":"3bc2f1e2c95c04048212c569ed38e338873f6a8593930cf5a7ef24ffb38fc3b6","impliedFormat":1},{"version":"8145e07aad6da5f23f2fcd8c8e4c5c13fb26ee986a79d03b0829b8fce152d8b2","impliedFormat":1},{"version":"f9d9d753d430ed050dc1bf2667a1bab711ccbb1c1507183d794cc195a5b085cc","impliedFormat":1},{"version":"9eece5e586312581ccd106d4853e861aaaa1a39f8e3ea672b8c3847eedd12f6e","impliedFormat":1},{"version":"235bfb54b4869c26f7e98e3d1f68dbfc85acf4cf5c38a4444a006fbf74a8a43d","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","impliedFormat":1},{"version":"bb715efb4857eb94539eafb420352105a0cff40746837c5140bf6b035dd220ba","affectsGlobalScope":true,"impliedFormat":1},{"version":"1851a3b4db78664f83901bb9cac9e45e03a37bb5933cc5bf37e10bb7e91ab4eb","impliedFormat":1},{"version":"fdedf82878e4c744bc2a1c1e802ae407d63474da51f14a54babe039018e53d8f","affectsGlobalScope":true,"impliedFormat":1},{"version":"08353b04a3501d84fc8d7b49de99f6c1cc26026e6d9d697a18315f3bfe92ed03","affectsGlobalScope":true,"impliedFormat":1},{"version":"578d8bb6dcb2a1c03c4c3f8eb71abc9677e1a5c788b7f24848e3138ce17f3400","impliedFormat":1},{"version":"4f029899f9bae07e225c43aef893590541b2b43267383bf5e32e3a884d219ed5","impliedFormat":1},{"version":"ae56f65caf3be91108707bd8dfbccc2a57a91feb5daabf7165a06a945545ed26","impliedFormat":1},{"version":"a136d5de521da20f31631a0a96bf712370779d1c05b7015d7019a9b2a0446ca9","impliedFormat":1},{"version":"5b566927cad2ed2139655d55d690ffa87df378b956e7fe1c96024c4d9f75c4cf","affectsGlobalScope":true,"impliedFormat":1},{"version":"bce947017cb7a2deebcc4f5ba04cead891ce6ad1602a4438ae45ed9aa1f39104","affectsGlobalScope":true,"impliedFormat":1},{"version":"efeedd8bbc5c0d53e760d8b120a010470722982e6ae14de8d1bcff66ebc2ae71","impliedFormat":1},{"version":"e2c72c065a36bc9ab2a00ac6a6f51e71501619a72c0609defd304d46610487a4","impliedFormat":1},{"version":"d91a7d8b5655c42986f1bdfe2105c4408f472831c8f20cf11a8c3345b6b56c8c","impliedFormat":1},{"version":"616075a6ac578cf5a013ee12964188b4412823796ce0b202c6f1d2e4ca8480d7","affectsGlobalScope":true,"impliedFormat":1},{"version":"e8a979b8af001c9fc2e774e7809d233c8ca955a28756f52ee5dee88ccb0611d2","impliedFormat":1},{"version":"cac793cc47c29e26e4ac3601dcb00b4435ebed26203485790e44f2ad8b6ad847","impliedFormat":1},{"version":"211440ce81e87b3491cdf07155881344b0a61566df6e749acff0be7e8b9d1a07","impliedFormat":1},{"version":"5d9a0b6e6be8dbb259f64037bce02f34692e8c1519f5cd5d467d7fa4490dced4","impliedFormat":1},{"version":"880da0e0f3ebca42f9bd1bc2d3e5e7df33f2619d85f18ee0ed4bd16d1800bc32","impliedFormat":1},{"version":"45e2f08258e671e67a177bd9057e785956c23b2542308f9559db037fe1114105","impliedFormat":1},{"version":"da51964a650a3b8d775267a55e8a590b1eb6bb605cc3f6d10830370d77135557","impliedFormat":1},{"version":"c59ab0fda36f7cdc43ef1102659954735c80c6fb721ecc2bee0019db838d3d85","impliedFormat":1},{"version":"deeaf7b68c688b0a700bb8f3f175683263c8bb3a8d4932fc44d95d56402f4fca","impliedFormat":1},{"version":"4deacd1de0cc7b1ec1d7b97e1910a809b6e4742e9b3f62e70b0f8e5c60667058","impliedFormat":1},{"version":"132aac02cd3d0c950769ea248072647dfe8fbfb4441974fba85165ed700a872f","impliedFormat":1},{"version":"41e1718c5738cd9261acc61439f2156ed3b8a3267de9805e55b3cf7d839f5063","impliedFormat":1},{"version":"4e20f9be439bf149c8f336a7d9efb1dcc785a29d8cbb73efa279f8bf883a7058","impliedFormat":1},{"version":"4fc0a98fcbe9b454937ab6fb0427519ffa0ace8eaa7f9daf3372f0ca0093ffcd","impliedFormat":99},{"version":"1d97ef8906b21669bb4600a3b9c9a670172142ab854ef7f93ee26f39f12d10e6","impliedFormat":99},{"version":"da77aa3d854b204e47ef742c4ecd71cd0b020f802e13b6a7e719367e8b9ccd18","impliedFormat":99},{"version":"e67f962c7c3216ba02cc4563ff44063b36135e0fcdf92b11b0578228f6a007e4","impliedFormat":99},{"version":"908217c4f2244ec402b73533ebfcc46d6dcd34fc1c807ff403d7f98702abb3bc","impliedFormat":1},{"version":"201ced2ca97d71fe47afdaebc656c2fa63ef2784256e4dfc9eb83930f7aac2c2","impliedFormat":1},{"version":"d8b8a5a6bf623239d5374ad4a7ff6f3b195ab5ee61293f59f1957e90d2a22809","impliedFormat":1},{"version":"35d283eca7dc0a0c7b099f5fbbf0678b87f3d837572cd5e539ba297ad9837e68","impliedFormat":1},{"version":"1c8384a195a2d931cf6e2b8f656acf558ca649a3f74922d86b95889f49a7f7c5","impliedFormat":1},{"version":"26ec2c615ee349154b9cdb180a9bbd2d3e28a2646242e936cf79c1a44847ade7","impliedFormat":1},{"version":"56471ec726edfb50d4bc87b83e52f97de74f5d385db3db214f6e3ec2d02a3fb6","impliedFormat":99},{"version":"65f1948d68440bf5caee2365014713e739945e04927fbb56c84549736b69ac53","impliedFormat":99},{"version":"fb88fab4d4b6d826ffb174c9829440655fd56a85596982675d47181b425869ad","impliedFormat":99},{"version":"e91edb63ea25dafbd0234231e1bd34948a43ea337b3de8eca1ed15f49620deeb","impliedFormat":99},{"version":"54cb16297ded2864aa5a752ac9ff205a85931492c3bdbe8a2ec9e584acb10048","impliedFormat":99},{"version":"a623fb440e818cb1fb00c930df49fdbd0d4ff64f067f7df6d36bd5f23cc2799b","signature":"7d19f3777d50f0860736b2bb7e70c547164559312ded6d8b5af8b9618e1b2b90","impliedFormat":99},{"version":"dca08d0fcf13a1f796b10e8cc030ccffe2cdb64fff36f3492bfe3af22902b328","signature":"bac5a7837c09b9817f57e3b46b1a206fd34f69e79dbd1a0040f85bb4c201e170","impliedFormat":99},{"version":"59675cd845eb32898bf53e8885260397cf22e6747850942897fdafad129c6201","signature":"b49941607b5a324776efa9bd3f548e75dc4285f9b6c2a23735875f6fa0d62a8d","impliedFormat":99},{"version":"ad739669b8527bacfaf8493ea4552216843afd0f9a2e583dec20ee7f4e2ead6e","impliedFormat":99},{"version":"dc3b172ee27054dbcedcf5007b78c256021db936f6313a9ce9a3ecbb503fd646","impliedFormat":1},{"version":"68cc8d6fcc2f270d7108f02f3ebc59480a54615be3e09a47e14527f349e9d53e","impliedFormat":1},{"version":"3eb11dbf3489064a47a2e1cf9d261b1f100ef0b3b50ffca6c44dd99d6dd81ac1","impliedFormat":1},{"version":"785b9d575b49124ce01b46f5b9402157c7611e6532effa562ac6aebec0074dfc","impliedFormat":1},{"version":"ba24033c20bafd820c54353946afb1fbb2b1ff10d881dff3e9b4280646140113","impliedFormat":1},{"version":"3b43f7224c99344262753af8fc1bb66cf0dc36fb15de92a190af88502c6256f6","impliedFormat":1},{"version":"89121c1bf2990f5219bfd802a3e7fc557de447c62058d6af68d6b6348d64499a","impliedFormat":1},{"version":"79b4369233a12c6fa4a07301ecb7085802c98f3a77cf9ab97eee27e1656f82e6","impliedFormat":1},{"version":"be00321090ed100e3bd1e566c0408004137e73feb19d6380eba57d68519ff6c5","impliedFormat":1},{"version":"f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","impliedFormat":1},{"version":"bb4ed283cfb3db7ec1d4bb79c37f5e96d39b340f1f4de995c4b0b836c8d5fa05","impliedFormat":1},{"version":"169cc96316cacf8b489aaab4ac6bcef7b33e8779a8902bce57c737b4aa372d16","impliedFormat":1},{"version":"fbca5ffaebf282ec3cdac47b0d1d4a138a8b0bb32105251a38acb235087d3318","impliedFormat":1},{"version":"c67a7b7eec0175ea53343429d32897fcad406c663ba4b775eab8be8164bff91c","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b5402ae709d042c3530ed3506c135a967159f42aed3221267e70c5b7240b577","impliedFormat":1},{"version":"e729ea1477029d2c5359a3e98b3a2f3d27c795a8bb57a0846b1e962a80f0febe","impliedFormat":1},{"version":"22293bd6fa12747929f8dfca3ec1684a3fe08638aa18023dd286ab337e88a592","impliedFormat":1},{"version":"327fddc7dd391f1e62262dafe41fc9cabedb4a5758a5cfce979cebab1456abb8","impliedFormat":1},{"version":"ec596fa2357df1b2702e42bcba645422eb727ab5c81136f78590f21a100286e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"08d95e4bdb24b6e9215c10437a848b54148bc028e00c8809b5c2bb22d2411090","impliedFormat":1},{"version":"a016d2f6c0a2c15069ec69661ad37c86a450deb629ce96a592f15f01d3a5746e","impliedFormat":1},{"version":"cf3d384d082b933d987c4e2fe7bfb8710adfd9dc8155190056ed6695a25a559e","impliedFormat":1},{"version":"9871b7ee672bc16c78833bdab3052615834b08375cb144e4d2cba74473f4a589","impliedFormat":1},{"version":"c863198dae89420f3c552b5a03da6ed6d0acfa3807a64772b895db624b0de707","impliedFormat":1},{"version":"8b03a5e327d7db67112ebbc93b4f744133eda2c1743dbb0a990c61a8007823ef","impliedFormat":1},{"version":"86c73f2ee1752bac8eeeece234fd05dfcf0637a4fbd8032e4f5f43102faa8eec","impliedFormat":1},{"version":"42fad1f540271e35ca37cecda12c4ce2eef27f0f5cf0f8dd761d723c744d3159","impliedFormat":1},{"version":"ff3743a5de32bee10906aff63d1de726f6a7fd6ee2da4b8229054dfa69de2c34","impliedFormat":1},{"version":"83acd370f7f84f203e71ebba33ba61b7f1291ca027d7f9a662c6307d74e4ac22","impliedFormat":1},{"version":"1445cec898f90bdd18b2949b9590b3c012f5b7e1804e6e329fb0fe053946d5ec","impliedFormat":1},{"version":"0e5318ec2275d8da858b541920d9306650ae6ac8012f0e872fe66eb50321a669","impliedFormat":1},{"version":"cf530297c3fb3a92ec9591dd4fa229d58b5981e45fe6702a0bd2bea53a5e59be","impliedFormat":1},{"version":"c1f6f7d08d42148ddfe164d36d7aba91f467dbcb3caa715966ff95f55048b3a4","impliedFormat":1},{"version":"f4e9bf9103191ef3b3612d3ec0044ca4044ca5be27711fe648ada06fad4bcc85","impliedFormat":1},{"version":"0c1ee27b8f6a00097c2d6d91a21ee4d096ab52c1e28350f6362542b55380059a","impliedFormat":1},{"version":"7677d5b0db9e020d3017720f853ba18f415219fb3a9597343b1b1012cfd699f7","impliedFormat":1},{"version":"bc1c6bc119c1784b1a2be6d9c47addec0d83ef0d52c8fbe1f14a51b4dfffc675","impliedFormat":1},{"version":"52cf2ce99c2a23de70225e252e9822a22b4e0adb82643ab0b710858810e00bf1","impliedFormat":1},{"version":"770625067bb27a20b9826255a8d47b6b5b0a2d3dfcbd21f89904c731f671ba77","impliedFormat":1},{"version":"d1ed6765f4d7906a05968fb5cd6d1db8afa14dbe512a4884e8ea5c0f5e142c80","impliedFormat":1},{"version":"799c0f1b07c092626cf1efd71d459997635911bb5f7fc1196efe449bba87e965","impliedFormat":1},{"version":"2a184e4462b9914a30b1b5c41cf80c6d3428f17b20d3afb711fff3f0644001fd","impliedFormat":1},{"version":"9eabde32a3aa5d80de34af2c2206cdc3ee094c6504a8d0c2d6d20c7c179503cc","impliedFormat":1},{"version":"397c8051b6cfcb48aa22656f0faca2553c5f56187262135162ee79d2b2f6c966","impliedFormat":1},{"version":"a8ead142e0c87dcd5dc130eba1f8eeed506b08952d905c47621dc2f583b1bff9","impliedFormat":1},{"version":"a02f10ea5f73130efca046429254a4e3c06b5475baecc8f7b99a0014731be8b3","impliedFormat":1},{"version":"c2576a4083232b0e2d9bd06875dd43d371dee2e090325a9eac0133fd5650c1cb","impliedFormat":1},{"version":"4c9a0564bb317349de6a24eb4efea8bb79898fa72ad63a1809165f5bd42970dd","impliedFormat":1},{"version":"f40ac11d8859092d20f953aae14ba967282c3bb056431a37fced1866ec7a2681","impliedFormat":1},{"version":"cc11e9e79d4746cc59e0e17473a59d6f104692fd0eeea1bdb2e206eabed83b03","impliedFormat":1},{"version":"b444a410d34fb5e98aa5ee2b381362044f4884652e8bc8a11c8fe14bbd85518e","impliedFormat":1},{"version":"c35808c1f5e16d2c571aa65067e3cb95afeff843b259ecfa2fc107a9519b5392","impliedFormat":1},{"version":"14d5dc055143e941c8743c6a21fa459f961cbc3deedf1bfe47b11587ca4b3ef5","impliedFormat":1},{"version":"a3ad4e1fc542751005267d50a6298e6765928c0c3a8dce1572f2ba6ca518661c","impliedFormat":1},{"version":"f237e7c97a3a89f4591afd49ecb3bd8d14f51a1c4adc8fcae3430febedff5eb6","impliedFormat":1},{"version":"3ffdfbec93b7aed71082af62b8c3e0cc71261cc68d796665faa1e91604fbae8f","impliedFormat":1},{"version":"662201f943ed45b1ad600d03a90dffe20841e725203ced8b708c91fcd7f9379a","impliedFormat":1},{"version":"c9ef74c64ed051ea5b958621e7fb853fe3b56e8787c1587aefc6ea988b3c7e79","impliedFormat":1},{"version":"2462ccfac5f3375794b861abaa81da380f1bbd9401de59ffa43119a0b644253d","impliedFormat":1},{"version":"34baf65cfee92f110d6653322e2120c2d368ee64b3c7981dff08ed105c4f19b0","impliedFormat":1},{"version":"7d8ddf0f021c53099e34ee831a06c394d50371816caa98684812f089b4c6b3d4","impliedFormat":1},{"version":"7d2a0ba1297be385a89b5515b88cd31b4a1eeef5236f710166dc1b36b1741e1b","impliedFormat":1},{"version":"5adc55aaebfb20914e274a1202b5c78638260364997d724dec52d7b2704b461c","impliedFormat":1},{"version":"58b63c0f3bfac04d639c31a9fe094089c0bdcc8cda7bc35f1f23828677aa7926","impliedFormat":1},{"version":"d51d662a37aa1f1b97ed4caf4f1c25832047b9bfffcc707b53aedd07cd245303","impliedFormat":1},{"version":"b9d02ff98f8c5da182f415c7152b0da746346b0a15e6a93d772eff0c72165b9d","impliedFormat":1},{"version":"bae8d023ef6b23df7da26f51cea44321f95817c190342a36882e93b80d07a960","impliedFormat":1},{"version":"26a770cec4bd2e7dbba95c6e536390fffe83c6268b78974a93727903b515c4e7","impliedFormat":1}],"root":[[186,189]],"options":{"allowJs":false,"checkJs":false,"composite":true,"declaration":true,"declarationMap":true,"esModuleInterop":true,"inlineSourceMap":false,"module":199,"outDir":"./esm","rootDir":"../src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":9,"useUnknownInCatchVariables":false},"referencedMap":[[170,1],[166,2],[165,3],[167,2],[168,2],[169,4],[190,5],[192,6],[193,5],[194,7],[162,8],[195,9],[197,10],[198,11],[199,5],[160,12],[161,5],[200,9],[201,5],[202,5],[203,5],[191,5],[204,9],[205,13],[107,14],[108,14],[109,15],[67,16],[110,17],[111,18],[112,19],[62,5],[65,20],[63,5],[64,5],[113,21],[114,22],[115,23],[116,24],[117,25],[118,26],[119,26],[121,27],[120,28],[122,29],[123,30],[124,31],[106,32],[66,5],[125,33],[126,34],[127,35],[159,36],[128,37],[129,38],[130,39],[131,40],[132,41],[133,42],[134,43],[135,44],[136,45],[137,46],[138,46],[139,47],[140,5],[141,48],[143,49],[142,50],[144,51],[145,52],[146,53],[147,54],[148,55],[149,56],[150,57],[151,58],[152,59],[153,60],[154,61],[155,62],[156,63],[157,64],[158,65],[206,5],[207,5],[209,66],[210,5],[208,5],[235,67],[236,68],[211,69],[214,69],[233,67],[234,67],[224,67],[223,70],[221,67],[216,67],[229,67],[227,67],[231,67],[215,67],[228,67],[232,67],[217,67],[218,67],[230,67],[212,67],[219,67],[220,67],[222,67],[226,67],[237,71],[225,67],[213,67],[250,72],[249,5],[244,71],[246,73],[245,71],[238,71],[239,71],[241,71],[243,71],[247,73],[248,73],[240,73],[242,73],[252,74],[251,5],[254,75],[175,5],[196,5],[255,76],[256,5],[257,77],[68,5],[164,78],[176,79],[253,80],[163,81],[60,5],[61,5],[12,5],[11,5],[2,5],[13,5],[14,5],[15,5],[16,5],[17,5],[18,5],[19,5],[20,5],[3,5],[21,5],[22,5],[4,5],[23,5],[27,5],[24,5],[25,5],[26,5],[28,5],[29,5],[30,5],[5,5],[31,5],[32,5],[33,5],[34,5],[6,5],[38,5],[35,5],[36,5],[37,5],[39,5],[7,5],[40,5],[45,5],[46,5],[41,5],[42,5],[43,5],[44,5],[8,5],[50,5],[47,5],[48,5],[49,5],[51,5],[9,5],[52,5],[53,5],[54,5],[56,5],[55,5],[57,5],[58,5],[10,5],[59,5],[1,5],[84,82],[94,83],[83,82],[104,84],[75,85],[74,86],[103,9],[97,87],[102,88],[77,89],[91,90],[76,91],[100,92],[72,93],[71,9],[101,94],[73,95],[78,96],[79,5],[82,96],[69,5],[105,97],[95,98],[86,99],[87,100],[89,101],[85,102],[88,103],[98,9],[80,104],[81,105],[90,106],[70,107],[93,98],[92,96],[96,5],[99,108],[177,109],[180,110],[178,9],[179,111],[185,112],[184,5],[173,5],[182,5],[181,113],[171,5],[174,5],[183,5],[172,114],[189,115],[187,5],[186,116],[188,117]],"latestChangedDtsFile":"./esm/index.d.ts","version":"5.9.3"}
|
|
1
|
+
{"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/typescript/lib/lib.es2023.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2023.array.d.ts","../../../node_modules/typescript/lib/lib.es2023.collection.d.ts","../../../node_modules/typescript/lib/lib.es2023.intl.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/@types/node/compatibility/disposable.d.ts","../../../node_modules/@types/node/compatibility/indexable.d.ts","../../../node_modules/@types/node/compatibility/iterators.d.ts","../../../node_modules/@types/node/compatibility/index.d.ts","../../../node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/buffer/index.d.ts","../../../node_modules/undici-types/header.d.ts","../../../node_modules/undici-types/readable.d.ts","../../../node_modules/undici-types/file.d.ts","../../../node_modules/undici-types/fetch.d.ts","../../../node_modules/undici-types/formdata.d.ts","../../../node_modules/undici-types/connector.d.ts","../../../node_modules/undici-types/client.d.ts","../../../node_modules/undici-types/errors.d.ts","../../../node_modules/undici-types/dispatcher.d.ts","../../../node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/undici-types/global-origin.d.ts","../../../node_modules/undici-types/pool-stats.d.ts","../../../node_modules/undici-types/pool.d.ts","../../../node_modules/undici-types/handlers.d.ts","../../../node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/undici-types/agent.d.ts","../../../node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/undici-types/mock-agent.d.ts","../../../node_modules/undici-types/mock-client.d.ts","../../../node_modules/undici-types/mock-pool.d.ts","../../../node_modules/undici-types/mock-errors.d.ts","../../../node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/undici-types/retry-handler.d.ts","../../../node_modules/undici-types/retry-agent.d.ts","../../../node_modules/undici-types/api.d.ts","../../../node_modules/undici-types/interceptors.d.ts","../../../node_modules/undici-types/util.d.ts","../../../node_modules/undici-types/cookies.d.ts","../../../node_modules/undici-types/patch.d.ts","../../../node_modules/undici-types/websocket.d.ts","../../../node_modules/undici-types/eventsource.d.ts","../../../node_modules/undici-types/filereader.d.ts","../../../node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/undici-types/content-type.d.ts","../../../node_modules/undici-types/cache.d.ts","../../../node_modules/undici-types/index.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/dns/promises.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/dom-events.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/readline/promises.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/sea.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/stream/promises.d.ts","../../../node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/@types/node/stream/web.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/test.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/timers/promises.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/index.d.ts","../../../node_modules/@types/jsonfile/index.d.ts","../../../node_modules/@types/jsonfile/utils.d.ts","../../../node_modules/@types/fs-extra/index.d.ts","../../../node_modules/promisify-child-process/index.d.ts","../../../node_modules/execa/index.d.ts","../../../node_modules/@alcalzone/pak/build/lib/package-managers/package-manager.d.ts","../../../node_modules/@alcalzone/pak/build/lib/package-managers/npm/index.d.ts","../../../node_modules/@alcalzone/pak/build/lib/package-managers/yarn-berry/index.d.ts","../../../node_modules/@alcalzone/pak/build/lib/package-managers/yarn-classic/index.d.ts","../../../node_modules/@alcalzone/pak/build/lib/pak.d.ts","../../../node_modules/@alcalzone/pak/build/index.d.ts","../../common-db/build/esm/lib/common/maybeCallback.d.ts","../../common-db/build/esm/lib/common/tools.d.ts","../../common-db/build/esm/lib/common/exitCodes.d.ts","../../common-db/build/esm/lib/common/password.d.ts","../../../node_modules/@types/triple-beam/index.d.ts","../../../node_modules/logform/index.d.ts","../../../node_modules/winston-transport/index.d.ts","../../../node_modules/winston/lib/winston/config/index.d.ts","../../../node_modules/winston/lib/winston/transports/index.d.ts","../../../node_modules/winston/index.d.ts","../../common-db/build/esm/lib/common/logger.d.ts","../../common-db/build/esm/lib/common/interview.d.ts","../../common-db/build/esm/lib/common/session.d.ts","../../common-db/build/esm/lib/common/constants.d.ts","../../common-db/build/esm/index.d.ts","../src/lib/inMemFileDB.ts","../src/lib/constants.ts","../src/lib/redisHandler.ts","../src/index.ts","../../../node_modules/@types/argparse/index.d.ts","../../../node_modules/@types/ms/index.d.ts","../../../node_modules/@types/debug/index.d.ts","../../../node_modules/@types/estree/index.d.ts","../../../node_modules/@types/event-stream/index.d.ts","../../../node_modules/@types/glossy/index.d.ts","../../../node_modules/@types/unist/index.d.ts","../../../node_modules/@types/hast/index.d.ts","../../../node_modules/@types/ioredis/index.d.ts","../../../node_modules/@types/json-schema/index.d.ts","../../../node_modules/@types/jsonwebtoken/index.d.ts","../../../node_modules/@types/mime-types/index.d.ts","../../../node_modules/@types/minimist/index.d.ts","../../../node_modules/@types/mocha/index.d.ts","../../../node_modules/@types/node-forge/index.d.ts","../../../node_modules/@types/node-schedule/index.d.ts","../../../node_modules/@types/normalize-package-data/index.d.ts","../../../node_modules/@types/pidusage/index.d.ts","../../../node_modules/@types/revalidator/index.d.ts","../../../node_modules/@types/prompt/index.d.ts","../../../node_modules/@types/readline-sync/index.d.ts","../../../node_modules/@types/semver/classes/semver.d.ts","../../../node_modules/@types/semver/functions/parse.d.ts","../../../node_modules/@types/semver/functions/valid.d.ts","../../../node_modules/@types/semver/functions/clean.d.ts","../../../node_modules/@types/semver/functions/inc.d.ts","../../../node_modules/@types/semver/functions/diff.d.ts","../../../node_modules/@types/semver/functions/major.d.ts","../../../node_modules/@types/semver/functions/minor.d.ts","../../../node_modules/@types/semver/functions/patch.d.ts","../../../node_modules/@types/semver/functions/prerelease.d.ts","../../../node_modules/@types/semver/functions/compare.d.ts","../../../node_modules/@types/semver/functions/rcompare.d.ts","../../../node_modules/@types/semver/functions/compare-loose.d.ts","../../../node_modules/@types/semver/functions/compare-build.d.ts","../../../node_modules/@types/semver/functions/sort.d.ts","../../../node_modules/@types/semver/functions/rsort.d.ts","../../../node_modules/@types/semver/functions/gt.d.ts","../../../node_modules/@types/semver/functions/lt.d.ts","../../../node_modules/@types/semver/functions/eq.d.ts","../../../node_modules/@types/semver/functions/neq.d.ts","../../../node_modules/@types/semver/functions/gte.d.ts","../../../node_modules/@types/semver/functions/lte.d.ts","../../../node_modules/@types/semver/functions/cmp.d.ts","../../../node_modules/@types/semver/functions/coerce.d.ts","../../../node_modules/@types/semver/classes/comparator.d.ts","../../../node_modules/@types/semver/classes/range.d.ts","../../../node_modules/@types/semver/functions/satisfies.d.ts","../../../node_modules/@types/semver/ranges/max-satisfying.d.ts","../../../node_modules/@types/semver/ranges/min-satisfying.d.ts","../../../node_modules/@types/semver/ranges/to-comparators.d.ts","../../../node_modules/@types/semver/ranges/min-version.d.ts","../../../node_modules/@types/semver/ranges/valid.d.ts","../../../node_modules/@types/semver/ranges/outside.d.ts","../../../node_modules/@types/semver/ranges/gtr.d.ts","../../../node_modules/@types/semver/ranges/ltr.d.ts","../../../node_modules/@types/semver/ranges/intersects.d.ts","../../../node_modules/@types/semver/ranges/simplify.d.ts","../../../node_modules/@types/semver/ranges/subset.d.ts","../../../node_modules/@types/semver/internals/identifiers.d.ts","../../../node_modules/@types/semver/index.d.ts","../../../node_modules/@types/sinonjs__fake-timers/index.d.ts","../../../node_modules/@types/sinon/index.d.ts","../../../node_modules/minipass/index.d.ts","../../../node_modules/@types/tar/index.d.ts","../../../node_modules/@types/winston-syslog/index.d.ts","../../../node_modules/@types/yargs-parser/index.d.ts","../../../node_modules/@types/yargs/index.d.ts"],"fileIdsList":[[67,110,165,169],[67,110,165],[67,110,141,159,164],[67,110,165,166,167,168],[67,110],[67,110,191],[67,110,141,159],[67,110,123,159,160,161],[67,110,159],[67,110,196],[67,110,122,141,149,159],[67,110,123,152,159],[67,110,122,159],[67,107,110],[67,109,110],[110],[67,110,115,144],[67,110,111,116,122,123,130,141,152],[67,110,111,112,122,130],[62,63,64,67,110],[67,110,113,153],[67,110,114,115,123,131],[67,110,115,141,149],[67,110,116,118,122,130],[67,109,110,117],[67,110,118,119],[67,110,122],[67,110,120,122],[67,109,110,122],[67,110,122,123,124,141,152],[67,110,122,123,124,137,141,144],[67,105,110,157],[67,110,118,122,125,130,141,152],[67,110,122,123,125,126,130,141,149,152],[67,110,125,127,141,149,152],[65,66,67,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158],[67,110,122,128],[67,110,129,152,157],[67,110,118,122,130,141],[67,110,131],[67,110,132],[67,109,110,133],[67,107,108,109,110,111,112,113,114,115,116,117,118,119,120,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158],[67,110,135],[67,110,136],[67,110,122,137,138],[67,110,137,139,153,155],[67,110,122,141,142,143,144],[67,110,141,143],[67,110,141,142],[67,110,144],[67,110,145],[67,107,110,141],[67,110,122,147,148],[67,110,147,148],[67,110,115,130,141,149],[67,110,150],[67,110,130,151],[67,110,125,136,152],[67,110,115,153],[67,110,141,154],[67,110,129,155],[67,110,156],[67,110,115,122,124,133,141,152,155,157],[67,110,141,158],[67,110,122,151,159,208],[67,110,211,250],[67,110,211,235,250],[67,110,250],[67,110,211],[67,110,211,236,250],[67,110,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249],[67,110,236,250],[67,110,251],[67,110,123,141,158,159,253],[67,110,116,130,159,177,195],[67,110,256],[67,110,111,141,159],[67,110,175],[67,110,122,141,159],[67,110,111],[67,77,81,110,152],[67,77,110,141,152],[67,72,110],[67,74,77,110,149,152],[67,110,130,149],[67,72,110,159],[67,74,77,110,130,152],[67,69,70,73,76,110,122,141,152],[67,77,84,110],[67,69,75,110],[67,77,98,99,110],[67,73,77,110,144,152,159],[67,98,110,159],[67,71,72,110,159],[67,77,110],[67,71,72,73,74,75,76,77,78,79,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,104,110],[67,77,92,110],[67,77,84,85,110],[67,75,77,85,86,110],[67,76,110],[67,69,72,77,110],[67,77,81,85,86,110],[67,81,110],[67,75,77,80,110,152],[67,69,74,77,84,110],[67,110,141],[67,72,77,98,110,157,159],[67,110,141,159,176],[67,110,141,159,176,177,178,179],[67,110,125,159,177],[67,110,172,173,174,181,182,183,184],[67,110,180],[67,110,111,163,170,171],[67,110,185,186,188],[67,110,132,158,162,172,185],[67,110,122,130,172,187]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"df83c2a6c73228b625b0beb6669c7ee2a09c914637e2d35170723ad49c0f5cd4","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"70521b6ab0dcba37539e5303104f29b721bfb2940b2776da4cc818c07e1fefc1","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"a79e62f1e20467e11a904399b8b18b18c0c6eea6b50c1168bf215356d5bebfaf","affectsGlobalScope":true,"impliedFormat":1},{"version":"0fd06258805d26c72f5997e07a23155d322d5f05387adb3744a791fe6a0b042d","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"24bd580b5743dc56402c440dc7f9a4f5d592ad7a419f25414d37a7bfe11e342b","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"6bdc71028db658243775263e93a7db2fd2abfce3ca569c3cca5aee6ed5eb186d","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"4d2b0eb911816f66abe4970898f97a2cfc902bcd743cbfa5017fad79f7ef90d8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","impliedFormat":1},{"version":"24b8685c62562f5d98615c5a0c1d05f297cf5065f15246edfe99e81ec4c0e011","impliedFormat":1},{"version":"93507c745e8f29090efb99399c3f77bec07db17acd75634249dc92f961573387","impliedFormat":1},{"version":"339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"ca6d304b929748ea15c33f28c1f159df18a94470b424ab78c52d68d40a41e1e9","affectsGlobalScope":true,"impliedFormat":1},{"version":"a72ffc815104fb5c075106ebca459b2d55d07862a773768fce89efc621b3964b","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"3d77c73be94570813f8cadd1f05ebc3dc5e2e4fdefe4d340ca20cd018724ee36","impliedFormat":1},{"version":"d674383111e06b6741c4ad2db962131b5b0fa4d0294b998566c635e86195a453","affectsGlobalScope":true,"impliedFormat":1},{"version":"f3e58c4c18a031cbb17abec7a4ad0bd5ae9fc70c1f4ba1e7fb921ad87c504aca","impliedFormat":1},{"version":"a3e8bafb2af8e850c644f4be7f5156cf7d23b7bfdc3b786bd4d10ed40329649c","impliedFormat":1},{"version":"35ec8b6760fd7138bbf5809b84551e31028fb2ba7b6dc91d95d098bf212ca8b4","affectsGlobalScope":true,"impliedFormat":1},{"version":"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","impliedFormat":1},{"version":"f77d9188e41291acf14f476e931972460a303e1952538f9546e7b370cb8d0d20","affectsGlobalScope":true,"impliedFormat":1},{"version":"b0c0d1d13be149f790a75b381b413490f98558649428bb916fd2d71a3f47a134","impliedFormat":1},{"version":"3c884d9d9ec454bdf0d5a0b8465bf8297d2caa4d853851d92cc417ac6f30b969","impliedFormat":1},{"version":"5a369483ac4cfbdf0331c248deeb36140e6907db5e1daed241546b4a2055f82c","impliedFormat":1},{"version":"e8f5b5cc36615c17d330eaf8eebbc0d6bdd942c25991f96ef122f246f4ff722f","impliedFormat":1},{"version":"f0bd7e6d931657b59605c44112eaf8b980ba7f957a5051ed21cb93d978cf2f45","impliedFormat":1},{"version":"ee1ee365d88c4c6c0c0a5a5701d66ebc27ccd0bcfcfaa482c6e2e7fe7b98edf7","affectsGlobalScope":true,"impliedFormat":1},{"version":"4d7da7075068195f8f127f41c61e304cdca5aafb1be2d0f4fb67c6b4c3e98d50","affectsGlobalScope":true,"impliedFormat":1},{"version":"a4bdde4e601e9554a844e1e0d0ccfa05e183ef9d82ab3ac25f17c1709033d360","impliedFormat":1},{"version":"ad23fd126ff06e72728dd7bfc84326a8ca8cec2b9d2dac0193d42a777df0e7d8","impliedFormat":1},{"version":"9dd9f50652a176469e85fb65aa081d2e7eb807e2c476f378233de4f1f6604962","impliedFormat":1},{"version":"93bd413918fa921c8729cef45302b24d8b6c7855d72d5bf82d3972595ae8dcbf","impliedFormat":1},{"version":"4ff41188773cbf465807dd2f7059c7494cbee5115608efc297383832a1150c43","impliedFormat":1},{"version":"dccdf1677e531e33f8ac961a68bc537418c9a414797c1ea7e91307501cdc3f5e","impliedFormat":1},{"version":"7edec695cdb707c7146ac34c44ca364469c7ea504344b3206c686e79f61b61a2","affectsGlobalScope":true,"impliedFormat":1},{"version":"d206b4baf4ddcc15d9d69a9a2f4999a72a2c6adeaa8af20fa7a9960816287555","impliedFormat":1},{"version":"93f437e1398a4f06a984f441f7fa7a9f0535c04399619b5c22e0b87bdee182cb","impliedFormat":1},{"version":"afbe24ab0d74694372baa632ecb28bb375be53f3be53f9b07ecd7fc994907de5","impliedFormat":1},{"version":"70731d10d5311bd4cf710ef7f6539b62660f4b0bfdbb3f9fbe1d25fe6366a7fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"a20f1e119615bf7632729fd89b6c0b5ffdc2df3b512d6304146294528e3ebe19","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e043a1bc8fbf2a255bccf9bf27e0f1caf916c3b0518ea34aa72357c0afd42ec","impliedFormat":1},{"version":"137c2894e8f3e9672d401cc0a305dc7b1db7c69511cf6d3970fb53302f9eae09","impliedFormat":1},{"version":"3bc2f1e2c95c04048212c569ed38e338873f6a8593930cf5a7ef24ffb38fc3b6","impliedFormat":1},{"version":"8145e07aad6da5f23f2fcd8c8e4c5c13fb26ee986a79d03b0829b8fce152d8b2","impliedFormat":1},{"version":"f9d9d753d430ed050dc1bf2667a1bab711ccbb1c1507183d794cc195a5b085cc","impliedFormat":1},{"version":"9eece5e586312581ccd106d4853e861aaaa1a39f8e3ea672b8c3847eedd12f6e","impliedFormat":1},{"version":"235bfb54b4869c26f7e98e3d1f68dbfc85acf4cf5c38a4444a006fbf74a8a43d","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","impliedFormat":1},{"version":"bb715efb4857eb94539eafb420352105a0cff40746837c5140bf6b035dd220ba","affectsGlobalScope":true,"impliedFormat":1},{"version":"1851a3b4db78664f83901bb9cac9e45e03a37bb5933cc5bf37e10bb7e91ab4eb","impliedFormat":1},{"version":"fdedf82878e4c744bc2a1c1e802ae407d63474da51f14a54babe039018e53d8f","affectsGlobalScope":true,"impliedFormat":1},{"version":"08353b04a3501d84fc8d7b49de99f6c1cc26026e6d9d697a18315f3bfe92ed03","affectsGlobalScope":true,"impliedFormat":1},{"version":"578d8bb6dcb2a1c03c4c3f8eb71abc9677e1a5c788b7f24848e3138ce17f3400","impliedFormat":1},{"version":"4f029899f9bae07e225c43aef893590541b2b43267383bf5e32e3a884d219ed5","impliedFormat":1},{"version":"ae56f65caf3be91108707bd8dfbccc2a57a91feb5daabf7165a06a945545ed26","impliedFormat":1},{"version":"a136d5de521da20f31631a0a96bf712370779d1c05b7015d7019a9b2a0446ca9","impliedFormat":1},{"version":"5b566927cad2ed2139655d55d690ffa87df378b956e7fe1c96024c4d9f75c4cf","affectsGlobalScope":true,"impliedFormat":1},{"version":"bce947017cb7a2deebcc4f5ba04cead891ce6ad1602a4438ae45ed9aa1f39104","affectsGlobalScope":true,"impliedFormat":1},{"version":"efeedd8bbc5c0d53e760d8b120a010470722982e6ae14de8d1bcff66ebc2ae71","impliedFormat":1},{"version":"e2c72c065a36bc9ab2a00ac6a6f51e71501619a72c0609defd304d46610487a4","impliedFormat":1},{"version":"d91a7d8b5655c42986f1bdfe2105c4408f472831c8f20cf11a8c3345b6b56c8c","impliedFormat":1},{"version":"616075a6ac578cf5a013ee12964188b4412823796ce0b202c6f1d2e4ca8480d7","affectsGlobalScope":true,"impliedFormat":1},{"version":"e8a979b8af001c9fc2e774e7809d233c8ca955a28756f52ee5dee88ccb0611d2","impliedFormat":1},{"version":"cac793cc47c29e26e4ac3601dcb00b4435ebed26203485790e44f2ad8b6ad847","impliedFormat":1},{"version":"211440ce81e87b3491cdf07155881344b0a61566df6e749acff0be7e8b9d1a07","impliedFormat":1},{"version":"5d9a0b6e6be8dbb259f64037bce02f34692e8c1519f5cd5d467d7fa4490dced4","impliedFormat":1},{"version":"880da0e0f3ebca42f9bd1bc2d3e5e7df33f2619d85f18ee0ed4bd16d1800bc32","impliedFormat":1},{"version":"45e2f08258e671e67a177bd9057e785956c23b2542308f9559db037fe1114105","impliedFormat":1},{"version":"da51964a650a3b8d775267a55e8a590b1eb6bb605cc3f6d10830370d77135557","impliedFormat":1},{"version":"c59ab0fda36f7cdc43ef1102659954735c80c6fb721ecc2bee0019db838d3d85","impliedFormat":1},{"version":"deeaf7b68c688b0a700bb8f3f175683263c8bb3a8d4932fc44d95d56402f4fca","impliedFormat":1},{"version":"4deacd1de0cc7b1ec1d7b97e1910a809b6e4742e9b3f62e70b0f8e5c60667058","impliedFormat":1},{"version":"132aac02cd3d0c950769ea248072647dfe8fbfb4441974fba85165ed700a872f","impliedFormat":1},{"version":"41e1718c5738cd9261acc61439f2156ed3b8a3267de9805e55b3cf7d839f5063","impliedFormat":1},{"version":"4e20f9be439bf149c8f336a7d9efb1dcc785a29d8cbb73efa279f8bf883a7058","impliedFormat":1},{"version":"4fc0a98fcbe9b454937ab6fb0427519ffa0ace8eaa7f9daf3372f0ca0093ffcd","impliedFormat":99},{"version":"4708a0d430b06be3b8a1c2acd9238255ce9604c706c9b168ce9cd7233e843978","impliedFormat":99},{"version":"da77aa3d854b204e47ef742c4ecd71cd0b020f802e13b6a7e719367e8b9ccd18","impliedFormat":99},{"version":"8e2b2b72446a7aa3c2d92384f6c45ac60a959b43c57b44c4d8ef4f8bd0fcd2fe","impliedFormat":99},{"version":"908217c4f2244ec402b73533ebfcc46d6dcd34fc1c807ff403d7f98702abb3bc","impliedFormat":1},{"version":"201ced2ca97d71fe47afdaebc656c2fa63ef2784256e4dfc9eb83930f7aac2c2","impliedFormat":1},{"version":"d8b8a5a6bf623239d5374ad4a7ff6f3b195ab5ee61293f59f1957e90d2a22809","impliedFormat":1},{"version":"35d283eca7dc0a0c7b099f5fbbf0678b87f3d837572cd5e539ba297ad9837e68","impliedFormat":1},{"version":"1c8384a195a2d931cf6e2b8f656acf558ca649a3f74922d86b95889f49a7f7c5","impliedFormat":1},{"version":"26ec2c615ee349154b9cdb180a9bbd2d3e28a2646242e936cf79c1a44847ade7","impliedFormat":1},{"version":"b39f06393a3fd3164a1b5769c90de0bb28166d12a4a2780738e9078a34d08308","impliedFormat":99},{"version":"65f1948d68440bf5caee2365014713e739945e04927fbb56c84549736b69ac53","impliedFormat":99},{"version":"fb88fab4d4b6d826ffb174c9829440655fd56a85596982675d47181b425869ad","impliedFormat":99},{"version":"e91edb63ea25dafbd0234231e1bd34948a43ea337b3de8eca1ed15f49620deeb","impliedFormat":99},{"version":"54cb16297ded2864aa5a752ac9ff205a85931492c3bdbe8a2ec9e584acb10048","impliedFormat":99},{"version":"1fa0a229548665d4a9b45e148054a3a1eb4459a71ef56cfbc7dad17f003385c9","signature":"34b3cc09772ccef6a8b12f45289af936a208ae2388cda77a9bb4b33d50284a88","impliedFormat":99},{"version":"dca08d0fcf13a1f796b10e8cc030ccffe2cdb64fff36f3492bfe3af22902b328","signature":"bac5a7837c09b9817f57e3b46b1a206fd34f69e79dbd1a0040f85bb4c201e170","impliedFormat":99},{"version":"59675cd845eb32898bf53e8885260397cf22e6747850942897fdafad129c6201","signature":"b49941607b5a324776efa9bd3f548e75dc4285f9b6c2a23735875f6fa0d62a8d","impliedFormat":99},{"version":"ad739669b8527bacfaf8493ea4552216843afd0f9a2e583dec20ee7f4e2ead6e","impliedFormat":99},{"version":"dc3b172ee27054dbcedcf5007b78c256021db936f6313a9ce9a3ecbb503fd646","impliedFormat":1},{"version":"68cc8d6fcc2f270d7108f02f3ebc59480a54615be3e09a47e14527f349e9d53e","impliedFormat":1},{"version":"3eb11dbf3489064a47a2e1cf9d261b1f100ef0b3b50ffca6c44dd99d6dd81ac1","impliedFormat":1},{"version":"785b9d575b49124ce01b46f5b9402157c7611e6532effa562ac6aebec0074dfc","impliedFormat":1},{"version":"ba24033c20bafd820c54353946afb1fbb2b1ff10d881dff3e9b4280646140113","impliedFormat":1},{"version":"3b43f7224c99344262753af8fc1bb66cf0dc36fb15de92a190af88502c6256f6","impliedFormat":1},{"version":"89121c1bf2990f5219bfd802a3e7fc557de447c62058d6af68d6b6348d64499a","impliedFormat":1},{"version":"79b4369233a12c6fa4a07301ecb7085802c98f3a77cf9ab97eee27e1656f82e6","impliedFormat":1},{"version":"be00321090ed100e3bd1e566c0408004137e73feb19d6380eba57d68519ff6c5","impliedFormat":1},{"version":"f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","impliedFormat":1},{"version":"bb4ed283cfb3db7ec1d4bb79c37f5e96d39b340f1f4de995c4b0b836c8d5fa05","impliedFormat":1},{"version":"169cc96316cacf8b489aaab4ac6bcef7b33e8779a8902bce57c737b4aa372d16","impliedFormat":1},{"version":"fbca5ffaebf282ec3cdac47b0d1d4a138a8b0bb32105251a38acb235087d3318","impliedFormat":1},{"version":"c67a7b7eec0175ea53343429d32897fcad406c663ba4b775eab8be8164bff91c","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b5402ae709d042c3530ed3506c135a967159f42aed3221267e70c5b7240b577","impliedFormat":1},{"version":"e729ea1477029d2c5359a3e98b3a2f3d27c795a8bb57a0846b1e962a80f0febe","impliedFormat":1},{"version":"22293bd6fa12747929f8dfca3ec1684a3fe08638aa18023dd286ab337e88a592","impliedFormat":1},{"version":"327fddc7dd391f1e62262dafe41fc9cabedb4a5758a5cfce979cebab1456abb8","impliedFormat":1},{"version":"ec596fa2357df1b2702e42bcba645422eb727ab5c81136f78590f21a100286e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"08d95e4bdb24b6e9215c10437a848b54148bc028e00c8809b5c2bb22d2411090","impliedFormat":1},{"version":"a016d2f6c0a2c15069ec69661ad37c86a450deb629ce96a592f15f01d3a5746e","impliedFormat":1},{"version":"cf3d384d082b933d987c4e2fe7bfb8710adfd9dc8155190056ed6695a25a559e","impliedFormat":1},{"version":"9871b7ee672bc16c78833bdab3052615834b08375cb144e4d2cba74473f4a589","impliedFormat":1},{"version":"c863198dae89420f3c552b5a03da6ed6d0acfa3807a64772b895db624b0de707","impliedFormat":1},{"version":"8b03a5e327d7db67112ebbc93b4f744133eda2c1743dbb0a990c61a8007823ef","impliedFormat":1},{"version":"86c73f2ee1752bac8eeeece234fd05dfcf0637a4fbd8032e4f5f43102faa8eec","impliedFormat":1},{"version":"42fad1f540271e35ca37cecda12c4ce2eef27f0f5cf0f8dd761d723c744d3159","impliedFormat":1},{"version":"ff3743a5de32bee10906aff63d1de726f6a7fd6ee2da4b8229054dfa69de2c34","impliedFormat":1},{"version":"83acd370f7f84f203e71ebba33ba61b7f1291ca027d7f9a662c6307d74e4ac22","impliedFormat":1},{"version":"1445cec898f90bdd18b2949b9590b3c012f5b7e1804e6e329fb0fe053946d5ec","impliedFormat":1},{"version":"0e5318ec2275d8da858b541920d9306650ae6ac8012f0e872fe66eb50321a669","impliedFormat":1},{"version":"cf530297c3fb3a92ec9591dd4fa229d58b5981e45fe6702a0bd2bea53a5e59be","impliedFormat":1},{"version":"c1f6f7d08d42148ddfe164d36d7aba91f467dbcb3caa715966ff95f55048b3a4","impliedFormat":1},{"version":"f4e9bf9103191ef3b3612d3ec0044ca4044ca5be27711fe648ada06fad4bcc85","impliedFormat":1},{"version":"0c1ee27b8f6a00097c2d6d91a21ee4d096ab52c1e28350f6362542b55380059a","impliedFormat":1},{"version":"7677d5b0db9e020d3017720f853ba18f415219fb3a9597343b1b1012cfd699f7","impliedFormat":1},{"version":"bc1c6bc119c1784b1a2be6d9c47addec0d83ef0d52c8fbe1f14a51b4dfffc675","impliedFormat":1},{"version":"52cf2ce99c2a23de70225e252e9822a22b4e0adb82643ab0b710858810e00bf1","impliedFormat":1},{"version":"770625067bb27a20b9826255a8d47b6b5b0a2d3dfcbd21f89904c731f671ba77","impliedFormat":1},{"version":"d1ed6765f4d7906a05968fb5cd6d1db8afa14dbe512a4884e8ea5c0f5e142c80","impliedFormat":1},{"version":"799c0f1b07c092626cf1efd71d459997635911bb5f7fc1196efe449bba87e965","impliedFormat":1},{"version":"2a184e4462b9914a30b1b5c41cf80c6d3428f17b20d3afb711fff3f0644001fd","impliedFormat":1},{"version":"9eabde32a3aa5d80de34af2c2206cdc3ee094c6504a8d0c2d6d20c7c179503cc","impliedFormat":1},{"version":"397c8051b6cfcb48aa22656f0faca2553c5f56187262135162ee79d2b2f6c966","impliedFormat":1},{"version":"a8ead142e0c87dcd5dc130eba1f8eeed506b08952d905c47621dc2f583b1bff9","impliedFormat":1},{"version":"a02f10ea5f73130efca046429254a4e3c06b5475baecc8f7b99a0014731be8b3","impliedFormat":1},{"version":"c2576a4083232b0e2d9bd06875dd43d371dee2e090325a9eac0133fd5650c1cb","impliedFormat":1},{"version":"4c9a0564bb317349de6a24eb4efea8bb79898fa72ad63a1809165f5bd42970dd","impliedFormat":1},{"version":"f40ac11d8859092d20f953aae14ba967282c3bb056431a37fced1866ec7a2681","impliedFormat":1},{"version":"cc11e9e79d4746cc59e0e17473a59d6f104692fd0eeea1bdb2e206eabed83b03","impliedFormat":1},{"version":"b444a410d34fb5e98aa5ee2b381362044f4884652e8bc8a11c8fe14bbd85518e","impliedFormat":1},{"version":"c35808c1f5e16d2c571aa65067e3cb95afeff843b259ecfa2fc107a9519b5392","impliedFormat":1},{"version":"14d5dc055143e941c8743c6a21fa459f961cbc3deedf1bfe47b11587ca4b3ef5","impliedFormat":1},{"version":"a3ad4e1fc542751005267d50a6298e6765928c0c3a8dce1572f2ba6ca518661c","impliedFormat":1},{"version":"f237e7c97a3a89f4591afd49ecb3bd8d14f51a1c4adc8fcae3430febedff5eb6","impliedFormat":1},{"version":"3ffdfbec93b7aed71082af62b8c3e0cc71261cc68d796665faa1e91604fbae8f","impliedFormat":1},{"version":"662201f943ed45b1ad600d03a90dffe20841e725203ced8b708c91fcd7f9379a","impliedFormat":1},{"version":"c9ef74c64ed051ea5b958621e7fb853fe3b56e8787c1587aefc6ea988b3c7e79","impliedFormat":1},{"version":"2462ccfac5f3375794b861abaa81da380f1bbd9401de59ffa43119a0b644253d","impliedFormat":1},{"version":"34baf65cfee92f110d6653322e2120c2d368ee64b3c7981dff08ed105c4f19b0","impliedFormat":1},{"version":"7d8ddf0f021c53099e34ee831a06c394d50371816caa98684812f089b4c6b3d4","impliedFormat":1},{"version":"7d2a0ba1297be385a89b5515b88cd31b4a1eeef5236f710166dc1b36b1741e1b","impliedFormat":1},{"version":"5adc55aaebfb20914e274a1202b5c78638260364997d724dec52d7b2704b461c","impliedFormat":1},{"version":"58b63c0f3bfac04d639c31a9fe094089c0bdcc8cda7bc35f1f23828677aa7926","impliedFormat":1},{"version":"d51d662a37aa1f1b97ed4caf4f1c25832047b9bfffcc707b53aedd07cd245303","impliedFormat":1},{"version":"b9d02ff98f8c5da182f415c7152b0da746346b0a15e6a93d772eff0c72165b9d","impliedFormat":1},{"version":"bae8d023ef6b23df7da26f51cea44321f95817c190342a36882e93b80d07a960","impliedFormat":1},{"version":"26a770cec4bd2e7dbba95c6e536390fffe83c6268b78974a93727903b515c4e7","impliedFormat":1}],"root":[[186,189]],"options":{"allowJs":false,"checkJs":false,"composite":true,"declaration":true,"declarationMap":true,"esModuleInterop":true,"inlineSourceMap":false,"module":199,"outDir":"./esm","rootDir":"../src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":9,"useUnknownInCatchVariables":false},"referencedMap":[[170,1],[166,2],[165,3],[167,2],[168,2],[169,4],[190,5],[192,6],[193,5],[194,7],[162,8],[195,9],[197,10],[198,11],[199,5],[160,12],[161,5],[200,9],[201,5],[202,5],[203,5],[191,5],[204,9],[205,13],[107,14],[108,14],[109,15],[67,16],[110,17],[111,18],[112,19],[62,5],[65,20],[63,5],[64,5],[113,21],[114,22],[115,23],[116,24],[117,25],[118,26],[119,26],[121,27],[120,28],[122,29],[123,30],[124,31],[106,32],[66,5],[125,33],[126,34],[127,35],[159,36],[128,37],[129,38],[130,39],[131,40],[132,41],[133,42],[134,43],[135,44],[136,45],[137,46],[138,46],[139,47],[140,5],[141,48],[143,49],[142,50],[144,51],[145,52],[146,53],[147,54],[148,55],[149,56],[150,57],[151,58],[152,59],[153,60],[154,61],[155,62],[156,63],[157,64],[158,65],[206,5],[207,5],[209,66],[210,5],[208,5],[235,67],[236,68],[211,69],[214,69],[233,67],[234,67],[224,67],[223,70],[221,67],[216,67],[229,67],[227,67],[231,67],[215,67],[228,67],[232,67],[217,67],[218,67],[230,67],[212,67],[219,67],[220,67],[222,67],[226,67],[237,71],[225,67],[213,67],[250,72],[249,5],[244,71],[246,73],[245,71],[238,71],[239,71],[241,71],[243,71],[247,73],[248,73],[240,73],[242,73],[252,74],[251,5],[254,75],[175,5],[196,5],[255,76],[256,5],[257,77],[68,5],[164,78],[176,79],[253,80],[163,81],[60,5],[61,5],[12,5],[11,5],[2,5],[13,5],[14,5],[15,5],[16,5],[17,5],[18,5],[19,5],[20,5],[3,5],[21,5],[22,5],[4,5],[23,5],[27,5],[24,5],[25,5],[26,5],[28,5],[29,5],[30,5],[5,5],[31,5],[32,5],[33,5],[34,5],[6,5],[38,5],[35,5],[36,5],[37,5],[39,5],[7,5],[40,5],[45,5],[46,5],[41,5],[42,5],[43,5],[44,5],[8,5],[50,5],[47,5],[48,5],[49,5],[51,5],[9,5],[52,5],[53,5],[54,5],[56,5],[55,5],[57,5],[58,5],[10,5],[59,5],[1,5],[84,82],[94,83],[83,82],[104,84],[75,85],[74,86],[103,9],[97,87],[102,88],[77,89],[91,90],[76,91],[100,92],[72,93],[71,9],[101,94],[73,95],[78,96],[79,5],[82,96],[69,5],[105,97],[95,98],[86,99],[87,100],[89,101],[85,102],[88,103],[98,9],[80,104],[81,105],[90,106],[70,107],[93,98],[92,96],[96,5],[99,108],[177,109],[180,110],[178,9],[179,111],[185,112],[184,5],[173,5],[182,5],[181,113],[171,5],[174,5],[183,5],[172,114],[189,115],[187,5],[186,116],[188,117]],"latestChangedDtsFile":"./esm/index.d.ts","version":"5.9.3"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@iobroker/db-base",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "7.2.
|
|
4
|
+
"version": "7.2.3-alpha.1-20260621-61726ea22",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": ">=18.0.0"
|
|
7
7
|
},
|
|
8
8
|
"dependencies": {
|
|
9
|
-
"@iobroker/js-controller-common-db": "7.2.
|
|
9
|
+
"@iobroker/js-controller-common-db": "7.2.3-alpha.1-20260621-61726ea22",
|
|
10
10
|
"deep-clone": "^3.0.3",
|
|
11
11
|
"fs-extra": "^11.3.2",
|
|
12
12
|
"respjs": "^4.2.0"
|
|
@@ -53,5 +53,5 @@
|
|
|
53
53
|
"files": [
|
|
54
54
|
"build/"
|
|
55
55
|
],
|
|
56
|
-
"gitHead": "
|
|
56
|
+
"gitHead": "9be1a50a5669f452c650d7905035675e5fae207d"
|
|
57
57
|
}
|