@baseplate-dev/project-builder-server 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +390 -0
- package/dist/api/context.d.ts +15 -0
- package/dist/api/context.d.ts.map +1 -0
- package/dist/api/context.js +21 -0
- package/dist/api/context.js.map +1 -0
- package/dist/api/index.d.ts +287 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +12 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/plugins.d.ts +35 -0
- package/dist/api/plugins.d.ts.map +1 -0
- package/dist/api/plugins.js +13 -0
- package/dist/api/plugins.js.map +1 -0
- package/dist/api/projects.d.ts +62 -0
- package/dist/api/projects.d.ts.map +1 -0
- package/dist/api/projects.js +64 -0
- package/dist/api/projects.js.map +1 -0
- package/dist/api/sync.d.ts +134 -0
- package/dist/api/sync.d.ts.map +1 -0
- package/dist/api/sync.js +90 -0
- package/dist/api/sync.js.map +1 -0
- package/dist/api/trpc.d.ts +50 -0
- package/dist/api/trpc.d.ts.map +1 -0
- package/dist/api/trpc.js +39 -0
- package/dist/api/trpc.js.map +1 -0
- package/dist/api/types.d.ts +13 -0
- package/dist/api/types.d.ts.map +1 -0
- package/dist/api/types.js +2 -0
- package/dist/api/types.js.map +1 -0
- package/dist/api/version.d.ts +40 -0
- package/dist/api/version.d.ts.map +1 -0
- package/dist/api/version.js +9 -0
- package/dist/api/version.js.map +1 -0
- package/dist/compiler/admin/crud/displays.d.ts +5 -0
- package/dist/compiler/admin/crud/displays.d.ts.map +1 -0
- package/dist/compiler/admin/crud/displays.js +46 -0
- package/dist/compiler/admin/crud/displays.js.map +1 -0
- package/dist/compiler/admin/crud/index.d.ts +5 -0
- package/dist/compiler/admin/crud/index.d.ts.map +1 -0
- package/dist/compiler/admin/crud/index.js +90 -0
- package/dist/compiler/admin/crud/index.js.map +1 -0
- package/dist/compiler/admin/crud/inputs.d.ts +5 -0
- package/dist/compiler/admin/crud/inputs.d.ts.map +1 -0
- package/dist/compiler/admin/crud/inputs.js +146 -0
- package/dist/compiler/admin/crud/inputs.js.map +1 -0
- package/dist/compiler/admin/index.d.ts +3 -0
- package/dist/compiler/admin/index.d.ts.map +1 -0
- package/dist/compiler/admin/index.js +95 -0
- package/dist/compiler/admin/index.js.map +1 -0
- package/dist/compiler/admin/sections.d.ts +5 -0
- package/dist/compiler/admin/sections.d.ts.map +1 -0
- package/dist/compiler/admin/sections.js +54 -0
- package/dist/compiler/admin/sections.js.map +1 -0
- package/dist/compiler/app-entry-builder.d.ts +19 -0
- package/dist/compiler/app-entry-builder.d.ts.map +1 -0
- package/dist/compiler/app-entry-builder.js +45 -0
- package/dist/compiler/app-entry-builder.js.map +1 -0
- package/dist/compiler/backend/enums.d.ts +4 -0
- package/dist/compiler/backend/enums.d.ts.map +1 -0
- package/dist/compiler/backend/enums.js +14 -0
- package/dist/compiler/backend/enums.js.map +1 -0
- package/dist/compiler/backend/fastify.d.ts +5 -0
- package/dist/compiler/backend/fastify.d.ts.map +1 -0
- package/dist/compiler/backend/fastify.js +62 -0
- package/dist/compiler/backend/fastify.js.map +1 -0
- package/dist/compiler/backend/feature.d.ts +4 -0
- package/dist/compiler/backend/feature.d.ts.map +1 -0
- package/dist/compiler/backend/feature.js +26 -0
- package/dist/compiler/backend/feature.js.map +1 -0
- package/dist/compiler/backend/graphql.d.ts +4 -0
- package/dist/compiler/backend/graphql.d.ts.map +1 -0
- package/dist/compiler/backend/graphql.js +171 -0
- package/dist/compiler/backend/graphql.js.map +1 -0
- package/dist/compiler/backend/index.d.ts +3 -0
- package/dist/compiler/backend/index.d.ts.map +1 -0
- package/dist/compiler/backend/index.js +34 -0
- package/dist/compiler/backend/index.js.map +1 -0
- package/dist/compiler/backend/models.d.ts +4 -0
- package/dist/compiler/backend/models.d.ts.map +1 -0
- package/dist/compiler/backend/models.js +79 -0
- package/dist/compiler/backend/models.js.map +1 -0
- package/dist/compiler/backend/services.d.ts +4 -0
- package/dist/compiler/backend/services.d.ts.map +1 -0
- package/dist/compiler/backend/services.js +90 -0
- package/dist/compiler/backend/services.js.map +1 -0
- package/dist/compiler/backend/utils.d.ts +16 -0
- package/dist/compiler/backend/utils.d.ts.map +1 -0
- package/dist/compiler/backend/utils.js +17 -0
- package/dist/compiler/backend/utils.js.map +1 -0
- package/dist/compiler/index.d.ts +3 -0
- package/dist/compiler/index.d.ts.map +1 -0
- package/dist/compiler/index.js +31 -0
- package/dist/compiler/index.js.map +1 -0
- package/dist/compiler/web/features.d.ts +5 -0
- package/dist/compiler/web/features.d.ts.map +1 -0
- package/dist/compiler/web/features.js +30 -0
- package/dist/compiler/web/features.js.map +1 -0
- package/dist/compiler/web/index.d.ts +3 -0
- package/dist/compiler/web/index.d.ts.map +1 -0
- package/dist/compiler/web/index.js +58 -0
- package/dist/compiler/web/index.js.map +1 -0
- package/dist/constants/index.d.ts +2 -0
- package/dist/constants/index.d.ts.map +1 -0
- package/dist/constants/index.js +2 -0
- package/dist/constants/index.js.map +1 -0
- package/dist/constants/server.d.ts +2 -0
- package/dist/constants/server.d.ts.map +1 -0
- package/dist/constants/server.js +2 -0
- package/dist/constants/server.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/plugins/index.d.ts +3 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +3 -0
- package/dist/plugins/index.js.map +1 -0
- package/dist/plugins/node-plugin-store.d.ts +6 -0
- package/dist/plugins/node-plugin-store.d.ts.map +1 -0
- package/dist/plugins/node-plugin-store.js +40 -0
- package/dist/plugins/node-plugin-store.js.map +1 -0
- package/dist/plugins/plugin-discovery.d.ts +7 -0
- package/dist/plugins/plugin-discovery.d.ts.map +1 -0
- package/dist/plugins/plugin-discovery.js +50 -0
- package/dist/plugins/plugin-discovery.js.map +1 -0
- package/dist/server/builder-service-manager.d.ts +32 -0
- package/dist/server/builder-service-manager.d.ts.map +1 -0
- package/dist/server/builder-service-manager.js +52 -0
- package/dist/server/builder-service-manager.js.map +1 -0
- package/dist/server/graceful-shutdown.d.ts +2 -0
- package/dist/server/graceful-shutdown.d.ts.map +1 -0
- package/dist/server/graceful-shutdown.js +25 -0
- package/dist/server/graceful-shutdown.js.map +1 -0
- package/dist/server/index.d.ts +8 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +33 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/plugin.d.ts +12 -0
- package/dist/server/plugin.d.ts.map +1 -0
- package/dist/server/plugin.js +109 -0
- package/dist/server/plugin.js.map +1 -0
- package/dist/server/server.d.ts +16 -0
- package/dist/server/server.d.ts.map +1 -0
- package/dist/server/server.js +47 -0
- package/dist/server/server.js.map +1 -0
- package/dist/service/builder-service.d.ts +154 -0
- package/dist/service/builder-service.d.ts.map +1 -0
- package/dist/service/builder-service.js +338 -0
- package/dist/service/builder-service.js.map +1 -0
- package/dist/sync/build-project.d.ts +54 -0
- package/dist/sync/build-project.d.ts.map +1 -0
- package/dist/sync/build-project.js +173 -0
- package/dist/sync/build-project.js.map +1 -0
- package/dist/sync/conflict-file-monitor.d.ts +27 -0
- package/dist/sync/conflict-file-monitor.d.ts.map +1 -0
- package/dist/sync/conflict-file-monitor.js +125 -0
- package/dist/sync/conflict-file-monitor.js.map +1 -0
- package/dist/sync/generate-for-directory.d.ts +29 -0
- package/dist/sync/generate-for-directory.d.ts.map +1 -0
- package/dist/sync/generate-for-directory.js +132 -0
- package/dist/sync/generate-for-directory.js.map +1 -0
- package/dist/sync/generator-steps-writer.d.ts +3 -0
- package/dist/sync/generator-steps-writer.d.ts.map +1 -0
- package/dist/sync/generator-steps-writer.js +6 -0
- package/dist/sync/generator-steps-writer.js.map +1 -0
- package/dist/sync/index.d.ts +4 -0
- package/dist/sync/index.d.ts.map +1 -0
- package/dist/sync/index.js +4 -0
- package/dist/sync/index.js.map +1 -0
- package/dist/sync/sync-metadata-controller.d.ts +29 -0
- package/dist/sync/sync-metadata-controller.d.ts.map +1 -0
- package/dist/sync/sync-metadata-controller.js +95 -0
- package/dist/sync/sync-metadata-controller.js.map +1 -0
- package/dist/sync/sync-metadata-service.d.ts +20 -0
- package/dist/sync/sync-metadata-service.d.ts.map +1 -0
- package/dist/sync/sync-metadata-service.js +31 -0
- package/dist/sync/sync-metadata-service.js.map +1 -0
- package/dist/sync/sync-metadata.d.ts +444 -0
- package/dist/sync/sync-metadata.d.ts.map +1 -0
- package/dist/sync/sync-metadata.js +80 -0
- package/dist/sync/sync-metadata.js.map +1 -0
- package/dist/sync/utils.d.ts +8 -0
- package/dist/sync/utils.d.ts.map +1 -0
- package/dist/sync/utils.js +23 -0
- package/dist/sync/utils.js.map +1 -0
- package/dist/template-extractor/index.d.ts +2 -0
- package/dist/template-extractor/index.d.ts.map +1 -0
- package/dist/template-extractor/index.js +2 -0
- package/dist/template-extractor/index.js.map +1 -0
- package/dist/template-extractor/run-template-extractor.d.ts +4 -0
- package/dist/template-extractor/run-template-extractor.d.ts.map +1 -0
- package/dist/template-extractor/run-template-extractor.js +60 -0
- package/dist/template-extractor/run-template-extractor.js.map +1 -0
- package/dist/user-config/index.d.ts +2 -0
- package/dist/user-config/index.d.ts.map +1 -0
- package/dist/user-config/index.js +2 -0
- package/dist/user-config/index.js.map +1 -0
- package/dist/user-config/user-config-schema.d.ts +46 -0
- package/dist/user-config/user-config-schema.d.ts.map +1 -0
- package/dist/user-config/user-config-schema.js +30 -0
- package/dist/user-config/user-config-schema.js.map +1 -0
- package/dist/utils/case.d.ts +3 -0
- package/dist/utils/case.d.ts.map +1 -0
- package/dist/utils/case.js +14 -0
- package/dist/utils/case.js.map +1 -0
- package/dist/utils/errors.d.ts +10 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +15 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/paths.d.ts +8 -0
- package/dist/utils/paths.d.ts.map +1 -0
- package/dist/utils/paths.js +17 -0
- package/dist/utils/paths.js.map +1 -0
- package/package.json +84 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { loadPluginsInPackage } from '@baseplate-dev/project-builder-lib/plugin-tools';
|
|
2
|
+
import { notEmpty } from '@baseplate-dev/utils';
|
|
3
|
+
import { findNearestPackageJson, readJsonWithSchema, } from '@baseplate-dev/utils/node';
|
|
4
|
+
import { createRequire } from 'node:module';
|
|
5
|
+
import path from 'node:path';
|
|
6
|
+
import { z } from 'zod';
|
|
7
|
+
import { UserVisibleError } from '#src/utils/errors.js';
|
|
8
|
+
/**
|
|
9
|
+
* Finds the available plugins in the project.
|
|
10
|
+
*/
|
|
11
|
+
export async function discoverPlugins(projectDirectory, logger) {
|
|
12
|
+
const packageJsonPath = await findNearestPackageJson({
|
|
13
|
+
cwd: projectDirectory,
|
|
14
|
+
});
|
|
15
|
+
if (!packageJsonPath) {
|
|
16
|
+
throw new UserVisibleError('Could not find root package.json file for the Baseplate project', 'Make sure the project-definition.json file is inside a valid Node package with @baseplate-dev/project-builder-cli.');
|
|
17
|
+
}
|
|
18
|
+
// Load the package.json file
|
|
19
|
+
const packageJson = await readJsonWithSchema(packageJsonPath, z.object({
|
|
20
|
+
dependencies: z.record(z.string()).optional(),
|
|
21
|
+
devDependencies: z.record(z.string()).optional(),
|
|
22
|
+
})).catch(() => {
|
|
23
|
+
throw new UserVisibleError(`Could not read the root package.json file for the Baseplate project at ${packageJsonPath}.`, 'Make sure the package.json file is a valid JSON file.');
|
|
24
|
+
});
|
|
25
|
+
// Look for plugins that start with baseplate-plugin- or @scope/baseplate-plugin- or @baseplate-dev/plugin-
|
|
26
|
+
const pluginPackageNames = [
|
|
27
|
+
...Object.keys(packageJson.dependencies ?? {}),
|
|
28
|
+
...Object.keys(packageJson.devDependencies ?? {}),
|
|
29
|
+
].filter((name) => name.startsWith('baseplate-plugin-') ||
|
|
30
|
+
!!/^@[^/]+\/baseplate-plugin-/.test(name) ||
|
|
31
|
+
name.startsWith('@baseplate-dev/plugin-'));
|
|
32
|
+
// Load all valid plugins and their metadata
|
|
33
|
+
const require = createRequire(projectDirectory);
|
|
34
|
+
const loadedPlugins = await Promise.all(pluginPackageNames.map(async (packageName) => {
|
|
35
|
+
const packagePath = path.dirname(require.resolve(packageName, {
|
|
36
|
+
paths: [projectDirectory],
|
|
37
|
+
}));
|
|
38
|
+
const pluginPackageJsonPath = await findNearestPackageJson({
|
|
39
|
+
cwd: packagePath,
|
|
40
|
+
stopAtNodeModules: true,
|
|
41
|
+
});
|
|
42
|
+
if (!pluginPackageJsonPath) {
|
|
43
|
+
logger.error(`Could not find package.json file for the plugin ${packageName}.`);
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
return loadPluginsInPackage(path.dirname(pluginPackageJsonPath), packageName);
|
|
47
|
+
}));
|
|
48
|
+
return loadedPlugins.flat().filter(notEmpty);
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=plugin-discovery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-discovery.js","sourceRoot":"","sources":["../../src/plugins/plugin-discovery.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iDAAiD,CAAC;AACvF,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EACL,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,gBAAwB,EACxB,MAAc;IAEd,MAAM,eAAe,GAAG,MAAM,sBAAsB,CAAC;QACnD,GAAG,EAAE,gBAAgB;KACtB,CAAC,CAAC;IAEH,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,IAAI,gBAAgB,CACxB,iEAAiE,EACjE,oHAAoH,CACrH,CAAC;IACJ,CAAC;IAED,6BAA6B;IAC7B,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAC1C,eAAe,EACf,CAAC,CAAC,MAAM,CAAC;QACP,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;QAC7C,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;KACjD,CAAC,CACH,CAAC,KAAK,CAAC,GAAG,EAAE;QACX,MAAM,IAAI,gBAAgB,CACxB,0EAA0E,eAAe,GAAG,EAC5F,uDAAuD,CACxD,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,2GAA2G;IAC3G,MAAM,kBAAkB,GAAG;QACzB,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,IAAI,EAAE,CAAC;QAC9C,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,IAAI,EAAE,CAAC;KAClD,CAAC,MAAM,CACN,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC;QACpC,CAAC,CAAC,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC;QACzC,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAC5C,CAAC;IAEF,4CAA4C;IAC5C,MAAM,OAAO,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAChD,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CACrC,kBAAkB,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE;QAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAC9B,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE;YAC3B,KAAK,EAAE,CAAC,gBAAgB,CAAC;SAC1B,CAAC,CACH,CAAC;QAEF,MAAM,qBAAqB,GAAG,MAAM,sBAAsB,CAAC;YACzD,GAAG,EAAE,WAAW;YAChB,iBAAiB,EAAE,IAAI;SACxB,CAAC,CAAC;QAEH,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC3B,MAAM,CAAC,KAAK,CACV,mDAAmD,WAAW,GAAG,CAClE,CAAC;YACF,OAAO;QACT,CAAC;QAED,OAAO,oBAAoB,CACzB,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,EACnC,WAAW,CACZ,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;IACF,OAAO,aAAa,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC/C,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { PluginMetadataWithPaths } from '@baseplate-dev/project-builder-lib';
|
|
2
|
+
import type { BaseplateUserConfig } from '#src/user-config/user-config-schema.js';
|
|
3
|
+
import { ProjectBuilderService } from '#src/service/builder-service.js';
|
|
4
|
+
export declare class BuilderServiceManager {
|
|
5
|
+
protected options: {
|
|
6
|
+
initialDirectories?: string[];
|
|
7
|
+
cliVersion: string;
|
|
8
|
+
builtInPlugins: PluginMetadataWithPaths[];
|
|
9
|
+
userConfig: BaseplateUserConfig;
|
|
10
|
+
/**
|
|
11
|
+
* Whether to skip running commands for use in testing.
|
|
12
|
+
*/
|
|
13
|
+
skipCommands?: boolean;
|
|
14
|
+
};
|
|
15
|
+
private services;
|
|
16
|
+
constructor(options: {
|
|
17
|
+
initialDirectories?: string[];
|
|
18
|
+
cliVersion: string;
|
|
19
|
+
builtInPlugins: PluginMetadataWithPaths[];
|
|
20
|
+
userConfig: BaseplateUserConfig;
|
|
21
|
+
/**
|
|
22
|
+
* Whether to skip running commands for use in testing.
|
|
23
|
+
*/
|
|
24
|
+
skipCommands?: boolean;
|
|
25
|
+
});
|
|
26
|
+
addService(directory: string): ProjectBuilderService;
|
|
27
|
+
getService(id: string): ProjectBuilderService | undefined;
|
|
28
|
+
getServices(): ProjectBuilderService[];
|
|
29
|
+
removeService(id: string): void;
|
|
30
|
+
removeAllServices(): void;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=builder-service-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builder-service-manager.d.ts","sourceRoot":"","sources":["../../src/server/builder-service-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAIlF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAElF,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAExE,qBAAa,qBAAqB;IAI9B,SAAS,CAAC,OAAO,EAAE;QACjB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC9B,UAAU,EAAE,MAAM,CAAC;QACnB,cAAc,EAAE,uBAAuB,EAAE,CAAC;QAC1C,UAAU,EAAE,mBAAmB,CAAC;QAChC;;WAEG;QACH,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB;IAZH,OAAO,CAAC,QAAQ,CAA4C;gBAGhD,OAAO,EAAE;QACjB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC9B,UAAU,EAAE,MAAM,CAAC;QACnB,cAAc,EAAE,uBAAuB,EAAE,CAAC;QAC1C,UAAU,EAAE,mBAAmB,CAAC;QAChC;;WAEG;QACH,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB;IAOH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,qBAAqB;IAoBpD,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS;IAIzD,WAAW,IAAI,qBAAqB,EAAE;IAItC,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAS/B,iBAAiB,IAAI,IAAI;CAM1B"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import crypto from 'node:crypto';
|
|
2
|
+
import { ProjectBuilderService } from '#src/service/builder-service.js';
|
|
3
|
+
export class BuilderServiceManager {
|
|
4
|
+
options;
|
|
5
|
+
services = new Map();
|
|
6
|
+
constructor(options) {
|
|
7
|
+
this.options = options;
|
|
8
|
+
for (const directory of this.options.initialDirectories ?? []) {
|
|
9
|
+
this.addService(directory);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
addService(directory) {
|
|
13
|
+
const id = crypto
|
|
14
|
+
.createHash('shake256', { outputLength: 9 })
|
|
15
|
+
.update(directory)
|
|
16
|
+
.digest('base64')
|
|
17
|
+
.replaceAll('/', '-')
|
|
18
|
+
.replaceAll('+', '_');
|
|
19
|
+
const service = new ProjectBuilderService({
|
|
20
|
+
directory,
|
|
21
|
+
id,
|
|
22
|
+
cliVersion: this.options.cliVersion,
|
|
23
|
+
builtInPlugins: this.options.builtInPlugins,
|
|
24
|
+
userConfig: this.options.userConfig,
|
|
25
|
+
skipCommands: this.options.skipCommands,
|
|
26
|
+
});
|
|
27
|
+
service.init();
|
|
28
|
+
this.services.set(id, service);
|
|
29
|
+
return service;
|
|
30
|
+
}
|
|
31
|
+
getService(id) {
|
|
32
|
+
return this.services.get(id);
|
|
33
|
+
}
|
|
34
|
+
getServices() {
|
|
35
|
+
return [...this.services.values()];
|
|
36
|
+
}
|
|
37
|
+
removeService(id) {
|
|
38
|
+
const service = this.services.get(id);
|
|
39
|
+
if (!service) {
|
|
40
|
+
throw new Error(`Service with id ${id} not found`);
|
|
41
|
+
}
|
|
42
|
+
service.close();
|
|
43
|
+
this.services.delete(id);
|
|
44
|
+
}
|
|
45
|
+
removeAllServices() {
|
|
46
|
+
for (const service of this.services.values()) {
|
|
47
|
+
service.close();
|
|
48
|
+
}
|
|
49
|
+
this.services.clear();
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=builder-service-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builder-service-manager.js","sourceRoot":"","sources":["../../src/server/builder-service-manager.ts"],"names":[],"mappings":"AAEA,OAAO,MAAM,MAAM,aAAa,CAAC;AAIjC,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAExE,MAAM,OAAO,qBAAqB;IAIpB;IAHJ,QAAQ,GAAG,IAAI,GAAG,EAAiC,CAAC;IAE5D,YACY,OAST;QATS,YAAO,GAAP,OAAO,CAShB;QAED,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,kBAAkB,IAAI,EAAE,EAAE,CAAC;YAC9D,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,UAAU,CAAC,SAAiB;QAC1B,MAAM,EAAE,GAAG,MAAM;aACd,UAAU,CAAC,UAAU,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;aAC3C,MAAM,CAAC,SAAS,CAAC;aACjB,MAAM,CAAC,QAAQ,CAAC;aAChB,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC;aACpB,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACxB,MAAM,OAAO,GAAG,IAAI,qBAAqB,CAAC;YACxC,SAAS;YACT,EAAE;YACF,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU;YACnC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc;YAC3C,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU;YACnC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY;SACxC,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAC/B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,UAAU,CAAC,EAAU;QACnB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED,WAAW;QACT,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,aAAa,CAAC,EAAU;QACtB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACtC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;IAED,iBAAiB;QACf,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YAC7C,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;CACF"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export declare const gracefulShutdownPlugin: (fastify: import("fastify").FastifyInstance<import("fastify").RawServerDefault, import("http").IncomingMessage, import("http").ServerResponse<import("http").IncomingMessage>, import("fastify").FastifyBaseLogger, import("fastify").FastifyTypeProviderDefault>, opts: Record<never, never>, done: (err?: Error) => void) => void;
|
|
2
|
+
//# sourceMappingURL=graceful-shutdown.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graceful-shutdown.d.ts","sourceRoot":"","sources":["../../src/server/graceful-shutdown.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,sBAAsB,qUAyBjC,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/* eslint-disable unicorn/no-process-exit */
|
|
2
|
+
import fp from 'fastify-plugin';
|
|
3
|
+
const TIMEOUT = 10_000; // time out if shutdown takes longer than 10 seconds
|
|
4
|
+
export const gracefulShutdownPlugin = fp((fastify, opts, done) => {
|
|
5
|
+
const shutdownServer = (signal) => {
|
|
6
|
+
setTimeout(() => {
|
|
7
|
+
fastify.log.error(new Error('Shutdown timed out'));
|
|
8
|
+
process.exit(1);
|
|
9
|
+
}, TIMEOUT).unref();
|
|
10
|
+
// when using fastify.log instead of console.log, the log message will be
|
|
11
|
+
// sent out after the process has been terminated. this avoids that.
|
|
12
|
+
console.info(`Received ${signal} signal. Shutting down...`);
|
|
13
|
+
fastify
|
|
14
|
+
.close()
|
|
15
|
+
.then(() => process.exit(0))
|
|
16
|
+
.catch((error) => {
|
|
17
|
+
fastify.log.error(error);
|
|
18
|
+
process.exit(1);
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
process.on('SIGINT', shutdownServer);
|
|
22
|
+
process.on('SIGTERM', shutdownServer);
|
|
23
|
+
done();
|
|
24
|
+
});
|
|
25
|
+
//# sourceMappingURL=graceful-shutdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graceful-shutdown.js","sourceRoot":"","sources":["../../src/server/graceful-shutdown.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEhC,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,oDAAoD;AAE5E,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;IAC/D,MAAM,cAAc,GAA2B,CAAC,MAAM,EAAE,EAAE;QACxD,UAAU,CAAC,GAAG,EAAE;YACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;YACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,EAAE,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;QAEpB,yEAAyE;QACzE,oEAAoE;QAEpE,OAAO,CAAC,IAAI,CAAC,YAAY,MAAM,2BAA2B,CAAC,CAAC;QAE5D,OAAO;aACJ,KAAK,EAAE;aACP,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aAC3B,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IACrC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IAEtC,IAAI,EAAE,CAAC;AACT,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { FastifyInstance } from 'fastify';
|
|
2
|
+
import type { WebServerOptions } from './server.js';
|
|
3
|
+
export interface StartWebServerOptions extends WebServerOptions {
|
|
4
|
+
browser: boolean;
|
|
5
|
+
}
|
|
6
|
+
export { BuilderServiceManager } from './builder-service-manager.js';
|
|
7
|
+
export declare function startWebServer(options: StartWebServerOptions): Promise<FastifyInstance>;
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAI/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAIpD,MAAM,WAAW,qBAAsB,SAAQ,gBAAgB;IAC7D,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE,wBAAsB,cAAc,CAClC,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,eAAe,CAAC,CA+B1B"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import open from 'open';
|
|
2
|
+
import { buildServer } from './server.js';
|
|
3
|
+
export { BuilderServiceManager } from './builder-service-manager.js';
|
|
4
|
+
export async function startWebServer(options) {
|
|
5
|
+
const { browser, port, logger } = options;
|
|
6
|
+
const server = await buildServer(options);
|
|
7
|
+
try {
|
|
8
|
+
await server.listen({ port });
|
|
9
|
+
}
|
|
10
|
+
catch (error) {
|
|
11
|
+
if (error instanceof Error &&
|
|
12
|
+
typeof error === 'object' &&
|
|
13
|
+
'code' in error &&
|
|
14
|
+
error.code === 'EADDRINUSE') {
|
|
15
|
+
logger.info('Port in use - retrying in 500ms...');
|
|
16
|
+
// wait a bit and try again since it could be tsx restarting
|
|
17
|
+
await new Promise((resolve) => {
|
|
18
|
+
setTimeout(resolve, 500);
|
|
19
|
+
});
|
|
20
|
+
await server.listen({ port });
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
throw error;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
if (browser) {
|
|
27
|
+
open(`http://localhost:${port}`).catch((error) => {
|
|
28
|
+
logger.error(error);
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
return server;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAEA,OAAO,IAAI,MAAM,MAAM,CAAC;AAIxB,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAM1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAA8B;IAE9B,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC1C,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;IAE1C,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAChC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IACE,KAAK,YAAY,KAAK;YACtB,OAAO,KAAK,KAAK,QAAQ;YACzB,MAAM,IAAI,KAAK;YACf,KAAK,CAAC,IAAI,KAAK,YAAY,EAC3B,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;YAClD,4DAA4D;YAC5D,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC5B,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAC3B,CAAC,CAAC,CAAC;YACH,MAAM,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACZ,IAAI,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YACxD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { FeatureFlag } from '@baseplate-dev/project-builder-lib';
|
|
2
|
+
import type { FastifyPluginAsyncZod } from 'fastify-type-provider-zod';
|
|
3
|
+
import type { BaseplateUserConfig } from '#src/user-config/user-config-schema.js';
|
|
4
|
+
import type { BuilderServiceManager } from './builder-service-manager.js';
|
|
5
|
+
export declare const baseplatePlugin: FastifyPluginAsyncZod<{
|
|
6
|
+
cliVersion: string;
|
|
7
|
+
featureFlags: FeatureFlag[];
|
|
8
|
+
serviceManager: BuilderServiceManager;
|
|
9
|
+
userConfig: BaseplateUserConfig;
|
|
10
|
+
serverPort: number;
|
|
11
|
+
}>;
|
|
12
|
+
//# sourceMappingURL=plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/server/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAEtE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAQvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAMlF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAE1E,eAAO,MAAM,eAAe,EAAE,qBAAqB,CAAC;IAClD,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,cAAc,EAAE,qBAAqB,CAAC;IACtC,UAAU,EAAE,mBAAmB,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;CACpB,CA2HA,CAAC"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { fastifyTRPCPlugin } from '@trpc/server/adapters/fastify';
|
|
2
|
+
import mime from 'mime';
|
|
3
|
+
import fs from 'node:fs';
|
|
4
|
+
import path from 'node:path';
|
|
5
|
+
import { z } from 'zod';
|
|
6
|
+
import { createContextBuilder } from '#src/api/context.js';
|
|
7
|
+
import { appRouter } from '#src/api/index.js';
|
|
8
|
+
import { pathSafeJoin } from '#src/utils/paths.js';
|
|
9
|
+
export const baseplatePlugin = async function (fastify, { cliVersion, featureFlags, serviceManager, userConfig, serverPort }) {
|
|
10
|
+
fastify.log.info(`Loaded projects:\n${serviceManager
|
|
11
|
+
.getServices()
|
|
12
|
+
.map((api) => `${api.directory}: ${api.id}`)
|
|
13
|
+
.join('\n')}`);
|
|
14
|
+
await fastify.register(fastifyTRPCPlugin, {
|
|
15
|
+
prefix: '/trpc',
|
|
16
|
+
trpcOptions: {
|
|
17
|
+
router: appRouter,
|
|
18
|
+
createContext: createContextBuilder({
|
|
19
|
+
serviceManager,
|
|
20
|
+
cliVersion,
|
|
21
|
+
logger: fastify.log,
|
|
22
|
+
featureFlags,
|
|
23
|
+
userConfig,
|
|
24
|
+
serverPort,
|
|
25
|
+
}),
|
|
26
|
+
onError: ({ error }) => {
|
|
27
|
+
fastify.log.error(error);
|
|
28
|
+
},
|
|
29
|
+
// hack since WSS options are not included
|
|
30
|
+
...{
|
|
31
|
+
keepAlive: {
|
|
32
|
+
enabled: true,
|
|
33
|
+
// server ping message interval in milliseconds
|
|
34
|
+
pingMs: 30_000,
|
|
35
|
+
// connection is terminated if pong message is not received in this many milliseconds
|
|
36
|
+
pongWaitMs: 5000,
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
useWSS: true,
|
|
41
|
+
});
|
|
42
|
+
fastify.get('/api/plugins/:projectId/:pluginId/static/*', {
|
|
43
|
+
schema: {
|
|
44
|
+
params: z.object({
|
|
45
|
+
projectId: z.string().min(1),
|
|
46
|
+
pluginId: z.string().min(1),
|
|
47
|
+
'*': z.string(),
|
|
48
|
+
}),
|
|
49
|
+
},
|
|
50
|
+
handler: async (req, reply) => {
|
|
51
|
+
const { projectId, '*': staticPath } = req.params;
|
|
52
|
+
const service = serviceManager.getService(projectId);
|
|
53
|
+
if (!service) {
|
|
54
|
+
reply.status(404).send('No project with provided ID found');
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
const plugins = await service.getAvailablePlugins();
|
|
58
|
+
const plugin = plugins.find((plugin) => plugin.id === req.params.pluginId);
|
|
59
|
+
if (!plugin) {
|
|
60
|
+
reply.status(404).send('No plugin with provided ID found');
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
const fullPath = pathSafeJoin(path.join(plugin.pluginDirectory, 'static'), staticPath);
|
|
64
|
+
if (!fullPath || !fs.existsSync(fullPath)) {
|
|
65
|
+
reply.status(404).send('File not found');
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
const stream = fs.createReadStream(fullPath);
|
|
69
|
+
reply.header('Content-Type', mime.getType(fullPath) ?? 'application/octet-stream');
|
|
70
|
+
return reply.send(stream);
|
|
71
|
+
},
|
|
72
|
+
});
|
|
73
|
+
// serve remoteEntry.js for plugins
|
|
74
|
+
fastify.get('/api/plugins/:projectId/:pluginId/web/*', {
|
|
75
|
+
schema: {
|
|
76
|
+
params: z.object({
|
|
77
|
+
projectId: z.string().min(1),
|
|
78
|
+
pluginId: z.string().min(1),
|
|
79
|
+
'*': z.string(),
|
|
80
|
+
}),
|
|
81
|
+
},
|
|
82
|
+
handler: async (req, reply) => {
|
|
83
|
+
const { projectId, '*': staticPath } = req.params;
|
|
84
|
+
const service = serviceManager.getService(projectId);
|
|
85
|
+
if (!service) {
|
|
86
|
+
reply.status(404).send('No project with provided ID found');
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
const plugins = await service.getAvailablePlugins();
|
|
90
|
+
const plugin = plugins.find((plugin) => plugin.id === req.params.pluginId);
|
|
91
|
+
if (!plugin) {
|
|
92
|
+
reply.status(404).send('No plugin with provided ID found');
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
const fullPath = pathSafeJoin(plugin.webBuildDirectory, staticPath);
|
|
96
|
+
if (!fullPath || !fs.existsSync(fullPath)) {
|
|
97
|
+
reply.status(404).send('File not found');
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
const stream = fs.createReadStream(fullPath);
|
|
101
|
+
reply.header('Content-Type', mime.getType(fullPath) ?? 'application/octet-stream');
|
|
102
|
+
return reply.send(stream);
|
|
103
|
+
},
|
|
104
|
+
});
|
|
105
|
+
fastify.addHook('onClose', () => {
|
|
106
|
+
serviceManager.removeAllServices();
|
|
107
|
+
});
|
|
108
|
+
};
|
|
109
|
+
//# sourceMappingURL=plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/server/plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { FeatureFlag } from '@baseplate-dev/project-builder-lib';
|
|
2
|
+
import type { FastifyInstance } from 'fastify';
|
|
3
|
+
import type { Logger } from 'pino';
|
|
4
|
+
import type { BaseplateUserConfig } from '#src/user-config/user-config-schema.js';
|
|
5
|
+
import type { BuilderServiceManager } from './builder-service-manager.js';
|
|
6
|
+
export interface WebServerOptions {
|
|
7
|
+
projectBuilderStaticDir?: string;
|
|
8
|
+
cliVersion: string;
|
|
9
|
+
logger: Logger;
|
|
10
|
+
featureFlags: FeatureFlag[];
|
|
11
|
+
serviceManager: BuilderServiceManager;
|
|
12
|
+
userConfig: BaseplateUserConfig;
|
|
13
|
+
port: number;
|
|
14
|
+
}
|
|
15
|
+
export declare function buildServer({ projectBuilderStaticDir, cliVersion, logger, featureFlags, serviceManager, userConfig, port, }: WebServerOptions): Promise<FastifyInstance>;
|
|
16
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,KAAK,EAAqB,eAAe,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAWnC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAElF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAK1E,MAAM,WAAW,gBAAgB;IAC/B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,cAAc,EAAE,qBAAqB,CAAC;IACtC,UAAU,EAAE,mBAAmB,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAsB,WAAW,CAAC,EAChC,uBAAuB,EACvB,UAAU,EACV,MAAM,EACN,YAAY,EACZ,cAAc,EACd,UAAU,EACV,IAAI,GACL,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CA8C7C"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import fastifyHelmet from '@fastify/helmet';
|
|
2
|
+
import fastifyStaticPlugin from '@fastify/static';
|
|
3
|
+
import fastifyWebsocketPlugin from '@fastify/websocket';
|
|
4
|
+
import { fastify } from 'fastify';
|
|
5
|
+
import { serializerCompiler, validatorCompiler, } from 'fastify-type-provider-zod';
|
|
6
|
+
import { gracefulShutdownPlugin } from './graceful-shutdown.js';
|
|
7
|
+
import { baseplatePlugin } from './plugin.js';
|
|
8
|
+
export async function buildServer({ projectBuilderStaticDir, cliVersion, logger, featureFlags, serviceManager, userConfig, port, }) {
|
|
9
|
+
const server = fastify({
|
|
10
|
+
forceCloseConnections: 'idle',
|
|
11
|
+
loggerInstance: logger,
|
|
12
|
+
maxParamLength: 10_000,
|
|
13
|
+
});
|
|
14
|
+
server.setValidatorCompiler(validatorCompiler);
|
|
15
|
+
server.setSerializerCompiler(serializerCompiler);
|
|
16
|
+
await server.register(gracefulShutdownPlugin);
|
|
17
|
+
await server.register(fastifyHelmet, {
|
|
18
|
+
contentSecurityPolicy: {
|
|
19
|
+
directives: {
|
|
20
|
+
// Disable upgrade-insecure-requests to allow insecure requests to localhost
|
|
21
|
+
// This is required for Safari to work (https://github.com/helmetjs/helmet/issues/429)
|
|
22
|
+
upgradeInsecureRequests: null,
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
});
|
|
26
|
+
await server.register(fastifyWebsocketPlugin);
|
|
27
|
+
await server.register(baseplatePlugin, {
|
|
28
|
+
cliVersion,
|
|
29
|
+
featureFlags,
|
|
30
|
+
serviceManager,
|
|
31
|
+
userConfig,
|
|
32
|
+
serverPort: port,
|
|
33
|
+
});
|
|
34
|
+
if (projectBuilderStaticDir) {
|
|
35
|
+
await server.register(fastifyStaticPlugin, {
|
|
36
|
+
root: projectBuilderStaticDir,
|
|
37
|
+
});
|
|
38
|
+
server.setNotFoundHandler(async (request, reply) => {
|
|
39
|
+
if (request.url.startsWith('/trpc') || request.url.startsWith('/api')) {
|
|
40
|
+
return reply.code(404).send({ error: 'Not found' });
|
|
41
|
+
}
|
|
42
|
+
return reply.sendFile('index.html');
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
return server;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"AAIA,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,mBAAmB,MAAM,iBAAiB,CAAC;AAClD,OAAO,sBAAsB,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EACL,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AAMnC,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAY9C,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,EAChC,uBAAuB,EACvB,UAAU,EACV,MAAM,EACN,YAAY,EACZ,cAAc,EACd,UAAU,EACV,IAAI,GACa;IACjB,MAAM,MAAM,GAAG,OAAO,CAAC;QACrB,qBAAqB,EAAE,MAAM;QAC7B,cAAc,EAAE,MAA2B;QAC3C,cAAc,EAAE,MAAM;KACvB,CAAC,CAAC;IAEH,MAAM,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;IAC/C,MAAM,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,CAAC;IAEjD,MAAM,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;IAE9C,MAAM,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE;QACnC,qBAAqB,EAAE;YACrB,UAAU,EAAE;gBACV,4EAA4E;gBAC5E,sFAAsF;gBACtF,uBAAuB,EAAE,IAAI;aAC9B;SACF;KACF,CAAC,CAAC;IAEH,MAAM,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;IAE9C,MAAM,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE;QACrC,UAAU;QACV,YAAY;QACZ,cAAc;QACd,UAAU;QACV,UAAU,EAAE,IAAI;KACjB,CAAC,CAAC;IAEH,IAAI,uBAAuB,EAAE,CAAC;QAC5B,MAAM,MAAM,CAAC,QAAQ,CAAC,mBAAmB,EAAE;YACzC,IAAI,EAAE,uBAAuB;SAC9B,CAAC,CAAC;QAEH,MAAM,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;YACjD,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtE,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;YACtD,CAAC;YACD,OAAO,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import type { PluginMetadataWithPaths, SchemaParserContext } from '@baseplate-dev/project-builder-lib';
|
|
2
|
+
import { TypedEventEmitter } from '@baseplate-dev/utils';
|
|
3
|
+
import type { SyncMetadata } from '#src/sync/index.js';
|
|
4
|
+
import type { BaseplateUserConfig } from '../user-config/user-config-schema.js';
|
|
5
|
+
/**
|
|
6
|
+
* The payload of a project definition file read operation.
|
|
7
|
+
*/
|
|
8
|
+
export interface ProjectDefinitionFilePayload {
|
|
9
|
+
/**
|
|
10
|
+
* The contents of the project definition file.
|
|
11
|
+
*/
|
|
12
|
+
contents: string;
|
|
13
|
+
/**
|
|
14
|
+
* The SHA-256 hash of the contents of the project definition file.
|
|
15
|
+
*/
|
|
16
|
+
hash: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* The result of a write operation on a project definition file.
|
|
20
|
+
*/
|
|
21
|
+
export type ProjectDefinitionFileWriteResult = {
|
|
22
|
+
type: 'success';
|
|
23
|
+
} | {
|
|
24
|
+
type: 'original-contents-mismatch';
|
|
25
|
+
currentPayload: ProjectDefinitionFilePayload;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* The payload of a command console emitted event.
|
|
29
|
+
*/
|
|
30
|
+
export interface CommandConsoleEmittedPayload {
|
|
31
|
+
id: string;
|
|
32
|
+
/**
|
|
33
|
+
* The message to display in the console.
|
|
34
|
+
*/
|
|
35
|
+
message: string;
|
|
36
|
+
}
|
|
37
|
+
interface ProjectBuilderServiceOptions {
|
|
38
|
+
directory: string;
|
|
39
|
+
id: string;
|
|
40
|
+
builtInPlugins: PluginMetadataWithPaths[];
|
|
41
|
+
cliVersion: string;
|
|
42
|
+
userConfig: BaseplateUserConfig;
|
|
43
|
+
skipCommands?: boolean;
|
|
44
|
+
}
|
|
45
|
+
export interface SyncMetadataChangedPayload {
|
|
46
|
+
id: string;
|
|
47
|
+
syncMetadata: SyncMetadata;
|
|
48
|
+
}
|
|
49
|
+
export interface SyncStartedPayload {
|
|
50
|
+
id: string;
|
|
51
|
+
}
|
|
52
|
+
export interface SyncCompletedPayload {
|
|
53
|
+
id: string;
|
|
54
|
+
syncMetadata: SyncMetadata;
|
|
55
|
+
}
|
|
56
|
+
interface ProjectBuilderServiceEvents {
|
|
57
|
+
'project-json-changed': ProjectDefinitionFilePayload;
|
|
58
|
+
'command-console-emitted': CommandConsoleEmittedPayload;
|
|
59
|
+
'sync-metadata-changed': SyncMetadataChangedPayload;
|
|
60
|
+
'sync-started': SyncStartedPayload;
|
|
61
|
+
'sync-completed': SyncCompletedPayload;
|
|
62
|
+
}
|
|
63
|
+
export declare class ProjectBuilderService extends TypedEventEmitter<ProjectBuilderServiceEvents> {
|
|
64
|
+
readonly directory: string;
|
|
65
|
+
private projectJsonPath;
|
|
66
|
+
private watcher;
|
|
67
|
+
readonly id: string;
|
|
68
|
+
private abortController;
|
|
69
|
+
private logger;
|
|
70
|
+
private cliVersion;
|
|
71
|
+
private cachedAvailablePlugins;
|
|
72
|
+
private builtInPlugins;
|
|
73
|
+
private schemaParserContext;
|
|
74
|
+
private userConfig;
|
|
75
|
+
private syncMetadataController;
|
|
76
|
+
private unsubscribeOperations;
|
|
77
|
+
private currentSyncConsoleOutput;
|
|
78
|
+
private conflictFileMonitor;
|
|
79
|
+
private skipCommands;
|
|
80
|
+
constructor({ directory, id, cliVersion, builtInPlugins, userConfig, skipCommands, }: ProjectBuilderServiceOptions);
|
|
81
|
+
protected handleProjectJsonChange(): void;
|
|
82
|
+
protected _getInitialProjectDefinition(): string;
|
|
83
|
+
/**
|
|
84
|
+
* Initializes the project builder service.
|
|
85
|
+
*/
|
|
86
|
+
init(): void;
|
|
87
|
+
/**
|
|
88
|
+
* Closes the project builder service.
|
|
89
|
+
*/
|
|
90
|
+
close(): void;
|
|
91
|
+
/**
|
|
92
|
+
* Returns the sync metadata.
|
|
93
|
+
*
|
|
94
|
+
* @returns The sync metadata.
|
|
95
|
+
*/
|
|
96
|
+
getSyncMetadata(): Promise<SyncMetadata>;
|
|
97
|
+
/**
|
|
98
|
+
* Reads the project definition file.
|
|
99
|
+
*
|
|
100
|
+
* @returns The contents of the project definition file.
|
|
101
|
+
*/
|
|
102
|
+
readDefinition(): Promise<ProjectDefinitionFilePayload>;
|
|
103
|
+
/**
|
|
104
|
+
* Writes a project definition file checking that the original contents match
|
|
105
|
+
* the current contents of the file to avoid overwriting changes made by the
|
|
106
|
+
* user.
|
|
107
|
+
*
|
|
108
|
+
* @param newContents - The new contents of the project definition file.
|
|
109
|
+
* @param oldContentsHash - The SHA-256 hash of the old contents of the project definition file.
|
|
110
|
+
* @returns The result of the write operation.
|
|
111
|
+
*/
|
|
112
|
+
writeDefinition(newContents: string, oldContentsHash: string): Promise<ProjectDefinitionFileWriteResult>;
|
|
113
|
+
/**
|
|
114
|
+
* Initiates a new build operation.
|
|
115
|
+
*/
|
|
116
|
+
buildProject(): Promise<void>;
|
|
117
|
+
/**
|
|
118
|
+
* Cancels the current sync operation.
|
|
119
|
+
*/
|
|
120
|
+
cancelSync(): void;
|
|
121
|
+
/**
|
|
122
|
+
* Returns the console output from the current sync operation.
|
|
123
|
+
*
|
|
124
|
+
* @returns The console output from the current sync operation.
|
|
125
|
+
*/
|
|
126
|
+
getCurrentSyncConsoleOutput(): string[];
|
|
127
|
+
getSchemaParserContext(): Promise<SchemaParserContext>;
|
|
128
|
+
getAvailablePlugins(): Promise<PluginMetadataWithPaths[]>;
|
|
129
|
+
private getPackageInfo;
|
|
130
|
+
/**
|
|
131
|
+
* Opens the editor for a file.
|
|
132
|
+
*
|
|
133
|
+
* @param packageId - The ID of the package.
|
|
134
|
+
* @param relativePath - The relative path of the file.
|
|
135
|
+
*/
|
|
136
|
+
openEditor(packageId: string, relativePath: string): Promise<void>;
|
|
137
|
+
private removeConflictFile;
|
|
138
|
+
/**
|
|
139
|
+
* Deletes a conflict file.
|
|
140
|
+
*
|
|
141
|
+
* @param packageId - The ID of the package.
|
|
142
|
+
* @param relativePath - The relative path of the file.
|
|
143
|
+
*/
|
|
144
|
+
deleteConflictFile(packageId: string, relativePath: string): Promise<void>;
|
|
145
|
+
/**
|
|
146
|
+
* Keeps a conflict file.
|
|
147
|
+
*
|
|
148
|
+
* @param packageId - The ID of the package.
|
|
149
|
+
* @param relativePath - The relative path of the file.
|
|
150
|
+
*/
|
|
151
|
+
keepConflictFile(packageId: string, relativePath: string): Promise<void>;
|
|
152
|
+
}
|
|
153
|
+
export {};
|
|
154
|
+
//# sourceMappingURL=builder-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builder-service.d.ts","sourceRoot":"","sources":["../../src/service/builder-service.ts"],"names":[],"mappings":"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"}
|