@tiangong-lca/cli 0.0.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/README.md +368 -0
- package/bin/tiangong.d.ts +1 -0
- package/bin/tiangong.js +32 -0
- package/dist/scripts/assert-full-coverage.js +77 -0
- package/dist/scripts/assert-full-coverage.js.map +1 -0
- package/dist/src/cli.js +2740 -0
- package/dist/src/cli.js.map +1 -0
- package/dist/src/lib/artifacts.js +86 -0
- package/dist/src/lib/artifacts.js.map +1 -0
- package/dist/src/lib/dotenv.js +36 -0
- package/dist/src/lib/dotenv.js.map +1 -0
- package/dist/src/lib/env.js +139 -0
- package/dist/src/lib/env.js.map +1 -0
- package/dist/src/lib/errors.js +38 -0
- package/dist/src/lib/errors.js.map +1 -0
- package/dist/src/lib/flow-build-alias-map.js +299 -0
- package/dist/src/lib/flow-build-alias-map.js.map +1 -0
- package/dist/src/lib/flow-get.js +81 -0
- package/dist/src/lib/flow-get.js.map +1 -0
- package/dist/src/lib/flow-governance.js +164 -0
- package/dist/src/lib/flow-governance.js.map +1 -0
- package/dist/src/lib/flow-list.js +187 -0
- package/dist/src/lib/flow-list.js.map +1 -0
- package/dist/src/lib/flow-publish-reviewed-data.js +808 -0
- package/dist/src/lib/flow-publish-reviewed-data.js.map +1 -0
- package/dist/src/lib/flow-publish-version.js +541 -0
- package/dist/src/lib/flow-publish-version.js.map +1 -0
- package/dist/src/lib/flow-read.js +310 -0
- package/dist/src/lib/flow-read.js.map +1 -0
- package/dist/src/lib/flow-regen-product.js +1396 -0
- package/dist/src/lib/flow-regen-product.js.map +1 -0
- package/dist/src/lib/flow-remediate.js +821 -0
- package/dist/src/lib/flow-remediate.js.map +1 -0
- package/dist/src/lib/http.js +45 -0
- package/dist/src/lib/http.js.map +1 -0
- package/dist/src/lib/io.js +30 -0
- package/dist/src/lib/io.js.map +1 -0
- package/dist/src/lib/kb-search.js +83 -0
- package/dist/src/lib/kb-search.js.map +1 -0
- package/dist/src/lib/lifecyclemodel-auto-build.js +1328 -0
- package/dist/src/lib/lifecyclemodel-auto-build.js.map +1 -0
- package/dist/src/lib/lifecyclemodel-orchestrate.js +1556 -0
- package/dist/src/lib/lifecyclemodel-orchestrate.js.map +1 -0
- package/dist/src/lib/lifecyclemodel-publish-build.js +296 -0
- package/dist/src/lib/lifecyclemodel-publish-build.js.map +1 -0
- package/dist/src/lib/lifecyclemodel-publish-resulting-process.js +101 -0
- package/dist/src/lib/lifecyclemodel-publish-resulting-process.js.map +1 -0
- package/dist/src/lib/lifecyclemodel-resulting-process.js +1152 -0
- package/dist/src/lib/lifecyclemodel-resulting-process.js.map +1 -0
- package/dist/src/lib/lifecyclemodel-validate-build.js +238 -0
- package/dist/src/lib/lifecyclemodel-validate-build.js.map +1 -0
- package/dist/src/lib/llm.js +383 -0
- package/dist/src/lib/llm.js.map +1 -0
- package/dist/src/lib/process-auto-build.js +717 -0
- package/dist/src/lib/process-auto-build.js.map +1 -0
- package/dist/src/lib/process-batch-build.js +409 -0
- package/dist/src/lib/process-batch-build.js.map +1 -0
- package/dist/src/lib/process-get.js +66 -0
- package/dist/src/lib/process-get.js.map +1 -0
- package/dist/src/lib/process-publish-build.js +451 -0
- package/dist/src/lib/process-publish-build.js.map +1 -0
- package/dist/src/lib/process-resume-build.js +364 -0
- package/dist/src/lib/process-resume-build.js.map +1 -0
- package/dist/src/lib/publish.js +562 -0
- package/dist/src/lib/publish.js.map +1 -0
- package/dist/src/lib/remote.js +88 -0
- package/dist/src/lib/remote.js.map +1 -0
- package/dist/src/lib/review-flow.js +1110 -0
- package/dist/src/lib/review-flow.js.map +1 -0
- package/dist/src/lib/review-lifecyclemodel.js +727 -0
- package/dist/src/lib/review-lifecyclemodel.js.map +1 -0
- package/dist/src/lib/review-process.js +702 -0
- package/dist/src/lib/review-process.js.map +1 -0
- package/dist/src/lib/run.js +106 -0
- package/dist/src/lib/run.js.map +1 -0
- package/dist/src/lib/state-lock.js +150 -0
- package/dist/src/lib/state-lock.js.map +1 -0
- package/dist/src/lib/supabase-client.js +269 -0
- package/dist/src/lib/supabase-client.js.map +1 -0
- package/dist/src/lib/supabase-json-ordered-write.js +186 -0
- package/dist/src/lib/supabase-json-ordered-write.js.map +1 -0
- package/dist/src/lib/supabase-rest.js +138 -0
- package/dist/src/lib/supabase-rest.js.map +1 -0
- package/dist/src/lib/supabase-session.js +424 -0
- package/dist/src/lib/supabase-session.js.map +1 -0
- package/dist/src/lib/tidas-sdk-package-validator.js +493 -0
- package/dist/src/lib/tidas-sdk-package-validator.js.map +1 -0
- package/dist/src/lib/unstructured.js +203 -0
- package/dist/src/lib/unstructured.js.map +1 -0
- package/dist/src/lib/user-api-key.js +75 -0
- package/dist/src/lib/user-api-key.js.map +1 -0
- package/dist/src/lib/validation.js +191 -0
- package/dist/src/lib/validation.js.map +1 -0
- package/dist/src/main.js +38 -0
- package/dist/src/main.js.map +1 -0
- package/package.json +81 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lifecyclemodel-publish-build.js","sourceRoot":"","sources":["../../../src/lib/lifecyclemodel-publish-build.ts"],"names":[],"mappings":"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","sourcesContent":["import { existsSync, readdirSync } from 'node:fs';\nimport path from 'node:path';\nimport { readJsonArtifact, writeJsonArtifact } from './artifacts.js';\nimport { CliError } from './errors.js';\nimport { normalizePublishRequest } from './publish.js';\n\ntype JsonObject = Record<string, unknown>;\n\ntype LifecyclemodelPublishValidationSummary = {\n available: boolean;\n ok: boolean | null;\n report: string | null;\n};\n\nfunction isRecord(value: unknown): value is JsonObject {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction nonEmptyString(value: unknown): string | null {\n if (typeof value !== 'string') {\n return null;\n }\n\n const normalized = value.trim();\n return normalized || null;\n}\n\nfunction copyJson<T>(value: T): T {\n return JSON.parse(JSON.stringify(value)) as T;\n}\n\nfunction readRequiredJsonObject(\n filePath: string,\n missingCode: string,\n invalidCode: string,\n label: string,\n): JsonObject {\n if (!existsSync(filePath)) {\n throw new CliError(`Required lifecyclemodel ${label} artifact not found: ${filePath}`, {\n code: missingCode,\n exitCode: 2,\n details: { filePath, label },\n });\n }\n\n const value = readJsonArtifact(filePath);\n if (!isRecord(value)) {\n throw new CliError(`Expected lifecyclemodel ${label} artifact JSON object: ${filePath}`, {\n code: invalidCode,\n exitCode: 2,\n details: { filePath, label },\n });\n }\n\n return value;\n}\n\nexport type LifecyclemodelPublishBuildLayout = {\n runId: string;\n runRoot: string;\n modelsDir: string;\n reportsDir: string;\n manifestsDir: string;\n publishStageDir: string;\n runManifestPath: string;\n invocationIndexPath: string;\n validationReportPath: string;\n publishBundlePath: string;\n publishRequestPath: string;\n publishIntentPath: string;\n reportPath: string;\n};\n\nexport type LifecyclemodelPublishBuildReport = {\n schema_version: 1;\n generated_at_utc: string;\n status: 'prepared_local_lifecyclemodel_publish_bundle';\n run_id: string;\n run_root: string;\n counts: {\n lifecyclemodels: number;\n };\n publish_defaults: {\n commit: boolean;\n publish_lifecyclemodels: boolean;\n publish_processes: boolean;\n publish_sources: boolean;\n publish_relations: boolean;\n publish_process_build_runs: boolean;\n relation_mode: 'local_manifest_only';\n };\n validation: LifecyclemodelPublishValidationSummary;\n files: {\n run_manifest: string;\n invocation_index: string;\n publish_bundle: string;\n publish_request: string;\n publish_intent: string;\n report: string;\n };\n next_actions: string[];\n};\n\nexport type RunLifecyclemodelPublishBuildOptions = {\n runDir: string;\n now?: Date;\n cwd?: string;\n};\n\nfunction buildLayout(runRoot: string): LifecyclemodelPublishBuildLayout {\n const runId = path.basename(runRoot);\n return {\n runId,\n runRoot,\n modelsDir: path.join(runRoot, 'models'),\n reportsDir: path.join(runRoot, 'reports'),\n manifestsDir: path.join(runRoot, 'manifests'),\n publishStageDir: path.join(runRoot, 'stage_outputs', '10_publish'),\n runManifestPath: path.join(runRoot, 'manifests', 'run-manifest.json'),\n invocationIndexPath: path.join(runRoot, 'manifests', 'invocation-index.json'),\n validationReportPath: path.join(\n runRoot,\n 'reports',\n 'lifecyclemodel-validate-build-report.json',\n ),\n publishBundlePath: path.join(runRoot, 'stage_outputs', '10_publish', 'publish-bundle.json'),\n publishRequestPath: path.join(runRoot, 'stage_outputs', '10_publish', 'publish-request.json'),\n publishIntentPath: path.join(runRoot, 'stage_outputs', '10_publish', 'publish-intent.json'),\n reportPath: path.join(runRoot, 'reports', 'lifecyclemodel-publish-build-report.json'),\n };\n}\n\nfunction resolveLayout(\n options: RunLifecyclemodelPublishBuildOptions,\n): LifecyclemodelPublishBuildLayout {\n const runDir = nonEmptyString(options.runDir);\n if (!runDir) {\n throw new CliError('Missing required --run-dir for lifecyclemodel publish-build.', {\n code: 'LIFECYCLEMODEL_PUBLISH_RUN_DIR_REQUIRED',\n exitCode: 2,\n });\n }\n\n return buildLayout(path.resolve(runDir));\n}\n\nfunction ensureRunRootExists(layout: LifecyclemodelPublishBuildLayout): void {\n if (!existsSync(layout.runRoot)) {\n throw new CliError(`lifecyclemodel publish-build run root not found: ${layout.runRoot}`, {\n code: 'LIFECYCLEMODEL_PUBLISH_RUN_NOT_FOUND',\n exitCode: 2,\n });\n }\n}\n\nfunction readRequiredRunManifest(layout: LifecyclemodelPublishBuildLayout): JsonObject {\n const manifest = readRequiredJsonObject(\n layout.runManifestPath,\n 'LIFECYCLEMODEL_PUBLISH_RUN_MANIFEST_MISSING',\n 'LIFECYCLEMODEL_PUBLISH_RUN_MANIFEST_INVALID',\n 'run-manifest',\n );\n\n const manifestRunId = nonEmptyString(manifest.runId);\n if (manifestRunId && manifestRunId !== layout.runId) {\n throw new CliError(\n `lifecyclemodel publish-build run manifest runId mismatch: ${layout.runManifestPath}`,\n {\n code: 'LIFECYCLEMODEL_PUBLISH_RUN_MANIFEST_MISMATCH',\n exitCode: 2,\n details: {\n expected: layout.runId,\n actual: manifestRunId,\n },\n },\n );\n }\n\n return manifest;\n}\n\nfunction readInvocationIndex(layout: LifecyclemodelPublishBuildLayout): JsonObject {\n if (!existsSync(layout.invocationIndexPath)) {\n return {\n schema_version: 1,\n invocations: [],\n };\n }\n\n const value = readJsonArtifact(layout.invocationIndexPath);\n if (!isRecord(value)) {\n throw new CliError(\n `Expected lifecyclemodel publish invocation index JSON object: ${layout.invocationIndexPath}`,\n {\n code: 'LIFECYCLEMODEL_PUBLISH_INVOCATION_INDEX_INVALID',\n exitCode: 2,\n },\n );\n }\n\n if (value.invocations === undefined) {\n return {\n schema_version: 1,\n invocations: [],\n };\n }\n\n if (!Array.isArray(value.invocations)) {\n throw new CliError(\n `Expected lifecyclemodel publish invocation index to contain an invocations array: ${layout.invocationIndexPath}`,\n {\n code: 'LIFECYCLEMODEL_PUBLISH_INVOCATION_INDEX_INVALID',\n exitCode: 2,\n },\n );\n }\n\n return value;\n}\n\nfunction collectLifecyclemodelPayloads(layout: LifecyclemodelPublishBuildLayout): JsonObject[] {\n const runNames = existsSync(layout.modelsDir) ? readdirSync(layout.modelsDir).sort() : [];\n const payloads = runNames.flatMap((runName) => {\n const lifecyclemodelsDir = path.join(\n layout.modelsDir,\n runName,\n 'tidas_bundle',\n 'lifecyclemodels',\n );\n if (!existsSync(lifecyclemodelsDir)) {\n return [];\n }\n\n return readdirSync(lifecyclemodelsDir)\n .filter((entry) => entry.endsWith('.json'))\n .sort()\n .map((entry) => {\n const filePath = path.join(lifecyclemodelsDir, entry);\n const value = readJsonArtifact(filePath);\n if (!isRecord(value)) {\n throw new CliError(`Expected lifecyclemodel publish payload JSON object: ${filePath}`, {\n code: 'LIFECYCLEMODEL_PUBLISH_MODEL_INVALID',\n exitCode: 2,\n });\n }\n return value;\n });\n });\n\n if (payloads.length === 0) {\n throw new CliError(\n `lifecyclemodel publish-build run does not contain any lifecyclemodel payloads: ${layout.modelsDir}`,\n {\n code: 'LIFECYCLEMODEL_PUBLISH_MODELS_NOT_FOUND',\n exitCode: 2,\n },\n );\n }\n\n return payloads;\n}\n\nfunction readValidationSummary(\n layout: LifecyclemodelPublishBuildLayout,\n): LifecyclemodelPublishValidationSummary {\n if (!existsSync(layout.validationReportPath)) {\n return {\n available: false,\n ok: null,\n report: null,\n };\n }\n\n const value = readJsonArtifact(layout.validationReportPath);\n if (!isRecord(value)) {\n throw new CliError(\n `Expected lifecyclemodel validate-build report JSON object: ${layout.validationReportPath}`,\n {\n code: 'LIFECYCLEMODEL_PUBLISH_VALIDATION_REPORT_INVALID',\n exitCode: 2,\n },\n );\n }\n\n return {\n available: true,\n ok: typeof value.ok === 'boolean' ? value.ok : false,\n report: layout.validationReportPath,\n };\n}\n\nfunction buildPublishRequest(): JsonObject {\n return {\n inputs: {\n bundle_paths: ['./publish-bundle.json'],\n },\n publish: {\n commit: false,\n publish_lifecyclemodels: true,\n publish_processes: false,\n publish_sources: false,\n publish_relations: false,\n publish_process_build_runs: false,\n relation_mode: 'local_manifest_only',\n },\n out_dir: './publish-run',\n };\n}\n\nfunction buildPublishIntent(\n layout: LifecyclemodelPublishBuildLayout,\n lifecyclemodelCount: number,\n): JsonObject {\n return {\n ok: true,\n command: 'publish run',\n input_path: layout.publishRequestPath,\n run_id: layout.runId,\n run_root: layout.runRoot,\n status: 'prepared_local_lifecyclemodel_publish_bundle',\n lifecyclemodel_count: lifecyclemodelCount,\n };\n}\n\nfunction buildInvocationIndex(\n layout: LifecyclemodelPublishBuildLayout,\n invocationIndex: JsonObject,\n options: RunLifecyclemodelPublishBuildOptions,\n now: Date,\n): JsonObject {\n const priorInvocations = Array.isArray(invocationIndex.invocations)\n ? [...invocationIndex.invocations]\n : [];\n\n return {\n ...invocationIndex,\n schema_version:\n typeof invocationIndex.schema_version === 'number' ? invocationIndex.schema_version : 1,\n invocations: [\n ...priorInvocations,\n {\n command: ['lifecyclemodel', 'publish-build', '--run-dir', options.runDir],\n cwd: options.cwd ?? process.cwd(),\n created_at: now.toISOString(),\n run_id: layout.runId,\n run_root: layout.runRoot,\n report_path: layout.reportPath,\n publish_request_path: layout.publishRequestPath,\n },\n ],\n };\n}\n\nfunction buildNextActions(layout: LifecyclemodelPublishBuildLayout): string[] {\n return [\n `inspect: ${layout.publishBundlePath}`,\n `inspect: ${layout.publishRequestPath}`,\n `run: tiangong publish run --input ${layout.publishRequestPath}`,\n ];\n}\n\nexport async function runLifecyclemodelPublishBuild(\n options: RunLifecyclemodelPublishBuildOptions,\n): Promise<LifecyclemodelPublishBuildReport> {\n const now = options.now ?? new Date();\n const layout = resolveLayout(options);\n ensureRunRootExists(layout);\n const runManifest = readRequiredRunManifest(layout);\n const invocationIndex = readInvocationIndex(layout);\n const lifecyclemodels = collectLifecyclemodelPayloads(layout);\n const validation = readValidationSummary(layout);\n const publishRequest = buildPublishRequest();\n const normalizedPublishRequest = normalizePublishRequest(publishRequest, {\n requestPath: layout.publishRequestPath,\n now,\n });\n const publishBundle = {\n generated_at_utc: now.toISOString(),\n run_id: layout.runId,\n run_root: layout.runRoot,\n status: 'prepared_local_lifecyclemodel_publish_bundle' as const,\n source_run: {\n run_manifest: copyJson(runManifest),\n },\n validation: copyJson(validation),\n lifecyclemodels: copyJson(lifecyclemodels),\n relations: [],\n };\n const publishIntent = buildPublishIntent(layout, lifecyclemodels.length);\n const report: LifecyclemodelPublishBuildReport = {\n schema_version: 1,\n generated_at_utc: now.toISOString(),\n status: 'prepared_local_lifecyclemodel_publish_bundle',\n run_id: layout.runId,\n run_root: layout.runRoot,\n counts: {\n lifecyclemodels: lifecyclemodels.length,\n },\n publish_defaults: {\n commit: normalizedPublishRequest.publish.commit,\n publish_lifecyclemodels: normalizedPublishRequest.publish.publish_lifecyclemodels,\n publish_processes: normalizedPublishRequest.publish.publish_processes,\n publish_sources: normalizedPublishRequest.publish.publish_sources,\n publish_relations: normalizedPublishRequest.publish.publish_relations,\n publish_process_build_runs: normalizedPublishRequest.publish.publish_process_build_runs,\n relation_mode: normalizedPublishRequest.publish.relation_mode,\n },\n validation,\n files: {\n run_manifest: layout.runManifestPath,\n invocation_index: layout.invocationIndexPath,\n publish_bundle: layout.publishBundlePath,\n publish_request: layout.publishRequestPath,\n publish_intent: layout.publishIntentPath,\n report: layout.reportPath,\n },\n next_actions: buildNextActions(layout),\n };\n\n writeJsonArtifact(\n layout.invocationIndexPath,\n buildInvocationIndex(layout, invocationIndex, options, now),\n );\n writeJsonArtifact(layout.publishBundlePath, publishBundle);\n writeJsonArtifact(layout.publishRequestPath, publishRequest);\n writeJsonArtifact(layout.publishIntentPath, publishIntent);\n writeJsonArtifact(layout.reportPath, report);\n\n return report;\n}\n\nexport const __testInternals = {\n buildLayout,\n resolveLayout,\n readInvocationIndex,\n collectLifecyclemodelPayloads,\n readValidationSummary,\n buildPublishRequest,\n buildPublishIntent,\n buildInvocationIndex,\n buildNextActions,\n};\n"]}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import { existsSync } from 'node:fs';
|
|
3
|
+
import { readJsonArtifact, writeJsonArtifact } from './artifacts.js';
|
|
4
|
+
import { CliError } from './errors.js';
|
|
5
|
+
function isRecord(value) {
|
|
6
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
7
|
+
}
|
|
8
|
+
function ensureList(value) {
|
|
9
|
+
if (value === undefined || value === null) {
|
|
10
|
+
return [];
|
|
11
|
+
}
|
|
12
|
+
return Array.isArray(value) ? value : [value];
|
|
13
|
+
}
|
|
14
|
+
function copyJson(value) {
|
|
15
|
+
return JSON.parse(JSON.stringify(value));
|
|
16
|
+
}
|
|
17
|
+
function nowIso(now = new Date()) {
|
|
18
|
+
return now.toISOString();
|
|
19
|
+
}
|
|
20
|
+
function requireRunDir(runDir) {
|
|
21
|
+
if (!runDir.trim()) {
|
|
22
|
+
throw new CliError('Missing required --run-dir for lifecyclemodel publish-resulting-process.', {
|
|
23
|
+
code: 'LIFECYCLEMODEL_RUN_DIR_REQUIRED',
|
|
24
|
+
exitCode: 2,
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
return path.resolve(runDir);
|
|
28
|
+
}
|
|
29
|
+
function readRequiredJsonObject(filePath, missingCode, invalidCode) {
|
|
30
|
+
if (!existsSync(filePath)) {
|
|
31
|
+
throw new CliError(`Required lifecyclemodel artifact not found: ${filePath}`, {
|
|
32
|
+
code: missingCode,
|
|
33
|
+
exitCode: 2,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
const value = readJsonArtifact(filePath);
|
|
37
|
+
if (!isRecord(value)) {
|
|
38
|
+
throw new CliError(`Expected lifecyclemodel artifact JSON object: ${filePath}`, {
|
|
39
|
+
code: invalidCode,
|
|
40
|
+
exitCode: 2,
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
return value;
|
|
44
|
+
}
|
|
45
|
+
export async function runLifecyclemodelPublishResultingProcess(options) {
|
|
46
|
+
const runDir = requireRunDir(options.runDir);
|
|
47
|
+
const generatedAtUtc = nowIso(options.now);
|
|
48
|
+
const projectionBundlePath = path.join(runDir, 'process-projection-bundle.json');
|
|
49
|
+
const projectionReportPath = path.join(runDir, 'projection-report.json');
|
|
50
|
+
const projectionBundle = readRequiredJsonObject(projectionBundlePath, 'LIFECYCLEMODEL_PROJECTION_BUNDLE_MISSING', 'LIFECYCLEMODEL_PROJECTION_BUNDLE_NOT_OBJECT');
|
|
51
|
+
const projectionReport = readRequiredJsonObject(projectionReportPath, 'LIFECYCLEMODEL_PROJECTION_REPORT_MISSING', 'LIFECYCLEMODEL_PROJECTION_REPORT_NOT_OBJECT');
|
|
52
|
+
const sourceModel = isRecord(projectionBundle.source_model)
|
|
53
|
+
? copyJson(projectionBundle.source_model)
|
|
54
|
+
: {};
|
|
55
|
+
const projectedProcesses = options.publishProcesses
|
|
56
|
+
? copyJson(ensureList(projectionBundle.projected_processes))
|
|
57
|
+
: [];
|
|
58
|
+
const relations = options.publishRelations
|
|
59
|
+
? copyJson(ensureList(projectionBundle.relations))
|
|
60
|
+
: [];
|
|
61
|
+
const publishBundle = {
|
|
62
|
+
generated_at: generatedAtUtc,
|
|
63
|
+
run_dir: runDir,
|
|
64
|
+
source_model: sourceModel,
|
|
65
|
+
publish_processes: options.publishProcesses,
|
|
66
|
+
publish_relations: options.publishRelations,
|
|
67
|
+
status: 'prepared_local_publish_bundle',
|
|
68
|
+
projected_processes: projectedProcesses,
|
|
69
|
+
relations,
|
|
70
|
+
report: copyJson(projectionReport),
|
|
71
|
+
};
|
|
72
|
+
const publishIntent = {
|
|
73
|
+
ok: true,
|
|
74
|
+
command: 'publish',
|
|
75
|
+
run_dir: runDir,
|
|
76
|
+
publish_processes: options.publishProcesses,
|
|
77
|
+
publish_relations: options.publishRelations,
|
|
78
|
+
status: 'prepared_local_publish_bundle',
|
|
79
|
+
};
|
|
80
|
+
const publishBundlePath = writeJsonArtifact(path.join(runDir, 'publish-bundle.json'), publishBundle);
|
|
81
|
+
const publishIntentPath = writeJsonArtifact(path.join(runDir, 'publish-intent.json'), publishIntent);
|
|
82
|
+
return {
|
|
83
|
+
generated_at_utc: generatedAtUtc,
|
|
84
|
+
run_dir: runDir,
|
|
85
|
+
status: 'prepared_local_publish_bundle',
|
|
86
|
+
publish_processes: options.publishProcesses,
|
|
87
|
+
publish_relations: options.publishRelations,
|
|
88
|
+
counts: {
|
|
89
|
+
projected_processes: projectedProcesses.length,
|
|
90
|
+
relations: relations.length,
|
|
91
|
+
},
|
|
92
|
+
source_model: sourceModel,
|
|
93
|
+
files: {
|
|
94
|
+
projection_bundle: projectionBundlePath,
|
|
95
|
+
projection_report: projectionReportPath,
|
|
96
|
+
publish_bundle: publishBundlePath,
|
|
97
|
+
publish_intent: publishIntentPath,
|
|
98
|
+
},
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=lifecyclemodel-publish-resulting-process.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lifecyclemodel-publish-resulting-process.js","sourceRoot":"","sources":["../../../src/lib/lifecyclemodel-publish-resulting-process.ts"],"names":[],"mappings":"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","sourcesContent":["import path from 'node:path';\nimport { existsSync } from 'node:fs';\nimport { readJsonArtifact, writeJsonArtifact } from './artifacts.js';\nimport { CliError } from './errors.js';\n\ntype JsonObject = Record<string, unknown>;\n\nfunction isRecord(value: unknown): value is JsonObject {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction ensureList<T = unknown>(value: unknown): T[] {\n if (value === undefined || value === null) {\n return [];\n }\n return Array.isArray(value) ? (value as T[]) : ([value] as T[]);\n}\n\nfunction copyJson<T>(value: T): T {\n return JSON.parse(JSON.stringify(value)) as T;\n}\n\nfunction nowIso(now: Date = new Date()): string {\n return now.toISOString();\n}\n\nfunction requireRunDir(runDir: string): string {\n if (!runDir.trim()) {\n throw new CliError('Missing required --run-dir for lifecyclemodel publish-resulting-process.', {\n code: 'LIFECYCLEMODEL_RUN_DIR_REQUIRED',\n exitCode: 2,\n });\n }\n\n return path.resolve(runDir);\n}\n\nfunction readRequiredJsonObject(\n filePath: string,\n missingCode: string,\n invalidCode: string,\n): JsonObject {\n if (!existsSync(filePath)) {\n throw new CliError(`Required lifecyclemodel artifact not found: ${filePath}`, {\n code: missingCode,\n exitCode: 2,\n });\n }\n\n const value = readJsonArtifact(filePath);\n if (!isRecord(value)) {\n throw new CliError(`Expected lifecyclemodel artifact JSON object: ${filePath}`, {\n code: invalidCode,\n exitCode: 2,\n });\n }\n\n return value;\n}\n\nexport type LifecyclemodelPublishResultingProcessReport = {\n generated_at_utc: string;\n run_dir: string;\n status: 'prepared_local_publish_bundle';\n publish_processes: boolean;\n publish_relations: boolean;\n counts: {\n projected_processes: number;\n relations: number;\n };\n source_model: JsonObject;\n files: {\n projection_bundle: string;\n projection_report: string;\n publish_bundle: string;\n publish_intent: string;\n };\n};\n\nexport type RunLifecyclemodelPublishResultingProcessOptions = {\n runDir: string;\n publishProcesses: boolean;\n publishRelations: boolean;\n now?: Date;\n};\n\nexport async function runLifecyclemodelPublishResultingProcess(\n options: RunLifecyclemodelPublishResultingProcessOptions,\n): Promise<LifecyclemodelPublishResultingProcessReport> {\n const runDir = requireRunDir(options.runDir);\n const generatedAtUtc = nowIso(options.now);\n const projectionBundlePath = path.join(runDir, 'process-projection-bundle.json');\n const projectionReportPath = path.join(runDir, 'projection-report.json');\n const projectionBundle = readRequiredJsonObject(\n projectionBundlePath,\n 'LIFECYCLEMODEL_PROJECTION_BUNDLE_MISSING',\n 'LIFECYCLEMODEL_PROJECTION_BUNDLE_NOT_OBJECT',\n );\n const projectionReport = readRequiredJsonObject(\n projectionReportPath,\n 'LIFECYCLEMODEL_PROJECTION_REPORT_MISSING',\n 'LIFECYCLEMODEL_PROJECTION_REPORT_NOT_OBJECT',\n );\n\n const sourceModel = isRecord(projectionBundle.source_model)\n ? copyJson(projectionBundle.source_model)\n : {};\n const projectedProcesses = options.publishProcesses\n ? copyJson(ensureList(projectionBundle.projected_processes))\n : [];\n const relations = options.publishRelations\n ? copyJson(ensureList(projectionBundle.relations))\n : [];\n\n const publishBundle = {\n generated_at: generatedAtUtc,\n run_dir: runDir,\n source_model: sourceModel,\n publish_processes: options.publishProcesses,\n publish_relations: options.publishRelations,\n status: 'prepared_local_publish_bundle' as const,\n projected_processes: projectedProcesses,\n relations,\n report: copyJson(projectionReport),\n };\n const publishIntent = {\n ok: true,\n command: 'publish',\n run_dir: runDir,\n publish_processes: options.publishProcesses,\n publish_relations: options.publishRelations,\n status: 'prepared_local_publish_bundle' as const,\n };\n\n const publishBundlePath = writeJsonArtifact(\n path.join(runDir, 'publish-bundle.json'),\n publishBundle,\n );\n const publishIntentPath = writeJsonArtifact(\n path.join(runDir, 'publish-intent.json'),\n publishIntent,\n );\n\n return {\n generated_at_utc: generatedAtUtc,\n run_dir: runDir,\n status: 'prepared_local_publish_bundle',\n publish_processes: options.publishProcesses,\n publish_relations: options.publishRelations,\n counts: {\n projected_processes: projectedProcesses.length,\n relations: relations.length,\n },\n source_model: sourceModel,\n files: {\n projection_bundle: projectionBundlePath,\n projection_report: projectionReportPath,\n publish_bundle: publishBundlePath,\n publish_intent: publishIntentPath,\n },\n };\n}\n"]}
|