@ticatec/omniflow-core 0.1.1 → 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.
Files changed (75) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +112 -54
  3. package/README_CN.md +113 -55
  4. package/dist/index.d.ts +5 -4
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +2 -2
  7. package/dist/index.js.map +1 -1
  8. package/dist/plugin/PluginContext.d.ts +39 -0
  9. package/dist/plugin/PluginContext.d.ts.map +1 -0
  10. package/dist/plugin/PluginContext.js +8 -0
  11. package/dist/plugin/PluginContext.js.map +1 -0
  12. package/dist/primitives/docker.d.ts.map +1 -1
  13. package/dist/primitives/docker.js +9 -0
  14. package/dist/primitives/docker.js.map +1 -1
  15. package/dist/primitives/git.d.ts +58 -16
  16. package/dist/primitives/git.d.ts.map +1 -1
  17. package/dist/primitives/git.js +91 -33
  18. package/dist/primitives/git.js.map +1 -1
  19. package/dist/primitives/shell.d.ts +4 -0
  20. package/dist/primitives/shell.d.ts.map +1 -1
  21. package/dist/primitives/shell.js +20 -60
  22. package/dist/primitives/shell.js.map +1 -1
  23. package/dist/primitives/ssh.d.ts +8 -5
  24. package/dist/primitives/ssh.d.ts.map +1 -1
  25. package/dist/primitives/ssh.js +49 -14
  26. package/dist/primitives/ssh.js.map +1 -1
  27. package/dist/primitives/subprocess.d.ts +52 -0
  28. package/dist/primitives/subprocess.d.ts.map +1 -0
  29. package/dist/primitives/subprocess.js +353 -0
  30. package/dist/primitives/subprocess.js.map +1 -0
  31. package/dist/toolchain/providers/GradleToolchain.d.ts +1 -1
  32. package/dist/toolchain/providers/GradleToolchain.d.ts.map +1 -1
  33. package/dist/toolchain/providers/GradleToolchain.js +4 -3
  34. package/dist/toolchain/providers/GradleToolchain.js.map +1 -1
  35. package/dist/toolchain/providers/MavenToolchain.d.ts +1 -1
  36. package/dist/toolchain/providers/MavenToolchain.d.ts.map +1 -1
  37. package/dist/toolchain/providers/MavenToolchain.js +3 -3
  38. package/dist/toolchain/providers/MavenToolchain.js.map +1 -1
  39. package/dist/toolchain/providers/NodeToolchain.d.ts +1 -1
  40. package/dist/toolchain/providers/NodeToolchain.d.ts.map +1 -1
  41. package/dist/toolchain/providers/NodeToolchain.js +61 -0
  42. package/dist/toolchain/providers/NodeToolchain.js.map +1 -1
  43. package/dist/toolchain/providers/pom.d.ts.map +1 -1
  44. package/dist/toolchain/providers/pom.js +13 -0
  45. package/dist/toolchain/providers/pom.js.map +1 -1
  46. package/dist/toolchain/registry.d.ts +11 -3
  47. package/dist/toolchain/registry.d.ts.map +1 -1
  48. package/dist/toolchain/registry.js +33 -8
  49. package/dist/toolchain/registry.js.map +1 -1
  50. package/dist/utils/mask.d.ts.map +1 -1
  51. package/dist/utils/mask.js +30 -5
  52. package/dist/utils/mask.js.map +1 -1
  53. package/docs/toolchain-extension.md +301 -0
  54. package/docs/toolchain-extension_CN.md +304 -0
  55. package/package.json +23 -1
  56. package/src/context/index.ts +74 -0
  57. package/src/context/storage.ts +8 -0
  58. package/src/context/types.ts +69 -0
  59. package/src/index.ts +97 -0
  60. package/src/plugin/PluginContext.ts +57 -0
  61. package/src/primitives/docker.ts +164 -0
  62. package/src/primitives/git.ts +172 -0
  63. package/src/primitives/index.ts +4 -0
  64. package/src/primitives/shell.ts +157 -0
  65. package/src/primitives/ssh.ts +249 -0
  66. package/src/primitives/subprocess.ts +389 -0
  67. package/src/toolchain/index.ts +6 -0
  68. package/src/toolchain/providers/GradleToolchain.ts +137 -0
  69. package/src/toolchain/providers/MavenToolchain.ts +64 -0
  70. package/src/toolchain/providers/NodeToolchain.ts +172 -0
  71. package/src/toolchain/providers/pom.ts +145 -0
  72. package/src/toolchain/registry.ts +161 -0
  73. package/src/toolchain/types.ts +40 -0
  74. package/src/utils/mask.ts +73 -0
  75. 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(`^${key}\\s*=\\s*['"]([^'"]+)['"]`, 'm');
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 = 10;
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 = '0.0.0';
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":"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"}
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 = 10;
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,MAAK;IAEhB,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"}
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 = 10;
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":"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"}
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 = 10;
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;AAmChE,qBAAa,aAAc,YAAW,iBAAiB;IACrD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,QAAQ,MAAK;IACtB,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;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,SAAS;CAKxB"}
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":"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"}
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,CA8CrE;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,CAYnD"}
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 fallback.
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, preferredName?: string): Promise<{
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, preferredName?: string): Promise<{
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;;OAEG;IACG,OAAO,CACX,UAAU,EAAE,MAAM,EAClB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC;QAAE,QAAQ,EAAE,iBAAiB,CAAC;QAAC,SAAS,EAAE,eAAe,CAAA;KAAE,CAAC;IAyBvE;;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,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC;IAAE,QAAQ,EAAE,iBAAiB,CAAC;IAAC,SAAS,EAAE,eAAe,CAAA;CAAE,CAAC,CAEtE"}
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 fallback.
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, preferredName) {
64
- const detected = await this.detect(projectDir);
65
- if (detected) {
66
- return detected;
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: preferredName, reason: `configured default (${preferredName})` }
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, preferredName) {
95
- return defaultToolchainRegistry.resolve(projectDir, preferredName);
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":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/toolchain/registry.ts"],"names":[],"mappings":"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"}
@@ -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;AAK9B,oEAAoE;AACpE,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAGhD;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,CAkBvC"}
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"}
@@ -2,13 +2,26 @@
2
2
  * Secret masking heuristics and masking stream utilities.
