@prostgles/prostgles 2.3.6-dev.1787160729 → 2.3.6-dev.1787224693
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/dist/server/package.json +1 -1
- package/dist/server/src/ConnectionManager/applyStartupSchemaConfig.d.ts +7 -1
- package/dist/server/src/ConnectionManager/applyStartupSchemaConfig.d.ts.map +1 -1
- package/dist/server/src/ConnectionManager/applyStartupSchemaConfig.js +17 -7
- package/dist/server/src/ConnectionManager/applyStartupSchemaConfig.js.map +1 -1
- package/dist/server/src/ServiceManager/ServiceManager.d.ts +7 -4
- package/dist/server/src/ServiceManager/ServiceManager.d.ts.map +1 -1
- package/dist/server/src/ServiceManager/ServiceManager.js +36 -12
- package/dist/server/src/ServiceManager/ServiceManager.js.map +1 -1
- package/dist/server/src/ServiceManager/ServiceManager.spec.js +34 -2
- package/dist/server/src/ServiceManager/ServiceManager.spec.js.map +1 -1
- package/dist/server/src/ServiceManager/ServiceManagerTypes.d.ts +1 -1
- package/dist/server/src/ServiceManager/buildService.js +1 -1
- package/dist/server/src/ServiceManager/buildService.js.map +1 -1
- package/dist/server/src/ServiceManager/enableService.d.ts +3 -2
- package/dist/server/src/ServiceManager/enableService.d.ts.map +1 -1
- package/dist/server/src/ServiceManager/enableService.js.map +1 -1
- package/dist/server/src/ServiceManager/getServiceEndpoints.d.ts.map +1 -1
- package/dist/server/src/ServiceManager/getServiceEndpoints.js +9 -1
- package/dist/server/src/ServiceManager/getServiceEndpoints.js.map +1 -1
- package/dist/server/src/ServiceManager/initialiseServices.d.ts.map +1 -1
- package/dist/server/src/ServiceManager/initialiseServices.js +3 -2
- package/dist/server/src/ServiceManager/initialiseServices.js.map +1 -1
- package/dist/server/src/cli/cliTemplateFiles.js +34 -6
- package/dist/server/src/cli/cliTemplateFiles.js.map +1 -1
- package/dist/server/src/cli/getCliAgentsFile.d.ts.map +1 -1
- package/dist/server/src/cli/getCliAgentsFile.js +8 -0
- package/dist/server/src/cli/getCliAgentsFile.js.map +1 -1
- package/dist/server/src/init/prostglesOnReady.d.ts +2 -677
- package/dist/server/src/init/prostglesOnReady.d.ts.map +1 -1
- package/dist/server/src/init/prostglesOnReady.js +13 -4
- package/dist/server/src/init/prostglesOnReady.js.map +1 -1
- package/dist/server/src/schemaConfig.d.ts +4 -0
- package/dist/server/src/schemaConfig.d.ts.map +1 -1
- package/dist/server/src/schemaConfig.js.map +1 -1
- package/dist/server/src/serverFunctions/adminServerFunctions/stateServerAdminFunctions.d.ts.map +1 -1
- package/dist/server/src/serverFunctions/adminServerFunctions/stateServerAdminFunctions.js +1 -2
- package/dist/server/src/serverFunctions/adminServerFunctions/stateServerAdminFunctions.js.map +1 -1
- package/dist/server/src/services.d.ts +2 -1
- package/dist/server/src/services.d.ts.map +1 -1
- package/dist/server/src/services.js +3 -1
- package/dist/server/src/services.js.map +1 -1
- package/package.json +1 -1
package/dist/server/package.json
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
import type { DBS } from "..";
|
|
2
2
|
import type { DB } from "prostgles-server/dist/Prostgles";
|
|
3
|
+
export declare const getStartupSchemaConfig: () => {
|
|
4
|
+
configPath: string;
|
|
5
|
+
databaseUrl: string;
|
|
6
|
+
schemaConfig: import("../schemaConfig").SchemaConfig;
|
|
7
|
+
} | undefined;
|
|
3
8
|
/** Apply the config selected by the CLI after the state database is ready. */
|
|
4
|
-
export declare const applyStartupSchemaConfig: ({ dbs, db, }: {
|
|
9
|
+
export declare const applyStartupSchemaConfig: ({ dbs, db, startupSchemaConfig, }: {
|
|
5
10
|
dbs: DBS;
|
|
6
11
|
db: DB;
|
|
12
|
+
startupSchemaConfig: ReturnType<typeof getStartupSchemaConfig>;
|
|
7
13
|
}) => Promise<void>;
|
|
8
14
|
//# sourceMappingURL=applyStartupSchemaConfig.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"applyStartupSchemaConfig.d.ts","sourceRoot":"","sources":["../../../../src/ConnectionManager/applyStartupSchemaConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,IAAI,CAAC;AAM9B,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,iCAAiC,CAAC;AAE1D,8EAA8E;AAC9E,eAAO,MAAM,wBAAwB,GAAU,
|
|
1
|
+
{"version":3,"file":"applyStartupSchemaConfig.d.ts","sourceRoot":"","sources":["../../../../src/ConnectionManager/applyStartupSchemaConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,IAAI,CAAC;AAM9B,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,iCAAiC,CAAC;AAE1D,eAAO,MAAM,sBAAsB;;;;aA2BlC,CAAC;AAEF,8EAA8E;AAC9E,eAAO,MAAM,wBAAwB,GAAU,mCAI5C;IACD,GAAG,EAAE,GAAG,CAAC;IACT,EAAE,EAAE,EAAE,CAAC;IACP,mBAAmB,EAAE,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC;CAChE,kBA8BA,CAAC"}
|
|
@@ -1,21 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.applyStartupSchemaConfig = void 0;
|
|
3
|
+
exports.applyStartupSchemaConfig = exports.getStartupSchemaConfig = void 0;
|
|
4
4
|
const __1 = require("..");
|
|
5
5
|
const upsertConnection_1 = require("../upsertConnection");
|
|
6
6
|
const getSchemaConfig_1 = require("./getSchemaConfig");
|
|
7
7
|
const syncSchemaConfig_1 = require("./syncSchemaConfig");
|
|
8
|
-
|
|
9
|
-
const applyStartupSchemaConfig = async ({ dbs, db, }) => {
|
|
8
|
+
const getStartupSchemaConfig = () => {
|
|
10
9
|
const configPath = process.env.PROSTGLES_UI_CONFIG;
|
|
11
10
|
if (!configPath)
|
|
12
11
|
return;
|
|
13
|
-
const
|
|
12
|
+
const loadedSchemaConfig = (0, getSchemaConfig_1.getSchemaConfig)({
|
|
14
13
|
configPath,
|
|
15
14
|
type: "cli",
|
|
16
15
|
lastSynced: new Date().toISOString(),
|
|
17
|
-
};
|
|
18
|
-
const loadedSchemaConfig = (0, getSchemaConfig_1.getSchemaConfig)(config_sync);
|
|
16
|
+
});
|
|
19
17
|
const schemaConfig = loadedSchemaConfig.config;
|
|
20
18
|
if (!schemaConfig.id) {
|
|
21
19
|
throw new Error("The config must export an `id` when started through the CLI.");
|
|
@@ -24,6 +22,18 @@ const applyStartupSchemaConfig = async ({ dbs, db, }) => {
|
|
|
24
22
|
if (!databaseUrl) {
|
|
25
23
|
throw new Error("PROSTGLES_DATABASE_URL is required when started through the CLI.");
|
|
26
24
|
}
|
|
25
|
+
return {
|
|
26
|
+
configPath: loadedSchemaConfig.configPath,
|
|
27
|
+
databaseUrl,
|
|
28
|
+
schemaConfig,
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
exports.getStartupSchemaConfig = getStartupSchemaConfig;
|
|
32
|
+
/** Apply the config selected by the CLI after the state database is ready. */
|
|
33
|
+
const applyStartupSchemaConfig = async ({ dbs, db, startupSchemaConfig, }) => {
|
|
34
|
+
if (!startupSchemaConfig)
|
|
35
|
+
return;
|
|
36
|
+
const { configPath, databaseUrl, schemaConfig } = startupSchemaConfig;
|
|
27
37
|
const configuredConnection = {
|
|
28
38
|
...schemaConfig.connection,
|
|
29
39
|
type: "Connection URI",
|
|
@@ -40,7 +50,7 @@ const applyStartupSchemaConfig = async ({ dbs, db, }) => {
|
|
|
40
50
|
await (0, syncSchemaConfig_1.syncSchemaConfig)({
|
|
41
51
|
dbs,
|
|
42
52
|
connectionId: connection.id,
|
|
43
|
-
configPath
|
|
53
|
+
configPath,
|
|
44
54
|
type: "cli",
|
|
45
55
|
});
|
|
46
56
|
await __1.connectionManager.startConnection(connection.id, dbs, db);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"applyStartupSchemaConfig.js","sourceRoot":"","sources":["../../../../src/ConnectionManager/applyStartupSchemaConfig.ts"],"names":[],"mappings":";;;AACA,0BAAuC;AAEvC,0DAAuD;AACvD,uDAAoD;AACpD,yDAAsD;
|
|
1
|
+
{"version":3,"file":"applyStartupSchemaConfig.js","sourceRoot":"","sources":["../../../../src/ConnectionManager/applyStartupSchemaConfig.ts"],"names":[],"mappings":";;;AACA,0BAAuC;AAEvC,0DAAuD;AACvD,uDAAoD;AACpD,yDAAsD;AAG/C,MAAM,sBAAsB,GAAG,GAAG,EAAE;IACzC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;IACnD,IAAI,CAAC,UAAU;QAAE,OAAO;IAExB,MAAM,kBAAkB,GAAG,IAAA,iCAAe,EAAC;QACzC,UAAU;QACV,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACrC,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,kBAAkB,CAAC,MAAM,CAAC;IAC/C,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CACb,8DAA8D,CAC/D,CAAC;IACJ,CAAC;IACD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC;IACvD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACb,kEAAkE,CACnE,CAAC;IACJ,CAAC;IAED,OAAO;QACL,UAAU,EAAE,kBAAkB,CAAC,UAAU;QACzC,WAAW;QACX,YAAY;KACb,CAAC;AACJ,CAAC,CAAC;AA3BW,QAAA,sBAAsB,0BA2BjC;AAEF,8EAA8E;AACvE,MAAM,wBAAwB,GAAG,KAAK,EAAE,EAC7C,GAAG,EACH,EAAE,EACF,mBAAmB,GAKpB,EAAE,EAAE;IACH,IAAI,CAAC,mBAAmB;QAAE,OAAO;IACjC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,mBAAmB,CAAC;IACtE,MAAM,oBAAoB,GAAG;QAC3B,GAAG,YAAY,CAAC,UAAU;QAC1B,IAAI,EAAE,gBAAyB;QAC/B,OAAO,EAAE,WAAW;KACrB,CAAC;IAEF,MAAM,kBAAkB,GAAG,MAAM,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC;QACvD,IAAI,EAAE,YAAY,CAAC,EAAE;KACtB,CAAC,CAAC;IACH,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,IAAA,mCAAgB,EAC3C;QACE,GAAG,oBAAoB;QACvB,EAAE,EAAE,kBAAkB,EAAE,EAAE;QAC1B,IAAI,EAAE,YAAY,CAAC,EAAE;KACF,EACrB,IAAI,EACJ,GAAG,EACH,CAAC,GAAG,CAAC,CACN,CAAC;IAEF,MAAM,IAAA,mCAAgB,EAAC;QACrB,GAAG;QACH,YAAY,EAAE,UAAU,CAAC,EAAE;QAC3B,UAAU;QACV,IAAI,EAAE,KAAK;KACZ,CAAC,CAAC;IACH,MAAM,qBAAiB,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;AAClE,CAAC,CAAC;AAtCW,QAAA,wBAAwB,4BAsCnC"}
|
|
@@ -3,16 +3,19 @@ import type { DBS } from "..";
|
|
|
3
3
|
import { ServiceInstance, type ProstglesService, type RunningServiceInstance, type ServiceRegistry } from "./ServiceManagerTypes";
|
|
4
4
|
import type { ExtractBy } from "../../../common/utils";
|
|
5
5
|
export type StringKeyof<T> = Extract<keyof T, string>;
|
|
6
|
-
export type
|
|
6
|
+
export type ServiceManagerConfig<Services extends ServiceRegistry> = {
|
|
7
7
|
services: Services;
|
|
8
8
|
serviceRoot: string;
|
|
9
|
-
dbs?: DBS;
|
|
10
9
|
};
|
|
11
10
|
export declare class ServiceManager<Services extends ServiceRegistry = Record<string, ProstglesService>> {
|
|
12
11
|
readonly services: Services;
|
|
13
|
-
readonly
|
|
12
|
+
private readonly serviceRoots;
|
|
14
13
|
dbs: DBS | undefined;
|
|
15
|
-
constructor(
|
|
14
|
+
private constructor();
|
|
15
|
+
static create<Services extends ServiceRegistry>(config: ServiceManagerConfig<Services>, dbs: DBS | undefined): Promise<ServiceManager<Services>>;
|
|
16
|
+
private registerServices;
|
|
17
|
+
addServices: <AdditionalServices extends ServiceRegistry>({ services, serviceRoot, }: ServiceManagerConfig<AdditionalServices>) => Promise<ServiceManager<Services & AdditionalServices>>;
|
|
18
|
+
getServiceRoot: (serviceName: string) => string;
|
|
16
19
|
serviceLogUpdateQueue: Map<string, Promise<void>>;
|
|
17
20
|
onServiceLog: (serviceName: StringKeyof<Services>, logItems: ProcessLog[]) => void;
|
|
18
21
|
activeServices: Map<string, ServiceInstance>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServiceManager.d.ts","sourceRoot":"","sources":["../../../../src/ServiceManager/ServiceManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,gDAAgD,CAAC;AACjF,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,IAAI,CAAC;AAI9B,OAAO,EAEL,eAAe,EACf,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,eAAe,EACrB,MAAM,uBAAuB,CAAC;AAK/B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;AAEtD,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"ServiceManager.d.ts","sourceRoot":"","sources":["../../../../src/ServiceManager/ServiceManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,gDAAgD,CAAC;AACjF,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,IAAI,CAAC;AAI9B,OAAO,EAEL,eAAe,EACf,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,eAAe,EACrB,MAAM,uBAAuB,CAAC;AAK/B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;AAEtD,MAAM,MAAM,oBAAoB,CAAC,QAAQ,SAAS,eAAe,IAAI;IACnE,QAAQ,EAAE,QAAQ,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,qBAAa,cAAc,CACzB,QAAQ,SAAS,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAEnE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA6B;IAC1D,GAAG,EAAE,GAAG,GAAG,SAAS,CAAC;IAErB,OAAO;WAQM,MAAM,CAAC,QAAQ,SAAS,eAAe,EAClD,MAAM,EAAE,oBAAoB,CAAC,QAAQ,CAAC,EACtC,GAAG,EAAE,GAAG,GAAG,SAAS;YAOR,gBAAgB;IA2B9B,WAAW,GAAU,kBAAkB,SAAS,eAAe,EAAE,4BAG9D,oBAAoB,CAAC,kBAAkB,CAAC,4DAMzC;IAEF,cAAc,GAAI,aAAa,MAAM,YAMnC;IAEF,qBAAqB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAa;IAC9D,YAAY,GACV,aAAa,WAAW,CAAC,QAAQ,CAAC,EAClC,UAAU,UAAU,EAAE,UAiDtB;IACF,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAa;IACzD,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAa;IAE3E,gBAAgB,CAAC,MAAM,SAAS,eAAe,CAAC,QAAQ,CAAC,EACvD,WAAW,EAAE,WAAW,CAAC,QAAQ,CAAC,EAClC,cAAc,EAAE,MAAM,GAQG,OAAO,CAAC,eAAe,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAGvE,UAAU,CACR,WAAW,SAAS,WAAW,CAAC,QAAQ,CAAC,EACzC,gBAAgB,SAAS,QAAQ,EAEjC,WAAW,EAAE,WAAW,GACvB,eAAe,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,GAAG,SAAS;IAOvD,qBAAqB,CACzB,WAAW,SAAS,WAAW,CAAC,QAAQ,CAAC,EACzC,gBAAgB,SAAS,QAAQ,EAEjC,WAAW,EAAE,WAAW,EACxB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,IAAI,GACpC,OAAO,CACR,SAAS,CACP,eAAe,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,EAC9C,QAAQ,EACR,SAAS,CACV,CACF;IAqBD,YAAY,uIAA2B;IAEvC,YAAY,oIAA2B;IAEvC,aAAa,mHAA4B;IAEzC,WAAW,gCAA0B;IAErC,OAAO,aAOL;CACH"}
|
|
@@ -11,22 +11,46 @@ const utils_1 = require("../init/utils");
|
|
|
11
11
|
const withRetries_1 = require("./withRetries");
|
|
12
12
|
class ServiceManager {
|
|
13
13
|
services;
|
|
14
|
-
|
|
14
|
+
serviceRoots = new Map();
|
|
15
15
|
dbs;
|
|
16
|
-
constructor(
|
|
17
|
-
|
|
18
|
-
const clashingServices = Object.keys(services).filter((serviceName) => Object.keys(ServiceManagerTypes_1.prostglesServices).includes(serviceName));
|
|
19
|
-
if (clashingServices.length > 0) {
|
|
20
|
-
throw new Error(`ServiceManager: Clashing service names detected: ${clashingServices.join(", ")}. Please rename your services to avoid conflicts with built-in services.`);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
this.services = services;
|
|
24
|
-
this.serviceRoot = serviceRoot;
|
|
16
|
+
constructor(_config, dbs) {
|
|
17
|
+
this.services = {};
|
|
25
18
|
this.dbs = dbs;
|
|
26
|
-
|
|
27
|
-
|
|
19
|
+
}
|
|
20
|
+
static async create(config, dbs) {
|
|
21
|
+
const instance = new ServiceManager(config, dbs);
|
|
22
|
+
await instance.registerServices(config, true);
|
|
23
|
+
return instance;
|
|
24
|
+
}
|
|
25
|
+
async registerServices({ services, serviceRoot }, allowBuiltInServices = false) {
|
|
26
|
+
const clashingServices = Object.keys(services).filter((serviceName) => Object.hasOwn(this.services, serviceName) ||
|
|
27
|
+
(!allowBuiltInServices &&
|
|
28
|
+
Object.hasOwn(ServiceManagerTypes_1.prostglesServices, serviceName)));
|
|
29
|
+
if (clashingServices.length) {
|
|
30
|
+
throw new Error(`ServiceManager: Clashing service names detected: ${clashingServices.join(", ")}. Please rename your services to avoid conflicts with registered or built-in services.`);
|
|
31
|
+
}
|
|
32
|
+
Object.assign(this.services, services);
|
|
33
|
+
Object.keys(services).forEach((serviceName) => {
|
|
34
|
+
this.serviceRoots.set(serviceName, serviceRoot);
|
|
35
|
+
});
|
|
36
|
+
if (this.dbs) {
|
|
37
|
+
await (0, initialiseServices_1.initialiseServices)(this, this.dbs);
|
|
28
38
|
}
|
|
29
39
|
}
|
|
40
|
+
addServices = async ({ services, serviceRoot, }) => {
|
|
41
|
+
await this.registerServices({
|
|
42
|
+
services,
|
|
43
|
+
serviceRoot,
|
|
44
|
+
});
|
|
45
|
+
return this;
|
|
46
|
+
};
|
|
47
|
+
getServiceRoot = (serviceName) => {
|
|
48
|
+
const serviceRoot = this.serviceRoots.get(serviceName);
|
|
49
|
+
if (serviceRoot === undefined) {
|
|
50
|
+
throw new Error(`Service ${serviceName} has no registered root`);
|
|
51
|
+
}
|
|
52
|
+
return serviceRoot;
|
|
53
|
+
};
|
|
30
54
|
serviceLogUpdateQueue = new Map();
|
|
31
55
|
onServiceLog = (serviceName, logItems) => {
|
|
32
56
|
const prevQueue = this.serviceLogUpdateQueue.get(serviceName) ?? Promise.resolve();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServiceManager.js","sourceRoot":"","sources":["../../../../src/ServiceManager/ServiceManager.ts"],"names":[],"mappings":";;;AAEA,iDAA8C;AAC9C,mDAAgD;AAChD,6DAA0D;AAC1D,+DAM+B;AAC/B,iDAA8C;AAC9C,+CAA4C;AAC5C,2CAA4C;AAC5C,+CAA4C;
|
|
1
|
+
{"version":3,"file":"ServiceManager.js","sourceRoot":"","sources":["../../../../src/ServiceManager/ServiceManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,15 +7,47 @@ const ServiceManager_1 = require("./ServiceManager");
|
|
|
7
7
|
const ServiceManagerTypes_1 = require("./ServiceManagerTypes");
|
|
8
8
|
exports.IS_GITHUB_WORKER = process.env.CI === "true";
|
|
9
9
|
void (0, node_test_1.describe)("Service manager tests", async () => {
|
|
10
|
+
await (0, node_test_1.test)("Initialises built-in and additional services without name clashes", async () => {
|
|
11
|
+
let insertedServiceNames = [];
|
|
12
|
+
const serviceManager = await ServiceManager_1.ServiceManager.create({
|
|
13
|
+
services: ServiceManagerTypes_1.prostglesServices,
|
|
14
|
+
serviceRoot: "built-in-services",
|
|
15
|
+
}, {
|
|
16
|
+
services: {
|
|
17
|
+
insertMany: (services) => {
|
|
18
|
+
insertedServiceNames = services.map(({ name }) => name);
|
|
19
|
+
return Promise.resolve();
|
|
20
|
+
},
|
|
21
|
+
find: () => Promise.resolve([]),
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
const extendedServiceManager = await serviceManager.addServices({
|
|
25
|
+
services: { appService: ServiceManagerTypes_1.prostglesServices.documents },
|
|
26
|
+
serviceRoot: "app-services",
|
|
27
|
+
});
|
|
28
|
+
assert_1.strict.equal(extendedServiceManager.services.appService, ServiceManagerTypes_1.prostglesServices.documents);
|
|
29
|
+
assert_1.strict.equal(extendedServiceManager.getServiceRoot("documents"), "built-in-services");
|
|
30
|
+
assert_1.strict.equal(extendedServiceManager.getServiceRoot("appService"), "app-services");
|
|
31
|
+
await assert_1.strict.rejects(() => extendedServiceManager.addServices({
|
|
32
|
+
services: { documents: ServiceManagerTypes_1.prostglesServices.documents },
|
|
33
|
+
serviceRoot: "app-services",
|
|
34
|
+
}));
|
|
35
|
+
assert_1.strict.deepEqual(insertedServiceNames.sort(), [
|
|
36
|
+
"appService",
|
|
37
|
+
"documents",
|
|
38
|
+
"speechToText",
|
|
39
|
+
"webSearchSearxng",
|
|
40
|
+
]);
|
|
41
|
+
});
|
|
10
42
|
await (0, node_test_1.test)("Enable speechToText", async () => {
|
|
11
43
|
if (exports.IS_GITHUB_WORKER) {
|
|
12
44
|
return;
|
|
13
45
|
}
|
|
14
46
|
let logText = "";
|
|
15
|
-
const serviceManager =
|
|
47
|
+
const serviceManager = await ServiceManager_1.ServiceManager.create({
|
|
16
48
|
services: ServiceManagerTypes_1.prostglesServices,
|
|
17
49
|
serviceRoot: "src/ServiceManager/services",
|
|
18
|
-
});
|
|
50
|
+
}, undefined);
|
|
19
51
|
const res = await serviceManager.enableService("speechToText", (logs) => {
|
|
20
52
|
const lastLog = logs.at(-1)?.text;
|
|
21
53
|
console.warn(lastLog);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServiceManager.spec.js","sourceRoot":"","sources":["../../../../src/ServiceManager/ServiceManager.spec.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAChC,yCAA2C;AAC3C,qDAAkD;AAClD,+DAA0D;AAE7C,QAAA,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,MAAM,CAAC;AAE1D,KAAK,IAAA,oBAAQ,EAAC,uBAAuB,EAAE,KAAK,IAAI,EAAE;IAChD,MAAM,IAAA,gBAAI,EAAC,qBAAqB,EAAE,KAAK,IAAI,EAAE;QAC3C,IAAI,wBAAgB,EAAE,CAAC;YACrB,OAAO;QACT,CAAC;QACD,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,MAAM,cAAc,GAAG,
|
|
1
|
+
{"version":3,"file":"ServiceManager.spec.js","sourceRoot":"","sources":["../../../../src/ServiceManager/ServiceManager.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,7 @@ export type ProstglesService = {
|
|
|
15
15
|
env?: Record<string, string>;
|
|
16
16
|
/**
|
|
17
17
|
* Directory containing the Docker build context.
|
|
18
|
-
* Relative paths resolve from
|
|
18
|
+
* Relative paths resolve from the root used to register this service.
|
|
19
19
|
* Defaults to `<serviceName>/src`.
|
|
20
20
|
*/
|
|
21
21
|
buildContext?: string;
|
|
@@ -34,7 +34,7 @@ async function buildService(serviceName, onLogs) {
|
|
|
34
34
|
if (!service) {
|
|
35
35
|
throw new Error(`Service ${serviceName} not found in service registry`);
|
|
36
36
|
}
|
|
37
|
-
const serviceCwd = (0, path_1.resolve)(this.
|
|
37
|
+
const serviceCwd = (0, path_1.resolve)(this.getServiceRoot(serviceName), service.buildContext ?? (0, path_1.join)(serviceName, "src"));
|
|
38
38
|
const imageName = (0, exports.camelCaseToSkewerCase)(serviceName);
|
|
39
39
|
const { buildArgs } = await (0, getSelectedConfigEnvs_1.getSelectedConfigEnvs)(this, serviceName);
|
|
40
40
|
/** Only rebuild if hash differs */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildService.js","sourceRoot":"","sources":["../../../../src/ServiceManager/buildService.ts"],"names":[],"mappings":";;;AAcA,oCAkHC;AAhID,+CAA6C;AAC7C,yCAA2C;AAC3C,yFAGwD;AACxD,+BAAqC;AACrC,qDAAoD;AACpD,mDAAgD;AAChD,6DAA0D;AAC1D,mEAAgE;AAIzD,KAAK,UAAU,YAAY,CAEhC,WAAmB,EACnB,MAAqB;IAErB,MAAM,cAAc,GAAkB,CAAC,IAAI,EAAE,EAAE;QAC7C,MAAM,CAAC,IAAI,CAAC,CAAC;QACb,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IACvC,CAAC,CAAC;IACF,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC7D,IAAI,eAAe,EAAE,CAAC;QACpB,IAAI,eAAe,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAC1C,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC;YAC3C,OAAO,GAAG,CAAC,KAAK,CAAC;QACnB,CAAC;QACD,IAAI,eAAe,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACzC,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;IAC9C,MAAM,IAAI,GAAG,GAAG,EAAE;QAChB,eAAe,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC3C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,WAAW,WAAW,gCAAgC,CAAC,CAAC;IAC1E,CAAC;IACD,MAAM,UAAU,GAAG,IAAA,cAAO,EACxB,IAAI,CAAC,WAAW,
|
|
1
|
+
{"version":3,"file":"buildService.js","sourceRoot":"","sources":["../../../../src/ServiceManager/buildService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ProcessLog } from "../McpHub/DockerSandbox/executeDockerCommand";
|
|
2
|
-
import type { ServiceManager } from "./ServiceManager";
|
|
3
|
-
|
|
2
|
+
import type { ServiceManager, StringKeyof } from "./ServiceManager";
|
|
3
|
+
import type { RunningServiceInstance, ServiceRegistry } from "./ServiceManagerTypes";
|
|
4
|
+
export declare function enableService<Services extends ServiceRegistry, ServiceName extends StringKeyof<Services>>(this: ServiceManager<Services>, serviceName: ServiceName, onLogs: (logs: ProcessLog[]) => void): Promise<RunningServiceInstance<Services[ServiceName]>>;
|
|
4
5
|
//# sourceMappingURL=enableService.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enableService.d.ts","sourceRoot":"","sources":["../../../../src/ServiceManager/enableService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gDAAgD,CAAC;AACjF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"enableService.d.ts","sourceRoot":"","sources":["../../../../src/ServiceManager/enableService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gDAAgD,CAAC;AACjF,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,KAAK,EACV,sBAAsB,EACtB,eAAe,EAChB,MAAM,uBAAuB,CAAC;AAE/B,wBAAsB,aAAa,CACjC,QAAQ,SAAS,eAAe,EAChC,WAAW,SAAS,WAAW,CAAC,QAAQ,CAAC,EAEzC,IAAI,EAAE,cAAc,CAAC,QAAQ,CAAC,EAC9B,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,IAAI,GACnC,OAAO,CAAC,sBAAsB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAgCxD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enableService.js","sourceRoot":"","sources":["../../../../src/ServiceManager/enableService.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"enableService.js","sourceRoot":"","sources":["../../../../src/ServiceManager/enableService.ts"],"names":[],"mappings":";;AAOA,sCAuCC;AAvCM,KAAK,UAAU,aAAa,CAKjC,WAAwB,EACxB,MAAoC;IAEpC,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC7C,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC3D,IAAI,aAAa,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;QACxC,OAAO,aAA8D,CAAC;IACxE,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAChC,CAAC;IACD,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;QAC1B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACjE,IAAI,WAAW,KAAK,OAAO,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CACb,WAAW,WAAW,6BAA6B,WAAW,EAAE,CACjE,CAAC;QACJ,CAAC;QAED,MAAM,oBAAoB,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAClE,IAAI,oBAAoB,EAAE,MAAM,KAAK,eAAe,EAAE,CAAC;YACrD,MAAM,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAC7B,EAAE,IAAI,EAAE,WAAW,EAAE,EACrB,EAAE,UAAU,EAAE,oBAAoB,CAAC,SAAS,EAAE,CAC/C,CAAC;QACJ,CAAC;QAED,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACnE,OAAO,aAAa,CAAC;IACvB,CAAC,CAAC;IACF,MAAM,MAAM,GAAG,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;QACrC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAC/C,OAAO,MAAgE,CAAC;AAC1E,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getServiceEndpoints.d.ts","sourceRoot":"","sources":["../../../../src/ServiceManager/getServiceEndpoints.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,uBAAuB,CAAC;AAE/B,eAAO,MAAM,mBAAmB,GAAI,CAAC,SAAS,gBAAgB,EAAE,sCAI7D;IACD,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC;CAC1C,KAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC,WAAW,
|
|
1
|
+
{"version":3,"file":"getServiceEndpoints.d.ts","sourceRoot":"","sources":["../../../../src/ServiceManager/getServiceEndpoints.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,uBAAuB,CAAC;AAE/B,eAAO,MAAM,mBAAmB,GAAI,CAAC,SAAS,gBAAgB,EAAE,sCAI7D;IACD,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC;CAC1C,KAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC,WAAW,CAkHxC,CAAC"}
|
|
@@ -75,7 +75,15 @@ const getServiceEndpoints = ({ serviceName, endpoints, baseUrl, }) => {
|
|
|
75
75
|
throw new Error(`Error calling endpoint ${endpoint} of service ${serviceName}: ${response.status} ${response.statusText} ${errorText}`);
|
|
76
76
|
}
|
|
77
77
|
if (outputSchema) {
|
|
78
|
-
const
|
|
78
|
+
const text = await response.text();
|
|
79
|
+
let responseData;
|
|
80
|
+
try {
|
|
81
|
+
responseData = JSON.parse(text);
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
// Allow for text output if outputSchema is not JSON
|
|
85
|
+
responseData = text;
|
|
86
|
+
}
|
|
79
87
|
const validatedOutput = (0, prostgles_types_1.getJSONBSchemaValidationError)(outputSchema, responseData, {
|
|
80
88
|
allowExtraProperties: true,
|
|
81
89
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getServiceEndpoints.js","sourceRoot":"","sources":["../../../../src/ServiceManager/getServiceEndpoints.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"getServiceEndpoints.js","sourceRoot":"","sources":["../../../../src/ServiceManager/getServiceEndpoints.ts"],"names":[],"mappings":";;;AAAA,yCAA2C;AAC3C,qDAA0E;AAMnE,MAAM,mBAAmB,GAAG,CAA6B,EAC9D,WAAW,EACX,SAAS,EACT,OAAO,GAKR,EAA0C,EAAE;IAC3C,OAAO,MAAM,CAAC,WAAW,CACvB,IAAA,kBAAU,EAAC,SAAS,CAAC,CAAC,GAAG,CACvB,CAAC,CAAC,QAAQ,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;QAChE,QAAQ;QACR,KAAK,EAAE,IAAa,EAAE,YAAY,EAAE,EAAE;YACpC,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;YACvC,CAAC;YACD,MAAM,cAAc,GAClB,WAAW,CAAC,CAAC;gBACX,IAAA,+CAA6B,EAAC,WAAW,EAAE,IAAI,CAAC;gBAClD,CAAC,CAAC,SAAS,CAAC;YACd,IAAI,cAAc,EAAE,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxC,MAAM,IAAI,KAAK,CACb,8BAA8B,QAAQ,eAAe,WAAW,KAAK,cAAc,CAAC,KAAK,EAAE,CAC5F,CAAC;YACJ,CAAC;YAED,MAAM,EAAE,IAAI,EAAE,GAAG,cAAc,IAAI,EAAE,CAAC;YACtC,MAAM,aAAa,GACjB,SAAS,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YACtD,MAAM,KAAK,GACT,aAAa,KAAK,OAAO,IAAI,IAAI,CAAC,CAAC;gBACjC,IAAI,IAAI,eAAe,CACrB,IAA8B,CAC/B,CAAC,QAAQ,EAAE,EAAE;gBAChB,CAAC,CAAC,EAAE,CAAC;YAEP,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,GAAG,EAAE;gBAC9B,IAAI,aAAa,KAAK,UAAU,EAAE,CAAC;oBACjC,IAAI,CAAC,IAAA,0BAAQ,EAAC,IAAI,CAAC,EAAE,CAAC;wBACpB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;oBACtD,CAAC;oBACD,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;oBAChC,IAAA,kBAAU,EAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;wBACxC,MAAM,WAAW,GAAG,CAAC,KAAc,EAAE,EAAE;4BACrC,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;gCAC1B,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;4BAC9B,CAAC;iCAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gCACrC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;4BAC9B,CAAC;iCAAM,CAAC;gCACN,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;4BAC9C,CAAC;wBACH,CAAC,CAAC;wBAEF,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;4BACzB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gCAClB,WAAW,CAAC,CAAC,CAAC,CAAC;4BACjB,CAAC,CAAC,CAAC;wBACL,CAAC;6BAAM,CAAC;4BACN,WAAW,CAAC,KAAK,CAAC,CAAC;wBACrB,CAAC;oBACH,CAAC,CAAC,CAAC;oBACH,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;gBAC5B,CAAC;gBACD,IAAI,aAAa,KAAK,MAAM,EAAE,CAAC;oBAC7B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;gBAC7B,CAAC;gBACD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC7B,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;gBACxB,CAAC;gBACD,OAAO;oBACL,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;oBAC1B,OAAO,EAAE;wBACP,cAAc,EAAE,kBAAkB;wBAClC,MAAM,EAAE,kBAAkB;qBAC3B;iBACF,CAAC;YACJ,CAAC,CAAC,EAAE,CAAC;YACL,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,EAAE,EAAE;gBAC5D,OAAO;gBACP,GAAG,YAAY;gBACf,IAAI;gBACJ,MAAM,EAAE,MAAM;aACf,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;gBACxD,MAAM,IAAI,KAAK,CACb,0BAA0B,QAAQ,eAAe,WAAW,KAAK,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,IAAI,SAAS,EAAE,CACvH,CAAC;YACJ,CAAC;YAED,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAEnC,IAAI,YAAqB,CAAC;gBAC1B,IAAI,CAAC;oBACH,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAClC,CAAC;gBAAC,MAAM,CAAC;oBACP,oDAAoD;oBACpD,YAAY,GAAG,IAAI,CAAC;gBACtB,CAAC;gBACD,MAAM,eAAe,GAAG,IAAA,+CAA6B,EACnD,YAAY,EACZ,YAAY,EACZ;oBACE,oBAAoB,EAAE,IAAI;iBAC3B,CACF,CAAC;gBACF,IAAI,eAAe,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;oBACxC,MAAM,IAAI,KAAK,CACb,gCAAgC,QAAQ,eAAe,WAAW,KAAK,eAAe,CAAC,KAAK,EAAE,CAC/F,CAAC;gBACJ,CAAC;gBACD,YAAY;gBACZ,OAAO,eAAe,CAAC,IAAe,CAAC;YACzC,CAAC;YAED,OAAO,SAAS,CAAC;QACnB,CAAC;KACF,CACF,CACwC,CAAC;AAC9C,CAAC,CAAC;AA1HW,QAAA,mBAAmB,uBA0H9B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initialiseServices.d.ts","sourceRoot":"","sources":["../../../../src/ServiceManager/initialiseServices.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"initialiseServices.d.ts","sourceRoot":"","sources":["../../../../src/ServiceManager/initialiseServices.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,IAAI,CAAC;AAC9B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,eAAO,MAAM,kBAAkB,GAC7B,gBAAgB,cAAc,EAC9B,KAAK,GAAG,kBA0CT,CAAC"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.initialiseServices = void 0;
|
|
4
|
-
const ServiceManagerTypes_1 = require("./ServiceManagerTypes");
|
|
5
4
|
const initialiseServices = async (serviceManager, dbs) => {
|
|
6
5
|
await dbs.services
|
|
7
|
-
.insertMany(Object.entries(
|
|
6
|
+
.insertMany(Object.entries(serviceManager.services).map(([name, service]) => ({
|
|
8
7
|
name,
|
|
9
8
|
label: service.label,
|
|
10
9
|
icon: service.icon,
|
|
@@ -19,6 +18,8 @@ const initialiseServices = async (serviceManager, dbs) => {
|
|
|
19
18
|
void dbs.services.find({ status: "running" }).then((services) => {
|
|
20
19
|
const activeServiceNames = [];
|
|
21
20
|
services.forEach((service) => {
|
|
21
|
+
if (!Object.hasOwn(serviceManager.services, service.name))
|
|
22
|
+
return;
|
|
22
23
|
activeServiceNames.push(service.name);
|
|
23
24
|
console.log("Re-enabling service on startup: ", service.name);
|
|
24
25
|
serviceManager
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initialiseServices.js","sourceRoot":"","sources":["../../../../src/ServiceManager/initialiseServices.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"initialiseServices.js","sourceRoot":"","sources":["../../../../src/ServiceManager/initialiseServices.ts"],"names":[],"mappings":";;;AAKO,MAAM,kBAAkB,GAAG,KAAK,EACrC,cAA8B,EAC9B,GAAQ,EACR,EAAE;IACF,MAAM,GAAG,CAAC,QAAQ;SACf,UAAU,CACT,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,GAAG,CACzC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,CAClB,CAAC;QACC,IAAI;QACJ,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,YAAY,EAAE,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI;QAC9C,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,MAAM,EAAE,SAAS;KAClB,CAA0C,CAC9C,EACD;QACE,UAAU,EAAE,WAAW;KACxB,CACF;SACA,IAAI,CAAC,GAAG,EAAE;QACT,KAAK,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC9D,MAAM,kBAAkB,GAAa,EAAE,CAAC;YACxC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC3B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC;oBAAE,OAAO;gBAClE,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACtC,OAAO,CAAC,GAAG,CAAC,kCAAkC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC9D,cAAc;qBACX,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC;qBACrC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC,CAAC,CAAC;YACH,cAAc,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE;gBACvD,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC9C,OAAO,CAAC,GAAG,CACT,gDAAgD,EAChD,WAAW,CACZ,CAAC;oBACF,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gBACpD,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AA5CW,QAAA,kBAAkB,sBA4C7B"}
|
|
@@ -66,6 +66,7 @@ const getCliTemplateFiles = ({ configId }) => ({
|
|
|
66
66
|
"index.ts": `
|
|
67
67
|
import { defineConfig } from "@prostgles/prostgles";
|
|
68
68
|
import type { DBGeneratedSchema } from "../${exports.generatedFolderName}/DBGeneratedSchema";
|
|
69
|
+
import { serviceManagerConfig } from "./serviceManager";
|
|
69
70
|
|
|
70
71
|
const prostgles = defineConfig<DBGeneratedSchema>();
|
|
71
72
|
|
|
@@ -74,6 +75,7 @@ const getCliTemplateFiles = ({ configId }) => ({
|
|
|
74
75
|
connection: {
|
|
75
76
|
table_options: {},
|
|
76
77
|
},
|
|
78
|
+
services: serviceManagerConfig,
|
|
77
79
|
tableConfig: {},
|
|
78
80
|
});`,
|
|
79
81
|
[servicesFolderName]: {
|
|
@@ -82,18 +84,28 @@ const getCliTemplateFiles = ({ configId }) => ({
|
|
|
82
84
|
import type { ProstglesService } from "@prostgles/prostgles/services";
|
|
83
85
|
|
|
84
86
|
export const myService = {
|
|
85
|
-
buildContext: "myService",
|
|
86
87
|
icon: "Extension",
|
|
87
88
|
label: "My service",
|
|
88
89
|
description: "Example local Docker service.",
|
|
89
90
|
port: 8080,
|
|
90
91
|
healthCheck: { endpoint: "/health" },
|
|
91
|
-
endpoints: {
|
|
92
|
+
endpoints: {
|
|
93
|
+
"/hey": {
|
|
94
|
+
method: "GET",
|
|
95
|
+
inputSchema: undefined,
|
|
96
|
+
description: "Service info endpoint",
|
|
97
|
+
outputSchema: "string",
|
|
98
|
+
},
|
|
99
|
+
},
|
|
92
100
|
} as const satisfies ProstglesService;`,
|
|
93
101
|
src: {
|
|
94
102
|
Dockerfile: `
|
|
95
103
|
FROM python:3.13-alpine
|
|
96
104
|
|
|
105
|
+
WORKDIR /app
|
|
106
|
+
RUN printf 'service-ok' > health
|
|
107
|
+
RUN printf 'Hello from myService!' > hey
|
|
108
|
+
|
|
97
109
|
EXPOSE 8080
|
|
98
110
|
|
|
99
111
|
CMD ["python", "-m", "http.server", "8080", "--bind", "0.0.0.0"]`,
|
|
@@ -101,14 +113,22 @@ const getCliTemplateFiles = ({ configId }) => ({
|
|
|
101
113
|
},
|
|
102
114
|
},
|
|
103
115
|
"serviceManager.ts": `
|
|
104
|
-
import {
|
|
116
|
+
import {
|
|
117
|
+
getServiceManager,
|
|
118
|
+
type ServiceManagerConfig,
|
|
119
|
+
} from "@prostgles/prostgles/services";
|
|
105
120
|
import { myService } from "./services/myService/myService.service";
|
|
106
121
|
import path from "node:path";
|
|
107
122
|
|
|
108
|
-
export const
|
|
109
|
-
|
|
123
|
+
export const services = { myService };
|
|
124
|
+
|
|
125
|
+
export const serviceManagerConfig = {
|
|
126
|
+
services,
|
|
110
127
|
serviceRoot: path.resolve(__dirname, "..", "..", "src", "services"),
|
|
111
|
-
}
|
|
128
|
+
} satisfies ServiceManagerConfig<typeof services>;
|
|
129
|
+
|
|
130
|
+
/** The host-owned instance used by Prostgles and the Services UI. */
|
|
131
|
+
export const serviceManager = getServiceManager<typeof services>();`,
|
|
112
132
|
},
|
|
113
133
|
[testsFolderName]: {
|
|
114
134
|
"deployment.test.ts": `
|
|
@@ -297,6 +317,7 @@ const schemaConfigGuidance = {
|
|
|
297
317
|
joins: "Use `joins` only for relationships that cannot be inferred from foreign keys.",
|
|
298
318
|
onInitSQL: "Use `onInitSQL` only for SQL initialization that cannot be expressed by `tableConfig`.",
|
|
299
319
|
onMount: "Use `onMount` for startup integration work and return cleanup logic when resources are opened.",
|
|
320
|
+
services: "Register Docker-backed runtimes with `services` so Prostgles can expose and control them.",
|
|
300
321
|
tableConfig: "Define tables and columns in `tableConfig`, including constraints and indexes.",
|
|
301
322
|
tableConfigMigrations: "For schema changes that transform existing data, increment `tableConfigMigrations.version` and use `onMigrate`.",
|
|
302
323
|
tableHooks: "Define `tableHooks` as a separate top-level config property.",
|
|
@@ -324,6 +345,13 @@ const getCliAgentsFile = () => `
|
|
|
324
345
|
- ${schemaConfigGuidance.watchSchemaType}
|
|
325
346
|
- ${schemaConfigGuidance.onInitSQL} ${schemaConfigGuidance.onMount}
|
|
326
347
|
|
|
348
|
+
## Services
|
|
349
|
+
|
|
350
|
+
- If a server function needs a non-Node.js runtime or system dependencies, implement that work as a service instead of running it directly in the function.
|
|
351
|
+
- Define services under \`src/services/<serviceName>/\`, with the typed \`*.service.ts\` definition beside a \`src/\` Docker build context. Declare a health check and typed endpoints for every operation the app calls.
|
|
352
|
+
- Register each service in \`src/serviceManager.ts\` and expose its config through the top-level \`services\` property. Service names must not collide with built-in Prostgles services or another app service.
|
|
353
|
+
- Import the exported \`serviceManager\` in server functions and use \`getServiceWithRetries(serviceName)\` before calling an endpoint. This is the host-owned instance shown in the Prostgles Services UI; do not construct another \`ServiceManager\`.
|
|
354
|
+
|
|
327
355
|
## Typed database object
|
|
328
356
|
|
|
329
357
|
- The Prostgles \`dbo\` object available in \`onMount\`, \`tableHooks\`, and server functions is \`DBOFullyTyped<DBGeneratedSchema>\`. Table names, columns, filters, selects, inserts, updates, and results are fully typed.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cliTemplateFiles.js","sourceRoot":"","sources":["../../../../src/cli/cliTemplateFiles.ts"],"names":[],"mappings":";;;;AAAA,yCAA0C;AAC1C,mCAAqC;AAErC,8EAA6C;AAC7C,qDAAwD;AACxD,+BAAqC;AACrC,2BAA8C;AAEvC,MAAM,oBAAoB,GAAG,CAAC,EACnC,QAAQ,EACR,UAAU,GAIX,EAAE,EAAE;IACH,eAAe,CAAC,UAAU,EAAE,mBAAmB,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;AACjE,CAAC,CAAC;AARW,QAAA,oBAAoB,wBAQ/B;AAEW,QAAA,aAAa,GAAG,KAAK,CAAC;AACtB,QAAA,mBAAmB,GAAG,WAAW,CAAC;AAC/C,MAAM,eAAe,GAAG,OAAO,CAAC;AAEhC,MAAM,kBAAkB,GAAG,UAAU,CAAC;AACzB,QAAA,iBAAiB,GAAG;IAC/B,WAAW;IACX,cAAc;IACd,cAAc;IACd,YAAY;IACZ,kBAAkB;CACV,CAAC;AAMX,MAAM,eAAe,GAAG,CAAC,UAAkB,EAAE,WAAwB,EAAE,EAAE;IACvE,KAAK,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QAClE,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QAChD,MAAM,iBAAiB,GAAG,IAAA,cAAO,EAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,IAAA,cAAS,EAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAClD,IAAA,kBAAa,EAAC,QAAQ,EAAE,IAAA,iBAAS,EAAC,OAAO,CAAC,CAAC,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,IAAA,cAAS,EAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACzC,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,EAAE,QAAQ,EAAwB,EAAE,EAAE,CACjE,CAAC;IACC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI;IACxE,eAAe,EACb,IAAI,CAAC,SAAS,CACZ;QACE,eAAe,EAAE;YACf,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,QAAQ;YAChB,gBAAgB,EAAE,QAAQ;YAC1B,OAAO,EAAE,GAAG;YACZ,MAAM,EAAE,OAAO;YACf,eAAe,EAAE,IAAI;YACrB,gCAAgC,EAAE,IAAI;YACtC,aAAa,EAAE,IAAI;YACnB,wBAAwB,EAAE,IAAI;YAC9B,YAAY,EAAE,IAAI;YAClB,MAAM,EAAE,IAAI;YACZ,mBAAmB,EAAE,IAAI;SAC1B;QACD,OAAO,EAAE,CAAC,qBAAa,EAAE,2BAAmB,EAAE,eAAe,CAAC;QAC9D,OAAO,EAAE,CAAC,GAAG,qBAAa,kBAAkB,CAAC;KAC9C,EACD,IAAI,EACJ,CAAC,CACF,GAAG,IAAI;IACV,WAAW,EAAE,gBAAgB,EAAE;IAC/B,CAAC,2BAAmB,CAAC,EAAE;QACrB,sBAAsB,EACpB,wFAAwF;KAC3F;IACD,CAAC,qBAAa,CAAC,EAAE;QACf,GAAG,IAAA,6BAAW,EAAC,yBAAiB,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC;QACvE,UAAU,EAAE;;qDAEmC,2BAAmB
|
|
1
|
+
{"version":3,"file":"cliTemplateFiles.js","sourceRoot":"","sources":["../../../../src/cli/cliTemplateFiles.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCliAgentsFile.d.ts","sourceRoot":"","sources":["../../../../src/cli/getCliAgentsFile.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getCliAgentsFile.d.ts","sourceRoot":"","sources":["../../../../src/cli/getCliAgentsFile.ts"],"names":[],"mappings":"AAqDA,eAAO,MAAM,gBAAgB,cA6E0D,CAAC"}
|
|
@@ -15,6 +15,7 @@ const schemaConfigGuidance = {
|
|
|
15
15
|
joins: "Use `joins` only for relationships that cannot be inferred from foreign keys.",
|
|
16
16
|
onInitSQL: "Use `onInitSQL` only for SQL initialization that cannot be expressed by `tableConfig`.",
|
|
17
17
|
onMount: "Use `onMount` for startup integration work and return cleanup logic when resources are opened.",
|
|
18
|
+
services: "Register Docker-backed runtimes with `services` so Prostgles can expose and control them.",
|
|
18
19
|
tableConfig: "Define tables and columns in `tableConfig`, including constraints and indexes.",
|
|
19
20
|
tableConfigMigrations: "For schema changes that transform existing data, increment `tableConfigMigrations.version` and use `onMigrate`.",
|
|
20
21
|
tableHooks: "Define `tableHooks` as a separate top-level config property.",
|
|
@@ -42,6 +43,13 @@ const getCliAgentsFile = () => (0, utils_1.fixIndent)(`
|
|
|
42
43
|
- ${schemaConfigGuidance.watchSchemaType}
|
|
43
44
|
- ${schemaConfigGuidance.onInitSQL} ${schemaConfigGuidance.onMount}
|
|
44
45
|
|
|
46
|
+
## Services
|
|
47
|
+
|
|
48
|
+
- If a server function needs a non-Node.js runtime or system dependencies, implement that work as a service instead of running it directly in the function.
|
|
49
|
+
- Define services under \`src/services/<serviceName>/\`, with the typed \`*.service.ts\` definition beside a \`src/\` Docker build context. Declare a health check and typed endpoints for every operation the app calls.
|
|
50
|
+
- Register each service in \`src/serviceManager.ts\` and expose its config through the top-level \`services\` property. Service names must not collide with built-in Prostgles services or another app service.
|
|
51
|
+
- Import the exported \`serviceManager\` in server functions and use \`getServiceWithRetries(serviceName)\` before calling an endpoint. This is the host-owned instance shown in the Prostgles Services UI; do not construct another \`ServiceManager\`.
|
|
52
|
+
|
|
45
53
|
## Typed database object
|
|
46
54
|
|
|
47
55
|
- The Prostgles \`dbo\` object available in \`onMount\`, \`tableHooks\`, and server functions is \`DBOFullyTyped<DBGeneratedSchema>\`. Table names, columns, filters, selects, inserts, updates, and results are fully typed.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCliAgentsFile.js","sourceRoot":"","sources":["../../../../src/cli/getCliAgentsFile.ts"],"names":[],"mappings":";;;AAAA,yCAA0C;AAW1C;;;GAGG;AACH,MAAM,oBAAoB,GAAG;IAC3B,cAAc,EACZ,iGAAiG;IACnG,UAAU,EACR,mGAAmG;IACrG,cAAc,EACZ,+FAA+F;IACjG,SAAS,EACP,4GAA4G;IAC9G,EAAE,EAAE,oEAAoE;IACxE,KAAK,EACH,+EAA+E;IACjF,SAAS,EACP,wFAAwF;IAC1F,OAAO,EACL,gGAAgG;IAClG,WAAW,EACT,gFAAgF;IAClF,qBAAqB,EACnB,iHAAiH;IACnH,UAAU,EAAE,8DAA8D;IAC1E,eAAe,EACb,+EAA+E;IACjF,UAAU,EACR,0FAA0F;CAC9D,CAAC;AAEjC,MAAM,kBAAkB,GAAG;IACzB,gBAAgB,EACd,gFAAgF;IAClF,eAAe,EACb,wEAAwE;IAC1E,aAAa,EACX,yPAAyP;CAC/N,CAAC;AAExB,MAAM,gBAAgB,GAAG,GAAG,EAAE,CACnC,IAAA,iBAAS,EAAC;;;;;;;;;QASJ,oBAAoB,CAAC,EAAE;QACvB,oBAAoB,CAAC,UAAU,IAAI,kBAAkB,CAAC,gBAAgB,IAAI,kBAAkB,CAAC,eAAe;QAC5G,oBAAoB,CAAC,cAAc;QACnC,oBAAoB,CAAC,cAAc;QACnC,oBAAoB,CAAC,eAAe;QACpC,oBAAoB,CAAC,SAAS,IAAI,oBAAoB,CAAC,OAAO
|
|
1
|
+
{"version":3,"file":"getCliAgentsFile.js","sourceRoot":"","sources":["../../../../src/cli/getCliAgentsFile.ts"],"names":[],"mappings":";;;AAAA,yCAA0C;AAW1C;;;GAGG;AACH,MAAM,oBAAoB,GAAG;IAC3B,cAAc,EACZ,iGAAiG;IACnG,UAAU,EACR,mGAAmG;IACrG,cAAc,EACZ,+FAA+F;IACjG,SAAS,EACP,4GAA4G;IAC9G,EAAE,EAAE,oEAAoE;IACxE,KAAK,EACH,+EAA+E;IACjF,SAAS,EACP,wFAAwF;IAC1F,OAAO,EACL,gGAAgG;IAClG,QAAQ,EACN,2FAA2F;IAC7F,WAAW,EACT,gFAAgF;IAClF,qBAAqB,EACnB,iHAAiH;IACnH,UAAU,EAAE,8DAA8D;IAC1E,eAAe,EACb,+EAA+E;IACjF,UAAU,EACR,0FAA0F;CAC9D,CAAC;AAEjC,MAAM,kBAAkB,GAAG;IACzB,gBAAgB,EACd,gFAAgF;IAClF,eAAe,EACb,wEAAwE;IAC1E,aAAa,EACX,yPAAyP;CAC/N,CAAC;AAExB,MAAM,gBAAgB,GAAG,GAAG,EAAE,CACnC,IAAA,iBAAS,EAAC;;;;;;;;;QASJ,oBAAoB,CAAC,EAAE;QACvB,oBAAoB,CAAC,UAAU,IAAI,kBAAkB,CAAC,gBAAgB,IAAI,kBAAkB,CAAC,eAAe;QAC5G,oBAAoB,CAAC,cAAc;QACnC,oBAAoB,CAAC,cAAc;QACnC,oBAAoB,CAAC,eAAe;QACpC,oBAAoB,CAAC,SAAS,IAAI,oBAAoB,CAAC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAmC9D,oBAAoB,CAAC,WAAW,IAAI,oBAAoB,CAAC,qBAAqB;QAC9E,oBAAoB,CAAC,UAAU;QAC/B,kBAAkB,CAAC,aAAa;;;QAGhC,oBAAoB,CAAC,KAAK;;;;QAI1B,oBAAoB,CAAC,UAAU;;;;;;;;;;;;;QAa/B,oBAAoB,CAAC,SAAS;;;;;sFAKgD,CAAC,CAAC;AA7E3E,QAAA,gBAAgB,oBA6E2D"}
|