@tsplc/build 0.2.4 → 0.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +19 -1
- package/dist/cli.js.map +4 -4
- package/dist/index.js +21 -1
- package/dist/index.js.map +3 -3
- package/docker/Dockerfile +19 -1
- package/package.json +3 -3
- package/python/build.py +7 -2
- package/src/docker-build.ts +27 -0
package/dist/cli.js
CHANGED
|
@@ -1122,6 +1122,22 @@ import { tmpdir as tmpdir4 } from "node:os";
|
|
|
1122
1122
|
import { resolve as resolve8 } from "node:path";
|
|
1123
1123
|
import { promisify as promisify5 } from "node:util";
|
|
1124
1124
|
var execute5 = promisify5(execFile5);
|
|
1125
|
+
var publishedImage = async (image) => {
|
|
1126
|
+
const { version } = JSON.parse(await readFile6(resolve8(packageDirectory, "package.json"), "utf8"));
|
|
1127
|
+
return `ghcr.io/livingforjesus/${image.split(":")[0]}:${version}`;
|
|
1128
|
+
};
|
|
1129
|
+
var pullPublished = async (image) => {
|
|
1130
|
+
const published = await publishedImage(image);
|
|
1131
|
+
console.log(`Pulling ${published}`);
|
|
1132
|
+
try {
|
|
1133
|
+
await runDocker(["pull", "--platform", "linux/amd64", published], (status) => `Docker pull failed (${status})`);
|
|
1134
|
+
} catch {
|
|
1135
|
+
console.log(`${published} is not available; building ${image} locally instead.`);
|
|
1136
|
+
return false;
|
|
1137
|
+
}
|
|
1138
|
+
await runDocker(["tag", published, image], (status) => `Docker tag failed (${status})`);
|
|
1139
|
+
return true;
|
|
1140
|
+
};
|
|
1125
1141
|
var configureDocker = async () => {
|
|
1126
1142
|
const image = dockerImage;
|
|
1127
1143
|
const { stdout } = await execute5("docker", ["info", "--format", "{{.OSType}}/{{.Architecture}}"], { timeout: 30000 }).catch((cause) => {
|
|
@@ -1134,6 +1150,8 @@ var configureDocker = async () => {
|
|
|
1134
1150
|
if (!arm && architecture !== "linux/x86_64" && architecture !== "linux/amd64") {
|
|
1135
1151
|
throw new Error("The builder requires a Linux Docker server on ARM64 or AMD64");
|
|
1136
1152
|
}
|
|
1153
|
+
if (await pullPublished(image))
|
|
1154
|
+
return image;
|
|
1137
1155
|
const context = await mkdtemp4(resolve8(tmpdir4(), "codesys-installer-"));
|
|
1138
1156
|
let buildContext;
|
|
1139
1157
|
try {
|
|
@@ -1697,5 +1715,5 @@ try {
|
|
|
1697
1715
|
process.exitCode = 1;
|
|
1698
1716
|
}
|
|
1699
1717
|
|
|
1700
|
-
//# debugId=
|
|
1718
|
+
//# debugId=C41ADA14BA58D42564756E2164756E21
|
|
1701
1719
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"#!/usr/bin/env bun\nimport { parseArgs } from \"node:util\";\nimport { deviceTree } from \"@tsplc/typegen\";\nimport { loadHardware, resolveIo } from \"@tsplc/typegen/hardware\";\nimport { controllerFor, loadTsplcConfig, rawBuildConfig } from \"@tsplc/config\";\nimport { buildProject } from \"./build.ts\";\nimport { resolveConfig } from \"./config.ts\";\nimport { inspectController, updateController } from \"./controller-online.ts\";\nimport { configureDocker, configureRuntime } from \"./docker-build.ts\";\nimport { installLibraries } from \"./libraries.ts\";\nimport { runProject } from \"./run.ts\";\nimport { loadSources } from \"./sources.ts\";\n\nasync function main() {\n const { values, positionals } = parseArgs({\n allowPositionals: true,\n options: {\n config: { type: \"string\" },\n help: { type: \"boolean\", short: \"h\" },\n read: { type: \"string\", multiple: true },\n \"initialize-user\": { type: \"boolean\" },\n \"frozen-lockfile\": { type: \"boolean\" },\n runtime: { type: \"boolean\" },\n },\n });\n const command = positionals[0];\n const commands = new Set([\n \"configure\",\n \"install\",\n \"check\",\n \"build\",\n \"run\",\n \"download\",\n \"online-change\",\n \"inspect\",\n ]);\n if (positionals.length > 1) throw new Error(\"Specify one command.\");\n if (!command || values.help) {\n console.log(\n \"tsplc-build configure|install|check|build|run|download|online-change|inspect [--config tsplc.config.ts] [--read symbol] [--runtime]\",\n );\n return;\n }\n if (!commands.has(command)) throw new Error(`Unknown command ${command}.`);\n if (values.runtime && command !== \"configure\")\n throw new Error(\"--runtime applies only to configure.\");\n if (command === \"configure\") {\n await (values.runtime ? configureRuntime() : configureDocker());\n return;\n }\n const { config, configFile, root } = await loadTsplcConfig(values.config);\n if (command === \"install\") {\n const libraries = await installLibraries(config.dependencies, root, {\n frozen: values[\"frozen-lockfile\"],\n });\n console.log(`Installed ${libraries.length} CODESYS libraries.`);\n return;\n }\n if (!config.build) throw new Error(\"Configure build options in tsplc.config.ts.\");\n if (command === \"inspect\") {\n // Inspection only needs connection/baseline settings; it remains usable\n // without sources, EDS descriptors or installed library payloads.\n console.log(\n JSON.stringify(\n await inspectController(\n resolveConfig(\n { ...config.build, controller: controllerFor(config, command) },\n configFile,\n ),\n values.read,\n ),\n null,\n 2,\n ),\n );\n return;\n }\n if (config.compiler)\n throw new Error(\"Use tsplc for TypeScript projects. tsplc-build accepts raw Structured Text.\");\n const build = rawBuildConfig(config);\n const hardware = await loadHardware(config, root);\n const io = resolveIo(config, hardware);\n if (command === \"check\") {\n const sources = await loadSources(resolveConfig({ ...build, io }, configFile));\n console.log(`Validated ${sources.objects.length} Structured Text objects.`);\n return;\n }\n const libraries = await installLibraries(config.dependencies, root, {\n frozen: values[\"frozen-lockfile\"],\n });\n const settings = resolveConfig(\n {\n ...build,\n libraries,\n io,\n deviceTree: await deviceTree(config, hardware),\n controller: controllerFor(config, command),\n },\n configFile,\n );\n if (command === \"build\") await buildProject(settings);\n else if (command === \"run\") {\n await buildProject(settings);\n await runProject(settings, config.name);\n } else if (command === \"download\" || command === \"online-change\")\n await updateController(settings, command, {\n initializeUser: values[\"initialize-user\"],\n read: values.read,\n });\n}\ntry {\n await main();\n} catch (cause) {\n console.error(cause instanceof Error ? cause.message : String(cause));\n process.exitCode = 1;\n}\n",
|
|
6
6
|
"import { copyFile, cp, readFile, rename, rm, stat, writeFile } from \"node:fs/promises\";\nimport { resolve } from \"node:path\";\nimport { z } from \"zod\";\nimport { cyclicTasksSchema } from \"./config\";\n\nexport const buildFiles = {\n project: \"Application.project\",\n output: \"runtime/Application.app\",\n checksum: \"runtime/Application.crc\",\n receipt: \"build.json\",\n // Normalized EDS files of a generated device tree, imported by the worker.\n devices: \"eds\",\n // With a generated device tree: the project plus the descriptions an IDE needs.\n archive: \"Application.projectarchive\",\n} as const;\n\nconst receiptSchema = z.object({\n mode: z.literal(\"build\"),\n application: z.string().regex(/^[A-Za-z_][A-Za-z_0-9]*$/),\n tasks: cyclicTasksSchema.optional(),\n});\n\n/** A receipt is published last, after every artifact has been checked and replaced. */\nexport const readBuild = async (directory: string) => {\n const receipt = receiptSchema.safeParse(\n JSON.parse(await readFile(resolve(directory, buildFiles.receipt), \"utf8\")),\n );\n if (!receipt.success) {\n throw new Error(\"CODESYS did not produce a valid build receipt\", {\n cause: receipt.error,\n });\n }\n for (const file of [buildFiles.project, buildFiles.output, buildFiles.checksum]) {\n const artifact = await stat(resolve(directory, file));\n if (!artifact.isFile() || artifact.size === 0) {\n throw new Error(`CODESYS produced an empty artifact: ${file}`);\n }\n }\n return {\n ...receipt.data,\n directory,\n project: resolve(directory, buildFiles.project),\n output: resolve(directory, buildFiles.output),\n checksum: resolve(directory, buildFiles.checksum),\n };\n};\n\n/** Publish a verified IDE build, with the completion receipt written last. */\nexport const publishBuild = async (\n compiled: Awaited<ReturnType<typeof readBuild>>,\n outDir: string,\n) => {\n await copyFile(compiled.project, resolve(outDir, buildFiles.project));\n await rm(resolve(outDir, \"runtime\"), { recursive: true, force: true });\n await rename(resolve(compiled.directory, \"runtime\"), resolve(outDir, \"runtime\"));\n await rm(resolve(outDir, buildFiles.archive), { force: true });\n await cp(\n resolve(compiled.directory, buildFiles.archive),\n resolve(outDir, buildFiles.archive),\n ).catch((cause: unknown) => {\n if (!(cause && typeof cause === \"object\" && \"code\" in cause && cause.code === \"ENOENT\"))\n throw cause;\n });\n await writeFile(\n resolve(outDir, buildFiles.receipt),\n JSON.stringify(\n {\n mode: \"build\",\n application: compiled.application,\n ...(compiled.tasks && { tasks: compiled.tasks }),\n },\n null,\n 2,\n ),\n );\n return readBuild(outDir);\n};\n",
|
|
7
7
|
"export {\n configSchema,\n controllerSchema,\n cyclicTasksSchema,\n dockerImage,\n defineBuildConfig as defineConfig,\n resolveConfig,\n loadConfig,\n type CodesysBuildConfig,\n type ResolvedConfig,\n type CyclicTask,\n} from \"@tsplc/config/build\";\n",
|
|
8
|
-
"import { execFile } from \"node:child_process\";\nimport { randomUUID } from \"node:crypto\";\nimport { cp, mkdir, mkdtemp, readFile, rm } from \"node:fs/promises\";\nimport { tmpdir } from \"node:os\";\nimport { resolve } from \"node:path\";\nimport { promisify } from \"node:util\";\nimport { readBuild } from \"./artifacts\";\nimport { dockerImage, type ResolvedConfig } from \"./config\";\nimport { prepareDockerContext } from \"./docker-context.ts\";\nimport { buildFailureFile, buildFailureSchema, CodesysCompilerError } from \"./diagnostics.ts\";\nimport { prepareContainerRun, runDocker } from \"./docker-run.ts\";\nimport { packageDirectory } from \"./package-path.ts\";\n\nconst execute = promisify(execFile);\n\n/** Install the IDE and its prerequisites in the Docker builder image. */\nexport const configureDocker = async () => {\n const image = dockerImage;\n const { stdout } = await execute(\n \"docker\",\n [\"info\", \"--format\", \"{{.OSType}}/{{.Architecture}}\"],\n { timeout: 30_000 },\n ).catch((cause: unknown) => {\n throw new Error(\"Cannot connect to Docker. Install and start Docker Desktop or Docker Engine\", {\n cause,\n });\n });\n const architecture = stdout.trim();\n const arm = architecture === \"linux/aarch64\" || architecture === \"linux/arm64\";\n if (!arm && architecture !== \"linux/x86_64\" && architecture !== \"linux/amd64\") {\n throw new Error(\"The builder requires a Linux Docker server on ARM64 or AMD64\");\n }\n const context = await mkdtemp(resolve(tmpdir(), \"codesys-installer-\"));\n let buildContext: string | undefined;\n try {\n buildContext = await prepareDockerContext();\n const cache = resolve(context, \"winetricks\");\n await mkdir(cache);\n if (process.env[\"CODESYS_WINETRICKS_CACHE\"]) {\n await cp(process.env[\"CODESYS_WINETRICKS_CACHE\"], cache, {\n recursive: true,\n });\n }\n console.log(\n `Preparing Docker builder (${image}). Downloading and installing CODESYS 3.5.22.30 and prerequisites.`,\n );\n await runDocker(\n [\n \"build\",\n \"--platform\",\n \"linux/amd64\",\n \"--build-arg\",\n `SETUP_BASE=${arm ? \"arm-setup\" : \"base\"}`,\n \"--build-arg\",\n `SETUP_PLATFORM=${arm ? \"linux/arm64\" : \"linux/amd64\"}`,\n \"--build-arg\",\n \"INSTALLER_SOURCE=installer-download\",\n \"--progress\",\n \"plain\",\n \"--build-context\",\n `installer=${context}`,\n \"-f\",\n resolve(buildContext, \"docker/Dockerfile\"),\n \"-t\",\n image,\n buildContext,\n ],\n (status) =>\n `Docker configuration failed (${status}). Review the image-build output and run tsplc configure again`,\n );\n return image;\n } finally {\n await Promise.all([\n rm(context, { recursive: true, force: true }),\n ...(buildContext ? [rm(buildContext, { recursive: true, force: true })] : []),\n ]);\n }\n};\n\nexport const runtimeImage = \"tsplc-control-linux-sl:4.22.0.0\";\n\n/** Build the local CODESYS Control for Linux SL runtime, the same device as a production build. */\nexport const configureRuntime = async () => {\n const context = resolve(packageDirectory, \"docker/control-linux-sl\");\n console.log(`Preparing the local PLC runtime (${runtimeImage}).`);\n await runDocker(\n [\"build\", \"--platform\", \"linux/amd64\", \"--progress\", \"plain\", \"-t\", runtimeImage, context],\n (status) => `Runtime image build failed (${status}). Review the image-build output`,\n );\n return runtimeImage;\n};\n\nexport const gatewayImage = \"tsplc-edge-gateway:4.22.0.0\";\n\n/** Build the CODESYS Edge Gateway that builder containers reach a plant controller through. */\nexport const configureGateway = async () => {\n const context = resolve(packageDirectory, \"docker/edge-gateway\");\n console.log(`Preparing the CODESYS gateway (${gatewayImage}).`);\n await runDocker(\n [\"build\", \"--platform\", \"linux/amd64\", \"--progress\", \"plain\", \"-t\", gatewayImage, context],\n (status) => `Gateway image build failed (${status}). Review the image-build output`,\n );\n return gatewayImage;\n};\n\nexport const buildInDocker = async (config: ResolvedConfig, image: string) => {\n const requestDirectory = await mkdtemp(resolve(tmpdir(), \"codesys-docker-\"));\n try {\n const operationId = randomUUID();\n await mkdir(config.outDir, { recursive: true });\n const failurePath = resolve(config.outDir, buildFailureFile);\n await rm(failurePath, { force: true });\n const args = [\n \"run\",\n \"--rm\",\n ...(await prepareContainerRun(config, requestDirectory, { network: \"none\", sources: true })),\n image,\n \"--request\",\n \"/input/config.json\",\n \"--operation-id\",\n operationId,\n ];\n console.log(`Building with Docker (${image})`);\n try {\n await runDocker(\n args,\n (status) =>\n `Docker build failed (${status}). Run tsplc configure if the image is missing; inspect ${config.outDir}/.codesys/docker for compiler logs`,\n );\n } catch (cause) {\n const message = cause instanceof Error ? cause.message : String(cause);\n const failure = await readFile(failurePath, \"utf8\")\n .then((text) => buildFailureSchema.parse(JSON.parse(text)))\n .catch((error: unknown) => {\n if (error instanceof Error && \"code\" in error && error.code === \"ENOENT\") return;\n throw new AggregateError(\n [cause, error],\n `${message}. Invalid CODESYS failure metadata (${failurePath})`,\n { cause: error },\n );\n });\n if (!failure) throw cause;\n if (failure.operationId !== operationId)\n throw new Error(\n `${message}. CODESYS failure metadata belongs to a different Docker build`,\n {\n cause,\n },\n );\n if (cause instanceof Error) {\n // The mapper keeps ordinary error messages as notes, while vendor\n // diagnostics supply their own text. Preserve shutdown context there.\n cause.message = `${message}\\n${failure.message}`;\n if (failure.diagnostics.length)\n cause.cause = new CodesysCompilerError(failure.message, failure.diagnostics);\n }\n throw cause;\n }\n return await readBuild(config.outDir);\n } finally {\n await rm(requestDirectory, { recursive: true, force: true });\n }\n};\n",
|
|
8
|
+
"import { execFile } from \"node:child_process\";\nimport { randomUUID } from \"node:crypto\";\nimport { cp, mkdir, mkdtemp, readFile, rm } from \"node:fs/promises\";\nimport { tmpdir } from \"node:os\";\nimport { resolve } from \"node:path\";\nimport { promisify } from \"node:util\";\nimport { readBuild } from \"./artifacts\";\nimport { dockerImage, type ResolvedConfig } from \"./config\";\nimport { prepareDockerContext } from \"./docker-context.ts\";\nimport { buildFailureFile, buildFailureSchema, CodesysCompilerError } from \"./diagnostics.ts\";\nimport { prepareContainerRun, runDocker } from \"./docker-run.ts\";\nimport { packageDirectory } from \"./package-path.ts\";\n\nconst execute = promisify(execFile);\n\n/** Each tsPLC version's images, published so that setup pulls them instead of installing CODESYS. */\nexport const publishedImage = async (image: string) => {\n const { version } = JSON.parse(\n await readFile(resolve(packageDirectory, \"package.json\"), \"utf8\"),\n ) as { version: string };\n return `ghcr.io/livingforjesus/${image.split(\":\")[0]}:${version}`;\n};\n\n/** Pulls this version's published `image`; false when it isn't available, so the caller builds it. */\nconst pullPublished = async (image: string) => {\n const published = await publishedImage(image);\n console.log(`Pulling ${published}`);\n try {\n await runDocker(\n [\"pull\", \"--platform\", \"linux/amd64\", published],\n (status) => `Docker pull failed (${status})`,\n );\n } catch {\n console.log(`${published} is not available; building ${image} locally instead.`);\n return false;\n }\n await runDocker([\"tag\", published, image], (status) => `Docker tag failed (${status})`);\n return true;\n};\n\n/** Install the IDE and its prerequisites in the Docker builder image. */\nexport const configureDocker = async () => {\n const image = dockerImage;\n const { stdout } = await execute(\n \"docker\",\n [\"info\", \"--format\", \"{{.OSType}}/{{.Architecture}}\"],\n { timeout: 30_000 },\n ).catch((cause: unknown) => {\n throw new Error(\"Cannot connect to Docker. Install and start Docker Desktop or Docker Engine\", {\n cause,\n });\n });\n const architecture = stdout.trim();\n const arm = architecture === \"linux/aarch64\" || architecture === \"linux/arm64\";\n if (!arm && architecture !== \"linux/x86_64\" && architecture !== \"linux/amd64\") {\n throw new Error(\"The builder requires a Linux Docker server on ARM64 or AMD64\");\n }\n if (await pullPublished(image)) return image;\n const context = await mkdtemp(resolve(tmpdir(), \"codesys-installer-\"));\n let buildContext: string | undefined;\n try {\n buildContext = await prepareDockerContext();\n const cache = resolve(context, \"winetricks\");\n await mkdir(cache);\n if (process.env[\"CODESYS_WINETRICKS_CACHE\"]) {\n await cp(process.env[\"CODESYS_WINETRICKS_CACHE\"], cache, {\n recursive: true,\n });\n }\n console.log(\n `Preparing Docker builder (${image}). Downloading and installing CODESYS 3.5.22.30 and prerequisites.`,\n );\n await runDocker(\n [\n \"build\",\n \"--platform\",\n \"linux/amd64\",\n \"--build-arg\",\n `SETUP_BASE=${arm ? \"arm-setup\" : \"base\"}`,\n \"--build-arg\",\n `SETUP_PLATFORM=${arm ? \"linux/arm64\" : \"linux/amd64\"}`,\n \"--build-arg\",\n \"INSTALLER_SOURCE=installer-download\",\n \"--progress\",\n \"plain\",\n \"--build-context\",\n `installer=${context}`,\n \"-f\",\n resolve(buildContext, \"docker/Dockerfile\"),\n \"-t\",\n image,\n buildContext,\n ],\n (status) =>\n `Docker configuration failed (${status}). Review the image-build output and run tsplc configure again`,\n );\n return image;\n } finally {\n await Promise.all([\n rm(context, { recursive: true, force: true }),\n ...(buildContext ? [rm(buildContext, { recursive: true, force: true })] : []),\n ]);\n }\n};\n\nexport const runtimeImage = \"tsplc-control-linux-sl:4.22.0.0\";\n\n/** Build the local CODESYS Control for Linux SL runtime, the same device as a production build. */\nexport const configureRuntime = async () => {\n const context = resolve(packageDirectory, \"docker/control-linux-sl\");\n console.log(`Preparing the local PLC runtime (${runtimeImage}).`);\n await runDocker(\n [\"build\", \"--platform\", \"linux/amd64\", \"--progress\", \"plain\", \"-t\", runtimeImage, context],\n (status) => `Runtime image build failed (${status}). Review the image-build output`,\n );\n return runtimeImage;\n};\n\nexport const gatewayImage = \"tsplc-edge-gateway:4.22.0.0\";\n\n/** Build the CODESYS Edge Gateway that builder containers reach a plant controller through. */\nexport const configureGateway = async () => {\n if (await pullPublished(gatewayImage)) return gatewayImage;\n const context = resolve(packageDirectory, \"docker/edge-gateway\");\n console.log(`Preparing the CODESYS gateway (${gatewayImage}).`);\n await runDocker(\n [\"build\", \"--platform\", \"linux/amd64\", \"--progress\", \"plain\", \"-t\", gatewayImage, context],\n (status) => `Gateway image build failed (${status}). Review the image-build output`,\n );\n return gatewayImage;\n};\n\nexport const buildInDocker = async (config: ResolvedConfig, image: string) => {\n const requestDirectory = await mkdtemp(resolve(tmpdir(), \"codesys-docker-\"));\n try {\n const operationId = randomUUID();\n await mkdir(config.outDir, { recursive: true });\n const failurePath = resolve(config.outDir, buildFailureFile);\n await rm(failurePath, { force: true });\n const args = [\n \"run\",\n \"--rm\",\n ...(await prepareContainerRun(config, requestDirectory, { network: \"none\", sources: true })),\n image,\n \"--request\",\n \"/input/config.json\",\n \"--operation-id\",\n operationId,\n ];\n console.log(`Building with Docker (${image})`);\n try {\n await runDocker(\n args,\n (status) =>\n `Docker build failed (${status}). Run tsplc configure if the image is missing; inspect ${config.outDir}/.codesys/docker for compiler logs`,\n );\n } catch (cause) {\n const message = cause instanceof Error ? cause.message : String(cause);\n const failure = await readFile(failurePath, \"utf8\")\n .then((text) => buildFailureSchema.parse(JSON.parse(text)))\n .catch((error: unknown) => {\n if (error instanceof Error && \"code\" in error && error.code === \"ENOENT\") return;\n throw new AggregateError(\n [cause, error],\n `${message}. Invalid CODESYS failure metadata (${failurePath})`,\n { cause: error },\n );\n });\n if (!failure) throw cause;\n if (failure.operationId !== operationId)\n throw new Error(\n `${message}. CODESYS failure metadata belongs to a different Docker build`,\n {\n cause,\n },\n );\n if (cause instanceof Error) {\n // The mapper keeps ordinary error messages as notes, while vendor\n // diagnostics supply their own text. Preserve shutdown context there.\n cause.message = `${message}\\n${failure.message}`;\n if (failure.diagnostics.length)\n cause.cause = new CodesysCompilerError(failure.message, failure.diagnostics);\n }\n throw cause;\n }\n return await readBuild(config.outDir);\n } finally {\n await rm(requestDirectory, { recursive: true, force: true });\n }\n};\n",
|
|
9
9
|
"import { cp, mkdir, mkdtemp, rm, writeFile } from \"node:fs/promises\";\nimport { createRequire } from \"node:module\";\nimport { tmpdir } from \"node:os\";\nimport { dirname, resolve } from \"node:path\";\nimport { packageDirectory } from \"./package-path.ts\";\n\nexport async function prepareDockerContext() {\n const context = await mkdtemp(resolve(tmpdir(), \"tsplc-docker-\"));\n try {\n for (const directory of [\"src\", \"python\", \"docker\", \"runtime\"])\n await cp(resolve(packageDirectory, directory), resolve(context, directory), {\n recursive: true,\n });\n const configRoot = resolve(\n dirname(createRequire(import.meta.url).resolve(\"@tsplc/config/build\")),\n \"..\",\n );\n await mkdir(resolve(context, \"shared-config\"));\n await cp(resolve(configRoot, \"src\"), resolve(context, \"shared-config/src\"), {\n recursive: true,\n });\n await cp(resolve(configRoot, \"templates\"), resolve(context, \"shared-config/templates\"), {\n recursive: true,\n });\n await cp(resolve(configRoot, \"package.json\"), resolve(context, \"shared-config/package.json\"));\n await writeFile(\n resolve(context, \"package.json\"),\n JSON.stringify({ type: \"module\", dependencies: { zod: \"4.3.6\", jiti: \"2.7.0\" } }),\n );\n return context;\n } catch (cause) {\n await rm(context, { recursive: true, force: true });\n throw cause;\n }\n}\n",
|
|
10
10
|
"import { resolve } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\n// Both source modules and published bundles live one directory below the package root.\nexport const packageDirectory = resolve(fileURLToPath(new URL(\"..\", import.meta.url)));\n",
|
|
11
11
|
"import { z } from \"zod\";\n\nexport const compilerDiagnosticSchema = z\n .object({\n category: z.string(),\n text: z.string(),\n severity: z.string().nullable(),\n project: z.string().nullable(),\n object: z\n .object({\n name: z.string(),\n guid: z.string(),\n path: z.array(z.string()),\n /** Verified against this message project's active application GUID. */\n isApplicationChild: z.boolean().nullable(),\n })\n .passthrough()\n .nullable(),\n /** Opaque vendor position. It must not be decoded as a line or column. */\n position: z.string().nullable(),\n positionText: z.string().nullable(),\n positionOffset: z.int().nullable(),\n length: z.int().nullable(),\n prefix: z.string().nullable(),\n number: z.int().nullable(),\n })\n .passthrough();\n\nexport type CodesysCompilerDiagnostic = z.infer<typeof compilerDiagnosticSchema>;\n\n/** Preserves vendor diagnostics as the cause of a buildProject failure. */\nexport class CodesysCompilerError extends Error {\n constructor(\n message: string,\n readonly diagnostics: readonly CodesysCompilerDiagnostic[],\n ) {\n super(message);\n this.name = \"CodesysCompilerError\";\n }\n}\n\n// A failed container job publishes diagnostics separately from its successful build receipt.\nexport const buildFailureFile = \".codesys/docker/failure.json\";\n/** Why the last download, online change or inspection failed, for the host to report. */\nexport const controllerFailureFile = \".codesys/controller/failure.txt\";\nexport const buildFailureSchema = z.strictObject({\n operationId: z.uuid(),\n message: z.string(),\n diagnostics: z.array(compilerDiagnosticSchema),\n});\n\n/** Keep the primary compiler location and the shutdown context across the Docker boundary. */\nexport function describeBuildFailure(cause: unknown) {\n const messages: string[] = [];\n let diagnostics: readonly CodesysCompilerDiagnostic[] = [];\n let current = cause;\n while (current instanceof Error) {\n messages.push(current.message);\n if (current instanceof AggregateError) {\n // withWorkerShutdown puts the primary failure in cause and secondary failures in errors.\n for (const secondary of current.errors.slice(1))\n messages.push(secondary instanceof Error ? secondary.message : String(secondary));\n }\n if (current instanceof CodesysCompilerError) diagnostics = current.diagnostics;\n current = current.cause;\n }\n return { message: messages.length ? messages.join(\"\\n\") : String(cause), diagnostics };\n}\n",
|
|
@@ -22,13 +22,13 @@
|
|
|
22
22
|
"import { createHash } from \"node:crypto\";\nimport { access, copyFile, mkdir, readFile, rm, writeFile } from \"node:fs/promises\";\nimport { resolve } from \"node:path\";\nimport { buildFiles, publishBuild, readBuild } from \"./artifacts\";\nimport { dockerImage, type ResolvedConfig } from \"./config\";\nimport { buildInDocker } from \"./docker-build\";\nimport { writeDeviceTree } from \"./device-tree\";\nimport { createCodesysWorker, withWorkerLock } from \"./host/codesys-worker\";\nimport { loadSources } from \"./sources\";\nimport { toWindowsPath } from \"./host/windows-path.ts\";\n\nexport const buildProject = async (config: ResolvedConfig) => {\n if (!config.docker) throw new Error(\"Builds require a Docker builder image.\");\n return buildInDocker(config, dockerImage);\n};\n\n/** The container runner owns Wine; this operation is not a public host build. */\nexport const buildInContainer = async (config: ResolvedConfig) => {\n return withWorkerLock(config, async () => {\n // Invalidate the previous build before validation, so run cannot deploy stale\n // output after a failed rebuild. Keep the last project available for inspection.\n await rm(resolve(config.outDir, buildFiles.receipt), { force: true });\n const sources = await loadSources(config);\n await access(config.template);\n const worker = createCodesysWorker(config);\n const session = await worker.launch();\n const directory = resolve(config.outDir, \".codesys/build\");\n await rm(directory, { recursive: true, force: true });\n await mkdir(resolve(directory, \"runtime\"), { recursive: true });\n const template = resolve(directory, \"Template.project\");\n await copyFile(config.template, template);\n const deviceTree = config.deviceTree && (await writeDeviceTree(config.deviceTree, directory));\n const request = {\n libraryReferences: config.libraryReferences,\n libraries: await Promise.all(\n (config.libraries ?? []).map(async (library) => ({\n ...library,\n path: await toWindowsPath(library.path, config.codesys.wine),\n })),\n ),\n ...sources,\n task: config.task,\n ...(config.tasks && { tasks: config.tasks }),\n removeObjects: config.removeObjects,\n symbols: config.symbols,\n ...(deviceTree && { deviceTree }),\n ...(config.controller && { controller: config.controller }),\n mode: \"build\",\n output: buildFiles.output,\n project: buildFiles.project,\n archive: buildFiles.archive,\n receipt: buildFiles.receipt,\n template: \"Template.project\",\n templateHash: createHash(\"sha256\")\n .update(await readFile(template))\n .digest(\"hex\"),\n };\n await writeFile(resolve(directory, \"request.json\"), JSON.stringify(request, null, 2));\n console.log(`CODESYS build: ${config.outDir}`);\n try {\n await worker.request(session, { action: \"build\" }, config.timeouts.build);\n const compiled = await readBuild(directory);\n if (config.tasks && JSON.stringify(compiled.tasks) !== JSON.stringify(config.tasks)) {\n throw new Error(\"CODESYS build receipt does not match the requested task plan\");\n }\n // Builds and runs share the lock. Removing the receipt above keeps a failed\n // publication from looking complete even if only some files were replaced.\n return await publishBuild(compiled, config.outDir);\n } catch (cause) {\n throw new Error(\n `CODESYS build failed. Inspect ${directory}/progress.log, error.txt and ${session.directory}/codesys.log`,\n { cause },\n );\n }\n });\n};\n",
|
|
23
23
|
"export {\n configSchema,\n controllerSchema,\n cyclicTasksSchema,\n dockerImage,\n defineBuildConfig as defineConfig,\n resolveConfig,\n loadConfig,\n type CodesysBuildConfig,\n type ResolvedConfig,\n type CyclicTask,\n} from \"@tsplc/config/build\";\n",
|
|
24
24
|
"import { execFile } from \"node:child_process\";\nimport { existsSync } from \"node:fs\";\nimport { createHash, randomUUID } from \"node:crypto\";\nimport { mkdir, mkdtemp, readFile, rm } from \"node:fs/promises\";\nimport { tmpdir } from \"node:os\";\nimport { resolve } from \"node:path\";\nimport { setTimeout as delay } from \"node:timers/promises\";\nimport { promisify } from \"node:util\";\nimport { z } from \"zod\";\nimport { controllerSchema, dockerImage, type ResolvedConfig } from \"./config\";\nimport { controllerFailureFile } from \"./diagnostics.ts\";\nimport { prepareContainerRun, runDocker } from \"./docker-run.ts\";\n\nconst execute = promisify(execFile);\nconst imageIdSchema = z.string().regex(/^sha256:[a-f0-9]{64}$/);\nconst endpointSchema = z.strictObject({\n host: z.string().nonempty(),\n port: z.number().int().min(1).max(65535),\n});\nexport const controllerResultSchema = z.strictObject({\n schemaVersion: z.literal(1),\n operationId: z.uuid(),\n operation: z.enum([\"download\", \"online-change\", \"inspect\"]),\n imageId: imageIdSchema,\n templateHash: z.string().regex(/^[a-f0-9]{64}$/),\n target: z.strictObject({\n network: z.string().nonempty(),\n gateway: endpointSchema,\n device: endpointSchema,\n controller: controllerSchema.optional(),\n deviceTree: z\n .string()\n .regex(/^[a-f0-9]{64}$/)\n .optional(),\n }),\n generation: z.string().nonempty(),\n application: z.string().nonempty(),\n applicationGuid: z.string().nonempty(),\n controllerIds: z.strictObject({\n codeId: z.string().nonempty(),\n dataId: z.string().nonempty(),\n }),\n state: z.string().nonempty(),\n values: z.record(z.string(), z.string()),\n});\nexport type ControllerResult = z.infer<typeof controllerResultSchema>;\nexport type ControllerUpdateOptions = {\n initializeUser?: boolean;\n read?: string[];\n};\n\n/**\n * What a download binds the controller to. An online change needs the same connection, controller\n * and device tree, because it only recompiles the program into the downloaded project.\n */\nexport const controllerTarget = (\n config: ResolvedConfig,\n online: NonNullable<ResolvedConfig[\"online\"]>,\n) => ({\n network: online.network,\n gateway: online.gateway,\n device: online.device,\n controller: config.controller,\n ...(config.deviceTree && {\n deviceTree: createHash(\"sha256\").update(JSON.stringify(config.deviceTree)).digest(\"hex\"),\n }),\n});\n\n/** Checks the settings every engineering connection needs and names its builder image and target. */\nconst controllerConnection = async (config: ResolvedConfig) => {\n if (!config.docker || !config.online) {\n throw new Error(\n \"Docker image and online gateway/device configuration are required for controller operations\",\n );\n }\n const environmentNames = config.online.credentials\n ? [config.online.credentials.usernameEnv, config.online.credentials.passwordEnv]\n : [];\n for (const name of environmentNames) {\n if (process.env[name] === undefined) {\n throw new Error(`Controller credential environment variable ${name} is not set`);\n }\n }\n const { stdout } = await execute(\n \"docker\",\n [\"image\", \"inspect\", \"--format\", \"{{.Id}}\", dockerImage],\n { timeout: config.timeouts.hostCommand },\n ).catch((cause: unknown) => {\n throw new Error(\n `Cannot inspect Docker builder image ${dockerImage}. Install and start Docker, then run tsplc-build configure if the image is missing`,\n { cause },\n );\n });\n return {\n environmentNames,\n imageId: imageIdSchema.parse(stdout.trim()),\n templateHash: createHash(\"sha256\")\n .update(await readFile(config.template))\n .digest(\"hex\"),\n target: controllerTarget(config, config.online),\n };\n};\n\nconst controllerOperation = async (\n config: ResolvedConfig,\n operation: ControllerResult[\"operation\"],\n options: ControllerUpdateOptions,\n): Promise<ControllerResult> => {\n const { environmentNames, imageId, templateHash, target } = await controllerConnection(config);\n const operationId = randomUUID();\n const requestDirectory = await mkdtemp(resolve(tmpdir(), \"codesys-controller-\"));\n const diagnostics = resolve(config.outDir, \".codesys/controller\");\n const failure = resolve(config.outDir, controllerFailureFile);\n try {\n await mkdir(config.outDir, { recursive: true });\n await rm(failure, { force: true });\n await runDocker(\n [\n \"run\",\n \"--rm\",\n ...(await prepareContainerRun(config, requestDirectory, {\n network: target.network,\n environment: environmentNames,\n sources: operation !== \"inspect\",\n })),\n imageId,\n operation,\n \"--request\",\n \"/input/config.json\",\n \"--operation-id\",\n operationId,\n \"--image-id\",\n imageId,\n ...(options.initializeUser ? [\"--initialize-user\"] : []),\n ...(options.read ? [\"--read\", JSON.stringify(options.read)] : []),\n ],\n (status) =>\n `Docker controller operation failed (${status}). Inspect ${diagnostics} for diagnostics`,\n ).catch(async (cause: unknown) => {\n if (!existsSync(failure)) throw cause;\n // A CODESYS failure arrives as a Python traceback, whose last line names it.\n const reason = (await readFile(failure, \"utf8\")).trim().split(\"\\n\").at(-1);\n throw new Error(`${reason}. Inspect ${diagnostics} for diagnostics`, { cause });\n });\n const result = await readFile(resolve(diagnostics, \"result.json\"), \"utf8\")\n .then((content) => controllerResultSchema.parse(JSON.parse(content)))\n .catch((cause: unknown) => {\n throw new Error(\n `Docker did not produce a valid controller receipt. Inspect ${diagnostics} for diagnostics`,\n { cause },\n );\n });\n if (\n result.operationId !== operationId ||\n result.operation !== operation ||\n result.imageId !== imageId ||\n result.templateHash !== templateHash ||\n JSON.stringify(result.target) !== JSON.stringify(target)\n ) {\n throw new Error(\n `Controller receipt does not match this operation's image, template or target. Inspect ${diagnostics} for diagnostics`,\n );\n }\n return result;\n } finally {\n await rm(requestDirectory, { recursive: true, force: true });\n }\n};\n\n/** Download or apply an online change using the original CODESYS Docker compiler. */\nexport const updateController = (\n config: ResolvedConfig,\n operation: \"download\" | \"online-change\",\n options: ControllerUpdateOptions = {},\n) => controllerOperation(config, operation, options);\n\n/** Read the controller using the runner's saved compilation baseline. */\nexport const inspectController = (config: ResolvedConfig, read?: string[]) =>\n controllerOperation(config, \"inspect\", { read });\n\n/**\n * Ends every refusal that only a full download resolves, so callers can offer one. The Python\n * online operations end theirs with the same words.\n */\nexport const explicitDownload = \"use an explicit download\";\n\nexport const loginCommandSchema = z.discriminatedUnion(\"command\", [\n z.strictObject({ command: z.literal(\"state\") }),\n z.strictObject({\n command: z.literal(\"read\"),\n expressions: z.array(z.string().nonempty()).nonempty(),\n }),\n z.strictObject({\n command: z.enum([\"write\", \"force\"]),\n values: z.record(z.string().nonempty(), z.string().nonempty()),\n }),\n // No expressions unforces everything; `restore` puts back the value from before forcing.\n z.strictObject({\n command: z.literal(\"unforce\"),\n expressions: z.array(z.string().nonempty()),\n restore: z.boolean(),\n }),\n z.strictObject({ command: z.enum([\"start\", \"stop\"]) }),\n z.strictObject({ command: z.literal(\"reset\"), kind: z.enum([\"Warm\", \"Cold\"]) }),\n]);\nexport type LoginCommand = z.infer<typeof loginCommandSchema>;\nexport const loginResultSchema = z.union([\n z.strictObject({ values: z.record(z.string(), z.string()) }),\n z.strictObject({ state: z.string(), forced: z.array(z.string()) }),\n]);\nexport type LoginResult = z.infer<typeof loginResultSchema>;\nconst loginReplySchema = z.discriminatedUnion(\"ok\", [\n z.strictObject({ ok: z.literal(true), result: z.unknown() }),\n z.strictObject({ ok: z.literal(false), error: z.string() }),\n]);\n\n/** The port a login container serves its commands on, published to the host's loopback only. */\nconst loginPort = 4851;\n\nconst docker = (args: string[], timeout: number) =>\n execute(\"docker\", args, { timeout }).then(({ stdout }) => stdout.trim());\n\nconst isRunning = async (name: string, timeout: number) =>\n (await docker([\"container\", \"ls\", \"--quiet\", \"--filter\", `name=^${name}$`], timeout)) !== \"\";\n\n/** A login held open in builder container `name`; it ends with `close` or when the container stops. */\nconst attachLogin = async (name: string, timeout: number) => {\n const published = await docker([\"port\", name, String(loginPort)], timeout);\n const url = `http://${published.split(\"\\n\")[0]}`;\n const call = async (init: RequestInit) => {\n const reply = loginReplySchema.parse(await (await fetch(url, init)).json());\n if (!reply.ok) throw new Error(reply.error);\n return reply.result;\n };\n return {\n name,\n /** The relay answers only once CODESYS has logged in. */\n ready: () =>\n fetch(url)\n .then((response) => response.ok)\n .catch(() => false),\n send: async (command: LoginCommand) =>\n loginResultSchema.parse(\n await call({\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify(command),\n }),\n ),\n /** Logs out and waits for the container to stop. */\n close: async () => {\n await call({ method: \"DELETE\" });\n await docker([\"wait\", name], timeout);\n await docker([\"rm\", name], timeout);\n },\n };\n};\nexport type ControllerLogin = Awaited<ReturnType<typeof attachLogin>>;\n\n/** The login in container `name`, if one is running; it outlives the process that opened it. */\nexport const findControllerLogin = async (name: string) =>\n (await isRunning(name, 15_000)) ? attachLogin(name, 15_000) : undefined;\n\n/**\n * Logs in to the running application from the saved download baseline, in a detached builder\n * container named `name`. Commands then take seconds instead of a CODESYS start each.\n */\nexport const openControllerLogin = async (config: ResolvedConfig, name: string) => {\n const { environmentNames, imageId, target } = await controllerConnection(config);\n const timeout = config.timeouts.hostCommand;\n // A login that failed to open leaves its stopped container for diagnostics until the next one.\n await docker([\"rm\", \"--force\", name], timeout);\n // The request is overwritten in place: a bind mount of a recreated directory can still show\n // Docker Desktop's cached, empty view of the deleted one.\n const requestDirectory = resolve(config.outDir, \".codesys/login-request\");\n await mkdir(requestDirectory, { recursive: true });\n await docker(\n [\n \"run\",\n \"--detach\",\n \"--name\",\n name,\n \"--publish\",\n `127.0.0.1::${loginPort}`,\n ...(await prepareContainerRun(config, requestDirectory, {\n network: target.network,\n environment: environmentNames,\n sources: false,\n })),\n imageId,\n \"login\",\n \"--request\",\n \"/input/config.json\",\n \"--image-id\",\n imageId,\n \"--port\",\n String(loginPort),\n ],\n timeout,\n );\n const deadline = Date.now() + config.timeouts.startup + config.timeouts.build;\n while (Date.now() < deadline) {\n // A container that stops right after starting never publishes its port, so check it first.\n const login = (await isRunning(name, timeout))\n ? await attachLogin(name, timeout).catch(() => undefined)\n : undefined;\n if (!login && !(await isRunning(name, timeout))) {\n const logs = await execute(\"docker\", [\"logs\", \"--tail\", \"40\", name], { timeout });\n throw new Error(`The controller login failed:\\n${logs.stdout}${logs.stderr}`);\n }\n if (login && (await login.ready())) return login;\n await delay(2000);\n }\n await docker([\"rm\", \"--force\", name], timeout);\n throw new Error(\"The controller login did not open in time\");\n};\n",
|
|
25
|
-
"import { execFile } from \"node:child_process\";\nimport { randomUUID } from \"node:crypto\";\nimport { cp, mkdir, mkdtemp, readFile, rm } from \"node:fs/promises\";\nimport { tmpdir } from \"node:os\";\nimport { resolve } from \"node:path\";\nimport { promisify } from \"node:util\";\nimport { readBuild } from \"./artifacts\";\nimport { dockerImage, type ResolvedConfig } from \"./config\";\nimport { prepareDockerContext } from \"./docker-context.ts\";\nimport { buildFailureFile, buildFailureSchema, CodesysCompilerError } from \"./diagnostics.ts\";\nimport { prepareContainerRun, runDocker } from \"./docker-run.ts\";\nimport { packageDirectory } from \"./package-path.ts\";\n\nconst execute = promisify(execFile);\n\n/** Install the IDE and its prerequisites in the Docker builder image. */\nexport const configureDocker = async () => {\n const image = dockerImage;\n const { stdout } = await execute(\n \"docker\",\n [\"info\", \"--format\", \"{{.OSType}}/{{.Architecture}}\"],\n { timeout: 30_000 },\n ).catch((cause: unknown) => {\n throw new Error(\"Cannot connect to Docker. Install and start Docker Desktop or Docker Engine\", {\n cause,\n });\n });\n const architecture = stdout.trim();\n const arm = architecture === \"linux/aarch64\" || architecture === \"linux/arm64\";\n if (!arm && architecture !== \"linux/x86_64\" && architecture !== \"linux/amd64\") {\n throw new Error(\"The builder requires a Linux Docker server on ARM64 or AMD64\");\n }\n const context = await mkdtemp(resolve(tmpdir(), \"codesys-installer-\"));\n let buildContext: string | undefined;\n try {\n buildContext = await prepareDockerContext();\n const cache = resolve(context, \"winetricks\");\n await mkdir(cache);\n if (process.env[\"CODESYS_WINETRICKS_CACHE\"]) {\n await cp(process.env[\"CODESYS_WINETRICKS_CACHE\"], cache, {\n recursive: true,\n });\n }\n console.log(\n `Preparing Docker builder (${image}). Downloading and installing CODESYS 3.5.22.30 and prerequisites.`,\n );\n await runDocker(\n [\n \"build\",\n \"--platform\",\n \"linux/amd64\",\n \"--build-arg\",\n `SETUP_BASE=${arm ? \"arm-setup\" : \"base\"}`,\n \"--build-arg\",\n `SETUP_PLATFORM=${arm ? \"linux/arm64\" : \"linux/amd64\"}`,\n \"--build-arg\",\n \"INSTALLER_SOURCE=installer-download\",\n \"--progress\",\n \"plain\",\n \"--build-context\",\n `installer=${context}`,\n \"-f\",\n resolve(buildContext, \"docker/Dockerfile\"),\n \"-t\",\n image,\n buildContext,\n ],\n (status) =>\n `Docker configuration failed (${status}). Review the image-build output and run tsplc configure again`,\n );\n return image;\n } finally {\n await Promise.all([\n rm(context, { recursive: true, force: true }),\n ...(buildContext ? [rm(buildContext, { recursive: true, force: true })] : []),\n ]);\n }\n};\n\nexport const runtimeImage = \"tsplc-control-linux-sl:4.22.0.0\";\n\n/** Build the local CODESYS Control for Linux SL runtime, the same device as a production build. */\nexport const configureRuntime = async () => {\n const context = resolve(packageDirectory, \"docker/control-linux-sl\");\n console.log(`Preparing the local PLC runtime (${runtimeImage}).`);\n await runDocker(\n [\"build\", \"--platform\", \"linux/amd64\", \"--progress\", \"plain\", \"-t\", runtimeImage, context],\n (status) => `Runtime image build failed (${status}). Review the image-build output`,\n );\n return runtimeImage;\n};\n\nexport const gatewayImage = \"tsplc-edge-gateway:4.22.0.0\";\n\n/** Build the CODESYS Edge Gateway that builder containers reach a plant controller through. */\nexport const configureGateway = async () => {\n const context = resolve(packageDirectory, \"docker/edge-gateway\");\n console.log(`Preparing the CODESYS gateway (${gatewayImage}).`);\n await runDocker(\n [\"build\", \"--platform\", \"linux/amd64\", \"--progress\", \"plain\", \"-t\", gatewayImage, context],\n (status) => `Gateway image build failed (${status}). Review the image-build output`,\n );\n return gatewayImage;\n};\n\nexport const buildInDocker = async (config: ResolvedConfig, image: string) => {\n const requestDirectory = await mkdtemp(resolve(tmpdir(), \"codesys-docker-\"));\n try {\n const operationId = randomUUID();\n await mkdir(config.outDir, { recursive: true });\n const failurePath = resolve(config.outDir, buildFailureFile);\n await rm(failurePath, { force: true });\n const args = [\n \"run\",\n \"--rm\",\n ...(await prepareContainerRun(config, requestDirectory, { network: \"none\", sources: true })),\n image,\n \"--request\",\n \"/input/config.json\",\n \"--operation-id\",\n operationId,\n ];\n console.log(`Building with Docker (${image})`);\n try {\n await runDocker(\n args,\n (status) =>\n `Docker build failed (${status}). Run tsplc configure if the image is missing; inspect ${config.outDir}/.codesys/docker for compiler logs`,\n );\n } catch (cause) {\n const message = cause instanceof Error ? cause.message : String(cause);\n const failure = await readFile(failurePath, \"utf8\")\n .then((text) => buildFailureSchema.parse(JSON.parse(text)))\n .catch((error: unknown) => {\n if (error instanceof Error && \"code\" in error && error.code === \"ENOENT\") return;\n throw new AggregateError(\n [cause, error],\n `${message}. Invalid CODESYS failure metadata (${failurePath})`,\n { cause: error },\n );\n });\n if (!failure) throw cause;\n if (failure.operationId !== operationId)\n throw new Error(\n `${message}. CODESYS failure metadata belongs to a different Docker build`,\n {\n cause,\n },\n );\n if (cause instanceof Error) {\n // The mapper keeps ordinary error messages as notes, while vendor\n // diagnostics supply their own text. Preserve shutdown context there.\n cause.message = `${message}\\n${failure.message}`;\n if (failure.diagnostics.length)\n cause.cause = new CodesysCompilerError(failure.message, failure.diagnostics);\n }\n throw cause;\n }\n return await readBuild(config.outDir);\n } finally {\n await rm(requestDirectory, { recursive: true, force: true });\n }\n};\n",
|
|
25
|
+
"import { execFile } from \"node:child_process\";\nimport { randomUUID } from \"node:crypto\";\nimport { cp, mkdir, mkdtemp, readFile, rm } from \"node:fs/promises\";\nimport { tmpdir } from \"node:os\";\nimport { resolve } from \"node:path\";\nimport { promisify } from \"node:util\";\nimport { readBuild } from \"./artifacts\";\nimport { dockerImage, type ResolvedConfig } from \"./config\";\nimport { prepareDockerContext } from \"./docker-context.ts\";\nimport { buildFailureFile, buildFailureSchema, CodesysCompilerError } from \"./diagnostics.ts\";\nimport { prepareContainerRun, runDocker } from \"./docker-run.ts\";\nimport { packageDirectory } from \"./package-path.ts\";\n\nconst execute = promisify(execFile);\n\n/** Each tsPLC version's images, published so that setup pulls them instead of installing CODESYS. */\nexport const publishedImage = async (image: string) => {\n const { version } = JSON.parse(\n await readFile(resolve(packageDirectory, \"package.json\"), \"utf8\"),\n ) as { version: string };\n return `ghcr.io/livingforjesus/${image.split(\":\")[0]}:${version}`;\n};\n\n/** Pulls this version's published `image`; false when it isn't available, so the caller builds it. */\nconst pullPublished = async (image: string) => {\n const published = await publishedImage(image);\n console.log(`Pulling ${published}`);\n try {\n await runDocker(\n [\"pull\", \"--platform\", \"linux/amd64\", published],\n (status) => `Docker pull failed (${status})`,\n );\n } catch {\n console.log(`${published} is not available; building ${image} locally instead.`);\n return false;\n }\n await runDocker([\"tag\", published, image], (status) => `Docker tag failed (${status})`);\n return true;\n};\n\n/** Install the IDE and its prerequisites in the Docker builder image. */\nexport const configureDocker = async () => {\n const image = dockerImage;\n const { stdout } = await execute(\n \"docker\",\n [\"info\", \"--format\", \"{{.OSType}}/{{.Architecture}}\"],\n { timeout: 30_000 },\n ).catch((cause: unknown) => {\n throw new Error(\"Cannot connect to Docker. Install and start Docker Desktop or Docker Engine\", {\n cause,\n });\n });\n const architecture = stdout.trim();\n const arm = architecture === \"linux/aarch64\" || architecture === \"linux/arm64\";\n if (!arm && architecture !== \"linux/x86_64\" && architecture !== \"linux/amd64\") {\n throw new Error(\"The builder requires a Linux Docker server on ARM64 or AMD64\");\n }\n if (await pullPublished(image)) return image;\n const context = await mkdtemp(resolve(tmpdir(), \"codesys-installer-\"));\n let buildContext: string | undefined;\n try {\n buildContext = await prepareDockerContext();\n const cache = resolve(context, \"winetricks\");\n await mkdir(cache);\n if (process.env[\"CODESYS_WINETRICKS_CACHE\"]) {\n await cp(process.env[\"CODESYS_WINETRICKS_CACHE\"], cache, {\n recursive: true,\n });\n }\n console.log(\n `Preparing Docker builder (${image}). Downloading and installing CODESYS 3.5.22.30 and prerequisites.`,\n );\n await runDocker(\n [\n \"build\",\n \"--platform\",\n \"linux/amd64\",\n \"--build-arg\",\n `SETUP_BASE=${arm ? \"arm-setup\" : \"base\"}`,\n \"--build-arg\",\n `SETUP_PLATFORM=${arm ? \"linux/arm64\" : \"linux/amd64\"}`,\n \"--build-arg\",\n \"INSTALLER_SOURCE=installer-download\",\n \"--progress\",\n \"plain\",\n \"--build-context\",\n `installer=${context}`,\n \"-f\",\n resolve(buildContext, \"docker/Dockerfile\"),\n \"-t\",\n image,\n buildContext,\n ],\n (status) =>\n `Docker configuration failed (${status}). Review the image-build output and run tsplc configure again`,\n );\n return image;\n } finally {\n await Promise.all([\n rm(context, { recursive: true, force: true }),\n ...(buildContext ? [rm(buildContext, { recursive: true, force: true })] : []),\n ]);\n }\n};\n\nexport const runtimeImage = \"tsplc-control-linux-sl:4.22.0.0\";\n\n/** Build the local CODESYS Control for Linux SL runtime, the same device as a production build. */\nexport const configureRuntime = async () => {\n const context = resolve(packageDirectory, \"docker/control-linux-sl\");\n console.log(`Preparing the local PLC runtime (${runtimeImage}).`);\n await runDocker(\n [\"build\", \"--platform\", \"linux/amd64\", \"--progress\", \"plain\", \"-t\", runtimeImage, context],\n (status) => `Runtime image build failed (${status}). Review the image-build output`,\n );\n return runtimeImage;\n};\n\nexport const gatewayImage = \"tsplc-edge-gateway:4.22.0.0\";\n\n/** Build the CODESYS Edge Gateway that builder containers reach a plant controller through. */\nexport const configureGateway = async () => {\n if (await pullPublished(gatewayImage)) return gatewayImage;\n const context = resolve(packageDirectory, \"docker/edge-gateway\");\n console.log(`Preparing the CODESYS gateway (${gatewayImage}).`);\n await runDocker(\n [\"build\", \"--platform\", \"linux/amd64\", \"--progress\", \"plain\", \"-t\", gatewayImage, context],\n (status) => `Gateway image build failed (${status}). Review the image-build output`,\n );\n return gatewayImage;\n};\n\nexport const buildInDocker = async (config: ResolvedConfig, image: string) => {\n const requestDirectory = await mkdtemp(resolve(tmpdir(), \"codesys-docker-\"));\n try {\n const operationId = randomUUID();\n await mkdir(config.outDir, { recursive: true });\n const failurePath = resolve(config.outDir, buildFailureFile);\n await rm(failurePath, { force: true });\n const args = [\n \"run\",\n \"--rm\",\n ...(await prepareContainerRun(config, requestDirectory, { network: \"none\", sources: true })),\n image,\n \"--request\",\n \"/input/config.json\",\n \"--operation-id\",\n operationId,\n ];\n console.log(`Building with Docker (${image})`);\n try {\n await runDocker(\n args,\n (status) =>\n `Docker build failed (${status}). Run tsplc configure if the image is missing; inspect ${config.outDir}/.codesys/docker for compiler logs`,\n );\n } catch (cause) {\n const message = cause instanceof Error ? cause.message : String(cause);\n const failure = await readFile(failurePath, \"utf8\")\n .then((text) => buildFailureSchema.parse(JSON.parse(text)))\n .catch((error: unknown) => {\n if (error instanceof Error && \"code\" in error && error.code === \"ENOENT\") return;\n throw new AggregateError(\n [cause, error],\n `${message}. Invalid CODESYS failure metadata (${failurePath})`,\n { cause: error },\n );\n });\n if (!failure) throw cause;\n if (failure.operationId !== operationId)\n throw new Error(\n `${message}. CODESYS failure metadata belongs to a different Docker build`,\n {\n cause,\n },\n );\n if (cause instanceof Error) {\n // The mapper keeps ordinary error messages as notes, while vendor\n // diagnostics supply their own text. Preserve shutdown context there.\n cause.message = `${message}\\n${failure.message}`;\n if (failure.diagnostics.length)\n cause.cause = new CodesysCompilerError(failure.message, failure.diagnostics);\n }\n throw cause;\n }\n return await readBuild(config.outDir);\n } finally {\n await rm(requestDirectory, { recursive: true, force: true });\n }\n};\n",
|
|
26
26
|
"import { createHash, randomUUID } from \"node:crypto\";\nimport { mkdir, readFile, rename, writeFile } from \"node:fs/promises\";\nimport { basename, relative, resolve } from \"node:path\";\nimport type { LibraryDependency } from \"@tsplc/config\";\n\nexport const libraryRegistry = \"https://store-archive.codesys.com/CODESYSLibs\";\nconst libraryFile = /\\.(?:compiled-library(?:-v\\d+)?|library)$/i;\ntype Fetcher = (input: string | URL | Request, init?: RequestInit) => Promise<Response>;\nexport interface InstalledLibrary {\n title: string;\n company?: string;\n version?: string;\n namespace?: string;\n path: string;\n sha256: string;\n url?: string;\n}\ninterface LibraryLock {\n version: 1;\n dependencies: Record<string, InstalledLibrary>;\n}\nconst hash = (data: Uint8Array) => createHash(\"sha256\").update(data).digest(\"hex\");\nconst component = (name: string) => {\n if (!name.trim() || /[/\\\\\\0\\r\\n]/.test(name) || name === \".\" || name === \"..\")\n throw new Error(`Invalid library registry component: ${name}.`);\n return encodeURIComponent(name);\n};\nasync function response(url: string, fetcher: Fetcher) {\n const result = await fetcher(url, { signal: AbortSignal.timeout(30_000) });\n if (!result.ok) throw new Error(`Library registry ${result.status}: ${url}`);\n return result;\n}\nexport async function libraryIndex(\n path: string[] = [\"System\"],\n fetcher: Fetcher = fetch,\n): Promise<string[]> {\n const url = `${libraryRegistry}/${path.map(component).join(\"/\")}/index`;\n const result = await response(url, fetcher);\n const text = await result.text();\n if (text.length > 4_000_000 || /<html/i.test(text))\n throw new Error(`Invalid library registry index: ${url}`);\n return text\n .split(/\\r?\\n/)\n .map((s) => s.trim())\n .filter(Boolean);\n}\nexport async function validateLibrary(\n title: string,\n version: string,\n company = \"System\",\n fetcher: Fetcher = fetch,\n) {\n if (!(await libraryIndex([company], fetcher)).includes(title))\n throw new Error(`Unknown CODESYS library ${company}/${title}. Names are case sensitive.`);\n const versions = await libraryIndex([company, title], fetcher);\n if (!versions.includes(version))\n throw new Error(`Unknown version ${version} for ${title}. Available: ${versions.join(\", \")}`);\n const filenames = (await libraryIndex([company, title, version], fetcher)).filter((name) =>\n libraryFile.test(name),\n );\n if (filenames.length !== 1)\n throw new Error(\n `Expected one library payload for ${title} ${version}, received ${filenames.length}.`,\n );\n return {\n filename: filenames[0]!,\n url: `${libraryRegistry}/${[company, title, version, filenames[0]!].map(component).join(\"/\")}`,\n };\n}\nexport async function installLibraries(\n dependencies: Record<string, LibraryDependency>,\n root: string,\n options: { frozen?: boolean; fetcher?: Fetcher } = {},\n) {\n const file = resolve(root, \"tsplc.lock.json\"),\n store = resolve(root, \".tsplc/libraries\");\n let previous: LibraryLock = { version: 1, dependencies: {} };\n try {\n previous = JSON.parse(await readFile(file, \"utf8\"));\n } catch (cause) {\n if (!(cause && typeof cause === \"object\" && \"code\" in cause && cause.code === \"ENOENT\"))\n throw cause;\n }\n if (previous.version !== 1 || !previous.dependencies || typeof previous.dependencies !== \"object\")\n throw new Error(\"Invalid tsplc.lock.json.\");\n const installed: Record<string, InstalledLibrary> = {};\n const fetcher = options.fetcher ?? fetch;\n await mkdir(store, { recursive: true });\n for (const [title, dependency] of Object.entries(dependencies)) {\n component(title);\n const settings = typeof dependency === \"string\" ? { version: dependency } : dependency;\n const locked = previous.dependencies[title];\n const prior = locked ? { ...locked, path: resolve(root, locked.path) } : undefined;\n const same =\n prior !== undefined &&\n prior.namespace === settings.namespace &&\n (\"path\" in settings\n ? prior.url === undefined && prior.path === resolve(root, settings.path)\n : prior.version === settings.version && prior.company === (settings.company ?? \"System\"));\n if (same) {\n try {\n if (hash(await readFile(prior.path)) === prior.sha256) {\n installed[title] = prior;\n continue;\n }\n } catch {\n /* Missing cache can be restored from the exact URL. */\n }\n if (options.frozen) throw new Error(`Locked library ${title} is missing or changed.`);\n } else if (options.frozen) throw new Error(`Dependency ${title} differs from tsplc.lock.json.`);\n if (\"path\" in settings) {\n const path = resolve(root, settings.path);\n if (!libraryFile.test(path))\n throw new Error(`${title}: expected a .library or .compiled-library file.`);\n installed[title] = {\n title,\n path,\n sha256: hash(await readFile(path)),\n ...(settings.namespace ? { namespace: settings.namespace } : {}),\n };\n } else {\n const company = settings.company ?? \"System\";\n const payload = await validateLibrary(title, settings.version, company, fetcher);\n const result = await response(payload.url, fetcher);\n const data = new Uint8Array(await result.arrayBuffer());\n if (!data.length || data.length > 256 * 1024 * 1024)\n throw new Error(`${title}: invalid library payload size.`);\n const sha256 = hash(data);\n // An existing lock pins the payload, even if the registry later changes it.\n if (same && prior.sha256 !== sha256)\n throw new Error(\n `Registry payload changed for locked library ${title} ${settings.version}.`,\n );\n const path = resolve(store, `${sha256}-${basename(payload.filename)}`),\n temp = `${path}.${randomUUID()}.tmp`;\n await writeFile(temp, data, { flag: \"wx\" });\n await rename(temp, path);\n installed[title] = {\n title,\n company,\n version: settings.version,\n path,\n sha256,\n url: payload.url,\n ...(settings.namespace ? { namespace: settings.namespace } : {}),\n };\n }\n }\n if (\n options.frozen &&\n Object.keys(previous.dependencies).some((name) => !Object.hasOwn(dependencies, name))\n )\n throw new Error(\"Removed dependencies differ from tsplc.lock.json.\");\n if (!options.frozen) {\n const temp = `${file}.${randomUUID()}.tmp`;\n const portable = Object.fromEntries(\n Object.entries(installed).map(([title, library]) => [\n title,\n { ...library, path: relative(root, library.path).replaceAll(\"\\\\\", \"/\") },\n ]),\n );\n await writeFile(temp, JSON.stringify({ version: 1, dependencies: portable }, null, 2) + \"\\n\");\n await rename(temp, file);\n }\n return Object.values(installed);\n}\n",
|
|
27
27
|
"import { execFile } from \"node:child_process\";\nimport { mkdtemp, readFile, rm, writeFile } from \"node:fs/promises\";\nimport { tmpdir } from \"node:os\";\nimport { basename, dirname, join } from \"node:path\";\nimport { setTimeout as delay } from \"node:timers/promises\";\nimport { promisify } from \"node:util\";\nimport { z } from \"zod\";\nimport { readBuild } from \"./artifacts\";\nimport type { ResolvedConfig } from \"./config\";\nimport { runtimeImage } from \"./docker-build\";\nimport { withWorkerLock } from \"./host/codesys-worker\";\nimport { getApplicationStatus } from \"./runtime-status\";\n\nconst execute = promisify(execFile);\nconst stateSchema = z.object({\n Running: z.boolean(),\n StartedAt: z.iso.datetime({ offset: true }),\n});\n\nconst service = \"plc\";\n\n/** The Docker Compose project of a tsPLC project: `FrameAssembly` runs as `frame-assembly`. */\nexport const runtimeProject = (name: string) =>\n name\n .replace(/([a-z0-9])([A-Z])/g, \"$1-$2\")\n .toLowerCase()\n .replace(/[^a-z0-9_-]+/g, \"-\");\n\n/** The local PLC: named volumes keep its provisioning and the installed application across restarts. */\nexport const runtimeDefinition = (name: string) => ({\n services: {\n [service]: {\n image: runtimeImage,\n platform: \"linux/amd64\",\n hostname: `${runtimeProject(name)}-${service}`,\n init: true,\n ports: [\"127.0.0.1:4840:4840\", \"127.0.0.1:11740:11740\"],\n cap_add: [\"SYS_NICE\", \"IPC_LOCK\"],\n volumes: [\"control-conf:/conf/codesyscontrol\", \"control-data:/data/codesyscontrol\"],\n restart: \"no\",\n },\n },\n volumes: { \"control-conf\": {}, \"control-data\": {} },\n});\n\n/** Deploy the completed boot application to the project's local PLC container. */\nexport const runProject = async (\n config: Pick<ResolvedConfig, \"outDir\" | \"timeouts\">,\n name: string,\n) =>\n withWorkerLock(config, async () => {\n // Validate before stopping anything. A missing receipt includes a failed rebuild.\n const build = await readBuild(config.outDir).catch((cause: unknown) => {\n throw new Error(`No complete build in ${config.outDir}. Run tsplc-build build first.`, {\n cause,\n });\n });\n const definitionDirectory = await mkdtemp(join(tmpdir(), \"tsplc-runtime-\"));\n try {\n const composeFile = join(definitionDirectory, \"compose.yaml\");\n // JSON is valid YAML.\n await writeFile(composeFile, JSON.stringify(runtimeDefinition(name)));\n const docker = (...args: string[]) =>\n execute(\"docker\", args, {\n timeout: config.timeouts.runtime,\n maxBuffer: 8 * 1024 * 1024,\n });\n const compose = (...args: string[]) =>\n docker(\"compose\", \"--project-name\", runtimeProject(name), \"--file\", composeFile, ...args);\n const installer = await readFile(new URL(\"../runtime/install.sh\", import.meta.url), \"utf8\");\n console.log(`Installing ${build.application} in Docker service ${service}`);\n await compose(\"stop\", service);\n // The helper uses the service's volumes without starting its PLC or publishing\n // ports. Its read-only artifact mount is removed with the helper container.\n await compose(\n \"run\",\n \"--rm\",\n \"--no-deps\",\n \"-T\",\n \"--volume\",\n `${dirname(build.output)}:/codesys-build:ro`,\n \"--entrypoint\",\n \"/bin/sh\",\n service,\n \"-c\",\n installer,\n \"codesys-build-install\",\n build.application,\n basename(build.output, \".app\"),\n );\n await compose(\"up\", \"--detach\", \"--no-deps\", service);\n const containers = (await compose(\"ps\", \"--all\", \"--quiet\", service)).stdout\n .trim()\n .split(/\\s+/)\n .filter(Boolean);\n if (containers.length !== 1 || !containers[0]) {\n throw new Error(`Expected one container for Compose service ${service}`);\n }\n const container = containers[0];\n const deadline = Date.now() + config.timeouts.runtime;\n while (true) {\n const state = stateSchema.parse(\n JSON.parse((await docker(\"inspect\", \"--format\", \"{{json .State}}\", container)).stdout),\n );\n if (!state.Running) {\n throw new Error(\n `Docker service ${service} exited before the application started. Check docker logs ${container}.`,\n );\n }\n // Use this container start time, not the host clock or an old \"started\" event.\n const { stdout: log } = await docker(\n \"exec\",\n container,\n \"/bin/sh\",\n \"-c\",\n \"if [ -f /data/codesyscontrol/codesyscontrol.log ]; then cat /data/codesyscontrol/codesyscontrol.log; fi\",\n );\n const status = getApplicationStatus(log, build.application, Date.parse(state.StartedAt));\n if (status === \"running\") {\n console.log(`${build.application} is running in ${service}`);\n return { ...build, container };\n }\n if (status === \"failed\" || Date.now() >= deadline) {\n throw new Error(\n `CODESYS did not start ${build.application}. Runtime log:\\n${log.split(\"\\n\").slice(-25).join(\"\\n\")}`,\n );\n }\n await delay(250);\n }\n } finally {\n await rm(definitionDirectory, { force: true, recursive: true });\n }\n });\n",
|
|
28
28
|
"/** Runtime stdout is buffered in Docker. Its log file records start/stop events immediately. */\nexport const getApplicationStatus = (log: string, application: string, startedAt: number) => {\n const event = log\n .split(/\\r?\\n/)\n .reverse()\n .find((line) => {\n const timestamp = Date.parse(line.split(\",\")[0] ?? \"\");\n if (!Number.isFinite(timestamp) || timestamp < startedAt) {\n return false;\n }\n return (\n line.includes(`<app>${application}</app>`) &&\n /\\b(started|stopped|exception|corrupt|failed|denied)\\b/i.test(line) &&\n !line.includes(\"load started\")\n );\n });\n if (!event) {\n return \"pending\";\n }\n return event.includes(`Application [<app>${application}</app>] started`) ? \"running\" : \"failed\";\n};\n",
|
|
29
29
|
"import { readdir, readFile } from \"node:fs/promises\";\nimport { basename, resolve } from \"node:path\";\nimport type { ResolvedConfig } from \"./config\";\nimport { type ObjectKind, type ParsedSource, parseSource } from \"./st/parse\";\nimport { bindStructuredTextIo } from \"./io.ts\";\n\nexport type SourceObject = ParsedSource & {\n source: string;\n folder: string[];\n children: SourceObject[];\n};\ntype Files = {\n combined: string[];\n declaration: string[];\n implementation: string[];\n};\nconst prefixes: Record<string, ObjectKind> = {\n FB: \"function_block\",\n PRG: \"program\",\n FUN: \"function\",\n F: \"function\",\n I: \"interface\",\n ST: \"dut\",\n E: \"dut\",\n T: \"dut\",\n U: \"dut\",\n GVL: \"gvl\",\n};\nconst childFolders: Record<string, ObjectKind> = {\n methods: \"method\",\n properties: \"property\",\n actions: \"action\",\n};\nconst canOwn = (kind: ObjectKind) =>\n [\"program\", \"function_block\", \"interface\", \"property\"].includes(kind);\nconst assertUnique = (objects: SourceObject[], scope: string) => {\n const seen = new Map<string, string>();\n for (const object of objects) {\n const key = object.name.toLowerCase();\n const previous = seen.get(key);\n if (previous) {\n throw new Error(\n `Duplicate IEC name ${object.name} in ${scope}: ${previous} and ${object.source}`,\n );\n }\n seen.set(key, object.source);\n assertUnique(object.children, `${scope}.${object.name}`);\n }\n};\n\nconst readUnit = async (\n name: string,\n files: Files,\n role?: ObjectKind,\n interfaceMember = false,\n): Promise<ParsedSource & { source: string }> => {\n if (!/^[A-Za-z_][A-Za-z_0-9]*$/.test(name)) {\n throw new Error(`Invalid IEC object name: ${name}`);\n }\n for (const [part, candidates] of Object.entries(files)) {\n if (candidates.length > 1) {\n throw new Error(`Ambiguous ${part} for ${name}: ${candidates.join(\", \")}`);\n }\n }\n const combined = files.combined[0];\n const declaration = files.declaration[0];\n const implementation = files.implementation[0];\n if (combined && (declaration || implementation)) {\n throw new Error(`Both combined and split sources exist for ${name}`);\n }\n const path = combined ?? declaration ?? implementation;\n if (!path) {\n throw new Error(`Missing source for ${name}`);\n }\n if (role === \"action\") {\n if (!combined) {\n throw new Error(`Actions use one implementation-only .st file: ${path}`);\n }\n return {\n kind: \"action\",\n name,\n declaration: \"\",\n implementation: await readFile(combined, \"utf8\"),\n source: combined,\n };\n }\n if (role === \"get\" || role === \"set\") {\n if (!combined) {\n throw new Error(`Property accessors use one .st file: ${path}`);\n }\n const body = await readFile(combined, \"utf8\");\n const header = `METHOD ${name}\\n`;\n const parsed = parseSource(`${header}${body}\\nEND_METHOD`, {\n filename: combined,\n });\n return {\n ...parsed,\n kind: role,\n name,\n declaration: parsed.declaration.slice(header.length),\n source: combined,\n };\n }\n if (!combined && !declaration) {\n throw new Error(`Missing declaration for ${path}`);\n }\n const sourcePath = combined ?? declaration ?? path;\n const parsed = parseSource(await readFile(sourcePath, \"utf8\"), {\n filename: sourcePath,\n name,\n declarationOnly: !combined || interfaceMember,\n });\n if (parsed.name.toLowerCase() !== name.toLowerCase()) {\n throw new Error(`Source name ${name} does not match declaration ${parsed.name}: ${sourcePath}`);\n }\n if (role && parsed.kind !== role) {\n throw new Error(`Expected ${role}, found ${parsed.kind}: ${sourcePath}`);\n }\n if (!role && [\"method\", \"property\"].includes(parsed.kind)) {\n throw new Error(`Child object has no enclosing POU: ${sourcePath}`);\n }\n const prefix = /^([A-Z]+)_/.exec(name.toUpperCase())?.[1];\n if (!role && prefix && prefixes[prefix] && prefixes[prefix] !== parsed.kind) {\n throw new Error(`Prefix ${prefix}_ conflicts with ${parsed.kind}: ${sourcePath}`);\n }\n const declarationOnly =\n [\"dut\", \"gvl\", \"interface\", \"property\"].includes(parsed.kind) || interfaceMember;\n if (declarationOnly && implementation) {\n throw new Error(`This object has no implementation: ${implementation}`);\n }\n if (!combined && !declarationOnly && !implementation) {\n throw new Error(`Missing implementation for ${sourcePath}`);\n }\n return {\n ...parsed,\n ...(implementation ? { implementation: await readFile(implementation, \"utf8\") } : {}),\n source: sourcePath,\n };\n};\n\n/** Folder placement organizes the IDE; it never changes IEC names or execution order. */\nexport const loadSources = async (\n config: Pick<ResolvedConfig, \"sourceDir\" | \"entry\" | \"io\" | \"tasks\">,\n) => {\n const objects: SourceObject[] = [];\n const visit = async (\n directory: string,\n folder: string[],\n parent?: SourceObject,\n role?: ObjectKind,\n ): Promise<void> => {\n const entries = (await readdir(directory, { withFileTypes: true })).sort((a, b) =>\n a.name.localeCompare(b.name, \"en\"),\n );\n const groups = new Map<string, { name: string; files: Files }>();\n for (const entry of entries) {\n if (entry.isSymbolicLink()) {\n throw new Error(`Source symlinks are not supported: ${resolve(directory, entry.name)}`);\n }\n if (!entry.isFile() || !/\\.st$/i.test(entry.name)) {\n continue;\n }\n const stem = entry.name.slice(0, -3);\n const suffix = /^(.*)\\.(declaration|implementation)$/.exec(stem);\n const generic = [\"source\", \"declaration\", \"implementation\"].includes(stem);\n const name = generic ? basename(directory) : (suffix?.[1] ?? stem);\n const section = suffix?.[2] ?? stem;\n const part = section === \"declaration\" || section === \"implementation\" ? section : \"combined\";\n const key = name.toLowerCase();\n const group = groups.get(key) ?? {\n name,\n files: { combined: [], declaration: [], implementation: [] },\n };\n group.files[part].push(resolve(directory, entry.name));\n groups.set(key, group);\n }\n const units: SourceObject[] = [];\n const ownKey = basename(directory).toLowerCase();\n // Read an object's own source before its Get/Set files, which have no POU header.\n const ordered = [...groups].sort(([a], [b]) => Number(b === ownKey) - Number(a === ownKey));\n for (const [key, { name, files }] of ordered) {\n const ownProperty = units.find(\n (unit) => unit.kind === \"property\" && unit.name.toLowerCase() === ownKey,\n );\n const accessor = ownProperty && (key === \"get\" || key === \"set\") ? key : undefined;\n const unit: SourceObject = {\n ...(await readUnit(\n accessor ? `${accessor[0]?.toUpperCase()}${accessor.slice(1)}` : name,\n files,\n accessor ?? role,\n parent?.kind === \"interface\",\n )),\n folder: parent ? [] : folder,\n children: [],\n };\n if (accessor && ownProperty) {\n if (parent?.kind === \"interface\") {\n throw new Error(`Interface properties cannot implement accessors: ${unit.source}`);\n }\n ownProperty.children.push(unit);\n } else {\n units.push(unit);\n if (parent) {\n parent.children.push(unit);\n } else {\n objects.push(unit);\n }\n }\n }\n const own = units.find((unit) => unit.name.toLowerCase() === ownKey && canOwn(unit.kind));\n if (own && !parent) {\n own.folder = folder.slice(0, -1);\n }\n for (const entry of entries.filter((entry) => entry.isDirectory())) {\n const childRole = childFolders[entry.name];\n if (own && childRole) {\n if (own.kind === \"property\" || (own.kind === \"interface\" && childRole === \"action\")) {\n throw new Error(`Unsupported ${entry.name} under ${own.name}`);\n }\n await visit(resolve(directory, entry.name), [], own, childRole);\n } else if (parent) {\n await visit(resolve(directory, entry.name), [], parent, role);\n } else {\n await visit(resolve(directory, entry.name), [...folder, entry.name]);\n }\n }\n };\n await visit(resolve(config.sourceDir), []);\n assertUnique(objects, \"Application\");\n if (config.io) bindStructuredTextIo(objects, config.io);\n const entry = objects.find((object) => object.source === resolve(config.entry));\n if (!entry) {\n throw new Error(`Entry is not a discovered source: ${config.entry}`);\n }\n if (entry.kind !== \"program\") {\n throw new Error(`Entry must be a PROGRAM: ${config.entry}`);\n }\n if (config.tasks) {\n const programs = new Set(\n objects.filter((object) => object.kind === \"program\").map((object) => object.name),\n );\n for (const task of config.tasks)\n for (const program of task.programs)\n if (!programs.has(program))\n throw new Error(`Task ${task.name} references an undiscovered PROGRAM ${program}`);\n }\n return { entry: entry.name, objects };\n};\n"
|
|
30
30
|
],
|
|
31
|
-
"mappings": "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",
|
|
32
|
-
"debugId": "
|
|
31
|
+
"mappings": "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",
|
|
32
|
+
"debugId": "C41ADA14BA58D42564756E2164756E21",
|
|
33
33
|
"names": []
|
|
34
34
|
}
|
package/dist/index.js
CHANGED
|
@@ -209,6 +209,22 @@ var prepareContainerRun = async (config, requestDirectory, options) => {
|
|
|
209
209
|
|
|
210
210
|
// packages/build/src/docker-build.ts
|
|
211
211
|
var execute = promisify(execFile);
|
|
212
|
+
var publishedImage = async (image) => {
|
|
213
|
+
const { version } = JSON.parse(await readFile3(resolve5(packageDirectory, "package.json"), "utf8"));
|
|
214
|
+
return `ghcr.io/livingforjesus/${image.split(":")[0]}:${version}`;
|
|
215
|
+
};
|
|
216
|
+
var pullPublished = async (image) => {
|
|
217
|
+
const published = await publishedImage(image);
|
|
218
|
+
console.log(`Pulling ${published}`);
|
|
219
|
+
try {
|
|
220
|
+
await runDocker(["pull", "--platform", "linux/amd64", published], (status) => `Docker pull failed (${status})`);
|
|
221
|
+
} catch {
|
|
222
|
+
console.log(`${published} is not available; building ${image} locally instead.`);
|
|
223
|
+
return false;
|
|
224
|
+
}
|
|
225
|
+
await runDocker(["tag", published, image], (status) => `Docker tag failed (${status})`);
|
|
226
|
+
return true;
|
|
227
|
+
};
|
|
212
228
|
var configureDocker = async () => {
|
|
213
229
|
const image = dockerImage;
|
|
214
230
|
const { stdout } = await execute("docker", ["info", "--format", "{{.OSType}}/{{.Architecture}}"], { timeout: 30000 }).catch((cause) => {
|
|
@@ -221,6 +237,8 @@ var configureDocker = async () => {
|
|
|
221
237
|
if (!arm && architecture !== "linux/x86_64" && architecture !== "linux/amd64") {
|
|
222
238
|
throw new Error("The builder requires a Linux Docker server on ARM64 or AMD64");
|
|
223
239
|
}
|
|
240
|
+
if (await pullPublished(image))
|
|
241
|
+
return image;
|
|
224
242
|
const context = await mkdtemp2(resolve5(tmpdir2(), "codesys-installer-"));
|
|
225
243
|
let buildContext;
|
|
226
244
|
try {
|
|
@@ -270,6 +288,8 @@ var configureRuntime = async () => {
|
|
|
270
288
|
};
|
|
271
289
|
var gatewayImage = "tsplc-edge-gateway:4.22.0.0";
|
|
272
290
|
var configureGateway = async () => {
|
|
291
|
+
if (await pullPublished(gatewayImage))
|
|
292
|
+
return gatewayImage;
|
|
273
293
|
const context = resolve5(packageDirectory, "docker/edge-gateway");
|
|
274
294
|
console.log(`Preparing the CODESYS gateway (${gatewayImage}).`);
|
|
275
295
|
await runDocker(["build", "--platform", "linux/amd64", "--progress", "plain", "-t", gatewayImage, context], (status) => `Gateway image build failed (${status}). Review the image-build output`);
|
|
@@ -1686,5 +1706,5 @@ export {
|
|
|
1686
1706
|
validateLibrary
|
|
1687
1707
|
};
|
|
1688
1708
|
|
|
1689
|
-
//# debugId=
|
|
1709
|
+
//# debugId=2FE06AE03D021AE864756E2164756E21
|
|
1690
1710
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"import { copyFile, cp, readFile, rename, rm, stat, writeFile } from \"node:fs/promises\";\nimport { resolve } from \"node:path\";\nimport { z } from \"zod\";\nimport { cyclicTasksSchema } from \"./config\";\n\nexport const buildFiles = {\n project: \"Application.project\",\n output: \"runtime/Application.app\",\n checksum: \"runtime/Application.crc\",\n receipt: \"build.json\",\n // Normalized EDS files of a generated device tree, imported by the worker.\n devices: \"eds\",\n // With a generated device tree: the project plus the descriptions an IDE needs.\n archive: \"Application.projectarchive\",\n} as const;\n\nconst receiptSchema = z.object({\n mode: z.literal(\"build\"),\n application: z.string().regex(/^[A-Za-z_][A-Za-z_0-9]*$/),\n tasks: cyclicTasksSchema.optional(),\n});\n\n/** A receipt is published last, after every artifact has been checked and replaced. */\nexport const readBuild = async (directory: string) => {\n const receipt = receiptSchema.safeParse(\n JSON.parse(await readFile(resolve(directory, buildFiles.receipt), \"utf8\")),\n );\n if (!receipt.success) {\n throw new Error(\"CODESYS did not produce a valid build receipt\", {\n cause: receipt.error,\n });\n }\n for (const file of [buildFiles.project, buildFiles.output, buildFiles.checksum]) {\n const artifact = await stat(resolve(directory, file));\n if (!artifact.isFile() || artifact.size === 0) {\n throw new Error(`CODESYS produced an empty artifact: ${file}`);\n }\n }\n return {\n ...receipt.data,\n directory,\n project: resolve(directory, buildFiles.project),\n output: resolve(directory, buildFiles.output),\n checksum: resolve(directory, buildFiles.checksum),\n };\n};\n\n/** Publish a verified IDE build, with the completion receipt written last. */\nexport const publishBuild = async (\n compiled: Awaited<ReturnType<typeof readBuild>>,\n outDir: string,\n) => {\n await copyFile(compiled.project, resolve(outDir, buildFiles.project));\n await rm(resolve(outDir, \"runtime\"), { recursive: true, force: true });\n await rename(resolve(compiled.directory, \"runtime\"), resolve(outDir, \"runtime\"));\n await rm(resolve(outDir, buildFiles.archive), { force: true });\n await cp(\n resolve(compiled.directory, buildFiles.archive),\n resolve(outDir, buildFiles.archive),\n ).catch((cause: unknown) => {\n if (!(cause && typeof cause === \"object\" && \"code\" in cause && cause.code === \"ENOENT\"))\n throw cause;\n });\n await writeFile(\n resolve(outDir, buildFiles.receipt),\n JSON.stringify(\n {\n mode: \"build\",\n application: compiled.application,\n ...(compiled.tasks && { tasks: compiled.tasks }),\n },\n null,\n 2,\n ),\n );\n return readBuild(outDir);\n};\n",
|
|
6
6
|
"export {\n configSchema,\n controllerSchema,\n cyclicTasksSchema,\n dockerImage,\n defineBuildConfig as defineConfig,\n resolveConfig,\n loadConfig,\n type CodesysBuildConfig,\n type ResolvedConfig,\n type CyclicTask,\n} from \"@tsplc/config/build\";\n",
|
|
7
|
-
"import { execFile } from \"node:child_process\";\nimport { randomUUID } from \"node:crypto\";\nimport { cp, mkdir, mkdtemp, readFile, rm } from \"node:fs/promises\";\nimport { tmpdir } from \"node:os\";\nimport { resolve } from \"node:path\";\nimport { promisify } from \"node:util\";\nimport { readBuild } from \"./artifacts\";\nimport { dockerImage, type ResolvedConfig } from \"./config\";\nimport { prepareDockerContext } from \"./docker-context.ts\";\nimport { buildFailureFile, buildFailureSchema, CodesysCompilerError } from \"./diagnostics.ts\";\nimport { prepareContainerRun, runDocker } from \"./docker-run.ts\";\nimport { packageDirectory } from \"./package-path.ts\";\n\nconst execute = promisify(execFile);\n\n/** Install the IDE and its prerequisites in the Docker builder image. */\nexport const configureDocker = async () => {\n const image = dockerImage;\n const { stdout } = await execute(\n \"docker\",\n [\"info\", \"--format\", \"{{.OSType}}/{{.Architecture}}\"],\n { timeout: 30_000 },\n ).catch((cause: unknown) => {\n throw new Error(\"Cannot connect to Docker. Install and start Docker Desktop or Docker Engine\", {\n cause,\n });\n });\n const architecture = stdout.trim();\n const arm = architecture === \"linux/aarch64\" || architecture === \"linux/arm64\";\n if (!arm && architecture !== \"linux/x86_64\" && architecture !== \"linux/amd64\") {\n throw new Error(\"The builder requires a Linux Docker server on ARM64 or AMD64\");\n }\n const context = await mkdtemp(resolve(tmpdir(), \"codesys-installer-\"));\n let buildContext: string | undefined;\n try {\n buildContext = await prepareDockerContext();\n const cache = resolve(context, \"winetricks\");\n await mkdir(cache);\n if (process.env[\"CODESYS_WINETRICKS_CACHE\"]) {\n await cp(process.env[\"CODESYS_WINETRICKS_CACHE\"], cache, {\n recursive: true,\n });\n }\n console.log(\n `Preparing Docker builder (${image}). Downloading and installing CODESYS 3.5.22.30 and prerequisites.`,\n );\n await runDocker(\n [\n \"build\",\n \"--platform\",\n \"linux/amd64\",\n \"--build-arg\",\n `SETUP_BASE=${arm ? \"arm-setup\" : \"base\"}`,\n \"--build-arg\",\n `SETUP_PLATFORM=${arm ? \"linux/arm64\" : \"linux/amd64\"}`,\n \"--build-arg\",\n \"INSTALLER_SOURCE=installer-download\",\n \"--progress\",\n \"plain\",\n \"--build-context\",\n `installer=${context}`,\n \"-f\",\n resolve(buildContext, \"docker/Dockerfile\"),\n \"-t\",\n image,\n buildContext,\n ],\n (status) =>\n `Docker configuration failed (${status}). Review the image-build output and run tsplc configure again`,\n );\n return image;\n } finally {\n await Promise.all([\n rm(context, { recursive: true, force: true }),\n ...(buildContext ? [rm(buildContext, { recursive: true, force: true })] : []),\n ]);\n }\n};\n\nexport const runtimeImage = \"tsplc-control-linux-sl:4.22.0.0\";\n\n/** Build the local CODESYS Control for Linux SL runtime, the same device as a production build. */\nexport const configureRuntime = async () => {\n const context = resolve(packageDirectory, \"docker/control-linux-sl\");\n console.log(`Preparing the local PLC runtime (${runtimeImage}).`);\n await runDocker(\n [\"build\", \"--platform\", \"linux/amd64\", \"--progress\", \"plain\", \"-t\", runtimeImage, context],\n (status) => `Runtime image build failed (${status}). Review the image-build output`,\n );\n return runtimeImage;\n};\n\nexport const gatewayImage = \"tsplc-edge-gateway:4.22.0.0\";\n\n/** Build the CODESYS Edge Gateway that builder containers reach a plant controller through. */\nexport const configureGateway = async () => {\n const context = resolve(packageDirectory, \"docker/edge-gateway\");\n console.log(`Preparing the CODESYS gateway (${gatewayImage}).`);\n await runDocker(\n [\"build\", \"--platform\", \"linux/amd64\", \"--progress\", \"plain\", \"-t\", gatewayImage, context],\n (status) => `Gateway image build failed (${status}). Review the image-build output`,\n );\n return gatewayImage;\n};\n\nexport const buildInDocker = async (config: ResolvedConfig, image: string) => {\n const requestDirectory = await mkdtemp(resolve(tmpdir(), \"codesys-docker-\"));\n try {\n const operationId = randomUUID();\n await mkdir(config.outDir, { recursive: true });\n const failurePath = resolve(config.outDir, buildFailureFile);\n await rm(failurePath, { force: true });\n const args = [\n \"run\",\n \"--rm\",\n ...(await prepareContainerRun(config, requestDirectory, { network: \"none\", sources: true })),\n image,\n \"--request\",\n \"/input/config.json\",\n \"--operation-id\",\n operationId,\n ];\n console.log(`Building with Docker (${image})`);\n try {\n await runDocker(\n args,\n (status) =>\n `Docker build failed (${status}). Run tsplc configure if the image is missing; inspect ${config.outDir}/.codesys/docker for compiler logs`,\n );\n } catch (cause) {\n const message = cause instanceof Error ? cause.message : String(cause);\n const failure = await readFile(failurePath, \"utf8\")\n .then((text) => buildFailureSchema.parse(JSON.parse(text)))\n .catch((error: unknown) => {\n if (error instanceof Error && \"code\" in error && error.code === \"ENOENT\") return;\n throw new AggregateError(\n [cause, error],\n `${message}. Invalid CODESYS failure metadata (${failurePath})`,\n { cause: error },\n );\n });\n if (!failure) throw cause;\n if (failure.operationId !== operationId)\n throw new Error(\n `${message}. CODESYS failure metadata belongs to a different Docker build`,\n {\n cause,\n },\n );\n if (cause instanceof Error) {\n // The mapper keeps ordinary error messages as notes, while vendor\n // diagnostics supply their own text. Preserve shutdown context there.\n cause.message = `${message}\\n${failure.message}`;\n if (failure.diagnostics.length)\n cause.cause = new CodesysCompilerError(failure.message, failure.diagnostics);\n }\n throw cause;\n }\n return await readBuild(config.outDir);\n } finally {\n await rm(requestDirectory, { recursive: true, force: true });\n }\n};\n",
|
|
7
|
+
"import { execFile } from \"node:child_process\";\nimport { randomUUID } from \"node:crypto\";\nimport { cp, mkdir, mkdtemp, readFile, rm } from \"node:fs/promises\";\nimport { tmpdir } from \"node:os\";\nimport { resolve } from \"node:path\";\nimport { promisify } from \"node:util\";\nimport { readBuild } from \"./artifacts\";\nimport { dockerImage, type ResolvedConfig } from \"./config\";\nimport { prepareDockerContext } from \"./docker-context.ts\";\nimport { buildFailureFile, buildFailureSchema, CodesysCompilerError } from \"./diagnostics.ts\";\nimport { prepareContainerRun, runDocker } from \"./docker-run.ts\";\nimport { packageDirectory } from \"./package-path.ts\";\n\nconst execute = promisify(execFile);\n\n/** Each tsPLC version's images, published so that setup pulls them instead of installing CODESYS. */\nexport const publishedImage = async (image: string) => {\n const { version } = JSON.parse(\n await readFile(resolve(packageDirectory, \"package.json\"), \"utf8\"),\n ) as { version: string };\n return `ghcr.io/livingforjesus/${image.split(\":\")[0]}:${version}`;\n};\n\n/** Pulls this version's published `image`; false when it isn't available, so the caller builds it. */\nconst pullPublished = async (image: string) => {\n const published = await publishedImage(image);\n console.log(`Pulling ${published}`);\n try {\n await runDocker(\n [\"pull\", \"--platform\", \"linux/amd64\", published],\n (status) => `Docker pull failed (${status})`,\n );\n } catch {\n console.log(`${published} is not available; building ${image} locally instead.`);\n return false;\n }\n await runDocker([\"tag\", published, image], (status) => `Docker tag failed (${status})`);\n return true;\n};\n\n/** Install the IDE and its prerequisites in the Docker builder image. */\nexport const configureDocker = async () => {\n const image = dockerImage;\n const { stdout } = await execute(\n \"docker\",\n [\"info\", \"--format\", \"{{.OSType}}/{{.Architecture}}\"],\n { timeout: 30_000 },\n ).catch((cause: unknown) => {\n throw new Error(\"Cannot connect to Docker. Install and start Docker Desktop or Docker Engine\", {\n cause,\n });\n });\n const architecture = stdout.trim();\n const arm = architecture === \"linux/aarch64\" || architecture === \"linux/arm64\";\n if (!arm && architecture !== \"linux/x86_64\" && architecture !== \"linux/amd64\") {\n throw new Error(\"The builder requires a Linux Docker server on ARM64 or AMD64\");\n }\n if (await pullPublished(image)) return image;\n const context = await mkdtemp(resolve(tmpdir(), \"codesys-installer-\"));\n let buildContext: string | undefined;\n try {\n buildContext = await prepareDockerContext();\n const cache = resolve(context, \"winetricks\");\n await mkdir(cache);\n if (process.env[\"CODESYS_WINETRICKS_CACHE\"]) {\n await cp(process.env[\"CODESYS_WINETRICKS_CACHE\"], cache, {\n recursive: true,\n });\n }\n console.log(\n `Preparing Docker builder (${image}). Downloading and installing CODESYS 3.5.22.30 and prerequisites.`,\n );\n await runDocker(\n [\n \"build\",\n \"--platform\",\n \"linux/amd64\",\n \"--build-arg\",\n `SETUP_BASE=${arm ? \"arm-setup\" : \"base\"}`,\n \"--build-arg\",\n `SETUP_PLATFORM=${arm ? \"linux/arm64\" : \"linux/amd64\"}`,\n \"--build-arg\",\n \"INSTALLER_SOURCE=installer-download\",\n \"--progress\",\n \"plain\",\n \"--build-context\",\n `installer=${context}`,\n \"-f\",\n resolve(buildContext, \"docker/Dockerfile\"),\n \"-t\",\n image,\n buildContext,\n ],\n (status) =>\n `Docker configuration failed (${status}). Review the image-build output and run tsplc configure again`,\n );\n return image;\n } finally {\n await Promise.all([\n rm(context, { recursive: true, force: true }),\n ...(buildContext ? [rm(buildContext, { recursive: true, force: true })] : []),\n ]);\n }\n};\n\nexport const runtimeImage = \"tsplc-control-linux-sl:4.22.0.0\";\n\n/** Build the local CODESYS Control for Linux SL runtime, the same device as a production build. */\nexport const configureRuntime = async () => {\n const context = resolve(packageDirectory, \"docker/control-linux-sl\");\n console.log(`Preparing the local PLC runtime (${runtimeImage}).`);\n await runDocker(\n [\"build\", \"--platform\", \"linux/amd64\", \"--progress\", \"plain\", \"-t\", runtimeImage, context],\n (status) => `Runtime image build failed (${status}). Review the image-build output`,\n );\n return runtimeImage;\n};\n\nexport const gatewayImage = \"tsplc-edge-gateway:4.22.0.0\";\n\n/** Build the CODESYS Edge Gateway that builder containers reach a plant controller through. */\nexport const configureGateway = async () => {\n if (await pullPublished(gatewayImage)) return gatewayImage;\n const context = resolve(packageDirectory, \"docker/edge-gateway\");\n console.log(`Preparing the CODESYS gateway (${gatewayImage}).`);\n await runDocker(\n [\"build\", \"--platform\", \"linux/amd64\", \"--progress\", \"plain\", \"-t\", gatewayImage, context],\n (status) => `Gateway image build failed (${status}). Review the image-build output`,\n );\n return gatewayImage;\n};\n\nexport const buildInDocker = async (config: ResolvedConfig, image: string) => {\n const requestDirectory = await mkdtemp(resolve(tmpdir(), \"codesys-docker-\"));\n try {\n const operationId = randomUUID();\n await mkdir(config.outDir, { recursive: true });\n const failurePath = resolve(config.outDir, buildFailureFile);\n await rm(failurePath, { force: true });\n const args = [\n \"run\",\n \"--rm\",\n ...(await prepareContainerRun(config, requestDirectory, { network: \"none\", sources: true })),\n image,\n \"--request\",\n \"/input/config.json\",\n \"--operation-id\",\n operationId,\n ];\n console.log(`Building with Docker (${image})`);\n try {\n await runDocker(\n args,\n (status) =>\n `Docker build failed (${status}). Run tsplc configure if the image is missing; inspect ${config.outDir}/.codesys/docker for compiler logs`,\n );\n } catch (cause) {\n const message = cause instanceof Error ? cause.message : String(cause);\n const failure = await readFile(failurePath, \"utf8\")\n .then((text) => buildFailureSchema.parse(JSON.parse(text)))\n .catch((error: unknown) => {\n if (error instanceof Error && \"code\" in error && error.code === \"ENOENT\") return;\n throw new AggregateError(\n [cause, error],\n `${message}. Invalid CODESYS failure metadata (${failurePath})`,\n { cause: error },\n );\n });\n if (!failure) throw cause;\n if (failure.operationId !== operationId)\n throw new Error(\n `${message}. CODESYS failure metadata belongs to a different Docker build`,\n {\n cause,\n },\n );\n if (cause instanceof Error) {\n // The mapper keeps ordinary error messages as notes, while vendor\n // diagnostics supply their own text. Preserve shutdown context there.\n cause.message = `${message}\\n${failure.message}`;\n if (failure.diagnostics.length)\n cause.cause = new CodesysCompilerError(failure.message, failure.diagnostics);\n }\n throw cause;\n }\n return await readBuild(config.outDir);\n } finally {\n await rm(requestDirectory, { recursive: true, force: true });\n }\n};\n",
|
|
8
8
|
"import { cp, mkdir, mkdtemp, rm, writeFile } from \"node:fs/promises\";\nimport { createRequire } from \"node:module\";\nimport { tmpdir } from \"node:os\";\nimport { dirname, resolve } from \"node:path\";\nimport { packageDirectory } from \"./package-path.ts\";\n\nexport async function prepareDockerContext() {\n const context = await mkdtemp(resolve(tmpdir(), \"tsplc-docker-\"));\n try {\n for (const directory of [\"src\", \"python\", \"docker\", \"runtime\"])\n await cp(resolve(packageDirectory, directory), resolve(context, directory), {\n recursive: true,\n });\n const configRoot = resolve(\n dirname(createRequire(import.meta.url).resolve(\"@tsplc/config/build\")),\n \"..\",\n );\n await mkdir(resolve(context, \"shared-config\"));\n await cp(resolve(configRoot, \"src\"), resolve(context, \"shared-config/src\"), {\n recursive: true,\n });\n await cp(resolve(configRoot, \"templates\"), resolve(context, \"shared-config/templates\"), {\n recursive: true,\n });\n await cp(resolve(configRoot, \"package.json\"), resolve(context, \"shared-config/package.json\"));\n await writeFile(\n resolve(context, \"package.json\"),\n JSON.stringify({ type: \"module\", dependencies: { zod: \"4.3.6\", jiti: \"2.7.0\" } }),\n );\n return context;\n } catch (cause) {\n await rm(context, { recursive: true, force: true });\n throw cause;\n }\n}\n",
|
|
9
9
|
"import { resolve } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\n// Both source modules and published bundles live one directory below the package root.\nexport const packageDirectory = resolve(fileURLToPath(new URL(\"..\", import.meta.url)));\n",
|
|
10
10
|
"import { z } from \"zod\";\n\nexport const compilerDiagnosticSchema = z\n .object({\n category: z.string(),\n text: z.string(),\n severity: z.string().nullable(),\n project: z.string().nullable(),\n object: z\n .object({\n name: z.string(),\n guid: z.string(),\n path: z.array(z.string()),\n /** Verified against this message project's active application GUID. */\n isApplicationChild: z.boolean().nullable(),\n })\n .passthrough()\n .nullable(),\n /** Opaque vendor position. It must not be decoded as a line or column. */\n position: z.string().nullable(),\n positionText: z.string().nullable(),\n positionOffset: z.int().nullable(),\n length: z.int().nullable(),\n prefix: z.string().nullable(),\n number: z.int().nullable(),\n })\n .passthrough();\n\nexport type CodesysCompilerDiagnostic = z.infer<typeof compilerDiagnosticSchema>;\n\n/** Preserves vendor diagnostics as the cause of a buildProject failure. */\nexport class CodesysCompilerError extends Error {\n constructor(\n message: string,\n readonly diagnostics: readonly CodesysCompilerDiagnostic[],\n ) {\n super(message);\n this.name = \"CodesysCompilerError\";\n }\n}\n\n// A failed container job publishes diagnostics separately from its successful build receipt.\nexport const buildFailureFile = \".codesys/docker/failure.json\";\n/** Why the last download, online change or inspection failed, for the host to report. */\nexport const controllerFailureFile = \".codesys/controller/failure.txt\";\nexport const buildFailureSchema = z.strictObject({\n operationId: z.uuid(),\n message: z.string(),\n diagnostics: z.array(compilerDiagnosticSchema),\n});\n\n/** Keep the primary compiler location and the shutdown context across the Docker boundary. */\nexport function describeBuildFailure(cause: unknown) {\n const messages: string[] = [];\n let diagnostics: readonly CodesysCompilerDiagnostic[] = [];\n let current = cause;\n while (current instanceof Error) {\n messages.push(current.message);\n if (current instanceof AggregateError) {\n // withWorkerShutdown puts the primary failure in cause and secondary failures in errors.\n for (const secondary of current.errors.slice(1))\n messages.push(secondary instanceof Error ? secondary.message : String(secondary));\n }\n if (current instanceof CodesysCompilerError) diagnostics = current.diagnostics;\n current = current.cause;\n }\n return { message: messages.length ? messages.join(\"\\n\") : String(cause), diagnostics };\n}\n",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"/** Runtime stdout is buffered in Docker. Its log file records start/stop events immediately. */\nexport const getApplicationStatus = (log: string, application: string, startedAt: number) => {\n const event = log\n .split(/\\r?\\n/)\n .reverse()\n .find((line) => {\n const timestamp = Date.parse(line.split(\",\")[0] ?? \"\");\n if (!Number.isFinite(timestamp) || timestamp < startedAt) {\n return false;\n }\n return (\n line.includes(`<app>${application}</app>`) &&\n /\\b(started|stopped|exception|corrupt|failed|denied)\\b/i.test(line) &&\n !line.includes(\"load started\")\n );\n });\n if (!event) {\n return \"pending\";\n }\n return event.includes(`Application [<app>${application}</app>] started`) ? \"running\" : \"failed\";\n};\n",
|
|
26
26
|
"import { createHash, randomUUID } from \"node:crypto\";\nimport { mkdir, readFile, rename, writeFile } from \"node:fs/promises\";\nimport { basename, relative, resolve } from \"node:path\";\nimport type { LibraryDependency } from \"@tsplc/config\";\n\nexport const libraryRegistry = \"https://store-archive.codesys.com/CODESYSLibs\";\nconst libraryFile = /\\.(?:compiled-library(?:-v\\d+)?|library)$/i;\ntype Fetcher = (input: string | URL | Request, init?: RequestInit) => Promise<Response>;\nexport interface InstalledLibrary {\n title: string;\n company?: string;\n version?: string;\n namespace?: string;\n path: string;\n sha256: string;\n url?: string;\n}\ninterface LibraryLock {\n version: 1;\n dependencies: Record<string, InstalledLibrary>;\n}\nconst hash = (data: Uint8Array) => createHash(\"sha256\").update(data).digest(\"hex\");\nconst component = (name: string) => {\n if (!name.trim() || /[/\\\\\\0\\r\\n]/.test(name) || name === \".\" || name === \"..\")\n throw new Error(`Invalid library registry component: ${name}.`);\n return encodeURIComponent(name);\n};\nasync function response(url: string, fetcher: Fetcher) {\n const result = await fetcher(url, { signal: AbortSignal.timeout(30_000) });\n if (!result.ok) throw new Error(`Library registry ${result.status}: ${url}`);\n return result;\n}\nexport async function libraryIndex(\n path: string[] = [\"System\"],\n fetcher: Fetcher = fetch,\n): Promise<string[]> {\n const url = `${libraryRegistry}/${path.map(component).join(\"/\")}/index`;\n const result = await response(url, fetcher);\n const text = await result.text();\n if (text.length > 4_000_000 || /<html/i.test(text))\n throw new Error(`Invalid library registry index: ${url}`);\n return text\n .split(/\\r?\\n/)\n .map((s) => s.trim())\n .filter(Boolean);\n}\nexport async function validateLibrary(\n title: string,\n version: string,\n company = \"System\",\n fetcher: Fetcher = fetch,\n) {\n if (!(await libraryIndex([company], fetcher)).includes(title))\n throw new Error(`Unknown CODESYS library ${company}/${title}. Names are case sensitive.`);\n const versions = await libraryIndex([company, title], fetcher);\n if (!versions.includes(version))\n throw new Error(`Unknown version ${version} for ${title}. Available: ${versions.join(\", \")}`);\n const filenames = (await libraryIndex([company, title, version], fetcher)).filter((name) =>\n libraryFile.test(name),\n );\n if (filenames.length !== 1)\n throw new Error(\n `Expected one library payload for ${title} ${version}, received ${filenames.length}.`,\n );\n return {\n filename: filenames[0]!,\n url: `${libraryRegistry}/${[company, title, version, filenames[0]!].map(component).join(\"/\")}`,\n };\n}\nexport async function installLibraries(\n dependencies: Record<string, LibraryDependency>,\n root: string,\n options: { frozen?: boolean; fetcher?: Fetcher } = {},\n) {\n const file = resolve(root, \"tsplc.lock.json\"),\n store = resolve(root, \".tsplc/libraries\");\n let previous: LibraryLock = { version: 1, dependencies: {} };\n try {\n previous = JSON.parse(await readFile(file, \"utf8\"));\n } catch (cause) {\n if (!(cause && typeof cause === \"object\" && \"code\" in cause && cause.code === \"ENOENT\"))\n throw cause;\n }\n if (previous.version !== 1 || !previous.dependencies || typeof previous.dependencies !== \"object\")\n throw new Error(\"Invalid tsplc.lock.json.\");\n const installed: Record<string, InstalledLibrary> = {};\n const fetcher = options.fetcher ?? fetch;\n await mkdir(store, { recursive: true });\n for (const [title, dependency] of Object.entries(dependencies)) {\n component(title);\n const settings = typeof dependency === \"string\" ? { version: dependency } : dependency;\n const locked = previous.dependencies[title];\n const prior = locked ? { ...locked, path: resolve(root, locked.path) } : undefined;\n const same =\n prior !== undefined &&\n prior.namespace === settings.namespace &&\n (\"path\" in settings\n ? prior.url === undefined && prior.path === resolve(root, settings.path)\n : prior.version === settings.version && prior.company === (settings.company ?? \"System\"));\n if (same) {\n try {\n if (hash(await readFile(prior.path)) === prior.sha256) {\n installed[title] = prior;\n continue;\n }\n } catch {\n /* Missing cache can be restored from the exact URL. */\n }\n if (options.frozen) throw new Error(`Locked library ${title} is missing or changed.`);\n } else if (options.frozen) throw new Error(`Dependency ${title} differs from tsplc.lock.json.`);\n if (\"path\" in settings) {\n const path = resolve(root, settings.path);\n if (!libraryFile.test(path))\n throw new Error(`${title}: expected a .library or .compiled-library file.`);\n installed[title] = {\n title,\n path,\n sha256: hash(await readFile(path)),\n ...(settings.namespace ? { namespace: settings.namespace } : {}),\n };\n } else {\n const company = settings.company ?? \"System\";\n const payload = await validateLibrary(title, settings.version, company, fetcher);\n const result = await response(payload.url, fetcher);\n const data = new Uint8Array(await result.arrayBuffer());\n if (!data.length || data.length > 256 * 1024 * 1024)\n throw new Error(`${title}: invalid library payload size.`);\n const sha256 = hash(data);\n // An existing lock pins the payload, even if the registry later changes it.\n if (same && prior.sha256 !== sha256)\n throw new Error(\n `Registry payload changed for locked library ${title} ${settings.version}.`,\n );\n const path = resolve(store, `${sha256}-${basename(payload.filename)}`),\n temp = `${path}.${randomUUID()}.tmp`;\n await writeFile(temp, data, { flag: \"wx\" });\n await rename(temp, path);\n installed[title] = {\n title,\n company,\n version: settings.version,\n path,\n sha256,\n url: payload.url,\n ...(settings.namespace ? { namespace: settings.namespace } : {}),\n };\n }\n }\n if (\n options.frozen &&\n Object.keys(previous.dependencies).some((name) => !Object.hasOwn(dependencies, name))\n )\n throw new Error(\"Removed dependencies differ from tsplc.lock.json.\");\n if (!options.frozen) {\n const temp = `${file}.${randomUUID()}.tmp`;\n const portable = Object.fromEntries(\n Object.entries(installed).map(([title, library]) => [\n title,\n { ...library, path: relative(root, library.path).replaceAll(\"\\\\\", \"/\") },\n ]),\n );\n await writeFile(temp, JSON.stringify({ version: 1, dependencies: portable }, null, 2) + \"\\n\");\n await rename(temp, file);\n }\n return Object.values(installed);\n}\n"
|
|
27
27
|
],
|
|
28
|
-
"mappings": "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",
|
|
29
|
-
"debugId": "
|
|
28
|
+
"mappings": "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",
|
|
29
|
+
"debugId": "2FE06AE03D021AE864756E2164756E21",
|
|
30
30
|
"names": []
|
|
31
31
|
}
|
package/docker/Dockerfile
CHANGED
|
@@ -124,6 +124,18 @@ COPY docker/install/install.sh /opt/codesys-install/
|
|
|
124
124
|
# Wine starts orphaned helpers; BuildKit RUN needs the same reaping as docker run --init.
|
|
125
125
|
RUN tini -s -g -- xvfb-run -a /opt/codesys-install/install.sh
|
|
126
126
|
|
|
127
|
+
# Registries time out finishing a single multi-gigabyte layer, so the prefix leaves setup in parts.
|
|
128
|
+
FROM installed AS prefix-parts
|
|
129
|
+
USER root
|
|
130
|
+
RUN cd /opt/wine-template/drive_c \
|
|
131
|
+
&& mkdir -p /parts/webview /parts/installer /parts/system32 /parts/syswow64 /parts/dotnet /parts/programdata \
|
|
132
|
+
&& mv "Program Files (x86)/Microsoft" /parts/webview/ \
|
|
133
|
+
&& mv windows/Installer /parts/installer/ \
|
|
134
|
+
&& mv windows/system32 /parts/system32/ \
|
|
135
|
+
&& mv windows/syswow64 /parts/syswow64/ \
|
|
136
|
+
&& mv windows/Microsoft.NET /parts/dotnet/ \
|
|
137
|
+
&& mv ProgramData /parts/programdata/
|
|
138
|
+
|
|
127
139
|
# Build the Wine-only signal adapter independently of the expensive setup cache.
|
|
128
140
|
FROM base AS wine-signal-compat
|
|
129
141
|
RUN apt-get -o Acquire::Retries=3 update \
|
|
@@ -135,7 +147,13 @@ RUN /opt/codesys-install/wine-signal/build.sh /opt/tsplc-wine-compat
|
|
|
135
147
|
# Only the installed prefix leaves setup. After observed managed faults under FEX,
|
|
136
148
|
# the compiler uses AMD64 Wine without setup's FEX wrappers, rootfs or environment.
|
|
137
149
|
FROM base AS builder
|
|
138
|
-
COPY --from=
|
|
150
|
+
COPY --from=prefix-parts --chown=builder:builder /opt/wine-template /opt/wine-template
|
|
151
|
+
COPY --from=prefix-parts --chown=builder:builder ["/parts/webview/Microsoft", "/opt/wine-template/drive_c/Program Files (x86)/Microsoft"]
|
|
152
|
+
COPY --from=prefix-parts --chown=builder:builder /parts/installer/Installer /opt/wine-template/drive_c/windows/Installer
|
|
153
|
+
COPY --from=prefix-parts --chown=builder:builder /parts/system32/system32 /opt/wine-template/drive_c/windows/system32
|
|
154
|
+
COPY --from=prefix-parts --chown=builder:builder /parts/syswow64/syswow64 /opt/wine-template/drive_c/windows/syswow64
|
|
155
|
+
COPY --from=prefix-parts --chown=builder:builder /parts/dotnet/Microsoft.NET /opt/wine-template/drive_c/windows/Microsoft.NET
|
|
156
|
+
COPY --from=prefix-parts --chown=builder:builder /parts/programdata/ProgramData /opt/wine-template/drive_c/ProgramData
|
|
139
157
|
COPY --from=wine-signal-compat /opt/tsplc-wine-compat /opt/tsplc-wine-compat
|
|
140
158
|
COPY --chmod=755 docker/install/wine-signal/wine /usr/local/bin/wine
|
|
141
159
|
USER root
|
package/package.json
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"url": "git+https://github.com/livingforjesus/tsplc.git",
|
|
16
16
|
"directory": "packages/build"
|
|
17
17
|
},
|
|
18
|
-
"version": "0.2.
|
|
18
|
+
"version": "0.2.6",
|
|
19
19
|
"type": "module",
|
|
20
20
|
"exports": {
|
|
21
21
|
".": {
|
|
@@ -43,8 +43,8 @@
|
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
45
|
"zod": "4.3.6",
|
|
46
|
-
"@tsplc/config": "0.2.
|
|
47
|
-
"@tsplc/typegen": "0.2.
|
|
46
|
+
"@tsplc/config": "0.2.6",
|
|
47
|
+
"@tsplc/typegen": "0.2.6"
|
|
48
48
|
},
|
|
49
49
|
"bin": {
|
|
50
50
|
"tsplc-build": "./dist/cli.js"
|
package/python/build.py
CHANGED
|
@@ -342,7 +342,8 @@ EDS_CONVERTER = "1ce4a9c1-37d3-496c-9e80-cd99ad3807ee"
|
|
|
342
342
|
ETHERNET = ("Ethernet", 110, "0000 0002", "4.2.0.0")
|
|
343
343
|
SCANNER = ("EtherNet_IP_Scanner", 100, "0000 100B", "4.9.0.0")
|
|
344
344
|
# Ethernet adapter interface settings and EtherNet/IP adapter parameter IDs.
|
|
345
|
-
|
|
345
|
+
# The interface name is a STRING (10) and a WSTRING (12); the device editor and runtime read the WSTRING.
|
|
346
|
+
ETHERNET_PARAMETERS = (("address", 0), ("subnet", 1), ("gateway", 2), ("interface", 10), ("interface", 12))
|
|
346
347
|
TARGET_ADDRESS = 256
|
|
347
348
|
CONNECTION_SETTINGS = 268435457
|
|
348
349
|
MODBUS_CLIENT = ("Modbus_TCP_Client", 88, "0000 0003", "4.6.0.0")
|
|
@@ -385,6 +386,10 @@ def set_parameter(parameter, value):
|
|
|
385
386
|
raise RuntimeError("{0} reads back {1}, not {2}".format(parameter.visible_name, parameter.value, value))
|
|
386
387
|
|
|
387
388
|
|
|
389
|
+
def string_literal(parameter, text):
|
|
390
|
+
return ('"{0}"' if parameter.type_string == "WSTRING" else "'{0}'").format(text)
|
|
391
|
+
|
|
392
|
+
|
|
388
393
|
def ip_array(address, hexadecimal=False):
|
|
389
394
|
octets = [int(octet) for octet in address.split(".")]
|
|
390
395
|
return "[" + ",".join("16#{0:02X}".format(octet) if hexadecimal else str(octet) for octet in octets) + "]"
|
|
@@ -548,7 +553,7 @@ def configure_device_tree(engine, project, tree, root, progress):
|
|
|
548
553
|
for key, identifier in ETHERNET_PARAMETERS:
|
|
549
554
|
value = tree.get("ethernet", {}).get(key)
|
|
550
555
|
if value is not None:
|
|
551
|
-
set_parameter(parameters[identifier],
|
|
556
|
+
set_parameter(parameters[identifier], string_literal(parameters[identifier], value) if key == "interface" else ip_array(value))
|
|
552
557
|
scanner = child_device(engine, ethernet, SCANNER)
|
|
553
558
|
pinned = {}
|
|
554
559
|
for device in tree["devices"]:
|
package/src/docker-build.ts
CHANGED
|
@@ -13,6 +13,31 @@ import { packageDirectory } from "./package-path.ts";
|
|
|
13
13
|
|
|
14
14
|
const execute = promisify(execFile);
|
|
15
15
|
|
|
16
|
+
/** Each tsPLC version's images, published so that setup pulls them instead of installing CODESYS. */
|
|
17
|
+
export const publishedImage = async (image: string) => {
|
|
18
|
+
const { version } = JSON.parse(
|
|
19
|
+
await readFile(resolve(packageDirectory, "package.json"), "utf8"),
|
|
20
|
+
) as { version: string };
|
|
21
|
+
return `ghcr.io/livingforjesus/${image.split(":")[0]}:${version}`;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
/** Pulls this version's published `image`; false when it isn't available, so the caller builds it. */
|
|
25
|
+
const pullPublished = async (image: string) => {
|
|
26
|
+
const published = await publishedImage(image);
|
|
27
|
+
console.log(`Pulling ${published}`);
|
|
28
|
+
try {
|
|
29
|
+
await runDocker(
|
|
30
|
+
["pull", "--platform", "linux/amd64", published],
|
|
31
|
+
(status) => `Docker pull failed (${status})`,
|
|
32
|
+
);
|
|
33
|
+
} catch {
|
|
34
|
+
console.log(`${published} is not available; building ${image} locally instead.`);
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
await runDocker(["tag", published, image], (status) => `Docker tag failed (${status})`);
|
|
38
|
+
return true;
|
|
39
|
+
};
|
|
40
|
+
|
|
16
41
|
/** Install the IDE and its prerequisites in the Docker builder image. */
|
|
17
42
|
export const configureDocker = async () => {
|
|
18
43
|
const image = dockerImage;
|
|
@@ -30,6 +55,7 @@ export const configureDocker = async () => {
|
|
|
30
55
|
if (!arm && architecture !== "linux/x86_64" && architecture !== "linux/amd64") {
|
|
31
56
|
throw new Error("The builder requires a Linux Docker server on ARM64 or AMD64");
|
|
32
57
|
}
|
|
58
|
+
if (await pullPublished(image)) return image;
|
|
33
59
|
const context = await mkdtemp(resolve(tmpdir(), "codesys-installer-"));
|
|
34
60
|
let buildContext: string | undefined;
|
|
35
61
|
try {
|
|
@@ -94,6 +120,7 @@ export const gatewayImage = "tsplc-edge-gateway:4.22.0.0";
|
|
|
94
120
|
|
|
95
121
|
/** Build the CODESYS Edge Gateway that builder containers reach a plant controller through. */
|
|
96
122
|
export const configureGateway = async () => {
|
|
123
|
+
if (await pullPublished(gatewayImage)) return gatewayImage;
|
|
97
124
|
const context = resolve(packageDirectory, "docker/edge-gateway");
|
|
98
125
|
console.log(`Preparing the CODESYS gateway (${gatewayImage}).`);
|
|
99
126
|
await runDocker(
|