@harperfast/harper-pro 5.0.6 → 5.0.8
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/components/EntryHandler.ts +2 -4
- package/core/components/OptionsWatcher.ts +9 -1
- package/core/components/Scope.ts +1 -1
- package/core/components/componentLoader.ts +4 -11
- package/core/components/requestRestart.ts +2 -17
- package/core/package-lock.json +67 -975
- package/core/resources/RecordEncoder.ts +9 -1
- package/core/resources/Table.ts +30 -14
- package/core/resources/databases.ts +1 -0
- package/core/resources/graphql.ts +168 -158
- 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/keys.js +1 -1
- package/core/server/DurableSubscriptionsSession.ts +1 -0
- 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/threads/threadServer.js +2 -30
- package/core/server/throttle.ts +0 -18
- package/core/utility/environment/environmentManager.js +4 -10
- package/core/utility/hdbTerms.ts +0 -1
- package/dist/core/components/EntryHandler.js +2 -4
- package/dist/core/components/EntryHandler.js.map +1 -1
- package/dist/core/components/OptionsWatcher.js +8 -1
- package/dist/core/components/OptionsWatcher.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/resources/RecordEncoder.js +10 -1
- package/dist/core/resources/RecordEncoder.js.map +1 -1
- package/dist/core/resources/Table.js +31 -16
- package/dist/core/resources/Table.js.map +1 -1
- package/dist/core/resources/databases.js.map +1 -1
- package/dist/core/resources/graphql.js +12 -5
- 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/keys.js +1 -1
- package/dist/core/security/keys.js.map +1 -1
- package/dist/core/server/DurableSubscriptionsSession.js +2 -0
- package/dist/core/server/DurableSubscriptionsSession.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/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/hdbTerms.js +0 -1
- package/dist/core/utility/hdbTerms.js.map +1 -1
- package/dist/replication/replicationConnection.js +13 -6
- package/dist/replication/replicationConnection.js.map +1 -1
- package/dist/security/certificate.js +1 -1
- package/dist/security/certificate.js.map +1 -1
- package/npm-shrinkwrap.json +58 -978
- package/package.json +2 -3
- package/replication/replicationConnection.ts +24 -18
- package/security/certificate.ts +1 -1
- package/studio/web/assets/{index-qbLPhOzw.js → index-BftP-yQ8.js} +2 -2
- package/studio/web/assets/{index-qbLPhOzw.js.map → index-BftP-yQ8.js.map} +1 -1
- package/studio/web/index.html +1 -1
|
@@ -189,14 +189,12 @@ export class EntryHandler extends EventEmitter<EntryHandlerEventMap> {
|
|
|
189
189
|
.watch(this.#component.commonPatternBase, {
|
|
190
190
|
cwd: this.#component.directory,
|
|
191
191
|
persistent: false,
|
|
192
|
-
followSymlinks: false,
|
|
193
192
|
ignored: (path) => {
|
|
194
193
|
const normalizedPath = path.replace(/\\/g, '/');
|
|
195
194
|
const normalizedBases = allowedBases.map((base) => base.replace(/\\/g, '/'));
|
|
196
195
|
return (
|
|
197
|
-
normalizedPath.
|
|
198
|
-
(
|
|
199
|
-
normalizedBases.every((base) => !normalizedPath.startsWith(base)))
|
|
196
|
+
normalizedPath !== this.#component.directory.replace(/\\/g, '/') &&
|
|
197
|
+
normalizedBases.every((base) => !normalizedPath.startsWith(base))
|
|
200
198
|
);
|
|
201
199
|
},
|
|
202
200
|
})
|
|
@@ -178,7 +178,9 @@ export class OptionsWatcher extends EventEmitter<OptionsWatcherEventMap> {
|
|
|
178
178
|
// First, ensure current and new config values are Config objects (not null, undefined, or a primitive)
|
|
179
179
|
if (!this.#isConfig(currentConfigValue) || !this.#isConfig(newConfigValue)) {
|
|
180
180
|
// If either is not a config, then just set as there is no need to diff/merge
|
|
181
|
-
|
|
181
|
+
if (!isDeepStrictEqual(currentConfigValue, newConfigValue)) {
|
|
182
|
+
this.#setValue(prevKeys, newConfigValue);
|
|
183
|
+
}
|
|
182
184
|
return;
|
|
183
185
|
}
|
|
184
186
|
|
|
@@ -256,6 +258,12 @@ export class OptionsWatcher extends EventEmitter<OptionsWatcherEventMap> {
|
|
|
256
258
|
throw new InvalidValueTypeError(keys, value);
|
|
257
259
|
}
|
|
258
260
|
|
|
261
|
+
if (keys.length === 0) {
|
|
262
|
+
this.#scopedConfig = value;
|
|
263
|
+
this.emit('change', keys, value, this.#scopedConfig);
|
|
264
|
+
return;
|
|
265
|
+
}
|
|
266
|
+
|
|
259
267
|
let obj: ConfigValue = this.#scopedConfig;
|
|
260
268
|
|
|
261
269
|
for (const key of keys.slice(0, -1)) {
|
package/core/components/Scope.ts
CHANGED
|
@@ -63,7 +63,7 @@ export class Scope extends EventEmitter<ScopeEventsMap> {
|
|
|
63
63
|
this.#pluginName = pluginName;
|
|
64
64
|
this.#directory = directory;
|
|
65
65
|
this.#configFilePath = configFilePath;
|
|
66
|
-
this.#logger = loggerWithTag(this.#appName);
|
|
66
|
+
this.#logger = logger || loggerWithTag(this.#appName);
|
|
67
67
|
|
|
68
68
|
this.databaseEvents = databaseEventsEmitter;
|
|
69
69
|
this.applicationScope = applicationScope;
|
|
@@ -17,8 +17,7 @@ import * as staticFiles from '../server/static.ts';
|
|
|
17
17
|
import * as loadEnv from '../resources/loadEnv.ts';
|
|
18
18
|
import harperLogger from '../utility/logging/harper_logger.js';
|
|
19
19
|
import * as dataLoader from '../resources/dataLoader.ts';
|
|
20
|
-
import {
|
|
21
|
-
import { resetRestartNeeded, subscribeToRestartRequests } from './requestRestart.ts';
|
|
20
|
+
import { watchDir, getWorkerIndex } from '../server/threads/manageThreads.js';
|
|
22
21
|
import { scopedImport } from '../security/jsLoader.ts';
|
|
23
22
|
import { server } from '../server/Server.ts';
|
|
24
23
|
import { Resources } from '../resources/Resources.ts';
|
|
@@ -516,16 +515,10 @@ export async function loadComponent(
|
|
|
516
515
|
}
|
|
517
516
|
|
|
518
517
|
compName = parentCompName;
|
|
518
|
+
// Auto restart threads on changes to any app folder. TODO: Make this configurable
|
|
519
519
|
if (isMainThread && !watchesSetup && autoReload) {
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
if (debounceTimer) clearTimeout(debounceTimer);
|
|
523
|
-
debounceTimer = setTimeout(async () => {
|
|
524
|
-
debounceTimer = null;
|
|
525
|
-
resetRestartNeeded();
|
|
526
|
-
await loadComponentDirectories();
|
|
527
|
-
restartWorkers();
|
|
528
|
-
}, 500);
|
|
520
|
+
watchDir(componentDirectory, async () => {
|
|
521
|
+
return loadComponentDirectories(); // return the promise
|
|
529
522
|
});
|
|
530
523
|
}
|
|
531
524
|
if ((config.extensionModule || config.pluginModule) && (!isMainThread || config.runOnMainThread)) {
|
|
@@ -1,19 +1,11 @@
|
|
|
1
1
|
import { Status } from '../server/status/index.ts';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
notify(): void;
|
|
5
|
-
cancel(): void;
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
let restartArrayBuffer: NotifyingArrayBuffer;
|
|
3
|
+
let restartArrayBuffer: ArrayBuffer;
|
|
9
4
|
let restartNeededArray: Uint8Array;
|
|
10
|
-
let onRestartRequestedCallback: (() => void) | null = null;
|
|
11
5
|
|
|
12
6
|
function ensureInitialized() {
|
|
13
7
|
if (!restartArrayBuffer) {
|
|
14
|
-
restartArrayBuffer = Status.primaryStore.getUserSharedBuffer('restart-needed', new ArrayBuffer(1)
|
|
15
|
-
callback: () => onRestartRequestedCallback?.(),
|
|
16
|
-
}) as NotifyingArrayBuffer;
|
|
8
|
+
restartArrayBuffer = Status.primaryStore.getUserSharedBuffer('restart-needed', new ArrayBuffer(1));
|
|
17
9
|
restartNeededArray = new Uint8Array(restartArrayBuffer);
|
|
18
10
|
}
|
|
19
11
|
}
|
|
@@ -21,7 +13,6 @@ function ensureInitialized() {
|
|
|
21
13
|
export function requestRestart() {
|
|
22
14
|
ensureInitialized();
|
|
23
15
|
restartNeededArray[0] = 1;
|
|
24
|
-
restartArrayBuffer.notify();
|
|
25
16
|
}
|
|
26
17
|
|
|
27
18
|
export function restartNeeded() {
|
|
@@ -33,9 +24,3 @@ export function resetRestartNeeded() {
|
|
|
33
24
|
ensureInitialized();
|
|
34
25
|
restartNeededArray[0] = 0;
|
|
35
26
|
}
|
|
36
|
-
|
|
37
|
-
export function subscribeToRestartRequests(callback: () => void) {
|
|
38
|
-
ensureInitialized();
|
|
39
|
-
if (onRestartRequestedCallback) throw new Error('A restart-request subscriber is already registered');
|
|
40
|
-
onRestartRequestedCallback = callback;
|
|
41
|
-
}
|