@winccoa-tools-pack/npm-winccoa-ctrl-code-style 0.1.0

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.
Files changed (48) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +122 -0
  3. package/dist/cjs/cli.js +204 -0
  4. package/dist/cjs/cli.js.map +1 -0
  5. package/dist/cjs/index.js +29 -0
  6. package/dist/cjs/index.js.map +1 -0
  7. package/dist/cjs/paths.js +50 -0
  8. package/dist/cjs/paths.js.map +1 -0
  9. package/dist/cjs/register.js +154 -0
  10. package/dist/cjs/register.js.map +1 -0
  11. package/dist/cjs/style-check.js +110 -0
  12. package/dist/cjs/style-check.js.map +1 -0
  13. package/dist/cjs/types.js +3 -0
  14. package/dist/cjs/types.js.map +1 -0
  15. package/dist/cli.d.ts +15 -0
  16. package/dist/cli.d.ts.map +1 -0
  17. package/dist/esm/cli.js +204 -0
  18. package/dist/esm/cli.js.map +1 -0
  19. package/dist/esm/index.js +29 -0
  20. package/dist/esm/index.js.map +1 -0
  21. package/dist/esm/paths.js +50 -0
  22. package/dist/esm/paths.js.map +1 -0
  23. package/dist/esm/register.js +154 -0
  24. package/dist/esm/register.js.map +1 -0
  25. package/dist/esm/style-check.js +110 -0
  26. package/dist/esm/style-check.js.map +1 -0
  27. package/dist/esm/types.js +3 -0
  28. package/dist/esm/types.js.map +1 -0
  29. package/dist/index.d.ts +13 -0
  30. package/dist/index.d.ts.map +1 -0
  31. package/dist/paths.d.ts +16 -0
  32. package/dist/paths.d.ts.map +1 -0
  33. package/dist/register.d.ts +49 -0
  34. package/dist/register.d.ts.map +1 -0
  35. package/dist/style-check.d.ts +31 -0
  36. package/dist/style-check.d.ts.map +1 -0
  37. package/dist/types.d.ts +71 -0
  38. package/dist/types.d.ts.map +1 -0
  39. package/package.json +68 -0
  40. package/scripts/approve-open-pr-workflows.sh +85 -0
  41. package/scripts/check-changelog-version.mjs +37 -0
  42. package/scripts/fix-esm-imports.mjs +115 -0
  43. package/scripts/generate-changelog.mjs +190 -0
  44. package/scripts/register-stylecheck-projects.ps1 +92 -0
  45. package/scripts/register-stylecheck-projects.sh +193 -0
  46. package/scripts/run-node-tests.ts +74 -0
  47. package/scripts/wait-for-winccoa.sh +26 -0
  48. package/winccoa/StyleCheck/scripts/astyle.ctl +142 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 winccoa-tools-pack
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,122 @@
1
+ # npm-winccoa-ctrl-code-style
2
+
3
+ Check and format WinCC OA **CTL** sources using `WCCOActrl` and the bundled
4
+ non-runnable **StyleCheck** subproject (`astyle.ctl`).
5
+
6
+ ## Vision
7
+
8
+ Product intent and the non-negotiable worker + StyleCheck project model are
9
+ documented in [VISION.md](./VISION.md). Development detail lives in
10
+ [docs/dev/VISION.md](./docs/dev/VISION.md).
11
+
12
+ ## Correct project model
13
+
14
+ 1. Register **StyleCheck** as a **non-runnable** WinCC OA project.
15
+ 2. Register the **worker / source project** (e.g. Squirt) as **runnable**, with
16
+ StyleCheck attached via `--sub-project StyleCheck`
17
+ (`@winccoa-tools-pack/npm-winccoa-register-project`).
18
+ 3. Start CTRL against the **worker** config (not `-proj StyleCheck`):
19
+
20
+ ```text
21
+ WCCOActrl -config <worker>/config/config -n -log +stderr astyle.ctl <source> [TRUE]
22
+ ```
23
+
24
+ Why this is correct:
25
+
26
+ - The worker project owns logs and artifacts (not StyleCheck).
27
+ - `getPath` resolves scripts from StyleCheck as a sub-project.
28
+ - Optional custom `astyle.config` lives under the worker `config/` (or OA default).
29
+ No CLI `--options` flag is needed.
30
+
31
+ ## Install
32
+
33
+ ```bash
34
+ npm install @winccoa-tools-pack/npm-winccoa-ctrl-code-style
35
+ ```
36
+
37
+ ## CLI
38
+
39
+ ```bash
40
+ # Register only (StyleCheck + worker with sub-project)
41
+ winccoa-ctrl-style register ./src/Squirt -v 3.21
42
+
43
+ # Dry-run check (registers first by default)
44
+ winccoa-ctrl-style check ./src/Squirt -v 3.21
45
+
46
+ # Format in place
47
+ winccoa-ctrl-style format ./src/Squirt -v 3.21
48
+
49
+ # Scan a subtree only
50
+ winccoa-ctrl-style check ./src/Squirt -v 3.21 -s ./src/Squirt/scripts
51
+ ```
52
+
53
+ ## Local registration helpers
54
+
55
+ Shell (Linux / Git Bash / CI):
56
+
57
+ ```bash
58
+ ./scripts/register-stylecheck-projects.sh \
59
+ --project-path ./src/Squirt \
60
+ --version 3.21 \
61
+ --langs en_US.utf8
62
+ ```
63
+
64
+ PowerShell (Windows local):
65
+
66
+ ```powershell
67
+ ./scripts/register-stylecheck-projects.ps1 `
68
+ -ProjectPath ./src/Squirt `
69
+ -Version 3.21
70
+ ```
71
+
72
+ Both helpers call `npm-winccoa-register-project`:
73
+
74
+ 1. `--project-path <StyleCheck> --runnable false`
75
+ 2. `--project-path <worker> --runnable true --sub-project <StyleCheck>`
76
+
77
+ > Note: the register-project CLI only **writes** worker `config` when it does
78
+ > not already exist. For a forced config rewrite that always injects StyleCheck,
79
+ > use `winccoa-ctrl-style register <projectPath> -v <ver>` (in-process API).
80
+
81
+ ## API
82
+
83
+ ```ts
84
+ import {
85
+ checkStyle,
86
+ formatStyle,
87
+ registerWorkerProjectWithStyleCheck,
88
+ } from '@winccoa-tools-pack/npm-winccoa-ctrl-code-style';
89
+
90
+ await registerWorkerProjectWithStyleCheck({
91
+ projectPath: './src/Squirt',
92
+ version: '3.21',
93
+ });
94
+
95
+ const result = await checkStyle({
96
+ projectPath: './src/Squirt',
97
+ version: '3.21',
98
+ registerProject: false,
99
+ });
100
+ ```
101
+
102
+ ## StyleCheck layout
103
+
104
+ ```text
105
+ winccoa/StyleCheck/
106
+ scripts/astyle.ctl
107
+ ```
108
+
109
+ StyleCheck is **non-runnable**. It has no `config/` or `log/`. The worker
110
+ project owns `config/config` and logs when CTRL runs with `-config`.
111
+
112
+ ## Development
113
+
114
+ ```bash
115
+ npm ci
116
+ npm run build
117
+ npm run test:unit
118
+ ```
119
+
120
+ ---
121
+
122
+ <center>Made with ❤️ for and by the WinCC OA community</center>
@@ -0,0 +1,204 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.printUsage = printUsage;
5
+ exports.parseArgs = parseArgs;
6
+ exports.main = main;
7
+ const style_check_1 = require("./style-check");
8
+ const register_1 = require("./register");
9
+ const EXIT_OK = 0;
10
+ const EXIT_USAGE = 1;
11
+ const EXIT_FAILED = 2;
12
+ function printUsage() {
13
+ const bin = 'winccoa-ctrl-style';
14
+ process.stderr.write([
15
+ '',
16
+ 'Usage: ' + bin + ' <command> <projectPath> [options]',
17
+ '',
18
+ 'Commands:',
19
+ ' check <projectPath> Dry-run: fail if CTL files need formatting',
20
+ ' format <projectPath> Format CTL files in place via astyle',
21
+ ' register <projectPath> Register StyleCheck + worker project only',
22
+ '',
23
+ 'Options:',
24
+ ' -v, --version <ver> WinCC OA version (e.g. 3.21)',
25
+ ' -s, --source <path> CTL tree to scan (default: projectPath)',
26
+ ' --langs <csv> Worker project langs (default: en_US.utf8)',
27
+ ' --style-check-path <path> StyleCheck sub-project (default: package winccoa/StyleCheck)',
28
+ ' --no-register Skip registration (use existing worker config)',
29
+ ' -t, --timeout <ms> WCCOActrl timeout in ms (default: 120000)',
30
+ ' -h, --help Show this help',
31
+ '',
32
+ 'Examples:',
33
+ ' ' + bin + ' register ./src/Squirt -v 3.21',
34
+ ' ' + bin + ' check ./src/Squirt -v 3.21',
35
+ ' ' + bin + ' format ./src/Squirt -v 3.21 -s ./src/Squirt/scripts',
36
+ '',
37
+ 'Flow:',
38
+ ' 1. Register bundled StyleCheck as non-runnable',
39
+ ' 2. Register worker project as runnable with StyleCheck as sub-project',
40
+ ' 3. WCCOActrl -config <worker>/config/config -n -log +stderr astyle.ctl ...',
41
+ '',
42
+ ' astyle.config is resolved via getPath (worker, StyleCheck, then OA install).',
43
+ ' Put a custom astyle.config under the worker project config/ if needed.',
44
+ ' Logs and artifacts stay on the worker project, not StyleCheck.',
45
+ '',
46
+ 'Local helper script:',
47
+ ' ./scripts/register-stylecheck-projects.sh --project-path ./src/Squirt -v 3.21',
48
+ '',
49
+ ].join('\n'));
50
+ }
51
+ function parseArgs(argv) {
52
+ const args = argv.slice(2);
53
+ if (args.length === 0 || args.includes('-h') || args.includes('--help')) {
54
+ return null;
55
+ }
56
+ const commandRaw = args[0];
57
+ if (commandRaw !== 'check' && commandRaw !== 'format' && commandRaw !== 'register') {
58
+ process.stderr.write('Error: Unknown command "' +
59
+ commandRaw +
60
+ '". Expected "check", "format", or "register".\n');
61
+ return null;
62
+ }
63
+ const projectPath = args[1];
64
+ if (!projectPath || projectPath.startsWith('-')) {
65
+ process.stderr.write('Error: Missing projectPath.\n');
66
+ return null;
67
+ }
68
+ let version;
69
+ let sourcePath;
70
+ let langs;
71
+ let styleCheckProjectPath;
72
+ let registerProject = true;
73
+ let timeout;
74
+ let i = 2;
75
+ while (i < args.length) {
76
+ const flag = args[i];
77
+ switch (flag) {
78
+ case '-v':
79
+ case '--version':
80
+ version = args[++i] ?? '';
81
+ break;
82
+ case '-s':
83
+ case '--source':
84
+ sourcePath = args[++i] ?? '';
85
+ break;
86
+ case '--langs': {
87
+ const raw = args[++i] ?? '';
88
+ langs = raw
89
+ .split(/[ ,]+/)
90
+ .map((s) => s.trim())
91
+ .filter(Boolean);
92
+ break;
93
+ }
94
+ case '--style-check-path':
95
+ styleCheckProjectPath = args[++i] ?? '';
96
+ break;
97
+ case '--no-register':
98
+ registerProject = false;
99
+ break;
100
+ case '-t':
101
+ case '--timeout': {
102
+ const raw = args[++i] ?? '';
103
+ const parsed = Number(raw);
104
+ if (Number.isNaN(parsed) || parsed <= 0) {
105
+ process.stderr.write('Error: Invalid timeout value "' + raw + '".\n');
106
+ return null;
107
+ }
108
+ timeout = parsed;
109
+ break;
110
+ }
111
+ default:
112
+ process.stderr.write('Error: Unknown option "' + flag + '".\n');
113
+ return null;
114
+ }
115
+ i++;
116
+ }
117
+ return {
118
+ command: commandRaw,
119
+ projectPath,
120
+ sourcePath: sourcePath || undefined,
121
+ version: version || undefined,
122
+ langs,
123
+ styleCheckProjectPath: styleCheckProjectPath || undefined,
124
+ registerProject,
125
+ timeout,
126
+ };
127
+ }
128
+ async function main(argv = process.argv) {
129
+ const parsed = parseArgs(argv);
130
+ if (!parsed) {
131
+ printUsage();
132
+ return EXIT_USAGE;
133
+ }
134
+ try {
135
+ if (parsed.command === 'register') {
136
+ process.stderr.write('Registering StyleCheck + worker project ' + parsed.projectPath + '\n');
137
+ const result = await (0, register_1.registerWorkerProjectWithStyleCheck)({
138
+ projectPath: parsed.projectPath,
139
+ version: parsed.version ?? '',
140
+ langs: parsed.langs,
141
+ styleCheckProjectPath: parsed.styleCheckProjectPath,
142
+ forceRewriteConfig: true,
143
+ });
144
+ process.stderr.write('Registered worker config: ' + result.configPath + '\n');
145
+ process.stderr.write('StyleCheck sub-project: ' + result.styleCheckPath + '\n');
146
+ return EXIT_OK;
147
+ }
148
+ const options = {
149
+ projectPath: parsed.projectPath,
150
+ version: parsed.version ?? '',
151
+ sourcePath: parsed.sourcePath,
152
+ applyChanges: parsed.command === 'format',
153
+ langs: parsed.langs,
154
+ styleCheckProjectPath: parsed.styleCheckProjectPath,
155
+ registerProject: parsed.registerProject,
156
+ timeout: parsed.timeout,
157
+ };
158
+ process.stderr.write((parsed.command === 'format' ? 'Formatting' : 'Checking') +
159
+ ' CTL style for project ' +
160
+ parsed.projectPath +
161
+ '\n');
162
+ const result = parsed.command === 'format' ? await (0, style_check_1.formatStyle)(options) : await (0, style_check_1.checkStyle)(options);
163
+ if (result.stdout) {
164
+ process.stdout.write(result.stdout);
165
+ if (!result.stdout.endsWith('\n')) {
166
+ process.stdout.write('\n');
167
+ }
168
+ }
169
+ if (result.stderr) {
170
+ process.stderr.write(result.stderr);
171
+ if (!result.stderr.endsWith('\n')) {
172
+ process.stderr.write('\n');
173
+ }
174
+ }
175
+ if (result.success) {
176
+ process.stderr.write('Style operation completed successfully.\n');
177
+ return EXIT_OK;
178
+ }
179
+ process.stderr.write('Style operation failed with exit code ' + result.exitCode + '.\n');
180
+ return EXIT_FAILED;
181
+ }
182
+ catch (err) {
183
+ const message = err instanceof Error ? err.message : String(err);
184
+ process.stderr.write('Error: ' + message + '\n');
185
+ return EXIT_FAILED;
186
+ }
187
+ }
188
+ const isDirectRun = !!process.argv[1] &&
189
+ (process.argv[1].endsWith('cli.js') ||
190
+ process.argv[1].endsWith('cli.ts') ||
191
+ process.argv[1].endsWith('cli.cjs') ||
192
+ process.argv[1].endsWith('cli.mjs'));
193
+ if (isDirectRun) {
194
+ main()
195
+ .then((code) => {
196
+ process.exit(code);
197
+ })
198
+ .catch((err) => {
199
+ const message = err instanceof Error ? err.message : String(err);
200
+ process.stderr.write('Error: ' + message + '\n');
201
+ process.exit(EXIT_FAILED);
202
+ });
203
+ }
204
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":";;;AAqBA,gCAwCC;AAED,8BAoFC;AAED,oBAuEC;AA1ND,+CAAwD;AACxD,yCAAiE;AAGjE,MAAM,OAAO,GAAG,CAAC,CAAC;AAClB,MAAM,UAAU,GAAG,CAAC,CAAC;AACrB,MAAM,WAAW,GAAG,CAAC,CAAC;AAatB,SAAgB,UAAU;IACtB,MAAM,GAAG,GAAG,oBAAoB,CAAC;IACjC,OAAO,CAAC,MAAM,CAAC,KAAK,CAChB;QACI,EAAE;QACF,SAAS,GAAG,GAAG,GAAG,oCAAoC;QACtD,EAAE;QACF,WAAW;QACX,uEAAuE;QACvE,iEAAiE;QACjE,sEAAsE;QACtE,EAAE;QACF,UAAU;QACV,6DAA6D;QAC7D,wEAAwE;QACxE,2EAA2E;QAC3E,6FAA6F;QAC7F,+EAA+E;QAC/E,0EAA0E;QAC1E,+CAA+C;QAC/C,EAAE;QACF,WAAW;QACX,IAAI,GAAG,GAAG,GAAG,gCAAgC;QAC7C,IAAI,GAAG,GAAG,GAAG,6BAA6B;QAC1C,IAAI,GAAG,GAAG,GAAG,sDAAsD;QACnE,EAAE;QACF,OAAO;QACP,kDAAkD;QAClD,yEAAyE;QACzE,8EAA8E;QAC9E,EAAE;QACF,gFAAgF;QAChF,0EAA0E;QAC1E,kEAAkE;QAClE,EAAE;QACF,sBAAsB;QACtB,iFAAiF;QACjF,EAAE;KACL,CAAC,IAAI,CAAC,IAAI,CAAC,CACf,CAAC;AACN,CAAC;AAED,SAAgB,SAAS,CAAC,IAAc;IACpC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAE3B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3B,IAAI,UAAU,KAAK,OAAO,IAAI,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;QACjF,OAAO,CAAC,MAAM,CAAC,KAAK,CAChB,0BAA0B;YACtB,UAAU;YACV,iDAAiD,CACxD,CAAC;QACF,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5B,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,OAA2B,CAAC;IAChC,IAAI,UAA8B,CAAC;IACnC,IAAI,KAA2B,CAAC;IAChC,IAAI,qBAAyC,CAAC;IAC9C,IAAI,eAAe,GAAG,IAAI,CAAC;IAC3B,IAAI,OAA2B,CAAC;IAEhC,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACrB,QAAQ,IAAI,EAAE,CAAC;YACX,KAAK,IAAI,CAAC;YACV,KAAK,WAAW;gBACZ,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC1B,MAAM;YACV,KAAK,IAAI,CAAC;YACV,KAAK,UAAU;gBACX,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC7B,MAAM;YACV,KAAK,SAAS,CAAC,CAAC,CAAC;gBACb,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC5B,KAAK,GAAG,GAAG;qBACN,KAAK,CAAC,OAAO,CAAC;qBACd,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;qBACpB,MAAM,CAAC,OAAO,CAAC,CAAC;gBACrB,MAAM;YACV,CAAC;YACD,KAAK,oBAAoB;gBACrB,qBAAqB,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBACxC,MAAM;YACV,KAAK,eAAe;gBAChB,eAAe,GAAG,KAAK,CAAC;gBACxB,MAAM;YACV,KAAK,IAAI,CAAC;YACV,KAAK,WAAW,CAAC,CAAC,CAAC;gBACf,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC5B,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC3B,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;oBACtC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,GAAG,GAAG,GAAG,MAAM,CAAC,CAAC;oBACtE,OAAO,IAAI,CAAC;gBAChB,CAAC;gBACD,OAAO,GAAG,MAAM,CAAC;gBACjB,MAAM;YACV,CAAC;YACD;gBACI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,GAAG,IAAI,GAAG,MAAM,CAAC,CAAC;gBAChE,OAAO,IAAI,CAAC;QACpB,CAAC;QACD,CAAC,EAAE,CAAC;IACR,CAAC;IAED,OAAO;QACH,OAAO,EAAE,UAAU;QACnB,WAAW;QACX,UAAU,EAAE,UAAU,IAAI,SAAS;QACnC,OAAO,EAAE,OAAO,IAAI,SAAS;QAC7B,KAAK;QACL,qBAAqB,EAAE,qBAAqB,IAAI,SAAS;QACzD,eAAe;QACf,OAAO;KACV,CAAC;AACN,CAAC;AAEM,KAAK,UAAU,IAAI,CAAC,OAAiB,OAAO,CAAC,IAAI;IACpD,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAE/B,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,UAAU,EAAE,CAAC;QACb,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,IAAI,CAAC;QACD,IAAI,MAAM,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;YAChC,OAAO,CAAC,MAAM,CAAC,KAAK,CAChB,0CAA0C,GAAG,MAAM,CAAC,WAAW,GAAG,IAAI,CACzE,CAAC;YACF,MAAM,MAAM,GAAG,MAAM,IAAA,8CAAmC,EAAC;gBACrD,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,EAAE;gBAC7B,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,qBAAqB,EAAE,MAAM,CAAC,qBAAqB;gBACnD,kBAAkB,EAAE,IAAI;aAC3B,CAAC,CAAC;YACH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,GAAG,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;YAC9E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,GAAG,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;YAChF,OAAO,OAAO,CAAC;QACnB,CAAC;QAED,MAAM,OAAO,GAAsB;YAC/B,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,EAAE;YAC7B,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,YAAY,EAAE,MAAM,CAAC,OAAO,KAAK,QAAQ;YACzC,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,qBAAqB,EAAE,MAAM,CAAC,qBAAqB;YACnD,eAAe,EAAE,MAAM,CAAC,eAAe;YACvC,OAAO,EAAE,MAAM,CAAC,OAAO;SAC1B,CAAC;QAEF,OAAO,CAAC,MAAM,CAAC,KAAK,CAChB,CAAC,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC;YACrD,yBAAyB;YACzB,MAAM,CAAC,WAAW;YAClB,IAAI,CACX,CAAC;QAEF,MAAM,MAAM,GACR,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,IAAA,yBAAW,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,IAAA,wBAAU,EAAC,OAAO,CAAC,CAAC;QAEzF,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACpC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;QACL,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACpC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;QACL,CAAC;QAED,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;YAClE,OAAO,OAAO,CAAC;QACnB,CAAC;QAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wCAAwC,GAAG,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC;QACzF,OAAO,WAAW,CAAC;IACvB,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACpB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC;QACjD,OAAO,WAAW,CAAC;IACvB,CAAC;AACL,CAAC;AAED,MAAM,WAAW,GACb,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACjB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC/B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;AAE7C,IAAI,WAAW,EAAE,CAAC;IACd,IAAI,EAAE;SACD,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;QACX,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;QACpB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC;QACjD,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;AACX,CAAC"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ /**
3
+ * @winccoa-tools-pack/npm-winccoa-ctrl-code-style
4
+ *
5
+ * Check and format WinCC OA CTL sources via WCCOActrl + astyle.ctl.
6
+ * Worker project is runnable; StyleCheck is a non-runnable sub-project.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.main = exports.printUsage = exports.parseArgs = exports.spawnRegisterProjectCli = exports.resolveWinCCOAVersion = exports.registerWorkerProjectWithStyleCheck = exports.registerStyleCheckSubProject = exports.getAstyleScriptPath = exports.getDefaultStyleCheckProjectPath = exports.getPackageRoot = exports.ASTYLE_SCRIPT = exports.buildCtrlArgs = exports.formatStyle = exports.checkStyle = exports.runStyleCheck = void 0;
10
+ var style_check_1 = require("./style-check");
11
+ Object.defineProperty(exports, "runStyleCheck", { enumerable: true, get: function () { return style_check_1.runStyleCheck; } });
12
+ Object.defineProperty(exports, "checkStyle", { enumerable: true, get: function () { return style_check_1.checkStyle; } });
13
+ Object.defineProperty(exports, "formatStyle", { enumerable: true, get: function () { return style_check_1.formatStyle; } });
14
+ Object.defineProperty(exports, "buildCtrlArgs", { enumerable: true, get: function () { return style_check_1.buildCtrlArgs; } });
15
+ Object.defineProperty(exports, "ASTYLE_SCRIPT", { enumerable: true, get: function () { return style_check_1.ASTYLE_SCRIPT; } });
16
+ var paths_1 = require("./paths");
17
+ Object.defineProperty(exports, "getPackageRoot", { enumerable: true, get: function () { return paths_1.getPackageRoot; } });
18
+ Object.defineProperty(exports, "getDefaultStyleCheckProjectPath", { enumerable: true, get: function () { return paths_1.getDefaultStyleCheckProjectPath; } });
19
+ Object.defineProperty(exports, "getAstyleScriptPath", { enumerable: true, get: function () { return paths_1.getAstyleScriptPath; } });
20
+ var register_1 = require("./register");
21
+ Object.defineProperty(exports, "registerStyleCheckSubProject", { enumerable: true, get: function () { return register_1.registerStyleCheckSubProject; } });
22
+ Object.defineProperty(exports, "registerWorkerProjectWithStyleCheck", { enumerable: true, get: function () { return register_1.registerWorkerProjectWithStyleCheck; } });
23
+ Object.defineProperty(exports, "resolveWinCCOAVersion", { enumerable: true, get: function () { return register_1.resolveWinCCOAVersion; } });
24
+ Object.defineProperty(exports, "spawnRegisterProjectCli", { enumerable: true, get: function () { return register_1.spawnRegisterProjectCli; } });
25
+ var cli_1 = require("./cli");
26
+ Object.defineProperty(exports, "parseArgs", { enumerable: true, get: function () { return cli_1.parseArgs; } });
27
+ Object.defineProperty(exports, "printUsage", { enumerable: true, get: function () { return cli_1.printUsage; } });
28
+ Object.defineProperty(exports, "main", { enumerable: true, get: function () { return cli_1.main; } });
29
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAIH,6CAMuB;AALnB,4GAAA,aAAa,OAAA;AACb,yGAAA,UAAU,OAAA;AACV,0GAAA,WAAW,OAAA;AACX,4GAAA,aAAa,OAAA;AACb,4GAAA,aAAa,OAAA;AAEjB,iCAA+F;AAAtF,uGAAA,cAAc,OAAA;AAAE,wHAAA,+BAA+B,OAAA;AAAE,4GAAA,mBAAmB,OAAA;AAC7E,uCAKoB;AAJhB,wHAAA,4BAA4B,OAAA;AAC5B,+HAAA,mCAAmC,OAAA;AACnC,iHAAA,qBAAqB,OAAA;AACrB,mHAAA,uBAAuB,OAAA;AAE3B,6BAAoD;AAA3C,gGAAA,SAAS,OAAA;AAAE,iGAAA,UAAU,OAAA;AAAE,2FAAA,IAAI,OAAA"}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getPackageRoot = getPackageRoot;
7
+ exports.getDefaultStyleCheckProjectPath = getDefaultStyleCheckProjectPath;
8
+ exports.getAstyleScriptPath = getAstyleScriptPath;
9
+ const node_fs_1 = __importDefault(require("node:fs"));
10
+ const node_path_1 = __importDefault(require("node:path"));
11
+ /**
12
+ * Resolve the package root that contains `winccoa/StyleCheck`.
13
+ * Works from source (`src/`) and built layouts (`dist/cjs`, `dist/esm`).
14
+ */
15
+ function getPackageRoot(startDir) {
16
+ let dir = node_path_1.default.resolve(startDir ?? __dirname);
17
+ for (let i = 0; i < 8; i++) {
18
+ const candidate = node_path_1.default.join(dir, 'winccoa', 'StyleCheck');
19
+ const pkgJson = node_path_1.default.join(dir, 'package.json');
20
+ if (node_fs_1.default.existsSync(candidate) && node_fs_1.default.existsSync(pkgJson)) {
21
+ return dir;
22
+ }
23
+ if (node_fs_1.default.existsSync(candidate)) {
24
+ return dir;
25
+ }
26
+ const parent = node_path_1.default.dirname(dir);
27
+ if (parent === dir) {
28
+ break;
29
+ }
30
+ dir = parent;
31
+ }
32
+ // Last resort: two levels up from dist/{cjs|esm} or one from src
33
+ return node_path_1.default.resolve(__dirname, '..', '..');
34
+ }
35
+ /**
36
+ * Absolute path to the bundled StyleCheck WinCC OA subproject.
37
+ */
38
+ function getDefaultStyleCheckProjectPath() {
39
+ return node_path_1.default.join(getPackageRoot(), 'winccoa', 'StyleCheck');
40
+ }
41
+ /**
42
+ * Absolute path to astyle.ctl inside the StyleCheck project.
43
+ * Used to verify the bundled script exists. WCCOActrl must receive the bare
44
+ * name `astyle.ctl` (relative to scripts/), not this full path.
45
+ */
46
+ function getAstyleScriptPath(projectPath) {
47
+ const root = projectPath ?? getDefaultStyleCheckProjectPath();
48
+ return node_path_1.default.join(root, 'scripts', 'astyle.ctl');
49
+ }
50
+ //# sourceMappingURL=paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/paths.ts"],"names":[],"mappings":";;;;;AAOA,wCAqBC;AAKD,0EAEC;AAOD,kDAGC;AA7CD,sDAAyB;AACzB,0DAA6B;AAE7B;;;GAGG;AACH,SAAgB,cAAc,CAAC,QAAiB;IAC5C,IAAI,GAAG,GAAG,mBAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,SAAS,CAAC,CAAC;IAE9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACzB,MAAM,SAAS,GAAG,mBAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;QAC1D,MAAM,OAAO,GAAG,mBAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QAC/C,IAAI,iBAAE,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,iBAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACrD,OAAO,GAAG,CAAC;QACf,CAAC;QACD,IAAI,iBAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,OAAO,GAAG,CAAC;QACf,CAAC;QACD,MAAM,MAAM,GAAG,mBAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YACjB,MAAM;QACV,CAAC;QACD,GAAG,GAAG,MAAM,CAAC;IACjB,CAAC;IAED,iEAAiE;IACjE,OAAO,mBAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC/C,CAAC;AAED;;GAEG;AACH,SAAgB,+BAA+B;IAC3C,OAAO,mBAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;AAChE,CAAC;AAED;;;;GAIG;AACH,SAAgB,mBAAmB,CAAC,WAAoB;IACpD,MAAM,IAAI,GAAG,WAAW,IAAI,+BAA+B,EAAE,CAAC;IAC9D,OAAO,mBAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;AACpD,CAAC"}
@@ -0,0 +1,154 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.resolveWinCCOAVersion = resolveWinCCOAVersion;
7
+ exports.registerStyleCheckSubProject = registerStyleCheckSubProject;
8
+ exports.registerWorkerProjectWithStyleCheck = registerWorkerProjectWithStyleCheck;
9
+ exports.spawnRegisterProjectCli = spawnRegisterProjectCli;
10
+ const node_fs_1 = __importDefault(require("node:fs"));
11
+ const node_path_1 = __importDefault(require("node:path"));
12
+ const node_child_process_1 = require("node:child_process");
13
+ const npm_winccoa_core_1 = require("@winccoa-tools-pack/npm-winccoa-core");
14
+ const paths_1 = require("./paths");
15
+ const DEFAULT_LANGS = ['en_US.utf8'];
16
+ /**
17
+ * Resolve a WinCC OA version: explicit, or the single installed version.
18
+ */
19
+ function resolveWinCCOAVersion(explicit) {
20
+ if (explicit) {
21
+ return explicit;
22
+ }
23
+ const installed = (0, npm_winccoa_core_1.getAvailableWinCCOAVersions)();
24
+ if (installed.length === 1) {
25
+ return installed[0];
26
+ }
27
+ if (installed.length === 0) {
28
+ throw new Error('WinCC OA version is required (--version); no installation detected on this host');
29
+ }
30
+ throw new Error(`WinCC OA version is required (--version); multiple installations found: ${installed.join(', ')}`);
31
+ }
32
+ function toUnix(p) {
33
+ return p.replace(/\\/g, '/');
34
+ }
35
+ function ensureStyleCheckLayout(styleCheckPath) {
36
+ const abs = node_path_1.default.resolve(styleCheckPath);
37
+ if (!node_fs_1.default.existsSync(abs)) {
38
+ throw new Error(`StyleCheck project path does not exist: ${abs}`);
39
+ }
40
+ // Non-runnable sub-project: only scripts (astyle.ctl). No config/ or log/.
41
+ // Worker project owns config and logs via WCCOActrl -config.
42
+ node_fs_1.default.mkdirSync(node_path_1.default.join(abs, 'scripts'), { recursive: true });
43
+ return abs;
44
+ }
45
+ /**
46
+ * Register StyleCheck as a non-runnable WinCC OA project.
47
+ */
48
+ async function registerStyleCheckSubProject(styleCheckPath, version) {
49
+ const abs = ensureStyleCheckLayout(styleCheckPath);
50
+ const project = new npm_winccoa_core_1.ProjEnvProject();
51
+ project.setDir(abs);
52
+ project.setVersion(version);
53
+ project.setRunnable(false);
54
+ project.setName('StyleCheck');
55
+ const rc = await project.registerProj();
56
+ if (rc !== 0) {
57
+ throw new Error(`Failed to register StyleCheck as non-runnable (rc=${rc}): ${abs}`);
58
+ }
59
+ return abs;
60
+ }
61
+ /**
62
+ * Write / refresh worker project config with StyleCheck as sub-project, then
63
+ * register the worker as runnable.
64
+ *
65
+ * Config shape (matches npm-winccoa-register-project --sub-project):
66
+ * [general]
67
+ * pvss_path = "..."
68
+ * proj_path = "<StyleCheck>"
69
+ * proj_path = "<worker>"
70
+ * proj_version = "..."
71
+ * langs = "..."
72
+ */
73
+ async function registerWorkerProjectWithStyleCheck(options) {
74
+ const version = resolveWinCCOAVersion(options.version);
75
+ const projectPath = node_path_1.default.resolve(options.projectPath);
76
+ const styleCheckPath = node_path_1.default.resolve(options.styleCheckProjectPath ?? (0, paths_1.getDefaultStyleCheckProjectPath)());
77
+ const langs = options.langs?.length ? options.langs : DEFAULT_LANGS;
78
+ const forceRewrite = options.forceRewriteConfig !== false;
79
+ if (!node_fs_1.default.existsSync(projectPath)) {
80
+ throw new Error(`Worker project path does not exist: ${projectPath}`);
81
+ }
82
+ const registeredStyleCheck = await registerStyleCheckSubProject(styleCheckPath, version);
83
+ const oaPath = (0, npm_winccoa_core_1.getWinCCOAInstallationPathByVersion)(version);
84
+ if (!oaPath) {
85
+ throw new Error(`Could not resolve WinCC OA installation path for version ${version}`);
86
+ }
87
+ const configDir = node_path_1.default.join(projectPath, 'config');
88
+ const configPath = node_path_1.default.join(configDir, 'config');
89
+ node_fs_1.default.mkdirSync(configDir, { recursive: true });
90
+ node_fs_1.default.mkdirSync(node_path_1.default.join(projectPath, 'log'), { recursive: true });
91
+ const needsWrite = forceRewrite || !node_fs_1.default.existsSync(configPath);
92
+ if (needsWrite) {
93
+ const content = [
94
+ '[general]',
95
+ `pvss_path = "${toUnix(oaPath)}"`,
96
+ `proj_path = "${toUnix(registeredStyleCheck)}"`,
97
+ `proj_path = "${toUnix(projectPath)}"`,
98
+ `proj_version = "${version}"`,
99
+ `langs = "${langs.join(' ')}"`,
100
+ '',
101
+ ].join('\n');
102
+ node_fs_1.default.writeFileSync(configPath, content, 'utf8');
103
+ }
104
+ else {
105
+ const existing = node_fs_1.default.readFileSync(configPath, 'utf8');
106
+ const styleMarker = toUnix(registeredStyleCheck);
107
+ if (!existing.includes(styleMarker)) {
108
+ throw new Error(`Worker config exists but does not reference StyleCheck (${styleMarker}). ` +
109
+ `Re-run with forceRewriteConfig or use scripts/register-stylecheck-projects.sh`);
110
+ }
111
+ }
112
+ const worker = new npm_winccoa_core_1.ProjEnvProject();
113
+ worker.setDir(projectPath);
114
+ worker.setVersion(version);
115
+ worker.setRunnable(true);
116
+ worker.setLanguages(langs);
117
+ const rc = await worker.registerProj();
118
+ if (rc !== 0) {
119
+ throw new Error(`Failed to register worker project (rc=${rc}): ${projectPath}`);
120
+ }
121
+ return {
122
+ styleCheckPath: registeredStyleCheck,
123
+ projectPath,
124
+ configPath,
125
+ };
126
+ }
127
+ /**
128
+ * Spawn npm-winccoa-register-project CLI (for shells / debugging).
129
+ * Prefer registerWorkerProjectWithStyleCheck() in-process for reliability
130
+ * (register-project skips config rewrite when config already exists).
131
+ */
132
+ function spawnRegisterProjectCli(args) {
133
+ const candidates = [
134
+ node_path_1.default.resolve(process.cwd(), 'node_modules', '@winccoa-tools-pack', 'npm-winccoa-register-project', 'dist', 'cjs', 'cli.js'),
135
+ // monorepo sibling checkout
136
+ node_path_1.default.resolve(__dirname, '..', '..', '..', 'npm-winccoa-register-project', 'dist', 'cjs', 'cli.js'),
137
+ ];
138
+ const cliPath = candidates.find((p) => node_fs_1.default.existsSync(p));
139
+ if (!cliPath) {
140
+ // fall back to npx package name
141
+ const result = (0, node_child_process_1.spawnSync)(process.platform === 'win32' ? 'npx.cmd' : 'npx', ['@winccoa-tools-pack/npm-winccoa-register-project', ...args], { stdio: 'inherit', shell: true });
142
+ if (result.status !== 0) {
143
+ throw new Error(`npm-winccoa-register-project failed with exit ${result.status ?? 'null'}`);
144
+ }
145
+ return;
146
+ }
147
+ const result = (0, node_child_process_1.spawnSync)(process.execPath, [cliPath, ...args], {
148
+ stdio: 'inherit',
149
+ });
150
+ if (result.status !== 0) {
151
+ throw new Error(`npm-winccoa-register-project failed with exit ${result.status ?? 'null'}`);
152
+ }
153
+ }
154
+ //# sourceMappingURL=register.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/register.ts"],"names":[],"mappings":"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"}