@ticatec/omniflow-core 0.1.0 → 0.2.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/LICENSE +21 -0
- package/README.md +112 -54
- package/README_CN.md +113 -55
- package/dist/index.d.ts +5 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/plugin/PluginContext.d.ts +39 -0
- package/dist/plugin/PluginContext.d.ts.map +1 -0
- package/dist/plugin/PluginContext.js +8 -0
- package/dist/plugin/PluginContext.js.map +1 -0
- package/dist/primitives/docker.d.ts.map +1 -1
- package/dist/primitives/docker.js +9 -0
- package/dist/primitives/docker.js.map +1 -1
- package/dist/primitives/git.d.ts +58 -16
- package/dist/primitives/git.d.ts.map +1 -1
- package/dist/primitives/git.js +91 -33
- package/dist/primitives/git.js.map +1 -1
- package/dist/primitives/shell.d.ts +4 -0
- package/dist/primitives/shell.d.ts.map +1 -1
- package/dist/primitives/shell.js +20 -60
- package/dist/primitives/shell.js.map +1 -1
- package/dist/primitives/ssh.d.ts +8 -5
- package/dist/primitives/ssh.d.ts.map +1 -1
- package/dist/primitives/ssh.js +49 -14
- package/dist/primitives/ssh.js.map +1 -1
- package/dist/primitives/subprocess.d.ts +52 -0
- package/dist/primitives/subprocess.d.ts.map +1 -0
- package/dist/primitives/subprocess.js +353 -0
- package/dist/primitives/subprocess.js.map +1 -0
- package/dist/toolchain/providers/GradleToolchain.d.ts +1 -1
- package/dist/toolchain/providers/GradleToolchain.d.ts.map +1 -1
- package/dist/toolchain/providers/GradleToolchain.js +4 -3
- package/dist/toolchain/providers/GradleToolchain.js.map +1 -1
- package/dist/toolchain/providers/MavenToolchain.d.ts +1 -1
- package/dist/toolchain/providers/MavenToolchain.d.ts.map +1 -1
- package/dist/toolchain/providers/MavenToolchain.js +3 -3
- package/dist/toolchain/providers/MavenToolchain.js.map +1 -1
- package/dist/toolchain/providers/NodeToolchain.d.ts +1 -1
- package/dist/toolchain/providers/NodeToolchain.d.ts.map +1 -1
- package/dist/toolchain/providers/NodeToolchain.js +61 -0
- package/dist/toolchain/providers/NodeToolchain.js.map +1 -1
- package/dist/toolchain/providers/pom.d.ts.map +1 -1
- package/dist/toolchain/providers/pom.js +13 -0
- package/dist/toolchain/providers/pom.js.map +1 -1
- package/dist/toolchain/registry.d.ts +11 -3
- package/dist/toolchain/registry.d.ts.map +1 -1
- package/dist/toolchain/registry.js +33 -8
- package/dist/toolchain/registry.js.map +1 -1
- package/dist/utils/mask.d.ts.map +1 -1
- package/dist/utils/mask.js +30 -5
- package/dist/utils/mask.js.map +1 -1
- package/docs/toolchain-extension.md +301 -0
- package/docs/toolchain-extension_CN.md +304 -0
- package/package.json +23 -1
- package/src/context/index.ts +74 -0
- package/src/context/storage.ts +8 -0
- package/src/context/types.ts +69 -0
- package/src/index.ts +97 -0
- package/src/plugin/PluginContext.ts +57 -0
- package/src/primitives/docker.ts +164 -0
- package/src/primitives/git.ts +172 -0
- package/src/primitives/index.ts +4 -0
- package/src/primitives/shell.ts +157 -0
- package/src/primitives/ssh.ts +249 -0
- package/src/primitives/subprocess.ts +389 -0
- package/src/toolchain/index.ts +6 -0
- package/src/toolchain/providers/GradleToolchain.ts +137 -0
- package/src/toolchain/providers/MavenToolchain.ts +64 -0
- package/src/toolchain/providers/NodeToolchain.ts +172 -0
- package/src/toolchain/providers/pom.ts +145 -0
- package/src/toolchain/registry.ts +161 -0
- package/src/toolchain/types.ts +40 -0
- package/src/utils/mask.ts +73 -0
- package/src/utils/template.ts +62 -0
|
@@ -26,12 +26,12 @@ function fromProperties(text, key) {
|
|
|
26
26
|
return undefined;
|
|
27
27
|
}
|
|
28
28
|
function fromBuildScript(text, key) {
|
|
29
|
-
const assignment = new RegExp(
|
|
29
|
+
const assignment = new RegExp(`^\\s*${key}(?:\\s*=|\\s+)\\s*['"]([^'"]+)['"]`, 'm');
|
|
30
30
|
return assignment.exec(text)?.[1];
|
|
31
31
|
}
|
|
32
32
|
export class GradleToolchain {
|
|
33
33
|
name = 'gradle';
|
|
34
|
-
priority =
|
|
34
|
+
priority = 20;
|
|
35
35
|
async detect(projectDir) {
|
|
36
36
|
for (const file of BUILD_FILES) {
|
|
37
37
|
try {
|
|
@@ -50,7 +50,8 @@ export class GradleToolchain {
|
|
|
50
50
|
if (!name)
|
|
51
51
|
name = path.basename(projectDir);
|
|
52
52
|
if (!version || version === 'unspecified') {
|
|
53
|
-
version
|
|
53
|
+
throw new Error(`Could not determine project version for Gradle project in '${projectDir}'. ` +
|
|
54
|
+
`Please specify 'version' in build.gradle(.kts) or gradle.properties.`);
|
|
54
55
|
}
|
|
55
56
|
const group = await this.staticGroup(projectDir);
|
|
56
57
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GradleToolchain.js","sourceRoot":"","sources":["../../../src/toolchain/providers/GradleToolchain.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,MAAM,kBAAkB,CAAA;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAA;AAGjD,MAAM,WAAW,GAAG,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAA;AACxD,MAAM,cAAc,GAAG,CAAC,iBAAiB,EAAE,qBAAqB,CAAC,CAAA;AAEjE,KAAK,UAAU,aAAa,CAAC,IAAY;IACvC,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,IAAY,EAAE,GAAW;IAC/C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;QAC3B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAQ;QAC5E,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC/B,IAAI,EAAE,KAAK,CAAC,CAAC;YAAE,SAAQ;QACvB,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,GAAG;YAAE,SAAQ;QACjD,OAAO,OAAO,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,SAAS,CAAA;IAClD,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAS,eAAe,CAAC,IAAY,EAAE,GAAW;IAChD,MAAM,UAAU,GAAG,IAAI,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"GradleToolchain.js","sourceRoot":"","sources":["../../../src/toolchain/providers/GradleToolchain.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { ToolchainProvider, DetectionResult, ProjectInfo } from '../types.js';
|
|
2
2
|
export declare class MavenToolchain implements ToolchainProvider {
|
|
3
3
|
readonly name = "maven";
|
|
4
|
-
readonly priority
|
|
4
|
+
readonly priority: number;
|
|
5
5
|
detect(projectDir: string): Promise<DetectionResult | null>;
|
|
6
6
|
projectInfo(projectDir: string): Promise<ProjectInfo>;
|
|
7
7
|
install(projectDir: string, flags?: string[]): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MavenToolchain.d.ts","sourceRoot":"","sources":["../../../src/toolchain/providers/MavenToolchain.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAElF,qBAAa,cAAe,YAAW,iBAAiB;IACtD,QAAQ,CAAC,IAAI,WAAU;IACvB,QAAQ,CAAC,QAAQ,
|
|
1
|
+
{"version":3,"file":"MavenToolchain.d.ts","sourceRoot":"","sources":["../../../src/toolchain/providers/MavenToolchain.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAElF,qBAAa,cAAe,YAAW,iBAAiB;IACtD,QAAQ,CAAC,IAAI,WAAU;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAK;IAExB,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAS3D,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAoBrD,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAKhE,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAK9D,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,IAAI,CAAC;YAKlE,UAAU;CASzB"}
|
|
@@ -4,7 +4,7 @@ import { shell } from '../../primitives/shell.js';
|
|
|
4
4
|
import { readPom } from './pom.js';
|
|
5
5
|
export class MavenToolchain {
|
|
6
6
|
name = 'maven';
|
|
7
|
-
priority =
|
|
7
|
+
priority = 30;
|
|
8
8
|
async detect(projectDir) {
|
|
9
9
|
try {
|
|
10
10
|
await fs.access(path.join(projectDir, 'pom.xml'));
|
|
@@ -21,8 +21,8 @@ export class MavenToolchain {
|
|
|
21
21
|
if (!artifactId) {
|
|
22
22
|
throw new Error(`Invalid pom.xml (missing <artifactId>): ${pomPath}`);
|
|
23
23
|
}
|
|
24
|
-
if (!version) {
|
|
25
|
-
throw new Error(`Invalid pom.xml (missing <version>): ${pomPath}`);
|
|
24
|
+
if (!version || version.includes('${')) {
|
|
25
|
+
throw new Error(`Invalid pom.xml (missing or unexpanded <version> '${version ?? ''}'): ${pomPath}`);
|
|
26
26
|
}
|
|
27
27
|
return {
|
|
28
28
|
name: artifactId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MavenToolchain.js","sourceRoot":"","sources":["../../../src/toolchain/providers/MavenToolchain.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,MAAM,kBAAkB,CAAA;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAA;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAGlC,MAAM,OAAO,cAAc;IAChB,IAAI,GAAG,OAAO,CAAA;IACd,QAAQ,
|
|
1
|
+
{"version":3,"file":"MavenToolchain.js","sourceRoot":"","sources":["../../../src/toolchain/providers/MavenToolchain.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import type { ToolchainProvider, DetectionResult, ProjectInfo } from '../types.j
|
|
|
2
2
|
export type NodePackageManager = 'pnpm' | 'npm' | 'yarn' | 'bun';
|
|
3
3
|
export declare class NodeToolchain implements ToolchainProvider {
|
|
4
4
|
readonly name: string;
|
|
5
|
-
readonly priority
|
|
5
|
+
readonly priority: number;
|
|
6
6
|
private explicitPm?;
|
|
7
7
|
constructor(pmName?: NodePackageManager);
|
|
8
8
|
detect(projectDir: string): Promise<DetectionResult | null>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeToolchain.d.ts","sourceRoot":"","sources":["../../../src/toolchain/providers/NodeToolchain.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAElF,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"NodeToolchain.d.ts","sourceRoot":"","sources":["../../../src/toolchain/providers/NodeToolchain.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAElF,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,CAAA;AA2DhE,qBAAa,aAAc,YAAW,iBAAiB;IACrD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAK;IAC9B,OAAO,CAAC,UAAU,CAAC,CAAoB;gBAE3B,MAAM,CAAC,EAAE,kBAAkB;IAKjC,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAc3D,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAsBrD,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IA8ChE,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAK9D,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,IAAI,CAAC;YAKlE,SAAS;CAKxB"}
|
|
@@ -4,6 +4,7 @@ import { shell } from '../../primitives/shell.js';
|
|
|
4
4
|
const LOCKFILES = [
|
|
5
5
|
['pnpm-lock.yaml', 'pnpm'],
|
|
6
6
|
['bun.lockb', 'bun'],
|
|
7
|
+
['bun.lock', 'bun'],
|
|
7
8
|
['yarn.lock', 'yarn'],
|
|
8
9
|
['package-lock.json', 'npm']
|
|
9
10
|
];
|
|
@@ -32,6 +33,29 @@ async function detectPackageManager(dir) {
|
|
|
32
33
|
}
|
|
33
34
|
return { pm: 'npm', reason: 'default fallback' };
|
|
34
35
|
}
|
|
36
|
+
async function fileExists(filePath) {
|
|
37
|
+
try {
|
|
38
|
+
await fs.access(filePath);
|
|
39
|
+
return true;
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
async function isYarnBerry(dir) {
|
|
46
|
+
if (await fileExists(path.join(dir, '.yarnrc.yml')) || await fileExists(path.join(dir, '.yarnrc.yaml'))) {
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
49
|
+
try {
|
|
50
|
+
const raw = await fs.readFile(path.join(dir, 'package.json'), 'utf-8');
|
|
51
|
+
const pm = JSON.parse(raw)?.packageManager;
|
|
52
|
+
if (typeof pm === 'string' && /^yarn@([2-9]|\d{2,})/.test(pm)) {
|
|
53
|
+
return true;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
catch { }
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
35
59
|
export class NodeToolchain {
|
|
36
60
|
name;
|
|
37
61
|
priority = 10;
|
|
@@ -73,6 +97,43 @@ export class NodeToolchain {
|
|
|
73
97
|
}
|
|
74
98
|
async install(projectDir, flags = []) {
|
|
75
99
|
const pm = await this.resolvePm(projectDir);
|
|
100
|
+
if (pm === 'npm') {
|
|
101
|
+
const hasLock = await fileExists(path.join(projectDir, 'package-lock.json'));
|
|
102
|
+
if (hasLock) {
|
|
103
|
+
await shell.run({ cwd: projectDir }) `npm ci ${flags}`;
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
await shell.run({ cwd: projectDir }) `npm install ${flags}`;
|
|
107
|
+
}
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
if (pm === 'pnpm') {
|
|
111
|
+
const hasLock = await fileExists(path.join(projectDir, 'pnpm-lock.yaml'));
|
|
112
|
+
const hasFrozenFlag = flags.some(f => f.includes('frozen-lockfile'));
|
|
113
|
+
const frozenArgs = (hasLock && !hasFrozenFlag) ? ['--frozen-lockfile'] : [];
|
|
114
|
+
await shell.run({ cwd: projectDir }) `pnpm install ${frozenArgs} ${flags}`;
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
if (pm === 'yarn') {
|
|
118
|
+
const hasLock = await fileExists(path.join(projectDir, 'yarn.lock'));
|
|
119
|
+
if (!hasLock) {
|
|
120
|
+
await shell.run({ cwd: projectDir }) `yarn install ${flags}`;
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
const isBerry = await isYarnBerry(projectDir);
|
|
124
|
+
const hasFrozenFlag = flags.some(f => f.includes('frozen-lockfile') || f.includes('immutable'));
|
|
125
|
+
const frozenArgs = !hasFrozenFlag ? [isBerry ? '--immutable' : '--frozen-lockfile'] : [];
|
|
126
|
+
await shell.run({ cwd: projectDir }) `yarn install ${frozenArgs} ${flags}`;
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
if (pm === 'bun') {
|
|
130
|
+
const hasLock = (await fileExists(path.join(projectDir, 'bun.lockb'))) ||
|
|
131
|
+
(await fileExists(path.join(projectDir, 'bun.lock')));
|
|
132
|
+
const hasFrozenFlag = flags.some(f => f.includes('frozen-lockfile'));
|
|
133
|
+
const frozenArgs = (hasLock && !hasFrozenFlag) ? ['--frozen-lockfile'] : [];
|
|
134
|
+
await shell.run({ cwd: projectDir }) `bun install ${frozenArgs} ${flags}`;
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
76
137
|
await shell.run({ cwd: projectDir }) `${pm} install ${flags}`;
|
|
77
138
|
}
|
|
78
139
|
async build(projectDir, flags = []) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeToolchain.js","sourceRoot":"","sources":["../../../src/toolchain/providers/NodeToolchain.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,MAAM,kBAAkB,CAAA;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAA;AAKjD,MAAM,SAAS,GAAyD;IACtE,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAC1B,CAAC,WAAW,EAAE,KAAK,CAAC;IACpB,CAAC,WAAW,EAAE,MAAM,CAAC;IACrB,CAAC,mBAAmB,EAAE,KAAK,CAAC;CAC7B,CAAA;AAED,KAAK,UAAU,oBAAoB,CAAC,GAAW;IAC7C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAA;QACtE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,cAAc,CAAA;QAC7C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;YAChC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClD,OAAO,EAAE,EAAE,EAAE,IAA0B,EAAE,MAAM,EAAE,gCAAgC,KAAK,GAAG,EAAE,CAAA;YAC7F,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,WAAW;IACb,CAAC;IAED,KAAK,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC;QACvC,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAA;YACzC,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAA;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,WAAW;QACb,CAAC;IACH,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAA;AAClD,CAAC;AAED,MAAM,OAAO,aAAa;IACf,IAAI,CAAQ;IACZ,QAAQ,
|
|
1
|
+
{"version":3,"file":"NodeToolchain.js","sourceRoot":"","sources":["../../../src/toolchain/providers/NodeToolchain.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pom.d.ts","sourceRoot":"","sources":["../../../src/toolchain/providers/pom.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;CACpC;AA6BD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"pom.d.ts","sourceRoot":"","sources":["../../../src/toolchain/providers/pom.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;CACpC;AA6BD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAiDrE;AA8BD,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAuBnD"}
|
|
@@ -67,6 +67,9 @@ export function parseXml(xml) {
|
|
|
67
67
|
}
|
|
68
68
|
if (!root)
|
|
69
69
|
throw new Error('Malformed XML: no root element');
|
|
70
|
+
if (stack.length > 0) {
|
|
71
|
+
throw new Error(`Malformed XML: unclosed tag <${stack[stack.length - 1].name}>`);
|
|
72
|
+
}
|
|
70
73
|
return root;
|
|
71
74
|
}
|
|
72
75
|
function childText(node, name) {
|
|
@@ -102,6 +105,16 @@ export function readPom(xml) {
|
|
|
102
105
|
const { node: project } = parseXml(xml);
|
|
103
106
|
const parent = project.children['parent']?.[0];
|
|
104
107
|
const vars = properties(project);
|
|
108
|
+
if (parent) {
|
|
109
|
+
const parentVersion = childText(parent, 'version');
|
|
110
|
+
if (parentVersion) {
|
|
111
|
+
vars['project.parent.version'] = parentVersion;
|
|
112
|
+
}
|
|
113
|
+
const parentGroupId = childText(parent, 'groupId');
|
|
114
|
+
if (parentGroupId) {
|
|
115
|
+
vars['project.parent.groupId'] = parentGroupId;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
105
118
|
const resolve = (value) => value === undefined ? undefined : expand(value, vars);
|
|
106
119
|
return {
|
|
107
120
|
groupId: resolve(childText(project, 'groupId') ?? (parent && childText(parent, 'groupId'))),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pom.js","sourceRoot":"","sources":["../../../src/toolchain/providers/pom.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pom.js","sourceRoot":"","sources":["../../../src/toolchain/providers/pom.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
import type { ToolchainProvider, DetectionResult } from './types.js';
|
|
2
|
+
export interface ResolveToolchainOptions {
|
|
3
|
+
/** Explicitly preferred toolchain (takes precedence over automatic detection) */
|
|
4
|
+
preferred?: string;
|
|
5
|
+
/** Fallback toolchain used only when automatic detection yields no match */
|
|
6
|
+
fallback?: string;
|
|
7
|
+
}
|
|
2
8
|
export declare class ToolchainRegistry {
|
|
3
9
|
private providers;
|
|
4
10
|
constructor(registerDefaults?: boolean);
|
|
@@ -27,9 +33,11 @@ export declare class ToolchainRegistry {
|
|
|
27
33
|
detection: DetectionResult;
|
|
28
34
|
} | null>;
|
|
29
35
|
/**
|
|
30
|
-
* Resolve a toolchain for a directory, respecting an optional preferred toolchain name
|
|
36
|
+
* Resolve a toolchain for a directory, respecting an optional preferred toolchain name or options.
|
|
37
|
+
* If preferredName is provided, it takes precedence (explicit beats implicit detection).
|
|
38
|
+
* If fallback is provided, it is used only when automatic detection finds no matching manifest.
|
|
31
39
|
*/
|
|
32
|
-
resolve(projectDir: string,
|
|
40
|
+
resolve(projectDir: string, preferredOrOptions?: string | ResolveToolchainOptions): Promise<{
|
|
33
41
|
provider: ToolchainProvider;
|
|
34
42
|
detection: DetectionResult;
|
|
35
43
|
}>;
|
|
@@ -41,7 +49,7 @@ export declare class ToolchainRegistry {
|
|
|
41
49
|
/** Global default ToolchainRegistry singleton */
|
|
42
50
|
export declare const defaultToolchainRegistry: ToolchainRegistry;
|
|
43
51
|
export declare function registerToolchain(provider: ToolchainProvider): void;
|
|
44
|
-
export declare function resolveToolchain(projectDir: string,
|
|
52
|
+
export declare function resolveToolchain(projectDir: string, preferredOrOptions?: string | ResolveToolchainOptions): Promise<{
|
|
45
53
|
provider: ToolchainProvider;
|
|
46
54
|
detection: DetectionResult;
|
|
47
55
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/toolchain/registry.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEpE,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,SAAS,CAA4C;gBAEjD,gBAAgB,UAAO;IAMnC,OAAO,CAAC,wBAAwB;IAOhC;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI;IAI3C;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIjC;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAShD;;OAEG;IACH,IAAI,IAAI,iBAAiB,EAAE;IAM3B;;OAEG;IACG,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,iBAAiB,CAAC;QAAC,SAAS,EAAE,eAAe,CAAA;KAAE,GAAG,IAAI,CAAC;IAW7G
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/toolchain/registry.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEpE,MAAM,WAAW,uBAAuB;IACtC,iFAAiF;IACjF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,SAAS,CAA4C;gBAEjD,gBAAgB,UAAO;IAMnC,OAAO,CAAC,wBAAwB;IAOhC;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI;IAI3C;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIjC;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAShD;;OAEG;IACH,IAAI,IAAI,iBAAiB,EAAE;IAM3B;;OAEG;IACG,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,iBAAiB,CAAC;QAAC,SAAS,EAAE,eAAe,CAAA;KAAE,GAAG,IAAI,CAAC;IAW7G;;;;OAIG;IACG,OAAO,CACX,UAAU,EAAE,MAAM,EAClB,kBAAkB,CAAC,EAAE,MAAM,GAAG,uBAAuB,GACpD,OAAO,CAAC;QAAE,QAAQ,EAAE,iBAAiB,CAAC;QAAC,SAAS,EAAE,eAAe,CAAA;KAAE,CAAC;IAsDvE;;OAEG;IACH,KAAK,IAAI,IAAI;CAId;AAED,iDAAiD;AACjD,eAAO,MAAM,wBAAwB,mBAA0B,CAAA;AAE/D,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAEnE;AAED,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,MAAM,EAClB,kBAAkB,CAAC,EAAE,MAAM,GAAG,uBAAuB,GACpD,OAAO,CAAC;IAAE,QAAQ,EAAE,iBAAiB,CAAC;IAAC,SAAS,EAAE,eAAe,CAAA;CAAE,CAAC,CAEtE"}
|
|
@@ -58,21 +58,46 @@ export class ToolchainRegistry {
|
|
|
58
58
|
return null;
|
|
59
59
|
}
|
|
60
60
|
/**
|
|
61
|
-
* Resolve a toolchain for a directory, respecting an optional preferred toolchain name
|
|
61
|
+
* Resolve a toolchain for a directory, respecting an optional preferred toolchain name or options.
|
|
62
|
+
* If preferredName is provided, it takes precedence (explicit beats implicit detection).
|
|
63
|
+
* If fallback is provided, it is used only when automatic detection finds no matching manifest.
|
|
62
64
|
*/
|
|
63
|
-
async resolve(projectDir,
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
65
|
+
async resolve(projectDir, preferredOrOptions) {
|
|
66
|
+
let preferredName;
|
|
67
|
+
let fallbackName;
|
|
68
|
+
if (typeof preferredOrOptions === 'string') {
|
|
69
|
+
preferredName = preferredOrOptions;
|
|
70
|
+
}
|
|
71
|
+
else if (typeof preferredOrOptions === 'object' && preferredOrOptions !== null) {
|
|
72
|
+
preferredName = preferredOrOptions.preferred;
|
|
73
|
+
fallbackName = preferredOrOptions.fallback;
|
|
67
74
|
}
|
|
68
75
|
if (preferredName) {
|
|
69
76
|
const provider = this.get(preferredName);
|
|
70
77
|
if (!provider) {
|
|
71
78
|
throw new Error(`Preferred toolchain '${preferredName}' is not registered. Available: ${Array.from(this.providers.keys()).join(', ')}`);
|
|
72
79
|
}
|
|
80
|
+
const detection = await provider.detect(projectDir);
|
|
81
|
+
if (!detection) {
|
|
82
|
+
throw new Error(`Preferred toolchain '${preferredName}' does not match project in '${projectDir}'.`);
|
|
83
|
+
}
|
|
84
|
+
return {
|
|
85
|
+
provider,
|
|
86
|
+
detection
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
const detected = await this.detect(projectDir);
|
|
90
|
+
if (detected) {
|
|
91
|
+
return detected;
|
|
92
|
+
}
|
|
93
|
+
if (fallbackName) {
|
|
94
|
+
const provider = this.get(fallbackName);
|
|
95
|
+
if (!provider) {
|
|
96
|
+
throw new Error(`Fallback toolchain '${fallbackName}' is not registered. Available: ${Array.from(this.providers.keys()).join(', ')}`);
|
|
97
|
+
}
|
|
73
98
|
return {
|
|
74
99
|
provider,
|
|
75
|
-
detection: { name:
|
|
100
|
+
detection: { name: fallbackName, reason: `configured default (${fallbackName})` }
|
|
76
101
|
};
|
|
77
102
|
}
|
|
78
103
|
throw new Error(`Could not determine toolchain for directory '${projectDir}'. ` +
|
|
@@ -91,7 +116,7 @@ export const defaultToolchainRegistry = new ToolchainRegistry();
|
|
|
91
116
|
export function registerToolchain(provider) {
|
|
92
117
|
defaultToolchainRegistry.register(provider);
|
|
93
118
|
}
|
|
94
|
-
export function resolveToolchain(projectDir,
|
|
95
|
-
return defaultToolchainRegistry.resolve(projectDir,
|
|
119
|
+
export function resolveToolchain(projectDir, preferredOrOptions) {
|
|
120
|
+
return defaultToolchainRegistry.resolve(projectDir, preferredOrOptions);
|
|
96
121
|
}
|
|
97
122
|
//# sourceMappingURL=registry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/toolchain/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/toolchain/registry.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/mask.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mask.d.ts","sourceRoot":"","sources":["../../src/utils/mask.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,IAAI,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"mask.d.ts","sourceRoot":"","sources":["../../src/utils/mask.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,IAAI,aAAa,CAAA;AAQ9B,oEAAoE;AACpE,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAQhD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,CASvE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAgCvC"}
|
package/dist/utils/mask.js
CHANGED
|
@@ -2,13 +2,26 @@
|
|
|
2
2
|
* Secret masking heuristics and masking stream utilities.
|
|
3
3
|
*/
|
|
4
4
|
export const MASK = '********';
|
|
5
|
-
const
|
|
6
|
-
const
|
|
5
|
+
const SECRET_WORDS = /(PASSWORD|PASSWD|PASSPHRASE|SECRET|TOKEN|CREDENTIAL|PRIVATE_KEY|PRIVATEKEY|APIKEY|KEYSTORE|SIGNATURE)/i;
|
|
6
|
+
const SECRET_TOKEN_BOUNDED = /(?:^|[_\-])(PASS|KEY|AUTH)(?:$|[_\-])/i;
|
|
7
|
+
const CAMEL_SECRET = /(?:Password|Passwd|Passphrase|Secret|Token|Credential|PrivateKey|ApiKey|Keystore|Signature)/;
|
|
8
|
+
const CAMEL_BOUNDED = /(?:^|[a-z0-9])(?:Pass|Key|Auth)(?:$|[A-Z0-9])/;
|
|
9
|
+
const LOCATION_NAME = /(_FILE|_PATH|_DIR|_DIRECTORY|_URL|_URI|_LOCATION|_NAME|_ID|_SOCK)$/i;
|
|
7
10
|
/** Does this variable or key name suggest its value is a secret? */
|
|
8
11
|
export function isSecretKey(key) {
|
|
12
|
+
if (!key)
|
|
13
|
+
return false;
|
|
9
14
|
if (LOCATION_NAME.test(key))
|
|
10
15
|
return false;
|
|
11
|
-
|
|
16
|
+
if (SECRET_WORDS.test(key))
|
|
17
|
+
return true;
|
|
18
|
+
if (SECRET_TOKEN_BOUNDED.test(key))
|
|
19
|
+
return true;
|
|
20
|
+
if (CAMEL_SECRET.test(key))
|
|
21
|
+
return true;
|
|
22
|
+
if (CAMEL_BOUNDED.test(key))
|
|
23
|
+
return true;
|
|
24
|
+
return false;
|
|
12
25
|
}
|
|
13
26
|
/**
|
|
14
27
|
* Mask secret substrings within a string log line.
|
|
@@ -30,13 +43,25 @@ export function maskString(text, secretValues) {
|
|
|
30
43
|
export function maskObject(obj) {
|
|
31
44
|
if (obj === null || typeof obj !== 'object')
|
|
32
45
|
return obj;
|
|
46
|
+
// Preserve Date, Buffer, RegExp, Error
|
|
47
|
+
if (obj instanceof Date ||
|
|
48
|
+
(typeof Buffer !== 'undefined' && Buffer.isBuffer(obj)) ||
|
|
49
|
+
obj instanceof RegExp ||
|
|
50
|
+
obj instanceof Error) {
|
|
51
|
+
return obj;
|
|
52
|
+
}
|
|
33
53
|
if (Array.isArray(obj)) {
|
|
34
54
|
return obj.map(item => maskObject(item));
|
|
35
55
|
}
|
|
36
56
|
const output = {};
|
|
37
57
|
for (const [key, value] of Object.entries(obj)) {
|
|
38
|
-
if (isSecretKey(key)
|
|
39
|
-
|
|
58
|
+
if (isSecretKey(key)) {
|
|
59
|
+
if (Array.isArray(value)) {
|
|
60
|
+
output[key] = value.map(() => MASK);
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
output[key] = MASK;
|
|
64
|
+
}
|
|
40
65
|
}
|
|
41
66
|
else if (typeof value === 'object' && value !== null) {
|
|
42
67
|
output[key] = maskObject(value);
|
package/dist/utils/mask.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mask.js","sourceRoot":"","sources":["../../src/utils/mask.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,CAAC,MAAM,IAAI,GAAG,UAAU,CAAA;AAE9B,MAAM,
|
|
1
|
+
{"version":3,"file":"mask.js","sourceRoot":"","sources":["../../src/utils/mask.ts"],"names":[],"mappings":"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"}
|