@harperfast/harper 5.2.0-beta.4 → 5.2.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.
- package/bin/backup.ts +169 -0
- package/bin/cliOperations.ts +92 -73
- package/bin/copyDb.ts +21 -4
- package/bin/harper.ts +43 -55
- package/bin/help.ts +216 -0
- package/components/Application.ts +236 -46
- package/components/ApplicationScope.ts +26 -0
- package/components/EntryHandler.ts +410 -105
- package/components/RuntimeModuleTracker.ts +189 -0
- package/components/Scope.ts +120 -30
- package/components/componentLoader.ts +177 -25
- package/components/deployLifecycle.ts +119 -33
- package/components/mcp/toolRegistry.ts +10 -0
- package/components/mcp/tools/application.ts +12 -5
- package/components/mcp/tools/operations.ts +9 -0
- package/components/mcp/tools/schemas/operationDescriptions.ts +3 -0
- package/components/mcp/tools/schemas/operations.ts +9 -0
- package/components/operations.js +5 -6
- package/components/operationsValidation.js +32 -2
- package/components/scopeMount.ts +150 -0
- package/config/configUtils.ts +12 -9
- package/config-root.schema.json +14 -0
- package/dataLayer/backupManifest.ts +102 -0
- package/dataLayer/blobBackup.ts +286 -0
- package/dataLayer/harperBridge/ResourceBridge.ts +69 -5
- package/dataLayer/hdbInfoController.ts +8 -0
- package/dataLayer/restoreMarker.ts +276 -0
- package/dataLayer/rocksdbBackup.ts +1100 -0
- package/dataLayer/schemaDescribe.ts +2 -1
- package/dist/bin/backup.d.ts +9 -0
- package/dist/bin/backup.js +192 -0
- package/dist/bin/backup.js.map +1 -0
- package/dist/bin/cliOperations.d.ts +13 -0
- package/dist/bin/cliOperations.js +89 -70
- package/dist/bin/cliOperations.js.map +1 -1
- package/dist/bin/copyDb.js +13 -2
- package/dist/bin/copyDb.js.map +1 -1
- package/dist/bin/harper.d.ts +13 -0
- package/dist/bin/harper.js +45 -56
- package/dist/bin/harper.js.map +1 -1
- package/dist/bin/help.d.ts +8 -0
- package/dist/bin/help.js +192 -0
- package/dist/bin/help.js.map +1 -0
- package/dist/components/Application.d.ts +16 -1
- package/dist/components/Application.js +210 -38
- package/dist/components/Application.js.map +1 -1
- package/dist/components/ApplicationScope.d.ts +7 -0
- package/dist/components/ApplicationScope.js +22 -0
- package/dist/components/ApplicationScope.js.map +1 -1
- package/dist/components/EntryHandler.d.ts +4 -4
- package/dist/components/EntryHandler.js +386 -95
- package/dist/components/EntryHandler.js.map +1 -1
- package/dist/components/RuntimeModuleTracker.d.ts +11 -0
- package/dist/components/RuntimeModuleTracker.js +189 -0
- package/dist/components/RuntimeModuleTracker.js.map +1 -0
- package/dist/components/Scope.d.ts +38 -1
- package/dist/components/Scope.js +117 -28
- package/dist/components/Scope.js.map +1 -1
- package/dist/components/componentLoader.d.ts +2 -6
- package/dist/components/componentLoader.js +160 -18
- package/dist/components/componentLoader.js.map +1 -1
- package/dist/components/deployLifecycle.d.ts +6 -2
- package/dist/components/deployLifecycle.js +109 -31
- package/dist/components/deployLifecycle.js.map +1 -1
- package/dist/components/mcp/toolRegistry.d.ts +7 -0
- package/dist/components/mcp/toolRegistry.js +10 -0
- package/dist/components/mcp/toolRegistry.js.map +1 -1
- package/dist/components/mcp/tools/application.js +11 -5
- package/dist/components/mcp/tools/application.js.map +1 -1
- package/dist/components/mcp/tools/operations.js +9 -0
- package/dist/components/mcp/tools/operations.js.map +1 -1
- package/dist/components/mcp/tools/schemas/operationDescriptions.js +2 -0
- package/dist/components/mcp/tools/schemas/operationDescriptions.js.map +1 -1
- package/dist/components/mcp/tools/schemas/operations.js +9 -0
- package/dist/components/mcp/tools/schemas/operations.js.map +1 -1
- package/dist/components/operations.js +6 -6
- package/dist/components/operations.js.map +1 -1
- package/dist/components/operationsValidation.js +34 -2
- package/dist/components/operationsValidation.js.map +1 -1
- package/dist/components/scopeMount.d.ts +86 -0
- package/dist/components/scopeMount.js +131 -0
- package/dist/components/scopeMount.js.map +1 -0
- package/dist/config/configUtils.js +13 -9
- package/dist/config/configUtils.js.map +1 -1
- package/dist/dataLayer/backupManifest.d.ts +26 -0
- package/dist/dataLayer/backupManifest.js +97 -0
- package/dist/dataLayer/backupManifest.js.map +1 -0
- package/dist/dataLayer/blobBackup.d.ts +87 -0
- package/dist/dataLayer/blobBackup.js +282 -0
- package/dist/dataLayer/blobBackup.js.map +1 -0
- package/dist/dataLayer/harperBridge/ResourceBridge.d.ts +3 -0
- package/dist/dataLayer/harperBridge/ResourceBridge.js +45 -5
- package/dist/dataLayer/harperBridge/ResourceBridge.js.map +1 -1
- package/dist/dataLayer/hdbInfoController.js +4 -0
- package/dist/dataLayer/hdbInfoController.js.map +1 -1
- package/dist/dataLayer/restoreMarker.d.ts +122 -0
- package/dist/dataLayer/restoreMarker.js +261 -0
- package/dist/dataLayer/restoreMarker.js.map +1 -0
- package/dist/dataLayer/rocksdbBackup.d.ts +127 -0
- package/dist/dataLayer/rocksdbBackup.js +1039 -0
- package/dist/dataLayer/rocksdbBackup.js.map +1 -0
- package/dist/dataLayer/schemaDescribe.js +2 -1
- package/dist/dataLayer/schemaDescribe.js.map +1 -1
- package/dist/resources/DatabaseTransaction.d.ts +55 -0
- package/dist/resources/DatabaseTransaction.js +282 -109
- package/dist/resources/DatabaseTransaction.js.map +1 -1
- package/dist/resources/ResourceInterface.d.ts +8 -5
- package/dist/resources/ResourceInterface.js.map +1 -1
- package/dist/resources/Resources.js +22 -4
- package/dist/resources/Resources.js.map +1 -1
- package/dist/resources/Table.d.ts +6 -5
- package/dist/resources/Table.js +114 -37
- package/dist/resources/Table.js.map +1 -1
- package/dist/resources/analytics/write.js +6 -6
- package/dist/resources/analytics/write.js.map +1 -1
- package/dist/resources/blob.d.ts +8 -1
- package/dist/resources/blob.js +31 -14
- package/dist/resources/blob.js.map +1 -1
- package/dist/resources/databases.d.ts +59 -1
- package/dist/resources/databases.js +386 -41
- package/dist/resources/databases.js.map +1 -1
- package/dist/resources/jsResource.d.ts +4 -26
- package/dist/resources/jsResource.js +5 -59
- package/dist/resources/jsResource.js.map +1 -1
- package/dist/resources/models/Models.d.ts +11 -1
- package/dist/resources/models/Models.js +10 -1
- package/dist/resources/models/Models.js.map +1 -1
- package/dist/resources/models/backendRegistry.d.ts +9 -0
- package/dist/resources/models/backendRegistry.js +10 -0
- package/dist/resources/models/backendRegistry.js.map +1 -1
- package/dist/resources/models/openaiStream.d.ts +16 -1
- package/dist/resources/models/openaiStream.js +113 -21
- package/dist/resources/models/openaiStream.js.map +1 -1
- package/dist/resources/models/v1/chatCompletions.d.ts +54 -0
- package/dist/resources/models/v1/chatCompletions.js +115 -0
- package/dist/resources/models/v1/chatCompletions.js.map +1 -0
- package/dist/resources/models/v1/embeddings.d.ts +11 -0
- package/dist/resources/models/v1/embeddings.js +71 -0
- package/dist/resources/models/v1/embeddings.js.map +1 -0
- package/dist/resources/models/v1/errors.d.ts +54 -0
- package/dist/resources/models/v1/errors.js +130 -0
- package/dist/resources/models/v1/errors.js.map +1 -0
- package/dist/resources/models/v1/index.d.ts +36 -0
- package/dist/resources/models/v1/index.js +75 -0
- package/dist/resources/models/v1/index.js.map +1 -0
- package/dist/resources/models/v1/models.d.ts +26 -0
- package/dist/resources/models/v1/models.js +44 -0
- package/dist/resources/models/v1/models.js.map +1 -0
- package/dist/resources/models/v1/translation.d.ts +133 -0
- package/dist/resources/models/v1/translation.js +298 -0
- package/dist/resources/models/v1/translation.js.map +1 -0
- package/dist/resources/roles.d.ts +1 -1
- package/dist/resources/roles.js +54 -7
- package/dist/resources/roles.js.map +1 -1
- package/dist/resources/transaction.js +0 -3
- package/dist/resources/transaction.js.map +1 -1
- package/dist/security/jsLoader.js +84 -33
- package/dist/security/jsLoader.js.map +1 -1
- package/dist/security/role.js +4 -0
- package/dist/security/role.js.map +1 -1
- package/dist/security/superUserGuard.d.ts +7 -0
- package/dist/security/superUserGuard.js +23 -0
- package/dist/security/superUserGuard.js.map +1 -0
- package/dist/security/tokenAuthentication.d.ts +0 -1
- package/dist/security/tokenAuthentication.js +6 -2
- package/dist/security/tokenAuthentication.js.map +1 -1
- package/dist/security/user.d.ts +6 -1
- package/dist/security/user.js +23 -1
- package/dist/security/user.js.map +1 -1
- package/dist/server/REST.js +25 -9
- package/dist/server/REST.js.map +1 -1
- package/dist/server/fastifyRoutes.js +15 -1
- package/dist/server/fastifyRoutes.js.map +1 -1
- package/dist/server/http.d.ts +23 -2
- package/dist/server/http.js +99 -12
- package/dist/server/http.js.map +1 -1
- package/dist/server/itc/serverHandlers.js +7 -1
- package/dist/server/itc/serverHandlers.js.map +1 -1
- package/dist/server/jobs/jobProcess.js +20 -1
- package/dist/server/jobs/jobProcess.js.map +1 -1
- package/dist/server/jobs/jobRunner.js +10 -0
- package/dist/server/jobs/jobRunner.js.map +1 -1
- package/dist/server/jobs/jobs.js +11 -0
- package/dist/server/jobs/jobs.js.map +1 -1
- package/dist/server/middlewareChain.d.ts +10 -1
- package/dist/server/middlewareChain.js +81 -21
- package/dist/server/middlewareChain.js.map +1 -1
- package/dist/server/operationsServer.d.ts +0 -2
- package/dist/server/operationsServer.js.map +1 -1
- package/dist/server/serverHelpers/multipartParser.js +9 -0
- package/dist/server/serverHelpers/multipartParser.js.map +1 -1
- package/dist/server/serverHelpers/operationAuthorizationState.d.ts +2 -0
- package/dist/server/serverHelpers/operationAuthorizationState.js +13 -0
- package/dist/server/serverHelpers/operationAuthorizationState.js.map +1 -0
- package/dist/server/serverHelpers/registeredOperations.d.ts +3 -2
- package/dist/server/serverHelpers/registeredOperations.js +14 -13
- package/dist/server/serverHelpers/registeredOperations.js.map +1 -1
- package/dist/server/serverHelpers/serverHandlers.js +27 -7
- package/dist/server/serverHelpers/serverHandlers.js.map +1 -1
- package/dist/server/serverHelpers/serverUtilities.d.ts +1 -1
- package/dist/server/serverHelpers/serverUtilities.js +21 -7
- package/dist/server/serverHelpers/serverUtilities.js.map +1 -1
- package/dist/server/static.js +68 -21
- package/dist/server/static.js.map +1 -1
- package/dist/server/storageReclamation.d.ts +17 -0
- package/dist/server/storageReclamation.js +90 -6
- package/dist/server/storageReclamation.js.map +1 -1
- package/dist/server/threads/socketRouter.js +20 -0
- package/dist/server/threads/socketRouter.js.map +1 -1
- package/dist/server/threads/threadServer.js +12 -0
- package/dist/server/threads/threadServer.js.map +1 -1
- package/dist/sqlEngine/diff/differential.js +7 -3
- package/dist/sqlEngine/diff/differential.js.map +1 -1
- package/dist/sqlTranslator/index.js +6 -1
- package/dist/sqlTranslator/index.js.map +1 -1
- package/dist/upgrade/upgradePrompt.d.ts +2 -2
- package/dist/upgrade/upgradePrompt.js +22 -3
- package/dist/upgrade/upgradePrompt.js.map +1 -1
- package/dist/utility/OperationFunctionCaller.js +25 -6
- package/dist/utility/OperationFunctionCaller.js.map +1 -1
- package/dist/utility/errors/commonErrors.d.ts +1 -0
- package/dist/utility/errors/commonErrors.js +1 -0
- package/dist/utility/errors/commonErrors.js.map +1 -1
- package/dist/utility/hdbTerms.d.ts +13 -1
- package/dist/utility/hdbTerms.js +13 -1
- package/dist/utility/hdbTerms.js.map +1 -1
- package/dist/utility/install/installer.js +32 -0
- package/dist/utility/install/installer.js.map +1 -1
- package/dist/utility/logging/harper_logger.d.ts +47 -0
- package/dist/utility/logging/harper_logger.js +803 -38
- package/dist/utility/logging/harper_logger.js.map +1 -1
- package/dist/utility/operation_authorization.js +13 -3
- package/dist/utility/operation_authorization.js.map +1 -1
- package/npm-shrinkwrap.json +198 -193
- package/package.json +12 -7
- package/resources/DESIGN.md +2 -0
- package/resources/DatabaseTransaction.ts +310 -104
- package/resources/ResourceInterface.ts +8 -5
- package/resources/Resources.ts +22 -4
- package/resources/Table.ts +341 -263
- package/resources/analytics/write.ts +22 -20
- package/resources/blob.ts +31 -14
- package/resources/databases.ts +387 -46
- package/resources/jsResource.ts +5 -62
- package/resources/models/Models.ts +14 -1
- package/resources/models/backendRegistry.ts +10 -0
- package/resources/models/openaiStream.ts +131 -19
- package/resources/models/v1/chatCompletions.ts +128 -0
- package/resources/models/v1/embeddings.ts +70 -0
- package/resources/models/v1/errors.ts +141 -0
- package/resources/models/v1/index.ts +72 -0
- package/resources/models/v1/models.ts +53 -0
- package/resources/models/v1/translation.ts +362 -0
- package/resources/roles.ts +67 -7
- package/resources/transaction.ts +0 -3
- package/security/jsLoader.ts +84 -30
- package/security/role.ts +7 -0
- package/security/superUserGuard.ts +20 -0
- package/security/tokenAuthentication.ts +6 -3
- package/security/user.ts +26 -1
- package/server/DESIGN.md +61 -34
- package/server/REST.ts +25 -9
- package/server/fastifyRoutes.ts +20 -1
- package/server/http.ts +100 -13
- package/server/itc/serverHandlers.js +7 -1
- package/server/jobs/jobProcess.ts +18 -1
- package/server/jobs/jobRunner.ts +10 -0
- package/server/jobs/jobs.ts +11 -0
- package/server/middlewareChain.ts +79 -20
- package/server/operationsServer.ts +0 -2
- package/server/serverHelpers/multipartParser.ts +9 -0
- package/server/serverHelpers/operationAuthorizationState.ts +11 -0
- package/server/serverHelpers/registeredOperations.ts +19 -15
- package/server/serverHelpers/serverHandlers.js +28 -7
- package/server/serverHelpers/serverUtilities.ts +29 -7
- package/server/static.ts +87 -23
- package/server/storageReclamation.ts +104 -8
- package/server/threads/socketRouter.ts +20 -0
- package/server/threads/threadServer.js +11 -0
- package/sqlTranslator/index.ts +6 -1
- package/static/defaultConfig.yaml +3 -0
- package/studio/web/assets/{Chat-DK3GlWEb.js → Chat-aApwhRmz.js} +2 -2
- package/studio/web/assets/{Chat-DK3GlWEb.js.map → Chat-aApwhRmz.js.map} +1 -1
- package/studio/web/assets/{FloatingChat-fBcC1Ew_.js → FloatingChat-sC0H91n9.js} +4 -4
- package/studio/web/assets/{FloatingChat-fBcC1Ew_.js.map → FloatingChat-sC0H91n9.js.map} +1 -1
- package/studio/web/assets/{apiToken-DJo1nakA.js → apiToken-DZ8JhHOI.js} +2 -2
- package/studio/web/assets/{apiToken-DJo1nakA.js.map → apiToken-DZ8JhHOI.js.map} +1 -1
- package/studio/web/assets/{applications-BDfH8urd.js → applications-9SEVLIO5.js} +2 -2
- package/studio/web/assets/{applications-BDfH8urd.js.map → applications-9SEVLIO5.js.map} +1 -1
- package/studio/web/assets/{index-BHo3c2Gk.js → index-Dy3uDGXb.js} +6 -6
- package/studio/web/assets/index-Dy3uDGXb.js.map +1 -0
- package/studio/web/assets/{index.lazy-BTo0y6UM.js → index.lazy-CN1zq4I4.js} +4 -4
- package/studio/web/assets/{index.lazy-BTo0y6UM.js.map → index.lazy-CN1zq4I4.js.map} +1 -1
- package/studio/web/assets/{notifications-CMxvWNnz.js → notifications-BFAF07xr.js} +2 -2
- package/studio/web/assets/{notifications-CMxvWNnz.js.map → notifications-BFAF07xr.js.map} +1 -1
- package/studio/web/assets/{notifications-D3GoB26g.js → notifications-CKlYVvVN.js} +2 -2
- package/studio/web/assets/{notifications-D3GoB26g.js.map → notifications-CKlYVvVN.js.map} +1 -1
- package/studio/web/assets/{profile-Doj5FVDE.js → profile-A1zhEdFG.js} +2 -2
- package/studio/web/assets/{profile-Doj5FVDE.js.map → profile-A1zhEdFG.js.map} +1 -1
- package/studio/web/assets/{setComponentFile-yinsqJy0.js → setComponentFile-SEtBt_GV.js} +2 -2
- package/studio/web/assets/{setComponentFile-yinsqJy0.js.map → setComponentFile-SEtBt_GV.js.map} +1 -1
- package/studio/web/assets/{setup-DJwR0BHd.js → setup-BisINqdH.js} +2 -2
- package/studio/web/assets/{setup-DJwR0BHd.js.map → setup-BisINqdH.js.map} +1 -1
- package/studio/web/assets/{status-Br_AbsJs.js → status-BuQoCc7l.js} +2 -2
- package/studio/web/assets/{status-Br_AbsJs.js.map → status-BuQoCc7l.js.map} +1 -1
- package/studio/web/assets/{swagger-ui-react-02XH5sVf.js → swagger-ui-react-CAi_s1PC.js} +2 -2
- package/studio/web/assets/{swagger-ui-react-02XH5sVf.js.map → swagger-ui-react-CAi_s1PC.js.map} +1 -1
- package/studio/web/assets/{tsMode-D1DMKY7h.js → tsMode-DT74tlkM.js} +2 -2
- package/studio/web/assets/{tsMode-D1DMKY7h.js.map → tsMode-DT74tlkM.js.map} +1 -1
- package/studio/web/assets/{useEntityRestURL-DtRblRgw.js → useEntityRestURL-CGRGc1n7.js} +2 -2
- package/studio/web/assets/{useEntityRestURL-DtRblRgw.js.map → useEntityRestURL-CGRGc1n7.js.map} +1 -1
- package/studio/web/index.html +1 -1
- package/upgrade/upgradePrompt.ts +22 -3
- package/utility/OperationFunctionCaller.ts +24 -3
- package/utility/errors/commonErrors.ts +2 -0
- package/utility/hdbTerms.ts +13 -1
- package/utility/install/installer.ts +37 -0
- package/utility/logging/harper_logger.ts +786 -41
- package/utility/operation_authorization.ts +31 -3
- package/studio/web/assets/index-BHo3c2Gk.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntryHandler.js","sourceRoot":"","sources":["../../components/EntryHandler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EntryHandler.js","sourceRoot":"","sources":["../../components/EntryHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
type Source = string | Buffer;
|
|
2
|
+
export declare class RuntimeModuleTracker {
|
|
3
|
+
#private;
|
|
4
|
+
constructor(getRoot: () => string | undefined);
|
|
5
|
+
beginDeploy(): void;
|
|
6
|
+
markNativeRuntime(): void;
|
|
7
|
+
recordModule(moduleUrl: string, source: Source): void;
|
|
8
|
+
recordResolution(specifier: string, referrer: string, resolvedUrl: string): void;
|
|
9
|
+
finishDeploy(): Promise<boolean>;
|
|
10
|
+
}
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RuntimeModuleTracker = void 0;
|
|
4
|
+
const node_crypto_1 = require("node:crypto");
|
|
5
|
+
const node_fs_1 = require("node:fs");
|
|
6
|
+
const promises_1 = require("node:fs/promises");
|
|
7
|
+
const node_module_1 = require("node:module");
|
|
8
|
+
const node_path_1 = require("node:path");
|
|
9
|
+
const node_url_1 = require("node:url");
|
|
10
|
+
const MODULE_COMPARE_CONCURRENCY = 16;
|
|
11
|
+
const RESOLUTION_EXTENSIONS = ['', '.js', '.json', '.node', '.ts', '.tsx', '.cjs', '.mjs'];
|
|
12
|
+
class RuntimeModuleTracker {
|
|
13
|
+
#getRoot;
|
|
14
|
+
#modules = new Map();
|
|
15
|
+
#resolutions = new Map();
|
|
16
|
+
#nativeRuntime = false;
|
|
17
|
+
#deployInFlight = false;
|
|
18
|
+
#loadedDuringDeploy = false;
|
|
19
|
+
#comparison;
|
|
20
|
+
constructor(getRoot) {
|
|
21
|
+
this.#getRoot = getRoot;
|
|
22
|
+
}
|
|
23
|
+
beginDeploy() {
|
|
24
|
+
if (this.#deployInFlight)
|
|
25
|
+
return;
|
|
26
|
+
this.#deployInFlight = true;
|
|
27
|
+
this.#loadedDuringDeploy = false;
|
|
28
|
+
this.#comparison = undefined;
|
|
29
|
+
}
|
|
30
|
+
markNativeRuntime() {
|
|
31
|
+
this.#nativeRuntime = true;
|
|
32
|
+
if (this.#deployInFlight)
|
|
33
|
+
this.#loadedDuringDeploy = true;
|
|
34
|
+
}
|
|
35
|
+
recordModule(moduleUrl, source) {
|
|
36
|
+
const modulePath = this.#localPath(moduleUrl);
|
|
37
|
+
if (!modulePath)
|
|
38
|
+
return;
|
|
39
|
+
if (!this.#modules.has(modulePath))
|
|
40
|
+
this.#modules.set(modulePath, digest(source));
|
|
41
|
+
if (this.#deployInFlight)
|
|
42
|
+
this.#loadedDuringDeploy = true;
|
|
43
|
+
}
|
|
44
|
+
recordResolution(specifier, referrer, resolvedUrl) {
|
|
45
|
+
const referrerPath = this.#localPath(referrer);
|
|
46
|
+
const resolvedPath = this.#localPath(resolvedUrl);
|
|
47
|
+
if (!referrerPath || !resolvedPath)
|
|
48
|
+
return;
|
|
49
|
+
const key = `${referrerPath}\0${specifier}`;
|
|
50
|
+
if (!this.#resolutions.has(key)) {
|
|
51
|
+
const candidates = higherPriorityResolutionCandidates(specifier, referrerPath, resolvedPath);
|
|
52
|
+
this.#resolutions.set(key, {
|
|
53
|
+
resolvedUrl,
|
|
54
|
+
higherPriorityCandidates: candidates
|
|
55
|
+
? new Map(candidates.map((candidate) => [candidate, candidateState(candidate)]))
|
|
56
|
+
: undefined,
|
|
57
|
+
});
|
|
58
|
+
if (this.#deployInFlight)
|
|
59
|
+
this.#loadedDuringDeploy = true;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
finishDeploy() {
|
|
63
|
+
if (!this.#deployInFlight)
|
|
64
|
+
return this.#comparison ?? Promise.resolve(false);
|
|
65
|
+
this.#deployInFlight = false;
|
|
66
|
+
this.#comparison = this.#compare();
|
|
67
|
+
return this.#comparison;
|
|
68
|
+
}
|
|
69
|
+
async #compare() {
|
|
70
|
+
if (this.#nativeRuntime || this.#loadedDuringDeploy)
|
|
71
|
+
return true;
|
|
72
|
+
const modules = [...this.#modules];
|
|
73
|
+
for (let start = 0; start < modules.length; start += MODULE_COMPARE_CONCURRENCY) {
|
|
74
|
+
const changed = await Promise.all(modules.slice(start, start + MODULE_COMPARE_CONCURRENCY).map(async ([modulePath, previousDigest]) => {
|
|
75
|
+
try {
|
|
76
|
+
return digest(await (0, promises_1.readFile)(modulePath)) !== previousDigest;
|
|
77
|
+
}
|
|
78
|
+
catch {
|
|
79
|
+
return true;
|
|
80
|
+
}
|
|
81
|
+
}));
|
|
82
|
+
if (changed.includes(true))
|
|
83
|
+
return true;
|
|
84
|
+
}
|
|
85
|
+
for (const [key, resolution] of this.#resolutions) {
|
|
86
|
+
const separator = key.indexOf('\0');
|
|
87
|
+
const referrerPath = key.slice(0, separator);
|
|
88
|
+
const specifier = key.slice(separator + 1);
|
|
89
|
+
if (resolution.higherPriorityCandidates &&
|
|
90
|
+
(await Promise.all([...resolution.higherPriorityCandidates].map(async ([candidate, previousState]) => (await candidateStateAsync(candidate)) !== previousState))).includes(true))
|
|
91
|
+
return true;
|
|
92
|
+
try {
|
|
93
|
+
// Node does not invalidate this cache when a component tree is replaced in place.
|
|
94
|
+
if (!invalidateResolutionCache(specifier, referrerPath, resolution.resolvedUrl))
|
|
95
|
+
return true;
|
|
96
|
+
const resolved = (0, node_module_1.createRequire)((0, node_url_1.pathToFileURL)(referrerPath)).resolve(specifier);
|
|
97
|
+
const resolvedUrl = (0, node_path_1.isAbsolute)(resolved) ? (0, node_url_1.pathToFileURL)(resolved).toString() : resolved;
|
|
98
|
+
if (resolvedUrl !== resolution.resolvedUrl)
|
|
99
|
+
return true;
|
|
100
|
+
}
|
|
101
|
+
catch {
|
|
102
|
+
return true;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
107
|
+
#localPath(moduleUrl) {
|
|
108
|
+
if (!moduleUrl.startsWith('file:'))
|
|
109
|
+
return;
|
|
110
|
+
const root = this.#getRoot();
|
|
111
|
+
if (!root)
|
|
112
|
+
return;
|
|
113
|
+
const modulePath = (0, node_url_1.fileURLToPath)(moduleUrl);
|
|
114
|
+
const relativePath = (0, node_path_1.relative)((0, node_path_1.resolve)(root), modulePath);
|
|
115
|
+
if (relativePath === '' ||
|
|
116
|
+
(!relativePath.startsWith(`..${node_path_1.sep}`) && relativePath !== '..' && !(0, node_path_1.isAbsolute)(relativePath)))
|
|
117
|
+
return modulePath;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
exports.RuntimeModuleTracker = RuntimeModuleTracker;
|
|
121
|
+
function higherPriorityResolutionCandidates(specifier, referrerPath, resolvedPath) {
|
|
122
|
+
if (!specifier.startsWith('.'))
|
|
123
|
+
return;
|
|
124
|
+
const basePath = (0, node_path_1.resolve)((0, node_path_1.dirname)(referrerPath), specifier);
|
|
125
|
+
const candidates = [...new Set(RESOLUTION_EXTENSIONS.map((extension) => basePath + extension))];
|
|
126
|
+
candidates.push((0, node_path_1.resolve)(basePath, 'package.json'));
|
|
127
|
+
for (const extension of RESOLUTION_EXTENSIONS.slice(1))
|
|
128
|
+
candidates.push((0, node_path_1.resolve)(basePath, `index${extension}`));
|
|
129
|
+
const resolvedIndex = candidates.indexOf(resolvedPath);
|
|
130
|
+
if (resolvedIndex === -1)
|
|
131
|
+
return;
|
|
132
|
+
return candidates.slice(0, resolvedIndex);
|
|
133
|
+
}
|
|
134
|
+
function candidateState(path) {
|
|
135
|
+
try {
|
|
136
|
+
const stats = (0, node_fs_1.lstatSync)(path);
|
|
137
|
+
if (stats.isSymbolicLink())
|
|
138
|
+
return `link:${(0, node_fs_1.readlinkSync)(path)}`;
|
|
139
|
+
if (stats.isDirectory())
|
|
140
|
+
return 'directory';
|
|
141
|
+
if (!stats.isFile())
|
|
142
|
+
return 'other';
|
|
143
|
+
return path.endsWith('package.json') ? `file:${digest((0, node_fs_1.readFileSync)(path))}` : 'file';
|
|
144
|
+
}
|
|
145
|
+
catch (error) {
|
|
146
|
+
if (error.code === 'ENOENT')
|
|
147
|
+
return 'missing';
|
|
148
|
+
return `error:${error.code ?? 'unknown'}`;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
async function candidateStateAsync(path) {
|
|
152
|
+
try {
|
|
153
|
+
const stats = await (0, promises_1.lstat)(path);
|
|
154
|
+
if (stats.isSymbolicLink())
|
|
155
|
+
return `link:${await (0, promises_1.readlink)(path)}`;
|
|
156
|
+
if (stats.isDirectory())
|
|
157
|
+
return 'directory';
|
|
158
|
+
if (!stats.isFile())
|
|
159
|
+
return 'other';
|
|
160
|
+
return path.endsWith('package.json') ? `file:${digest(await (0, promises_1.readFile)(path))}` : 'file';
|
|
161
|
+
}
|
|
162
|
+
catch (error) {
|
|
163
|
+
if (error.code === 'ENOENT')
|
|
164
|
+
return 'missing';
|
|
165
|
+
return `error:${error.code ?? 'unknown'}`;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
function invalidateResolutionCache(specifier, referrerPath, previousResolvedUrl) {
|
|
169
|
+
const pathCache = node_module_1.Module._pathCache;
|
|
170
|
+
if (!pathCache)
|
|
171
|
+
return false;
|
|
172
|
+
const previousPath = previousResolvedUrl.startsWith('file:')
|
|
173
|
+
? (0, node_url_1.fileURLToPath)(previousResolvedUrl)
|
|
174
|
+
: previousResolvedUrl;
|
|
175
|
+
const relativeKey = `${specifier}\0${(0, node_path_1.dirname)(referrerPath)}`;
|
|
176
|
+
if (pathCache[relativeKey] === previousPath)
|
|
177
|
+
delete pathCache[relativeKey];
|
|
178
|
+
if (specifier.startsWith('.'))
|
|
179
|
+
return true;
|
|
180
|
+
for (const cacheKey of Object.keys(pathCache)) {
|
|
181
|
+
if (cacheKey.startsWith(`${specifier}\0`) && pathCache[cacheKey] === previousPath)
|
|
182
|
+
delete pathCache[cacheKey];
|
|
183
|
+
}
|
|
184
|
+
return true;
|
|
185
|
+
}
|
|
186
|
+
function digest(source) {
|
|
187
|
+
return (0, node_crypto_1.createHash)('sha256').update(source).digest('base64');
|
|
188
|
+
}
|
|
189
|
+
//# sourceMappingURL=RuntimeModuleTracker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RuntimeModuleTracker.js","sourceRoot":"","sources":["../../components/RuntimeModuleTracker.ts"],"names":[],"mappings":";;;AAAA,6CAAyC;AACzC,qCAAgE;AAChE,+CAA6D;AAC7D,6CAAoD;AACpD,yCAAwE;AACxE,uCAAwD;AAIxD,MAAM,0BAA0B,GAAG,EAAE,CAAC;AACtC,MAAM,qBAAqB,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAO3F,MAAa,oBAAoB;IAChC,QAAQ,CAA2B;IACnC,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;IACrC,YAAY,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC7C,cAAc,GAAG,KAAK,CAAC;IACvB,eAAe,GAAG,KAAK,CAAC;IACxB,mBAAmB,GAAG,KAAK,CAAC;IAC5B,WAAW,CAAoB;IAE/B,YAAY,OAAiC;QAC5C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,WAAW;QACV,IAAI,IAAI,CAAC,eAAe;YAAE,OAAO;QACjC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;QACjC,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;IAC9B,CAAC;IAED,iBAAiB;QAChB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,IAAI,CAAC,eAAe;YAAE,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAC3D,CAAC;IAED,YAAY,CAAC,SAAiB,EAAE,MAAc;QAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC9C,IAAI,CAAC,UAAU;YAAE,OAAO;QACxB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC;YAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAClF,IAAI,IAAI,CAAC,eAAe;YAAE,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAC3D,CAAC;IAED,gBAAgB,CAAC,SAAiB,EAAE,QAAgB,EAAE,WAAmB;QACxE,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC/C,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAClD,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY;YAAE,OAAO;QAC3C,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,SAAS,EAAE,CAAC;QAC5C,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACjC,MAAM,UAAU,GAAG,kCAAkC,CAAC,SAAS,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;YAC7F,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE;gBAC1B,WAAW;gBACX,wBAAwB,EAAE,UAAU;oBACnC,CAAC,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;oBAChF,CAAC,CAAC,SAAS;aACZ,CAAC,CAAC;YACH,IAAI,IAAI,CAAC,eAAe;gBAAE,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAC3D,CAAC;IACF,CAAC;IAED,YAAY;QACX,IAAI,CAAC,IAAI,CAAC,eAAe;YAAE,OAAO,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC7E,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC,WAAW,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,QAAQ;QACb,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,mBAAmB;YAAE,OAAO,IAAI,CAAC;QACjE,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,IAAI,0BAA0B,EAAE,CAAC;YACjF,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAChC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,0BAA0B,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,cAAc,CAAC,EAAE,EAAE;gBACnG,IAAI,CAAC;oBACJ,OAAO,MAAM,CAAC,MAAM,IAAA,mBAAQ,EAAC,UAAU,CAAC,CAAC,KAAK,cAAc,CAAC;gBAC9D,CAAC;gBAAC,MAAM,CAAC;oBACR,OAAO,IAAI,CAAC;gBACb,CAAC;YACF,CAAC,CAAC,CACF,CAAC;YACF,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAC;QACzC,CAAC;QACD,KAAK,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACnD,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACpC,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;YAC7C,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;YAC3C,IACC,UAAU,CAAC,wBAAwB;gBACnC,CACC,MAAM,OAAO,CAAC,GAAG,CAChB,CAAC,GAAG,UAAU,CAAC,wBAAwB,CAAC,CAAC,GAAG,CAC3C,KAAK,EAAE,CAAC,SAAS,EAAE,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,mBAAmB,CAAC,SAAS,CAAC,CAAC,KAAK,aAAa,CAC9F,CACD,CACD,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAEhB,OAAO,IAAI,CAAC;YACb,IAAI,CAAC;gBACJ,kFAAkF;gBAClF,IAAI,CAAC,yBAAyB,CAAC,SAAS,EAAE,YAAY,EAAE,UAAU,CAAC,WAAW,CAAC;oBAAE,OAAO,IAAI,CAAC;gBAC7F,MAAM,QAAQ,GAAG,IAAA,2BAAa,EAAC,IAAA,wBAAa,EAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBAC/E,MAAM,WAAW,GAAG,IAAA,sBAAU,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAA,wBAAa,EAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;gBACzF,IAAI,WAAW,KAAK,UAAU,CAAC,WAAW;oBAAE,OAAO,IAAI,CAAC;YACzD,CAAC;YAAC,MAAM,CAAC;gBACR,OAAO,IAAI,CAAC;YACb,CAAC;QACF,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAED,UAAU,CAAC,SAAiB;QAC3B,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,OAAO;QAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,MAAM,UAAU,GAAG,IAAA,wBAAa,EAAC,SAAS,CAAC,CAAC;QAC5C,MAAM,YAAY,GAAG,IAAA,oBAAQ,EAAC,IAAA,mBAAO,EAAC,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC;QACzD,IACC,YAAY,KAAK,EAAE;YACnB,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,eAAG,EAAE,CAAC,IAAI,YAAY,KAAK,IAAI,IAAI,CAAC,IAAA,sBAAU,EAAC,YAAY,CAAC,CAAC;YAE5F,OAAO,UAAU,CAAC;IACpB,CAAC;CACD;AA/GD,oDA+GC;AAED,SAAS,kCAAkC,CAC1C,SAAiB,EACjB,YAAoB,EACpB,YAAoB;IAEpB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO;IACvC,MAAM,QAAQ,GAAG,IAAA,mBAAO,EAAC,IAAA,mBAAO,EAAC,YAAY,CAAC,EAAE,SAAS,CAAC,CAAC;IAC3D,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAChG,UAAU,CAAC,IAAI,CAAC,IAAA,mBAAO,EAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC;IACnD,KAAK,MAAM,SAAS,IAAI,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC;QAAE,UAAU,CAAC,IAAI,CAAC,IAAA,mBAAO,EAAC,QAAQ,EAAE,QAAQ,SAAS,EAAE,CAAC,CAAC,CAAC;IAChH,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACvD,IAAI,aAAa,KAAK,CAAC,CAAC;QAAE,OAAO;IACjC,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IACnC,IAAI,CAAC;QACJ,MAAM,KAAK,GAAG,IAAA,mBAAS,EAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,KAAK,CAAC,cAAc,EAAE;YAAE,OAAO,QAAQ,IAAA,sBAAY,EAAC,IAAI,CAAC,EAAE,CAAC;QAChE,IAAI,KAAK,CAAC,WAAW,EAAE;YAAE,OAAO,WAAW,CAAC;QAC5C,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YAAE,OAAO,OAAO,CAAC;QACpC,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,MAAM,CAAC,IAAA,sBAAY,EAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;IACtF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;QACzE,OAAO,SAAU,KAA+B,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC;IACtE,CAAC;AACF,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,IAAY;IAC9C,IAAI,CAAC;QACJ,MAAM,KAAK,GAAG,MAAM,IAAA,gBAAK,EAAC,IAAI,CAAC,CAAC;QAChC,IAAI,KAAK,CAAC,cAAc,EAAE;YAAE,OAAO,QAAQ,MAAM,IAAA,mBAAQ,EAAC,IAAI,CAAC,EAAE,CAAC;QAClE,IAAI,KAAK,CAAC,WAAW,EAAE;YAAE,OAAO,WAAW,CAAC;QAC5C,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YAAE,OAAO,OAAO,CAAC;QACpC,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,MAAM,CAAC,MAAM,IAAA,mBAAQ,EAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;IACxF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;QACzE,OAAO,SAAU,KAA+B,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC;IACtE,CAAC;AACF,CAAC;AAED,SAAS,yBAAyB,CAAC,SAAiB,EAAE,YAAoB,EAAE,mBAA2B;IACtG,MAAM,SAAS,GAAI,oBAA6D,CAAC,UAAU,CAAC;IAC5F,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7B,MAAM,YAAY,GAAG,mBAAmB,CAAC,UAAU,CAAC,OAAO,CAAC;QAC3D,CAAC,CAAC,IAAA,wBAAa,EAAC,mBAAmB,CAAC;QACpC,CAAC,CAAC,mBAAmB,CAAC;IACvB,MAAM,WAAW,GAAG,GAAG,SAAS,KAAK,IAAA,mBAAO,EAAC,YAAY,CAAC,EAAE,CAAC;IAC7D,IAAI,SAAS,CAAC,WAAW,CAAC,KAAK,YAAY;QAAE,OAAO,SAAS,CAAC,WAAW,CAAC,CAAC;IAC3E,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3C,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/C,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,SAAS,IAAI,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,YAAY;YAAE,OAAO,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC/G,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAED,SAAS,MAAM,CAAC,MAAc;IAC7B,OAAO,IAAA,wBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC7D,CAAC"}
|
|
@@ -8,6 +8,7 @@ import { type Resources } from '../resources/Resources.ts';
|
|
|
8
8
|
import { Models } from '../resources/models/Models.ts';
|
|
9
9
|
import type { FileAndURLPathConfig } from './Component.ts';
|
|
10
10
|
import { FilesOption } from './deriveGlobOptions.ts';
|
|
11
|
+
import { type ScopeMount } from './scopeMount.ts';
|
|
11
12
|
import { ApplicationScope } from './ApplicationScope.ts';
|
|
12
13
|
import type { SecretsView } from './componentSecrets.ts';
|
|
13
14
|
export declare class MissingDefaultFilesOptionError extends Error {
|
|
@@ -39,7 +40,18 @@ export declare class Scope extends EventEmitter<ScopeEventsMap> {
|
|
|
39
40
|
databaseEvents: typeof databaseEventsEmitter;
|
|
40
41
|
models: Models;
|
|
41
42
|
isTransientValidation?: boolean;
|
|
42
|
-
|
|
43
|
+
/**
|
|
44
|
+
* Routing the operator declared for this application in the root config. Applied automatically
|
|
45
|
+
* to handlers registered through `scope.server`, so plugins normally don't touch it — the
|
|
46
|
+
* router strips the mount before a handler runs and everything inside the application
|
|
47
|
+
* addresses itself mount-relative.
|
|
48
|
+
*
|
|
49
|
+
* Read it only when a plugin emits an absolute URL back to the client (e.g. a redirect
|
|
50
|
+
* `Location`, via `externalBasePath()`) or bypasses the routed chain entirely (legacy
|
|
51
|
+
* fastify routes register on the bare server).
|
|
52
|
+
*/
|
|
53
|
+
mount?: ScopeMount;
|
|
54
|
+
constructor(appName: string, pluginName: string, directory: string, configFilePath: string, applicationScope: ApplicationScope, origin?: string, isRootConfig?: boolean, mount?: ScopeMount);
|
|
43
55
|
get logger(): Logger;
|
|
44
56
|
/**
|
|
45
57
|
* The application's secrets view (#1550): hdb_secret rows granted to this application plus its
|
|
@@ -52,6 +64,30 @@ export declare class Scope extends EventEmitter<ScopeEventsMap> {
|
|
|
52
64
|
get secrets(): SecretsView;
|
|
53
65
|
get appName(): string;
|
|
54
66
|
get pluginName(): string;
|
|
67
|
+
/**
|
|
68
|
+
* Turns a mount-relative base path into the absolute path a client sees, by prefixing the
|
|
69
|
+
* application's mount. Use it for anything sent back to the client — a redirect `Location`, a
|
|
70
|
+
* generated link — since the router strips the mount before a handler runs and a handler's own
|
|
71
|
+
* view of the path therefore excludes it.
|
|
72
|
+
*/
|
|
73
|
+
externalBasePath(baseURLPath: string): string;
|
|
74
|
+
/**
|
|
75
|
+
* The route a handler registered through `scope.server` with these options will answer on — the
|
|
76
|
+
* single place the application mount is applied. `scope.server` uses it, and a plugin that must
|
|
77
|
+
* identify its own route (e.g. REST deduplicating registration per mount) calls it rather than
|
|
78
|
+
* recomposing the parts, so there is one definition of "which route is this".
|
|
79
|
+
*
|
|
80
|
+
* An explicit call option wins over config, but either way `urlPath` is *resolved* rather than
|
|
81
|
+
* passed through: plugins that spread their whole config section into these options (REST does)
|
|
82
|
+
* would otherwise hand the router a raw value — './' became the literal, unmatchable route '/.'.
|
|
83
|
+
*/
|
|
84
|
+
routeFor(options?: {
|
|
85
|
+
urlPath?: string;
|
|
86
|
+
host?: string;
|
|
87
|
+
}): {
|
|
88
|
+
host?: string;
|
|
89
|
+
urlPath?: string;
|
|
90
|
+
};
|
|
55
91
|
get directory(): string;
|
|
56
92
|
get configFilePath(): string;
|
|
57
93
|
ensureTable<TableResourceType = unknown>(options: any): TableResourceType;
|
|
@@ -66,6 +102,7 @@ export declare class Scope extends EventEmitter<ScopeEventsMap> {
|
|
|
66
102
|
* Called by the component loader after handleApplication completes.
|
|
67
103
|
*/
|
|
68
104
|
waitForInitialLoads(): Promise<void>;
|
|
105
|
+
waitForDeployCompletion(timeoutMs?: number): Promise<void>;
|
|
69
106
|
/**
|
|
70
107
|
* Import a file into the scope's sandbox.
|
|
71
108
|
* @param filePath - The path of the file to import.
|
package/dist/components/Scope.js
CHANGED
|
@@ -19,6 +19,7 @@ const Resources_ts_1 = require("../resources/Resources.js");
|
|
|
19
19
|
const Models_ts_1 = require("../resources/models/Models.js");
|
|
20
20
|
const requestRestart_ts_1 = require("./requestRestart.js");
|
|
21
21
|
const resolveBaseURLPath_ts_1 = require("./resolveBaseURLPath.js");
|
|
22
|
+
const scopeMount_ts_1 = require("./scopeMount.js");
|
|
22
23
|
const componentSecrets_ts_1 = require("./componentSecrets.js");
|
|
23
24
|
const deployLifecycle_ts_1 = require("./deployLifecycle.js");
|
|
24
25
|
class MissingDefaultFilesOptionError extends Error {
|
|
@@ -48,11 +49,8 @@ class Scope extends node_events_1.EventEmitter {
|
|
|
48
49
|
#pendingInitialLoads;
|
|
49
50
|
#deployStartHandler;
|
|
50
51
|
#deployEndHandler;
|
|
51
|
-
// While a deploy of this component is in flight, EntryHandler events do not
|
|
52
|
-
// drive requestRestart() — the deploy itself produces hundreds of file
|
|
53
|
-
// changes that would otherwise pile up. A single coalesced restart is
|
|
54
|
-
// triggered by the post-deploy re-scan instead.
|
|
55
52
|
#deployInFlight = false;
|
|
53
|
+
#restartRequestedDuringDeploy = false;
|
|
56
54
|
applicationScope;
|
|
57
55
|
options;
|
|
58
56
|
resources;
|
|
@@ -64,14 +62,27 @@ class Scope extends node_events_1.EventEmitter {
|
|
|
64
62
|
// the scope exists to validate a component, not to run it. Plugins with
|
|
65
63
|
// process-global side effects should validate fully but skip activation.
|
|
66
64
|
isTransientValidation;
|
|
67
|
-
|
|
65
|
+
/**
|
|
66
|
+
* Routing the operator declared for this application in the root config. Applied automatically
|
|
67
|
+
* to handlers registered through `scope.server`, so plugins normally don't touch it — the
|
|
68
|
+
* router strips the mount before a handler runs and everything inside the application
|
|
69
|
+
* addresses itself mount-relative.
|
|
70
|
+
*
|
|
71
|
+
* Read it only when a plugin emits an absolute URL back to the client (e.g. a redirect
|
|
72
|
+
* `Location`, via `externalBasePath()`) or bypasses the routed chain entirely (legacy
|
|
73
|
+
* fastify routes register on the bare server).
|
|
74
|
+
*/
|
|
75
|
+
mount;
|
|
76
|
+
constructor(appName, pluginName, directory, configFilePath, applicationScope, origin = appName, isRootConfig, mount) {
|
|
68
77
|
super();
|
|
78
|
+
this.mount = mount;
|
|
69
79
|
this.#appName = appName;
|
|
70
80
|
this.#pluginName = pluginName;
|
|
71
81
|
this.#origin = typeof origin === 'string' ? origin : appName;
|
|
72
82
|
this.#directory = directory;
|
|
73
83
|
this.#configFilePath = configFilePath;
|
|
74
84
|
this.#logger = (0, harper_logger_ts_1.loggerWithTag)(this.#appName);
|
|
85
|
+
this.#deployInFlight = deployLifecycle_ts_1.deployLifecycle.isDeployInFlight(this.#appName);
|
|
75
86
|
this.databaseEvents = databases_ts_1.databaseEventsEmitter;
|
|
76
87
|
this.applicationScope = applicationScope;
|
|
77
88
|
// Hold this identity's live secret subscriptions (#1776) for as long as this Scope is open, so a
|
|
@@ -89,14 +100,10 @@ class Scope extends node_events_1.EventEmitter {
|
|
|
89
100
|
const method = Reflect.get(target, prop, receiver);
|
|
90
101
|
if (typeof method === 'function') {
|
|
91
102
|
return (listener, options) => {
|
|
92
|
-
const scopeConfig = scopeRef.options?.getAll() ?? {};
|
|
93
103
|
return method.call(target, listener, {
|
|
94
104
|
name: pluginName,
|
|
95
|
-
// resolve to the same base the entry pipeline uses ('assets' -> '/assets/',
|
|
96
|
-
// './x' -> '/<name>/x/') so route matching sees a real pathname prefix (#1583)
|
|
97
|
-
urlPath: scopeConfig.urlPath ? (0, resolveBaseURLPath_ts_1.resolveBaseURLPath)(pluginName, scopeConfig.urlPath) : undefined,
|
|
98
|
-
host: scopeConfig.host || undefined,
|
|
99
105
|
...options,
|
|
106
|
+
...scopeRef.routeFor(options),
|
|
100
107
|
});
|
|
101
108
|
};
|
|
102
109
|
}
|
|
@@ -114,6 +121,7 @@ class Scope extends node_events_1.EventEmitter {
|
|
|
114
121
|
this.options = new OptionsWatcher_ts_1.OptionsWatcher(pluginName, configFilePath, this.#logger, isRootConfig)
|
|
115
122
|
.on('error', this.#handleError.bind(this))
|
|
116
123
|
.on('change', this.#optionsWatcherChangeListener.bind(this)())
|
|
124
|
+
.on('remove', this.#optionsWatcherRemoveListener())
|
|
117
125
|
.on('ready', this.#handleOptionsWatcherReady.bind(this));
|
|
118
126
|
// Bridge cross-thread deploy lifecycle events for this component. The
|
|
119
127
|
// handlers live on the scope for the lifetime of the scope and are torn
|
|
@@ -149,6 +157,39 @@ class Scope extends node_events_1.EventEmitter {
|
|
|
149
157
|
get pluginName() {
|
|
150
158
|
return this.#pluginName;
|
|
151
159
|
}
|
|
160
|
+
/**
|
|
161
|
+
* Turns a mount-relative base path into the absolute path a client sees, by prefixing the
|
|
162
|
+
* application's mount. Use it for anything sent back to the client — a redirect `Location`, a
|
|
163
|
+
* generated link — since the router strips the mount before a handler runs and a handler's own
|
|
164
|
+
* view of the path therefore excludes it.
|
|
165
|
+
*/
|
|
166
|
+
externalBasePath(baseURLPath) {
|
|
167
|
+
return this.mount?.urlPath ? `${this.mount.urlPath}${baseURLPath}` : baseURLPath;
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* The route a handler registered through `scope.server` with these options will answer on — the
|
|
171
|
+
* single place the application mount is applied. `scope.server` uses it, and a plugin that must
|
|
172
|
+
* identify its own route (e.g. REST deduplicating registration per mount) calls it rather than
|
|
173
|
+
* recomposing the parts, so there is one definition of "which route is this".
|
|
174
|
+
*
|
|
175
|
+
* An explicit call option wins over config, but either way `urlPath` is *resolved* rather than
|
|
176
|
+
* passed through: plugins that spread their whole config section into these options (REST does)
|
|
177
|
+
* would otherwise hand the router a raw value — './' became the literal, unmatchable route '/.'.
|
|
178
|
+
*/
|
|
179
|
+
routeFor(options) {
|
|
180
|
+
const scopeConfig = this.options?.getAll() ?? {};
|
|
181
|
+
const rawUrlPath = options?.urlPath ?? scopeConfig.urlPath;
|
|
182
|
+
// resolve to the same base the entry pipeline uses ('assets' -> '/assets/', './x' ->
|
|
183
|
+
// '/<name>/x/') so route matching sees a real pathname prefix (#1583), then prefix the
|
|
184
|
+
// application's mount. The mount is applied ONLY here, at the routing boundary: the router
|
|
185
|
+
// strips it before the handler runs, so entry URL paths — and the resource paths
|
|
186
|
+
// graphqlSchema/jsResource derive from them — stay mount-relative.
|
|
187
|
+
const pluginUrlPath = rawUrlPath ? (0, resolveBaseURLPath_ts_1.resolveBaseURLPath)(this.#pluginName, rawUrlPath) : undefined;
|
|
188
|
+
return {
|
|
189
|
+
host: this.mount?.host || options?.host || scopeConfig.host || undefined,
|
|
190
|
+
urlPath: (0, scopeMount_ts_1.composeMountedUrlPath)(this.mount?.urlPath, this.#pluginName, pluginUrlPath) || undefined,
|
|
191
|
+
};
|
|
192
|
+
}
|
|
152
193
|
get directory() {
|
|
153
194
|
return this.#directory;
|
|
154
195
|
}
|
|
@@ -168,7 +209,10 @@ class Scope extends node_events_1.EventEmitter {
|
|
|
168
209
|
this.emit('ready');
|
|
169
210
|
}
|
|
170
211
|
#handleError(error) {
|
|
171
|
-
this.
|
|
212
|
+
if (this.listenerCount('error') > 0)
|
|
213
|
+
this.emit('error', error);
|
|
214
|
+
else
|
|
215
|
+
this.#logger.error?.('Error in component scope:', error);
|
|
172
216
|
}
|
|
173
217
|
async close() {
|
|
174
218
|
deployLifecycle_ts_1.deployLifecycle.off('deploy:start', this.#deployStartHandler);
|
|
@@ -207,6 +251,8 @@ class Scope extends node_events_1.EventEmitter {
|
|
|
207
251
|
}
|
|
208
252
|
#onDeployStart(componentName) {
|
|
209
253
|
this.#deployInFlight = true;
|
|
254
|
+
this.#restartRequestedDuringDeploy = false;
|
|
255
|
+
this.applicationScope?.beginDeploy();
|
|
210
256
|
// Pause each EntryHandler so it stops emitting events for the
|
|
211
257
|
// intermediate filesystem state the deploy is writing, and so it
|
|
212
258
|
// releases its inotify handles while npm install is unpacking
|
|
@@ -219,22 +265,26 @@ class Scope extends node_events_1.EventEmitter {
|
|
|
219
265
|
}
|
|
220
266
|
#onDeployEnd(componentName) {
|
|
221
267
|
this.#deployInFlight = false;
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
//
|
|
225
|
-
// The fresh chokidar watcher does an initial scan and emits add events
|
|
226
|
-
// for the post-deploy tree; the existing per-event listener calls
|
|
227
|
-
// scope.requestRestart() for each, and the restart debounce in
|
|
228
|
-
// componentLoader collapses them into a single restart cycle. Plugin
|
|
229
|
-
// handlers stay attached across the pause.
|
|
268
|
+
const restartRequestedDuringDeploy = this.#restartRequestedDuringDeploy;
|
|
269
|
+
this.#restartRequestedDuringDeploy = false;
|
|
270
|
+
// Resume before notifying plugins so a throwing deploy:end listener cannot strand the watchers.
|
|
230
271
|
for (const entryHandler of this.#entryHandlers) {
|
|
231
|
-
void entryHandler.resume();
|
|
272
|
+
void entryHandler.resume().catch(() => { });
|
|
232
273
|
}
|
|
274
|
+
if (restartRequestedDuringDeploy)
|
|
275
|
+
this.requestRestart();
|
|
276
|
+
void this.applicationScope
|
|
277
|
+
?.finishDeploy()
|
|
278
|
+
.then((runtimeChanged) => {
|
|
279
|
+
if (runtimeChanged)
|
|
280
|
+
this.requestRestart();
|
|
281
|
+
})
|
|
282
|
+
.catch((error) => {
|
|
283
|
+
this.#logger.error?.(`Could not verify the loaded runtime after deploying ${this.#appName}:`, error);
|
|
284
|
+
this.requestRestart();
|
|
285
|
+
});
|
|
233
286
|
this.#safeEmit('deploy:end', componentName);
|
|
234
287
|
}
|
|
235
|
-
// Swallow and log listener exceptions so one buggy plugin can't stop us
|
|
236
|
-
// from running the rest of the deploy-lifecycle bookkeeping. EventEmitter
|
|
237
|
-
// by default rethrows from synchronous listeners.
|
|
238
288
|
#safeEmit(event, componentName) {
|
|
239
289
|
try {
|
|
240
290
|
this.emit(event, componentName);
|
|
@@ -251,6 +301,8 @@ class Scope extends node_events_1.EventEmitter {
|
|
|
251
301
|
.on('unlink', this.#defaultEntryHandlerListener('unlink'))
|
|
252
302
|
.on('addDir', this.#defaultEntryHandlerListener('addDir'))
|
|
253
303
|
.on('unlinkDir', this.#defaultEntryHandlerListener('unlinkDir'));
|
|
304
|
+
if (this.#deployInFlight)
|
|
305
|
+
entryHandler.pause();
|
|
254
306
|
this.#entryHandlers.push(entryHandler);
|
|
255
307
|
return entryHandler;
|
|
256
308
|
}
|
|
@@ -283,8 +335,7 @@ class Scope extends node_events_1.EventEmitter {
|
|
|
283
335
|
if (!scope.#entryHandler) {
|
|
284
336
|
return;
|
|
285
337
|
}
|
|
286
|
-
|
|
287
|
-
scope.#entryHandler.update(config);
|
|
338
|
+
void scope.#entryHandler.update(config).catch(() => { });
|
|
288
339
|
return;
|
|
289
340
|
}
|
|
290
341
|
// If the user isn't handling option changes, request a restart
|
|
@@ -295,6 +346,22 @@ class Scope extends node_events_1.EventEmitter {
|
|
|
295
346
|
scope.requestRestart();
|
|
296
347
|
};
|
|
297
348
|
}
|
|
349
|
+
#optionsWatcherRemoveListener() {
|
|
350
|
+
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
351
|
+
const scope = this;
|
|
352
|
+
// Deleting a component's config block emits `remove` (not `change`), so without
|
|
353
|
+
// this listener a running component keeps serving until some unrelated restart —
|
|
354
|
+
// even though absence is the canonical disabled state for opt-in built-ins like
|
|
355
|
+
// the /v1 models gateway. Mirrors the change listener: a plugin that registers
|
|
356
|
+
// its own `remove` handler owns the response and no restart is requested.
|
|
357
|
+
return function handleOptionsWatcherRemove() {
|
|
358
|
+
if (this.listenerCount('remove') > 1) {
|
|
359
|
+
return;
|
|
360
|
+
}
|
|
361
|
+
scope.#logger.debug?.('Options removed, requesting restart');
|
|
362
|
+
scope.requestRestart();
|
|
363
|
+
};
|
|
364
|
+
}
|
|
298
365
|
#getFilesOption() {
|
|
299
366
|
const config = this.options.getAll();
|
|
300
367
|
if (config &&
|
|
@@ -391,9 +458,7 @@ class Scope extends node_events_1.EventEmitter {
|
|
|
391
458
|
}
|
|
392
459
|
requestRestart() {
|
|
393
460
|
if (this.#deployInFlight) {
|
|
394
|
-
|
|
395
|
-
// post-deploy re-scan in #onDeployEnd will trigger the coalesced
|
|
396
|
-
// restart instead.
|
|
461
|
+
this.#restartRequestedDuringDeploy = true;
|
|
397
462
|
this.#logger.debug?.(`Restart suppressed (deploy in flight) for ${this.#appName}`);
|
|
398
463
|
return;
|
|
399
464
|
}
|
|
@@ -410,6 +475,30 @@ class Scope extends node_events_1.EventEmitter {
|
|
|
410
475
|
await Promise.all(this.#pendingInitialLoads);
|
|
411
476
|
}
|
|
412
477
|
}
|
|
478
|
+
waitForDeployCompletion(timeoutMs = 6 * 60 * 60 * 1000) {
|
|
479
|
+
if (!this.#deployInFlight)
|
|
480
|
+
return Promise.resolve();
|
|
481
|
+
return new Promise((resolve, reject) => {
|
|
482
|
+
const timer = setTimeout(() => {
|
|
483
|
+
deployLifecycle_ts_1.deployLifecycle.off('deploy:end', handleDeployEnd);
|
|
484
|
+
reject(new Error(`Timed out waiting for deployment of ${this.#appName} to complete`));
|
|
485
|
+
}, timeoutMs);
|
|
486
|
+
timer.unref?.();
|
|
487
|
+
const handleDeployEnd = (componentName) => {
|
|
488
|
+
if (componentName !== this.#appName || this.#deployInFlight)
|
|
489
|
+
return;
|
|
490
|
+
deployLifecycle_ts_1.deployLifecycle.off('deploy:end', handleDeployEnd);
|
|
491
|
+
clearTimeout(timer);
|
|
492
|
+
resolve();
|
|
493
|
+
};
|
|
494
|
+
deployLifecycle_ts_1.deployLifecycle.on('deploy:end', handleDeployEnd);
|
|
495
|
+
if (!this.#deployInFlight) {
|
|
496
|
+
deployLifecycle_ts_1.deployLifecycle.off('deploy:end', handleDeployEnd);
|
|
497
|
+
clearTimeout(timer);
|
|
498
|
+
resolve();
|
|
499
|
+
}
|
|
500
|
+
});
|
|
501
|
+
}
|
|
413
502
|
/**
|
|
414
503
|
* Import a file into the scope's sandbox.
|
|
415
504
|
* @param filePath - The path of the file to import.
|