3
3
  */
4
4
  export const MASK = '********';
5
- const SECRET_NAME = /(PASSWORD|PASSWD|PASS|SECRET|TOKEN|CREDENTIAL|PRIVATE|APIKEY|_KEY|^KEY$|KEY$|AUTH|SIGNATURE)/i;
6
- const LOCATION_NAME = /(_FILE|_PATH|_DIR|_DIRECTORY|_URL|_URI|_LOCATION|_NAME|_ID)$/i;
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
- return SECRET_NAME.test(key);
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) && typeof value === 'string' && value.length > 0) {
39
- output[key] = MASK;
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);
@@ -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,WAAW,GAAG,+FAA+F,CAAA;AACnH,MAAM,aAAa,GAAG,+DAA+D,CAAA;AAErF,oEAAoE;AACpE,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAA;IACzC,OAAO,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,YAAsB;IAC7D,IAAI,CAAC,IAAI,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IACnD,IAAI,MAAM,GAAG,IAAI,CAAA;IACjB,KAAK,MAAM,MAAM,IAAI,YAAY,EAAE,CAAC;QAClC,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACjC,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QAC1C,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAI,GAAM;IAClC,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAA;IAEvD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAiB,CAAA;IAC1D,CAAC;IAED,MAAM,MAAM,GAA4B,EAAE,CAAA;IAC1C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtE,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;QACpB,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACvD,MAAM,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;QACjC,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;QACrB,CAAC;IACH,CAAC;IACD,OAAO,MAAW,CAAA;AACpB,CAAC"}
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,YAAY,GAAG,wGAAwG,CAAA;AAC7H,MAAM,oBAAoB,GAAG,wCAAwC,CAAA;AACrE,MAAM,YAAY,GAAG,6FAA6F,CAAA;AAClH,MAAM,aAAa,GAAG,+CAA+C,CAAA;AACrE,MAAM,aAAa,GAAG,qEAAqE,CAAA;AAE3F,oEAAoE;AACpE,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAA;IACtB,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAA;IACzC,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAA;IACvC,IAAI,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAA;IAC/C,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAA;IACvC,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAA;IACxC,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,YAAsB;IAC7D,IAAI,CAAC,IAAI,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IACnD,IAAI,MAAM,GAAG,IAAI,CAAA;IACjB,KAAK,MAAM,MAAM,IAAI,YAAY,EAAE,CAAC;QAClC,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACjC,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QAC1C,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAI,GAAM;IAClC,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAA;IAEvD,uCAAuC;IACvC,IACE,GAAG,YAAY,IAAI;QACnB,CAAC,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACvD,GAAG,YAAY,MAAM;QACrB,GAAG,YAAY,KAAK,EACpB,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAiB,CAAA;IAC1D,CAAC;IAED,MAAM,MAAM,GAA4B,EAAE,CAAA;IAC1C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAA;YACrC,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;YACpB,CAAC;QACH,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACvD,MAAM,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;QACjC,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;QACrB,CAAC;IACH,CAAC;IACD,OAAO,MAAW,CAAA;AACpB,CAAC"}