@empire-builder-kit/nx 1.0.0-beta.4
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 +201 -0
- package/NOTICE +5 -0
- package/README.md +25 -0
- package/executors.json +54 -0
- package/generators.json +35 -0
- package/migrations/standard-pre-v1-to-v1.md +11 -0
- package/package.json +66 -0
- package/src/blueprints/execution.d.ts +31 -0
- package/src/blueprints/execution.js +166 -0
- package/src/blueprints/execution.js.map +1 -0
- package/src/blueprints/index.d.ts +5 -0
- package/src/blueprints/index.js +9 -0
- package/src/blueprints/index.js.map +1 -0
- package/src/blueprints/inputs.d.ts +43 -0
- package/src/blueprints/inputs.js +103 -0
- package/src/blueprints/inputs.js.map +1 -0
- package/src/blueprints/manifest.d.ts +241 -0
- package/src/blueprints/manifest.js +369 -0
- package/src/blueprints/manifest.js.map +1 -0
- package/src/blueprints/resolver.d.ts +28 -0
- package/src/blueprints/resolver.js +214 -0
- package/src/blueprints/resolver.js.map +1 -0
- package/src/blueprints/transitions.d.ts +20 -0
- package/src/blueprints/transitions.js +61 -0
- package/src/blueprints/transitions.js.map +1 -0
- package/src/executors/deploy/deploy.d.ts +4 -0
- package/src/executors/deploy/deploy.js +6 -0
- package/src/executors/deploy/deploy.js.map +1 -0
- package/src/executors/dev/dev.d.ts +4 -0
- package/src/executors/dev/dev.js +6 -0
- package/src/executors/dev/dev.js.map +1 -0
- package/src/executors/dev-doctor/dev-doctor.d.ts +18 -0
- package/src/executors/dev-doctor/dev-doctor.js +145 -0
- package/src/executors/dev-doctor/dev-doctor.js.map +1 -0
- package/src/executors/dev-doctor/schema.json +17 -0
- package/src/executors/dev-setup/dev-setup.d.ts +11 -0
- package/src/executors/dev-setup/dev-setup.js +454 -0
- package/src/executors/dev-setup/dev-setup.js.map +1 -0
- package/src/executors/dev-setup/schema.json +16 -0
- package/src/executors/fleet/fleet.d.ts +51 -0
- package/src/executors/fleet/fleet.js +529 -0
- package/src/executors/fleet/fleet.js.map +1 -0
- package/src/executors/fleet/schema.json +25 -0
- package/src/executors/foundation-preflight/foundation-preflight.d.ts +15 -0
- package/src/executors/foundation-preflight/foundation-preflight.js +94 -0
- package/src/executors/foundation-preflight/foundation-preflight.js.map +1 -0
- package/src/executors/foundation-preflight/schema.json +31 -0
- package/src/executors/foundation-remove-preflight/foundation-remove-preflight.d.ts +13 -0
- package/src/executors/foundation-remove-preflight/foundation-remove-preflight.js +69 -0
- package/src/executors/foundation-remove-preflight/foundation-remove-preflight.js.map +1 -0
- package/src/executors/foundation-remove-preflight/schema.json +17 -0
- package/src/executors/refresh/refresh.d.ts +4 -0
- package/src/executors/refresh/refresh.js +6 -0
- package/src/executors/refresh/refresh.js.map +1 -0
- package/src/executors/remove/remove.d.ts +4 -0
- package/src/executors/remove/remove.js +6 -0
- package/src/executors/remove/remove.js.map +1 -0
- package/src/executors/sst-lifecycle/run-sst-command.d.ts +28 -0
- package/src/executors/sst-lifecycle/run-sst-command.js +154 -0
- package/src/executors/sst-lifecycle/run-sst-command.js.map +1 -0
- package/src/executors/sst-lifecycle/schema.json +45 -0
- package/src/executors/unlock/unlock.d.ts +4 -0
- package/src/executors/unlock/unlock.js +6 -0
- package/src/executors/unlock/unlock.js.map +1 -0
- package/src/foundation/aurora-logical-database.d.ts +76 -0
- package/src/foundation/aurora-logical-database.js +419 -0
- package/src/foundation/aurora-logical-database.js.map +1 -0
- package/src/foundation/discovery.d.ts +55 -0
- package/src/foundation/discovery.js +55 -0
- package/src/foundation/discovery.js.map +1 -0
- package/src/foundation/index.d.ts +6 -0
- package/src/foundation/index.js +10 -0
- package/src/foundation/index.js.map +1 -0
- package/src/foundation/local-database-contract.d.ts +30 -0
- package/src/foundation/local-database-contract.js +75 -0
- package/src/foundation/local-database-contract.js.map +1 -0
- package/src/foundation/preflight.d.ts +31 -0
- package/src/foundation/preflight.js +114 -0
- package/src/foundation/preflight.js.map +1 -0
- package/src/foundation/provision-database-bindings.d.ts +30 -0
- package/src/foundation/provision-database-bindings.js +113 -0
- package/src/foundation/provision-database-bindings.js.map +1 -0
- package/src/foundation/provision-logical-database.d.ts +26 -0
- package/src/foundation/provision-logical-database.js +162 -0
- package/src/foundation/provision-logical-database.js.map +1 -0
- package/src/foundation/requirements.d.ts +37 -0
- package/src/foundation/requirements.js +141 -0
- package/src/foundation/requirements.js.map +1 -0
- package/src/foundation/stages.d.ts +14 -0
- package/src/foundation/stages.js +51 -0
- package/src/foundation/stages.js.map +1 -0
- package/src/generators/function/function.d.ts +13 -0
- package/src/generators/function/function.js +71 -0
- package/src/generators/function/function.js.map +1 -0
- package/src/generators/function/schema.d.ts +5 -0
- package/src/generators/function/schema.json +20 -0
- package/src/generators/job/job.d.ts +4 -0
- package/src/generators/job/job.js +5 -0
- package/src/generators/job/job.js.map +1 -0
- package/src/generators/preset/generator.d.ts +5 -0
- package/src/generators/preset/generator.js +41 -0
- package/src/generators/preset/generator.js.map +1 -0
- package/src/generators/preset/schema.d.ts +4 -0
- package/src/generators/preset/schema.json +22 -0
- package/src/generators/preset/workspace-files.d.ts +18 -0
- package/src/generators/preset/workspace-files.js +895 -0
- package/src/generators/preset/workspace-files.js.map +1 -0
- package/src/generators/service/service.d.ts +4 -0
- package/src/generators/service/service.js +5 -0
- package/src/generators/service/service.js.map +1 -0
- package/src/generators/slice/schema.d.ts +7 -0
- package/src/generators/slice/schema.json +38 -0
- package/src/generators/slice/slice.d.ts +26 -0
- package/src/generators/slice/slice.js +1676 -0
- package/src/generators/slice/slice.js.map +1 -0
- package/src/generators/upgrade/schema.d.ts +8 -0
- package/src/generators/upgrade/schema.json +31 -0
- package/src/generators/upgrade/upgrade.d.ts +27 -0
- package/src/generators/upgrade/upgrade.js +666 -0
- package/src/generators/upgrade/upgrade.js.map +1 -0
- package/src/generators/workload/schema.d.ts +6 -0
- package/src/generators/workload/schema.json +21 -0
- package/src/generators/workload/workload.d.ts +16 -0
- package/src/generators/workload/workload.js +157 -0
- package/src/generators/workload/workload.js.map +1 -0
- package/src/index.d.ts +5 -0
- package/src/index.js +9 -0
- package/src/index.js.map +1 -0
- package/src/local-dev/contracts.d.ts +31 -0
- package/src/local-dev/contracts.js +126 -0
- package/src/local-dev/contracts.js.map +1 -0
- package/src/local-dev/gateway-daemon.d.ts +4 -0
- package/src/local-dev/gateway-daemon.js +39 -0
- package/src/local-dev/gateway-daemon.js.map +1 -0
- package/src/local-dev/gateway.d.ts +60 -0
- package/src/local-dev/gateway.js +368 -0
- package/src/local-dev/gateway.js.map +1 -0
- package/src/local-dev/identity.d.ts +16 -0
- package/src/local-dev/identity.js +101 -0
- package/src/local-dev/identity.js.map +1 -0
- package/src/local-dev/index.d.ts +7 -0
- package/src/local-dev/index.js +11 -0
- package/src/local-dev/index.js.map +1 -0
- package/src/local-dev/portless.d.ts +15 -0
- package/src/local-dev/portless.js +115 -0
- package/src/local-dev/portless.js.map +1 -0
- package/src/local-dev/ports.d.ts +10 -0
- package/src/local-dev/ports.js +39 -0
- package/src/local-dev/ports.js.map +1 -0
- package/src/local-dev/proxy.d.ts +37 -0
- package/src/local-dev/proxy.js +271 -0
- package/src/local-dev/proxy.js.map +1 -0
- package/src/local-dev/tls.d.ts +24 -0
- package/src/local-dev/tls.js +294 -0
- package/src/local-dev/tls.js.map +1 -0
- package/src/ownership/composition.d.ts +16 -0
- package/src/ownership/composition.js +125 -0
- package/src/ownership/composition.js.map +1 -0
- package/src/ownership/foundation-record.d.ts +66 -0
- package/src/ownership/foundation-record.js +108 -0
- package/src/ownership/foundation-record.js.map +1 -0
- package/src/ownership/hash.d.ts +2 -0
- package/src/ownership/hash.js +10 -0
- package/src/ownership/hash.js.map +1 -0
- package/src/ownership/index.d.ts +6 -0
- package/src/ownership/index.js +10 -0
- package/src/ownership/index.js.map +1 -0
- package/src/ownership/json-ownership.d.ts +13 -0
- package/src/ownership/json-ownership.js +147 -0
- package/src/ownership/json-ownership.js.map +1 -0
- package/src/ownership/record.d.ts +186 -0
- package/src/ownership/record.js +336 -0
- package/src/ownership/record.js.map +1 -0
- package/src/ownership/workspace-record.d.ts +66 -0
- package/src/ownership/workspace-record.js +108 -0
- package/src/ownership/workspace-record.js.map +1 -0
- package/src/schemas/blueprint-input-schema-v1.json +23 -0
- package/src/schemas/blueprint-v1.json +170 -0
- package/src/schemas/foundation-ownership-v2.json +42 -0
- package/src/schemas/foundation-requirement-v1.json +32 -0
- package/src/schemas/generated-ownership-v2.json +117 -0
- package/src/schemas/workspace-ownership-v2.json +42 -0
- package/src/validation.d.ts +14 -0
- package/src/validation.js +14 -0
- package/src/validation.js.map +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../../../../../packages/nx/src/generators/upgrade/upgrade.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/schema",
|
|
3
|
+
"$id": "EmpireBuilderKitWorkload",
|
|
4
|
+
"title": "Add an Empire Builder Kit TypeScript container workload",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"properties": {
|
|
8
|
+
"name": {
|
|
9
|
+
"type": "string",
|
|
10
|
+
"$default": { "$source": "argv", "index": 0 }
|
|
11
|
+
},
|
|
12
|
+
"slice": {
|
|
13
|
+
"type": "string",
|
|
14
|
+
"description": "Owning Product Slice",
|
|
15
|
+
"x-prompt": "Which Product Slice owns this workload?"
|
|
16
|
+
},
|
|
17
|
+
"skipFormat": { "type": "boolean", "default": false },
|
|
18
|
+
"skipInstall": { "type": "boolean", "default": false }
|
|
19
|
+
},
|
|
20
|
+
"required": ["name", "slice"]
|
|
21
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type GeneratorCallback, type Tree } from '@nx/devkit';
|
|
2
|
+
import type { WorkloadGeneratorSchema } from './schema.js';
|
|
3
|
+
export type WorkloadKind = 'job' | 'service';
|
|
4
|
+
export declare const WORKLOAD_PACKAGE_MANAGED_JSON_POINTERS: readonly ["/name", "/private", "/type", "/version", "/scripts/build", "/scripts/docker-build", "/scripts/dev", "/scripts/lint", "/scripts/test", "/scripts/typecheck", "/scripts/verify", "/devDependencies/@types~1node", "/devDependencies/typescript", "/devDependencies/vitest"];
|
|
5
|
+
export interface WorkloadFilePlan {
|
|
6
|
+
factoryName: string;
|
|
7
|
+
files: Readonly<Record<string, string>>;
|
|
8
|
+
paths: Array<{
|
|
9
|
+
managedJsonPointers?: string[];
|
|
10
|
+
mode?: 'managed' | 'seeded';
|
|
11
|
+
path: string;
|
|
12
|
+
}>;
|
|
13
|
+
project: string;
|
|
14
|
+
}
|
|
15
|
+
export declare function createWorkloadFilePlan(slice: string, workload: string, kind: WorkloadKind): WorkloadFilePlan;
|
|
16
|
+
export declare function workloadGenerator(tree: Tree, options: WorkloadGeneratorSchema, kind: WorkloadKind): Promise<GeneratorCallback | void>;
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WORKLOAD_PACKAGE_MANAGED_JSON_POINTERS = void 0;
|
|
4
|
+
exports.createWorkloadFilePlan = createWorkloadFilePlan;
|
|
5
|
+
exports.workloadGenerator = workloadGenerator;
|
|
6
|
+
const devkit_1 = require("@nx/devkit");
|
|
7
|
+
const node_path_1 = require("node:path");
|
|
8
|
+
const index_js_1 = require("../../ownership/index.js");
|
|
9
|
+
function name(value, label) {
|
|
10
|
+
const normalized = value.trim();
|
|
11
|
+
if (!/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/.test(normalized)) {
|
|
12
|
+
throw new Error(`${label} must start with a lowercase letter and use only lowercase letters, numbers, and hyphens.`);
|
|
13
|
+
}
|
|
14
|
+
return normalized;
|
|
15
|
+
}
|
|
16
|
+
function pascal(value) {
|
|
17
|
+
return value
|
|
18
|
+
.split('-')
|
|
19
|
+
.map((part) => part.charAt(0).toUpperCase() + part.slice(1))
|
|
20
|
+
.join('');
|
|
21
|
+
}
|
|
22
|
+
function replaceMarker(tree, path, marker, line) {
|
|
23
|
+
const source = tree.read(path, 'utf8');
|
|
24
|
+
if (source === null || !source.includes(marker)) {
|
|
25
|
+
throw new Error(`Product Slice composition marker ${marker} is missing from ${path}.`);
|
|
26
|
+
}
|
|
27
|
+
tree.write(path, source.replace(marker, `${line}\n${marker}`));
|
|
28
|
+
}
|
|
29
|
+
function json(value) {
|
|
30
|
+
return `${JSON.stringify(value, null, 2)}\n`;
|
|
31
|
+
}
|
|
32
|
+
exports.WORKLOAD_PACKAGE_MANAGED_JSON_POINTERS = [
|
|
33
|
+
'/name',
|
|
34
|
+
'/private',
|
|
35
|
+
'/type',
|
|
36
|
+
'/version',
|
|
37
|
+
'/scripts/build',
|
|
38
|
+
'/scripts/docker-build',
|
|
39
|
+
'/scripts/dev',
|
|
40
|
+
'/scripts/lint',
|
|
41
|
+
'/scripts/test',
|
|
42
|
+
'/scripts/typecheck',
|
|
43
|
+
'/scripts/verify',
|
|
44
|
+
'/devDependencies/@types~1node',
|
|
45
|
+
'/devDependencies/typescript',
|
|
46
|
+
'/devDependencies/vitest',
|
|
47
|
+
];
|
|
48
|
+
function createWorkloadFilePlan(slice, workload, kind) {
|
|
49
|
+
const plural = kind === 'service' ? 'services' : 'jobs';
|
|
50
|
+
const relativeRoot = node_path_1.posix.join(plural, workload);
|
|
51
|
+
const className = `${pascal(slice)}${pascal(workload)}${pascal(kind)}`;
|
|
52
|
+
const factoryName = `register${className}`;
|
|
53
|
+
const resource = kind === 'service' ? 'Service' : 'Task';
|
|
54
|
+
const entry = kind === 'service' ? 'dist/main.js' : 'dist/run.js';
|
|
55
|
+
const sourceName = kind === 'service' ? 'main.ts' : 'run.ts';
|
|
56
|
+
const files = {
|
|
57
|
+
[`${relativeRoot}/package.json`]: json({
|
|
58
|
+
name: `@${slice}/${kind}-${workload}`,
|
|
59
|
+
private: true,
|
|
60
|
+
type: 'module',
|
|
61
|
+
version: '0.0.0',
|
|
62
|
+
scripts: {
|
|
63
|
+
build: 'tsc -p tsconfig.json',
|
|
64
|
+
'docker-build': `docker build -t ${slice}-${kind}-${workload}:local .`,
|
|
65
|
+
dev: `node --experimental-strip-types ${kind === 'service' ? 'src/main.ts' : 'src/run.ts'}`,
|
|
66
|
+
lint: 'eslint .',
|
|
67
|
+
test: 'vitest run',
|
|
68
|
+
typecheck: 'tsc --noEmit -p tsconfig.json',
|
|
69
|
+
verify: 'pnpm run lint && pnpm run typecheck && pnpm test && pnpm run build',
|
|
70
|
+
},
|
|
71
|
+
devDependencies: {
|
|
72
|
+
'@types/node': '25.5.0',
|
|
73
|
+
typescript: '~5.9.2',
|
|
74
|
+
vitest: '4.1.4',
|
|
75
|
+
},
|
|
76
|
+
}),
|
|
77
|
+
[`${relativeRoot}/tsconfig.json`]: json({
|
|
78
|
+
compilerOptions: {
|
|
79
|
+
forceConsistentCasingInFileNames: true,
|
|
80
|
+
module: 'nodenext',
|
|
81
|
+
moduleResolution: 'nodenext',
|
|
82
|
+
noEmitOnError: true,
|
|
83
|
+
outDir: 'dist',
|
|
84
|
+
rootDir: 'src',
|
|
85
|
+
strict: true,
|
|
86
|
+
target: 'es2022',
|
|
87
|
+
types: ['node'],
|
|
88
|
+
},
|
|
89
|
+
include: ['src/**/*.ts'],
|
|
90
|
+
}),
|
|
91
|
+
[`${relativeRoot}/vitest.config.ts`]: `import { configDefaults, defineConfig } from 'vitest/config';\n\nexport default defineConfig({\n test: {\n environment: 'node',\n exclude: [...configDefaults.exclude, '**/dist/**'],\n },\n});\n`,
|
|
92
|
+
[`${relativeRoot}/Dockerfile`]: `FROM node:22-alpine AS build\nWORKDIR /app\nCOPY package.json tsconfig.json ./\nCOPY src ./src\nRUN npm install && npm run build && npm prune --omit=dev\n\nFROM node:22-alpine\nWORKDIR /app\nCOPY --from=build /app/package.json ./package.json\nCOPY --from=build /app/node_modules ./node_modules\nCOPY --from=build /app/dist ./dist\nUSER node\nCMD ["node", "${entry}"]\n`,
|
|
93
|
+
[`${relativeRoot}/README.md`]: `# ${workload} ${kind}\n\nOwned by the ${slice} Product Slice. Run build, test, typecheck, verify, dev, and docker-build through this package's inferred Nx targets. Add runtime dependencies with \`pnpm --filter @${slice}/${kind}-${workload} add <package>\`; EBK upgrades preserve adopter-owned manifest keys and the production image retains installed runtime dependencies. Document ${kind === 'service' ? 'health, scaling, and rollback' : 'invocation, retry, idempotency, and failure recovery'} before production use.\n`,
|
|
94
|
+
[`${relativeRoot}/src/${sourceName}`]: kind === 'service'
|
|
95
|
+
? `import { createServer } from 'node:http';\n\nexport function healthResponse(path: string | undefined) {\n const healthy = path === '/health';\n return { body: { service: '${workload}', status: healthy ? 'ok' : 'not_found' }, status: healthy ? 200 : 404 };\n}\n\nexport function start() {\n const port = Number(process.env.PORT ?? 3000);\n return createServer((request, response) => {\n const result = healthResponse(request.url);\n response.writeHead(result.status, { 'content-type': 'application/json' });\n response.end(JSON.stringify(result.body));\n }).listen(port);\n}\n\nif (import.meta.url === new URL(process.argv[1] ?? '', 'file:').href) start();\n`
|
|
96
|
+
: `export async function run() {\n console.info(JSON.stringify({ job: '${workload}', status: 'started', trigger: process.env.JOB_TRIGGER ?? 'manual' }));\n return { ok: true };\n}\n\nif (import.meta.url === new URL(process.argv[1] ?? '', 'file:').href) {\n await run();\n}\n`,
|
|
97
|
+
[`${relativeRoot}/src/workload.spec.ts`]: kind === 'service'
|
|
98
|
+
? `import { describe, expect, it } from 'vitest';\nimport { healthResponse } from './main.js';\n\ndescribe('${workload} service', () => {\n it('reports healthy only on the health endpoint', () => {\n expect(healthResponse('/health')).toEqual({ body: { service: '${workload}', status: 'ok' }, status: 200 });\n expect(healthResponse('/missing').status).toBe(404);\n });\n});\n`
|
|
99
|
+
: `import { describe, expect, it, vi } from 'vitest';\nimport { run } from './run.js';\n\ndescribe('${workload} job', () => {\n it('completes the generated unit of work', async () => {\n vi.spyOn(console, 'info').mockImplementation(() => undefined);\n await expect(run()).resolves.toEqual({ ok: true });\n });\n});\n`,
|
|
100
|
+
[`${relativeRoot}/infra.ts`]: `export function ${factoryName}(cluster: any) {\n const workload = new sst.aws.${resource}('${className}', {\n cluster,\n environment: { EBK_STAGE: $app.stage },\n ${kind === 'service' ? "image: { context: './services/" + workload + "', dockerfile: 'Dockerfile' },\n health: { command: ['CMD-SHELL', 'wget -qO- http://localhost:3000/health || exit 1'] },\n logging: { retention: '1 month' },\n serviceRegistry: { port: 3000 }," : "image: { context: './jobs/" + workload + "', dockerfile: 'Dockerfile' },\n logging: { retention: '1 month' },"}\n });\n return workload;\n}\n`,
|
|
101
|
+
};
|
|
102
|
+
(0, index_js_1.assertManagedJsonPointersExist)(files[`${relativeRoot}/package.json`] ?? '', exports.WORKLOAD_PACKAGE_MANAGED_JSON_POINTERS, `Built-in ${kind} package.json`);
|
|
103
|
+
return {
|
|
104
|
+
factoryName,
|
|
105
|
+
files,
|
|
106
|
+
paths: [
|
|
107
|
+
{ mode: 'seeded', path: `${relativeRoot}/README.md` },
|
|
108
|
+
{ path: `${relativeRoot}/Dockerfile` },
|
|
109
|
+
{ path: `${relativeRoot}/infra.ts` },
|
|
110
|
+
{
|
|
111
|
+
managedJsonPointers: [...exports.WORKLOAD_PACKAGE_MANAGED_JSON_POINTERS],
|
|
112
|
+
path: `${relativeRoot}/package.json`,
|
|
113
|
+
},
|
|
114
|
+
{ mode: 'seeded', path: `${relativeRoot}/src/${sourceName}` },
|
|
115
|
+
{ mode: 'seeded', path: `${relativeRoot}/src/workload.spec.ts` },
|
|
116
|
+
{ path: `${relativeRoot}/tsconfig.json` },
|
|
117
|
+
{ path: `${relativeRoot}/vitest.config.ts` },
|
|
118
|
+
],
|
|
119
|
+
project: `@${slice}/${kind}-${workload}`,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
async function workloadGenerator(tree, options, kind) {
|
|
123
|
+
const slice = name(options.slice, 'Product Slice name');
|
|
124
|
+
const workload = name(options.name, kind === 'service' ? 'Service name' : 'Job name');
|
|
125
|
+
const plural = kind === 'service' ? 'services' : 'jobs';
|
|
126
|
+
const sliceRoot = node_path_1.posix.join('packages', slice);
|
|
127
|
+
const root = node_path_1.posix.join(sliceRoot, plural, workload);
|
|
128
|
+
const productPath = node_path_1.posix.join(sliceRoot, 'infra/product.ts');
|
|
129
|
+
if (!tree.exists(productPath)) {
|
|
130
|
+
throw new Error(`${slice} is not an EBK v1 Product Slice.`);
|
|
131
|
+
}
|
|
132
|
+
if (tree.exists(root)) {
|
|
133
|
+
throw new Error(`${kind} ${workload} already exists at ${root}.`);
|
|
134
|
+
}
|
|
135
|
+
const plan = createWorkloadFilePlan(slice, workload, kind);
|
|
136
|
+
const { factoryName } = plan;
|
|
137
|
+
const infraRelative = `../${plural}/${workload}/infra.js`;
|
|
138
|
+
for (const [path, contents] of Object.entries(plan.files)) {
|
|
139
|
+
tree.write(node_path_1.posix.join(sliceRoot, path), contents);
|
|
140
|
+
}
|
|
141
|
+
replaceMarker(tree, productPath, '// <ebk:composition-imports:end>', `import { ${factoryName} } from '${infraRelative}';`);
|
|
142
|
+
replaceMarker(tree, productPath, '// <ebk:workload-registrations:end>', ` const ${kind}${pascal(workload)} = ${factoryName}(foundation.cluster);`);
|
|
143
|
+
replaceMarker(tree, productPath, '// <ebk:composition-outputs:end>', ` ${kind}${pascal(workload)},`);
|
|
144
|
+
if (!options.skipFormat)
|
|
145
|
+
await (0, devkit_1.formatFiles)(tree);
|
|
146
|
+
(0, index_js_1.recordCompositionOwnership)(tree, {
|
|
147
|
+
paths: [...plan.paths, { path: 'infra/product.ts' }],
|
|
148
|
+
projects: [plan.project],
|
|
149
|
+
slice,
|
|
150
|
+
});
|
|
151
|
+
if (!options.skipFormat)
|
|
152
|
+
await (0, devkit_1.formatFiles)(tree);
|
|
153
|
+
return options.skipInstall
|
|
154
|
+
? undefined
|
|
155
|
+
: () => (0, devkit_1.installPackagesTask)(tree, true);
|
|
156
|
+
}
|
|
157
|
+
//# sourceMappingURL=workload.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workload.js","sourceRoot":"","sources":["../../../../../../packages/nx/src/generators/workload/workload.ts"],"names":[],"mappings":"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"}
|
package/src/index.d.ts
ADDED
package/src/index.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./blueprints/index.js"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./foundation/index.js"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./local-dev/index.js"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./ownership/index.js"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./validation.js"), exports);
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
package/src/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/nx/src/index.ts"],"names":[],"mappings":";;;AAAA,gEAAsC;AACtC,gEAAsC;AACtC,+DAAqC;AACrC,+DAAqC;AACrC,0DAAgC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export declare const LOCAL_DEV_ADAPTER_VERSION: 1;
|
|
2
|
+
export declare const GATEWAY_PROTOCOL_VERSION: 1;
|
|
3
|
+
export declare const SESSION_MANIFEST_VERSION: 1;
|
|
4
|
+
export type LocalDatabaseMode = 'deployed' | 'local' | 'none';
|
|
5
|
+
export interface WebLocalDevAdapterV1 {
|
|
6
|
+
adapterVersion: typeof LOCAL_DEV_ADAPTER_VERSION;
|
|
7
|
+
auth?: {
|
|
8
|
+
callbackPaths?: string[];
|
|
9
|
+
logoutPaths?: string[];
|
|
10
|
+
};
|
|
11
|
+
databaseMode: LocalDatabaseMode;
|
|
12
|
+
healthPath: string;
|
|
13
|
+
kind: 'web';
|
|
14
|
+
portEnvironment: string;
|
|
15
|
+
routePrefix: string;
|
|
16
|
+
target: string;
|
|
17
|
+
websocket: boolean;
|
|
18
|
+
}
|
|
19
|
+
export type LocalDevAdapter = WebLocalDevAdapterV1;
|
|
20
|
+
export interface FleetRoute {
|
|
21
|
+
adapter?: LocalDevAdapter;
|
|
22
|
+
name: string;
|
|
23
|
+
selected: boolean;
|
|
24
|
+
state: 'remote' | 'starting' | 'ready' | 'unavailable';
|
|
25
|
+
upstream?: URL;
|
|
26
|
+
}
|
|
27
|
+
export declare function validateLocalDevAdapter(value: unknown): LocalDevAdapter;
|
|
28
|
+
export declare function validateFleetAdapters(entries: readonly {
|
|
29
|
+
adapter: unknown;
|
|
30
|
+
name: string;
|
|
31
|
+
}[]): ReadonlyMap<string, LocalDevAdapter>;
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SESSION_MANIFEST_VERSION = exports.GATEWAY_PROTOCOL_VERSION = exports.LOCAL_DEV_ADAPTER_VERSION = void 0;
|
|
4
|
+
exports.validateLocalDevAdapter = validateLocalDevAdapter;
|
|
5
|
+
exports.validateFleetAdapters = validateFleetAdapters;
|
|
6
|
+
exports.LOCAL_DEV_ADAPTER_VERSION = 1;
|
|
7
|
+
exports.GATEWAY_PROTOCOL_VERSION = 1;
|
|
8
|
+
exports.SESSION_MANIFEST_VERSION = 1;
|
|
9
|
+
const namePattern = /^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/;
|
|
10
|
+
const environmentPattern = /^[A-Z][A-Z0-9_]*$/;
|
|
11
|
+
const targetPattern = /^[a-zA-Z0-9][a-zA-Z0-9_-]*$/;
|
|
12
|
+
function requirePath(value, label) {
|
|
13
|
+
if (typeof value !== 'string' ||
|
|
14
|
+
!value.startsWith('/') ||
|
|
15
|
+
value.includes('?') ||
|
|
16
|
+
value.includes('#') ||
|
|
17
|
+
value.includes('\\') ||
|
|
18
|
+
value.includes('//') ||
|
|
19
|
+
value.includes('/../') ||
|
|
20
|
+
value.endsWith('/..')) {
|
|
21
|
+
throw new Error(`${label} must be a normalized absolute path.`);
|
|
22
|
+
}
|
|
23
|
+
return value.length > 1 && value.endsWith('/') ? value.slice(0, -1) : value;
|
|
24
|
+
}
|
|
25
|
+
function optionalPaths(value, label) {
|
|
26
|
+
if (value === undefined)
|
|
27
|
+
return undefined;
|
|
28
|
+
if (!Array.isArray(value))
|
|
29
|
+
throw new Error(`${label} must be an array.`);
|
|
30
|
+
const paths = value.map((entry, index) => requirePath(entry, `${label}[${index}]`));
|
|
31
|
+
if (new Set(paths).size !== paths.length) {
|
|
32
|
+
throw new Error(`${label} must not contain duplicate paths.`);
|
|
33
|
+
}
|
|
34
|
+
return paths;
|
|
35
|
+
}
|
|
36
|
+
function validateLocalDevAdapter(value) {
|
|
37
|
+
if (!value || typeof value !== 'object' || Array.isArray(value)) {
|
|
38
|
+
throw new Error('Local-dev adapter must be an object.');
|
|
39
|
+
}
|
|
40
|
+
const candidate = value;
|
|
41
|
+
const allowed = new Set([
|
|
42
|
+
'adapterVersion',
|
|
43
|
+
'auth',
|
|
44
|
+
'databaseMode',
|
|
45
|
+
'healthPath',
|
|
46
|
+
'kind',
|
|
47
|
+
'portEnvironment',
|
|
48
|
+
'routePrefix',
|
|
49
|
+
'target',
|
|
50
|
+
'websocket',
|
|
51
|
+
]);
|
|
52
|
+
const unknown = Object.keys(candidate).filter((key) => !allowed.has(key));
|
|
53
|
+
if (unknown.length > 0) {
|
|
54
|
+
throw new Error(`Local-dev adapter has unknown member ${unknown[0]}.`);
|
|
55
|
+
}
|
|
56
|
+
if (candidate.adapterVersion !== exports.LOCAL_DEV_ADAPTER_VERSION) {
|
|
57
|
+
throw new Error(`Local-dev adapter version must be ${exports.LOCAL_DEV_ADAPTER_VERSION}.`);
|
|
58
|
+
}
|
|
59
|
+
if (candidate.kind !== 'web') {
|
|
60
|
+
throw new Error('Local-dev adapter kind must be web.');
|
|
61
|
+
}
|
|
62
|
+
if (candidate.databaseMode !== 'local' &&
|
|
63
|
+
candidate.databaseMode !== 'deployed' &&
|
|
64
|
+
candidate.databaseMode !== 'none') {
|
|
65
|
+
throw new Error('Local-dev adapter databaseMode must be local, deployed, or none.');
|
|
66
|
+
}
|
|
67
|
+
if (typeof candidate.portEnvironment !== 'string' ||
|
|
68
|
+
!environmentPattern.test(candidate.portEnvironment)) {
|
|
69
|
+
throw new Error('Local-dev adapter portEnvironment must be an uppercase environment name.');
|
|
70
|
+
}
|
|
71
|
+
if (typeof candidate.target !== 'string' ||
|
|
72
|
+
!targetPattern.test(candidate.target)) {
|
|
73
|
+
throw new Error('Local-dev adapter target must be a valid Nx target name.');
|
|
74
|
+
}
|
|
75
|
+
if (typeof candidate.websocket !== 'boolean') {
|
|
76
|
+
throw new Error('Local-dev adapter websocket must be boolean.');
|
|
77
|
+
}
|
|
78
|
+
let auth;
|
|
79
|
+
if (candidate.auth !== undefined) {
|
|
80
|
+
if (!candidate.auth || typeof candidate.auth !== 'object') {
|
|
81
|
+
throw new Error('Local-dev adapter auth must be an object.');
|
|
82
|
+
}
|
|
83
|
+
const authCandidate = candidate.auth;
|
|
84
|
+
const authUnknown = Object.keys(authCandidate).filter((key) => key !== 'callbackPaths' && key !== 'logoutPaths');
|
|
85
|
+
if (authUnknown.length > 0) {
|
|
86
|
+
throw new Error(`Local-dev adapter auth has unknown member ${authUnknown[0]}.`);
|
|
87
|
+
}
|
|
88
|
+
auth = {
|
|
89
|
+
callbackPaths: optionalPaths(authCandidate.callbackPaths, 'Local-dev adapter auth.callbackPaths'),
|
|
90
|
+
logoutPaths: optionalPaths(authCandidate.logoutPaths, 'Local-dev adapter auth.logoutPaths'),
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
const routePrefix = requirePath(candidate.routePrefix, 'Local-dev adapter routePrefix');
|
|
94
|
+
if (routePrefix === '/') {
|
|
95
|
+
throw new Error('Local-dev adapter routePrefix must identify a slice path.');
|
|
96
|
+
}
|
|
97
|
+
return {
|
|
98
|
+
adapterVersion: exports.LOCAL_DEV_ADAPTER_VERSION,
|
|
99
|
+
...(auth ? { auth } : {}),
|
|
100
|
+
databaseMode: candidate.databaseMode,
|
|
101
|
+
healthPath: requirePath(candidate.healthPath, 'Local-dev adapter healthPath'),
|
|
102
|
+
kind: 'web',
|
|
103
|
+
portEnvironment: candidate.portEnvironment,
|
|
104
|
+
routePrefix,
|
|
105
|
+
target: candidate.target,
|
|
106
|
+
websocket: candidate.websocket,
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
function validateFleetAdapters(entries) {
|
|
110
|
+
const adapters = new Map();
|
|
111
|
+
const prefixes = new Map();
|
|
112
|
+
for (const { adapter: raw, name } of entries) {
|
|
113
|
+
if (!namePattern.test(name)) {
|
|
114
|
+
throw new Error(`Product Slice name ${name} is not DNS-safe.`);
|
|
115
|
+
}
|
|
116
|
+
const adapter = validateLocalDevAdapter(raw);
|
|
117
|
+
const owner = prefixes.get(adapter.routePrefix);
|
|
118
|
+
if (owner) {
|
|
119
|
+
throw new Error(`Local-dev routePrefix ${adapter.routePrefix} is declared by both ${owner} and ${name}.`);
|
|
120
|
+
}
|
|
121
|
+
prefixes.set(adapter.routePrefix, name);
|
|
122
|
+
adapters.set(name, adapter);
|
|
123
|
+
}
|
|
124
|
+
return adapters;
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=contracts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../../../../packages/nx/src/local-dev/contracts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.runGatewayDaemon = runGatewayDaemon;
|
|
4
|
+
const node_fs_1 = require("node:fs");
|
|
5
|
+
const gateway_js_1 = require("./gateway.js");
|
|
6
|
+
const tls_js_1 = require("./tls.js");
|
|
7
|
+
async function runGatewayDaemon(options) {
|
|
8
|
+
const paths = (0, tls_js_1.localTlsPaths)(options.appData);
|
|
9
|
+
if (process.platform !== 'win32')
|
|
10
|
+
(0, node_fs_1.rmSync)(paths.gatewaySocket, { force: true });
|
|
11
|
+
const capability = (0, node_fs_1.readFileSync)(paths.capability, 'utf8').trim();
|
|
12
|
+
const gateway = new gateway_js_1.MachineGateway(new gateway_js_1.GatewayRegistry(capability), {
|
|
13
|
+
cert: (0, node_fs_1.readFileSync)(paths.leafCertificate),
|
|
14
|
+
key: (0, node_fs_1.readFileSync)(paths.leafKey),
|
|
15
|
+
});
|
|
16
|
+
await gateway.listen(options.port ?? 443, paths.gatewaySocket);
|
|
17
|
+
(0, node_fs_1.writeFileSync)(paths.gatewayPid, `${process.pid}\n`, { mode: 0o600 });
|
|
18
|
+
const shutdown = async () => {
|
|
19
|
+
await gateway.close().catch(() => undefined);
|
|
20
|
+
(0, node_fs_1.rmSync)(paths.gatewayPid, { force: true });
|
|
21
|
+
if (process.platform !== 'win32')
|
|
22
|
+
(0, node_fs_1.rmSync)(paths.gatewaySocket, { force: true });
|
|
23
|
+
};
|
|
24
|
+
process.once('SIGINT', () => void shutdown().finally(() => process.exit(0)));
|
|
25
|
+
process.once('SIGTERM', () => void shutdown().finally(() => process.exit(0)));
|
|
26
|
+
await new Promise(() => undefined);
|
|
27
|
+
}
|
|
28
|
+
if (require.main === module) {
|
|
29
|
+
const appData = process.argv[2];
|
|
30
|
+
const port = Number(process.argv[3] ?? '443');
|
|
31
|
+
if (!appData || !Number.isInteger(port)) {
|
|
32
|
+
throw new Error('Usage: gateway-daemon <app-data> [port]');
|
|
33
|
+
}
|
|
34
|
+
void runGatewayDaemon({ appData, port }).catch((error) => {
|
|
35
|
+
process.stderr.write(`${error instanceof Error ? error.stack : String(error)}\n`);
|
|
36
|
+
process.exitCode = 1;
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=gateway-daemon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gateway-daemon.js","sourceRoot":"","sources":["../../../../../packages/nx/src/local-dev/gateway-daemon.ts"],"names":[],"mappings":";;AAIA,4CAuBC;AA3BD,qCAA8D;AAC9D,6CAA+D;AAC/D,qCAAyC;AAElC,KAAK,UAAU,gBAAgB,CAAC,OAGtC;IACC,MAAM,KAAK,GAAG,IAAA,sBAAa,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7C,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;QAC9B,IAAA,gBAAM,EAAC,KAAK,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,IAAA,sBAAY,EAAC,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IACjE,MAAM,OAAO,GAAG,IAAI,2BAAc,CAAC,IAAI,4BAAe,CAAC,UAAU,CAAC,EAAE;QAClE,IAAI,EAAE,IAAA,sBAAY,EAAC,KAAK,CAAC,eAAe,CAAC;QACzC,GAAG,EAAE,IAAA,sBAAY,EAAC,KAAK,CAAC,OAAO,CAAC;KACjC,CAAC,CAAC;IACH,MAAM,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,GAAG,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;IAC/D,IAAA,uBAAa,EAAC,KAAK,CAAC,UAAU,EAAE,GAAG,OAAO,CAAC,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACrE,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;QAC1B,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAA,gBAAM,EAAC,KAAK,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1C,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;YAC9B,IAAA,gBAAM,EAAC,KAAK,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7E,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,KAAK,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9E,MAAM,IAAI,OAAO,CAAO,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;AAC3C,CAAC;AAED,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC5B,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChC,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC;IAC9C,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IACD,KAAK,gBAAgB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACvD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAC5D,CAAC;QACF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import type { Duplex } from 'node:stream';
|
|
2
|
+
export interface GatewayRegistrationRequest {
|
|
3
|
+
capability: string;
|
|
4
|
+
clientFrameworkVersion: string;
|
|
5
|
+
hostname: string;
|
|
6
|
+
protocol: {
|
|
7
|
+
maximum: number;
|
|
8
|
+
minimum: number;
|
|
9
|
+
};
|
|
10
|
+
proxyPort: number;
|
|
11
|
+
sessionId: string;
|
|
12
|
+
sessionManifestVersion: number;
|
|
13
|
+
}
|
|
14
|
+
export interface GatewayRegistration {
|
|
15
|
+
clientFrameworkVersion: string;
|
|
16
|
+
expiresAt: number;
|
|
17
|
+
hostname: string;
|
|
18
|
+
negotiatedProtocol: number;
|
|
19
|
+
proxyPort: number;
|
|
20
|
+
sessionId: string;
|
|
21
|
+
}
|
|
22
|
+
export declare function negotiateGatewayProtocol(range: {
|
|
23
|
+
maximum: number;
|
|
24
|
+
minimum: number;
|
|
25
|
+
}): number;
|
|
26
|
+
export declare function createGatewayCapability(): string;
|
|
27
|
+
export declare class GatewayRegistry {
|
|
28
|
+
#private;
|
|
29
|
+
readonly options: {
|
|
30
|
+
now?: () => number;
|
|
31
|
+
ttlMs?: number;
|
|
32
|
+
};
|
|
33
|
+
constructor(capability: string, options?: {
|
|
34
|
+
now?: () => number;
|
|
35
|
+
ttlMs?: number;
|
|
36
|
+
});
|
|
37
|
+
authorize(capability: unknown): void;
|
|
38
|
+
register(request: GatewayRegistrationRequest): GatewayRegistration;
|
|
39
|
+
heartbeat(hostname: string, sessionId: string): GatewayRegistration;
|
|
40
|
+
unregister(hostname: string, sessionId: string): boolean;
|
|
41
|
+
resolve(hostname: string): GatewayRegistration | undefined;
|
|
42
|
+
expire(): void;
|
|
43
|
+
get activeCount(): number;
|
|
44
|
+
}
|
|
45
|
+
export declare class MachineGateway {
|
|
46
|
+
#private;
|
|
47
|
+
readonly registry: GatewayRegistry;
|
|
48
|
+
readonly options: {
|
|
49
|
+
cert: string | Buffer;
|
|
50
|
+
key: string | Buffer;
|
|
51
|
+
};
|
|
52
|
+
constructor(registry: GatewayRegistry, options: {
|
|
53
|
+
cert: string | Buffer;
|
|
54
|
+
key: string | Buffer;
|
|
55
|
+
});
|
|
56
|
+
listen(port: number, ipcPath: string): Promise<void>;
|
|
57
|
+
close(): Promise<void>;
|
|
58
|
+
}
|
|
59
|
+
export type GatewaySocket = Duplex;
|
|
60
|
+
export declare function sendGatewayCommand<T>(ipcPath: string, message: unknown, timeoutMs?: number): Promise<T>;
|