@ai-support-agent/cli 0.1.9-beta.0 → 0.1.10-beta.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.
- package/dist/cli/service/darwin-service.d.ts +0 -12
- package/dist/cli/service/darwin-service.d.ts.map +1 -1
- package/dist/cli/service/darwin-service.js +73 -50
- package/dist/cli/service/darwin-service.js.map +1 -1
- package/dist/cli/service/linux-service.d.ts +0 -25
- package/dist/cli/service/linux-service.d.ts.map +1 -1
- package/dist/cli/service/linux-service.js +143 -99
- package/dist/cli/service/linux-service.js.map +1 -1
- package/dist/cli/service/wrapper-helpers.d.ts +70 -0
- package/dist/cli/service/wrapper-helpers.d.ts.map +1 -0
- package/dist/cli/service/wrapper-helpers.js +140 -0
- package/dist/cli/service/wrapper-helpers.js.map +1 -0
- package/dist/commands/chat-executor.d.ts.map +1 -1
- package/dist/commands/chat-executor.js +13 -2
- package/dist/commands/chat-executor.js.map +1 -1
- package/dist/commands/file-transfer.d.ts +1 -0
- package/dist/commands/file-transfer.d.ts.map +1 -1
- package/dist/commands/file-transfer.js +8 -2
- package/dist/commands/file-transfer.js.map +1 -1
- package/dist/docker/docker-supervisor.d.ts.map +1 -1
- package/dist/docker/docker-supervisor.js +24 -2
- package/dist/docker/docker-supervisor.js.map +1 -1
- package/dist/docker/volume-mount-builder.d.ts.map +1 -1
- package/dist/docker/volume-mount-builder.js +15 -1
- package/dist/docker/volume-mount-builder.js.map +1 -1
- package/dist/locales/en.json +7 -1
- package/dist/locales/ja.json +7 -1
- package/dist/security.d.ts +24 -0
- package/dist/security.d.ts.map +1 -1
- package/dist/security.js +41 -0
- package/dist/security.js.map +1 -1
- package/package.json +1 -1
|
@@ -34,8 +34,6 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.LinuxServiceStrategy = exports.getNodePath = exports.getCliEntryPoint = void 0;
|
|
37
|
-
exports.assertProjectCodeIsSafe = assertProjectCodeIsSafe;
|
|
38
|
-
exports.validateProjectDirForMount = validateProjectDirForMount;
|
|
39
37
|
exports.getProjectUnitName = getProjectUnitName;
|
|
40
38
|
exports.getProjectUnitFilePath = getProjectUnitFilePath;
|
|
41
39
|
exports.getAllProjectUnits = getAllProjectUnits;
|
|
@@ -53,10 +51,10 @@ const config_manager_1 = require("../../config-manager");
|
|
|
53
51
|
const docker_utils_1 = require("../../docker/docker-utils");
|
|
54
52
|
const i18n_1 = require("../../i18n");
|
|
55
53
|
const logger_1 = require("../../logger");
|
|
56
|
-
const security_1 = require("../../security");
|
|
57
54
|
const node_paths_1 = require("./node-paths");
|
|
58
55
|
Object.defineProperty(exports, "getCliEntryPoint", { enumerable: true, get: function () { return node_paths_1.getCliEntryPoint; } });
|
|
59
56
|
Object.defineProperty(exports, "getNodePath", { enumerable: true, get: function () { return node_paths_1.getNodePath; } });
|
|
57
|
+
const wrapper_helpers_1 = require("./wrapper-helpers");
|
|
60
58
|
const SERVICE_NAME = 'ai-support-agent.service';
|
|
61
59
|
const SERVICE_PREFIX = 'ai-support-agent';
|
|
62
60
|
function getSystemdUserDir() {
|
|
@@ -71,14 +69,6 @@ function getLogDir() {
|
|
|
71
69
|
function sanitize(s) {
|
|
72
70
|
return s.toLowerCase().replace(/[^a-z0-9-]/g, '-');
|
|
73
71
|
}
|
|
74
|
-
/**
|
|
75
|
-
* POSIX shell single-quote a value so it can be safely interpolated into a
|
|
76
|
-
* bash script. Wraps the value in single quotes and escapes any embedded
|
|
77
|
-
* single quote as `'\''`. The result is always exactly one shell argument.
|
|
78
|
-
*/
|
|
79
|
-
function shellQuote(value) {
|
|
80
|
-
return `'${value.replace(/'/g, `'\\''`)}'`;
|
|
81
|
-
}
|
|
82
72
|
/**
|
|
83
73
|
* Write a file with content and enforce mode. `fs.writeFileSync({ mode })`
|
|
84
74
|
* only applies the mode when the file is *created*; overwriting an existing
|
|
@@ -91,48 +81,6 @@ function writeFileEnsuringMode(filePath, content, mode) {
|
|
|
91
81
|
fs.writeFileSync(filePath, content, { mode });
|
|
92
82
|
fs.chmodSync(filePath, mode);
|
|
93
83
|
}
|
|
94
|
-
/**
|
|
95
|
-
* Reject projectCodes whose characters would break
|
|
96
|
-
* `AI_SUPPORT_AGENT_PROJECT_DIR_MAP` parsing.
|
|
97
|
-
*
|
|
98
|
-
* The env value uses `;` as entry separator and `=` as key/value separator;
|
|
99
|
-
* a projectCode containing either would silently truncate the map and let
|
|
100
|
-
* `resolveProjectDir()` fall back to the default template, silently
|
|
101
|
-
* re-introducing the doubly-nested layout this PR is trying to prevent.
|
|
102
|
-
* Allow `[A-Za-z0-9_-]` only — matching the configured naming convention
|
|
103
|
-
* (UPPER_SNAKE_CASE for project, lower_snake_case for tenant).
|
|
104
|
-
*/
|
|
105
|
-
function assertProjectCodeIsSafe(projectCode) {
|
|
106
|
-
if (!/^[A-Za-z0-9_-]+$/.test(projectCode)) {
|
|
107
|
-
throw new Error((0, i18n_1.t)('service.invalidProjectCode', { projectCode }));
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* Validate a user-supplied project.projectDir for use as a bind mount in
|
|
112
|
-
* the generated wrapper script.
|
|
113
|
-
*
|
|
114
|
-
* Returns the original value when the path is acceptable, or `undefined`
|
|
115
|
-
* when it should be dropped (and the wrapper should fall back to the
|
|
116
|
-
* default per-project dir). Emits a warning log so the user is aware that
|
|
117
|
-
* their configured projectDir was ignored.
|
|
118
|
-
*
|
|
119
|
-
* Rejects: empty string, non-string, non-existent paths, paths under
|
|
120
|
-
* BLOCKED_PATH_PREFIXES / getSensitiveHomePaths (e.g. `/etc`, `~/.ssh`).
|
|
121
|
-
*/
|
|
122
|
-
function validateProjectDirForMount(projectDir) {
|
|
123
|
-
if (!projectDir)
|
|
124
|
-
return undefined;
|
|
125
|
-
if (!fs.existsSync(projectDir)) {
|
|
126
|
-
logger_1.logger.warn((0, i18n_1.t)('service.projectDirMissing', { path: projectDir }));
|
|
127
|
-
return undefined;
|
|
128
|
-
}
|
|
129
|
-
const blockedError = (0, security_1.validateBindMountPathSync)(projectDir);
|
|
130
|
-
if (blockedError) {
|
|
131
|
-
logger_1.logger.warn((0, i18n_1.t)('service.projectDirBlocked', { path: projectDir, message: blockedError }));
|
|
132
|
-
return undefined;
|
|
133
|
-
}
|
|
134
|
-
return projectDir;
|
|
135
|
-
}
|
|
136
84
|
/**
|
|
137
85
|
* Escape a value for use inside a systemd unit (ExecStart, Environment, etc.).
|
|
138
86
|
* Per `man 5 systemd.service`, `man 5 systemd.exec` and `man 5 systemd.unit`:
|
|
@@ -286,18 +234,18 @@ function generateWrapperScript(opts) {
|
|
|
286
234
|
// into a generated bash script. Shell-quote every value to defend against
|
|
287
235
|
// whitespace, shell metacharacters (`$`, backticks, `"`), and outright
|
|
288
236
|
// injection from a malicious or malformed token / env var.
|
|
289
|
-
const qProjectConfig = shellQuote(opts.projectConfigHostDir);
|
|
290
|
-
const qContainerHome = shellQuote(containerHome);
|
|
291
|
-
const qContainerConfigDir = shellQuote(containerConfigDir);
|
|
292
|
-
const qToken = shellQuote(opts.token);
|
|
293
|
-
const qApiUrl = shellQuote(containerApiUrl);
|
|
294
|
-
const qImageName = shellQuote(opts.imageName);
|
|
295
|
-
const qUpdateScriptPath = shellQuote(opts.updateScriptPath);
|
|
237
|
+
const qProjectConfig = (0, wrapper_helpers_1.shellQuote)(opts.projectConfigHostDir);
|
|
238
|
+
const qContainerHome = (0, wrapper_helpers_1.shellQuote)(containerHome);
|
|
239
|
+
const qContainerConfigDir = (0, wrapper_helpers_1.shellQuote)(containerConfigDir);
|
|
240
|
+
const qToken = (0, wrapper_helpers_1.shellQuote)(opts.token);
|
|
241
|
+
const qApiUrl = (0, wrapper_helpers_1.shellQuote)(containerApiUrl);
|
|
242
|
+
const qImageName = (0, wrapper_helpers_1.shellQuote)(opts.imageName);
|
|
243
|
+
const qUpdateScriptPath = (0, wrapper_helpers_1.shellQuote)(opts.updateScriptPath);
|
|
296
244
|
// tenant/project are sanitized to [a-z0-9-] for container name and the
|
|
297
245
|
// --project value, so they're shell-safe; still quote for defense in depth.
|
|
298
246
|
const containerName = `ai-${sanitize(opts.tenantCode)}-${sanitize(opts.projectCode)}`;
|
|
299
|
-
const qContainerName = shellQuote(containerName);
|
|
300
|
-
const qProjectArg = shellQuote(`${opts.tenantCode}/${opts.projectCode}`);
|
|
247
|
+
const qContainerName = (0, wrapper_helpers_1.shellQuote)(containerName);
|
|
248
|
+
const qProjectArg = (0, wrapper_helpers_1.shellQuote)(`${opts.tenantCode}/${opts.projectCode}`);
|
|
301
249
|
// Project directory mount strategy:
|
|
302
250
|
// - projectConfigHostDir (~/.ai-support-agent/projects/<t>/<p>/.ai-support-agent)
|
|
303
251
|
// mounts to /home/node/.ai-support-agent inside the container. This is the
|
|
@@ -321,10 +269,10 @@ function generateWrapperScript(opts) {
|
|
|
321
269
|
// `-v :/workspace/...:rw` which docker rejects.
|
|
322
270
|
const hostProjectDir = opts.projectDir || path.dirname(opts.projectConfigHostDir);
|
|
323
271
|
const mountLines = [
|
|
324
|
-
` -v ${shellQuote(`${homeDir}/.claude:${containerHome}/.claude:rw`)} \\`,
|
|
325
|
-
` -v ${shellQuote(`${opts.projectConfigHostDir}:${containerConfigDir}:rw`)} \\`,
|
|
326
|
-
` -v ${shellQuote(`${homeDir}/.claude.json:${containerHome}/.claude.json:rw`)} \\`,
|
|
327
|
-
` -v ${shellQuote(`${hostProjectDir}:${containerProjectDir}:rw`)} \\`,
|
|
272
|
+
` -v ${(0, wrapper_helpers_1.shellQuote)(`${homeDir}/.claude:${containerHome}/.claude:rw`)} \\`,
|
|
273
|
+
` -v ${(0, wrapper_helpers_1.shellQuote)(`${opts.projectConfigHostDir}:${containerConfigDir}:rw`)} \\`,
|
|
274
|
+
` -v ${(0, wrapper_helpers_1.shellQuote)(`${homeDir}/.claude.json:${containerHome}/.claude.json:rw`)} \\`,
|
|
275
|
+
` -v ${(0, wrapper_helpers_1.shellQuote)(`${hostProjectDir}:${containerProjectDir}:rw`)} \\`,
|
|
328
276
|
];
|
|
329
277
|
const envLines = [
|
|
330
278
|
` -e AI_SUPPORT_AGENT_IN_DOCKER=1 \\`,
|
|
@@ -334,13 +282,13 @@ function generateWrapperScript(opts) {
|
|
|
334
282
|
` -e AI_SUPPORT_AGENT_API_URL=${qApiUrl} \\`,
|
|
335
283
|
// Pin the in-container project dir so the agent does not re-derive it
|
|
336
284
|
// from `${CONFIG_DIR}/projects/<t>/<p>` (which would double-nest).
|
|
337
|
-
` -e AI_SUPPORT_AGENT_PROJECT_DIR_MAP=${shellQuote(`${opts.projectCode}=${containerProjectDir}`)} \\`,
|
|
285
|
+
` -e AI_SUPPORT_AGENT_PROJECT_DIR_MAP=${(0, wrapper_helpers_1.shellQuote)(`${opts.projectCode}=${containerProjectDir}`)} \\`,
|
|
338
286
|
];
|
|
339
287
|
if (opts.anthropicApiKey) {
|
|
340
|
-
envLines.push(` -e ANTHROPIC_API_KEY=${shellQuote(opts.anthropicApiKey)} \\`);
|
|
288
|
+
envLines.push(` -e ANTHROPIC_API_KEY=${(0, wrapper_helpers_1.shellQuote)(opts.anthropicApiKey)} \\`);
|
|
341
289
|
}
|
|
342
290
|
if (opts.claudeCodeOauthToken) {
|
|
343
|
-
envLines.push(` -e CLAUDE_CODE_OAUTH_TOKEN=${shellQuote(opts.claudeCodeOauthToken)} \\`);
|
|
291
|
+
envLines.push(` -e CLAUDE_CODE_OAUTH_TOKEN=${(0, wrapper_helpers_1.shellQuote)(opts.claudeCodeOauthToken)} \\`);
|
|
344
292
|
}
|
|
345
293
|
const containerArgs = [
|
|
346
294
|
'ai-support-agent', 'start', '--no-docker',
|
|
@@ -416,8 +364,8 @@ function generateUpdateScript() {
|
|
|
416
364
|
: path.join(os.homedir(), '.ai-support-agent');
|
|
417
365
|
// Quote interpolated paths so a HOME / config dir containing whitespace
|
|
418
366
|
// or shell metacharacters doesn't word-split the generated script.
|
|
419
|
-
const qSystemdDir = shellQuote(getSystemdUserDir());
|
|
420
|
-
const qVersionFile = shellQuote(path.join(configDir, 'update-version.json'));
|
|
367
|
+
const qSystemdDir = (0, wrapper_helpers_1.shellQuote)(getSystemdUserDir());
|
|
368
|
+
const qVersionFile = (0, wrapper_helpers_1.shellQuote)(path.join(configDir, 'update-version.json'));
|
|
421
369
|
return `#!/bin/bash
|
|
422
370
|
set -uo pipefail
|
|
423
371
|
shopt -s nullglob
|
|
@@ -519,8 +467,8 @@ exit 0
|
|
|
519
467
|
function writeProjectServiceFiles(project, options = {}) {
|
|
520
468
|
const { tenantCode, projectCode } = project;
|
|
521
469
|
// Reject codes that would break the PROJECT_DIR_MAP env format.
|
|
522
|
-
assertProjectCodeIsSafe(projectCode);
|
|
523
|
-
assertProjectCodeIsSafe(tenantCode);
|
|
470
|
+
(0, wrapper_helpers_1.assertProjectCodeIsSafe)(projectCode);
|
|
471
|
+
(0, wrapper_helpers_1.assertProjectCodeIsSafe)(tenantCode);
|
|
524
472
|
const projectKey = `${sanitize(tenantCode)}-${sanitize(projectCode)}`;
|
|
525
473
|
const logDir = getLogDir();
|
|
526
474
|
const projectLogDir = path.join(logDir, projectKey);
|
|
@@ -548,7 +496,7 @@ function writeProjectServiceFiles(project, options = {}) {
|
|
|
548
496
|
// `-v <bad-path>:/workspace/projects/<code>:rw` unconditionally and
|
|
549
497
|
// either crash on start (empty/missing) or expose host secrets to the
|
|
550
498
|
// container (blocked prefix).
|
|
551
|
-
const validatedProjectDir = validateProjectDirForMount(project.projectDir);
|
|
499
|
+
const validatedProjectDir = (0, wrapper_helpers_1.validateProjectDirForMount)(project.projectDir);
|
|
552
500
|
const updateScriptPath = getUpdateScriptPath();
|
|
553
501
|
const wrapperScriptPath = path.join(projectServiceDir, 'run.sh');
|
|
554
502
|
const wrapperScript = generateWrapperScript({
|
|
@@ -651,37 +599,117 @@ class LinuxServiceStrategy {
|
|
|
651
599
|
const updateScriptPath = getUpdateScriptPath();
|
|
652
600
|
const updateScript = generateUpdateScript();
|
|
653
601
|
writeFileEnsuringMode(updateScriptPath, updateScript, 0o700);
|
|
654
|
-
|
|
602
|
+
// Detect sanitize() collisions where two distinct valid codes
|
|
603
|
+
// (e.g. `MBC_01` and `MBC-01`) map to the same unit name and would
|
|
604
|
+
// silently overwrite each other. The helper also returns a `names` map
|
|
605
|
+
// (fqn → sanitized unit name) so we don't recompute via sanitize()
|
|
606
|
+
// multiple times per project — keeping the orphan-protection set and
|
|
607
|
+
// the per-project loop in sync with a single source of truth.
|
|
608
|
+
const { names: safeUnitNames, collisions } = (0, wrapper_helpers_1.detectInstallCollisions)(projects, getProjectUnitName);
|
|
609
|
+
// Pre-compute the expected unit names from the INPUT config (before any
|
|
610
|
+
// validation), so a project whose install fails this run is NOT treated
|
|
611
|
+
// as an orphan and accidentally disabled / unlinked. Failure modes:
|
|
612
|
+
// - invalid projectCode (rejected by assertProjectCodeIsSafe)
|
|
613
|
+
// - filesystem error during write
|
|
614
|
+
// For both, the previously-installed unit on disk should stay in place.
|
|
615
|
+
// We include INVALID codes too (via getProjectUnitName, which sanitize()
|
|
616
|
+
// tolerates) so a typo'd entry's prior unit is still protected.
|
|
655
617
|
const expectedUnitNames = new Set();
|
|
656
618
|
for (const project of projects) {
|
|
657
|
-
const
|
|
658
|
-
|
|
659
|
-
expectedUnitNames.add(unitName);
|
|
660
|
-
writtenUnits.push({
|
|
661
|
-
projectCode: project.projectCode,
|
|
662
|
-
unitPath,
|
|
663
|
-
unitFile: `${unitName}.service`,
|
|
664
|
-
});
|
|
619
|
+
const fqn = `${project.tenantCode}/${project.projectCode}`;
|
|
620
|
+
expectedUnitNames.add(safeUnitNames.get(fqn) ?? getProjectUnitName(project.tenantCode, project.projectCode));
|
|
665
621
|
}
|
|
666
|
-
//
|
|
667
|
-
//
|
|
668
|
-
//
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
622
|
+
// Track which colliding unit-names we've already reported so the same
|
|
623
|
+
// duplicate/collision error doesn't log N times for an N-times-listed
|
|
624
|
+
// entry.
|
|
625
|
+
const reportedCollisionNames = new Set();
|
|
626
|
+
const writtenUnits = [];
|
|
627
|
+
let failedCount = 0;
|
|
628
|
+
for (const project of projects) {
|
|
629
|
+
const fqn = `${project.tenantCode}/${project.projectCode}`;
|
|
630
|
+
// Refuse to install when this project shares its sanitized unit name
|
|
631
|
+
// with another configured project — we can't tell which one should
|
|
632
|
+
// win, and last-write would silently lose the first.
|
|
633
|
+
const collision = collisions.get(fqn);
|
|
634
|
+
if (collision) {
|
|
635
|
+
// Pick the more actionable message: literal duplicates ask the
|
|
636
|
+
// user to "remove the duplicate row"; sanitize-collisions ask
|
|
637
|
+
// them to "rename one of the projectCodes". A single config can
|
|
638
|
+
// exhibit BOTH at once (the duplicate row AND a sibling that
|
|
639
|
+
// collides); when that happens we want both hints to fire — so
|
|
640
|
+
// dedup is per (unit-name, messageKey) tuple, not just unit-name.
|
|
641
|
+
// Otherwise the row-order of config would silently decide which
|
|
642
|
+
// hint the user sees.
|
|
643
|
+
const messageKey = collision.isDuplicate
|
|
644
|
+
? 'service.projectDuplicateEntry'
|
|
645
|
+
: 'service.projectUnitNameCollision';
|
|
646
|
+
const dedupKey = `${collision.name}\x00${messageKey}`;
|
|
647
|
+
if (!reportedCollisionNames.has(dedupKey)) {
|
|
648
|
+
logger_1.logger.error((0, i18n_1.t)(messageKey, {
|
|
649
|
+
projectCode: project.projectCode,
|
|
650
|
+
unitName: collision.name,
|
|
651
|
+
others: collision.others.join(', '),
|
|
652
|
+
}));
|
|
653
|
+
reportedCollisionNames.add(dedupKey);
|
|
654
|
+
}
|
|
655
|
+
failedCount += 1;
|
|
672
656
|
continue;
|
|
673
|
-
const orphanUnitFile = `${unitName}.service`;
|
|
674
|
-
try {
|
|
675
|
-
(0, child_process_1.execSync)(`systemctl --user disable --now "${orphanUnitFile}"`, { stdio: 'pipe' });
|
|
676
657
|
}
|
|
677
|
-
|
|
658
|
+
// Per-project failures (invalid projectCode, fs errors etc.) must not
|
|
659
|
+
// abort the entire install — log the error and continue so the
|
|
660
|
+
// remaining valid projects still get their wrappers written and
|
|
661
|
+
// enabled. Otherwise one stale entry in config could silently break
|
|
662
|
+
// every other project.
|
|
678
663
|
try {
|
|
679
|
-
|
|
680
|
-
|
|
664
|
+
const unitPath = writeProjectServiceFiles(project, { verbose: options.verbose });
|
|
665
|
+
// safeUnitNames is the single source of truth for valid codes;
|
|
666
|
+
// fall back to recomputation only on the impossible-by-contract
|
|
667
|
+
// path where safeUnitNames is missing the fqn (defensive — should
|
|
668
|
+
// not happen because writeProjectServiceFiles asserts the codes
|
|
669
|
+
// first).
|
|
670
|
+
const unitName = safeUnitNames.get(fqn)
|
|
671
|
+
?? getProjectUnitName(project.tenantCode, project.projectCode);
|
|
672
|
+
writtenUnits.push({
|
|
673
|
+
projectCode: project.projectCode,
|
|
674
|
+
unitPath,
|
|
675
|
+
unitFile: `${unitName}.service`,
|
|
676
|
+
});
|
|
681
677
|
}
|
|
682
678
|
catch (error) {
|
|
683
679
|
const message = error instanceof Error ? error.message : String(error);
|
|
684
|
-
logger_1.logger.
|
|
680
|
+
logger_1.logger.error((0, i18n_1.t)('service.projectInstallFailed', { projectCode: project.projectCode, message }));
|
|
681
|
+
failedCount += 1;
|
|
682
|
+
}
|
|
683
|
+
}
|
|
684
|
+
const anyInstallFailed = failedCount > 0;
|
|
685
|
+
// Remove orphaned per-project units for projects that are no longer in
|
|
686
|
+
// config. Without this, `service start` / `status` would keep iterating
|
|
687
|
+
// over stale units with outdated tokens because getAllProjectUnits()
|
|
688
|
+
// walks the filesystem, not the config.
|
|
689
|
+
//
|
|
690
|
+
// SAFETY: when any project install failed this run, SKIP orphan cleanup
|
|
691
|
+
// entirely. A failed validation could otherwise destructively deregister
|
|
692
|
+
// a previously-running unit just because the user mistyped one entry in
|
|
693
|
+
// config — and worse, sanitize() collapses `;`/`_`/`.` all to `-`, so a
|
|
694
|
+
// typo'd projectCode can collide with a different project's unit name
|
|
695
|
+
// and remove THE WRONG unit.
|
|
696
|
+
if (!anyInstallFailed) {
|
|
697
|
+
for (const { unitName, unitPath } of getAllProjectUnits()) {
|
|
698
|
+
if (expectedUnitNames.has(unitName))
|
|
699
|
+
continue;
|
|
700
|
+
const orphanUnitFile = `${unitName}.service`;
|
|
701
|
+
try {
|
|
702
|
+
(0, child_process_1.execSync)(`systemctl --user disable --now "${orphanUnitFile}"`, { stdio: 'pipe' });
|
|
703
|
+
}
|
|
704
|
+
catch { /* not loaded — ignore */ }
|
|
705
|
+
try {
|
|
706
|
+
if (fs.existsSync(unitPath))
|
|
707
|
+
fs.unlinkSync(unitPath);
|
|
708
|
+
}
|
|
709
|
+
catch (error) {
|
|
710
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
711
|
+
logger_1.logger.warn((0, i18n_1.t)('service.orphanUnitRemoveFailed', { unit: orphanUnitFile, message }));
|
|
712
|
+
}
|
|
685
713
|
}
|
|
686
714
|
}
|
|
687
715
|
// Reload systemd so the new/updated units are recognised, then enable
|
|
@@ -708,9 +736,25 @@ class LinuxServiceStrategy {
|
|
|
708
736
|
}
|
|
709
737
|
logger_1.logger.success((0, i18n_1.t)('service.projectInstalled', { projectCode, path: unitPath }));
|
|
710
738
|
}
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
739
|
+
// Hide the "now run `service start`" hint when nothing was installed —
|
|
740
|
+
// otherwise the user sees the hint to start services that don't exist,
|
|
741
|
+
// followed by the failure summary at the very end.
|
|
742
|
+
if (writtenUnits.length > 0) {
|
|
743
|
+
logger_1.logger.info((0, i18n_1.t)('service.loadHintMulti'));
|
|
744
|
+
logger_1.logger.info((0, i18n_1.t)('service.logDir', { path: logDir }));
|
|
745
|
+
logger_1.logger.info((0, i18n_1.t)('service.noLogRotation'));
|
|
746
|
+
}
|
|
747
|
+
// Surface a summary line so scripts wrapping `service install` and
|
|
748
|
+
// operators scanning a long log can tell that SOME project was refused.
|
|
749
|
+
// Include counts (failed / total / succeeded) so the severity is
|
|
750
|
+
// immediately legible without grepping per-line errors.
|
|
751
|
+
if (anyInstallFailed) {
|
|
752
|
+
logger_1.logger.warn((0, i18n_1.t)('service.partialInstallSummary', {
|
|
753
|
+
failed: String(failedCount),
|
|
754
|
+
total: String(projects.length),
|
|
755
|
+
succeeded: String(writtenUnits.length),
|
|
756
|
+
}));
|
|
757
|
+
}
|
|
714
758
|
}
|
|
715
759
|
uninstall() {
|
|
716
760
|
const projectUnits = getAllProjectUnits();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linux-service.js","sourceRoot":"","sources":["../../../src/cli/service/linux-service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0EA,0DAIC;AAcD,gEAYC;AAgCD,gDAEC;AAGD,wDAEC;AAGD,gDAoBC;AA6BD,kDA4BC;AAOD,gEA2BC;AAcD,sDAoJC;AAGD,oDAoGC;AAUD,4DAmEC;AAOD,wDAoDC;AAlpBD,iDAAwC;AACxC,uCAAwB;AACxB,uCAAwB;AACxB,2CAA4B;AAE5B,yDAAiE;AACjE,4DAAsD;AACtD,qCAA8B;AAC9B,yCAAqC;AACrC,6CAA0D;AAE1D,6CAA4D;AASnD,iGATA,6BAAgB,OASA;AAAE,4FATA,wBAAW,OASA;AAEtC,MAAM,YAAY,GAAG,0BAA0B,CAAA;AAC/C,MAAM,cAAc,GAAG,kBAAkB,CAAA;AAEzC,SAAS,iBAAiB;IACxB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;AAC9D,CAAC;AAED,SAAS,SAAS;IAChB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,CAAC,CAAA;AAC/E,CAAC;AAED,8EAA8E;AAC9E,2BAA2B;AAC3B,8EAA8E;AAE9E,SAAS,QAAQ,CAAC,CAAS;IACzB,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAA;AACpD,CAAC;AAED;;;;GAIG;AACH,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAA;AAC5C,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,qBAAqB,CAAC,QAAgB,EAAE,OAAe,EAAE,IAAY;IAC5E,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;IAC7C,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;AAC9B,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,uBAAuB,CAAC,WAAmB;IACzD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,IAAA,QAAC,EAAC,4BAA4B,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,CAAA;IACnE,CAAC;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,0BAA0B,CAAC,UAA8B;IACvE,IAAI,CAAC,UAAU;QAAE,OAAO,SAAS,CAAA;IACjC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,eAAM,CAAC,IAAI,CAAC,IAAA,QAAC,EAAC,2BAA2B,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAA;QACjE,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,YAAY,GAAG,IAAA,oCAAyB,EAAC,UAAU,CAAC,CAAA;IAC1D,IAAI,YAAY,EAAE,CAAC;QACjB,eAAM,CAAC,IAAI,CAAC,IAAA,QAAC,EAAC,2BAA2B,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC,CAAA;QACxF,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,OAAO,UAAU,CAAA;AACnB,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAS,aAAa,CAAC,KAAa;IAClC,OAAO,KAAK;SACT,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;SACtB,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;SACnB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;SACpB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACrB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;AAC3B,CAAC;AAED,kFAAkF;AAClF,SAAgB,kBAAkB,CAAC,UAAkB,EAAE,WAAmB;IACxE,OAAO,GAAG,cAAc,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAA;AAC7E,CAAC;AAED,yDAAyD;AACzD,SAAgB,sBAAsB,CAAC,UAAkB,EAAE,WAAmB;IAC5E,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,GAAG,kBAAkB,CAAC,UAAU,EAAE,WAAW,CAAC,UAAU,CAAC,CAAA;AACjG,CAAC;AAED,oEAAoE;AACpE,SAAgB,kBAAkB;IAChC,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAA;IACtC,MAAM,MAAM,GAAG,GAAG,cAAc,GAAG,CAAA;IACnC,MAAM,OAAO,GAAkD,EAAE,CAAA;IACjE,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA;QACxC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IACE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;gBACvB,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;gBACzB,IAAI,KAAK,YAAY,EACrB,CAAC;gBACD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;gBAClD,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;YACnE,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,yDAAyD;IAC3D,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,qFAAqF;AACrF,SAAS,uBAAuB,CAAC,UAAkB,EAAE,WAAmB;IACtE,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,2BAA2B;QACvD,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC;QACvD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,mBAAmB,CAAC,CAAA;IAChD,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,mBAAmB,CAAC,CAAA;AACvF,CAAC;AAED,gEAAgE;AAChE,SAAS,cAAc;IACrB,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,2BAA2B;QACvD,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC;QACvD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,mBAAmB,CAAC,CAAA;IAChD,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;AACzC,CAAC;AAED,SAAS,mBAAmB;IAC1B,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,2BAA2B;QACvD,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC;QACvD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,mBAAmB,CAAC,CAAA;IAChD,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,uBAAuB,CAAC,CAAA;AACtD,CAAC;AAED,8EAA8E;AAC9E,0EAA0E;AAC1E,8EAA8E;AAE9E,SAAgB,mBAAmB,CAAC,OAAsB;IACxD,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;IACjE,MAAM,QAAQ,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;IAChD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IAC9B,CAAC;IACD,IAAI,OAAO,EAAE,CAAC;QACZ,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IAC5B,CAAC;IAED,OAAO;;;;;;;YAOG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;;;;mBAI9D,EAAE,CAAC,OAAO,EAAE;wBACP,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC;uBACnC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC;;;;CAIxD,CAAA;AACD,CAAC;AAED,8EAA8E;AAC9E,8BAA8B;AAC9B,8EAA8E;AAE9E,+EAA+E;AAC/E,SAAgB,0BAA0B,CAAC,IAI1C;IACC,MAAM,cAAc,GAAG,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;IAC5D,MAAM,WAAW,GAAG,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAA;IAC/C,MAAM,aAAa,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAA;IAC5E,MAAM,aAAa,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAA;IAC5E,OAAO;gCACuB,IAAI,CAAC,QAAQ;;;;;;sBAMvB,cAAc;;;;mBAIjB,WAAW;wBACN,aAAa;uBACd,aAAa;;;;CAInC,CAAA;AACD,CAAC;AAED,4EAA4E;AAC5E,SAAS,iBAAiB,CAAC,MAAc;IACvC,qEAAqE;IACrE,2EAA2E;IAC3E,4EAA4E;IAC5E,OAAO,MAAM,CAAC,OAAO,CACnB,kDAAkD,EAClD,CAAC,CAAC,EAAE,MAAc,EAAE,EAAE,CAAC,GAAG,MAAM,sBAAsB,CACvD,CAAA;AACH,CAAC;AAED,sEAAsE;AACtE,SAAgB,qBAAqB,CAAC,IAYrC;IACC,MAAM,aAAa,GAAG,YAAY,CAAA;IAClC,MAAM,kBAAkB,GAAG,GAAG,aAAa,oBAAoB,CAAA;IAC/D,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,EAAE,CAAA;IAC5B,MAAM,eAAe,GAAG,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAEtD,4EAA4E;IAC5E,0EAA0E;IAC1E,uEAAuE;IACvE,2DAA2D;IAC3D,MAAM,cAAc,GAAG,UAAU,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;IAC5D,MAAM,cAAc,GAAG,UAAU,CAAC,aAAa,CAAC,CAAA;IAChD,MAAM,mBAAmB,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAA;IAC1D,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACrC,MAAM,OAAO,GAAG,UAAU,CAAC,eAAe,CAAC,CAAA;IAC3C,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAC7C,MAAM,iBAAiB,GAAG,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;IAC3D,uEAAuE;IACvE,4EAA4E;IAC5E,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAA;IACrF,MAAM,cAAc,GAAG,UAAU,CAAC,aAAa,CAAC,CAAA;IAChD,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;IAExE,oCAAoC;IACpC,kFAAkF;IAClF,6EAA6E;IAC7E,4EAA4E;IAC5E,wEAAwE;IACxE,0EAA0E;IAC1E,uEAAuE;IACvE,uEAAuE;IACvE,0EAA0E;IAC1E,0EAA0E;IAC1E,oEAAoE;IACpE,kCAAkC;IAClC,uEAAuE;IACvE,0EAA0E;IAC1E,gDAAgD;IAChD,MAAM,mBAAmB,GAAG,uBAAuB,IAAI,CAAC,WAAW,EAAE,CAAA;IACrE,wEAAwE;IACxE,wEAAwE;IACxE,qEAAqE;IACrE,0DAA0D;IAC1D,gDAAgD;IAChD,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;IAEjF,MAAM,UAAU,GAAa;QAC3B,QAAQ,UAAU,CAAC,GAAG,OAAO,YAAY,aAAa,aAAa,CAAC,KAAK;QACzE,QAAQ,UAAU,CAAC,GAAG,IAAI,CAAC,oBAAoB,IAAI,kBAAkB,KAAK,CAAC,KAAK;QAChF,QAAQ,UAAU,CAAC,GAAG,OAAO,iBAAiB,aAAa,kBAAkB,CAAC,KAAK;QACnF,QAAQ,UAAU,CAAC,GAAG,cAAc,IAAI,mBAAmB,KAAK,CAAC,KAAK;KACvE,CAAA;IAED,MAAM,QAAQ,GAAa;QACzB,sCAAsC;QACtC,aAAa,cAAc,KAAK;QAChC,oCAAoC,mBAAmB,KAAK;QAC5D,+BAA+B,MAAM,KAAK;QAC1C,iCAAiC,OAAO,KAAK;QAC7C,sEAAsE;QACtE,mEAAmE;QACnE,yCAAyC,UAAU,CAAC,GAAG,IAAI,CAAC,WAAW,IAAI,mBAAmB,EAAE,CAAC,KAAK;KACvG,CAAA;IACD,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,QAAQ,CAAC,IAAI,CAAC,0BAA0B,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;IAChF,CAAC;IACD,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC9B,QAAQ,CAAC,IAAI,CAAC,gCAAgC,UAAU,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAA;IAC3F,CAAC;IAED,MAAM,aAAa,GAAG;QACpB,kBAAkB,EAAE,OAAO,EAAE,aAAa;QAC1C,aAAa,WAAW,EAAE;KAC3B,CAAA;IACD,IAAI,IAAI,CAAC,OAAO;QAAE,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IAEjD,OAAO;;;;;;;;;;iBAUQ,cAAc;;;;;;;;;;;;;;YAcnB,UAAU;;;;;;;;;eASP,cAAc;;;;;;;;;;;;4BAYD,cAAc;;EAExC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;EACrB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;;IAEjB,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC;;;;;SAKlB,iBAAiB;;;;CAIzB,CAAA;AACD,CAAC;AAED,4DAA4D;AAC5D,SAAgB,oBAAoB;IAClC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,2BAA2B;QACvD,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC;QACvD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,mBAAmB,CAAC,CAAA;IAEhD,wEAAwE;IACxE,mEAAmE;IACnE,MAAM,WAAW,GAAG,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAA;IACnD,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,qBAAqB,CAAC,CAAC,CAAA;IAE5E,OAAO;;;;;;;;;;;;;;;;;;;;;;mBAsBU,WAAW;;;;uCAIS,cAAc;;;;yBAI5B,YAAY;;;;;;;eAOtB,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uCA8BY,cAAc;;;;yBAI5B,YAAY;;;;;;;;;;;;;;;;;;CAkBpC,CAAA;AACD,CAAC;AAED,8EAA8E;AAC9E,2BAA2B;AAC3B,8EAA8E;AAE9E;;;GAGG;AACH,SAAgB,wBAAwB,CACtC,OAA4B,EAC5B,UAAiC,EAAE;IAEnC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,OAAO,CAAA;IAC3C,gEAAgE;IAChE,uBAAuB,CAAC,WAAW,CAAC,CAAA;IACpC,uBAAuB,CAAC,UAAU,CAAC,CAAA;IACnC,MAAM,UAAU,GAAG,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAA;IAErE,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAC1B,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;IACnD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAClC,EAAE,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IAC/D,CAAC;IAED,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAA;IACtC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC/C,CAAC;IAED,MAAM,WAAW,GAAG,cAAc,EAAE,CAAA;IACpC,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAA;IAC5D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACtC,EAAE,CAAC,SAAS,CAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IACnE,CAAC;IAED,MAAM,oBAAoB,GAAG,uBAAuB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAA;IAC7E,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,oBAAoB,CAAC,EAAE,CAAC;QACzC,EAAE,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IACtE,CAAC;IAED,4EAA4E;IAC5E,0EAA0E;IAC1E,oEAAoE;IACpE,oEAAoE;IACpE,kEAAkE;IAClE,oEAAoE;IACpE,sEAAsE;IACtE,8BAA8B;IAC9B,MAAM,mBAAmB,GAAG,0BAA0B,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;IAE1E,MAAM,gBAAgB,GAAG,mBAAmB,EAAE,CAAA;IAC9C,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAA;IAChE,MAAM,aAAa,GAAG,qBAAqB,CAAC;QAC1C,SAAS,EAAE,yBAAU;QACrB,UAAU;QACV,WAAW;QACX,oBAAoB;QACpB,UAAU,EAAE,mBAAmB;QAC/B,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB;QAC9C,oBAAoB,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB;QACzD,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,gBAAgB;KACjB,CAAC,CAAA;IACF,2EAA2E;IAC3E,kFAAkF;IAClF,qBAAqB,CAAC,iBAAiB,EAAE,aAAa,EAAE,KAAK,CAAC,CAAA;IAE9D,MAAM,QAAQ,GAAG,kBAAkB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAA;IAC5D,MAAM,QAAQ,GAAG,sBAAsB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAA;IAChE,MAAM,IAAI,GAAG,0BAA0B,CAAC,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAA;IAC/F,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;IAEzC,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED;;;;GAIG;AACH,SAAgB,sBAAsB,CACpC,OAA4B,EAC5B,UAAiC,EAAE;IAEnC,MAAM,gBAAgB,GAAG,mBAAmB,EAAE,CAAA;IAC9C,MAAM,YAAY,GAAG,oBAAoB,EAAE,CAAA;IAC3C,qBAAqB,CAAC,gBAAgB,EAAE,YAAY,EAAE,KAAK,CAAC,CAAA;IAE5D,wBAAwB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC1C,MAAM,QAAQ,GAAG,kBAAkB,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;IAC5E,MAAM,QAAQ,GAAG,GAAG,QAAQ,UAAU,CAAA;IAEtC,qEAAqE;IACrE,0EAA0E;IAC1E,IAAI,CAAC;QACH,IAAA,wBAAQ,EAAC,gCAAgC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;IAC/D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACtE,eAAM,CAAC,IAAI,CAAC,IAAA,QAAC,EAAC,4BAA4B,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;QACzD,OAAM;IACR,CAAC;IAED,iEAAiE;IACjE,IAAI,CAAC;QAAC,IAAA,wBAAQ,EAAC,0BAA0B,QAAQ,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;IAEtG,uEAAuE;IACvE,uEAAuE;IACvE,+DAA+D;IAC/D,IAAI,CAAC;QACH,IAAA,wBAAQ,EAAC,4BAA4B,QAAQ,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;IACtE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACtE,eAAM,CAAC,IAAI,CAAC,IAAA,QAAC,EAAC,sBAAsB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;IACrE,CAAC;IAED,IAAI,CAAC;QACH,IAAA,wBAAQ,EAAC,2BAA2B,QAAQ,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;IACrE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACtE,eAAM,CAAC,IAAI,CAAC,IAAA,QAAC,EAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,GAAG,QAAQ,KAAK,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;QAC3E,OAAM;IACR,CAAC;IAED,qDAAqD;IACrD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAA,wBAAQ,EAAC,+BAA+B,QAAQ,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAA;QACrG,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YACrB,eAAM,CAAC,IAAI,CAAC,IAAA,QAAC,EAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAA;QAC5D,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,eAAM,CAAC,IAAI,CAAC,IAAA,QAAC,EAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAA;IAC5D,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,uBAAuB;AACvB,8EAA8E;AAE9E,MAAa,oBAAoB;IAC/B,OAAO,CAAC,OAAuB;QAC7B,MAAM,MAAM,GAAG,IAAA,2BAAU,GAAE,CAAA;QAC3B,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,IAAA,+BAAc,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QAErD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,eAAM,CAAC,KAAK,CAAC,IAAA,QAAC,EAAC,8BAA8B,CAAC,CAAC,CAAA;YAC/C,OAAM;QACR,CAAC;QAED,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;QAC1B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAC3C,CAAC;QAED,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAA;QACtC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAC/C,CAAC;QAED,MAAM,gBAAgB,GAAG,mBAAmB,EAAE,CAAA;QAC9C,MAAM,YAAY,GAAG,oBAAoB,EAAE,CAAA;QAC3C,qBAAqB,CAAC,gBAAgB,EAAE,YAAY,EAAE,KAAK,CAAC,CAAA;QAE5D,MAAM,YAAY,GAAuE,EAAE,CAAA;QAC3F,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAA;QAC3C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAG,wBAAwB,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;YAChF,MAAM,QAAQ,GAAG,kBAAkB,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;YAC5E,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YAC/B,YAAY,CAAC,IAAI,CAAC;gBAChB,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,QAAQ;gBACR,QAAQ,EAAE,GAAG,QAAQ,UAAU;aAChC,CAAC,CAAA;QACJ,CAAC;QAED,uEAAuE;QACvE,wEAAwE;QACxE,qEAAqE;QACrE,wCAAwC;QACxC,KAAK,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,kBAAkB,EAAE,EAAE,CAAC;YAC1D,IAAI,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAAE,SAAQ;YAC7C,MAAM,cAAc,GAAG,GAAG,QAAQ,UAAU,CAAA;YAC5C,IAAI,CAAC;gBACH,IAAA,wBAAQ,EAAC,mCAAmC,cAAc,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;YACnF,CAAC;YAAC,MAAM,CAAC,CAAC,yBAAyB,CAAC,CAAC;YACrC,IAAI,CAAC;gBACH,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;oBAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;YACtD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gBACtE,eAAM,CAAC,IAAI,CAAC,IAAA,QAAC,EAAC,gCAAgC,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;YACrF,CAAC;QACH,CAAC;QAED,sEAAsE;QACtE,yEAAyE;QACzE,uEAAuE;QACvE,wEAAwE;QACxE,qEAAqE;QACrE,uEAAuE;QACvE,oCAAoC;QACpC,IAAI,CAAC;YACH,IAAA,wBAAQ,EAAC,gCAAgC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;QAC/D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACtE,eAAM,CAAC,IAAI,CAAC,IAAA,QAAC,EAAC,4BAA4B,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;QAC3D,CAAC;QACD,KAAK,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,YAAY,EAAE,CAAC;YAC/D,IAAI,CAAC;gBACH,IAAA,wBAAQ,EAAC,4BAA4B,QAAQ,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;YACtE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gBACtE,eAAM,CAAC,IAAI,CAAC,IAAA,QAAC,EAAC,sBAAsB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;YACrE,CAAC;YACD,eAAM,CAAC,OAAO,CAAC,IAAA,QAAC,EAAC,0BAA0B,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAA;QAChF,CAAC;QAED,eAAM,CAAC,IAAI,CAAC,IAAA,QAAC,EAAC,uBAAuB,CAAC,CAAC,CAAA;QACvC,eAAM,CAAC,IAAI,CAAC,IAAA,QAAC,EAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;QAClD,eAAM,CAAC,IAAI,CAAC,IAAA,QAAC,EAAC,uBAAuB,CAAC,CAAC,CAAA;IACzC,CAAC;IAED,SAAS;QACP,MAAM,YAAY,GAAG,kBAAkB,EAAE,CAAA;QAEzC,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,eAAM,CAAC,IAAI,CAAC,IAAA,QAAC,EAAC,sBAAsB,CAAC,CAAC,CAAA;YACtC,OAAM;QACR,CAAC;QAED,KAAK,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,YAAY,EAAE,CAAC;YAClD,MAAM,QAAQ,GAAG,GAAG,QAAQ,UAAU,CAAA;YACtC,wDAAwD;YACxD,IAAI,CAAC;gBAAC,IAAA,wBAAQ,EAAC,mCAAmC,QAAQ,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,gBAAgB,CAAC,CAAC;YAC9G,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5B,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;YACzB,CAAC;QACH,CAAC;QAED,IAAI,CAAC;YAAC,IAAA,wBAAQ,EAAC,gCAAgC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC;QAE9F,eAAM,CAAC,OAAO,CAAC,IAAA,QAAC,EAAC,qBAAqB,CAAC,CAAC,CAAA;IAC1C,CAAC;IAED,KAAK;QACH,MAAM,YAAY,GAAG,kBAAkB,EAAE,CAAA;QAEzC,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,eAAM,CAAC,KAAK,CAAC,IAAA,QAAC,EAAC,sBAAsB,CAAC,CAAC,CAAA;YACvC,OAAM;QACR,CAAC;QAED,IAAI,MAAM,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC;YACH,IAAA,wBAAQ,EAAC,gCAAgC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;QAC/D,CAAC;QAAC,MAAM,CAAC;YACP,kCAAkC;QACpC,CAAC;QAED,KAAK,MAAM,EAAE,QAAQ,EAAE,IAAI,YAAY,EAAE,CAAC;YACxC,MAAM,IAAI,GAAG,GAAG,QAAQ,UAAU,CAAA;YAClC,IAAI,CAAC;gBACH,IAAA,wBAAQ,EAAC,2BAA2B,IAAI,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;YACjE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gBACtE,kEAAkE;gBAClE,gCAAgC;gBAChC,eAAM,CAAC,KAAK,CAAC,IAAA,QAAC,EAAC,yBAAyB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;gBAC7D,MAAM,GAAG,IAAI,CAAA;YACf,CAAC;QACH,CAAC;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,eAAM,CAAC,OAAO,CAAC,IAAA,QAAC,EAAC,iBAAiB,CAAC,CAAC,CAAA;QACtC,CAAC;IACH,CAAC;IAED,IAAI;QACF,MAAM,YAAY,GAAG,kBAAkB,EAAE,CAAA;QAEzC,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,eAAM,CAAC,KAAK,CAAC,IAAA,QAAC,EAAC,sBAAsB,CAAC,CAAC,CAAA;YACvC,OAAM;QACR,CAAC;QAED,IAAI,MAAM,GAAG,KAAK,CAAA;QAClB,KAAK,MAAM,EAAE,QAAQ,EAAE,IAAI,YAAY,EAAE,CAAC;YACxC,MAAM,IAAI,GAAG,GAAG,QAAQ,UAAU,CAAA;YAClC,IAAI,CAAC;gBACH,IAAA,wBAAQ,EAAC,0BAA0B,IAAI,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;YAChE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gBACtE,eAAM,CAAC,KAAK,CAAC,IAAA,QAAC,EAAC,wBAAwB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;gBAC5D,MAAM,GAAG,IAAI,CAAA;YACf,CAAC;QACH,CAAC;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,eAAM,CAAC,OAAO,CAAC,IAAA,QAAC,EAAC,iBAAiB,CAAC,CAAC,CAAA;QACtC,CAAC;IACH,CAAC;IAED,OAAO;QACL,MAAM,YAAY,GAAG,kBAAkB,EAAE,CAAA;QAEzC,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,eAAM,CAAC,KAAK,CAAC,IAAA,QAAC,EAAC,sBAAsB,CAAC,CAAC,CAAA;YACvC,OAAM;QACR,CAAC;QAED,IAAI,MAAM,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC;YACH,IAAA,wBAAQ,EAAC,gCAAgC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;QAC/D,CAAC;QAAC,MAAM,CAAC;YACP,WAAW;QACb,CAAC;QAED,KAAK,MAAM,EAAE,QAAQ,EAAE,IAAI,YAAY,EAAE,CAAC;YACxC,MAAM,IAAI,GAAG,GAAG,QAAQ,UAAU,CAAA;YAClC,IAAI,CAAC;gBACH,IAAA,wBAAQ,EAAC,6BAA6B,IAAI,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;YACnE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gBACtE,eAAM,CAAC,KAAK,CAAC,IAAA,QAAC,EAAC,2BAA2B,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;gBAC/D,MAAM,GAAG,IAAI,CAAA;YACf,CAAC;QACH,CAAC;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,eAAM,CAAC,OAAO,CAAC,IAAA,QAAC,EAAC,mBAAmB,CAAC,CAAC,CAAA;QACxC,CAAC;IACH,CAAC;IAED,MAAM;QACJ,MAAM,YAAY,GAAG,kBAAkB,EAAE,CAAA;QACzC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;QAE1B,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;QAC7C,CAAC;QAED,sEAAsE;QACtE,qEAAqE;QACrE,oEAAoE;QACpE,+DAA+D;QAC/D,MAAM,MAAM,GAAG,IAAA,2BAAU,GAAE,CAAA;QAC3B,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAkB,CAAA;QACnD,IAAI,MAAM,EAAE,CAAC;YACX,KAAK,MAAM,OAAO,IAAI,IAAA,+BAAc,EAAC,MAAM,CAAC,EAAE,CAAC;gBAC7C,iBAAiB,CAAC,GAAG,CACnB,kBAAkB,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,WAAW,CAAC,EAC3D,OAAO,CAAC,WAAW,CACpB,CAAA;YACH,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAoB,EAAE,CAAA;QACpC,IAAI,UAAU,GAAG,KAAK,CAAA;QACtB,IAAI,QAA4B,CAAA;QAEhC,KAAK,MAAM,EAAE,QAAQ,EAAE,IAAI,YAAY,EAAE,CAAC;YACxC,sEAAsE;YACtE,qEAAqE;YACrE,kEAAkE;YAClE,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,cAAc,GAAG,CAAC;gBACxD,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC3C,CAAC,CAAC,QAAQ,CAAA;YACZ,MAAM,WAAW,GAAG,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAA;YAE/D,IAAI,OAAO,GAAG,KAAK,CAAA;YACnB,IAAI,GAAuB,CAAA;YAC3B,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAA,wBAAQ,EACrB,0BAA0B,QAAQ,qDAAqD,EACvF,EAAE,KAAK,EAAE,MAAM,EAAE,CAClB,CAAC,QAAQ,EAAE,CAAA;gBACZ,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAA;gBACrD,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;gBAC9C,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;oBAClC,OAAO,GAAG,IAAI,CAAA;oBACd,IAAI,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;wBACpC,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;wBAC/B,IAAI,CAAC,QAAQ;4BAAE,QAAQ,GAAG,GAAG,CAAA;oBAC/B,CAAC;oBACD,UAAU,GAAG,IAAI,CAAA;gBACnB,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,mCAAmC;YACrC,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAA;QAC/D,CAAC;QAED,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAA;IAClF,CAAC;CACF;AA5PD,oDA4PC"}
|
|
1
|
+
{"version":3,"file":"linux-service.js","sourceRoot":"","sources":["../../../src/cli/service/linux-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import type { ProjectRegistration } from '../../types';
|
|
2
|
+
export { assertProjectCodeIsSafe, isProjectCodeSafe } from '../../security';
|
|
3
|
+
/**
|
|
4
|
+
* POSIX shell single-quote a value so it can be safely interpolated into a
|
|
5
|
+
* bash script. Wraps the value in single quotes and escapes any embedded
|
|
6
|
+
* single quote as `'\''`. The result is always exactly one shell argument.
|
|
7
|
+
*/
|
|
8
|
+
export declare function shellQuote(value: string): string;
|
|
9
|
+
/**
|
|
10
|
+
* Validate a user-supplied `project.projectDir` for use as a bind mount.
|
|
11
|
+
*
|
|
12
|
+
* Returns the original value when the path is acceptable, or `undefined`
|
|
13
|
+
* when it should be dropped (and the wrapper / supervisor should fall back
|
|
14
|
+
* to the default per-project dir). Emits a warning so the user is aware
|
|
15
|
+
* that their configured projectDir was ignored.
|
|
16
|
+
*
|
|
17
|
+
* Rejects: empty string, non-existent paths, and paths under
|
|
18
|
+
* `BLOCKED_PATH_PREFIXES` / `getSensitiveHomePaths` (e.g. `/etc`,
|
|
19
|
+
* `~/.ssh`). All three reasons end up at the same fallback to keep the
|
|
20
|
+
* caller code simple.
|
|
21
|
+
*/
|
|
22
|
+
export declare function validateProjectDirForMount(projectDir: string | undefined): string | undefined;
|
|
23
|
+
export interface CollisionInfo {
|
|
24
|
+
/** The conflicting unit name / plist label (already sanitized). */
|
|
25
|
+
name: string;
|
|
26
|
+
/** Other configured `<tenantCode>/<projectCode>` tuples mapping to the same name. */
|
|
27
|
+
others: string[];
|
|
28
|
+
/**
|
|
29
|
+
* True when this FQN appears more than once in config (literal
|
|
30
|
+
* duplicate entry). The caller should surface a different message in
|
|
31
|
+
* that case ("remove the duplicate row" vs. "rename one of the codes").
|
|
32
|
+
* `isDuplicate` and `others.length > 0` can BOTH be true when a config
|
|
33
|
+
* contains both a literal duplicate AND a sanitize-collision sibling
|
|
34
|
+
* (e.g. `[mbc/MBC_01, mbc/MBC_01, mbc/MBC-01]`).
|
|
35
|
+
*/
|
|
36
|
+
isDuplicate: boolean;
|
|
37
|
+
}
|
|
38
|
+
export interface CollisionDetectionResult {
|
|
39
|
+
/**
|
|
40
|
+
* FQN (`<tenantCode>/<projectCode>`) → sanitized unit-name / plist-label
|
|
41
|
+
* for every project that passed `isProjectCodeSafe`. Callers that need
|
|
42
|
+
* the sanitized name later (orphan-protection sets, unit-file paths)
|
|
43
|
+
* can read it from here instead of recomputing via `nameFn`.
|
|
44
|
+
*/
|
|
45
|
+
names: Map<string, string>;
|
|
46
|
+
/**
|
|
47
|
+
* FQN → CollisionInfo for projects that conflict with another
|
|
48
|
+
* configured entry (sanitize-collision and/or literal duplicate).
|
|
49
|
+
* Projects without conflict are absent from this map.
|
|
50
|
+
*/
|
|
51
|
+
collisions: Map<string, CollisionInfo>;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Detect sanitize() collisions across configured projects.
|
|
55
|
+
*
|
|
56
|
+
* `nameFn` derives the per-platform unit-name / plist-label from
|
|
57
|
+
* (tenantCode, projectCode). Codes that fail `isProjectCodeSafe` are
|
|
58
|
+
* skipped from collision counting (they're refused independently by
|
|
59
|
+
* `writeProjectServiceFiles`, and including them here would falsely
|
|
60
|
+
* collide with a valid sibling like `MBC;01` + `MBC-01`).
|
|
61
|
+
*
|
|
62
|
+
* The returned `names` map covers ALL projects that passed validation
|
|
63
|
+
* (single source of truth — callers should not recompute via `nameFn`
|
|
64
|
+
* again). The `collisions` map only includes FQNs with a conflict.
|
|
65
|
+
*
|
|
66
|
+
* Shared between linux-service and darwin-service to keep the two
|
|
67
|
+
* platforms from drifting on collision semantics.
|
|
68
|
+
*/
|
|
69
|
+
export declare function detectInstallCollisions(projects: ProjectRegistration[], nameFn: (tenantCode: string, projectCode: string) => string): CollisionDetectionResult;
|
|
70
|
+
//# sourceMappingURL=wrapper-helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wrapper-helpers.d.ts","sourceRoot":"","sources":["../../../src/cli/service/wrapper-helpers.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAMtD,OAAO,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAE3E;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAY7F;AAED,MAAM,WAAW,aAAa;IAC5B,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAA;IACZ,qFAAqF;IACrF,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB;;;;;;;OAOG;IACH,WAAW,EAAE,OAAO,CAAA;CACrB;AAED,MAAM,WAAW,wBAAwB;IACvC;;;;;OAKG;IACH,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC1B;;;;OAIG;IACH,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;CACvC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,mBAAmB,EAAE,EAC/B,MAAM,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,MAAM,GAC1D,wBAAwB,CAgC1B"}
|