@iobroker/db-objects-jsonl 6.0.1-alpha.0-20240603-3deca26fa → 6.0.1

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.
@@ -9,8 +9,7 @@ export class ObjectsInMemoryServer extends ObjectsInMemoryJsonlDB {
9
9
  * @param settings State and InMem-DB settings
10
10
  */
11
11
  constructor(settings: any);
12
- /** @type {Map<string, SubscriptionClient>} */
13
- serverConnections: Map<string, SubscriptionClient>;
12
+ serverConnections: {};
14
13
  namespaceObjects: string;
15
14
  namespaceFile: string;
16
15
  namespaceObj: string;
@@ -31,25 +30,15 @@ export class ObjectsInMemoryServer extends ObjectsInMemoryJsonlDB {
31
30
  * @private
32
31
  */
33
32
  private _normalizeId;
34
- /**
35
- * Publish a subscribed value to one of the redis connection by pattern in redis format
36
- *
37
- * @param patternInformation all redis handler for given pattern and pattern itself
38
- * @param type Type of subscribed key
39
- * @param id Subscribed ID
40
- * @param obj Object to publish
41
- * @returns Publish counter
42
- */
43
- publishPattern(patternInformation: any, type: any, id: any, obj: any): number;
44
33
  /**
45
34
  * Publish a subscribed value to one of the redis connections in redis format
46
- * @param clientOptions Instance of RedisHandler and pattern
35
+ * @param client Instance of RedisHandler
47
36
  * @param type Type of subscribed key
48
37
  * @param id Subscribed ID
49
38
  * @param obj Object to publish
50
- * @returns Publish counter 0 or 1 depending on if send out or not
39
+ * @returns {number} Publish counter 0 or 1 depending on if send out or not
51
40
  */
52
- publishToClient(clientOptions: any, type: any, id: any, obj: any): number;
41
+ publishToClients(client: any, type: any, id: any, obj: any): number;
53
42
  /**
54
43
  * Generate ID for a File
55
44
  * @param id ID of the File
@@ -40,7 +40,7 @@ var import_js_controller_common_db = require("@iobroker/js-controller-common-db"
40
40
  class ObjectsInMemoryServer extends import_objectsInMemJsonlDB.ObjectsInMemoryJsonlDB {
41
41
  constructor(settings) {
42
42
  super(settings);
43
- this.serverConnections = /* @__PURE__ */ new Map();
43
+ this.serverConnections = {};
44
44
  this.namespaceObjects = (this.settings.redisNamespace || settings.connection && settings.connection.redisNamespace || "cfg") + ".";
45
45
  this.namespaceFile = this.namespaceObjects + "f.";
46
46
  this.namespaceObj = this.namespaceObjects + "o.";
@@ -121,37 +121,34 @@ class ObjectsInMemoryServer extends import_objectsInMemJsonlDB.ObjectsInMemoryJs
121
121
  }
122
122
  return { id, namespace: ns, name, isMeta };
123
123
  }
