rivet-design 0.16.2 → 0.17.0
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/README.md +8 -2
- package/README.npm.md +8 -2
- package/bin/rivet.js +15 -7
- package/dist/agent-variants/variantContext.d.ts +1 -0
- package/dist/agent-variants/variantContext.d.ts.map +1 -1
- package/dist/agent-variants/variantContext.js +1 -1
- package/dist/agent-variants/variantContext.js.map +1 -1
- package/dist/cli/commandNames.d.ts +2 -0
- package/dist/cli/commandNames.d.ts.map +1 -1
- package/dist/cli/commandNames.js +16 -1
- package/dist/cli/commandNames.js.map +1 -1
- package/dist/cli/commands/libraryOpen.d.ts +10 -0
- package/dist/cli/commands/libraryOpen.d.ts.map +1 -0
- package/dist/cli/commands/libraryOpen.js +126 -0
- package/dist/cli/commands/libraryOpen.js.map +1 -0
- package/dist/cli/commands/open.d.ts +39 -0
- package/dist/cli/commands/open.d.ts.map +1 -1
- package/dist/cli/commands/open.js +35 -21
- package/dist/cli/commands/open.js.map +1 -1
- package/dist/cli/commands/serve.d.ts.map +1 -1
- package/dist/cli/commands/serve.js +33 -0
- package/dist/cli/commands/serve.js.map +1 -1
- package/dist/cli/router.d.ts.map +1 -1
- package/dist/cli/router.js +34 -3
- package/dist/cli/router.js.map +1 -1
- package/dist/cli/serverHandshake.d.ts +7 -5
- package/dist/cli/serverHandshake.d.ts.map +1 -1
- package/dist/cli/serverHandshake.js +16 -12
- package/dist/cli/serverHandshake.js.map +1 -1
- package/dist/install/installationChannel.d.ts +4 -0
- package/dist/install/installationChannel.d.ts.map +1 -0
- package/dist/install/installationChannel.js +13 -0
- package/dist/install/installationChannel.js.map +1 -0
- package/dist/library/HubClient.d.ts +12 -0
- package/dist/library/HubClient.d.ts.map +1 -0
- package/dist/library/HubClient.js +109 -0
- package/dist/library/HubClient.js.map +1 -0
- package/dist/library/HubServer.d.ts +16 -0
- package/dist/library/HubServer.d.ts.map +1 -0
- package/dist/library/HubServer.js +95 -0
- package/dist/library/HubServer.js.map +1 -0
- package/dist/library/StaticPreviewServer.d.ts +7 -0
- package/dist/library/StaticPreviewServer.d.ts.map +1 -0
- package/dist/library/StaticPreviewServer.js +18 -0
- package/dist/library/StaticPreviewServer.js.map +1 -0
- package/dist/library/http.d.ts +11 -0
- package/dist/library/http.d.ts.map +1 -0
- package/dist/library/http.js +31 -0
- package/dist/library/http.js.map +1 -0
- package/dist/library/importFiles.d.ts +18 -0
- package/dist/library/importFiles.d.ts.map +1 -0
- package/dist/library/importFiles.js +184 -0
- package/dist/library/importFiles.js.map +1 -0
- package/dist/proxy-middleware/preview-bridge.d.ts.map +1 -1
- package/dist/proxy-middleware/preview-bridge.js +6 -16
- package/dist/proxy-middleware/preview-bridge.js.map +1 -1
- package/dist/routes/account.d.ts +4 -0
- package/dist/routes/account.d.ts.map +1 -0
- package/dist/routes/account.js +53 -0
- package/dist/routes/account.js.map +1 -0
- package/dist/routes/agentVariants.d.ts +2 -13
- package/dist/routes/agentVariants.d.ts.map +1 -1
- package/dist/routes/agentVariants.js +53 -79
- package/dist/routes/agentVariants.js.map +1 -1
- package/dist/routes/library/app.d.ts +8 -0
- package/dist/routes/library/app.d.ts.map +1 -0
- package/dist/routes/library/app.js +26 -0
- package/dist/routes/library/app.js.map +1 -0
- package/dist/routes/library/index.d.ts +5 -0
- package/dist/routes/library/index.d.ts.map +1 -0
- package/dist/routes/library/index.js +32 -0
- package/dist/routes/library/index.js.map +1 -0
- package/dist/routes/library/middleware.d.ts +9 -0
- package/dist/routes/library/middleware.d.ts.map +1 -0
- package/dist/routes/library/middleware.js +58 -0
- package/dist/routes/library/middleware.js.map +1 -0
- package/dist/routes/library/navigation.d.ts +5 -0
- package/dist/routes/library/navigation.d.ts.map +1 -0
- package/dist/routes/library/navigation.js +39 -0
- package/dist/routes/library/navigation.js.map +1 -0
- package/dist/routes/library/projects.d.ts +5 -0
- package/dist/routes/library/projects.d.ts.map +1 -0
- package/dist/routes/library/projects.js +42 -0
- package/dist/routes/library/projects.js.map +1 -0
- package/dist/routes/library/schemas.d.ts +23 -0
- package/dist/routes/library/schemas.d.ts.map +1 -0
- package/dist/routes/library/schemas.js +10 -0
- package/dist/routes/library/schemas.js.map +1 -0
- package/dist/routes/library/staticPreview.d.ts +4 -0
- package/dist/routes/library/staticPreview.d.ts.map +1 -0
- package/dist/routes/library/staticPreview.js +39 -0
- package/dist/routes/library/staticPreview.js.map +1 -0
- package/dist/routes/library/types.d.ts +22 -0
- package/dist/routes/library/types.d.ts.map +1 -0
- package/dist/routes/library/types.js +3 -0
- package/dist/routes/library/types.js.map +1 -0
- package/dist/routes/library/variants.d.ts +5 -0
- package/dist/routes/library/variants.d.ts.map +1 -0
- package/dist/routes/library/variants.js +35 -0
- package/dist/routes/library/variants.js.map +1 -0
- package/dist/server.d.ts +2 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +18 -30
- package/dist/server.js.map +1 -1
- package/dist/services/HistoryReplayService.js +1 -1
- package/dist/services/HistoryReplayService.js.map +1 -1
- package/dist/services/HubDiscovery.d.ts +46 -0
- package/dist/services/HubDiscovery.d.ts.map +1 -0
- package/dist/services/HubDiscovery.js +58 -0
- package/dist/services/HubDiscovery.js.map +1 -0
- package/dist/services/HubNavigation.d.ts +36 -0
- package/dist/services/HubNavigation.d.ts.map +1 -0
- package/dist/services/HubNavigation.js +76 -0
- package/dist/services/HubNavigation.js.map +1 -0
- package/dist/services/ProjectCardPreviews.d.ts +27 -0
- package/dist/services/ProjectCardPreviews.d.ts.map +1 -0
- package/dist/services/ProjectCardPreviews.js +112 -0
- package/dist/services/ProjectCardPreviews.js.map +1 -0
- package/dist/services/ProjectFolderPicker.d.ts +20 -0
- package/dist/services/ProjectFolderPicker.d.ts.map +1 -0
- package/dist/services/ProjectFolderPicker.js +174 -0
- package/dist/services/ProjectFolderPicker.js.map +1 -0
- package/dist/services/ProjectImport.d.ts +13 -0
- package/dist/services/ProjectImport.d.ts.map +1 -0
- package/dist/services/ProjectImport.js +226 -0
- package/dist/services/ProjectImport.js.map +1 -0
- package/dist/services/ProjectLibrary.d.ts +74 -0
- package/dist/services/ProjectLibrary.d.ts.map +1 -0
- package/dist/services/ProjectLibrary.js +261 -0
- package/dist/services/ProjectLibrary.js.map +1 -0
- package/dist/services/ProjectMetadataStore.d.ts +6 -19
- package/dist/services/ProjectMetadataStore.d.ts.map +1 -1
- package/dist/services/ProjectMetadataStore.js +29 -147
- package/dist/services/ProjectMetadataStore.js.map +1 -1
- package/dist/services/ProjectRegistry.d.ts +80 -0
- package/dist/services/ProjectRegistry.d.ts.map +1 -0
- package/dist/services/ProjectRegistry.js +147 -0
- package/dist/services/ProjectRegistry.js.map +1 -0
- package/dist/services/ProjectRuntimeService.d.ts +18 -0
- package/dist/services/ProjectRuntimeService.d.ts.map +1 -0
- package/dist/services/ProjectRuntimeService.js +143 -0
- package/dist/services/ProjectRuntimeService.js.map +1 -0
- package/dist/services/ProjectScreenshotService.d.ts +15 -0
- package/dist/services/ProjectScreenshotService.d.ts.map +1 -0
- package/dist/services/ProjectScreenshotService.js +90 -0
- package/dist/services/ProjectScreenshotService.js.map +1 -0
- package/dist/services/ProjectStorage.d.ts +20 -0
- package/dist/services/ProjectStorage.d.ts.map +1 -0
- package/dist/services/ProjectStorage.js +41 -0
- package/dist/services/ProjectStorage.js.map +1 -0
- package/dist/services/StaticLibraryPreviews.d.ts +21 -0
- package/dist/services/StaticLibraryPreviews.d.ts.map +1 -0
- package/dist/services/StaticLibraryPreviews.js +61 -0
- package/dist/services/StaticLibraryPreviews.js.map +1 -0
- package/dist/services/TelemetryService.d.ts +7 -0
- package/dist/services/TelemetryService.d.ts.map +1 -1
- package/dist/services/TelemetryService.js +7 -1
- package/dist/services/TelemetryService.js.map +1 -1
- package/dist/services/TreeStore.d.ts +8 -3
- package/dist/services/TreeStore.d.ts.map +1 -1
- package/dist/services/TreeStore.js +39 -18
- package/dist/services/TreeStore.js.map +1 -1
- package/dist/services/VariantGenerationService.d.ts +5 -0
- package/dist/services/VariantGenerationService.d.ts.map +1 -1
- package/dist/services/VariantGenerationService.js +13 -1
- package/dist/services/VariantGenerationService.js.map +1 -1
- package/dist/services/VariantHistoryService.d.ts +18 -162
- package/dist/services/VariantHistoryService.d.ts.map +1 -1
- package/dist/services/VariantHistoryService.js +187 -45
- package/dist/services/VariantHistoryService.js.map +1 -1
- package/dist/services/VariantRunService.d.ts +3 -0
- package/dist/services/VariantRunService.d.ts.map +1 -1
- package/dist/services/VariantRunService.js +2 -0
- package/dist/services/VariantRunService.js.map +1 -1
- package/dist/services/VariantsRuntime.d.ts +4 -0
- package/dist/services/VariantsRuntime.d.ts.map +1 -1
- package/dist/services/VariantsRuntime.js +6 -1
- package/dist/services/VariantsRuntime.js.map +1 -1
- package/dist/services/createAgentVariantsOrchestrator.d.ts +2 -0
- package/dist/services/createAgentVariantsOrchestrator.d.ts.map +1 -1
- package/dist/services/createAgentVariantsOrchestrator.js +1 -0
- package/dist/services/createAgentVariantsOrchestrator.js.map +1 -1
- package/dist/services/historyRoots.d.ts +14 -0
- package/dist/services/historyRoots.d.ts.map +1 -0
- package/dist/services/historyRoots.js +44 -0
- package/dist/services/historyRoots.js.map +1 -0
- package/dist/services/libraryErrors.d.ts +7 -0
- package/dist/services/libraryErrors.d.ts.map +1 -0
- package/dist/services/libraryErrors.js +14 -0
- package/dist/services/libraryErrors.js.map +1 -0
- package/dist/storage/library/BundleMetadataStore.d.ts +53 -0
- package/dist/storage/library/BundleMetadataStore.d.ts.map +1 -0
- package/dist/storage/library/BundleMetadataStore.js +317 -0
- package/dist/storage/library/BundleMetadataStore.js.map +1 -0
- package/dist/storage/library/CoordinatorRecords.d.ts +25 -0
- package/dist/storage/library/CoordinatorRecords.d.ts.map +1 -0
- package/dist/storage/library/CoordinatorRecords.js +84 -0
- package/dist/storage/library/CoordinatorRecords.js.map +1 -0
- package/dist/storage/library/ProjectPreviewCache.d.ts +34 -0
- package/dist/storage/library/ProjectPreviewCache.d.ts.map +1 -0
- package/dist/storage/library/ProjectPreviewCache.js +62 -0
- package/dist/storage/library/ProjectPreviewCache.js.map +1 -0
- package/dist/storage/library/ProjectRecords.d.ts +64 -0
- package/dist/storage/library/ProjectRecords.d.ts.map +1 -0
- package/dist/storage/library/ProjectRecords.js +139 -0
- package/dist/storage/library/ProjectRecords.js.map +1 -0
- package/dist/storage/library/database.d.ts +13 -0
- package/dist/storage/library/database.d.ts.map +1 -0
- package/dist/storage/library/database.js +106 -0
- package/dist/storage/library/database.js.map +1 -0
- package/dist/storage/library/migrations.d.ts +5 -0
- package/dist/storage/library/migrations.d.ts.map +1 -0
- package/dist/storage/library/migrations.js +61 -0
- package/dist/storage/library/migrations.js.map +1 -0
- package/dist/storage/library/schema/bundle.d.ts +734 -0
- package/dist/storage/library/schema/bundle.d.ts.map +1 -0
- package/dist/storage/library/schema/bundle.js +79 -0
- package/dist/storage/library/schema/bundle.js.map +1 -0
- package/dist/storage/library/schema/coordinator.d.ts +72 -0
- package/dist/storage/library/schema/coordinator.d.ts.map +1 -0
- package/dist/storage/library/schema/coordinator.js +12 -0
- package/dist/storage/library/schema/coordinator.js.map +1 -0
- package/dist/storage/library/schema/registry.d.ts +198 -0
- package/dist/storage/library/schema/registry.d.ts.map +1 -0
- package/dist/storage/library/schema/registry.js +32 -0
- package/dist/storage/library/schema/registry.js.map +1 -0
- package/dist/storage/library/sourcePresentation.d.ts +3 -0
- package/dist/storage/library/sourcePresentation.d.ts.map +1 -0
- package/dist/storage/library/sourcePresentation.js +70 -0
- package/dist/storage/library/sourcePresentation.js.map +1 -0
- package/dist/storage/project-metadata/ProjectMetadataRecords.d.ts +41 -0
- package/dist/storage/project-metadata/ProjectMetadataRecords.d.ts.map +1 -0
- package/dist/storage/project-metadata/ProjectMetadataRecords.js +120 -0
- package/dist/storage/project-metadata/ProjectMetadataRecords.js.map +1 -0
- package/dist/storage/project-metadata/database.d.ts +12 -0
- package/dist/storage/project-metadata/database.d.ts.map +1 -0
- package/dist/storage/project-metadata/database.js +79 -0
- package/dist/storage/project-metadata/database.js.map +1 -0
- package/dist/{services/projectMetadataMigrations.d.ts → storage/project-metadata/migrations.d.ts} +1 -1
- package/dist/storage/project-metadata/migrations.d.ts.map +1 -0
- package/dist/{services/projectMetadataMigrations.js → storage/project-metadata/migrations.js} +1 -1
- package/dist/storage/project-metadata/migrations.js.map +1 -0
- package/dist/storage/project-metadata/schema.d.ts +288 -0
- package/dist/storage/project-metadata/schema.d.ts.map +1 -0
- package/dist/storage/project-metadata/schema.js +35 -0
- package/dist/storage/project-metadata/schema.js.map +1 -0
- package/dist/types/account.d.ts +8 -0
- package/dist/types/account.d.ts.map +1 -0
- package/dist/types/account.js +3 -0
- package/dist/types/account.js.map +1 -0
- package/dist/types/project-library.d.ts +28 -0
- package/dist/types/project-library.d.ts.map +1 -0
- package/dist/types/project-library.js +3 -0
- package/dist/types/project-library.js.map +1 -0
- package/dist/types/variant-history.d.ts +173 -0
- package/dist/types/variant-history.d.ts.map +1 -0
- package/dist/types/variant-history.js +3 -0
- package/dist/types/variant-history.js.map +1 -0
- package/dist/utils/htmlDocument.d.ts +13 -0
- package/dist/utils/htmlDocument.d.ts.map +1 -0
- package/dist/utils/htmlDocument.js +42 -0
- package/dist/utils/htmlDocument.js.map +1 -0
- package/dist/utils/windowPlacement.d.ts +20 -0
- package/dist/utils/windowPlacement.d.ts.map +1 -0
- package/dist/utils/windowPlacement.js +20 -0
- package/dist/utils/windowPlacement.js.map +1 -0
- package/package.json +10 -3
- package/scripts/verify-node-version.cjs +9 -6
- package/src/ui/dist/assets/LibraryApp-B2MZyxIp.js +16 -0
- package/src/ui/dist/assets/main-1IMq5Huu.css +1 -0
- package/src/ui/dist/assets/main-BId3Sa7r.js +438 -0
- package/src/ui/dist/favicon-16.png +0 -0
- package/src/ui/dist/favicon-32.png +0 -0
- package/src/ui/dist/favicon.ico +0 -0
- package/src/ui/dist/index.html +2 -2
- package/dist/services/projectMetadataMigrations.d.ts.map +0 -1
- package/dist/services/projectMetadataMigrations.js.map +0 -1
- package/src/ui/dist/assets/main-BjwDfDy8.js +0 -423
- package/src/ui/dist/assets/main-Ct1aZend.css +0 -1
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createLibraryApp = void 0;
|
|
7
|
+
const express_1 = __importDefault(require("express"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const index_1 = require("./index");
|
|
10
|
+
const middleware_1 = require("./middleware");
|
|
11
|
+
const account_1 = require("../account");
|
|
12
|
+
const integrations_1 = require("../integrations");
|
|
13
|
+
const support_1 = require("../support");
|
|
14
|
+
/** Serves the library API and the browser application's entrypoints and assets. */
|
|
15
|
+
const createLibraryApp = ({ uiDirectory, ...services }) => {
|
|
16
|
+
const app = (0, express_1.default)();
|
|
17
|
+
app.use('/api/library', (0, index_1.createLibraryRouter)(services));
|
|
18
|
+
app.use('/api', (0, middleware_1.authenticateLibrary)(services.token), express_1.default.json(), (0, account_1.createAccountRouter)(services.telemetry), (0, integrations_1.createIntegrationsRouter)(), (0, support_1.createSupportRouter)(services.telemetry));
|
|
19
|
+
app.use('/rivet', express_1.default.static(uiDirectory, { index: false }));
|
|
20
|
+
app.use(express_1.default.static(uiDirectory, { index: false }));
|
|
21
|
+
app.get(/^\/rivet\/library(?:\/.*)?$/, (_req, res) => res.sendFile(path_1.default.join(uiDirectory, 'index.html')));
|
|
22
|
+
app.get('/', (_req, res) => res.redirect('/rivet/library'));
|
|
23
|
+
return app;
|
|
24
|
+
};
|
|
25
|
+
exports.createLibraryApp = createLibraryApp;
|
|
26
|
+
//# sourceMappingURL=app.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/routes/library/app.ts"],"names":[],"mappings":";;;;;;AAAA,sDAA8B;AAC9B,gDAAwB;AACxB,mCAA8C;AAE9C,6CAAmD;AACnD,wCAAiD;AACjD,kDAA2D;AAC3D,wCAAiD;AAMjD,mFAAmF;AAC5E,MAAM,gBAAgB,GAAG,CAAC,EAC/B,WAAW,EACX,GAAG,QAAQ,EACO,EAAE,EAAE;IACtB,MAAM,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;IACtB,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,IAAA,2BAAmB,EAAC,QAAQ,CAAC,CAAC,CAAC;IACvD,GAAG,CAAC,GAAG,CACL,MAAM,EACN,IAAA,gCAAmB,EAAC,QAAQ,CAAC,KAAK,CAAC,EACnC,iBAAO,CAAC,IAAI,EAAE,EACd,IAAA,6BAAmB,EAAC,QAAQ,CAAC,SAAS,CAAC,EACvC,IAAA,uCAAwB,GAAE,EAC1B,IAAA,6BAAmB,EAAC,QAAQ,CAAC,SAAS,CAAC,CACxC,CAAC;IACF,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,iBAAO,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IACjE,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IACvD,GAAG,CAAC,GAAG,CAAC,6BAA6B,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CACnD,GAAG,CAAC,QAAQ,CAAC,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,CACnD,CAAC;IACF,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC5D,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AArBW,QAAA,gBAAgB,oBAqB3B"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Router } from 'express';
|
|
2
|
+
import type { LibraryRouteOptions } from './types';
|
|
3
|
+
/** Composes the authenticated library API from its application services. */
|
|
4
|
+
export declare const createLibraryRouter: (options: LibraryRouteOptions) => Router;
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/routes/library/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,MAAM,EAAE,MAAM,SAAS,CAAC;AAUvC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAInD,4EAA4E;AAC5E,eAAO,MAAM,mBAAmB,GAAI,SAAS,mBAAmB,KAAG,MAoBlE,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createLibraryRouter = void 0;
|
|
4
|
+
const express_1 = require("express");
|
|
5
|
+
const installationChannel_1 = require("../../install/installationChannel");
|
|
6
|
+
const middleware_1 = require("./middleware");
|
|
7
|
+
const projects_1 = require("./projects");
|
|
8
|
+
const variants_1 = require("./variants");
|
|
9
|
+
const navigation_1 = require("./navigation");
|
|
10
|
+
const REQUEST_BODY_LIMIT = '256kb';
|
|
11
|
+
/** Composes the authenticated library API from its application services. */
|
|
12
|
+
const createLibraryRouter = (options) => {
|
|
13
|
+
const router = (0, express_1.Router)();
|
|
14
|
+
const services = {
|
|
15
|
+
...options,
|
|
16
|
+
track: (0, middleware_1.trackLibraryOperation)(options.telemetry),
|
|
17
|
+
};
|
|
18
|
+
router.use((0, middleware_1.authenticateLibrary)(options.token));
|
|
19
|
+
router.use((0, express_1.json)({ limit: REQUEST_BODY_LIMIT }));
|
|
20
|
+
router.get('/health', (_req, res) => res.json({
|
|
21
|
+
pid: process.pid,
|
|
22
|
+
instanceId: options.token,
|
|
23
|
+
channel: (0, installationChannel_1.installationChannel)(),
|
|
24
|
+
}));
|
|
25
|
+
router.use((0, projects_1.createProjectRoutes)(services));
|
|
26
|
+
router.use((0, variants_1.createVariantRoutes)(services));
|
|
27
|
+
router.use((0, navigation_1.createNavigationRoutes)(services));
|
|
28
|
+
router.use(middleware_1.handleLibraryError);
|
|
29
|
+
return router;
|
|
30
|
+
};
|
|
31
|
+
exports.createLibraryRouter = createLibraryRouter;
|
|
32
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/routes/library/index.ts"],"names":[],"mappings":";;;AAAA,qCAAuC;AACvC,2EAAwE;AACxE,6CAIsB;AACtB,yCAAiD;AACjD,yCAAiD;AACjD,6CAAsD;AAGtD,MAAM,kBAAkB,GAAG,OAAO,CAAC;AAEnC,4EAA4E;AACrE,MAAM,mBAAmB,GAAG,CAAC,OAA4B,EAAU,EAAE;IAC1E,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;IACxB,MAAM,QAAQ,GAAG;QACf,GAAG,OAAO;QACV,KAAK,EAAE,IAAA,kCAAqB,EAAC,OAAO,CAAC,SAAS,CAAC;KAChD,CAAC;IACF,MAAM,CAAC,GAAG,CAAC,IAAA,gCAAmB,EAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,IAAA,cAAI,EAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC;IAChD,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAClC,GAAG,CAAC,IAAI,CAAC;QACP,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,UAAU,EAAE,OAAO,CAAC,KAAK;QACzB,OAAO,EAAE,IAAA,yCAAmB,GAAE;KAC/B,CAAC,CACH,CAAC;IACF,MAAM,CAAC,GAAG,CAAC,IAAA,8BAAmB,EAAC,QAAQ,CAAC,CAAC,CAAC;IAC1C,MAAM,CAAC,GAAG,CAAC,IAAA,8BAAmB,EAAC,QAAQ,CAAC,CAAC,CAAC;IAC1C,MAAM,CAAC,GAAG,CAAC,IAAA,mCAAsB,EAAC,QAAQ,CAAC,CAAC,CAAC;IAC7C,MAAM,CAAC,GAAG,CAAC,+BAAkB,CAAC,CAAC;IAC/B,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AApBW,QAAA,mBAAmB,uBAoB9B"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ErrorRequestHandler, RequestHandler } from 'express';
|
|
2
|
+
import type { LibraryOperation, TelemetryService } from '../../services/TelemetryService';
|
|
3
|
+
/** Requires the coordinator instance's bearer token before processing library requests. */
|
|
4
|
+
export declare const authenticateLibrary: (token: string) => RequestHandler;
|
|
5
|
+
/** Records the explicitly declared operation's final HTTP outcome. */
|
|
6
|
+
export declare const trackLibraryOperation: (telemetry?: TelemetryService) => (operation: LibraryOperation["operation"]) => RequestHandler;
|
|
7
|
+
/** Translates validation and application failures at the API boundary. */
|
|
8
|
+
export declare const handleLibraryError: ErrorRequestHandler;
|
|
9
|
+
//# sourceMappingURL=middleware.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../../src/routes/library/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAMnE,OAAO,KAAK,EACV,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,iCAAiC,CAAC;AAEzC,2FAA2F;AAC3F,eAAO,MAAM,mBAAmB,GAC7B,OAAO,MAAM,KAAG,cAOhB,CAAC;AAEJ,sEAAsE;AACtE,eAAO,MAAM,qBAAqB,GAC/B,YAAY,gBAAgB,MAC5B,WAAW,gBAAgB,CAAC,WAAW,CAAC,KAAG,cAW3C,CAAC;AAqBJ,0EAA0E;AAC1E,eAAO,MAAM,kBAAkB,EAAE,mBAgBhC,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.handleLibraryError = exports.trackLibraryOperation = exports.authenticateLibrary = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const libraryErrors_1 = require("../../services/libraryErrors");
|
|
6
|
+
/** Requires the coordinator instance's bearer token before processing library requests. */
|
|
7
|
+
const authenticateLibrary = (token) => (req, res, next) => {
|
|
8
|
+
if (req.headers.authorization !== `Bearer ${token}`) {
|
|
9
|
+
res.sendStatus(401);
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
next();
|
|
13
|
+
};
|
|
14
|
+
exports.authenticateLibrary = authenticateLibrary;
|
|
15
|
+
/** Records the explicitly declared operation's final HTTP outcome. */
|
|
16
|
+
const trackLibraryOperation = (telemetry) => (operation) => (_req, res, next) => {
|
|
17
|
+
const startedAt = Date.now();
|
|
18
|
+
res.once('finish', () => telemetry?.trackLibraryOperation({
|
|
19
|
+
operation,
|
|
20
|
+
outcome: res.statusCode < 400 ? 'completed' : 'failed',
|
|
21
|
+
durationMs: Date.now() - startedAt,
|
|
22
|
+
}));
|
|
23
|
+
next();
|
|
24
|
+
};
|
|
25
|
+
exports.trackLibraryOperation = trackLibraryOperation;
|
|
26
|
+
/** Maps application failure categories to their HTTP status. */
|
|
27
|
+
const libraryErrorStatus = (code) => {
|
|
28
|
+
switch (code) {
|
|
29
|
+
case 'project_not_found':
|
|
30
|
+
case 'variant_not_found':
|
|
31
|
+
return 404;
|
|
32
|
+
case 'workspace_unavailable':
|
|
33
|
+
case 'folder_picker_busy':
|
|
34
|
+
case 'preview_unavailable':
|
|
35
|
+
return 409;
|
|
36
|
+
case 'folder_picker_unavailable':
|
|
37
|
+
return 503;
|
|
38
|
+
default: {
|
|
39
|
+
const unhandled = code;
|
|
40
|
+
throw new Error(`Unhandled library error: ${unhandled}`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
/** Translates validation and application failures at the API boundary. */
|
|
45
|
+
const handleLibraryError = (error, _req, res, _next) => {
|
|
46
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
47
|
+
if (error instanceof libraryErrors_1.LibraryError) {
|
|
48
|
+
res.status(libraryErrorStatus(error.code)).json({ error: message });
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
if (error instanceof zod_1.z.ZodError) {
|
|
52
|
+
res.status(400).json({ error: message });
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
res.status(500).json({ error: message });
|
|
56
|
+
};
|
|
57
|
+
exports.handleLibraryError = handleLibraryError;
|
|
58
|
+
//# sourceMappingURL=middleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../../src/routes/library/middleware.ts"],"names":[],"mappings":";;;AACA,6BAAwB;AACxB,gEAGsC;AAMtC,2FAA2F;AACpF,MAAM,mBAAmB,GAC9B,CAAC,KAAa,EAAkB,EAAE,CAClC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IACjB,IAAI,GAAG,CAAC,OAAO,CAAC,aAAa,KAAK,UAAU,KAAK,EAAE,EAAE,CAAC;QACpD,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACpB,OAAO;IACT,CAAC;IACD,IAAI,EAAE,CAAC;AACT,CAAC,CAAC;AARS,QAAA,mBAAmB,uBAQ5B;AAEJ,sEAAsE;AAC/D,MAAM,qBAAqB,GAChC,CAAC,SAA4B,EAAE,EAAE,CACjC,CAAC,SAAwC,EAAkB,EAAE,CAC7D,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IAClB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CACtB,SAAS,EAAE,qBAAqB,CAAC;QAC/B,SAAS;QACT,OAAO,EAAE,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ;QACtD,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;KACnC,CAAC,CACH,CAAC;IACF,IAAI,EAAE,CAAC;AACT,CAAC,CAAC;AAbS,QAAA,qBAAqB,yBAa9B;AAEJ,gEAAgE;AAChE,MAAM,kBAAkB,GAAG,CAAC,IAAsB,EAAU,EAAE;IAC5D,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,mBAAmB,CAAC;QACzB,KAAK,mBAAmB;YACtB,OAAO,GAAG,CAAC;QACb,KAAK,uBAAuB,CAAC;QAC7B,KAAK,oBAAoB,CAAC;QAC1B,KAAK,qBAAqB;YACxB,OAAO,GAAG,CAAC;QACb,KAAK,2BAA2B;YAC9B,OAAO,GAAG,CAAC;QACb,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,SAAS,GAAU,IAAI,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,4BAA4B,SAAS,EAAE,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF,0EAA0E;AACnE,MAAM,kBAAkB,GAAwB,CACrD,KAAc,EACd,IAAI,EACJ,GAAG,EACH,KAAK,EACL,EAAE;IACF,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,IAAI,KAAK,YAAY,4BAAY,EAAE,CAAC;QAClC,GAAG,CAAC,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QACpE,OAAO;IACT,CAAC;IACD,IAAI,KAAK,YAAY,OAAC,CAAC,QAAQ,EAAE,CAAC;QAChC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QACzC,OAAO;IACT,CAAC;IACD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;AAC3C,CAAC,CAAC;AAhBW,QAAA,kBAAkB,sBAgB7B"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Router } from 'express';
|
|
2
|
+
import type { LibraryRouteServices } from './types';
|
|
3
|
+
/** Exposes ordered navigation and browser-view acknowledgments. */
|
|
4
|
+
export declare const createNavigationRoutes: ({ library, navigation, track, }: LibraryRouteServices) => Router;
|
|
5
|
+
//# sourceMappingURL=navigation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../../src/routes/library/navigation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAgBpD,mEAAmE;AACnE,eAAO,MAAM,sBAAsB,GAAI,iCAIpC,oBAAoB,KAAG,MAqBzB,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createNavigationRoutes = void 0;
|
|
4
|
+
const express_1 = require("express");
|
|
5
|
+
const zod_1 = require("zod");
|
|
6
|
+
const TargetSchema = zod_1.z
|
|
7
|
+
.object({
|
|
8
|
+
requestId: zod_1.z.string().min(1),
|
|
9
|
+
projectId: zod_1.z.string().optional(),
|
|
10
|
+
sessionId: zod_1.z.string().optional(),
|
|
11
|
+
variantId: zod_1.z.string().optional(),
|
|
12
|
+
})
|
|
13
|
+
.refine((target) => Boolean(target.sessionId) === Boolean(target.variantId) &&
|
|
14
|
+
(!target.sessionId || Boolean(target.projectId)), 'An exact direction needs a project, session, and variant');
|
|
15
|
+
/** Exposes ordered navigation and browser-view acknowledgments. */
|
|
16
|
+
const createNavigationRoutes = ({ library, navigation, track, }) => {
|
|
17
|
+
const router = (0, express_1.Router)();
|
|
18
|
+
router.post('/navigations', track('navigation'), async (req, res) => {
|
|
19
|
+
const request = TargetSchema.parse(req.body);
|
|
20
|
+
await library.assertNavigationTarget(request);
|
|
21
|
+
res.json(await navigation.request(request));
|
|
22
|
+
});
|
|
23
|
+
router.put('/views/:viewId', (req, res) => {
|
|
24
|
+
const body = zod_1.z.object({ isFocused: zod_1.z.boolean() }).parse(req.body);
|
|
25
|
+
navigation.connect({ viewId: req.params.viewId, ...body });
|
|
26
|
+
res.json({ navigations: navigation.pending(req.params.viewId) });
|
|
27
|
+
});
|
|
28
|
+
router.post('/views/:viewId/acknowledgements', (req, res) => {
|
|
29
|
+
const { sequence } = zod_1.z
|
|
30
|
+
.object({ sequence: zod_1.z.number().int().positive() })
|
|
31
|
+
.parse(req.body);
|
|
32
|
+
res.json({
|
|
33
|
+
acknowledged: navigation.acknowledge(req.params.viewId, sequence),
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
return router;
|
|
37
|
+
};
|
|
38
|
+
exports.createNavigationRoutes = createNavigationRoutes;
|
|
39
|
+
//# sourceMappingURL=navigation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../../src/routes/library/navigation.ts"],"names":[],"mappings":";;;AAAA,qCAAiC;AACjC,6BAAwB;AAGxB,MAAM,YAAY,GAAG,OAAC;KACnB,MAAM,CAAC;IACN,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC;KACD,MAAM,CACL,CAAC,MAAM,EAAE,EAAE,CACT,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;IACvD,CAAC,CAAC,MAAM,CAAC,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAClD,0DAA0D,CAC3D,CAAC;AAEJ,mEAAmE;AAC5D,MAAM,sBAAsB,GAAG,CAAC,EACrC,OAAO,EACP,UAAU,EACV,KAAK,GACgB,EAAU,EAAE;IACjC,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;IACxB,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QAClE,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,OAAO,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAC9C,GAAG,CAAC,IAAI,CAAC,MAAM,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACxC,MAAM,IAAI,GAAG,OAAC,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,OAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClE,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;QAC3D,GAAG,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,IAAI,CAAC,iCAAiC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC1D,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAC;aACnB,MAAM,CAAC,EAAE,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;aACjD,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnB,GAAG,CAAC,IAAI,CAAC;YACP,YAAY,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC;SAClE,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAzBW,QAAA,sBAAsB,0BAyBjC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Router } from 'express';
|
|
2
|
+
import type { LibraryRouteServices } from './types';
|
|
3
|
+
/** Exposes project registration, folder selection, history summaries, and runtime activation. */
|
|
4
|
+
export declare const createProjectRoutes: ({ library, runtime, cardPreviews, folderPicker, track, }: LibraryRouteServices) => Router;
|
|
5
|
+
//# sourceMappingURL=projects.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../../src/routes/library/projects.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAGjC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAIpD,iGAAiG;AACjG,eAAO,MAAM,mBAAmB,GAAI,0DAMjC,oBAAoB,KAAG,MA8CzB,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createProjectRoutes = void 0;
|
|
4
|
+
const schemas_1 = require("./schemas");
|
|
5
|
+
const express_1 = require("express");
|
|
6
|
+
const zod_1 = require("zod");
|
|
7
|
+
const ProjectFolderPicker_1 = require("../../services/ProjectFolderPicker");
|
|
8
|
+
const WorkspaceSchema = zod_1.z.object({ projectPath: zod_1.z.string().min(1) });
|
|
9
|
+
/** Exposes project registration, folder selection, history summaries, and runtime activation. */
|
|
10
|
+
const createProjectRoutes = ({ library, runtime, cardPreviews, folderPicker = new ProjectFolderPicker_1.ProjectFolderPicker(), track, }) => {
|
|
11
|
+
const router = (0, express_1.Router)();
|
|
12
|
+
router.get('/', async (_req, res) => res.json(await library.snapshot()));
|
|
13
|
+
router.get('/projects', (_req, res) => res.json({ projects: library.listProjects() }));
|
|
14
|
+
router.get('/projects/:projectId/thumbnail', async (req, res) => {
|
|
15
|
+
const { projectId } = schemas_1.ProjectParamsSchema.parse(req.params);
|
|
16
|
+
library.registry.get(projectId);
|
|
17
|
+
res.setHeader('Cache-Control', 'no-store');
|
|
18
|
+
res.json({ preview: (await cardPreviews?.get(projectId)) ?? null });
|
|
19
|
+
});
|
|
20
|
+
router.post('/folder-selections', track('folder_select'), async (_req, res) => {
|
|
21
|
+
res.json({ projectPath: await folderPicker.pick() });
|
|
22
|
+
});
|
|
23
|
+
router.post('/projects', track('project_open'), async (req, res) => {
|
|
24
|
+
const body = WorkspaceSchema.parse(req.body);
|
|
25
|
+
res.status(201).json(await library.prepare(body.projectPath));
|
|
26
|
+
});
|
|
27
|
+
router.patch('/projects/:projectId/workspace', track('project_open'), async (req, res) => {
|
|
28
|
+
const body = WorkspaceSchema.parse(req.body);
|
|
29
|
+
res.json({
|
|
30
|
+
project: await library.relink({
|
|
31
|
+
projectId: schemas_1.ProjectParamsSchema.parse(req.params).projectId,
|
|
32
|
+
projectPath: body.projectPath,
|
|
33
|
+
}),
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
router.post('/projects/:projectId/runtime', track('workspace_open'), async (req, res) => {
|
|
37
|
+
res.json(await runtime.activate(schemas_1.ProjectParamsSchema.parse(req.params).projectId));
|
|
38
|
+
});
|
|
39
|
+
return router;
|
|
40
|
+
};
|
|
41
|
+
exports.createProjectRoutes = createProjectRoutes;
|
|
42
|
+
//# sourceMappingURL=projects.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../../src/routes/library/projects.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const ProjectParamsSchema: z.ZodObject<{
|
|
3
|
+
projectId: z.ZodString;
|
|
4
|
+
}, "strip", z.ZodTypeAny, {
|
|
5
|
+
projectId: string;
|
|
6
|
+
}, {
|
|
7
|
+
projectId: string;
|
|
8
|
+
}>;
|
|
9
|
+
export declare const VariantParamsSchema: z.ZodObject<{
|
|
10
|
+
projectId: z.ZodString;
|
|
11
|
+
} & {
|
|
12
|
+
sessionId: z.ZodString;
|
|
13
|
+
variantId: z.ZodString;
|
|
14
|
+
}, "strip", z.ZodTypeAny, {
|
|
15
|
+
sessionId: string;
|
|
16
|
+
variantId: string;
|
|
17
|
+
projectId: string;
|
|
18
|
+
}, {
|
|
19
|
+
sessionId: string;
|
|
20
|
+
variantId: string;
|
|
21
|
+
projectId: string;
|
|
22
|
+
}>;
|
|
23
|
+
//# sourceMappingURL=schemas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../src/routes/library/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,mBAAmB;;;;;;EAA6C,CAAC;AAC9E,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;EAG9B,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.VariantParamsSchema = exports.ProjectParamsSchema = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
exports.ProjectParamsSchema = zod_1.z.object({ projectId: zod_1.z.string().min(1) });
|
|
6
|
+
exports.VariantParamsSchema = exports.ProjectParamsSchema.extend({
|
|
7
|
+
sessionId: zod_1.z.string().min(1),
|
|
8
|
+
variantId: zod_1.z.string().min(1),
|
|
9
|
+
});
|
|
10
|
+
//# sourceMappingURL=schemas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../src/routes/library/schemas.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAEX,QAAA,mBAAmB,GAAG,OAAC,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACjE,QAAA,mBAAmB,GAAG,2BAAmB,CAAC,MAAM,CAAC;IAC5D,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC7B,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"staticPreview.d.ts","sourceRoot":"","sources":["../../../src/routes/library/staticPreview.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAIjC,qEAAqE;AACrE,eAAO,MAAM,yBAAyB,GAAI,eAAe,MAAM,KAAG,MA2BjE,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createStaticPreviewRoutes = void 0;
|
|
7
|
+
const express_1 = require("express");
|
|
8
|
+
const promises_1 = __importDefault(require("fs/promises"));
|
|
9
|
+
const path_1 = __importDefault(require("path"));
|
|
10
|
+
/** Serves regular files contained in one immutable snapshot root. */
|
|
11
|
+
const createStaticPreviewRoutes = (canonicalRoot) => {
|
|
12
|
+
const router = (0, express_1.Router)();
|
|
13
|
+
router.get(/.*/, async (req, res) => {
|
|
14
|
+
try {
|
|
15
|
+
const relative = decodeURIComponent(req.path).replace(/^\/+/, '');
|
|
16
|
+
const filename = path_1.default.resolve(canonicalRoot, relative);
|
|
17
|
+
if (!filename.startsWith(canonicalRoot + path_1.default.sep)) {
|
|
18
|
+
res.sendStatus(404);
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
const canonicalFile = await promises_1.default.realpath(filename);
|
|
22
|
+
if (!canonicalFile.startsWith(canonicalRoot + path_1.default.sep) ||
|
|
23
|
+
!(await promises_1.default.stat(canonicalFile)).isFile()) {
|
|
24
|
+
res.sendStatus(404);
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
res.setHeader('X-Content-Type-Options', 'nosniff');
|
|
28
|
+
res
|
|
29
|
+
.type(path_1.default.extname(canonicalFile))
|
|
30
|
+
.send(await promises_1.default.readFile(canonicalFile));
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
res.sendStatus(404);
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
return router;
|
|
37
|
+
};
|
|
38
|
+
exports.createStaticPreviewRoutes = createStaticPreviewRoutes;
|
|
39
|
+
//# sourceMappingURL=staticPreview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"staticPreview.js","sourceRoot":"","sources":["../../../src/routes/library/staticPreview.ts"],"names":[],"mappings":";;;;;;AAAA,qCAAiC;AACjC,2DAA6B;AAC7B,gDAAwB;AAExB,qEAAqE;AAC9D,MAAM,yBAAyB,GAAG,CAAC,aAAqB,EAAU,EAAE;IACzE,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;IACxB,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QAClC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAClE,MAAM,QAAQ,GAAG,cAAI,CAAC,OAAO,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;YACvD,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,GAAG,cAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACnD,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBACpB,OAAO;YACT,CAAC;YACD,MAAM,aAAa,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAClD,IACE,CAAC,aAAa,CAAC,UAAU,CAAC,aAAa,GAAG,cAAI,CAAC,GAAG,CAAC;gBACnD,CAAC,CAAC,MAAM,kBAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,EAAE,EACxC,CAAC;gBACD,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBACpB,OAAO;YACT,CAAC;YACD,GAAG,CAAC,SAAS,CAAC,wBAAwB,EAAE,SAAS,CAAC,CAAC;YACnD,GAAG;iBACA,IAAI,CAAC,cAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;iBACjC,IAAI,CAAC,MAAM,kBAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;QAC5C,CAAC;QAAC,MAAM,CAAC;YACP,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AA3BW,QAAA,yBAAyB,6BA2BpC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { ProjectLibrary } from '../../services/ProjectLibrary';
|
|
2
|
+
import type { ProjectFolderPicker } from '../../services/ProjectFolderPicker';
|
|
3
|
+
import type { HubNavigation } from '../../services/HubNavigation';
|
|
4
|
+
import type { ProjectRuntimeService } from '../../services/ProjectRuntimeService';
|
|
5
|
+
import type { StaticLibraryPreviews } from '../../services/StaticLibraryPreviews';
|
|
6
|
+
import type { TelemetryService } from '../../services/TelemetryService';
|
|
7
|
+
import type { trackLibraryOperation } from './middleware';
|
|
8
|
+
import type { ProjectCardPreviews } from '../../services/ProjectCardPreviews';
|
|
9
|
+
export interface LibraryRouteOptions {
|
|
10
|
+
token: string;
|
|
11
|
+
library: ProjectLibrary;
|
|
12
|
+
navigation: HubNavigation;
|
|
13
|
+
previews: StaticLibraryPreviews;
|
|
14
|
+
runtime: ProjectRuntimeService;
|
|
15
|
+
cardPreviews?: ProjectCardPreviews;
|
|
16
|
+
folderPicker?: ProjectFolderPicker;
|
|
17
|
+
telemetry?: TelemetryService;
|
|
18
|
+
}
|
|
19
|
+
export interface LibraryRouteServices extends LibraryRouteOptions {
|
|
20
|
+
track: ReturnType<typeof trackLibraryOperation>;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/routes/library/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAClF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAClF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAE9E,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,cAAc,CAAC;IACxB,UAAU,EAAE,aAAa,CAAC;IAC1B,QAAQ,EAAE,qBAAqB,CAAC;IAChC,OAAO,EAAE,qBAAqB,CAAC;IAC/B,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,SAAS,CAAC,EAAE,gBAAgB,CAAC;CAC9B;AACD,MAAM,WAAW,oBAAqB,SAAQ,mBAAmB;IAC/D,KAAK,EAAE,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC;CACjD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/routes/library/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Router } from 'express';
|
|
2
|
+
import type { LibraryRouteServices } from './types';
|
|
3
|
+
/** Exposes project-owned saved directions and their metadata mutations. */
|
|
4
|
+
export declare const createVariantRoutes: ({ library, previews, track, }: LibraryRouteServices) => Router;
|
|
5
|
+
//# sourceMappingURL=variants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"variants.d.ts","sourceRoot":"","sources":["../../../src/routes/library/variants.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAOpD,2EAA2E;AAC3E,eAAO,MAAM,mBAAmB,GAAI,+BAIjC,oBAAoB,KAAG,MA+BzB,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createVariantRoutes = void 0;
|
|
4
|
+
const schemas_1 = require("./schemas");
|
|
5
|
+
const express_1 = require("express");
|
|
6
|
+
const zod_1 = require("zod");
|
|
7
|
+
const VariantUpdateSchema = zod_1.z.object({
|
|
8
|
+
label: zod_1.z.string().trim().min(1).max(200).optional(),
|
|
9
|
+
status: zod_1.z.literal('removed').optional(),
|
|
10
|
+
});
|
|
11
|
+
/** Exposes project-owned saved directions and their metadata mutations. */
|
|
12
|
+
const createVariantRoutes = ({ library, previews, track, }) => {
|
|
13
|
+
const router = (0, express_1.Router)();
|
|
14
|
+
router.get('/projects/:projectId/variants', async (req, res) => {
|
|
15
|
+
res.json({
|
|
16
|
+
variants: await library.listVariants(schemas_1.ProjectParamsSchema.parse(req.params).projectId),
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
router.post('/projects/:projectId/variants/:sessionId/:variantId/preview', track('preview_open'), async (req, res) => {
|
|
20
|
+
res.json({
|
|
21
|
+
url: await previews.url(schemas_1.VariantParamsSchema.parse(req.params)),
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
router.patch('/projects/:projectId/variants/:sessionId/:variantId', track('direction_update'), async (req, res) => {
|
|
25
|
+
const update = VariantUpdateSchema.parse(req.body);
|
|
26
|
+
await library.updateVariant({
|
|
27
|
+
...schemas_1.VariantParamsSchema.parse(req.params),
|
|
28
|
+
...update,
|
|
29
|
+
});
|
|
30
|
+
res.json({ saved: true });
|
|
31
|
+
});
|
|
32
|
+
return router;
|
|
33
|
+
};
|
|
34
|
+
exports.createVariantRoutes = createVariantRoutes;
|
|
35
|
+
//# sourceMappingURL=variants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"variants.js","sourceRoot":"","sources":["../../../src/routes/library/variants.ts"],"names":[],"mappings":";;;AAAA,uCAAqE;AACrE,qCAAiC;AACjC,6BAAwB;AAGxB,MAAM,mBAAmB,GAAG,OAAC,CAAC,MAAM,CAAC;IACnC,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IACnD,MAAM,EAAE,OAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE;CACxC,CAAC,CAAC;AAEH,2EAA2E;AACpE,MAAM,mBAAmB,GAAG,CAAC,EAClC,OAAO,EACP,QAAQ,EACR,KAAK,GACgB,EAAU,EAAE;IACjC,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;IACxB,MAAM,CAAC,GAAG,CAAC,+BAA+B,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QAC7D,GAAG,CAAC,IAAI,CAAC;YACP,QAAQ,EAAE,MAAM,OAAO,CAAC,YAAY,CAClC,6BAAmB,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,SAAS,CAChD;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,IAAI,CACT,6DAA6D,EAC7D,KAAK,CAAC,cAAc,CAAC,EACrB,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACjB,GAAG,CAAC,IAAI,CAAC;YACP,GAAG,EAAE,MAAM,QAAQ,CAAC,GAAG,CAAC,6BAAmB,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;SAC/D,CAAC,CAAC;IACL,CAAC,CACF,CAAC;IACF,MAAM,CAAC,KAAK,CACV,qDAAqD,EACrD,KAAK,CAAC,kBAAkB,CAAC,EACzB,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACjB,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,OAAO,CAAC,aAAa,CAAC;YAC1B,GAAG,6BAAmB,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;YACxC,GAAG,MAAM;SACV,CAAC,CAAC;QACH,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5B,CAAC,CACF,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAnCW,QAAA,mBAAmB,uBAmC9B"}
|
package/dist/server.d.ts
CHANGED
|
@@ -98,6 +98,8 @@ export type ServerOptions = Omit<CLIOptions, 'help' | 'version' | 'debug'> & {
|
|
|
98
98
|
isGitEnabled?: boolean;
|
|
99
99
|
/** Runs before server-owned services shut down. */
|
|
100
100
|
beforeShutdown?: () => Promise<void>;
|
|
101
|
+
/** Resolves the current trusted shared-library ancestor for project previews. */
|
|
102
|
+
resolveLibraryOrigin?: () => string | undefined;
|
|
101
103
|
};
|
|
102
104
|
export type ServerHandle = {
|
|
103
105
|
close: () => Promise<void>;
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,UAAU,EAAmC,MAAM,GAAG,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAQ/D,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAO/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAavE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAoBlE,eAAO,MAAM,oCAAoC,QAAS,CAAC;AAC3D,eAAO,MAAM,0BAA0B,UAItC,CAAC;AAqBF,eAAO,MAAM,YAAY,QAAkB,CAAC;AAE5C,KAAK,gBAAgB,GAAG;IACtB,cAAc,EAAE,UAAU,GAAG,UAAU,GAAG,IAAI,CAAC;IAC/C,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B,CAAC;AAiBF,eAAO,MAAM,sBAAsB,GACjC,MAAM,MAAM,EACZ,WAAW,gBAAgB,KAC1B,MAMF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,QAAO,MACmC,CAAC;AAE5E,KAAK,4BAA4B,GAAG;IAClC,EAAE,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,KAAK,OAAO,CAAC;CACvD,CAAC;AAEF,KAAK,6BAA6B,GAAG;IACnC,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,OAAO,CAAC;IAClD,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC;IAC7B,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;CACnC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,+BAA+B,GAC1C,KAAK,4BAA4B,EACjC,KAAK,6BAA6B,KACjC,IAgBF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,GACjC,iBAAiB,UAAU,GAAG,UAAU,GAAG,IAAI,KAC9C,MAAM,GAAG,SAC4D,CAAC;AAEzE,eAAO,MAAM,4BAA4B,GAAI,MAAM,MAAM,KAAG,MACZ,CAAC;AAEjD,eAAO,MAAM,iCAAiC,GAAI,MAAM,MAAM,KAAG,MAChB,CAAC;AAElD,eAAO,MAAM,qBAAqB,GAChC,UAAU,MAAM,EAChB,iBAAiB,UAAU,GAAG,UAAU,GAAG,IAAI,KAC9C,OACuE,CAAC;AAE3E,eAAO,MAAM,wBAAwB,GAAI,aAAa,MAAM,KAAG,OAGtB,CAAC;AAE1C,KAAK,oBAAoB,GAAG;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACpC,cAAc,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,IAAI,CAAC;CACjD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,wBAAwB,GAAI,kFAMtC,oBAAoB,KAAG,OAczB,CAAC;AAkDF,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,GAAG;IAC3E,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrC,qGAAqG;IACrG,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,mGAAmG;IACnG,yBAAyB,CAAC,EAAE,yBAAyB,CAAC;IACtD,wEAAwE;IACxE,iBAAiB,CAAC,EAAE,IAAI,CACtB,iBAAiB,EACjB,sBAAsB,GAAG,0BAA0B,GAAG,kBAAkB,CACzE,CAAC;IACF,qGAAqG;IACrG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iFAAiF;IACjF,cAAc,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;IACzC,wHAAwH;IACxH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gFAAgF;IAChF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0DAA0D;IAC1D,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,mDAAmD;IACnD,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,iFAAiF;IACjF,oBAAoB,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAU,SAAS;IACpD,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,SAAS,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;IAC/C,YAAY,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;KAAE,CAAC;CAClD,KAAG,OAAO,CAAC,IAAI,CAIf,CAAC;AAEF,eAAO,MAAM,WAAW,GACtB,SAAS,aAAa,KACrB,OAAO,CAAC,YAAY,CAstBtB,CAAC"}
|
package/dist/server.js
CHANGED
|
@@ -37,6 +37,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
exports.startServer = exports.runServerShutdownTasks = exports.isRivetCorsOriginAllowed = exports.isRivetUiStaticAssetPath = exports.isEmbeddedAgentUiHost = exports.resolveEmbeddedAgentPreviewOrigin = exports.resolveEmbeddedAgentUiOrigin = exports.resolveRivetListenHost = exports.sendInactiveVariantsEventStream = exports.readRivetUiIndexHtml = exports.injectRivetUiBootstrap = exports.DIST_UI_PATH = exports.RIVET_CORS_ALLOWED_HEADERS = exports.INACTIVE_VARIANTS_EVENT_HEARTBEAT_MS = void 0;
|
|
40
|
+
const account_1 = require("./routes/account");
|
|
41
|
+
const installationChannel_1 = require("./install/installationChannel");
|
|
40
42
|
const Sentry = __importStar(require("@sentry/node"));
|
|
41
43
|
const express_1 = __importDefault(require("express"));
|
|
42
44
|
const cors_1 = __importDefault(require("cors"));
|
|
@@ -249,7 +251,7 @@ const startServer = async (options) => {
|
|
|
249
251
|
const variantsBridge = options.variantsRuntime?.bridge ?? sessionBridge;
|
|
250
252
|
const variantRunService = options.variantsRuntime?.runService ?? options.variantRunService;
|
|
251
253
|
const variantHistory = variantsOrchestrator
|
|
252
|
-
? new VariantHistoryService_1.VariantHistoryService()
|
|
254
|
+
? (options.variantsRuntime?.history ?? new VariantHistoryService_1.VariantHistoryService())
|
|
253
255
|
: null;
|
|
254
256
|
const historyReplay = variantsOrchestrator && variantHistory
|
|
255
257
|
? new HistoryReplayService_1.HistoryReplayService({
|
|
@@ -511,8 +513,20 @@ const startServer = async (options) => {
|
|
|
511
513
|
}
|
|
512
514
|
// Health check endpoint
|
|
513
515
|
app.get('/api/health', (req, res) => {
|
|
516
|
+
let originalPreviewPath = null;
|
|
517
|
+
if (staticService) {
|
|
518
|
+
const entryPath = path_1.default.join(staticService.getBasePath(), staticService.getEntryFileName());
|
|
519
|
+
if (fs_1.default.existsSync(entryPath))
|
|
520
|
+
originalPreviewPath = '/static/';
|
|
521
|
+
}
|
|
522
|
+
else if (hasUserDevServer) {
|
|
523
|
+
originalPreviewPath = '/__rivet/preview/base/';
|
|
524
|
+
}
|
|
514
525
|
res.json({
|
|
515
526
|
status: 'healthy',
|
|
527
|
+
projectPath,
|
|
528
|
+
pid: process.pid,
|
|
529
|
+
channel: (0, installationChannel_1.installationChannel)(),
|
|
516
530
|
rivetVersion: telemetry_1.RIVET_VERSION,
|
|
517
531
|
timestamp: new Date().toISOString(),
|
|
518
532
|
framework,
|
|
@@ -520,6 +534,7 @@ const startServer = async (options) => {
|
|
|
520
534
|
rivet: listenPort,
|
|
521
535
|
userDevServer: userPortWithFallback,
|
|
522
536
|
},
|
|
537
|
+
originalPreviewPath,
|
|
523
538
|
});
|
|
524
539
|
});
|
|
525
540
|
app.get('/api/feature-flags', async (req, res) => {
|
|
@@ -554,35 +569,7 @@ const startServer = async (options) => {
|
|
|
554
569
|
projectPath: livePath,
|
|
555
570
|
});
|
|
556
571
|
});
|
|
557
|
-
|
|
558
|
-
app.post('/api/auth/store', (req, res) => {
|
|
559
|
-
const { email, token, refreshToken, userId } = req.body ?? {};
|
|
560
|
-
if (!email || !token) {
|
|
561
|
-
return res.status(400).json({ error: 'Missing email or token' });
|
|
562
|
-
}
|
|
563
|
-
try {
|
|
564
|
-
(0, ConfigManager_1.getConfigManager)().setAuth(token, email, refreshToken, userId);
|
|
565
|
-
}
|
|
566
|
-
catch {
|
|
567
|
-
return res
|
|
568
|
-
.status(500)
|
|
569
|
-
.json({ error: 'Failed to store auth credentials' });
|
|
570
|
-
}
|
|
571
|
-
telemetry?.identifyUser();
|
|
572
|
-
log.info(`Stored auth for ${email} via browser OAuth`);
|
|
573
|
-
res.json({ success: true });
|
|
574
|
-
});
|
|
575
|
-
app.post('/api/auth/logout', (_req, res) => {
|
|
576
|
-
try {
|
|
577
|
-
(0, ConfigManager_1.getConfigManager)().clearAuth();
|
|
578
|
-
}
|
|
579
|
-
catch (error) {
|
|
580
|
-
log.warn('Logout failed', error);
|
|
581
|
-
return res.status(500).json({ error: 'Failed to log out' });
|
|
582
|
-
}
|
|
583
|
-
log.info('Cleared auth via logout');
|
|
584
|
-
res.json({ success: true });
|
|
585
|
-
});
|
|
572
|
+
app.use('/api', (0, account_1.createAccountRouter)(telemetry));
|
|
586
573
|
// MCP bridge routes (only when session bridge is provided)
|
|
587
574
|
if (sessionBridge) {
|
|
588
575
|
app.use('/api/mcp', (0, mcp_1.createMCPRouter)(sessionBridge, options.telemetry, variantsOrchestrator, {
|
|
@@ -606,6 +593,7 @@ const startServer = async (options) => {
|
|
|
606
593
|
if (variantsOrchestrator) {
|
|
607
594
|
app.use('/api', (0, agentVariants_1.createAgentVariantsRouter)(variantsOrchestrator, variantsBridge, telemetry, variantHistory ?? undefined, undefined, variantRunService, historyReplay ?? undefined, {
|
|
608
595
|
isEnabled: agentApplyMode === 'embedded',
|
|
596
|
+
resolveLibraryOrigin: options.resolveLibraryOrigin,
|
|
609
597
|
expectedParentOrigin: agentApplyMode === 'embedded'
|
|
610
598
|
? (0, exports.resolveEmbeddedAgentUiOrigin)(listenPort)
|
|
611
599
|
: undefined,
|