@harperfast/harper-pro 5.0.6 → 5.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/core/bin/status.js +2 -2
- package/core/bin/stop.js +6 -5
- package/core/components/EntryHandler.ts +2 -4
- package/core/components/Scope.ts +1 -1
- package/core/components/componentLoader.ts +4 -11
- package/core/components/requestRestart.ts +2 -17
- package/core/dataLayer/harperBridge/lmdbBridge/lmdbUtility/TableSizeObject.js +25 -0
- package/core/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbGetTableSize.js +34 -0
- package/core/package-lock.json +63 -971
- package/core/resources/DatabaseTransaction.ts +3 -8
- package/core/resources/Table.ts +17 -12
- package/core/resources/databases.ts +2 -2
- package/core/resources/graphql.ts +165 -163
- package/core/resources/indexes/HierarchicalNavigableSmallWorld.ts +3 -14
- package/core/resources/indexes/vector.ts +0 -17
- package/core/resources/loadEnv.ts +16 -20
- package/core/resources/login.ts +3 -4
- package/core/resources/roles.ts +65 -60
- package/core/security/auth.ts +14 -15
- package/core/security/jsLoader.ts +2 -14
- package/core/server/REST.ts +11 -10
- package/core/server/fastifyRoutes.ts +29 -30
- package/core/server/graphqlQuerying.ts +3 -4
- package/core/server/http.ts +1 -175
- package/core/server/mqtt.ts +2 -8
- package/core/server/serverHelpers/serverUtilities.ts +5 -2
- package/core/server/threads/threadServer.js +2 -30
- package/core/server/throttle.ts +0 -18
- package/core/utility/environment/environmentManager.js +4 -10
- package/core/utility/environment/systemInformation.js +355 -0
- package/core/utility/hdbTerms.ts +0 -1
- package/core/utility/operation_authorization.js +5 -2
- package/dist/core/bin/status.js +2 -2
- package/dist/core/bin/status.js.map +1 -1
- package/dist/core/bin/stop.js +5 -5
- package/dist/core/bin/stop.js.map +1 -1
- package/dist/core/components/EntryHandler.js +2 -4
- package/dist/core/components/EntryHandler.js.map +1 -1
- package/dist/core/components/Scope.js +1 -1
- package/dist/core/components/Scope.js.map +1 -1
- package/dist/core/components/componentLoader.js +3 -11
- package/dist/core/components/componentLoader.js.map +1 -1
- package/dist/core/components/requestRestart.js +1 -12
- package/dist/core/components/requestRestart.js.map +1 -1
- package/dist/core/dataLayer/harperBridge/lmdbBridge/lmdbUtility/TableSizeObject.js +24 -0
- package/dist/core/dataLayer/harperBridge/lmdbBridge/lmdbUtility/TableSizeObject.js.map +1 -0
- package/dist/core/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbGetTableSize.js +19 -18
- package/dist/core/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbGetTableSize.js.map +1 -1
- package/dist/core/resources/DatabaseTransaction.js +1 -6
- package/dist/core/resources/DatabaseTransaction.js.map +1 -1
- package/dist/core/resources/Table.js +18 -14
- package/dist/core/resources/Table.js.map +1 -1
- package/dist/core/resources/databases.js +1 -2
- package/dist/core/resources/databases.js.map +1 -1
- package/dist/core/resources/graphql.js +176 -176
- package/dist/core/resources/graphql.js.map +1 -1
- package/dist/core/resources/indexes/HierarchicalNavigableSmallWorld.js +2 -14
- package/dist/core/resources/indexes/HierarchicalNavigableSmallWorld.js.map +1 -1
- package/dist/core/resources/indexes/vector.js +0 -14
- package/dist/core/resources/indexes/vector.js.map +1 -1
- package/dist/core/resources/loadEnv.js +17 -20
- package/dist/core/resources/loadEnv.js.map +1 -1
- package/dist/core/resources/login.js +4 -4
- package/dist/core/resources/login.js.map +1 -1
- package/dist/core/resources/roles.js +68 -64
- package/dist/core/resources/roles.js.map +1 -1
- package/dist/core/security/auth.js +15 -17
- package/dist/core/security/auth.js.map +1 -1
- package/dist/core/security/jsLoader.js +2 -16
- package/dist/core/security/jsLoader.js.map +1 -1
- package/dist/core/server/REST.js +11 -11
- package/dist/core/server/REST.js.map +1 -1
- package/dist/core/server/fastifyRoutes.js +29 -30
- package/dist/core/server/fastifyRoutes.js.map +1 -1
- package/dist/core/server/graphqlQuerying.js +4 -5
- package/dist/core/server/graphqlQuerying.js.map +1 -1
- package/dist/core/server/http.js +0 -179
- package/dist/core/server/http.js.map +1 -1
- package/dist/core/server/mqtt.js +3 -5
- package/dist/core/server/mqtt.js.map +1 -1
- package/dist/core/server/serverHelpers/serverUtilities.js +2 -2
- package/dist/core/server/serverHelpers/serverUtilities.js.map +1 -1
- package/dist/core/server/threads/threadServer.js +2 -26
- package/dist/core/server/threads/threadServer.js.map +1 -1
- package/dist/core/server/throttle.js +0 -17
- package/dist/core/server/throttle.js.map +1 -1
- package/dist/core/utility/environment/environmentManager.js +4 -9
- package/dist/core/utility/environment/environmentManager.js.map +1 -1
- package/dist/core/utility/environment/systemInformation.js +219 -359
- package/dist/core/utility/environment/systemInformation.js.map +1 -1
- package/dist/core/utility/hdbTerms.js +0 -1
- package/dist/core/utility/hdbTerms.js.map +1 -1
- package/dist/core/utility/operation_authorization.js +2 -2
- package/dist/core/utility/operation_authorization.js.map +1 -1
- package/npm-shrinkwrap.json +54 -974
- package/package.json +1 -2
- package/studio/web/assets/{index-qbLPhOzw.js → index-C0And10y.js} +2 -2
- package/studio/web/assets/{index-qbLPhOzw.js.map → index-C0And10y.js.map} +1 -1
- package/studio/web/index.html +1 -1
- package/core/dataLayer/harperBridge/TableSizeObject.ts +0 -35
- package/core/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbGetTableSize.ts +0 -24
- package/core/utility/environment/systemInformation.ts +0 -698
- package/dist/core/dataLayer/harperBridge/TableSizeObject.js +0 -32
- package/dist/core/dataLayer/harperBridge/TableSizeObject.js.map +0 -1
|
@@ -2,8 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
const { isMainThread, parentPort, threadId, workerData } = require('node:worker_threads');
|
|
4
4
|
const { createServer: createSocketServer } = require('node:net');
|
|
5
|
-
const { unlinkSync, existsSync
|
|
6
|
-
const { join } = require('path');
|
|
5
|
+
const { unlinkSync, existsSync } = require('fs');
|
|
7
6
|
let componentsLoadedResolve;
|
|
8
7
|
exports.whenComponentsLoaded = new Promise((resolve) => {
|
|
9
8
|
componentsLoadedResolve = resolve;
|
|
@@ -145,8 +144,6 @@ function startServers() {
|
|
|
145
144
|
}, 5000).unref();
|
|
146
145
|
});
|
|
147
146
|
}
|
|
148
|
-
// Clean up per-thread UDS socket and metadata files
|
|
149
|
-
httpComponent.cleanupUdsFiles();
|
|
150
147
|
if (debugThreads || process.env.DEV_MODE) {
|
|
151
148
|
try {
|
|
152
149
|
require('inspector').close();
|
|
@@ -175,8 +172,6 @@ function startServers() {
|
|
|
175
172
|
});
|
|
176
173
|
});
|
|
177
174
|
componentsLoadedResolve(loaded);
|
|
178
|
-
// Clean up UDS files on unexpected process exit
|
|
179
|
-
process.on('exit', () => httpComponent.cleanupUdsFiles());
|
|
180
175
|
return loaded;
|
|
181
176
|
}
|
|
182
177
|
function listenOnPorts() {
|
|
@@ -185,7 +180,7 @@ function listenOnPorts() {
|
|
|
185
180
|
const server = SERVERS[port];
|
|
186
181
|
|
|
187
182
|
// If server is unix domain socket
|
|
188
|
-
if (port.includes?.('/')) {
|
|
183
|
+
if (port.includes?.('/') && getWorkerIndex() == 0) {
|
|
189
184
|
if (existsSync(port)) unlinkSync(port);
|
|
190
185
|
listening.push(
|
|
191
186
|
new Promise((resolve, reject) => {
|
|
@@ -270,29 +265,6 @@ function onSocket(listener, options) {
|
|
|
270
265
|
);
|
|
271
266
|
SNICallback.initialize(socketServer);
|
|
272
267
|
SERVERS[options.securePort] = socketServer;
|
|
273
|
-
|
|
274
|
-
// Create a corresponding Unix Domain Socket mirror for the secure socket
|
|
275
|
-
if (env.get(terms.CONFIG_PARAMS.TLS_UNIXDOMAINSOCKETS)) {
|
|
276
|
-
const socketsDir = join(env.getHdbBasePath(), 'sockets');
|
|
277
|
-
mkdirSync(socketsDir, { recursive: true });
|
|
278
|
-
const socketName = `${getWorkerIndex()}-${options.securePort}`;
|
|
279
|
-
const udsPath = join(socketsDir, `${socketName}.sock`);
|
|
280
|
-
const yamlPath = join(socketsDir, `${socketName}.yaml`);
|
|
281
|
-
|
|
282
|
-
const udsServer = createSocketServer(listener, {
|
|
283
|
-
noDelay: true,
|
|
284
|
-
keepAlive: true,
|
|
285
|
-
keepAliveInitialDelay: 600,
|
|
286
|
-
});
|
|
287
|
-
|
|
288
|
-
udsServer.isPerThreadSocket = true;
|
|
289
|
-
SERVERS[udsPath] = udsServer;
|
|
290
|
-
httpComponent.registerUdsCleanupPaths(udsPath, yamlPath);
|
|
291
|
-
|
|
292
|
-
const writeMetadata = () => httpComponent.writeUdsMetadata(yamlPath, options.securePort, socketServer);
|
|
293
|
-
SNICallback.ready.then(writeMetadata);
|
|
294
|
-
socketServer.secureContextsListeners.push(writeMetadata);
|
|
295
|
-
}
|
|
296
268
|
}
|
|
297
269
|
if (options.port) {
|
|
298
270
|
setPortServerMap(options.port, { protocol_name: 'TCP', name: getComponentName() });
|
package/core/server/throttle.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { logger } from '../utility/logging/logger.ts';
|
|
2
|
-
import { Session, url as inspectorURL } from 'node:inspector';
|
|
3
2
|
const MAX_EVENT_DELAY_TIME = 3000;
|
|
4
3
|
const DEFAULT_MAX_QUEUE_TIME = 20_000; // 20 seconds
|
|
5
4
|
let lastWarning = 0;
|
|
@@ -72,20 +71,3 @@ setInterval(() => {
|
|
|
72
71
|
}
|
|
73
72
|
lastEventQueueCheck = now;
|
|
74
73
|
}, EVENT_QUEUE_MONITORING_INTERVAL).unref();
|
|
75
|
-
|
|
76
|
-
// Reset lastEventQueueCheck if we are resuming from the debugger
|
|
77
|
-
// so the event loop lag check ignores breakpoint pauses
|
|
78
|
-
setTimeout(() => {
|
|
79
|
-
// wait for any debugger to register and then see if the inspector/debugger is actually enabled
|
|
80
|
-
if (inspectorURL()) {
|
|
81
|
-
const session = new Session();
|
|
82
|
-
session.connect();
|
|
83
|
-
session.post('Debugger.enable');
|
|
84
|
-
session.on('inspectorNotification', ({ method }) => {
|
|
85
|
-
if (method === 'Debugger.resumed') {
|
|
86
|
-
// reset if we are resuming
|
|
87
|
-
lastEventQueueCheck = performance.now();
|
|
88
|
-
}
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
}, 1);
|
|
@@ -152,22 +152,16 @@ function initTestEnvironment(testConfigObj = {}) {
|
|
|
152
152
|
// __dirname is dist/utility/environment when running tests, so go up 3 levels to reach project root
|
|
153
153
|
const propsPath = path.join(__dirname, '../../../', 'unitTests');
|
|
154
154
|
installProps[BOOT_PROPS_FILE_PATH] = path.join(propsPath, 'hdb_boot_properties.file');
|
|
155
|
-
const TEST_HDB_PATH = path.join(propsPath, 'envDir', process.pid.toString());
|
|
156
155
|
try {
|
|
157
|
-
mkdirSync(
|
|
156
|
+
mkdirSync(path.join(propsPath, 'envDir'));
|
|
158
157
|
} catch {}
|
|
159
158
|
setProperty(hdbTerms.HDB_SETTINGS_NAMES.SETTINGS_PATH_KEY, path.join(propsPath, 'settings.test'));
|
|
160
159
|
setProperty(hdbTerms.HDB_SETTINGS_NAMES.INSTALL_USER, os.userInfo() ? os.userInfo().username : undefined);
|
|
161
160
|
setProperty(hdbTerms.HDB_SETTINGS_NAMES.LOG_LEVEL_KEY, `debug`);
|
|
162
|
-
setProperty(hdbTerms.HDB_SETTINGS_NAMES.LOG_PATH_KEY, path.join(
|
|
161
|
+
setProperty(hdbTerms.HDB_SETTINGS_NAMES.LOG_PATH_KEY, path.join(propsPath, 'envDir', 'log'));
|
|
163
162
|
setProperty(hdbTerms.HDB_SETTINGS_NAMES.LOG_DAILY_ROTATE_KEY, false);
|
|
164
|
-
setProperty(hdbTerms.HDB_SETTINGS_NAMES.HDB_ROOT_KEY,
|
|
165
|
-
setProperty(hdbTerms.CONFIG_PARAMS.STORAGE_PATH,
|
|
166
|
-
const systemPath = typeof databases !== 'undefined' && databases.system?.hdb_user?.primaryStore?.path;
|
|
167
|
-
if (systemPath) {
|
|
168
|
-
setProperty(hdbTerms.CONFIG_PARAMS.DATABASES, { system: { path: path.dirname(systemPath) } });
|
|
169
|
-
}
|
|
170
|
-
|
|
163
|
+
setProperty(hdbTerms.HDB_SETTINGS_NAMES.HDB_ROOT_KEY, path.join(propsPath, 'envDir'));
|
|
164
|
+
setProperty(hdbTerms.CONFIG_PARAMS.STORAGE_PATH, path.join(propsPath, 'envDir'));
|
|
171
165
|
if (https_enabled) {
|
|
172
166
|
setProperty(hdbTerms.CONFIG_PARAMS.HTTP_SECUREPORT, get(hdbTerms.CONFIG_PARAMS.HTTP_PORT));
|
|
173
167
|
setProperty(hdbTerms.CONFIG_PARAMS.HTTP_PORT, null);
|
|
@@ -0,0 +1,355 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const fs = require('fs-extra');
|
|
4
|
+
const path = require('path');
|
|
5
|
+
const si = require('systeminformation');
|
|
6
|
+
const log = require('../logging/harper_logger.js');
|
|
7
|
+
const terms = require('../hdbTerms.ts');
|
|
8
|
+
const lmdbGetTableSize = require('../../dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbGetTableSize.js');
|
|
9
|
+
const schemaDescribe = require('../../dataLayer/schemaDescribe.js');
|
|
10
|
+
const { getThreadInfo } = require('../../server/threads/manageThreads.js');
|
|
11
|
+
const env = require('./environmentManager.js');
|
|
12
|
+
env.initSync();
|
|
13
|
+
const { databases } = require('../../resources/databases.ts');
|
|
14
|
+
|
|
15
|
+
//this will hold the system_information which is static to improve performance
|
|
16
|
+
let systemInformationCache = undefined;
|
|
17
|
+
|
|
18
|
+
class SystemInformationRequest {
|
|
19
|
+
constructor(attributes) {
|
|
20
|
+
this.operator = terms.OPERATIONS_ENUM.SYSTEM_INFORMATION;
|
|
21
|
+
this.attributes = attributes;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
class SystemInformationResponse {
|
|
26
|
+
constructor(system, time, cpu, memory, disk, network, harperdbProcesses) {
|
|
27
|
+
this.system = system;
|
|
28
|
+
this.time = time;
|
|
29
|
+
this.cpu = cpu;
|
|
30
|
+
this.memory = memory;
|
|
31
|
+
this.disk = disk;
|
|
32
|
+
this.network = network;
|
|
33
|
+
this.harperdb_processes = harperdbProcesses;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
module.exports = {
|
|
38
|
+
getHDBProcessInfo,
|
|
39
|
+
getNetworkInfo,
|
|
40
|
+
getDiskInfo,
|
|
41
|
+
getMemoryInfo,
|
|
42
|
+
getCPUInfo,
|
|
43
|
+
getTimeInfo,
|
|
44
|
+
getSystemInformation,
|
|
45
|
+
systemInformation,
|
|
46
|
+
getTableSize,
|
|
47
|
+
getMetrics,
|
|
48
|
+
SystemInformationRequest,
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* executes the time function to return the time info for the system
|
|
53
|
+
* @returns {si.Systeminformation.TimeData}
|
|
54
|
+
*/
|
|
55
|
+
function getTimeInfo() {
|
|
56
|
+
return si.time();
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* executes cpu related functions
|
|
61
|
+
* @returns {Promise<{}|Pick<si.Systeminformation.CpuData, "manufacturer" | "brand" | "vendor" | "speed" | "cores" | "physicalCores" | "processors">>}
|
|
62
|
+
*/
|
|
63
|
+
async function getCPUInfo() {
|
|
64
|
+
try {
|
|
65
|
+
// eslint-disable-next-line no-unused-vars
|
|
66
|
+
let { family, model, stepping, revision, voltage, speedmin, speedmax, governor, socket, cache, ...cpuInfo } =
|
|
67
|
+
await si.cpu();
|
|
68
|
+
cpuInfo.cpu_speed = await si.cpuCurrentSpeed();
|
|
69
|
+
|
|
70
|
+
let {
|
|
71
|
+
// eslint-disable-next-line no-unused-vars
|
|
72
|
+
rawCurrentload,
|
|
73
|
+
cpus,
|
|
74
|
+
...cpuCurrentLoad
|
|
75
|
+
} = await si.currentLoad();
|
|
76
|
+
cpuCurrentLoad.cpus = [];
|
|
77
|
+
cpus.forEach((cpuData) => {
|
|
78
|
+
// eslint-disable-next-line no-unused-vars
|
|
79
|
+
let { rawLoad, rawLoadIdle, rawLoadIrq, rawLoadNice, rawLoadSystem, rawLoadUser, ...cpuLoad } = cpuData;
|
|
80
|
+
cpuCurrentLoad.cpus.push(cpuLoad);
|
|
81
|
+
});
|
|
82
|
+
cpuInfo.current_load = cpuCurrentLoad;
|
|
83
|
+
return cpuInfo;
|
|
84
|
+
} catch (e) {
|
|
85
|
+
log.error(`error in getCPUInfo: ${e}`);
|
|
86
|
+
return {};
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* fetches information related memory
|
|
92
|
+
* @returns {Promise<{}|Pick<si.Systeminformation.MemData, "total" | "free" | "used" | "active" | "available" | "swaptotal" | "swapused" | "swapfree">>}
|
|
93
|
+
*/
|
|
94
|
+
async function getMemoryInfo() {
|
|
95
|
+
try {
|
|
96
|
+
// eslint-disable-next-line no-unused-vars
|
|
97
|
+
let { buffers, cached, slab, buffcache, ...memInfo } = await si.mem();
|
|
98
|
+
return Object.assign(memInfo, process.memoryUsage());
|
|
99
|
+
} catch (e) {
|
|
100
|
+
log.error(`error in getMemoryInfo: ${e}`);
|
|
101
|
+
return {};
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* searches for & returns the processes for hdb core
|
|
107
|
+
* @returns {Promise<{core: []}>}
|
|
108
|
+
*/
|
|
109
|
+
async function getHDBProcessInfo() {
|
|
110
|
+
let harperdbProcesses = {
|
|
111
|
+
core: [],
|
|
112
|
+
};
|
|
113
|
+
try {
|
|
114
|
+
let processes = await si.processes();
|
|
115
|
+
|
|
116
|
+
let hdbPid;
|
|
117
|
+
try {
|
|
118
|
+
hdbPid = Number.parseInt(
|
|
119
|
+
await fs.readFile(path.join(env.get(terms.CONFIG_PARAMS.ROOTPATH), terms.HDB_PID_FILE), 'utf8')
|
|
120
|
+
);
|
|
121
|
+
} catch (err) {
|
|
122
|
+
if (err.code === terms.NODE_ERROR_CODES.ENOENT) {
|
|
123
|
+
log.warn(
|
|
124
|
+
`Unable to locate 'hdb.pid' file, try stopping and starting Harper. This could be because Harper is not running.`
|
|
125
|
+
);
|
|
126
|
+
} else {
|
|
127
|
+
throw err;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
processes.list.forEach((p) => {
|
|
132
|
+
if (p.pid === hdbPid) {
|
|
133
|
+
harperdbProcesses.core.push(p);
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
|
|
137
|
+
for (const hdbP of harperdbProcesses.core) {
|
|
138
|
+
for (const p of processes.list) {
|
|
139
|
+
if (p.pid === hdbP.parentPid && (p.name === 'PM2' || p.command === 'PM2')) {
|
|
140
|
+
hdbP.parent = 'PM2';
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
return harperdbProcesses;
|
|
146
|
+
} catch (e) {
|
|
147
|
+
log.error(`error in getHDBProcessInfo: ${e}`);
|
|
148
|
+
return harperdbProcesses;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* gets disk related info & stats
|
|
154
|
+
* @returns {Promise<{}>}
|
|
155
|
+
*/
|
|
156
|
+
async function getDiskInfo() {
|
|
157
|
+
let disk = {};
|
|
158
|
+
try {
|
|
159
|
+
if (!env.get(terms.CONFIG_PARAMS.OPERATIONSAPI_SYSINFO_DISK)) return disk;
|
|
160
|
+
// eslint-disable-next-line no-unused-vars
|
|
161
|
+
let { rIO_sec, wIO_sec, tIO_sec, ms, ...diskIo } = await si.disksIO();
|
|
162
|
+
disk.io = diskIo;
|
|
163
|
+
|
|
164
|
+
// eslint-disable-next-line no-unused-vars
|
|
165
|
+
let { rxSec, txSec, wxSec, ...fsStats } = await si.fsStats();
|
|
166
|
+
disk.read_write = fsStats;
|
|
167
|
+
|
|
168
|
+
disk.size = await si.fsSize();
|
|
169
|
+
|
|
170
|
+
return disk;
|
|
171
|
+
} catch (e) {
|
|
172
|
+
log.error(`error in getDiskInfo: ${e}`);
|
|
173
|
+
return disk;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* gets networking & connection information & stats
|
|
179
|
+
* @returns {Promise<{interfaces: [], default_interface: null, stats: [], latency: {}, connections: []}>}
|
|
180
|
+
*/
|
|
181
|
+
async function getNetworkInfo() {
|
|
182
|
+
let network = {
|
|
183
|
+
default_interface: null,
|
|
184
|
+
latency: {},
|
|
185
|
+
interfaces: [],
|
|
186
|
+
stats: [],
|
|
187
|
+
connections: [],
|
|
188
|
+
};
|
|
189
|
+
try {
|
|
190
|
+
if (!env.get(terms.CONFIG_PARAMS.OPERATIONSAPI_SYSINFO_NETWORK)) return network;
|
|
191
|
+
network.default_interface = await si.networkInterfaceDefault();
|
|
192
|
+
|
|
193
|
+
network.latency = await si.inetChecksite('google.com');
|
|
194
|
+
|
|
195
|
+
let nInterfaces = await si.networkInterfaces();
|
|
196
|
+
nInterfaces.forEach((_interface) => {
|
|
197
|
+
// eslint-disable-next-line no-unused-vars
|
|
198
|
+
let { internal, virtual, mtu, dhcp, dnsSuffix, ieee8021xAuth, ieee8021xState, carrierChanges, ...networkInt } =
|
|
199
|
+
_interface;
|
|
200
|
+
network.interfaces.push(networkInt);
|
|
201
|
+
});
|
|
202
|
+
|
|
203
|
+
let stats = await si.networkStats();
|
|
204
|
+
stats.forEach((nStat) => {
|
|
205
|
+
// eslint-disable-next-line no-unused-vars
|
|
206
|
+
let { rxSec, txSec, ms, ...stat } = nStat;
|
|
207
|
+
network.stats.push(stat);
|
|
208
|
+
});
|
|
209
|
+
|
|
210
|
+
return network;
|
|
211
|
+
} catch (e) {
|
|
212
|
+
log.error(`error in getNetworkInfo: ${e}`);
|
|
213
|
+
return network;
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
/**
|
|
218
|
+
* gets system information
|
|
219
|
+
* @returns {Promise<Pick<si.Systeminformation.OsData, "platform" | "distro" | "release" | "codename" | "kernel" | "arch" | "hostname">|{}>}
|
|
220
|
+
*/
|
|
221
|
+
async function getSystemInformation() {
|
|
222
|
+
if (systemInformationCache !== undefined) {
|
|
223
|
+
return systemInformationCache;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
let system_info = {};
|
|
227
|
+
try {
|
|
228
|
+
// eslint-disable-next-line no-unused-vars
|
|
229
|
+
let { codepage, logofile, serial, build, servicepack, uefi, ...sysInfo } = await si.osInfo();
|
|
230
|
+
system_info = sysInfo;
|
|
231
|
+
let versions = await si.versions('node, npm');
|
|
232
|
+
system_info.node_version = versions.node;
|
|
233
|
+
system_info.npm_version = versions.npm;
|
|
234
|
+
|
|
235
|
+
systemInformationCache = system_info;
|
|
236
|
+
return systemInformationCache;
|
|
237
|
+
} catch (e) {
|
|
238
|
+
log.error(`error in getSystemInformation: ${e}`);
|
|
239
|
+
return system_info;
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
async function getTableSize() {
|
|
244
|
+
//get details for all tables
|
|
245
|
+
let tableSizes = [];
|
|
246
|
+
let allSchemas = await schemaDescribe.describeAll();
|
|
247
|
+
for (const tables of Object.values(allSchemas)) {
|
|
248
|
+
for (const tableData of Object.values(tables)) {
|
|
249
|
+
tableSizes.push(await lmdbGetTableSize(tableData));
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
return tableSizes;
|
|
254
|
+
}
|
|
255
|
+
async function getMetrics() {
|
|
256
|
+
let schemaStats = {};
|
|
257
|
+
for (let schemaName in databases) {
|
|
258
|
+
let dbStats = (schemaStats[schemaName] = {});
|
|
259
|
+
let tableStats = (dbStats.tables = {});
|
|
260
|
+
for (let tableName in databases[schemaName]) {
|
|
261
|
+
try {
|
|
262
|
+
let table = databases[schemaName][tableName];
|
|
263
|
+
if (!dbStats.readers) {
|
|
264
|
+
Object.assign(dbStats, table.primaryStore.rootStore.getStats());
|
|
265
|
+
delete dbStats.root;
|
|
266
|
+
dbStats.readers = table.primaryStore.rootStore
|
|
267
|
+
.readerList()
|
|
268
|
+
.split(/\n\s+/)
|
|
269
|
+
.slice(1)
|
|
270
|
+
.map((line) => {
|
|
271
|
+
const [pid, thread, txnid] = line.trim().split(' ');
|
|
272
|
+
return { pid, thread, txnid };
|
|
273
|
+
});
|
|
274
|
+
if (table.auditStore) {
|
|
275
|
+
const { treeDepth, treeBranchPageCount, treeLeafPageCount, entryCount, overflowPages } =
|
|
276
|
+
table.auditStore.getStats();
|
|
277
|
+
dbStats.audit = { treeDepth, treeBranchPageCount, treeLeafPageCount, entryCount, overflowPages };
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
let tableFullStats = table.primaryStore.getStats();
|
|
281
|
+
let tablePrunedStats = {};
|
|
282
|
+
for (let storeKey of ['treeDepth', 'treeBranchPageCount', 'treeLeafPageCount', 'entryCount', 'overflowPages']) {
|
|
283
|
+
tablePrunedStats[storeKey] = tableFullStats[storeKey];
|
|
284
|
+
}
|
|
285
|
+
tableStats[tableName] = tablePrunedStats;
|
|
286
|
+
} catch (error) {
|
|
287
|
+
// if a schema no longer exists, don't want to throw an error
|
|
288
|
+
log.notify(`Error getting stats for table ${tableName}: ${error}`);
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
return schemaStats;
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
/**
|
|
296
|
+
*
|
|
297
|
+
* @param {SystemInformationRequest} systemInfoReq
|
|
298
|
+
* @returns {Promise<SystemInformationResponse>}
|
|
299
|
+
*/
|
|
300
|
+
async function systemInformation(systemInfoReq) {
|
|
301
|
+
let response = new SystemInformationResponse();
|
|
302
|
+
if (!Array.isArray(systemInfoReq.attributes) || systemInfoReq.attributes.length === 0) {
|
|
303
|
+
response.system = await getSystemInformation();
|
|
304
|
+
response.time = getTimeInfo();
|
|
305
|
+
response.cpu = await getCPUInfo();
|
|
306
|
+
response.memory = await getMemoryInfo();
|
|
307
|
+
response.disk = await getDiskInfo();
|
|
308
|
+
response.network = await getNetworkInfo();
|
|
309
|
+
response.harperdb_processes = await getHDBProcessInfo();
|
|
310
|
+
response.table_size = await getTableSize();
|
|
311
|
+
response.metrics = await getMetrics();
|
|
312
|
+
response.threads = await getThreadInfo();
|
|
313
|
+
return response;
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
for (let attr of systemInfoReq.attributes) {
|
|
317
|
+
switch (attr) {
|
|
318
|
+
case 'system':
|
|
319
|
+
response.system = await getSystemInformation();
|
|
320
|
+
break;
|
|
321
|
+
case 'time':
|
|
322
|
+
response.time = getTimeInfo();
|
|
323
|
+
break;
|
|
324
|
+
case 'cpu':
|
|
325
|
+
response.cpu = await getCPUInfo();
|
|
326
|
+
break;
|
|
327
|
+
case 'memory':
|
|
328
|
+
response.memory = await getMemoryInfo();
|
|
329
|
+
break;
|
|
330
|
+
case 'disk':
|
|
331
|
+
response.disk = await getDiskInfo();
|
|
332
|
+
break;
|
|
333
|
+
case 'network':
|
|
334
|
+
response.network = await getNetworkInfo();
|
|
335
|
+
break;
|
|
336
|
+
case 'harperdb_processes':
|
|
337
|
+
response.harperdb_processes = await getHDBProcessInfo();
|
|
338
|
+
break;
|
|
339
|
+
case 'table_size':
|
|
340
|
+
response.table_size = await getTableSize();
|
|
341
|
+
break;
|
|
342
|
+
case 'database_metrics':
|
|
343
|
+
case 'metrics':
|
|
344
|
+
response.metrics = await getMetrics();
|
|
345
|
+
break;
|
|
346
|
+
case 'threads':
|
|
347
|
+
response.threads = await getThreadInfo();
|
|
348
|
+
break;
|
|
349
|
+
default:
|
|
350
|
+
break;
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
return response;
|
|
355
|
+
}
|
package/core/utility/hdbTerms.ts
CHANGED
|
@@ -593,7 +593,6 @@ export const CONFIG_PARAMS = {
|
|
|
593
593
|
TLS_PRIVATEKEY: 'tls_privateKey',
|
|
594
594
|
TLS_CERTIFICATEAUTHORITY: 'tls_certificateAuthority',
|
|
595
595
|
TLS_CIPHERS: 'tls_ciphers',
|
|
596
|
-
TLS_UNIXDOMAINSOCKETS: 'tls_unixDomainSockets',
|
|
597
596
|
TLS: 'tls',
|
|
598
597
|
CLONED: 'cloned',
|
|
599
598
|
NODE_HOSTNAME: 'node_hostname',
|
|
@@ -26,7 +26,7 @@ const restart = require('../bin/restart.js');
|
|
|
26
26
|
const terms = require('./hdbTerms.ts');
|
|
27
27
|
const { expandOperationsPerms } = require('./operationPermissions.ts');
|
|
28
28
|
const permsTranslator = require('../security/permissionsTranslator.js');
|
|
29
|
-
const
|
|
29
|
+
const systemInformation = require('../utility/environment/systemInformation.js');
|
|
30
30
|
const tokenAuthentication = require('../security/tokenAuthentication.ts');
|
|
31
31
|
const auth = require('../security/auth.ts');
|
|
32
32
|
const configUtils = require('../config/configUtils.js');
|
|
@@ -157,7 +157,10 @@ requiredPermissions.set(restart.restartService.name, new permission(true, []));
|
|
|
157
157
|
requiredPermissions.set(readAuditLog.name, new permission(true, [], terms.OPERATIONS_ENUM.READ_AUDIT_LOG));
|
|
158
158
|
requiredPermissions.set(getBackup.name, new permission(true, [READ_PERM]));
|
|
159
159
|
requiredPermissions.set(schema.cleanupOrphanBlobs.name, new permission(true, []));
|
|
160
|
-
requiredPermissions.set(
|
|
160
|
+
requiredPermissions.set(
|
|
161
|
+
systemInformation.systemInformation.name,
|
|
162
|
+
new permission(true, [], terms.OPERATIONS_ENUM.SYSTEM_INFORMATION)
|
|
163
|
+
);
|
|
161
164
|
requiredPermissions.set(
|
|
162
165
|
configUtils.getConfiguration.name,
|
|
163
166
|
new permission(true, [], terms.OPERATIONS_ENUM.GET_CONFIGURATION)
|
package/dist/core/bin/status.js
CHANGED
|
@@ -4,7 +4,7 @@ const path = require('path');
|
|
|
4
4
|
const YAML = require('yaml');
|
|
5
5
|
const hdbTerms = require("../utility/hdbTerms.js");
|
|
6
6
|
const hdbLog = require('../utility/logging/harper_logger.js');
|
|
7
|
-
const
|
|
7
|
+
const sysInfo = require('../utility/environment/systemInformation.js');
|
|
8
8
|
const envMgr = require('../utility/environment/environmentManager.js');
|
|
9
9
|
const installation = require("../utility/installation.js");
|
|
10
10
|
envMgr.initSync();
|
|
@@ -42,7 +42,7 @@ async function status() {
|
|
|
42
42
|
throw err;
|
|
43
43
|
}
|
|
44
44
|
// Check the saved pid against any running hdb processes
|
|
45
|
-
const hdbSysInfo = await
|
|
45
|
+
const hdbSysInfo = await sysInfo.getHDBProcessInfo();
|
|
46
46
|
for (const proc of hdbSysInfo.core) {
|
|
47
47
|
if (proc.pid === hdbPid) {
|
|
48
48
|
status.harperdb.status = STATUSES.RUNNING;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../core/bin/status.js"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAC/B,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAC7B,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAE7B,MAAM,QAAQ,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;AACnD,MAAM,MAAM,GAAG,OAAO,CAAC,qCAAqC,CAAC,CAAC;AAC9D,MAAM,
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../core/bin/status.js"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAC/B,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAC7B,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAE7B,MAAM,QAAQ,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;AACnD,MAAM,MAAM,GAAG,OAAO,CAAC,qCAAqC,CAAC,CAAC;AAC9D,MAAM,OAAO,GAAG,OAAO,CAAC,6CAA6C,CAAC,CAAC;AACvE,MAAM,MAAM,GAAG,OAAO,CAAC,8CAA8C,CAAC,CAAC;AACvE,MAAM,YAAY,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;AAC3D,MAAM,CAAC,QAAQ,EAAE,CAAC;AAElB,MAAM,QAAQ,GAAG;IAChB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,aAAa,EAAE,eAAe;CAC9B,CAAC;AAEF,IAAI,OAAO,CAAC;AAEZ,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC;AAExB,KAAK,UAAU,MAAM;IACpB,IAAI,MAAM,GAAG;QACZ,QAAQ,EAAE;YACT,MAAM,EAAE,QAAQ,CAAC,OAAO;SACxB;KACD,CAAC;IAEF,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;QAClD,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QACpC,OAAO;IACR,CAAC;IAED,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACtD,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACJ,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IAChG,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC;YACnD,MAAM,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;YAC7D,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;YACpC,OAAO;QACR,CAAC;QAED,MAAM,GAAG,CAAC;IACX,CAAC;IAED,wDAAwD;IACxD,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,iBAAiB,EAAE,CAAC;IACrD,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;QACpC,IAAI,IAAI,CAAC,GAAG,KAAK,MAAM,EAAE,CAAC;YACzB,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC;YAC1C,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,MAAM,CAAC;YAC7B,MAAM;QACP,CAAC;IACF,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IACpC,OAAO,CAAC,IAAI,EAAE,CAAC;AAChB,CAAC"}
|
package/dist/core/bin/stop.js
CHANGED
|
@@ -3,15 +3,15 @@ const hdbLogger = require('../utility/logging/harper_logger.js');
|
|
|
3
3
|
const util = require('util');
|
|
4
4
|
const childProcess = require('child_process');
|
|
5
5
|
const exec = util.promisify(childProcess.exec);
|
|
6
|
-
const
|
|
6
|
+
const sysInfo = require('../utility/environment/systemInformation.js');
|
|
7
7
|
const STOP_MSG = 'Stopping Harper Pro.';
|
|
8
8
|
module.exports = stop;
|
|
9
9
|
async function stop() {
|
|
10
10
|
console.log(STOP_MSG);
|
|
11
11
|
hdbLogger.notify(STOP_MSG);
|
|
12
|
-
const processes = await
|
|
13
|
-
|
|
14
|
-
exec(`kill ${pid}`);
|
|
15
|
-
}
|
|
12
|
+
const processes = await sysInfo.getHDBProcessInfo();
|
|
13
|
+
processes.core.forEach((p) => {
|
|
14
|
+
exec(`kill ${p.pid}`);
|
|
15
|
+
});
|
|
16
16
|
}
|
|
17
17
|
//# sourceMappingURL=stop.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stop.js","sourceRoot":"","sources":["../../../core/bin/stop.js"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,MAAM,SAAS,GAAG,OAAO,CAAC,qCAAqC,CAAC,CAAC;AACjE,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAC7B,MAAM,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AAC/C,MAAM,
|
|
1
|
+
{"version":3,"file":"stop.js","sourceRoot":"","sources":["../../../core/bin/stop.js"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,MAAM,SAAS,GAAG,OAAO,CAAC,qCAAqC,CAAC,CAAC;AACjE,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAC7B,MAAM,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AAC/C,MAAM,OAAO,GAAG,OAAO,CAAC,6CAA6C,CAAC,CAAC;AAEvE,MAAM,QAAQ,GAAG,sBAAsB,CAAC;AAExC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;AAEtB,KAAK,UAAU,IAAI;IAClB,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACtB,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAE3B,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAEpD,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QAC5B,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -117,13 +117,11 @@ class EntryHandler extends node_events_1.EventEmitter {
|
|
|
117
117
|
.watch(this.#component.commonPatternBase, {
|
|
118
118
|
cwd: this.#component.directory,
|
|
119
119
|
persistent: false,
|
|
120
|
-
followSymlinks: false,
|
|
121
120
|
ignored: (path) => {
|
|
122
121
|
const normalizedPath = path.replace(/\\/g, '/');
|
|
123
122
|
const normalizedBases = allowedBases.map((base) => base.replace(/\\/g, '/'));
|
|
124
|
-
return (normalizedPath.
|
|
125
|
-
(
|
|
126
|
-
normalizedBases.every((base) => !normalizedPath.startsWith(base))));
|
|
123
|
+
return (normalizedPath !== this.#component.directory.replace(/\\/g, '/') &&
|
|
124
|
+
normalizedBases.every((base) => !normalizedPath.startsWith(base)));
|
|
127
125
|
},
|
|
128
126
|
})
|
|
129
127
|
.on('all', this.#handleAll.bind(this))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntryHandler.js","sourceRoot":"","sources":["../../../core/components/EntryHandler.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"EntryHandler.js","sourceRoot":"","sources":["../../../core/components/EntryHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -52,7 +52,7 @@ class Scope extends node_events_1.EventEmitter {
|
|
|
52
52
|
this.#pluginName = pluginName;
|
|
53
53
|
this.#directory = directory;
|
|
54
54
|
this.#configFilePath = configFilePath;
|
|
55
|
-
this.#logger = (0, harper_logger_js_1.loggerWithTag)(this.#appName);
|
|
55
|
+
this.#logger = logger || (0, harper_logger_js_1.loggerWithTag)(this.#appName);
|
|
56
56
|
this.databaseEvents = databases_ts_1.databaseEventsEmitter;
|
|
57
57
|
this.applicationScope = applicationScope;
|
|
58
58
|
this.resources = applicationScope?.resources ?? Resources_ts_1.resources;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Scope.js","sourceRoot":"","sources":["../../../core/components/Scope.ts"],"names":[],"mappings":";;;;;;;;;;;AACA,0EAAoE;AACpE,6CAAiD;AACjD,4DAAkE;AAClE,mDAA0D;AAC1D,uDAAsG;AACtG,2DAA6E;AAC7E,4DAAsE;AAGtE,2DAAqD;AAGrD,MAAa,8BAA+B,SAAQ,KAAK;IACxD;QACC,KAAK,CAAC,4EAA4E,CAAC,CAAC;QACpF,IAAI,CAAC,IAAI,GAAG,gCAAgC,CAAC;IAC9C,CAAC;CACD;AALD,wEAKC;AAUD;;;;;;GAMG;AACH,MAAa,KAAM,SAAQ,0BAA4B;IACtD,eAAe,CAAS;IACxB,UAAU,CAAS;IACnB,QAAQ,CAAS;IACjB,WAAW,CAAS;IACpB,aAAa,CAAgB;IAC7B,cAAc,CAAiB;IAC/B,OAAO,CAAS;IAChB,oBAAoB,CAAqB;IACzC,gBAAgB,CAAoB;IAEpC,OAAO,CAAiB;IACxB,SAAS,CAAa;IACtB,MAAM,CAAU;IAChB,KAAK,CAAiB;IACtB,cAAc,CAA+B;IAE7C,YACC,OAAe,EACf,UAAkB,EAClB,SAAiB,EACjB,cAAsB,EACtB,gBAAkC;QAElC,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;QACtC,IAAI,CAAC,OAAO,GAAG,IAAA,gCAAa,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"Scope.js","sourceRoot":"","sources":["../../../core/components/Scope.ts"],"names":[],"mappings":"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"}
|