124
- publishPattern(patternInformation, type, id, obj) {
125
- let publishCount = 0;
126
- if (!patternInformation.regex.test(id)) {
127
- return publishCount;
124
+ publishToClients(client, type, id, obj) {
125
+ if (!client._subscribe || !client._subscribe[type]) {
126
+ return 0;
128
127
  }
129
- for (const client of patternInformation.clients) {
130
- publishCount += this.publishToClient(client, type, id, obj);
131
- }
132
- return publishCount;
133
- }
134
- publishToClient(clientOptions, type, id, obj) {
135
- const { client, pattern } = clientOptions;
136
- if (type === "meta") {
137
- this.log.silly(`${this.namespace} Redis Publish Meta ${id}=${obj}`);
138
- const sendPattern = this.namespaceMeta + pattern;
139
- const sendId = this.namespaceMeta + id;
140
- client.sendArray(null, ["pmessage", sendPattern, sendId, obj]);
141
- } else if (type === "files") {
142
- const objString = JSON.stringify(obj);
143
- this.log.silly(`${this.namespace} Redis Publish File ${id}=${objString}`);
144
- const sendPattern = this.namespaceFile + pattern;
145
- const sendId = this.namespaceFile + id;
146
- client.sendArray(null, ["pmessage", sendPattern, sendId, objString]);
147
- } else {
148
- const objString = JSON.stringify(obj);
149
- this.log.silly(`${this.namespace} Redis Publish Object ${id}=${objString}`);
150
- const sendPattern = (type === "objects" ? "" : this.namespaceObjects) + pattern;
151
- const sendId = (type === "objects" ? this.namespaceObj : this.namespaceObjects) + id;
152
- client.sendArray(null, ["pmessage", sendPattern, sendId, objString]);
128
+ const s = client._subscribe[type];
129
+ const found = s.find((sub) => sub.regex.test(id));
130
+ if (found) {
131
+ if (type === "meta") {
132
+ this.log.silly(`${this.namespace} Redis Publish Meta ${id}=${obj}`);
133
+ const sendPattern = this.namespaceMeta + found.pattern;
134
+ const sendId = this.namespaceMeta + id;
135
+ client.sendArray(null, ["pmessage", sendPattern, sendId, obj]);
136
+ } else if (type === "files") {
137
+ const objString = JSON.stringify(obj);
138
+ this.log.silly(`${this.namespace} Redis Publish File ${id}=${objString}`);
139
+ const sendPattern = this.namespaceFile + found.pattern;
140
+ const sendId = this.namespaceFile + id;
141
+ client.sendArray(null, ["pmessage", sendPattern, sendId, objString]);
142
+ } else {
143
+ const objString = JSON.stringify(obj);
144
+ this.log.silly(`${this.namespace} Redis Publish Object ${id}=${objString}`);
145
+ const sendPattern = (type === "objects" ? "" : this.namespaceObjects) + found.pattern;
146
+ const sendId = (type === "objects" ? this.namespaceObj : this.namespaceObjects) + id;
147
+ client.sendArray(null, ["pmessage", sendPattern, sendId, objString]);
148
+ }
149
+ return 1;
153
150
  }
154
- return 1;
151
+ return 0;
155
152
  }
156
153
  getFileId(id, name, isMeta) {
157
154
  if (id.endsWith(".admin")) {
@@ -625,10 +622,10 @@ class ObjectsInMemoryServer extends import_objectsInMemJsonlDB.ObjectsInMemoryJs
625
622
  }
626
623
  async destroy() {
627
624
  if (this.server) {
628
- for (const [connName, connection] of this.serverConnections) {
629
- connection.close();
630
- this.serverConnections.delete(connName);
631
- }
625
+ Object.keys(this.serverConnections).forEach((s) => {
626
+ this.serverConnections[s].close();
627
+ delete this.serverConnections[s];
628
+ });
632
629
  await new Promise((resolve) => {
633
630
  if (!this.server) {
634
631
  return void resolve();
@@ -717,10 +714,10 @@ class ObjectsInMemoryServer extends import_objectsInMemJsonlDB.ObjectsInMemoryJs
717
714
  };
718
715
  const handler = new import_db_base2.RedisHandler(socket, options);
719
716
  this._socketEvents(handler);
720
- this.serverConnections.set(`${socket.remoteAddress}:${socket.remotePort}`, handler);
717
+ this.serverConnections[socket.remoteAddress + ":" + socket.remotePort] = handler;
721
718
  socket.on("close", () => {
722
- if (this.serverConnections.has(`${socket.remoteAddress}:${socket.remotePort}`)) {
723
- this.serverConnections.delete(`${socket.remoteAddress}:${socket.remotePort}`);
719
+ if (this.serverConnections[socket.remoteAddress + ":" + socket.remotePort]) {
720
+ delete this.serverConnections[socket.remoteAddress + ":" + socket.remotePort];
724
721
  }
725
722
  });
726
723
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/lib/objects/objectsInMemServerRedis.js"],
4
- "sourcesContent": ["/**\n * Objects DB in memory - Server with Redis protocol\n *\n * Copyright 2013-2022 bluefox <dogafox@gmail.com>\n *\n * MIT License\n *\n */\n\nimport net from 'node:net';\nimport fs from 'fs-extra';\nimport path from 'node:path';\nimport crypto from 'node:crypto';\nimport { objectsUtils as utils } from '@iobroker/db-objects-redis';\nimport { tools } from '@iobroker/db-base';\nimport { getLocalAddress } from '@iobroker/js-controller-common-db/tools';\n\nimport { RedisHandler } from '@iobroker/db-base';\nimport { ObjectsInMemoryJsonlDB } from './objectsInMemJsonlDB.js';\nimport { EXIT_CODES } from '@iobroker/js-controller-common-db';\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: 9001,\n// host: localhost\n// };\n//\n\n/**\n * This class inherits statesInMemoryJsonlDB class and adds redis communication layer\n * to access the methods via redis protocol\n **/\nexport class ObjectsInMemoryServer extends ObjectsInMemoryJsonlDB {\n /**\n * Constructor\n * @param settings State and InMem-DB settings\n */\n constructor(settings) {\n super(settings);\n\n /** @type {Map<string, SubscriptionClient>} */\n this.serverConnections = new Map();\n this.namespaceObjects =\n (this.settings.redisNamespace || (settings.connection && settings.connection.redisNamespace) || 'cfg') +\n '.';\n this.namespaceFile = this.namespaceObjects + 'f.';\n this.namespaceObj = this.namespaceObjects + 'o.';\n this.namespaceSet = this.namespaceObjects + 's.';\n this.namespaceSetLen = this.namespaceSet.length;\n\n this.namespaceFileLen = this.namespaceFile.length;\n this.namespaceObjLen = this.namespaceObj.length;\n this.namespaceMeta = `${this.settings.namespaceMeta || 'meta'}.`;\n this.namespaceMetaLen = this.namespaceMeta.length;\n\n this.knownScripts = {};\n\n this.normalizeFileRegex1 = new RegExp('^(.*)\\\\$%\\\\$(.*)\\\\$%\\\\$(meta|data)$');\n this.normalizeFileRegex2 = new RegExp('^(.*)\\\\$%\\\\$(.*)\\\\/?\\\\*$');\n\n this.open()\n .then(() => {\n return this._initRedisServer(this.settings.connection);\n })\n .then(() => {\n this.log.debug(\n this.namespace +\n ' ' +\n (settings.secure ? 'Secure ' : '') +\n ' Redis inMem-objects listening on port ' +\n (settings.port || 9001)\n );\n\n if (typeof this.settings.connected === 'function') {\n setImmediate(() => this.settings.connected());\n }\n })\n .catch(e => {\n this.log.error(\n `${this.namespace} Cannot start inMem-objects on port ${settings.port || 9001}: ${e.message}`\n );\n process.exit(EXIT_CODES.NO_CONNECTION_TO_OBJ_DB);\n });\n }\n\n /**\n * Separate Namespace from ID and return both\n * @param idWithNamespace ID or Array of IDs containing a redis namespace and the real ID\n * @returns {{namespace: (string); id: string; name?: string; isMeta?: boolean}} Object with namespace and the\n * ID/Array of IDs without the namespace\n * @private\n */\n _normalizeId(idWithNamespace) {\n let ns = this.namespaceObjects;\n let id = null;\n let name = '';\n let isMeta;\n if (Array.isArray(idWithNamespace)) {\n const ids = [];\n idWithNamespace.forEach(el => {\n const { id, namespace } = this._normalizeId(el);\n ids.push(id);\n ns = namespace; // we ignore the pot. case from arrays with different namespaces\n });\n id = ids;\n } else if (typeof idWithNamespace === 'string') {\n id = idWithNamespace;\n if (idWithNamespace.startsWith(this.namespaceObjects)) {\n let idx = -1;\n if (idWithNamespace.startsWith(this.namespaceObj)) {\n idx = this.namespaceObjLen;\n } else if (idWithNamespace.startsWith(this.namespaceFile)) {\n idx = this.namespaceFileLen;\n } else if (idWithNamespace.startsWith(this.namespaceSet)) {\n idx = this.namespaceSetLen;\n }\n\n if (idx !== -1) {\n ns = idWithNamespace.substr(0, idx);\n id = idWithNamespace.substr(idx);\n }\n if (ns === this.namespaceFile) {\n let fileIdDetails = id.match(this.normalizeFileRegex1);\n if (fileIdDetails) {\n id = fileIdDetails[1];\n name = fileIdDetails[2] || '';\n isMeta = fileIdDetails[3] === 'meta';\n } else {\n fileIdDetails = id.match(this.normalizeFileRegex2);\n if (fileIdDetails) {\n id = fileIdDetails[1];\n name = fileIdDetails[2] || '';\n isMeta = undefined;\n } else {\n name = '';\n isMeta = undefined;\n }\n }\n }\n } else if (idWithNamespace.startsWith(this.namespaceMeta)) {\n const idx = this.namespaceMetaLen;\n if (idx !== -1) {\n ns = idWithNamespace.substr(0, idx);\n id = idWithNamespace.substr(idx);\n }\n }\n }\n return { id, namespace: ns, name, isMeta };\n }\n\n /**\n * Publish a subscribed value to one of the redis connection by pattern in redis format\n *\n * @param patternInformation all redis handler for given pattern and pattern itself\n * @param type Type of subscribed key\n * @param id Subscribed ID\n * @param obj Object to publish\n * @returns Publish counter\n */\n publishPattern(patternInformation, type, id, obj) {\n let publishCount = 0;\n\n if (!patternInformation.regex.test(id)) {\n return publishCount;\n }\n\n for (const client of patternInformation.clients) {\n publishCount += this.publishToClient(client, type, id, obj);\n }\n\n return publishCount;\n }\n\n /**\n * Publish a subscribed value to one of the redis connections in redis format\n * @param clientOptions Instance of RedisHandler and pattern\n * @param type Type of subscribed key\n * @param id Subscribed ID\n * @param obj Object to publish\n * @returns Publish counter 0 or 1 depending on if send out or not\n */\n publishToClient(clientOptions, type, id, obj) {\n const { client, pattern } = clientOptions;\n\n if (type === 'meta') {\n this.log.silly(`${this.namespace} Redis Publish Meta ${id}=${obj}`);\n const sendPattern = this.namespaceMeta + pattern;\n const sendId = this.namespaceMeta + id;\n client.sendArray(null, ['pmessage', sendPattern, sendId, obj]);\n } else if (type === 'files') {\n const objString = JSON.stringify(obj);\n this.log.silly(`${this.namespace} Redis Publish File ${id}=${objString}`);\n const sendPattern = this.namespaceFile + pattern;\n const sendId = this.namespaceFile + id;\n client.sendArray(null, ['pmessage', sendPattern, sendId, objString]);\n } else {\n const objString = JSON.stringify(obj);\n this.log.silly(`${this.namespace} Redis Publish Object ${id}=${objString}`);\n const sendPattern = (type === 'objects' ? '' : this.namespaceObjects) + pattern;\n const sendId = (type === 'objects' ? this.namespaceObj : this.namespaceObjects) + id;\n client.sendArray(null, ['pmessage', sendPattern, sendId, objString]);\n }\n\n return 1;\n }\n\n /**\n * Generate ID for a File\n * @param id ID of the File\n * @param name Name of the file\n * @param isMeta generate a META ID or a Data ID?\n * @returns {string} File-ID\n */\n getFileId(id, name, isMeta) {\n // e.g. ekey.admin and admin/ekey.png\n if (id.endsWith('.admin')) {\n if (name.startsWith('admin/')) {\n name = name.replace(/^admin\\//, '');\n } else if (name.match(/^iobroker.[-\\d\\w]\\/admin\\//i)) {\n // e.g. ekey.admin and iobroker.ekey/admin/ekey.png\n name = name.replace(/^iobroker.[-\\d\\w]\\/admin\\//i, '');\n }\n }\n\n return this.namespaceFile + id + '$%$' + name + (isMeta !== undefined ? (isMeta ? '$%$meta' : '$%$data') : '');\n }\n\n /**\n * Register all event listeners for Handler and implement the relevant logic\n * @param handler RedisHandler instance\n * @private\n */\n _socketEvents(handler) {\n let connectionName = null;\n let namespaceLog = this.namespace;\n\n // Handle Redis \"INFO\" request\n handler.on('info', (_data, responseId) => {\n let infoString = '# Server\\r\\n';\n infoString += 'redis_version:3.0.0-iobroker\\r\\n';\n infoString += '# Clients\\r\\n';\n infoString += '# Memory\\r\\n';\n infoString += '# Persistence\\r\\n';\n infoString += '# Stats\\r\\n';\n infoString += '# Replication\\r\\n';\n infoString += '# CPU\\r\\n';\n infoString += '# Cluster\\r\\n';\n infoString += '# Keyspace\\r\\n';\n infoString += `db0:keys=${Object.keys(this.dataset).length},expires=0,avg_ttl=98633637897`;\n handler.sendBulk(responseId, infoString);\n });\n\n // Handle Redis \"QUIT\" request\n handler.on('quit', (_data, responseId) => {\n this.log.silly(namespaceLog + ' Redis QUIT received, close connection');\n handler.sendString(responseId, 'OK');\n handler.close();\n });\n\n // Handle Redis \"SCRIPT\" request\n handler.on('script', (data, responseId) => {\n data[0] = data[0].toLowerCase();\n if (data[0] === 'exists') {\n data.shift();\n const scripts = [];\n data.forEach(checksum => scripts.push(this.knownScripts[checksum] ? 1 : 0));\n handler.sendArray(responseId, scripts);\n } else if (data[0] === 'load') {\n const shasum = crypto.createHash('sha1');\n const buf = Buffer.from(data[1]);\n shasum.update(buf);\n const scriptChecksum = shasum.digest('hex');\n\n const scriptDesign = data[1].match(/^-- design: ([a-z0-9A-Z-.]+)\\s/m);\n const scriptFunc = data[1].match(/^-- func: (.+)$/m);\n if (scriptDesign && scriptDesign[1]) {\n const design = scriptDesign[1];\n let search = null;\n const scriptSearch = data[1].match(/^-- search: ([a-z0-9A-Z-.]*)\\s/m);\n if (scriptSearch && scriptSearch[1]) {\n search = scriptSearch[1];\n }\n\n this.knownScripts[scriptChecksum] = { design: design, search: search };\n if (this.settings.connection.enhancedLogging) {\n this.log.silly(\n `${namespaceLog} Register View LUA Script: ${scriptChecksum} = ${JSON.stringify(\n this.knownScripts[scriptChecksum]\n )}`\n );\n }\n handler.sendBulk(responseId, scriptChecksum);\n } else if (scriptFunc && scriptFunc[1]) {\n this.knownScripts[scriptChecksum] = { func: scriptFunc[1] };\n if (this.settings.connection.enhancedLogging) {\n this.log.silly(\n `${namespaceLog} Register Func LUA Script: ${scriptChecksum} = ${JSON.stringify(\n this.knownScripts[scriptChecksum]\n )}`\n );\n }\n handler.sendBulk(responseId, scriptChecksum);\n } else if (data[1].includes('-- REDLOCK SCRIPT')) {\n // redlock scripts are currently not needed for Simulator\n this.knownScripts[scriptChecksum] = { redlock: true };\n if (this.settings.connection.enhancedLogging) {\n this.log.silly(\n `${namespaceLog} Register Func LUA Script: ${scriptChecksum} = ${JSON.stringify(\n this.knownScripts[scriptChecksum]\n )}`\n );\n }\n handler.sendBulk(responseId, scriptChecksum);\n } else {\n handler.sendError(responseId, new Error(`Unknown LUA script ${data[1]}`));\n }\n } else {\n handler.sendError(responseId, new Error(`Unsupported Script command ${data[0]}`));\n }\n });\n\n // Handle Redis \"EVALSHA\" request\n handler.on('evalsha', (data, responseId) => {\n if (!this.knownScripts[data[0]]) {\n return void handler.sendError(responseId, new Error(`Unknown Script ${data[0]}`));\n }\n if (this.knownScripts[data[0]].design) {\n const scriptDesign = this.knownScripts[data[0]].design;\n if (typeof data[2] === 'string' && data[2].startsWith(this.namespaceObj) && data.length > 4) {\n let scriptSearch = this.knownScripts[data[0]].search;\n if (scriptDesign === 'system' && !scriptSearch && data[5]) {\n scriptSearch = data[5];\n }\n if (!scriptSearch) {\n scriptSearch = 'state';\n }\n if (this.settings.connection.enhancedLogging) {\n this.log.silly(\n `${namespaceLog} Script transformed into getObjectView: design=${scriptDesign}, search=${scriptSearch}`\n );\n }\n let objs;\n try {\n objs = this._getObjectView(scriptDesign, scriptSearch, {\n startkey: data[3],\n endkey: data[4],\n include_docs: true\n });\n } catch (err) {\n return void handler.sendError(\n responseId,\n new Error(`_getObjectView Error for ${scriptDesign}/${scriptSearch}: ${err.message}`)\n );\n }\n\n const res = objs.rows.map(obj => JSON.stringify(this.dataset[obj.value._id || obj.id]));\n handler.sendArray(responseId, res);\n }\n } else if (this.knownScripts[data[0]].func && data.length > 4) {\n const scriptFunc = { map: this.knownScripts[data[0]].func.replace('%1', data[5]) };\n if (this.settings.connection.enhancedLogging) {\n this.log.silly(`${namespaceLog} Script transformed into _applyView: func=${scriptFunc.map}`);\n }\n const objs = this._applyView(scriptFunc, {\n startkey: data[3],\n endkey: data[4],\n include_docs: true\n });\n const res = objs.rows.map(obj => JSON.stringify(this.dataset[obj.value._id || obj.id]));\n\n return void handler.sendArray(responseId, res);\n } else if (this.knownScripts[data[0]].redlock) {\n // just return a dummy\n return void handler.sendArray(responseId, [0]);\n } else {\n handler.sendError(responseId, new Error(`Unknown LUA script eval call ${JSON.stringify(data)}`));\n }\n });\n\n // Handle Redis \"PUBLISH\" request\n handler.on('publish', (data, responseId) => {\n const { id, namespace } = this._normalizeId(data[0]);\n\n if (\n namespace === this.namespaceObj ||\n namespace === this.namespaceMeta ||\n namespace === this.namespaceFile\n ) {\n // a \"set\" always comes afterwards, so do not publish\n return void handler.sendInteger(responseId, 0); // do not publish for now\n }\n const publishCount = this.publishAll(namespace.substr(0, namespace.length - 1), id, JSON.parse(data[1]));\n handler.sendInteger(responseId, publishCount);\n });\n\n // Handle Redis \"MGET\" requests\n handler.on('mget', (data, responseId) => {\n if (!data || !data.length) {\n return void handler.sendArray(responseId, []);\n }\n const { namespace, isMeta } = this._normalizeId(data[0]);\n\n if (namespace === this.namespaceObj) {\n const keys = [];\n data.forEach(dataId => {\n const { id, namespace } = this._normalizeId(dataId);\n if (namespace !== this.namespaceObj) {\n keys.push(null);\n this.log.warn(\n `${namespaceLog} Got MGET request for non Object-ID in Objects-ID chunk for ${namespace} / ${dataId}`\n );\n return;\n }\n keys.push(id);\n });\n let result;\n try {\n result = this._getObjects(keys);\n } catch (err) {\n return void handler.sendError(responseId, new Error('ERROR _getObjects: ' + err.message));\n }\n result = result.map(el => (el ? JSON.stringify(el) : null));\n handler.sendArray(responseId, result);\n } else if (namespace === this.namespaceFile) {\n // Handle request for Meta data for files\n if (isMeta) {\n const response = [];\n data.forEach(dataId => {\n const { id, namespace, name } = this._normalizeId(dataId);\n if (namespace !== this.namespaceFile) {\n response.push(null);\n this.log.warn(\n `${namespaceLog} Got MGET request for non File ID in File-ID chunk for ${dataId}`\n );\n return;\n }\n this._loadFileSettings(id);\n if (!this.fileOptions[id] || !this.fileOptions[id][name]) {\n response.push(null);\n return;\n }\n const obj = this._clone(this.fileOptions[id][name]);\n try {\n // @ts-ignore\n obj.stats = fs.statSync(path.join(this.objectsDir, id, name));\n } catch (err) {\n if (!name.endsWith('/_data.json')) {\n this.log.warn(\n `${namespaceLog} Got MGET request for non existing file ${dataId}, err: ${err.message}`\n );\n }\n response.push(null);\n return;\n }\n response.push(JSON.stringify(obj));\n });\n handler.sendArray(responseId, response);\n } else {\n // Handle request for File data\n handler.sendError(responseId, new Error('MGET-UNSUPPORTED for file data'));\n }\n } else {\n handler.sendError(\n responseId,\n new Error(`MGET-UNSUPPORTED for namespace ${namespace}: Data=${JSON.stringify(data)}`)\n );\n }\n });\n\n // Handle Redis \"GET\" requests\n handler.on('get', (data, responseId) => {\n const { id, namespace, name, isMeta } = this._normalizeId(data[0]);\n\n if (namespace === this.namespaceObj) {\n const result = this._getObject(id);\n if (!result) {\n handler.sendNull(responseId);\n } else {\n handler.sendBulk(responseId, JSON.stringify(result));\n }\n } else if (namespace === this.namespaceFile) {\n // Handle request for Meta data for files\n if (isMeta) {\n let stats;\n try {\n stats = fs.statSync(path.join(this.objectsDir, id, name));\n } catch {\n return void handler.sendNull(responseId);\n }\n if (stats.isDirectory()) {\n return void handler.sendBulk(\n responseId,\n JSON.stringify({\n file: name,\n stats: {},\n isDir: true\n })\n );\n }\n this._loadFileSettings(id);\n if (!this.fileOptions[id] || !this.fileOptions[id][name]) {\n return void handler.sendNull(responseId);\n }\n\n let obj = this._clone(this.fileOptions[id][name]);\n if (typeof obj !== 'object') {\n obj = {\n mimeType: obj,\n acl: {\n owner:\n (this.defaultNewAcl && this.defaultNewAcl.owner) || utils.CONSTS.SYSTEM_ADMIN_USER,\n ownerGroup:\n (this.defaultNewAcl && this.defaultNewAcl.ownerGroup) ||\n utils.CONSTS.SYSTEM_ADMIN_GROUP,\n permissions:\n (this.defaultNewAcl && this.defaultNewAcl.file.permissions) ||\n utils.CONSTS.ACCESS_USER_ALL |\n utils.CONSTS.ACCESS_GROUP_ALL |\n utils.CONSTS.ACCESS_EVERY_ALL // 777\n }\n };\n }\n obj.stats = stats;\n handler.sendBulk(responseId, JSON.stringify(obj));\n } else {\n // Handle request for File data\n let data;\n try {\n data = this._readFile(id, name);\n } catch {\n return void handler.sendNull(responseId);\n }\n if (data.fileContent === undefined || data.fileContent === null) {\n return void handler.sendNull(responseId);\n }\n let fileData = data.fileContent;\n if (!Buffer.isBuffer(fileData) && tools.isObject(fileData)) {\n // if its an invalid object, stringify it and log warning\n fileData = JSON.stringify(fileData);\n this.log.warn(\n `${namespaceLog} Data of \"${id}/${name}\" has invalid structure at file data request: ${fileData}`\n );\n }\n handler.sendBufBulk(responseId, Buffer.from(fileData));\n }\n } else if (namespace === this.namespaceMeta) {\n // special handling for the primaryHost\n if (id === 'objects.primaryHost') {\n // we are the server -> we are primary\n handler.sendString(this.settings.hostname);\n } else {\n const result = this.getMeta(id);\n if (result === undefined || result === null) {\n handler.sendNull(responseId);\n } else {\n handler.sendBulk(responseId, result);\n }\n }\n } else {\n handler.sendError(\n responseId,\n new Error(`GET-UNSUPPORTED for namespace ${namespace}: Data=${JSON.stringify(data)}`)\n );\n }\n });\n\n // Handle Redis \"SET\" requests\n handler.on('set', (data, responseId) => {\n const { id, namespace, name, isMeta } = this._normalizeId(data[0]);\n\n if (namespace === this.namespaceObj) {\n try {\n const obj = JSON.parse(data[1].toString('utf-8'));\n this._setObjectDirect(id, obj);\n } catch (err) {\n return void handler.sendError(responseId, new Error(`ERROR setObject id=${id}: ${err.message}`));\n }\n handler.sendString(responseId, 'OK');\n } else if (namespace === this.namespaceFile) {\n // Handle request to set meta-data, we ignore it because\n // will be set when data are written\n if (isMeta) {\n this._loadFileSettings(id);\n\n try {\n fs.ensureDirSync(path.join(this.objectsDir, id, path.dirname(name)));\n\n // only set if the meta-object is already/still existing\n if (this.fileOptions[id]) {\n this.fileOptions[id][name] = JSON.parse(data[1].toString('utf-8'));\n fs.writeFileSync(\n path.join(this.objectsDir, id, '_data.json'),\n JSON.stringify(this.fileOptions[id])\n );\n }\n } catch (err) {\n return void handler.sendError(\n responseId,\n new Error(`ERROR writeFile-Meta id=${id}: ${err.message}`)\n );\n }\n handler.sendString(responseId, 'OK');\n } else {\n // Handle request to write the file\n try {\n this._writeFile(id, name, data[1]);\n } catch (err) {\n return void handler.sendError(\n responseId,\n new Error(`ERROR writeFile id=${id}: ${err.message}`)\n );\n }\n handler.sendString(responseId, 'OK');\n }\n } else if (namespace === this.namespaceMeta) {\n this.setMeta(id, data[1].toString('utf-8'));\n handler.sendString(responseId, 'OK');\n } else {\n handler.sendError(\n responseId,\n new Error(`SET-UNSUPPORTED for namespace ${namespace}: Data=${JSON.stringify(data)}`)\n );\n }\n });\n\n // Handle Redis \"RENAME\" requests\n handler.on('rename', (data, responseId) => {\n const oldDetails = this._normalizeId(data[0]);\n const newDetails = this._normalizeId(data[1]);\n\n if (oldDetails.namespace === this.namespaceFile) {\n if (oldDetails.id !== newDetails.id) {\n return void handler.sendError(\n responseId,\n new Error('ERROR renameObject: id needs to stay the same')\n );\n }\n\n // Handle request for Meta data for files\n if (oldDetails.isMeta) {\n handler.sendString(responseId, 'OK');\n } else {\n // Handle request for File data\n try {\n this._rename(oldDetails.id, oldDetails.name, newDetails.name);\n } catch {\n return void handler.sendNull(responseId);\n }\n handler.sendString(responseId, 'OK');\n }\n } else {\n handler.sendError(\n responseId,\n new Error(`RENAME-UNSUPPORTED for namespace ${oldDetails.namespace}: Data=${JSON.stringify(data)}`)\n );\n }\n });\n\n // Handle Redis \"DEL\" request for state and session namespace\n handler.on('del', (data, responseId) => {\n const { id, namespace, name, isMeta } = this._normalizeId(data[0]);\n\n if (namespace === this.namespaceObj) {\n try {\n this._delObject(id);\n } catch (err) {\n return void handler.sendError(responseId, err);\n }\n handler.sendInteger(responseId, 1);\n } else if (namespace === this.namespaceFile) {\n // Handle request to delete meta-data, we ignore it because\n // will be removed when data are deleted\n if (isMeta) {\n handler.sendString(responseId, 'OK');\n } else {\n // Handle request to remove the file\n try {\n this._unlink(id, name);\n } catch (err) {\n return void handler.sendError(responseId, err);\n }\n handler.sendString(responseId, 'OK');\n }\n } else {\n handler.sendError(\n responseId,\n new Error(`DEL-UNSUPPORTED for namespace ${namespace}: Data=${JSON.stringify(data)}`)\n );\n }\n });\n\n handler.on('exists', (data, responseId) => {\n if (!data || !data.length) {\n return void handler.sendInteger(responseId, 0);\n }\n\n // Note: we only simulate single key existence check\n const { id, namespace, name } = this._normalizeId(data[0]);\n\n if (namespace === this.namespaceObj) {\n let exists;\n try {\n exists = this._objectExists(id);\n } catch (e) {\n return void handler.sendError(responseId, e);\n }\n handler.sendInteger(responseId, exists ? 1 : 0);\n } else if (namespace === this.namespaceFile) {\n let exists;\n try {\n exists = this._fileExists(id, name);\n } catch (e) {\n return void handler.sendError(responseId, e);\n }\n handler.sendInteger(responseId, exists ? 1 : 0);\n } else if (namespace === this.namespaceSet) {\n // we are not using sets in simulator, so just say it exists\n return void handler.sendInteger(responseId, 1);\n } else {\n handler.sendError(responseId, new Error(`EXISTS-UNSUPPORTED for namespace ${namespace}`));\n }\n });\n\n // handle Redis \"SCAN\" request for objects namespace\n handler.on('scan', (data, responseId) => {\n if (!data || data.length < 3) {\n return void handler.sendArray(responseId, ['0', []]);\n }\n\n return this._handleScanOrKeys(handler, data[2], responseId, true);\n });\n\n // Handle Redis \"KEYS\" request for state namespace\n handler.on('keys', (data, responseId) => {\n if (!data || !data.length) {\n return void handler.sendArray(responseId, []);\n }\n\n return this._handleScanOrKeys(handler, data[0], responseId);\n });\n\n // commands for redis SETS, just dummies\n handler.on('sadd', (data, responseId) => {\n return void handler.sendInteger(responseId, 1);\n });\n\n handler.on('srem', (data, responseId) => {\n return void handler.sendInteger(responseId, 1);\n });\n\n handler.on('eval', (data, responseId) => {\n return void handler.sendNull(responseId);\n });\n\n handler.on('sscan', (data, responseId) => {\n // for file DB it does the same as scan but data looks different\n if (!data || data.length < 4) {\n return void handler.sendArray(responseId, ['0', []]);\n }\n\n return this._handleScanOrKeys(handler, data[3], responseId, true);\n });\n\n // Handle Redis \"PSUBSCRIBE\" request for state, log and session namespace\n handler.on('psubscribe', (data, responseId) => {\n const { id, namespace, name } = this._normalizeId(data[0]);\n\n if (namespace === this.namespaceObj) {\n this._subscribeConfigForClient(handler, id);\n handler.sendArray(responseId, ['psubscribe', data[0], 1]);\n } else if (namespace === this.namespaceMeta) {\n this._subscribeMeta(handler, id);\n handler.sendArray(responseId, ['psubscribe', data[0], 1]);\n } else if (namespace === this.namespaceFile) {\n this._subscribeFileForClient(handler, id, name);\n handler.sendArray(responseId, ['psubscribe', data[0], 1]);\n } else {\n handler.sendError(\n responseId,\n new Error(`PSUBSCRIBE-UNSUPPORTED for namespace ${namespace}: Data=${JSON.stringify(data)}`)\n );\n }\n });\n\n // Handle Redis \"UNSUBSCRIBE\" request for state, log and session namespace\n handler.on('punsubscribe', (data, responseId) => {\n const { id, namespace, name } = this._normalizeId(data[0]);\n\n if (namespace === this.namespaceObj) {\n this._unsubscribeConfigForClient(handler, id);\n handler.sendArray(responseId, ['punsubscribe', data[0], 1]);\n } else if (namespace === this.namespaceFile) {\n this._unsubscribeFileForClient(handler, id, name);\n handler.sendArray(responseId, ['punsubscribe', data[0], 1]);\n } else {\n handler.sendError(\n responseId,\n new Error(`PUNSUBSCRIBE-UNSUPPORTED for namespace ${namespace}: Data=${JSON.stringify(data)}`)\n );\n }\n });\n\n // Handle Redis \"SUBSCRIBE\" ... currently mainly ignored\n handler.on('subscribe', (data, responseId) => {\n if (data[0].startsWith('__keyevent@')) {\n // we ignore these type of events because we publish expires anyway directly\n handler.sendArray(responseId, ['subscribe', data[0], 1]);\n } else {\n handler.sendError(responseId, new Error(`SUBSCRIBE-UNSUPPORTED for ${data[0]}`));\n }\n });\n\n // Handle Redis \"CONFIG\" ... currently mainly ignored\n handler.on('config', (data, responseId) => {\n const command = typeof data[0] === 'string' ? data[0].toLowerCase() : data[0].toString().toLowerCase();\n if (command === 'set' && data[1] === 'notify-keyspace-events') {\n // we ignore these type of commands for now, should only be to subscribe to keyspace events\n handler.sendString(responseId, 'OK');\n } else if (command === 'set' && data[1] === 'lua-time-limit') {\n // we ignore these type of commands for now, irrelevant\n handler.sendString(responseId, 'OK');\n } else {\n handler.sendError(responseId, new Error(`CONFIG-UNSUPPORTED for ${JSON.stringify(data)}`));\n }\n });\n\n // handle client SETNAME/GETNAME\n handler.on('client', (data, responseId) => {\n if (data[0] === 'setname' && typeof data[1] === 'string') {\n if (data[1] === '') {\n // on empty string redis sets null again and sends 'OK'\n connectionName = null;\n } else {\n connectionName = data[1];\n namespaceLog = connectionName;\n }\n handler.sendString(responseId, 'OK');\n } else if (data[0] === 'getname') {\n if (typeof connectionName === 'string' && connectionName !== '') {\n handler.sendString(responseId, connectionName);\n } else {\n // redis sends null if no name defined\n handler.sendNull(responseId);\n }\n } else {\n handler.sendError(responseId, new Error(`CLIENT-UNSUPPORTED for ${JSON.stringify(data)}`));\n }\n });\n\n handler.on('error', err => this.log.warn(`${namespaceLog} Redis objects: ${err}`));\n }\n\n /**\n * Return connected RedisHandlers/Connections\n * @returns {{}|*}\n */\n getClients() {\n return this.serverConnections;\n }\n\n /**\n * Destructor of the class. Called by shutting down.\n */\n async destroy() {\n if (this.server) {\n for (const [connName, connection] of this.serverConnections) {\n connection.close();\n this.serverConnections.delete(connName);\n }\n\n await new Promise(resolve => {\n if (!this.server) {\n return void resolve();\n }\n try {\n this.server.close(() => resolve());\n } catch (e) {\n console.log(e.message);\n resolve();\n }\n });\n }\n\n await super.destroy();\n }\n\n /**\n * Get keys matching pattern and send it to given responseId, for \"SCAN\" and \"KEYS\" - Objects and files supported\n *\n * @param handler RedisHandler instance\n * @param {string} pattern - pattern without namespace prefix\n * @param {number} responseId - Id where response will be sent to\n * @param {boolean} isScan - if used by \"SCAN\" this flag should be true\n * @private\n */\n _handleScanOrKeys(handler, pattern, responseId, isScan = false) {\n const { id, namespace, name, isMeta } = this._normalizeId(pattern);\n\n let response = [];\n if (namespace === this.namespaceObj || namespace === this.namespaceObjects) {\n try {\n response = this._getKeys(id).map(val => this.namespaceObj + val);\n } catch (e) {\n return void handler.sendError(responseId, e);\n }\n\n // if scan, we send the cursor as first argument\n if (namespace !== this.namespaceObjects) {\n // When it was not the full DB namespace send out response\n return void handler.sendArray(responseId, isScan ? ['0', response] : response);\n }\n }\n if (namespace === this.namespaceFile || namespace === this.namespaceObjects) {\n // Handle request to get meta data keys\n if (isMeta === undefined) {\n let res;\n try {\n res = this._readDir(id, name);\n if (!res || !res.length) {\n res = [\n {\n file: '_data.json',\n stats: {},\n isDir: false,\n virtualFile: true,\n notExists: true\n }\n ];\n }\n } catch (e) {\n if (!e.message.endsWith(utils.ERRORS.ERROR_NOT_FOUND)) {\n return void handler.sendError(responseId, new Error(`ERROR readDir id=${id}: ${e.message}`));\n }\n res = [];\n }\n let baseName = name || '';\n if (baseName.length && !baseName.endsWith('/')) {\n baseName += '/';\n }\n res.forEach(arr => {\n let entryId = id;\n if (arr.isDir) {\n if (entryId === '' || entryId === '*') {\n entryId = arr.file;\n arr.file = '_data.json'; // We return a \"virtual file\" to mark the directory as existing\n } else {\n arr.file += '/_data.json'; // We return a \"virtual file\" to mark the directory as existing\n }\n }\n // We need to simulate the Meta data here, so return both\n response.push(this.getFileId(entryId, baseName + arr.file, true));\n response.push(this.getFileId(entryId, baseName + arr.file, false));\n });\n handler.sendArray(responseId, isScan ? ['0', response] : response); // send out file or full db response\n } else {\n // such a request should never happen\n handler.sendArray(responseId, isScan ? ['0', []] : []); // send out file or full db response\n }\n } else if (namespace === this.namespaceSet) {\n handler.sendArray(responseId, isScan ? ['0', []] : []); // send out empty array, we have no sets\n } else {\n handler.sendError(\n responseId,\n new Error(`${isScan ? 'SCAN' : 'KEYS'}-UNSUPPORTED for namespace ${namespace}: Pattern=${pattern}`)\n );\n }\n }\n\n /**\n * Initialize RedisHandler for a new network connection\n * @param socket Network socket\n * @private\n */\n _initSocket(socket) {\n if (this.settings.connection.enhancedLogging) {\n this.log.silly(this.namespace + ' Handling new Redis Objects connection');\n }\n const options = {\n log: this.log,\n logScope: `${this.settings.namespace || ''} Objects`,\n handleAsBuffers: true,\n enhancedLogging: this.settings.connection.enhancedLogging\n };\n const handler = new RedisHandler(socket, options);\n this._socketEvents(handler);\n\n this.serverConnections.set(`${socket.remoteAddress}:${socket.remotePort}`, handler);\n socket.on('close', () => {\n if (this.serverConnections.has(`${socket.remoteAddress}:${socket.remotePort}`)) {\n this.serverConnections.delete(`${socket.remoteAddress}:${socket.remotePort}`);\n }\n });\n }\n\n /**\n * Initialize Redis Server\n * @param settings Settings object\n * @private\n * @return {Promise<void>}\n */\n _initRedisServer(settings) {\n return new Promise((resolve, reject) => {\n if (settings.secure) {\n reject(new Error('Secure Redis unsupported for JSONL-DB'));\n }\n try {\n this.server = net.createServer();\n this.server.on('error', err =>\n this.log.info(\n `${this.namespace} ${settings.secure ? 'Secure ' : ''} Error inMem-objects listening on port ${\n settings.port || 9001\n }: ${err}`\n )\n );\n this.server.on('connection', socket => this._initSocket(socket));\n\n this.server.listen(\n settings.port || 9001,\n settings.host === 'localhost' ? getLocalAddress() : settings.host ? settings.host : undefined,\n () => resolve()\n );\n } catch (err) {\n reject(err);\n }\n });\n }\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * Objects DB in memory - Server with Redis protocol\n *\n * Copyright 2013-2022 bluefox <dogafox@gmail.com>\n *\n * MIT License\n *\n */\n\nimport net from 'node:net';\nimport fs from 'fs-extra';\nimport path from 'node:path';\nimport crypto from 'node:crypto';\nimport { objectsUtils as utils } from '@iobroker/db-objects-redis';\nimport { tools } from '@iobroker/db-base';\nimport { getLocalAddress } from '@iobroker/js-controller-common-db/tools';\n\nimport { RedisHandler } from '@iobroker/db-base';\nimport { ObjectsInMemoryJsonlDB } from './objectsInMemJsonlDB.js';\nimport { EXIT_CODES } from '@iobroker/js-controller-common-db';\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: 9001,\n// host: localhost\n// };\n//\n\n/**\n * This class inherits statesInMemoryJsonlDB class and adds redis communication layer\n * to access the methods via redis protocol\n **/\nexport class ObjectsInMemoryServer extends ObjectsInMemoryJsonlDB {\n /**\n * Constructor\n * @param settings State and InMem-DB settings\n */\n constructor(settings) {\n super(settings);\n\n this.serverConnections = {};\n this.namespaceObjects =\n (this.settings.redisNamespace || (settings.connection && settings.connection.redisNamespace) || 'cfg') +\n '.';\n this.namespaceFile = this.namespaceObjects + 'f.';\n this.namespaceObj = this.namespaceObjects + 'o.';\n this.namespaceSet = this.namespaceObjects + 's.';\n this.namespaceSetLen = this.namespaceSet.length;\n\n // this.namespaceObjectsLen = this.namespaceObjects.length;\n this.namespaceFileLen = this.namespaceFile.length;\n this.namespaceObjLen = this.namespaceObj.length;\n this.namespaceMeta = `${this.settings.namespaceMeta || 'meta'}.`;\n this.namespaceMetaLen = this.namespaceMeta.length;\n\n this.knownScripts = {};\n\n this.normalizeFileRegex1 = new RegExp('^(.*)\\\\$%\\\\$(.*)\\\\$%\\\\$(meta|data)$');\n this.normalizeFileRegex2 = new RegExp('^(.*)\\\\$%\\\\$(.*)\\\\/?\\\\*$');\n\n this.open()\n .then(() => {\n return this._initRedisServer(this.settings.connection);\n })\n .then(() => {\n this.log.debug(\n this.namespace +\n ' ' +\n (settings.secure ? 'Secure ' : '') +\n ' Redis inMem-objects listening on port ' +\n (settings.port || 9001)\n );\n\n if (typeof this.settings.connected === 'function') {\n setImmediate(() => this.settings.connected());\n }\n })\n .catch(e => {\n this.log.error(\n `${this.namespace} Cannot start inMem-objects on port ${settings.port || 9001}: ${e.message}`\n );\n process.exit(EXIT_CODES.NO_CONNECTION_TO_OBJ_DB);\n });\n }\n\n /**\n * Separate Namespace from ID and return both\n * @param idWithNamespace ID or Array of IDs containing a redis namespace and the real ID\n * @returns {{namespace: (string); id: string; name?: string; isMeta?: boolean}} Object with namespace and the\n * ID/Array of IDs without the namespace\n * @private\n */\n _normalizeId(idWithNamespace) {\n let ns = this.namespaceObjects;\n let id = null;\n let name = '';\n let isMeta;\n if (Array.isArray(idWithNamespace)) {\n const ids = [];\n idWithNamespace.forEach(el => {\n const { id, namespace } = this._normalizeId(el);\n ids.push(id);\n ns = namespace; // we ignore the pot. case from arrays with different namespaces\n });\n id = ids;\n } else if (typeof idWithNamespace === 'string') {\n id = idWithNamespace;\n if (idWithNamespace.startsWith(this.namespaceObjects)) {\n let idx = -1;\n if (idWithNamespace.startsWith(this.namespaceObj)) {\n idx = this.namespaceObjLen;\n } else if (idWithNamespace.startsWith(this.namespaceFile)) {\n idx = this.namespaceFileLen;\n } else if (idWithNamespace.startsWith(this.namespaceSet)) {\n idx = this.namespaceSetLen;\n }\n\n if (idx !== -1) {\n ns = idWithNamespace.substr(0, idx);\n id = idWithNamespace.substr(idx);\n }\n if (ns === this.namespaceFile) {\n let fileIdDetails = id.match(this.normalizeFileRegex1);\n if (fileIdDetails) {\n id = fileIdDetails[1];\n name = fileIdDetails[2] || '';\n isMeta = fileIdDetails[3] === 'meta';\n } else {\n fileIdDetails = id.match(this.normalizeFileRegex2);\n if (fileIdDetails) {\n id = fileIdDetails[1];\n name = fileIdDetails[2] || '';\n isMeta = undefined;\n } else {\n name = '';\n isMeta = undefined;\n }\n }\n }\n } else if (idWithNamespace.startsWith(this.namespaceMeta)) {\n const idx = this.namespaceMetaLen;\n if (idx !== -1) {\n ns = idWithNamespace.substr(0, idx);\n id = idWithNamespace.substr(idx);\n }\n }\n }\n return { id, namespace: ns, name, isMeta };\n }\n\n /**\n * Publish a subscribed value to one of the redis connections in redis format\n * @param client Instance of RedisHandler\n * @param type Type of subscribed key\n * @param id Subscribed ID\n * @param obj Object to publish\n * @returns {number} Publish counter 0 or 1 depending on if send out or not\n */\n publishToClients(client, type, id, obj) {\n if (!client._subscribe || !client._subscribe[type]) {\n return 0;\n }\n const s = client._subscribe[type];\n\n const found = s.find(sub => sub.regex.test(id));\n\n if (found) {\n if (type === 'meta') {\n this.log.silly(`${this.namespace} Redis Publish Meta ${id}=${obj}`);\n const sendPattern = this.namespaceMeta + found.pattern;\n const sendId = this.namespaceMeta + id;\n client.sendArray(null, ['pmessage', sendPattern, sendId, obj]);\n } else if (type === 'files') {\n const objString = JSON.stringify(obj);\n this.log.silly(`${this.namespace} Redis Publish File ${id}=${objString}`);\n const sendPattern = this.namespaceFile + found.pattern;\n const sendId = this.namespaceFile + id;\n client.sendArray(null, ['pmessage', sendPattern, sendId, objString]);\n } else {\n const objString = JSON.stringify(obj);\n this.log.silly(`${this.namespace} Redis Publish Object ${id}=${objString}`);\n const sendPattern = (type === 'objects' ? '' : this.namespaceObjects) + found.pattern;\n const sendId = (type === 'objects' ? this.namespaceObj : this.namespaceObjects) + id;\n client.sendArray(null, ['pmessage', sendPattern, sendId, objString]);\n }\n return 1;\n }\n return 0;\n }\n\n /**\n * Generate ID for a File\n * @param id ID of the File\n * @param name Name of the file\n * @param isMeta generate a META ID or a Data ID?\n * @returns {string} File-ID\n */\n getFileId(id, name, isMeta) {\n // e.g. ekey.admin and admin/ekey.png\n if (id.endsWith('.admin')) {\n if (name.startsWith('admin/')) {\n name = name.replace(/^admin\\//, '');\n } else if (name.match(/^iobroker.[-\\d\\w]\\/admin\\//i)) {\n // e.g. ekey.admin and iobroker.ekey/admin/ekey.png\n name = name.replace(/^iobroker.[-\\d\\w]\\/admin\\//i, '');\n }\n }\n\n return this.namespaceFile + id + '$%$' + name + (isMeta !== undefined ? (isMeta ? '$%$meta' : '$%$data') : '');\n }\n\n /**\n * Register all event listeners for Handler and implement the relevant logic\n * @param handler RedisHandler instance\n * @private\n */\n _socketEvents(handler) {\n let connectionName = null;\n let namespaceLog = this.namespace;\n\n // Handle Redis \"INFO\" request\n handler.on('info', (_data, responseId) => {\n let infoString = '# Server\\r\\n';\n infoString += 'redis_version:3.0.0-iobroker\\r\\n';\n infoString += '# Clients\\r\\n';\n infoString += '# Memory\\r\\n';\n infoString += '# Persistence\\r\\n';\n infoString += '# Stats\\r\\n';\n infoString += '# Replication\\r\\n';\n infoString += '# CPU\\r\\n';\n infoString += '# Cluster\\r\\n';\n infoString += '# Keyspace\\r\\n';\n infoString += `db0:keys=${Object.keys(this.dataset).length},expires=0,avg_ttl=98633637897`;\n handler.sendBulk(responseId, infoString);\n });\n\n // Handle Redis \"QUIT\" request\n handler.on('quit', (_data, responseId) => {\n this.log.silly(namespaceLog + ' Redis QUIT received, close connection');\n handler.sendString(responseId, 'OK');\n handler.close();\n });\n\n // Handle Redis \"SCRIPT\" request\n handler.on('script', (data, responseId) => {\n data[0] = data[0].toLowerCase();\n if (data[0] === 'exists') {\n data.shift();\n const scripts = [];\n data.forEach(checksum => scripts.push(this.knownScripts[checksum] ? 1 : 0));\n handler.sendArray(responseId, scripts);\n } else if (data[0] === 'load') {\n const shasum = crypto.createHash('sha1');\n const buf = Buffer.from(data[1]);\n shasum.update(buf);\n const scriptChecksum = shasum.digest('hex');\n\n const scriptDesign = data[1].match(/^-- design: ([a-z0-9A-Z-.]+)\\s/m);\n const scriptFunc = data[1].match(/^-- func: (.+)$/m);\n if (scriptDesign && scriptDesign[1]) {\n const design = scriptDesign[1];\n let search = null;\n const scriptSearch = data[1].match(/^-- search: ([a-z0-9A-Z-.]*)\\s/m);\n if (scriptSearch && scriptSearch[1]) {\n search = scriptSearch[1];\n }\n\n this.knownScripts[scriptChecksum] = { design: design, search: search };\n if (this.settings.connection.enhancedLogging) {\n this.log.silly(\n `${namespaceLog} Register View LUA Script: ${scriptChecksum} = ${JSON.stringify(\n this.knownScripts[scriptChecksum]\n )}`\n );\n }\n handler.sendBulk(responseId, scriptChecksum);\n } else if (scriptFunc && scriptFunc[1]) {\n this.knownScripts[scriptChecksum] = { func: scriptFunc[1] };\n if (this.settings.connection.enhancedLogging) {\n this.log.silly(\n `${namespaceLog} Register Func LUA Script: ${scriptChecksum} = ${JSON.stringify(\n this.knownScripts[scriptChecksum]\n )}`\n );\n }\n handler.sendBulk(responseId, scriptChecksum);\n } else if (data[1].includes('-- REDLOCK SCRIPT')) {\n // redlock scripts are currently not needed for Simulator\n this.knownScripts[scriptChecksum] = { redlock: true };\n if (this.settings.connection.enhancedLogging) {\n this.log.silly(\n `${namespaceLog} Register Func LUA Script: ${scriptChecksum} = ${JSON.stringify(\n this.knownScripts[scriptChecksum]\n )}`\n );\n }\n handler.sendBulk(responseId, scriptChecksum);\n } else {\n handler.sendError(responseId, new Error(`Unknown LUA script ${data[1]}`));\n }\n } else {\n handler.sendError(responseId, new Error(`Unsupported Script command ${data[0]}`));\n }\n });\n\n // Handle Redis \"EVALSHA\" request\n handler.on('evalsha', (data, responseId) => {\n if (!this.knownScripts[data[0]]) {\n return void handler.sendError(responseId, new Error(`Unknown Script ${data[0]}`));\n }\n if (this.knownScripts[data[0]].design) {\n const scriptDesign = this.knownScripts[data[0]].design;\n if (typeof data[2] === 'string' && data[2].startsWith(this.namespaceObj) && data.length > 4) {\n let scriptSearch = this.knownScripts[data[0]].search;\n if (scriptDesign === 'system' && !scriptSearch && data[5]) {\n scriptSearch = data[5];\n }\n if (!scriptSearch) {\n scriptSearch = 'state';\n }\n if (this.settings.connection.enhancedLogging) {\n this.log.silly(\n `${namespaceLog} Script transformed into getObjectView: design=${scriptDesign}, search=${scriptSearch}`\n );\n }\n let objs;\n try {\n objs = this._getObjectView(scriptDesign, scriptSearch, {\n startkey: data[3],\n endkey: data[4],\n include_docs: true\n });\n } catch (err) {\n return void handler.sendError(\n responseId,\n new Error(`_getObjectView Error for ${scriptDesign}/${scriptSearch}: ${err.message}`)\n );\n }\n\n const res = objs.rows.map(obj => JSON.stringify(this.dataset[obj.value._id || obj.id]));\n handler.sendArray(responseId, res);\n }\n } else if (this.knownScripts[data[0]].func && data.length > 4) {\n const scriptFunc = { map: this.knownScripts[data[0]].func.replace('%1', data[5]) };\n if (this.settings.connection.enhancedLogging) {\n this.log.silly(`${namespaceLog} Script transformed into _applyView: func=${scriptFunc.map}`);\n }\n const objs = this._applyView(scriptFunc, {\n startkey: data[3],\n endkey: data[4],\n include_docs: true\n });\n const res = objs.rows.map(obj => JSON.stringify(this.dataset[obj.value._id || obj.id]));\n\n return void handler.sendArray(responseId, res);\n } else if (this.knownScripts[data[0]].redlock) {\n // just return a dummy\n return void handler.sendArray(responseId, [0]);\n } else {\n handler.sendError(responseId, new Error(`Unknown LUA script eval call ${JSON.stringify(data)}`));\n }\n });\n\n // Handle Redis \"PUBLISH\" request\n handler.on('publish', (data, responseId) => {\n const { id, namespace } = this._normalizeId(data[0]);\n\n if (\n namespace === this.namespaceObj ||\n namespace === this.namespaceMeta ||\n namespace === this.namespaceFile\n ) {\n // a \"set\" always comes afterwards, so do not publish\n return void handler.sendInteger(responseId, 0); // do not publish for now\n }\n const publishCount = this.publishAll(namespace.substr(0, namespace.length - 1), id, JSON.parse(data[1]));\n handler.sendInteger(responseId, publishCount);\n });\n\n // Handle Redis \"MGET\" requests\n handler.on('mget', (data, responseId) => {\n if (!data || !data.length) {\n return void handler.sendArray(responseId, []);\n }\n const { namespace, isMeta } = this._normalizeId(data[0]);\n\n if (namespace === this.namespaceObj) {\n const keys = [];\n data.forEach(dataId => {\n const { id, namespace } = this._normalizeId(dataId);\n if (namespace !== this.namespaceObj) {\n keys.push(null);\n this.log.warn(\n `${namespaceLog} Got MGET request for non Object-ID in Objects-ID chunk for ${namespace} / ${dataId}`\n );\n return;\n }\n keys.push(id);\n });\n let result;\n try {\n result = this._getObjects(keys);\n } catch (err) {\n return void handler.sendError(responseId, new Error('ERROR _getObjects: ' + err.message));\n }\n result = result.map(el => (el ? JSON.stringify(el) : null));\n handler.sendArray(responseId, result);\n } else if (namespace === this.namespaceFile) {\n // Handle request for Meta data for files\n if (isMeta) {\n const response = [];\n data.forEach(dataId => {\n const { id, namespace, name } = this._normalizeId(dataId);\n if (namespace !== this.namespaceFile) {\n response.push(null);\n this.log.warn(\n `${namespaceLog} Got MGET request for non File ID in File-ID chunk for ${dataId}`\n );\n return;\n }\n this._loadFileSettings(id);\n if (!this.fileOptions[id] || !this.fileOptions[id][name]) {\n response.push(null);\n return;\n }\n const obj = this._clone(this.fileOptions[id][name]);\n try {\n // @ts-ignore\n obj.stats = fs.statSync(path.join(this.objectsDir, id, name));\n } catch (err) {\n if (!name.endsWith('/_data.json')) {\n this.log.warn(\n `${namespaceLog} Got MGET request for non existing file ${dataId}, err: ${err.message}`\n );\n }\n response.push(null);\n return;\n }\n response.push(JSON.stringify(obj));\n });\n handler.sendArray(responseId, response);\n } else {\n // Handle request for File data\n handler.sendError(responseId, new Error('MGET-UNSUPPORTED for file data'));\n }\n } else {\n handler.sendError(\n responseId,\n new Error(`MGET-UNSUPPORTED for namespace ${namespace}: Data=${JSON.stringify(data)}`)\n );\n }\n });\n\n // Handle Redis \"GET\" requests\n handler.on('get', (data, responseId) => {\n const { id, namespace, name, isMeta } = this._normalizeId(data[0]);\n\n if (namespace === this.namespaceObj) {\n const result = this._getObject(id);\n if (!result) {\n handler.sendNull(responseId);\n } else {\n handler.sendBulk(responseId, JSON.stringify(result));\n }\n } else if (namespace === this.namespaceFile) {\n // Handle request for Meta data for files\n if (isMeta) {\n let stats;\n try {\n stats = fs.statSync(path.join(this.objectsDir, id, name));\n } catch {\n return void handler.sendNull(responseId);\n }\n if (stats.isDirectory()) {\n return void handler.sendBulk(\n responseId,\n JSON.stringify({\n file: name,\n stats: {},\n isDir: true\n })\n );\n }\n this._loadFileSettings(id);\n if (!this.fileOptions[id] || !this.fileOptions[id][name]) {\n return void handler.sendNull(responseId);\n }\n\n let obj = this._clone(this.fileOptions[id][name]);\n if (typeof obj !== 'object') {\n obj = {\n mimeType: obj,\n acl: {\n owner:\n (this.defaultNewAcl && this.defaultNewAcl.owner) || utils.CONSTS.SYSTEM_ADMIN_USER,\n ownerGroup:\n (this.defaultNewAcl && this.defaultNewAcl.ownerGroup) ||\n utils.CONSTS.SYSTEM_ADMIN_GROUP,\n permissions:\n (this.defaultNewAcl && this.defaultNewAcl.file.permissions) ||\n utils.CONSTS.ACCESS_USER_ALL |\n utils.CONSTS.ACCESS_GROUP_ALL |\n utils.CONSTS.ACCESS_EVERY_ALL // 777\n }\n };\n }\n obj.stats = stats;\n handler.sendBulk(responseId, JSON.stringify(obj));\n } else {\n // Handle request for File data\n let data;\n try {\n data = this._readFile(id, name);\n } catch {\n return void handler.sendNull(responseId);\n }\n if (data.fileContent === undefined || data.fileContent === null) {\n return void handler.sendNull(responseId);\n }\n let fileData = data.fileContent;\n if (!Buffer.isBuffer(fileData) && tools.isObject(fileData)) {\n // if its an invalid object, stringify it and log warning\n fileData = JSON.stringify(fileData);\n this.log.warn(\n `${namespaceLog} Data of \"${id}/${name}\" has invalid structure at file data request: ${fileData}`\n );\n }\n handler.sendBufBulk(responseId, Buffer.from(fileData));\n }\n } else if (namespace === this.namespaceMeta) {\n // special handling for the primaryHost\n if (id === 'objects.primaryHost') {\n // we are the server -> we are primary\n handler.sendString(this.settings.hostname);\n } else {\n const result = this.getMeta(id);\n if (result === undefined || result === null) {\n handler.sendNull(responseId);\n } else {\n handler.sendBulk(responseId, result);\n }\n }\n } else {\n handler.sendError(\n responseId,\n new Error(`GET-UNSUPPORTED for namespace ${namespace}: Data=${JSON.stringify(data)}`)\n );\n }\n });\n\n // Handle Redis \"SET\" requests\n handler.on('set', (data, responseId) => {\n const { id, namespace, name, isMeta } = this._normalizeId(data[0]);\n\n if (namespace === this.namespaceObj) {\n try {\n const obj = JSON.parse(data[1].toString('utf-8'));\n this._setObjectDirect(id, obj);\n } catch (err) {\n return void handler.sendError(responseId, new Error(`ERROR setObject id=${id}: ${err.message}`));\n }\n handler.sendString(responseId, 'OK');\n } else if (namespace === this.namespaceFile) {\n // Handle request to set meta-data, we ignore it because\n // will be set when data are written\n if (isMeta) {\n this._loadFileSettings(id);\n\n try {\n fs.ensureDirSync(path.join(this.objectsDir, id, path.dirname(name)));\n\n // only set if the meta-object is already/still existing\n if (this.fileOptions[id]) {\n this.fileOptions[id][name] = JSON.parse(data[1].toString('utf-8'));\n fs.writeFileSync(\n path.join(this.objectsDir, id, '_data.json'),\n JSON.stringify(this.fileOptions[id])\n );\n }\n } catch (err) {\n return void handler.sendError(\n responseId,\n new Error(`ERROR writeFile-Meta id=${id}: ${err.message}`)\n );\n }\n handler.sendString(responseId, 'OK');\n } else {\n // Handle request to write the file\n try {\n this._writeFile(id, name, data[1]);\n } catch (err) {\n return void handler.sendError(\n responseId,\n new Error(`ERROR writeFile id=${id}: ${err.message}`)\n );\n }\n handler.sendString(responseId, 'OK');\n }\n } else if (namespace === this.namespaceMeta) {\n this.setMeta(id, data[1].toString('utf-8'));\n handler.sendString(responseId, 'OK');\n } else {\n handler.sendError(\n responseId,\n new Error(`SET-UNSUPPORTED for namespace ${namespace}: Data=${JSON.stringify(data)}`)\n );\n }\n });\n\n // Handle Redis \"RENAME\" requests\n handler.on('rename', (data, responseId) => {\n const oldDetails = this._normalizeId(data[0]);\n const newDetails = this._normalizeId(data[1]);\n\n if (oldDetails.namespace === this.namespaceFile) {\n if (oldDetails.id !== newDetails.id) {\n return void handler.sendError(\n responseId,\n new Error('ERROR renameObject: id needs to stay the same')\n );\n }\n\n // Handle request for Meta data for files\n if (oldDetails.isMeta) {\n handler.sendString(responseId, 'OK');\n } else {\n // Handle request for File data\n try {\n this._rename(oldDetails.id, oldDetails.name, newDetails.name);\n } catch {\n return void handler.sendNull(responseId);\n }\n handler.sendString(responseId, 'OK');\n }\n } else {\n handler.sendError(\n responseId,\n new Error(`RENAME-UNSUPPORTED for namespace ${oldDetails.namespace}: Data=${JSON.stringify(data)}`)\n );\n }\n });\n\n // Handle Redis \"DEL\" request for state and session namespace\n handler.on('del', (data, responseId) => {\n const { id, namespace, name, isMeta } = this._normalizeId(data[0]);\n\n if (namespace === this.namespaceObj) {\n try {\n this._delObject(id);\n } catch (err) {\n return void handler.sendError(responseId, err);\n }\n handler.sendInteger(responseId, 1);\n } else if (namespace === this.namespaceFile) {\n // Handle request to delete meta-data, we ignore it because\n // will be removed when data are deleted\n if (isMeta) {\n handler.sendString(responseId, 'OK');\n } else {\n // Handle request to remove the file\n try {\n this._unlink(id, name);\n } catch (err) {\n return void handler.sendError(responseId, err);\n }\n handler.sendString(responseId, 'OK');\n }\n } else {\n handler.sendError(\n responseId,\n new Error(`DEL-UNSUPPORTED for namespace ${namespace}: Data=${JSON.stringify(data)}`)\n );\n }\n });\n\n handler.on('exists', (data, responseId) => {\n if (!data || !data.length) {\n return void handler.sendInteger(responseId, 0);\n }\n\n // Note: we only simulate single key existence check\n const { id, namespace, name } = this._normalizeId(data[0]);\n\n if (namespace === this.namespaceObj) {\n let exists;\n try {\n exists = this._objectExists(id);\n } catch (e) {\n return void handler.sendError(responseId, e);\n }\n handler.sendInteger(responseId, exists ? 1 : 0);\n } else if (namespace === this.namespaceFile) {\n let exists;\n try {\n exists = this._fileExists(id, name);\n } catch (e) {\n return void handler.sendError(responseId, e);\n }\n handler.sendInteger(responseId, exists ? 1 : 0);\n } else if (namespace === this.namespaceSet) {\n // we are not using sets in simulator, so just say it exists\n return void handler.sendInteger(responseId, 1);\n } else {\n handler.sendError(responseId, new Error(`EXISTS-UNSUPPORTED for namespace ${namespace}`));\n }\n });\n\n // handle Redis \"SCAN\" request for objects namespace\n handler.on('scan', (data, responseId) => {\n if (!data || data.length < 3) {\n return void handler.sendArray(responseId, ['0', []]);\n }\n\n return this._handleScanOrKeys(handler, data[2], responseId, true);\n });\n\n // Handle Redis \"KEYS\" request for state namespace\n handler.on('keys', (data, responseId) => {\n if (!data || !data.length) {\n return void handler.sendArray(responseId, []);\n }\n\n return this._handleScanOrKeys(handler, data[0], responseId);\n });\n\n // commands for redis SETS, just dummies\n handler.on('sadd', (data, responseId) => {\n return void handler.sendInteger(responseId, 1);\n });\n\n handler.on('srem', (data, responseId) => {\n return void handler.sendInteger(responseId, 1);\n });\n\n handler.on('eval', (data, responseId) => {\n return void handler.sendNull(responseId);\n });\n\n handler.on('sscan', (data, responseId) => {\n // for file DB it does the same as scan but data looks different\n if (!data || data.length < 4) {\n return void handler.sendArray(responseId, ['0', []]);\n }\n\n return this._handleScanOrKeys(handler, data[3], responseId, true);\n });\n\n // Handle Redis \"PSUBSCRIBE\" request for state, log and session namespace\n handler.on('psubscribe', (data, responseId) => {\n const { id, namespace, name } = this._normalizeId(data[0]);\n\n if (namespace === this.namespaceObj) {\n this._subscribeConfigForClient(handler, id);\n handler.sendArray(responseId, ['psubscribe', data[0], 1]);\n } else if (namespace === this.namespaceMeta) {\n this._subscribeMeta(handler, id);\n handler.sendArray(responseId, ['psubscribe', data[0], 1]);\n } else if (namespace === this.namespaceFile) {\n this._subscribeFileForClient(handler, id, name);\n handler.sendArray(responseId, ['psubscribe', data[0], 1]);\n } else {\n handler.sendError(\n responseId,\n new Error(`PSUBSCRIBE-UNSUPPORTED for namespace ${namespace}: Data=${JSON.stringify(data)}`)\n );\n }\n });\n\n // Handle Redis \"UNSUBSCRIBE\" request for state, log and session namespace\n handler.on('punsubscribe', (data, responseId) => {\n const { id, namespace, name } = this._normalizeId(data[0]);\n\n if (namespace === this.namespaceObj) {\n this._unsubscribeConfigForClient(handler, id);\n handler.sendArray(responseId, ['punsubscribe', data[0], 1]);\n } else if (namespace === this.namespaceFile) {\n this._unsubscribeFileForClient(handler, id, name);\n handler.sendArray(responseId, ['punsubscribe', data[0], 1]);\n } else {\n handler.sendError(\n responseId,\n new Error(`PUNSUBSCRIBE-UNSUPPORTED for namespace ${namespace}: Data=${JSON.stringify(data)}`)\n );\n }\n });\n\n // Handle Redis \"SUBSCRIBE\" ... currently mainly ignored\n handler.on('subscribe', (data, responseId) => {\n if (data[0].startsWith('__keyevent@')) {\n // we ignore these type of events because we publish expires anyway directly\n handler.sendArray(responseId, ['subscribe', data[0], 1]);\n } else {\n handler.sendError(responseId, new Error(`SUBSCRIBE-UNSUPPORTED for ${data[0]}`));\n }\n });\n\n // Handle Redis \"CONFIG\" ... currently mainly ignored\n handler.on('config', (data, responseId) => {\n const command = typeof data[0] === 'string' ? data[0].toLowerCase() : data[0].toString().toLowerCase();\n if (command === 'set' && data[1] === 'notify-keyspace-events') {\n // we ignore these type of commands for now, should only be to subscribe to keyspace events\n handler.sendString(responseId, 'OK');\n } else if (command === 'set' && data[1] === 'lua-time-limit') {\n // we ignore these type of commands for now, irrelevant\n handler.sendString(responseId, 'OK');\n } else {\n handler.sendError(responseId, new Error(`CONFIG-UNSUPPORTED for ${JSON.stringify(data)}`));\n }\n });\n\n // handle client SETNAME/GETNAME\n handler.on('client', (data, responseId) => {\n if (data[0] === 'setname' && typeof data[1] === 'string') {\n if (data[1] === '') {\n // on empty string redis sets null again and sends 'OK'\n connectionName = null;\n } else {\n connectionName = data[1];\n namespaceLog = connectionName;\n }\n handler.sendString(responseId, 'OK');\n } else if (data[0] === 'getname') {\n if (typeof connectionName === 'string' && connectionName !== '') {\n handler.sendString(responseId, connectionName);\n } else {\n // redis sends null if no name defined\n handler.sendNull(responseId);\n }\n } else {\n handler.sendError(responseId, new Error(`CLIENT-UNSUPPORTED for ${JSON.stringify(data)}`));\n }\n });\n\n handler.on('error', err => this.log.warn(`${namespaceLog} Redis objects: ${err}`));\n }\n\n /**\n * Return connected RedisHandlers/Connections\n * @returns {{}|*}\n */\n getClients() {\n return this.serverConnections;\n }\n\n /**\n * Destructor of the class. Called by shutting down.\n */\n async destroy() {\n if (this.server) {\n Object.keys(this.serverConnections).forEach(s => {\n this.serverConnections[s].close();\n delete this.serverConnections[s];\n });\n\n await new Promise(resolve => {\n if (!this.server) {\n return void resolve();\n }\n try {\n this.server.close(() => resolve());\n } catch (e) {\n console.log(e.message);\n resolve();\n }\n });\n }\n\n await super.destroy();\n }\n\n /**\n * Get keys matching pattern and send it to given responseId, for \"SCAN\" and \"KEYS\" - Objects and files supported\n *\n * @param handler RedisHandler instance\n * @param {string} pattern - pattern without namespace prefix\n * @param {number} responseId - Id where response will be sent to\n * @param {boolean} isScan - if used by \"SCAN\" this flag should be true\n * @private\n */\n _handleScanOrKeys(handler, pattern, responseId, isScan = false) {\n const { id, namespace, name, isMeta } = this._normalizeId(pattern);\n\n let response = [];\n if (namespace === this.namespaceObj || namespace === this.namespaceObjects) {\n try {\n response = this._getKeys(id).map(val => this.namespaceObj + val);\n } catch (e) {\n return void handler.sendError(responseId, e);\n }\n\n // if scan, we send the cursor as first argument\n if (namespace !== this.namespaceObjects) {\n // When it was not the full DB namespace send out response\n return void handler.sendArray(responseId, isScan ? ['0', response] : response);\n }\n }\n if (namespace === this.namespaceFile || namespace === this.namespaceObjects) {\n // Handle request to get meta data keys\n if (isMeta === undefined) {\n let res;\n try {\n res = this._readDir(id, name);\n if (!res || !res.length) {\n res = [\n {\n file: '_data.json',\n stats: {},\n isDir: false,\n virtualFile: true,\n notExists: true\n }\n ];\n }\n } catch (e) {\n if (!e.message.endsWith(utils.ERRORS.ERROR_NOT_FOUND)) {\n return void handler.sendError(responseId, new Error(`ERROR readDir id=${id}: ${e.message}`));\n }\n res = [];\n }\n let baseName = name || '';\n if (baseName.length && !baseName.endsWith('/')) {\n baseName += '/';\n }\n res.forEach(arr => {\n let entryId = id;\n if (arr.isDir) {\n if (entryId === '' || entryId === '*') {\n entryId = arr.file;\n arr.file = '_data.json'; // We return a \"virtual file\" to mark the directory as existing\n } else {\n arr.file += '/_data.json'; // We return a \"virtual file\" to mark the directory as existing\n }\n }\n // We need to simulate the Meta data here, so return both\n response.push(this.getFileId(entryId, baseName + arr.file, true));\n response.push(this.getFileId(entryId, baseName + arr.file, false));\n });\n handler.sendArray(responseId, isScan ? ['0', response] : response); // send out file or full db response\n } else {\n // such a request should never happen\n handler.sendArray(responseId, isScan ? ['0', []] : []); // send out file or full db response\n }\n } else if (namespace === this.namespaceSet) {\n handler.sendArray(responseId, isScan ? ['0', []] : []); // send out empty array, we have no sets\n } else {\n handler.sendError(\n responseId,\n new Error(`${isScan ? 'SCAN' : 'KEYS'}-UNSUPPORTED for namespace ${namespace}: Pattern=${pattern}`)\n );\n }\n }\n\n /**\n * Initialize RedisHandler for a new network connection\n * @param socket Network socket\n * @private\n */\n _initSocket(socket) {\n if (this.settings.connection.enhancedLogging) {\n this.log.silly(this.namespace + ' Handling new Redis Objects connection');\n }\n const options = {\n log: this.log,\n logScope: `${this.settings.namespace || ''} Objects`,\n handleAsBuffers: true,\n enhancedLogging: this.settings.connection.enhancedLogging\n };\n const handler = new RedisHandler(socket, options);\n this._socketEvents(handler);\n\n this.serverConnections[socket.remoteAddress + ':' + socket.remotePort] = handler;\n socket.on('close', () => {\n if (this.serverConnections[socket.remoteAddress + ':' + socket.remotePort]) {\n delete this.serverConnections[socket.remoteAddress + ':' + socket.remotePort];\n }\n });\n }\n\n /**\n * Initialize Redis Server\n * @param settings Settings object\n * @private\n * @return {Promise<void>}\n */\n _initRedisServer(settings) {\n return new Promise((resolve, reject) => {\n if (settings.secure) {\n reject(new Error('Secure Redis unsupported for JSONL-DB'));\n }\n try {\n this.server = net.createServer();\n this.server.on('error', err =>\n this.log.info(\n `${this.namespace} ${settings.secure ? 'Secure ' : ''} Error inMem-objects listening on port ${\n settings.port || 9001\n }: ${err}`\n )\n );\n this.server.on('connection', socket => this._initSocket(socket));\n\n this.server.listen(\n settings.port || 9001,\n settings.host === 'localhost' ? getLocalAddress() : settings.host ? settings.host : undefined,\n () => resolve()\n );\n } catch (err) {\n reject(err);\n }\n });\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["import_db_base", "id", "crypto", "namespace", "fs", "path", "utils", "data", "net"]
7
7
  }
@@ -9,8 +9,7 @@ export class ObjectsInMemoryServer extends ObjectsInMemoryJsonlDB {
9
9
  * @param settings State and InMem-DB settings
10
10
  */
11
11
  constructor(settings: any);
12
- /** @type {Map<string, SubscriptionClient>} */
13
- serverConnections: Map<string, SubscriptionClient>;
12
+ serverConnections: {};
14
13
  namespaceObjects: string;
15
14
  namespaceFile: string;
16
15
  namespaceObj: string;
@@ -31,25 +30,15 @@ export class ObjectsInMemoryServer extends ObjectsInMemoryJsonlDB {
31
30
  * @private
32
31
  */
33
32
  private _normalizeId;
34
- /**
35
- * Publish a subscribed value to one of the redis connection by pattern in redis format
36
- *
37
- * @param patternInformation all redis handler for given pattern and pattern itself
38
- * @param type Type of subscribed key
39
- * @param id Subscribed ID
40
- * @param obj Object to publish
41
- * @returns Publish counter
42
- */
43
- publishPattern(patternInformation: any, type: any, id: any, obj: any): number;
44
33
  /**
45
34
  * Publish a subscribed value to one of the redis connections in redis format
46
- * @param clientOptions Instance of RedisHandler and pattern
35
+ * @param client Instance of RedisHandler
47
36
  * @param type Type of subscribed key
48
37
  * @param id Subscribed ID
49
38
  * @param obj Object to publish
50
- * @returns Publish counter 0 or 1 depending on if send out or not
39
+ * @returns {number} Publish counter 0 or 1 depending on if send out or not
51
40
  */
52
- publishToClient(clientOptions: any, type: any, id: any, obj: any): number;
41
+ publishToClients(client: any, type: any, id: any, obj: any): number;
53
42
  /**
54
43
  * Generate ID for a File
55
44
  * @param id ID of the File
@@ -1 +1 @@
1
- {"version":3,"file":"objectsInMemServerRedis.d.ts","sourceRoot":"","sources":["../../../../src/lib/objects/objectsInMemServerRedis.js"],"names":[],"mappings":";AA0CA;;;IAGI;AACJ;IACI;;;OAGG;IACH,2BA8CC;IA3CG,8CAA8C;IAC9C,mBADW,IAAI,MAAM,qBAAqB,CACR;IAClC,yBAEO;IACP,sBAAiD;IACjD,qBAAgD;IAChD,qBAAgD;IAChD,wBAA+C;IAE/C,yBAAiD;IACjD,wBAA+C;IAC/C,sBAAgE;IAChE,yBAAiD;IAEjD,iBAAsB;IAEtB,4BAA4E;IAC5E,4BAAiE;IA2BrE;;;;;;OAMG;IACH,qBAwDC;IAED;;;;;;;;OAQG;IACH,8EAYC;IAED;;;;;;;OAOG;IACH,0EAuBC;IAED;;;;;;OAMG;IACH,4CAFa,MAAM,CAclB;IAED;;;;OAIG;IACH,sBA0mBC;IAED;;;OAGG;IACH,cAFa,EAAE,MAAE,CAIhB;IA4BD;;;;;;;;OAQG;IACH,0BAuEC;IAED;;;;OAIG;IACH,oBAmBC;IAED;;;;;OAKG;IACH,yBAyBC;IAnBW,+BAAgC;CAoB/C;uCA9/BsC,0BAA0B;gBATjD,UAAU"}
1
+ {"version":3,"file":"objectsInMemServerRedis.d.ts","sourceRoot":"","sources":["../../../../src/lib/objects/objectsInMemServerRedis.js"],"names":[],"mappings":";AA0CA;;;IAGI;AACJ;IACI;;;OAGG;IACH,2BA8CC;IA3CG,sBAA2B;IAC3B,yBAEO;IACP,sBAAiD;IACjD,qBAAgD;IAChD,qBAAgD;IAChD,wBAA+C;IAG/C,yBAAiD;IACjD,wBAA+C;IAC/C,sBAAgE;IAChE,yBAAiD;IAEjD,iBAAsB;IAEtB,4BAA4E;IAC5E,4BAAiE;IA2BrE;;;;;;OAMG;IACH,qBAwDC;IAED;;;;;;;OAOG;IACH,6DAFa,MAAM,CAgClB;IAED;;;;;;OAMG;IACH,4CAFa,MAAM,CAclB;IAED;;;;OAIG;IACH,sBA0mBC;IAED;;;OAGG;IACH,cAFa,EAAE,MAAE,CAIhB;IA4BD;;;;;;;;OAQG;IACH,0BAuEC;IAED;;;;OAIG;IACH,oBAmBC;IAED;;;;;OAKG;IACH,yBAyBC;IAnBW,+BAAgC;CAoB/C;uCA9+BsC,0BAA0B;gBATjD,UAAU"}
@@ -47,8 +47,7 @@ export class ObjectsInMemoryServer extends ObjectsInMemoryJsonlDB {
47
47
  */
48
48
  constructor(settings) {
49
49
  super(settings);
50
- /** @type {Map<string, SubscriptionClient>} */
51
- this.serverConnections = new Map();
50
+ this.serverConnections = {};
52
51
  this.namespaceObjects =
53
52
  (this.settings.redisNamespace || (settings.connection && settings.connection.redisNamespace) || 'cfg') +
54
53
  '.';
@@ -56,6 +55,7 @@ export class ObjectsInMemoryServer extends ObjectsInMemoryJsonlDB {
56
55
  this.namespaceObj = this.namespaceObjects + 'o.';
57
56
  this.namespaceSet = this.namespaceObjects + 's.';
58
57
  this.namespaceSetLen = this.namespaceSet.length;
58
+ // this.namespaceObjectsLen = this.namespaceObjects.length;
59
59
  this.namespaceFileLen = this.namespaceFile.length;
60
60
  this.namespaceObjLen = this.namespaceObj.length;
61
61
  this.namespaceMeta = `${this.settings.namespaceMeta || 'meta'}.`;
@@ -151,56 +151,44 @@ export class ObjectsInMemoryServer extends ObjectsInMemoryJsonlDB {
151
151
  }
152
152
  return { id, namespace: ns, name, isMeta };
153
153
  }
154
- /**
155
- * Publish a subscribed value to one of the redis connection by pattern in redis format
156
- *
157
- * @param patternInformation all redis handler for given pattern and pattern itself
158
- * @param type Type of subscribed key
159
- * @param id Subscribed ID
160
- * @param obj Object to publish
161
- * @returns Publish counter
162
- */
163
- publishPattern(patternInformation, type, id, obj) {
164
- let publishCount = 0;
165
- if (!patternInformation.regex.test(id)) {
166
- return publishCount;
167
- }
168
- for (const client of patternInformation.clients) {
169
- publishCount += this.publishToClient(client, type, id, obj);
170
- }
171
- return publishCount;
172
- }
173
154
  /**
174
155
  * Publish a subscribed value to one of the redis connections in redis format
175
- * @param clientOptions Instance of RedisHandler and pattern
156
+ * @param client Instance of RedisHandler
176
157
  * @param type Type of subscribed key
177
158
  * @param id Subscribed ID
178
159
  * @param obj Object to publish
179
- * @returns Publish counter 0 or 1 depending on if send out or not
160
+ * @returns {number} Publish counter 0 or 1 depending on if send out or not
180
161
  */
181
- publishToClient(clientOptions, type, id, obj) {
182
- const { client, pattern } = clientOptions;
183
- if (type === 'meta') {
184
- this.log.silly(`${this.namespace} Redis Publish Meta ${id}=${obj}`);
185
- const sendPattern = this.namespaceMeta + pattern;
186
- const sendId = this.namespaceMeta + id;
187
- client.sendArray(null, ['pmessage', sendPattern, sendId, obj]);
188
- }
189
- else if (type === 'files') {
190
- const objString = JSON.stringify(obj);
191
- this.log.silly(`${this.namespace} Redis Publish File ${id}=${objString}`);
192
- const sendPattern = this.namespaceFile + pattern;
193
- const sendId = this.namespaceFile + id;
194
- client.sendArray(null, ['pmessage', sendPattern, sendId, objString]);
162
+ publishToClients(client, type, id, obj) {
163
+ if (!client._subscribe || !client._subscribe[type]) {
164
+ return 0;
195
165
  }
196
- else {
197
- const objString = JSON.stringify(obj);
198
- this.log.silly(`${this.namespace} Redis Publish Object ${id}=${objString}`);
199
- const sendPattern = (type === 'objects' ? '' : this.namespaceObjects) + pattern;
200
- const sendId = (type === 'objects' ? this.namespaceObj : this.namespaceObjects) + id;
201
- client.sendArray(null, ['pmessage', sendPattern, sendId, objString]);
166
+ const s = client._subscribe[type];
167
+ const found = s.find(sub => sub.regex.test(id));
168
+ if (found) {
169
+ if (type === 'meta') {
170
+ this.log.silly(`${this.namespace} Redis Publish Meta ${id}=${obj}`);
171
+ const sendPattern = this.namespaceMeta + found.pattern;
172
+ const sendId = this.namespaceMeta + id;
173
+ client.sendArray(null, ['pmessage', sendPattern, sendId, obj]);
174
+ }
175
+ else if (type === 'files') {
176
+ const objString = JSON.stringify(obj);
177
+ this.log.silly(`${this.namespace} Redis Publish File ${id}=${objString}`);
178
+ const sendPattern = this.namespaceFile + found.pattern;
179
+ const sendId = this.namespaceFile + id;
180
+ client.sendArray(null, ['pmessage', sendPattern, sendId, objString]);
181
+ }
182
+ else {
183
+ const objString = JSON.stringify(obj);
184
+ this.log.silly(`${this.namespace} Redis Publish Object ${id}=${objString}`);
185
+ const sendPattern = (type === 'objects' ? '' : this.namespaceObjects) + found.pattern;
186
+ const sendId = (type === 'objects' ? this.namespaceObj : this.namespaceObjects) + id;
187
+ client.sendArray(null, ['pmessage', sendPattern, sendId, objString]);
188
+ }
189
+ return 1;
202
190
  }
203
- return 1;
191
+ return 0;
204
192
  }
205
193
  /**
206
194
  * Generate ID for a File
@@ -803,10 +791,10 @@ export class ObjectsInMemoryServer extends ObjectsInMemoryJsonlDB {
803
791
  */
804
792
  async destroy() {
805
793
  if (this.server) {
806
- for (const [connName, connection] of this.serverConnections) {
807
- connection.close();
808
- this.serverConnections.delete(connName);
809
- }
794
+ Object.keys(this.serverConnections).forEach(s => {
795
+ this.serverConnections[s].close();
796
+ delete this.serverConnections[s];
797
+ });
810
798
  await new Promise(resolve => {
811
799
  if (!this.server) {
812
800
  return void resolve();
@@ -921,10 +909,10 @@ export class ObjectsInMemoryServer extends ObjectsInMemoryJsonlDB {
921
909
  };
922
910
  const handler = new RedisHandler(socket, options);
923
911
  this._socketEvents(handler);
924
- this.serverConnections.set(`${socket.remoteAddress}:${socket.remotePort}`, handler);
912
+ this.serverConnections[socket.remoteAddress + ':' + socket.remotePort] = handler;
925
913
  socket.on('close', () => {
926
- if (this.serverConnections.has(`${socket.remoteAddress}:${socket.remotePort}`)) {
927
- this.serverConnections.delete(`${socket.remoteAddress}:${socket.remotePort}`);
914
+ if (this.serverConnections[socket.remoteAddress + ':' + socket.remotePort]) {
915
+ delete this.serverConnections[socket.remoteAddress + ':' + socket.remotePort];
928
916
  }
929
917
  });
930
918
  }
@@ -1 +1 @@
1
- {"version":3,"file":"objectsInMemServerRedis.js","sourceRoot":"","sources":["../../../../src/lib/objects/objectsInMemServerRedis.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"objectsInMemServerRedis.js","sourceRoot":"","sources":["../../../../src/lib/objects/objectsInMemServerRedis.js"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"program":{"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.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.sharedmemory.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.esnext.intl.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../types-dev/objects.d.ts","../../types-dev/config.d.ts","../../types-dev/index.d.ts","../../db-objects-redis/build/esm/lib/objects/constants.d.ts","../../db-objects-redis/build/esm/lib/objects/objectsUtils.d.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.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/api.d.ts","../../../node_modules/undici-types/cookies.d.ts","../../../node_modules/undici-types/patch.d.ts","../../../node_modules/undici-types/filereader.d.ts","../../../node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/undici-types/websocket.d.ts","../../../node_modules/undici-types/content-type.d.ts","../../../node_modules/undici-types/cache.d.ts","../../../node_modules/undici-types/interceptors.d.ts","../../../node_modules/undici-types/index.d.ts","../../../node_modules/@types/node/globals.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/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/globals.global.d.ts","../../../node_modules/@types/node/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","../../db-base/build/esm/lib/redisHandler.d.ts","../../db-base/build/esm/lib/inMemFileDB.d.ts","../../db-objects-redis/build/esm/lib/objects/objectsInRedisClient.d.ts","../../db-objects-redis/build/esm/lib/objects/interview.d.ts","../../db-objects-redis/build/esm/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","../../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","../../db-base/build/esm/index.d.ts","../../db-objects-file/build/esm/lib/objects/objectsInMemFileDB.d.ts","../../db-objects-file/build/esm/lib/objects/objectsInMemServerRedis.d.ts","../../db-objects-file/build/esm/lib/objects/objectsInMemServerClass.d.ts","../../db-objects-file/build/esm/index.d.ts","../../../node_modules/@alcalzone/jsonl-db/build/lib/db.d.ts","../../../node_modules/@alcalzone/jsonl-db/build/index.d.ts","../src/lib/objects/objectsInMemJsonlDB.js","../src/lib/objects/objectsInMemServerRedis.js","../src/lib/objects/objectsInMemServerClass.js","../src/index.ts","../../../node_modules/@types/argparse/index.d.ts","../../../node_modules/@types/chai/index.d.ts","../../../node_modules/@types/chai-as-promised/index.d.ts","../../../node_modules/@types/ms/index.d.ts","../../../node_modules/@types/debug/index.d.ts","../../../node_modules/@types/eslint/helpers.d.ts","../../../node_modules/@types/estree/index.d.ts","../../../node_modules/@types/json-schema/index.d.ts","../../../node_modules/@types/eslint/index.d.ts","../../../node_modules/@types/event-stream/index.d.ts","../../../node_modules/@types/glossy/index.d.ts","../../../node_modules/@types/ioredis/index.d.ts","../../../node_modules/@types/jsonwebtoken/index.d.ts","../../../node_modules/@types/mime-types/index.d.ts","../../../node_modules/@types/minimatch/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/@types/sinon-chai/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"],"fileInfos":[{"version":"824cb491a40f7e8fdeb56f1df5edf91b23f3e3ee6b4cde84d4a99be32338faee","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","impliedFormat":1},{"version":"1c0cdb8dc619bc549c3e5020643e7cf7ae7940058e8c7e5aefa5871b6d86f44b","impliedFormat":1},{"version":"138fb588d26538783b78d1e3b2c2cc12d55840b97bf5e08bca7f7a174fbe2f17","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","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":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true,"impliedFormat":1},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea011c76963fb15ef1cdd7ce6a6808b46322c527de2077b6cfdf23ae6f5f9ec7","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true,"impliedFormat":1},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true,"impliedFormat":1},{"version":"b541a838a13f9234aba650a825393ffc2292dc0fc87681a5d81ef0c96d281e7a","affectsGlobalScope":true,"impliedFormat":1},{"version":"b20fe0eca9a4e405f1a5ae24a2b3290b37cf7f21eba6cbe4fc3fab979237d4f3","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":"49ed889be54031e1044af0ad2c603d627b8bda8b50c1a68435fe85583901d072","affectsGlobalScope":true,"impliedFormat":1},{"version":"e93d098658ce4f0c8a0779e6cab91d0259efb88a318137f686ad76f8410ca270","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true,"impliedFormat":1},{"version":"5e07ed3809d48205d5b985642a59f2eba47c402374a7cf8006b686f79efadcbd","affectsGlobalScope":true,"impliedFormat":1},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true,"impliedFormat":1},{"version":"8073890e29d2f46fdbc19b8d6d2eb9ea58db9a2052f8640af20baff9afbc8640","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"51e547984877a62227042850456de71a5c45e7fe86b7c975c6e68896c86fa23b","affectsGlobalScope":true,"impliedFormat":1},{"version":"956d27abdea9652e8368ce029bb1e0b9174e9678a273529f426df4b3d90abd60","affectsGlobalScope":true,"impliedFormat":1},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true,"impliedFormat":1},{"version":"e6633e05da3ff36e6da2ec170d0d03ccf33de50ca4dc6f5aeecb572cedd162fb","affectsGlobalScope":true,"impliedFormat":1},{"version":"d8670852241d4c6e03f2b89d67497a4bbefe29ecaa5a444e2c11a9b05e6fccc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"caccc56c72713969e1cfe5c3d44e5bab151544d9d2b373d7dbe5a1e4166652be","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"50d53ccd31f6667aff66e3d62adf948879a3a16f05d89882d1188084ee415bbc","affectsGlobalScope":true,"impliedFormat":1},{"version":"08a58483392df5fcc1db57d782e87734f77ae9eab42516028acbfe46f29a3ef7","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"13f6e6380c78e15e140243dc4be2fa546c287c6d61f4729bc2dd7cf449605471","affectsGlobalScope":true,"impliedFormat":1},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"e709b2e54b76c56496851d384b266e09cac33ee8a2f9f273b57d1ce17238cce6","affectsGlobalScope":true,"impliedFormat":1},{"version":"a9621d2b5371e49264a6586dafd19156baf08b7edca936ebb0692561931eadfb","impliedFormat":1},{"version":"cbf3004a12c73995c84ab8ebc7e01f05848051d02dc795387bdd2585c882258e","affectsGlobalScope":true,"impliedFormat":1},{"version":"ba56e7c11bd24eca78daa7147a870697ab31f3f14a9c56158ab9c26080019ab7","impliedFormat":99},{"version":"a03c55840ce15d2323982ad48e57836f1a72d6818802167c91118f955477823b","impliedFormat":99},{"version":"3846d0dcf468a1d1a07e6d00eaa37ec542956fb5fe0357590a6407af20d2ff90","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"7180c03fd3cb6e22f911ce9ba0f8a7008b1a6ddbe88ccf16a9c8140ef9ac1686","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"54cb85a47d760da1c13c00add10d26b5118280d44d58e6908d8e89abbd9d7725","impliedFormat":1},{"version":"3e4825171442666d31c845aeb47fcd34b62e14041bb353ae2b874285d78482aa","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"a967bfe3ad4e62243eb604bf956101e4c740f5921277c60debaf325c1320bf88","impliedFormat":1},{"version":"e9775e97ac4877aebf963a0289c81abe76d1ec9a2a7778dbe637e5151f25c5f3","impliedFormat":1},{"version":"471e1da5a78350bc55ef8cef24eb3aca6174143c281b8b214ca2beda51f5e04a","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"db3435f3525cd785bf21ec6769bf8da7e8a776be1a99e2e7efb5f244a2ef5fee","impliedFormat":1},{"version":"c3b170c45fc031db31f782e612adf7314b167e60439d304b49e704010e7bafe5","impliedFormat":1},{"version":"40383ebef22b943d503c6ce2cb2e060282936b952a01bea5f9f493d5fb487cc7","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"3a84b7cb891141824bd00ef8a50b6a44596aded4075da937f180c90e362fe5f6","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"33203609eba548914dc83ddf6cadbc0bcb6e8ef89f6d648ca0908ae887f9fcc5","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","impliedFormat":1},{"version":"339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","impliedFormat":1},{"version":"9f0a92164925aa37d4a5d9dd3e0134cff8177208dba55fd2310cd74beea40ee2","impliedFormat":1},{"version":"8bfdb79bf1a9d435ec48d9372dc93291161f152c0865b81fc0b2694aedb4578d","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"d32275be3546f252e3ad33976caf8c5e842c09cb87d468cb40d5f4cf092d1acc","impliedFormat":1},{"version":"4a0c3504813a3289f7fb1115db13967c8e004aa8e4f8a9021b95285502221bd1","impliedFormat":1},{"version":"49026435d21e3d7559d723af3ae48f73ec28f9cba651b41bd2ac991012836122","affectsGlobalScope":true,"impliedFormat":1},{"version":"39b1a50d543770780b0409a4caacb87f3ff1d510aedfeb7dc06ed44188256f89","impliedFormat":1},{"version":"dafc58ee47fa25dbc68b27c638bd6153dd7659021c164f64b7760757e9f5a6ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"16b872cf5432818bdbf405428b4a1d77bb2a7ab908e8bd6609f9a541cea92f81","impliedFormat":1},{"version":"304504c854c47a55ab4a89111a27a2daf8a3614740bd787cc1f2c51e5574239c","impliedFormat":1},{"version":"95f9129a37dcace36e17b061a8484952586ecfe928c9c8ce526de1a2f4aaefa7","affectsGlobalScope":true,"impliedFormat":1},{"version":"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","impliedFormat":1},{"version":"ed3db4eb7ad0466e19df82d9ee5c057d78df954283004783932d75e8fa4058c5","impliedFormat":1},{"version":"278fe296432b9840660d6e0d1778b4b4897a591d4b910a5f7ac8db0b476a8af7","impliedFormat":1},{"version":"1c611ff373ce1958aafc40b328048ac2540ba5c7f373cf2897e0d9aeaabe90a0","impliedFormat":1},{"version":"fd7a7fc2bb1f38ba0cded7bd8088c99033365859e03ba974f7de072e9d989fde","impliedFormat":1},{"version":"6cf42fc3765241c59339047a45855c506a2f94ee5e734bbded94ddcafc66e4c5","impliedFormat":1},{"version":"c6cf9428f45f3d78b07df7d7aab1569994c177d36549e3a962f952d89f026bc4","impliedFormat":1},{"version":"ee1ee365d88c4c6c0c0a5a5701d66ebc27ccd0bcfcfaa482c6e2e7fe7b98edf7","affectsGlobalScope":true,"impliedFormat":1},{"version":"cce14dcba2c2cb1059977ad65cf9caef890118cb20e35c4cf420bf1c83f27c1a","affectsGlobalScope":true,"impliedFormat":1},{"version":"9d604e6f853b64692415a61662d8490cc6057596ce7fb52a3a2ce878e376586c","impliedFormat":1},{"version":"021ca24be8eb8c46f99b4e03ebf872931f590c9b07b88d715c68bd30495b6c44","impliedFormat":1},{"version":"fb862b9a2e78754cf44b770ba6f194987d63c8d4cd103c6c05534faa4120ae98","impliedFormat":1},{"version":"91479d2a9bc09df0091b5e24af57cb462cd223e56498d16e9efdaebd587fa81d","impliedFormat":1},{"version":"e3baa0c5780c2c805ec33a999722a2f740b572eb3746fd0a5f93a0a5c3dbf7f6","impliedFormat":1},{"version":"c6f77efcc19f51c8759779b6b6ee0d88046c15c15dadac8ffed729a6620daf39","impliedFormat":1},{"version":"089867511b37a534ae71f3d9bc97acc0b925b7f5dbec113f98c4b49224c694eb","affectsGlobalScope":true,"impliedFormat":1},{"version":"e0cc19f50900706e7aae038565e825f2014ac5325b99b3daabf8ecd5d3d09f1a","impliedFormat":1},{"version":"f5ce35485541e817c2d4105d3eb78e3e538bbb009515ed014694363fa3e94ceb","impliedFormat":1},{"version":"323506ce173f7f865f42f493885ee3dacd18db6359ea1141d57676d3781ce10c","impliedFormat":1},{"version":"bd88055918cf8bf30ad7c9269177f7ebeafd4c5f0d28919edccd1c1d24f7e73c","affectsGlobalScope":true,"impliedFormat":1},{"version":"645baafeaed6855c8796fcbae4e813021c65f36eaa3f6178535457a2366f6849","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea3ab3727cd6c222d94003ecafa30e8550c61eadcdabbf59514aee76e86211a5","impliedFormat":1},{"version":"d3cdd41693c5ed6bec4f1a1c399d9501372b14bd341bc46eedacf2854c5df5a7","impliedFormat":1},{"version":"2de7a21c92226fb8abbeed7a0a9bd8aa6d37e4c68a8c7ff7938c644267e9fcc1","impliedFormat":1},{"version":"6d6070c5c81ba0bfe58988c69e3ba3149fc86421fd383f253aeb071cbf29cd41","impliedFormat":1},{"version":"48dab0d6e633b8052e7eaa0efb0bb3d58a733777b248765eafcb0b0349439834","impliedFormat":1},{"version":"d3e22aaa84d935196f465fff6645f88bb41352736c3130285eea0f2489c5f183","impliedFormat":1},{"version":"269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","impliedFormat":1},{"version":"93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","impliedFormat":1},{"version":"5195aeb0de306d1c5ca8033457fbcab5987657112fa6d4971cfeb7644493a369","impliedFormat":1},{"version":"c5dbf0003bc9f0f643e54cd00a3868d1afe85497fecb56be6f2373dc85102924","impliedFormat":1},{"version":"5a6fc2089f515b39aaa208339421669f61935cd661e356ebee49240be85091fd","affectsGlobalScope":true,"impliedFormat":1},{"version":"300f8e9de0b0c3482be3e749462b6ebc3dab8a316801f1da0def94aed0cd2018","affectsGlobalScope":true,"impliedFormat":1},{"version":"4e228e78c1e9b0a75c70588d59288f63a6258e8b1fe4a67b0c53fe03461421d9","impliedFormat":1},{"version":"3df5b34f3449733bc4831b8d670f958a045e7a3f5d7b0e21991ef95408dbec13","impliedFormat":1},{"version":"76a89af04f2ba1807309320dab5169c0d1243b80738b4a2005989e40a136733e","impliedFormat":1},{"version":"c045b664abf3fc2a4750fa96117ab2735e4ed45ddd571b2a6a91b9917e231a02","impliedFormat":1},{"version":"068b8ee5c2cd90d7a50f2efadbbe353cb10196a41189a48bf4b2a867363012b4","affectsGlobalScope":true,"impliedFormat":1},{"version":"0c312a7c5dec6c616f754d3a4b16318ce8d1cb912dfb3dfa0e808f45e66cbb21","affectsGlobalScope":true,"impliedFormat":1},{"version":"6f44a190351ab5e1811abebe007cf60518044772ccc08244f9f241706afa767f","impliedFormat":1},{"version":"fecdf44bec4ee9c5188e5f2f58c292c9689c02520900dceaaa6e76594de6da90","impliedFormat":1},{"version":"cf45d0510b661f1da461479851ff902f188edb111777c37055eff12fa986a23a","impliedFormat":1},{"version":"6a4a80787c57c10b3ea8314c80d9cc6e1deb99d20adca16106a337825f582420","affectsGlobalScope":true,"impliedFormat":1},{"version":"f2b9440f98d6f94c8105883a2b65aee2fce0248f71f41beafd0a80636f3a565d","impliedFormat":1},{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true,"impliedFormat":1},{"version":"b510d0a18e3db42ac9765d26711083ec1e8b4e21caaca6dc4d25ae6e8623f447","impliedFormat":1},{"version":"45e2f08258e671e67a177bd9057e785956c23b2542308f9559db037fe1114105","impliedFormat":1},{"version":"088703b7810394a5af823ac753cca116931df81a97183725ae1e2c4e6038268d","impliedFormat":1},{"version":"6cf45d4fd013b7c4ba1cd422555a3170946dc1d3804e135b5c4a971dbe4c1aa7","impliedFormat":1},{"version":"2fd34e1921bb7e6706b8d9fcb5d4d9f2f3e23e742e38bdb3094c83668ca09070","impliedFormat":1},{"version":"be2ab41bbfa1db74d67df1a5cb0c00b5f6d4badc0bc35cff2984880e2698bc1b","impliedFormat":1},{"version":"746b7007f5959dc155f54964ce3d1f8289e914ad480f1f7ff64f54515415a637","impliedFormat":1},{"version":"41e1718c5738cd9261acc61439f2156ed3b8a3267de9805e55b3cf7d839f5063","impliedFormat":1},{"version":"4e20f9be439bf149c8f336a7d9efb1dcc785a29d8cbb73efa279f8bf883a7058","impliedFormat":1},{"version":"07e25f754a8435121d3ba0012458e3e10ae6f3fddeffebb2b1054a0579fad3ea","impliedFormat":99},{"version":"639f04da5e3f128214cf980ab636bbe6a625ff54a2724c6cd16e1787b5b53d8c","impliedFormat":99},{"version":"617b2e0fa917ace5e1b19dcef2eae8a5888732a390c94e0b97f1afa3b6c5b52c","impliedFormat":99},{"version":"075774d56287dbeeea7636459fdba4824ca14947ac435a2b1020c7d650631250","impliedFormat":99},{"version":"e6b139475ce20dbc97ce616446d383d91641d51cf49e87fa4eceace7291f0bb0","impliedFormat":99},{"version":"36e85619f30581305cb707f60af9882474e802abed2d03125e04c07e763f7c4a","impliedFormat":99},{"version":"f0009b8cd0609df584a4c73a302e8839f6c6dc79807feac2b5f2831d12721964","impliedFormat":99},{"version":"211440ce81e87b3491cdf07155881344b0a61566df6e749acff0be7e8b9d1a07","impliedFormat":1},{"version":"5d9a0b6e6be8dbb259f64037bce02f34692e8c1519f5cd5d467d7fa4490dced4","impliedFormat":1},{"version":"880da0e0f3ebca42f9bd1bc2d3e5e7df33f2619d85f18ee0ed4bd16d1800bc32","impliedFormat":1},{"version":"da77aa3d854b204e47ef742c4ecd71cd0b020f802e13b6a7e719367e8b9ccd18","impliedFormat":99},{"version":"04f395b82f656953ae6ccff3b26c55adb6a75e9e345991a10401696e593b0bb0","impliedFormat":99},{"version":"908217c4f2244ec402b73533ebfcc46d6dcd34fc1c807ff403d7f98702abb3bc","impliedFormat":1},{"version":"201ced2ca97d71fe47afdaebc656c2fa63ef2784256e4dfc9eb83930f7aac2c2","impliedFormat":1},{"version":"d8b8a5a6bf623239d5374ad4a7ff6f3b195ab5ee61293f59f1957e90d2a22809","impliedFormat":1},{"version":"35d283eca7dc0a0c7b099f5fbbf0678b87f3d837572cd5e539ba297ad9837e68","impliedFormat":1},{"version":"03852330113bfc10a497a653f39ad9f4ee8e4ed31a44cb9981de6d9d662c5354","impliedFormat":1},{"version":"26ec2c615ee349154b9cdb180a9bbd2d3e28a2646242e936cf79c1a44847ade7","impliedFormat":1},{"version":"56471ec726edfb50d4bc87b83e52f97de74f5d385db3db214f6e3ec2d02a3fb6","impliedFormat":99},{"version":"86a6eee8858453e02abc1196b611b348f9b157d19dcd47660246ede5b6a82676","impliedFormat":99},{"version":"129c10790c7de83509b3d852a79189b475a40b128e0726bd469f96b3d5749811","impliedFormat":99},{"version":"98763329166c62fa0ca9cfc0042bf924605c78bab880dc8b06ec83a445d3d67a","impliedFormat":99},{"version":"54cb16297ded2864aa5a752ac9ff205a85931492c3bdbe8a2ec9e584acb10048","impliedFormat":99},{"version":"ad739669b8527bacfaf8493ea4552216843afd0f9a2e583dec20ee7f4e2ead6e","impliedFormat":99},{"version":"ca7bd98691a8791dd32ffce6c205923d422b0ed0c2b199a2120b17dfb15fd2f2","impliedFormat":99},{"version":"b8af7c2d529eb2c82bd4aae71686f28327fac26de8bd45275b65133dd0125a97","impliedFormat":99},{"version":"ec30c62718c4e8d8fe11ffb0cbea6f00c9ce1811c233b96d1640856da8f5138a","impliedFormat":99},{"version":"7e4ca66b0da05237cb6cb8017c64f9e21474033dc1c91dc55ea7ec158a379e90","impliedFormat":99},{"version":"a90e5b76c0b66221c68c5cadaacd5df3bda226e5390419ebc33bc841b7d45224","impliedFormat":1},{"version":"033dee93fbcff5203e7742189496499f5a5da8cfdce861d836cfd2aba05e76ac","impliedFormat":1},{"version":"53f9ab518821707000bed86adb7e6862f90782fb5f3c507a99364feb4ffe8922","signature":"6547027bc35e314ae7cd9add50958e57096b841dcecea8544b2c9022d3d37368","impliedFormat":99},{"version":"54ec79501b990c648ac9647f0570eac61d95f8667516762b35ddcd1f69a0ae73","signature":"48c40ff436cc95b36aaabe6d41d243bf174c5035648a3e27a06025a5b0f8c0b0","impliedFormat":99},{"version":"08552d6ee9fc372edf3715458e91c61b5db6c26c99867ac79b4c4cbea173d3ea","signature":"ec30c62718c4e8d8fe11ffb0cbea6f00c9ce1811c233b96d1640856da8f5138a","impliedFormat":99},{"version":"caaf38856dbbc6abcf8f286bd1d6e1bed35525583dd18f1a951bdcca389ef612","signature":"934884f507a8558f7588e7367fe9121ba9a2a10c02d8fdc2f9bae6fb3cac6a3a","impliedFormat":99},{"version":"dc3b172ee27054dbcedcf5007b78c256021db936f6313a9ce9a3ecbb503fd646","impliedFormat":1},{"version":"eef204f061321360559bd19235ea32a9d55b3ec22a362cc78d14ef50d4db4490","affectsGlobalScope":true,"impliedFormat":1},{"version":"86e56d97b13ef0a58bc9c59aee782ae7d47d63802b5b32129ec5e5d62c20dbfa","affectsGlobalScope":true,"impliedFormat":1},{"version":"68cc8d6fcc2f270d7108f02f3ebc59480a54615be3e09a47e14527f349e9d53e","impliedFormat":1},{"version":"3eb11dbf3489064a47a2e1cf9d261b1f100ef0b3b50ffca6c44dd99d6dd81ac1","impliedFormat":1},{"version":"64d4b35c5456adf258d2cf56c341e203a073253f229ef3208fc0d5020253b241","affectsGlobalScope":true,"impliedFormat":1},{"version":"ee7d8894904b465b072be0d2e4b45cf6b887cdba16a467645c4e200982ece7ea","impliedFormat":1},{"version":"f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","impliedFormat":1},{"version":"7852500a7dc3f9cb6b73d619f6e0249119211ea662fd5e16c59ee5aba3deeb80","impliedFormat":1},{"version":"c3ae6bb11d6666d56efb16b56903895ba5320c2c2b0fecaf27784ef4599ac632","impliedFormat":1},{"version":"3b43f7224c99344262753af8fc1bb66cf0dc36fb15de92a190af88502c6256f6","impliedFormat":1},{"version":"be00321090ed100e3bd1e566c0408004137e73feb19d6380eba57d68519ff6c5","impliedFormat":1},{"version":"bb4ed283cfb3db7ec1d4bb79c37f5e96d39b340f1f4de995c4b0b836c8d5fa05","impliedFormat":1},{"version":"169cc96316cacf8b489aaab4ac6bcef7b33e8779a8902bce57c737b4aa372d16","impliedFormat":1},{"version":"8841e2aa774b89bd23302dede20663306dc1b9902431ac64b24be8b8d0e3f649","impliedFormat":1},{"version":"fbca5ffaebf282ec3cdac47b0d1d4a138a8b0bb32105251a38acb235087d3318","impliedFormat":1},{"version":"0ea93d01083b3d5863cc98cb589b5d0eac55d14417487f9e5e455dfa0b17c660","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b5402ae709d042c3530ed3506c135a967159f42aed3221267e70c5b7240b577","impliedFormat":1},{"version":"4f5269c28ed792a21efe3e2733a3398cb83f84384ccd9c5cd5a0950fdb211342","impliedFormat":1},{"version":"22293bd6fa12747929f8dfca3ec1684a3fe08638aa18023dd286ab337e88a592","impliedFormat":1},{"version":"327fddc7dd391f1e62262dafe41fc9cabedb4a5758a5cfce979cebab1456abb8","impliedFormat":1},{"version":"ec596fa2357df1b2702e42bcba645422eb727ab5c81136f78590f21a100286e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"ff2ceda3a4b66023a83964a4e2674b9778ce5255f87c5eefefd6d0f7f1967d56","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":"525b52b38b44420fb1758c0917e7b67cf379f7f9477d2ba7343f3d5f50a44258","affectsGlobalScope":true,"impliedFormat":1},{"version":"58b63c0f3bfac04d639c31a9fe094089c0bdcc8cda7bc35f1f23828677aa7926","impliedFormat":1},{"version":"d51d662a37aa1f1b97ed4caf4f1c25832047b9bfffcc707b53aedd07cd245303","impliedFormat":1},{"version":"b9d02ff98f8c5da182f415c7152b0da746346b0a15e6a93d772eff0c72165b9d","impliedFormat":1},{"version":"bae8d023ef6b23df7da26f51cea44321f95817c190342a36882e93b80d07a960","impliedFormat":1},{"version":"5d30d04a14ed8527ac5d654dc345a4db11b593334c11a65efb6e4facc5484a0e","impliedFormat":1}],"root":[[192,195]],"options":{"allowJs":true,"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},"fileIdsList":[[190],[156,160],[156],[134,153,155],[156,157,158,159],[197],[199],[201,202,203],[134,153],[117,153,169,170],[153],[116,134,142,153],[117,145,153],[116,153],[67],[103],[104,109,137],[105,116,117,124,134,145],[105,106,116,124],[107,146],[108,109,117,125],[109,134,142],[110,112,116,124],[103,111],[112,113],[116],[114,116],[103,116],[116,117,118,134,145],[116,117,118,131,134,137],[101,150],[112,116,119,124,134,145],[116,117,119,120,124,134,142,145],[119,121,134,142,145],[67,68,102,103,104,105,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],[116,122],[123,145,150],[112,116,124,134],[125],[126],[103,127],[128,144,150],[129],[130],[116,131,132],[131,133,146,148],[104,116,134,135,136,137],[104,134,136],[134,135],[137],[138],[103,134],[116,140,141],[140,141],[109,124,134,142],[143],[124,144],[104,119,130,145],[109,146],[134,147],[123,148],[149],[104,109,116,118,127,134,145,148,150],[134,151],[116,144,153,217],[220,259],[220,244,259],[259],[220],[220,245,259],[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,250,251,252,253,254,255,256,257,258],[245,259],[197,261],[260],[117,134,151,153,263],[110,124,153,176,206],[266],[105,134,153],[174],[116,134,153],[105],[78,82,145],[78,134,145],[73],[75,78,142,145],[124,142],[73,153],[75,78,124,145],[70,71,74,77,104,116,134,145],[70,76],[74,78,104,137,145,153],[104,153],[94,104,153],[72,73,153],[78],[72,73,74,75,76,77,78,79,80,82,83,84,85,86,87,88,89,90,91,92,93,95,96,97,98,99,100],[78,85,86],[76,78,86,87],[77],[70,73,78],[78,82,86,87],[82],[76,78,81,145],[70,75,76,78,82,85],[104,134],[73,78,94,104,150,153],[134,153,175],[134,153,175,176,177,178],[119,153,176],[163,172,173,180,181,182,183],[64],[179],[64,105,153,154,161,162],[164,165,184],[163,164],[116,124,153,163],[168,186,188],[171,185],[168,187],[124,153,186],[168,194],[117,125,126,184,189,191],[168,193],[109,124,126,163,168,171,184,185,192],[66,166,167],[64,66,163,165],[64,65],[62,63,117]],"referencedMap":[[191,1],[161,2],[157,3],[156,4],[158,3],[159,3],[160,5],[198,6],[200,7],[204,8],[205,9],[171,10],[206,11],[207,12],[169,13],[208,11],[213,11],[214,14],[67,15],[68,15],[103,16],[104,17],[105,18],[106,19],[107,20],[108,21],[109,22],[110,23],[111,24],[112,25],[113,25],[115,26],[114,27],[116,28],[117,29],[118,30],[102,31],[119,32],[120,33],[121,34],[153,35],[122,36],[123,37],[124,38],[125,39],[126,40],[127,41],[128,42],[129,43],[130,44],[131,45],[132,45],[133,46],[134,47],[136,48],[135,49],[137,50],[138,51],[139,52],[140,53],[141,54],[142,55],[143,56],[144,57],[145,58],[146,59],[147,60],[148,61],[149,62],[150,63],[151,64],[218,65],[244,66],[245,67],[220,68],[223,68],[242,66],[243,66],[233,66],[232,69],[230,66],[225,66],[238,66],[236,66],[240,66],[224,66],[237,66],[241,66],[226,66],[227,66],[239,66],[221,66],[228,66],[229,66],[231,66],[235,66],[246,70],[234,66],[222,66],[259,71],[253,70],[255,72],[254,70],[247,70],[248,70],[250,70],[252,70],[256,72],[257,72],[249,72],[251,72],[262,73],[261,74],[264,75],[265,76],[267,77],[155,78],[175,79],[263,80],[154,81],[85,82],[92,83],[84,82],[99,84],[76,85],[75,86],[98,11],[93,87],[96,88],[78,89],[77,90],[73,91],[72,92],[95,93],[74,94],[79,95],[83,95],[101,96],[100,95],[87,97],[88,98],[90,99],[86,100],[89,101],[94,11],[81,102],[82,103],[91,104],[71,105],[97,106],[176,107],[179,108],[177,11],[178,109],[184,110],[181,111],[180,112],[163,113],[185,114],[165,115],[164,116],[189,117],[186,118],[188,119],[187,120],[195,121],[192,122],[194,123],[193,124],[168,125],[167,111],[166,126],[66,127],[64,128],[62,39]],"exportedModulesMap":[[191,1],[161,2],[157,3],[156,4],[158,3],[159,3],[160,5],[198,6],[200,7],[204,8],[205,9],[171,10],[206,11],[207,12],[169,13],[208,11],[213,11],[214,14],[67,15],[68,15],[103,16],[104,17],[105,18],[106,19],[107,20],[108,21],[109,22],[110,23],[111,24],[112,25],[113,25],[115,26],[114,27],[116,28],[117,29],[118,30],[102,31],[119,32],[120,33],[121,34],[153,35],[122,36],[123,37],[124,38],[125,39],[126,40],[127,41],[128,42],[129,43],[130,44],[131,45],[132,45],[133,46],[134,47],[136,48],[135,49],[137,50],[138,51],[139,52],[140,53],[141,54],[142,55],[143,56],[144,57],[145,58],[146,59],[147,60],[148,61],[149,62],[150,63],[151,64],[218,65],[244,66],[245,67],[220,68],[223,68],[242,66],[243,66],[233,66],[232,69],[230,66],[225,66],[238,66],[236,66],[240,66],[224,66],[237,66],[241,66],[226,66],[227,66],[239,66],[221,66],[228,66],[229,66],[231,66],[235,66],[246,70],[234,66],[222,66],[259,71],[253,70],[255,72],[254,70],[247,70],[248,70],[250,70],[252,70],[256,72],[257,72],[249,72],[251,72],[262,73],[261,74],[264,75],[265,76],[267,77],[155,78],[175,79],[263,80],[154,81],[85,82],[92,83],[84,82],[99,84],[76,85],[75,86],[98,11],[93,87],[96,88],[78,89],[77,90],[73,91],[72,92],[95,93],[74,94],[79,95],[83,95],[101,96],[100,95],[87,97],[88,98],[90,99],[86,100],[89,101],[94,11],[81,102],[82,103],[91,104],[71,105],[97,106],[176,107],[179,108],[177,11],[178,109],[184,110],[181,111],[180,112],[163,113],[185,114],[165,115],[164,116],[189,117],[186,118],[188,119],[187,120],[195,121],[168,125],[167,111],[166,126],[66,127],[64,128],[62,39]],"semanticDiagnosticsPerFile":[191,190,161,157,156,158,159,160,196,198,197,200,201,204,202,205,171,206,207,203,169,170,208,209,210,211,212,199,213,214,67,68,103,104,105,106,107,108,109,110,111,112,113,115,114,116,117,118,102,152,119,120,121,153,122,123,124,125,126,127,128,129,130,131,132,133,134,136,135,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,215,216,218,219,217,244,245,220,223,242,243,233,232,230,225,238,236,240,224,237,241,226,227,239,221,228,229,231,235,246,234,222,259,258,253,255,254,247,248,250,252,256,257,249,251,262,261,260,264,174,265,266,267,69,155,175,263,154,60,61,12,11,2,13,14,15,16,17,18,19,20,3,21,4,22,26,23,24,25,27,28,29,5,30,31,32,33,6,37,34,35,36,38,7,39,44,45,40,41,42,43,8,49,46,47,48,50,9,51,52,53,56,54,55,57,58,10,1,59,85,92,84,99,76,75,98,93,96,78,77,73,72,95,74,79,80,83,70,101,100,87,88,90,86,89,94,81,82,91,71,97,176,179,177,178,184,183,172,181,180,162,173,182,163,185,165,164,189,186,188,187,195,192,194,193,168,65,167,166,66,63,64,62],"latestChangedDtsFile":"./esm/index.d.ts"},"version":"5.4.5"}
1
+ {"program":{"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.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.sharedmemory.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.esnext.intl.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../types-dev/objects.d.ts","../../types-dev/config.d.ts","../../types-dev/index.d.ts","../../db-objects-redis/build/esm/lib/objects/constants.d.ts","../../db-objects-redis/build/esm/lib/objects/objectsUtils.d.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.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/api.d.ts","../../../node_modules/undici-types/cookies.d.ts","../../../node_modules/undici-types/patch.d.ts","../../../node_modules/undici-types/filereader.d.ts","../../../node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/undici-types/websocket.d.ts","../../../node_modules/undici-types/content-type.d.ts","../../../node_modules/undici-types/cache.d.ts","../../../node_modules/undici-types/interceptors.d.ts","../../../node_modules/undici-types/index.d.ts","../../../node_modules/@types/node/globals.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/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/globals.global.d.ts","../../../node_modules/@types/node/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","../../db-base/build/esm/lib/inMemFileDB.d.ts","../../db-objects-redis/build/esm/lib/objects/objectsInRedisClient.d.ts","../../db-objects-redis/build/esm/lib/objects/interview.d.ts","../../db-objects-redis/build/esm/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","../../db-base/build/esm/lib/redisHandler.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","../../db-base/build/esm/index.d.ts","../../db-objects-file/build/esm/lib/objects/objectsInMemFileDB.d.ts","../../db-objects-file/build/esm/lib/objects/objectsInMemServerRedis.d.ts","../../db-objects-file/build/esm/lib/objects/objectsInMemServerClass.d.ts","../../db-objects-file/build/esm/index.d.ts","../../../node_modules/@alcalzone/jsonl-db/build/lib/db.d.ts","../../../node_modules/@alcalzone/jsonl-db/build/index.d.ts","../src/lib/objects/objectsInMemJsonlDB.js","../src/lib/objects/objectsInMemServerRedis.js","../src/lib/objects/objectsInMemServerClass.js","../src/index.ts","../../../node_modules/@types/argparse/index.d.ts","../../../node_modules/@types/chai/index.d.ts","../../../node_modules/@types/chai-as-promised/index.d.ts","../../../node_modules/@types/ms/index.d.ts","../../../node_modules/@types/debug/index.d.ts","../../../node_modules/@types/eslint/helpers.d.ts","../../../node_modules/@types/estree/index.d.ts","../../../node_modules/@types/json-schema/index.d.ts","../../../node_modules/@types/eslint/index.d.ts","../../../node_modules/@types/event-stream/index.d.ts","../../../node_modules/@types/glossy/index.d.ts","../../../node_modules/@types/ioredis/index.d.ts","../../../node_modules/@types/jsonwebtoken/index.d.ts","../../../node_modules/@types/mime-types/index.d.ts","../../../node_modules/@types/minimatch/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/@types/sinon-chai/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"],"fileInfos":[{"version":"824cb491a40f7e8fdeb56f1df5edf91b23f3e3ee6b4cde84d4a99be32338faee","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","impliedFormat":1},{"version":"1c0cdb8dc619bc549c3e5020643e7cf7ae7940058e8c7e5aefa5871b6d86f44b","impliedFormat":1},{"version":"138fb588d26538783b78d1e3b2c2cc12d55840b97bf5e08bca7f7a174fbe2f17","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","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":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true,"impliedFormat":1},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea011c76963fb15ef1cdd7ce6a6808b46322c527de2077b6cfdf23ae6f5f9ec7","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true,"impliedFormat":1},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true,"impliedFormat":1},{"version":"b541a838a13f9234aba650a825393ffc2292dc0fc87681a5d81ef0c96d281e7a","affectsGlobalScope":true,"impliedFormat":1},{"version":"b20fe0eca9a4e405f1a5ae24a2b3290b37cf7f21eba6cbe4fc3fab979237d4f3","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":"49ed889be54031e1044af0ad2c603d627b8bda8b50c1a68435fe85583901d072","affectsGlobalScope":true,"impliedFormat":1},{"version":"e93d098658ce4f0c8a0779e6cab91d0259efb88a318137f686ad76f8410ca270","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true,"impliedFormat":1},{"version":"5e07ed3809d48205d5b985642a59f2eba47c402374a7cf8006b686f79efadcbd","affectsGlobalScope":true,"impliedFormat":1},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true,"impliedFormat":1},{"version":"8073890e29d2f46fdbc19b8d6d2eb9ea58db9a2052f8640af20baff9afbc8640","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"51e547984877a62227042850456de71a5c45e7fe86b7c975c6e68896c86fa23b","affectsGlobalScope":true,"impliedFormat":1},{"version":"956d27abdea9652e8368ce029bb1e0b9174e9678a273529f426df4b3d90abd60","affectsGlobalScope":true,"impliedFormat":1},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true,"impliedFormat":1},{"version":"e6633e05da3ff36e6da2ec170d0d03ccf33de50ca4dc6f5aeecb572cedd162fb","affectsGlobalScope":true,"impliedFormat":1},{"version":"d8670852241d4c6e03f2b89d67497a4bbefe29ecaa5a444e2c11a9b05e6fccc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"caccc56c72713969e1cfe5c3d44e5bab151544d9d2b373d7dbe5a1e4166652be","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"50d53ccd31f6667aff66e3d62adf948879a3a16f05d89882d1188084ee415bbc","affectsGlobalScope":true,"impliedFormat":1},{"version":"08a58483392df5fcc1db57d782e87734f77ae9eab42516028acbfe46f29a3ef7","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"13f6e6380c78e15e140243dc4be2fa546c287c6d61f4729bc2dd7cf449605471","affectsGlobalScope":true,"impliedFormat":1},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"e709b2e54b76c56496851d384b266e09cac33ee8a2f9f273b57d1ce17238cce6","affectsGlobalScope":true,"impliedFormat":1},{"version":"a9621d2b5371e49264a6586dafd19156baf08b7edca936ebb0692561931eadfb","impliedFormat":1},{"version":"cbf3004a12c73995c84ab8ebc7e01f05848051d02dc795387bdd2585c882258e","affectsGlobalScope":true,"impliedFormat":1},{"version":"ba56e7c11bd24eca78daa7147a870697ab31f3f14a9c56158ab9c26080019ab7","impliedFormat":99},{"version":"a03c55840ce15d2323982ad48e57836f1a72d6818802167c91118f955477823b","impliedFormat":99},{"version":"3846d0dcf468a1d1a07e6d00eaa37ec542956fb5fe0357590a6407af20d2ff90","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"7180c03fd3cb6e22f911ce9ba0f8a7008b1a6ddbe88ccf16a9c8140ef9ac1686","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"54cb85a47d760da1c13c00add10d26b5118280d44d58e6908d8e89abbd9d7725","impliedFormat":1},{"version":"3e4825171442666d31c845aeb47fcd34b62e14041bb353ae2b874285d78482aa","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"a967bfe3ad4e62243eb604bf956101e4c740f5921277c60debaf325c1320bf88","impliedFormat":1},{"version":"e9775e97ac4877aebf963a0289c81abe76d1ec9a2a7778dbe637e5151f25c5f3","impliedFormat":1},{"version":"471e1da5a78350bc55ef8cef24eb3aca6174143c281b8b214ca2beda51f5e04a","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"db3435f3525cd785bf21ec6769bf8da7e8a776be1a99e2e7efb5f244a2ef5fee","impliedFormat":1},{"version":"c3b170c45fc031db31f782e612adf7314b167e60439d304b49e704010e7bafe5","impliedFormat":1},{"version":"40383ebef22b943d503c6ce2cb2e060282936b952a01bea5f9f493d5fb487cc7","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"3a84b7cb891141824bd00ef8a50b6a44596aded4075da937f180c90e362fe5f6","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"33203609eba548914dc83ddf6cadbc0bcb6e8ef89f6d648ca0908ae887f9fcc5","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","impliedFormat":1},{"version":"339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","impliedFormat":1},{"version":"9f0a92164925aa37d4a5d9dd3e0134cff8177208dba55fd2310cd74beea40ee2","impliedFormat":1},{"version":"8bfdb79bf1a9d435ec48d9372dc93291161f152c0865b81fc0b2694aedb4578d","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"d32275be3546f252e3ad33976caf8c5e842c09cb87d468cb40d5f4cf092d1acc","impliedFormat":1},{"version":"4a0c3504813a3289f7fb1115db13967c8e004aa8e4f8a9021b95285502221bd1","impliedFormat":1},{"version":"49026435d21e3d7559d723af3ae48f73ec28f9cba651b41bd2ac991012836122","affectsGlobalScope":true,"impliedFormat":1},{"version":"39b1a50d543770780b0409a4caacb87f3ff1d510aedfeb7dc06ed44188256f89","impliedFormat":1},{"version":"dafc58ee47fa25dbc68b27c638bd6153dd7659021c164f64b7760757e9f5a6ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"16b872cf5432818bdbf405428b4a1d77bb2a7ab908e8bd6609f9a541cea92f81","impliedFormat":1},{"version":"304504c854c47a55ab4a89111a27a2daf8a3614740bd787cc1f2c51e5574239c","impliedFormat":1},{"version":"95f9129a37dcace36e17b061a8484952586ecfe928c9c8ce526de1a2f4aaefa7","affectsGlobalScope":true,"impliedFormat":1},{"version":"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","impliedFormat":1},{"version":"ed3db4eb7ad0466e19df82d9ee5c057d78df954283004783932d75e8fa4058c5","impliedFormat":1},{"version":"278fe296432b9840660d6e0d1778b4b4897a591d4b910a5f7ac8db0b476a8af7","impliedFormat":1},{"version":"1c611ff373ce1958aafc40b328048ac2540ba5c7f373cf2897e0d9aeaabe90a0","impliedFormat":1},{"version":"fd7a7fc2bb1f38ba0cded7bd8088c99033365859e03ba974f7de072e9d989fde","impliedFormat":1},{"version":"6cf42fc3765241c59339047a45855c506a2f94ee5e734bbded94ddcafc66e4c5","impliedFormat":1},{"version":"c6cf9428f45f3d78b07df7d7aab1569994c177d36549e3a962f952d89f026bc4","impliedFormat":1},{"version":"ee1ee365d88c4c6c0c0a5a5701d66ebc27ccd0bcfcfaa482c6e2e7fe7b98edf7","affectsGlobalScope":true,"impliedFormat":1},{"version":"cce14dcba2c2cb1059977ad65cf9caef890118cb20e35c4cf420bf1c83f27c1a","affectsGlobalScope":true,"impliedFormat":1},{"version":"9d604e6f853b64692415a61662d8490cc6057596ce7fb52a3a2ce878e376586c","impliedFormat":1},{"version":"021ca24be8eb8c46f99b4e03ebf872931f590c9b07b88d715c68bd30495b6c44","impliedFormat":1},{"version":"fb862b9a2e78754cf44b770ba6f194987d63c8d4cd103c6c05534faa4120ae98","impliedFormat":1},{"version":"91479d2a9bc09df0091b5e24af57cb462cd223e56498d16e9efdaebd587fa81d","impliedFormat":1},{"version":"e3baa0c5780c2c805ec33a999722a2f740b572eb3746fd0a5f93a0a5c3dbf7f6","impliedFormat":1},{"version":"c6f77efcc19f51c8759779b6b6ee0d88046c15c15dadac8ffed729a6620daf39","impliedFormat":1},{"version":"089867511b37a534ae71f3d9bc97acc0b925b7f5dbec113f98c4b49224c694eb","affectsGlobalScope":true,"impliedFormat":1},{"version":"e0cc19f50900706e7aae038565e825f2014ac5325b99b3daabf8ecd5d3d09f1a","impliedFormat":1},{"version":"f5ce35485541e817c2d4105d3eb78e3e538bbb009515ed014694363fa3e94ceb","impliedFormat":1},{"version":"323506ce173f7f865f42f493885ee3dacd18db6359ea1141d57676d3781ce10c","impliedFormat":1},{"version":"bd88055918cf8bf30ad7c9269177f7ebeafd4c5f0d28919edccd1c1d24f7e73c","affectsGlobalScope":true,"impliedFormat":1},{"version":"645baafeaed6855c8796fcbae4e813021c65f36eaa3f6178535457a2366f6849","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea3ab3727cd6c222d94003ecafa30e8550c61eadcdabbf59514aee76e86211a5","impliedFormat":1},{"version":"d3cdd41693c5ed6bec4f1a1c399d9501372b14bd341bc46eedacf2854c5df5a7","impliedFormat":1},{"version":"2de7a21c92226fb8abbeed7a0a9bd8aa6d37e4c68a8c7ff7938c644267e9fcc1","impliedFormat":1},{"version":"6d6070c5c81ba0bfe58988c69e3ba3149fc86421fd383f253aeb071cbf29cd41","impliedFormat":1},{"version":"48dab0d6e633b8052e7eaa0efb0bb3d58a733777b248765eafcb0b0349439834","impliedFormat":1},{"version":"d3e22aaa84d935196f465fff6645f88bb41352736c3130285eea0f2489c5f183","impliedFormat":1},{"version":"269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","impliedFormat":1},{"version":"93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","impliedFormat":1},{"version":"5195aeb0de306d1c5ca8033457fbcab5987657112fa6d4971cfeb7644493a369","impliedFormat":1},{"version":"c5dbf0003bc9f0f643e54cd00a3868d1afe85497fecb56be6f2373dc85102924","impliedFormat":1},{"version":"5a6fc2089f515b39aaa208339421669f61935cd661e356ebee49240be85091fd","affectsGlobalScope":true,"impliedFormat":1},{"version":"300f8e9de0b0c3482be3e749462b6ebc3dab8a316801f1da0def94aed0cd2018","affectsGlobalScope":true,"impliedFormat":1},{"version":"4e228e78c1e9b0a75c70588d59288f63a6258e8b1fe4a67b0c53fe03461421d9","impliedFormat":1},{"version":"3df5b34f3449733bc4831b8d670f958a045e7a3f5d7b0e21991ef95408dbec13","impliedFormat":1},{"version":"76a89af04f2ba1807309320dab5169c0d1243b80738b4a2005989e40a136733e","impliedFormat":1},{"version":"c045b664abf3fc2a4750fa96117ab2735e4ed45ddd571b2a6a91b9917e231a02","impliedFormat":1},{"version":"068b8ee5c2cd90d7a50f2efadbbe353cb10196a41189a48bf4b2a867363012b4","affectsGlobalScope":true,"impliedFormat":1},{"version":"0c312a7c5dec6c616f754d3a4b16318ce8d1cb912dfb3dfa0e808f45e66cbb21","affectsGlobalScope":true,"impliedFormat":1},{"version":"6f44a190351ab5e1811abebe007cf60518044772ccc08244f9f241706afa767f","impliedFormat":1},{"version":"fecdf44bec4ee9c5188e5f2f58c292c9689c02520900dceaaa6e76594de6da90","impliedFormat":1},{"version":"cf45d0510b661f1da461479851ff902f188edb111777c37055eff12fa986a23a","impliedFormat":1},{"version":"6a4a80787c57c10b3ea8314c80d9cc6e1deb99d20adca16106a337825f582420","affectsGlobalScope":true,"impliedFormat":1},{"version":"f2b9440f98d6f94c8105883a2b65aee2fce0248f71f41beafd0a80636f3a565d","impliedFormat":1},{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true,"impliedFormat":1},{"version":"b510d0a18e3db42ac9765d26711083ec1e8b4e21caaca6dc4d25ae6e8623f447","impliedFormat":1},{"version":"45e2f08258e671e67a177bd9057e785956c23b2542308f9559db037fe1114105","impliedFormat":1},{"version":"088703b7810394a5af823ac753cca116931df81a97183725ae1e2c4e6038268d","impliedFormat":1},{"version":"6cf45d4fd013b7c4ba1cd422555a3170946dc1d3804e135b5c4a971dbe4c1aa7","impliedFormat":1},{"version":"2fd34e1921bb7e6706b8d9fcb5d4d9f2f3e23e742e38bdb3094c83668ca09070","impliedFormat":1},{"version":"be2ab41bbfa1db74d67df1a5cb0c00b5f6d4badc0bc35cff2984880e2698bc1b","impliedFormat":1},{"version":"746b7007f5959dc155f54964ce3d1f8289e914ad480f1f7ff64f54515415a637","impliedFormat":1},{"version":"41e1718c5738cd9261acc61439f2156ed3b8a3267de9805e55b3cf7d839f5063","impliedFormat":1},{"version":"4e20f9be439bf149c8f336a7d9efb1dcc785a29d8cbb73efa279f8bf883a7058","impliedFormat":1},{"version":"07e25f754a8435121d3ba0012458e3e10ae6f3fddeffebb2b1054a0579fad3ea","impliedFormat":99},{"version":"639f04da5e3f128214cf980ab636bbe6a625ff54a2724c6cd16e1787b5b53d8c","impliedFormat":99},{"version":"1b6c1c1e0bb011297c88478ceb30804e15ddb86c0fb83788e3d1403202c09c48","impliedFormat":99},{"version":"e6b139475ce20dbc97ce616446d383d91641d51cf49e87fa4eceace7291f0bb0","impliedFormat":99},{"version":"36e85619f30581305cb707f60af9882474e802abed2d03125e04c07e763f7c4a","impliedFormat":99},{"version":"f0009b8cd0609df584a4c73a302e8839f6c6dc79807feac2b5f2831d12721964","impliedFormat":99},{"version":"211440ce81e87b3491cdf07155881344b0a61566df6e749acff0be7e8b9d1a07","impliedFormat":1},{"version":"5d9a0b6e6be8dbb259f64037bce02f34692e8c1519f5cd5d467d7fa4490dced4","impliedFormat":1},{"version":"880da0e0f3ebca42f9bd1bc2d3e5e7df33f2619d85f18ee0ed4bd16d1800bc32","impliedFormat":1},{"version":"617b2e0fa917ace5e1b19dcef2eae8a5888732a390c94e0b97f1afa3b6c5b52c","impliedFormat":99},{"version":"da77aa3d854b204e47ef742c4ecd71cd0b020f802e13b6a7e719367e8b9ccd18","impliedFormat":99},{"version":"04f395b82f656953ae6ccff3b26c55adb6a75e9e345991a10401696e593b0bb0","impliedFormat":99},{"version":"908217c4f2244ec402b73533ebfcc46d6dcd34fc1c807ff403d7f98702abb3bc","impliedFormat":1},{"version":"201ced2ca97d71fe47afdaebc656c2fa63ef2784256e4dfc9eb83930f7aac2c2","impliedFormat":1},{"version":"d8b8a5a6bf623239d5374ad4a7ff6f3b195ab5ee61293f59f1957e90d2a22809","impliedFormat":1},{"version":"35d283eca7dc0a0c7b099f5fbbf0678b87f3d837572cd5e539ba297ad9837e68","impliedFormat":1},{"version":"03852330113bfc10a497a653f39ad9f4ee8e4ed31a44cb9981de6d9d662c5354","impliedFormat":1},{"version":"26ec2c615ee349154b9cdb180a9bbd2d3e28a2646242e936cf79c1a44847ade7","impliedFormat":1},{"version":"56471ec726edfb50d4bc87b83e52f97de74f5d385db3db214f6e3ec2d02a3fb6","impliedFormat":99},{"version":"86a6eee8858453e02abc1196b611b348f9b157d19dcd47660246ede5b6a82676","impliedFormat":99},{"version":"129c10790c7de83509b3d852a79189b475a40b128e0726bd469f96b3d5749811","impliedFormat":99},{"version":"98763329166c62fa0ca9cfc0042bf924605c78bab880dc8b06ec83a445d3d67a","impliedFormat":99},{"version":"54cb16297ded2864aa5a752ac9ff205a85931492c3bdbe8a2ec9e584acb10048","impliedFormat":99},{"version":"ad739669b8527bacfaf8493ea4552216843afd0f9a2e583dec20ee7f4e2ead6e","impliedFormat":99},{"version":"ca7bd98691a8791dd32ffce6c205923d422b0ed0c2b199a2120b17dfb15fd2f2","impliedFormat":99},{"version":"3b5afd9a508beb9fffd7c601c04d40f933337c728f9a37386d0f6e4cc63b2ffc","impliedFormat":99},{"version":"ec30c62718c4e8d8fe11ffb0cbea6f00c9ce1811c233b96d1640856da8f5138a","impliedFormat":99},{"version":"7e4ca66b0da05237cb6cb8017c64f9e21474033dc1c91dc55ea7ec158a379e90","impliedFormat":99},{"version":"a90e5b76c0b66221c68c5cadaacd5df3bda226e5390419ebc33bc841b7d45224","impliedFormat":1},{"version":"033dee93fbcff5203e7742189496499f5a5da8cfdce861d836cfd2aba05e76ac","impliedFormat":1},{"version":"53f9ab518821707000bed86adb7e6862f90782fb5f3c507a99364feb4ffe8922","signature":"6547027bc35e314ae7cd9add50958e57096b841dcecea8544b2c9022d3d37368","impliedFormat":99},{"version":"c3fd304260d926572568109bbb1c3203788da7e76b8e74f8c1fcf2a12dcd8a92","signature":"41937a036558eba2b493ad320ff412f58f223c7b4da861c5171db5dfe156f423","impliedFormat":99},{"version":"08552d6ee9fc372edf3715458e91c61b5db6c26c99867ac79b4c4cbea173d3ea","signature":"ec30c62718c4e8d8fe11ffb0cbea6f00c9ce1811c233b96d1640856da8f5138a","impliedFormat":99},{"version":"caaf38856dbbc6abcf8f286bd1d6e1bed35525583dd18f1a951bdcca389ef612","signature":"934884f507a8558f7588e7367fe9121ba9a2a10c02d8fdc2f9bae6fb3cac6a3a","impliedFormat":99},{"version":"dc3b172ee27054dbcedcf5007b78c256021db936f6313a9ce9a3ecbb503fd646","impliedFormat":1},{"version":"eef204f061321360559bd19235ea32a9d55b3ec22a362cc78d14ef50d4db4490","affectsGlobalScope":true,"impliedFormat":1},{"version":"86e56d97b13ef0a58bc9c59aee782ae7d47d63802b5b32129ec5e5d62c20dbfa","affectsGlobalScope":true,"impliedFormat":1},{"version":"68cc8d6fcc2f270d7108f02f3ebc59480a54615be3e09a47e14527f349e9d53e","impliedFormat":1},{"version":"3eb11dbf3489064a47a2e1cf9d261b1f100ef0b3b50ffca6c44dd99d6dd81ac1","impliedFormat":1},{"version":"64d4b35c5456adf258d2cf56c341e203a073253f229ef3208fc0d5020253b241","affectsGlobalScope":true,"impliedFormat":1},{"version":"ee7d8894904b465b072be0d2e4b45cf6b887cdba16a467645c4e200982ece7ea","impliedFormat":1},{"version":"f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","impliedFormat":1},{"version":"7852500a7dc3f9cb6b73d619f6e0249119211ea662fd5e16c59ee5aba3deeb80","impliedFormat":1},{"version":"c3ae6bb11d6666d56efb16b56903895ba5320c2c2b0fecaf27784ef4599ac632","impliedFormat":1},{"version":"3b43f7224c99344262753af8fc1bb66cf0dc36fb15de92a190af88502c6256f6","impliedFormat":1},{"version":"be00321090ed100e3bd1e566c0408004137e73feb19d6380eba57d68519ff6c5","impliedFormat":1},{"version":"bb4ed283cfb3db7ec1d4bb79c37f5e96d39b340f1f4de995c4b0b836c8d5fa05","impliedFormat":1},{"version":"169cc96316cacf8b489aaab4ac6bcef7b33e8779a8902bce57c737b4aa372d16","impliedFormat":1},{"version":"8841e2aa774b89bd23302dede20663306dc1b9902431ac64b24be8b8d0e3f649","impliedFormat":1},{"version":"fbca5ffaebf282ec3cdac47b0d1d4a138a8b0bb32105251a38acb235087d3318","impliedFormat":1},{"version":"0ea93d01083b3d5863cc98cb589b5d0eac55d14417487f9e5e455dfa0b17c660","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b5402ae709d042c3530ed3506c135a967159f42aed3221267e70c5b7240b577","impliedFormat":1},{"version":"4f5269c28ed792a21efe3e2733a3398cb83f84384ccd9c5cd5a0950fdb211342","impliedFormat":1},{"version":"22293bd6fa12747929f8dfca3ec1684a3fe08638aa18023dd286ab337e88a592","impliedFormat":1},{"version":"327fddc7dd391f1e62262dafe41fc9cabedb4a5758a5cfce979cebab1456abb8","impliedFormat":1},{"version":"ec596fa2357df1b2702e42bcba645422eb727ab5c81136f78590f21a100286e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"ff2ceda3a4b66023a83964a4e2674b9778ce5255f87c5eefefd6d0f7f1967d56","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":"525b52b38b44420fb1758c0917e7b67cf379f7f9477d2ba7343f3d5f50a44258","affectsGlobalScope":true,"impliedFormat":1},{"version":"58b63c0f3bfac04d639c31a9fe094089c0bdcc8cda7bc35f1f23828677aa7926","impliedFormat":1},{"version":"d51d662a37aa1f1b97ed4caf4f1c25832047b9bfffcc707b53aedd07cd245303","impliedFormat":1},{"version":"b9d02ff98f8c5da182f415c7152b0da746346b0a15e6a93d772eff0c72165b9d","impliedFormat":1},{"version":"bae8d023ef6b23df7da26f51cea44321f95817c190342a36882e93b80d07a960","impliedFormat":1},{"version":"5d30d04a14ed8527ac5d654dc345a4db11b593334c11a65efb6e4facc5484a0e","impliedFormat":1}],"root":[[192,195]],"options":{"allowJs":true,"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},"fileIdsList":[[190],[156,160],[156],[134,153,155],[156,157,158,159],[197],[199],[201,202,203],[134,153],[117,153,168,169],[153],[116,134,142,153],[117,145,153],[116,153],[67],[103],[104,109,137],[105,116,117,124,134,145],[105,106,116,124],[107,146],[108,109,117,125],[109,134,142],[110,112,116,124],[103,111],[112,113],[116],[114,116],[103,116],[116,117,118,134,145],[116,117,118,131,134,137],[101,150],[112,116,119,124,134,145],[116,117,119,120,124,134,142,145],[119,121,134,142,145],[67,68,102,103,104,105,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],[116,122],[123,145,150],[112,116,124,134],[125],[126],[103,127],[128,144,150],[129],[130],[116,131,132],[131,133,146,148],[104,116,134,135,136,137],[104,134,136],[134,135],[137],[138],[103,134],[116,140,141],[140,141],[109,124,134,142],[143],[124,144],[104,119,130,145],[109,146],[134,147],[123,148],[149],[104,109,116,118,127,134,145,148,150],[134,151],[116,144,153,217],[220,259],[220,244,259],[259],[220],[220,245,259],[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,250,251,252,253,254,255,256,257,258],[245,259],[197,261],[260],[117,134,151,153,263],[110,124,153,176,206],[266],[105,134,153],[174],[116,134,153],[105],[78,82,145],[78,134,145],[73],[75,78,142,145],[124,142],[73,153],[75,78,124,145],[70,71,74,77,104,116,134,145],[70,76],[74,78,104,137,145,153],[104,153],[94,104,153],[72,73,153],[78],[72,73,74,75,76,77,78,79,80,82,83,84,85,86,87,88,89,90,91,92,93,95,96,97,98,99,100],[78,85,86],[76,78,86,87],[77],[70,73,78],[78,82,86,87],[82],[76,78,81,145],[70,75,76,78,82,85],[104,134],[73,78,94,104,150,153],[134,153,175],[134,153,175,176,177,178],[119,153,176],[163,172,173,180,181,182,183],[64],[179],[64,105,153,154,161,162],[164,171,184],[163],[116,124,153,163],[167,186,188],[170,185],[167,187],[124,153,186],[167,194],[117,125,126,184,189,191],[167,193],[109,124,126,163,167,170,184,185,192],[66,165,166],[64,66,163,164],[64,65],[62,63,117]],"referencedMap":[[191,1],[161,2],[157,3],[156,4],[158,3],[159,3],[160,5],[198,6],[200,7],[204,8],[205,9],[170,10],[206,11],[207,12],[168,13],[208,11],[213,11],[214,14],[67,15],[68,15],[103,16],[104,17],[105,18],[106,19],[107,20],[108,21],[109,22],[110,23],[111,24],[112,25],[113,25],[115,26],[114,27],[116,28],[117,29],[118,30],[102,31],[119,32],[120,33],[121,34],[153,35],[122,36],[123,37],[124,38],[125,39],[126,40],[127,41],[128,42],[129,43],[130,44],[131,45],[132,45],[133,46],[134,47],[136,48],[135,49],[137,50],[138,51],[139,52],[140,53],[141,54],[142,55],[143,56],[144,57],[145,58],[146,59],[147,60],[148,61],[149,62],[150,63],[151,64],[218,65],[244,66],[245,67],[220,68],[223,68],[242,66],[243,66],[233,66],[232,69],[230,66],[225,66],[238,66],[236,66],[240,66],[224,66],[237,66],[241,66],[226,66],[227,66],[239,66],[221,66],[228,66],[229,66],[231,66],[235,66],[246,70],[234,66],[222,66],[259,71],[253,70],[255,72],[254,70],[247,70],[248,70],[250,70],[252,70],[256,72],[257,72],[249,72],[251,72],[262,73],[261,74],[264,75],[265,76],[267,77],[155,78],[175,79],[263,80],[154,81],[85,82],[92,83],[84,82],[99,84],[76,85],[75,86],[98,11],[93,87],[96,88],[78,89],[77,90],[73,91],[72,92],[95,93],[74,94],[79,95],[83,95],[101,96],[100,95],[87,97],[88,98],[90,99],[86,100],[89,101],[94,11],[81,102],[82,103],[91,104],[71,105],[97,106],[176,107],[179,108],[177,11],[178,109],[184,110],[181,111],[180,112],[163,113],[185,114],[164,115],[171,116],[189,117],[186,118],[188,119],[187,120],[195,121],[192,122],[194,123],[193,124],[167,125],[166,111],[165,126],[66,127],[64,128],[62,39]],"exportedModulesMap":[[191,1],[161,2],[157,3],[156,4],[158,3],[159,3],[160,5],[198,6],[200,7],[204,8],[205,9],[170,10],[206,11],[207,12],[168,13],[208,11],[213,11],[214,14],[67,15],[68,15],[103,16],[104,17],[105,18],[106,19],[107,20],[108,21],[109,22],[110,23],[111,24],[112,25],[113,25],[115,26],[114,27],[116,28],[117,29],[118,30],[102,31],[119,32],[120,33],[121,34],[153,35],[122,36],[123,37],[124,38],[125,39],[126,40],[127,41],[128,42],[129,43],[130,44],[131,45],[132,45],[133,46],[134,47],[136,48],[135,49],[137,50],[138,51],[139,52],[140,53],[141,54],[142,55],[143,56],[144,57],[145,58],[146,59],[147,60],[148,61],[149,62],[150,63],[151,64],[218,65],[244,66],[245,67],[220,68],[223,68],[242,66],[243,66],[233,66],[232,69],[230,66],[225,66],[238,66],[236,66],[240,66],[224,66],[237,66],[241,66],[226,66],[227,66],[239,66],[221,66],[228,66],[229,66],[231,66],[235,66],[246,70],[234,66],[222,66],[259,71],[253,70],[255,72],[254,70],[247,70],[248,70],[250,70],[252,70],[256,72],[257,72],[249,72],[251,72],[262,73],[261,74],[264,75],[265,76],[267,77],[155,78],[175,79],[263,80],[154,81],[85,82],[92,83],[84,82],[99,84],[76,85],[75,86],[98,11],[93,87],[96,88],[78,89],[77,90],[73,91],[72,92],[95,93],[74,94],[79,95],[83,95],[101,96],[100,95],[87,97],[88,98],[90,99],[86,100],[89,101],[94,11],[81,102],[82,103],[91,104],[71,105],[97,106],[176,107],[179,108],[177,11],[178,109],[184,110],[181,111],[180,112],[163,113],[185,114],[164,115],[171,116],[189,117],[186,118],[188,119],[187,120],[195,121],[167,125],[166,111],[165,126],[66,127],[64,128],[62,39]],"semanticDiagnosticsPerFile":[191,190,161,157,156,158,159,160,196,198,197,200,201,204,202,205,170,206,207,203,168,169,208,209,210,211,212,199,213,214,67,68,103,104,105,106,107,108,109,110,111,112,113,115,114,116,117,118,102,152,119,120,121,153,122,123,124,125,126,127,128,129,130,131,132,133,134,136,135,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,215,216,218,219,217,244,245,220,223,242,243,233,232,230,225,238,236,240,224,237,241,226,227,239,221,228,229,231,235,246,234,222,259,258,253,255,254,247,248,250,252,256,257,249,251,262,261,260,264,174,265,266,267,69,155,175,263,154,60,61,12,11,2,13,14,15,16,17,18,19,20,3,21,4,22,26,23,24,25,27,28,29,5,30,31,32,33,6,37,34,35,36,38,7,39,44,45,40,41,42,43,8,49,46,47,48,50,9,51,52,53,56,54,55,57,58,10,1,59,85,92,84,99,76,75,98,93,96,78,77,73,72,95,74,79,80,83,70,101,100,87,88,90,86,89,94,81,82,91,71,97,176,179,177,178,184,183,172,181,180,162,173,182,163,185,164,171,189,186,188,187,195,192,194,193,167,65,166,165,66,63,64,62],"latestChangedDtsFile":"./esm/index.d.ts"},"version":"5.4.5"}
package/package.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "@iobroker/db-objects-jsonl",
3
3
  "type": "module",
4
- "version": "6.0.1-alpha.0-20240603-3deca26fa",
4
+ "version": "6.0.1",
5
5
  "engines": {
6
6
  "node": ">=12.0.0"
7
7
  },
8
8
  "dependencies": {
9
9
  "@alcalzone/jsonl-db": "~3.1.1",
10
- "@iobroker/db-base": "6.0.1-alpha.0-20240603-3deca26fa",
11
- "@iobroker/db-objects-file": "6.0.1-alpha.0-20240603-3deca26fa",
12
- "@iobroker/db-objects-redis": "6.0.1-alpha.0-20240603-3deca26fa",
10
+ "@iobroker/db-base": "6.0.1",
11
+ "@iobroker/db-objects-file": "6.0.1",
12
+ "@iobroker/db-objects-redis": "6.0.1",
13
13
  "deep-clone": "^3.0.3",
14
14
  "fs-extra": "^11.1.0"
15
15
  },
@@ -49,5 +49,5 @@
49
49
  "files": [
50
50
  "build/"
51
51
  ],
52
- "gitHead": "59c191f7ef1995375ade77815af6d3cf5b6efadf"
52
+ "gitHead": "c5edb83f9bd96eb2d27841ca94e215a01d769fb4"
53
53
  }