@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.
- 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
package/dist/index.d.ts
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @omniflow
|
|
2
|
+
* @ticatec/omniflow-core
|
|
3
3
|
*
|
|
4
4
|
* Foundational execution context, primitives, and toolchain SPI
|
|
5
5
|
* for OmniFlow CI/CD orchestrator and its plugins.
|
|
6
6
|
*/
|
|
7
7
|
export { getContext, tryGetContext, hasContext, runWithContext, createMockContext, executionLocalStorage, type ExecutionContext, type CommandResult, type Artifact, type Logger, type GitMetadata, type SourceMode } from './context/index.js';
|
|
8
|
-
export { shell, run, sh, output, type RunOptions, type ShellOutputResult, type TemplateRunner } from './primitives/shell.js';
|
|
8
|
+
export { shell, run, sh, output, createMaskTransform, type RunOptions, type ShellOutputResult, type TemplateRunner } from './primitives/shell.js';
|
|
9
9
|
export { ssh, SshClient, type SshServerConfig, type SshConnectionConfig, type SshTarget, type SshResult } from './primitives/ssh.js';
|
|
10
|
-
export { git } from './primitives/git.js';
|
|
10
|
+
export { git, type GitCwdOptions, type GitFetchOptions, type GitResetOptions, type GitCheckoutOptions, type GitCleanOptions } from './primitives/git.js';
|
|
11
11
|
export { docker, type DockerBuildOptions, type ComposeOptions } from './primitives/docker.js';
|
|
12
|
-
export { registerToolchain, resolveToolchain, ToolchainRegistry, defaultToolchainRegistry, MavenToolchain, GradleToolchain, NodeToolchain, readPom, parseXml, type ToolchainProvider, type DetectionResult, type ProjectInfo } from './toolchain/index.js';
|
|
12
|
+
export { registerToolchain, resolveToolchain, ToolchainRegistry, defaultToolchainRegistry, MavenToolchain, GradleToolchain, NodeToolchain, readPom, parseXml, type ToolchainProvider, type DetectionResult, type ProjectInfo, type ResolveToolchainOptions } from './toolchain/index.js';
|
|
13
13
|
export { maskString, maskObject, isSecretKey, MASK } from './utils/mask.js';
|
|
14
14
|
export { templateToArgv } from './utils/template.js';
|
|
15
|
+
export { type PluginContext, type PluginRegisterFn, type ArtifactRegistryLike, type BranchRegistryLike, type CommandRegistryLike, type ToolchainRegistryLike } from './plugin/PluginContext.js';
|
|
15
16
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,UAAU,EACV,aAAa,EACb,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,qBAAqB,EACrB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,QAAQ,EACb,KAAK,MAAM,EACX,KAAK,WAAW,EAChB,KAAK,UAAU,EAChB,MAAM,oBAAoB,CAAA;AAG3B,OAAO,EACL,KAAK,EACL,GAAG,EACH,EAAE,EACF,MAAM,EACN,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EACL,GAAG,EACH,SAAS,EACT,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,qBAAqB,CAAA;AAE5B,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,UAAU,EACV,aAAa,EACb,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,qBAAqB,EACrB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,QAAQ,EACb,KAAK,MAAM,EACX,KAAK,WAAW,EAChB,KAAK,UAAU,EAChB,MAAM,oBAAoB,CAAA;AAG3B,OAAO,EACL,KAAK,EACL,GAAG,EACH,EAAE,EACF,MAAM,EACN,mBAAmB,EACnB,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EACL,GAAG,EACH,SAAS,EACT,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EACL,GAAG,EACH,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACrB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EACL,MAAM,EACN,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACpB,MAAM,wBAAwB,CAAA;AAG/B,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,wBAAwB,EACxB,cAAc,EACd,eAAe,EACf,aAAa,EACb,OAAO,EACP,QAAQ,EACR,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,uBAAuB,EAC7B,MAAM,sBAAsB,CAAA;AAG7B,OAAO,EACL,UAAU,EACV,UAAU,EACV,WAAW,EACX,IAAI,EACL,MAAM,iBAAiB,CAAA;AAExB,OAAO,EACL,cAAc,EACf,MAAM,qBAAqB,CAAA;AAG5B,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC3B,MAAM,2BAA2B,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @omniflow
|
|
2
|
+
* @ticatec/omniflow-core
|
|
3
3
|
*
|
|
4
4
|
* Foundational execution context, primitives, and toolchain SPI
|
|
5
5
|
* for OmniFlow CI/CD orchestrator and its plugins.
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
// Context
|
|
8
8
|
export { getContext, tryGetContext, hasContext, runWithContext, createMockContext, executionLocalStorage } from './context/index.js';
|
|
9
9
|
// Primitives
|
|
10
|
-
export { shell, run, sh, output } from './primitives/shell.js';
|
|
10
|
+
export { shell, run, sh, output, createMaskTransform } from './primitives/shell.js';
|
|
11
11
|
export { ssh, SshClient } from './primitives/ssh.js';
|
|
12
12
|
export { git } from './primitives/git.js';
|
|
13
13
|
export { docker } from './primitives/docker.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,UAAU;AACV,OAAO,EACL,UAAU,EACV,aAAa,EACb,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,qBAAqB,EAOtB,MAAM,oBAAoB,CAAA;AAE3B,aAAa;AACb,OAAO,EACL,KAAK,EACL,GAAG,EACH,EAAE,EACF,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,UAAU;AACV,OAAO,EACL,UAAU,EACV,aAAa,EACb,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,qBAAqB,EAOtB,MAAM,oBAAoB,CAAA;AAE3B,aAAa;AACb,OAAO,EACL,KAAK,EACL,GAAG,EACH,EAAE,EACF,MAAM,EACN,mBAAmB,EAIpB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EACL,GAAG,EACH,SAAS,EAKV,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EACL,GAAG,EAMJ,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EACL,MAAM,EAGP,MAAM,wBAAwB,CAAA;AAE/B,aAAa;AACb,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,wBAAwB,EACxB,cAAc,EACd,eAAe,EACf,aAAa,EACb,OAAO,EACP,QAAQ,EAKT,MAAM,sBAAsB,CAAA;AAE7B,YAAY;AACZ,OAAO,EACL,UAAU,EACV,UAAU,EACV,WAAW,EACX,IAAI,EACL,MAAM,iBAAiB,CAAA;AAExB,OAAO,EACL,cAAc,EACf,MAAM,qBAAqB,CAAA"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OmniFlow Plugin SPI Contracts
|
|
3
|
+
*
|
|
4
|
+
* Provides the context and registration hook for external plugins extending
|
|
5
|
+
* artifact publishers, branch strategies, commands, and toolchains.
|
|
6
|
+
*/
|
|
7
|
+
export interface ArtifactRegistryLike {
|
|
8
|
+
register(publisher: any): void;
|
|
9
|
+
}
|
|
10
|
+
export interface BranchRegistryLike {
|
|
11
|
+
register(strategy: any): void;
|
|
12
|
+
}
|
|
13
|
+
export interface CommandRegistryLike {
|
|
14
|
+
register(command: any): void;
|
|
15
|
+
registerFunction?(name: string, fn: any): void;
|
|
16
|
+
}
|
|
17
|
+
export interface ToolchainRegistryLike {
|
|
18
|
+
register(toolchain: any): void;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Standard SPI context passed to every plugin's `register(ctx, options)` hook.
|
|
22
|
+
*/
|
|
23
|
+
export interface PluginContext<TArtifactRegistry = any, TBranchRegistry = any, TCommandRegistry = any, TToolchainRegistry = any> {
|
|
24
|
+
/** Registry for Docker, NPM, Maven, Raw artifact publishers */
|
|
25
|
+
artifactRegistry: TArtifactRegistry;
|
|
26
|
+
/** Registry for Git branch promotion and PR/MR drivers */
|
|
27
|
+
branchRegistry: TBranchRegistry;
|
|
28
|
+
/** Registry for BaseCommand subclasses or functional recipes */
|
|
29
|
+
commandRegistry: TCommandRegistry;
|
|
30
|
+
/** Registry for detection and build toolchains */
|
|
31
|
+
toolchainRegistry: TToolchainRegistry;
|
|
32
|
+
/** Runtime environment variables */
|
|
33
|
+
env: Record<string, string | undefined>;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* The standard entry function every OmniFlow plugin exports.
|
|
37
|
+
*/
|
|
38
|
+
export type PluginRegisterFn<TArtifactRegistry = any, TBranchRegistry = any, TCommandRegistry = any, TToolchainRegistry = any> = (ctx: PluginContext<TArtifactRegistry, TBranchRegistry, TCommandRegistry, TToolchainRegistry>, options?: Record<string, unknown>) => Promise<void> | void;
|
|
39
|
+
//# sourceMappingURL=PluginContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PluginContext.d.ts","sourceRoot":"","sources":["../../src/plugin/PluginContext.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,SAAS,EAAE,GAAG,GAAG,IAAI,CAAA;CAC/B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,GAAG,GAAG,IAAI,CAAA;CAC9B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI,CAAA;IAC5B,gBAAgB,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG,IAAI,CAAA;CAC/C;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,SAAS,EAAE,GAAG,GAAG,IAAI,CAAA;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa,CAC5B,iBAAiB,GAAG,GAAG,EACvB,eAAe,GAAG,GAAG,EACrB,gBAAgB,GAAG,GAAG,EACtB,kBAAkB,GAAG,GAAG;IAExB,+DAA+D;IAC/D,gBAAgB,EAAE,iBAAiB,CAAA;IACnC,0DAA0D;IAC1D,cAAc,EAAE,eAAe,CAAA;IAC/B,gEAAgE;IAChE,eAAe,EAAE,gBAAgB,CAAA;IACjC,kDAAkD;IAClD,iBAAiB,EAAE,kBAAkB,CAAA;IACrC,oCAAoC;IACpC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;CACxC;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAC1B,iBAAiB,GAAG,GAAG,EACvB,eAAe,GAAG,GAAG,EACrB,gBAAgB,GAAG,GAAG,EACtB,kBAAkB,GAAG,GAAG,IACtB,CACF,GAAG,EAAE,aAAa,CAAC,iBAAiB,EAAE,eAAe,EAAE,gBAAgB,EAAE,kBAAkB,CAAC,EAC5F,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC9B,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PluginContext.js","sourceRoot":"","sources":["../../src/plugin/PluginContext.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docker.d.ts","sourceRoot":"","sources":["../../src/primitives/docker.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAEnD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAClC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACzB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;CACjB;AAED,eAAO,MAAM,MAAM;IACjB;;OAEG;mBACkB,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"docker.d.ts","sourceRoot":"","sources":["../../src/primitives/docker.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAEnD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAClC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACzB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;CACjB;AAED,eAAO,MAAM,MAAM;IACjB;;OAEG;mBACkB,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAoC3D;;OAEG;qBACoB,MAAM,eAAe,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAUtE;;OAEG;gBACe,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAU5C;;OAEG;wBACsB,cAAc,GAAQ,OAAO,CAAC,IAAI,CAAC;IAsC5D;;OAEG;0BACwB,cAAc,GAAQ,OAAO,CAAC,IAAI,CAAC;CA6B/D,CAAA"}
|
|
@@ -6,6 +6,9 @@ export const docker = {
|
|
|
6
6
|
* Build a Docker image.
|
|
7
7
|
*/
|
|
8
8
|
async build(options) {
|
|
9
|
+
if (!options.image || typeof options.image !== 'string' || options.image.trim() === '') {
|
|
10
|
+
throw new Error('Docker build requires a non-empty "image" identifier');
|
|
11
|
+
}
|
|
9
12
|
const ctx = tryGetContext();
|
|
10
13
|
const cwd = options.cwd ?? (ctx?.moduleFolder ? path.resolve(ctx.workspace, ctx.moduleFolder) : ctx?.workspace ?? process.cwd());
|
|
11
14
|
const dockerfile = options.dockerfile ?? 'Dockerfile';
|
|
@@ -98,10 +101,16 @@ export const docker = {
|
|
|
98
101
|
args.push('-f', f);
|
|
99
102
|
}
|
|
100
103
|
}
|
|
104
|
+
if (options.envFile) {
|
|
105
|
+
args.push('--env-file', options.envFile);
|
|
106
|
+
}
|
|
101
107
|
args.push('down');
|
|
102
108
|
if (options.flags) {
|
|
103
109
|
args.push(...options.flags);
|
|
104
110
|
}
|
|
111
|
+
if (options.services && options.services.length > 0) {
|
|
112
|
+
args.push(...options.services);
|
|
113
|
+
}
|
|
105
114
|
ctx?.logger.info('Docker Compose down');
|
|
106
115
|
await shell.run({ cwd }) `docker ${args}`;
|
|
107
116
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docker.js","sourceRoot":"","sources":["../../src/primitives/docker.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"docker.js","sourceRoot":"","sources":["../../src/primitives/docker.ts"],"names":[],"mappings":"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"}
|
package/dist/primitives/git.d.ts
CHANGED
|
@@ -1,19 +1,61 @@
|
|
|
1
|
+
export interface GitCwdOptions {
|
|
2
|
+
dir?: string;
|
|
3
|
+
}
|
|
4
|
+
export interface GitFetchOptions extends GitCwdOptions {
|
|
5
|
+
remote?: string;
|
|
6
|
+
branch?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface GitResetOptions extends GitCwdOptions {
|
|
9
|
+
target?: string;
|
|
10
|
+
}
|
|
11
|
+
export interface GitCheckoutOptions extends GitCwdOptions {
|
|
12
|
+
ref?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface GitCleanOptions extends GitCwdOptions {
|
|
15
|
+
forceIgnored?: boolean;
|
|
16
|
+
}
|
|
1
17
|
export declare const git: {
|
|
2
|
-
/**
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
+
/**
|
|
19
|
+
* Return full SHA of current commit.
|
|
20
|
+
* @param options Directory path or GitCwdOptions object. Defaults to repository root.
|
|
21
|
+
*/
|
|
22
|
+
currentCommit(options?: string | GitCwdOptions): Promise<string>;
|
|
23
|
+
/**
|
|
24
|
+
* Return short SHA of current commit.
|
|
25
|
+
* @param options Directory path or GitCwdOptions object. Defaults to repository root.
|
|
26
|
+
*/
|
|
27
|
+
shortCommit(options?: string | GitCwdOptions): Promise<string>;
|
|
28
|
+
/**
|
|
29
|
+
* Return current checked-out branch name, or empty string if detached HEAD.
|
|
30
|
+
* @param options Directory path or GitCwdOptions object. Defaults to repository root.
|
|
31
|
+
*/
|
|
32
|
+
currentBranch(options?: string | GitCwdOptions): Promise<string>;
|
|
33
|
+
/**
|
|
34
|
+
* Check if working tree has untracked or uncommitted changes.
|
|
35
|
+
* @param options Directory path or GitCwdOptions object. Defaults to repository root.
|
|
36
|
+
*/
|
|
37
|
+
isDirty(options?: string | GitCwdOptions): Promise<boolean>;
|
|
38
|
+
/**
|
|
39
|
+
* Fetch latest changes from remote.
|
|
40
|
+
* @param options GitFetchOptions object { remote, branch, dir }. Defaults to { remote: 'origin' } at repo root.
|
|
41
|
+
*/
|
|
42
|
+
fetch(options?: GitFetchOptions): Promise<void>;
|
|
43
|
+
/**
|
|
44
|
+
* Hard reset working tree to target commit/ref (defaults to HEAD).
|
|
45
|
+
* @param targetOrOptions Target ref name (string, e.g. 'HEAD', 'origin/main'), or GitResetOptions { target, dir }.
|
|
46
|
+
* Note: A bare string argument is treated as the target ref, NOT a directory. Pass { dir: '...' } to change directory.
|
|
47
|
+
*/
|
|
48
|
+
resetHard(targetOrOptions?: string | GitResetOptions): Promise<void>;
|
|
49
|
+
/**
|
|
50
|
+
* Clean working tree untracked files.
|
|
51
|
+
* @param options GitCleanOptions { forceIgnored, dir }. Defaults to repo root.
|
|
52
|
+
*/
|
|
53
|
+
clean(options?: GitCleanOptions): Promise<void>;
|
|
54
|
+
/**
|
|
55
|
+
* Switch or checkout a ref (defaults to main).
|
|
56
|
+
* @param refOrOptions Ref name (string, e.g. 'main', 'feature/login'), or GitCheckoutOptions { ref, dir }.
|
|
57
|
+
* Note: A bare string argument is treated as the ref name, NOT a directory. Pass { dir: '...' } to change directory.
|
|
58
|
+
*/
|
|
59
|
+
checkout(refOrOptions?: string | GitCheckoutOptions): Promise<void>;
|
|
18
60
|
};
|
|
19
61
|
//# sourceMappingURL=git.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/primitives/git.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/primitives/git.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,eAAgB,SAAQ,aAAa;IACpD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,eAAgB,SAAQ,aAAa;IACpD,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,kBAAmB,SAAQ,aAAa;IACvD,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,eAAgB,SAAQ,aAAa;IACpD,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB;AAgBD,eAAO,MAAM,GAAG;IACd;;;OAGG;4BAC2B,MAAM,GAAG,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;IAMtE;;;OAGG;0BACyB,MAAM,GAAG,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;IAMpE;;;OAGG;4BAC2B,MAAM,GAAG,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;IActE;;;OAGG;sBACqB,MAAM,GAAG,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IAMjE;;;OAGG;oBACkB,eAAe,GAAQ,OAAO,CAAC,IAAI,CAAC;IAezD;;;;OAIG;gCAC8B,MAAM,GAAG,eAAe,GAAY,OAAO,CAAC,IAAI,CAAC;IAoBlF;;;OAGG;oBACkB,eAAe,GAAQ,OAAO,CAAC,IAAI,CAAC;IAYzD;;;;OAIG;4BAC0B,MAAM,GAAG,kBAAkB,GAAY,OAAO,CAAC,IAAI,CAAC;CAmBlF,CAAA"}
|
package/dist/primitives/git.js
CHANGED
|
@@ -1,57 +1,98 @@
|
|
|
1
1
|
import { execa } from 'execa';
|
|
2
2
|
import { tryGetContext } from '../context/index.js';
|
|
3
|
-
function
|
|
4
|
-
if (
|
|
5
|
-
return
|
|
3
|
+
function resolveGitCwd(optionsOrDir) {
|
|
4
|
+
if (typeof optionsOrDir === 'string') {
|
|
5
|
+
return optionsOrDir;
|
|
6
|
+
}
|
|
7
|
+
if (optionsOrDir?.dir) {
|
|
8
|
+
return optionsOrDir.dir;
|
|
9
|
+
}
|
|
6
10
|
const ctx = tryGetContext();
|
|
7
|
-
|
|
11
|
+
if (ctx) {
|
|
12
|
+
return ctx.projectRoot ?? ctx.workspace ?? process.cwd();
|
|
13
|
+
}
|
|
14
|
+
return process.cwd();
|
|
8
15
|
}
|
|
9
16
|
export const git = {
|
|
10
|
-
/**
|
|
11
|
-
|
|
12
|
-
|
|
17
|
+
/**
|
|
18
|
+
* Return full SHA of current commit.
|
|
19
|
+
* @param options Directory path or GitCwdOptions object. Defaults to repository root.
|
|
20
|
+
*/
|
|
21
|
+
async currentCommit(options) {
|
|
22
|
+
const cwd = resolveGitCwd(options);
|
|
13
23
|
const { stdout } = await execa('git', ['rev-parse', 'HEAD'], { cwd });
|
|
14
24
|
return stdout.trim();
|
|
15
25
|
},
|
|
16
|
-
/**
|
|
17
|
-
|
|
18
|
-
|
|
26
|
+
/**
|
|
27
|
+
* Return short SHA of current commit.
|
|
28
|
+
* @param options Directory path or GitCwdOptions object. Defaults to repository root.
|
|
29
|
+
*/
|
|
30
|
+
async shortCommit(options) {
|
|
31
|
+
const cwd = resolveGitCwd(options);
|
|
19
32
|
const { stdout } = await execa('git', ['rev-parse', '--short', 'HEAD'], { cwd });
|
|
20
33
|
return stdout.trim();
|
|
21
34
|
},
|
|
22
|
-
/**
|
|
23
|
-
|
|
24
|
-
|
|
35
|
+
/**
|
|
36
|
+
* Return current checked-out branch name, or empty string if detached HEAD.
|
|
37
|
+
* @param options Directory path or GitCwdOptions object. Defaults to repository root.
|
|
38
|
+
*/
|
|
39
|
+
async currentBranch(options) {
|
|
40
|
+
const cwd = resolveGitCwd(options);
|
|
25
41
|
try {
|
|
26
42
|
const { stdout } = await execa('git', ['symbolic-ref', '--short', 'HEAD'], { cwd });
|
|
27
43
|
return stdout.trim();
|
|
28
44
|
}
|
|
29
45
|
catch {
|
|
30
|
-
|
|
46
|
+
const isInside = await execa('git', ['rev-parse', '--is-inside-work-tree'], { cwd, reject: false });
|
|
47
|
+
if (!isInside.failed) {
|
|
48
|
+
return ''; // Valid git repo, but detached HEAD
|
|
49
|
+
}
|
|
50
|
+
throw new Error(`Not a git repository: ${cwd}`);
|
|
31
51
|
}
|
|
32
52
|
},
|
|
33
|
-
/**
|
|
34
|
-
|
|
35
|
-
|
|
53
|
+
/**
|
|
54
|
+
* Check if working tree has untracked or uncommitted changes.
|
|
55
|
+
* @param options Directory path or GitCwdOptions object. Defaults to repository root.
|
|
56
|
+
*/
|
|
57
|
+
async isDirty(options) {
|
|
58
|
+
const cwd = resolveGitCwd(options);
|
|
36
59
|
const { stdout } = await execa('git', ['status', '--porcelain'], { cwd });
|
|
37
60
|
return stdout.trim().length > 0;
|
|
38
61
|
},
|
|
39
|
-
/**
|
|
40
|
-
|
|
41
|
-
|
|
62
|
+
/**
|
|
63
|
+
* Fetch latest changes from remote.
|
|
64
|
+
* @param options GitFetchOptions object { remote, branch, dir }. Defaults to { remote: 'origin' } at repo root.
|
|
65
|
+
*/
|
|
66
|
+
async fetch(options = {}) {
|
|
67
|
+
const cwd = resolveGitCwd(options);
|
|
68
|
+
const rem = options.remote ?? 'origin';
|
|
69
|
+
const br = options.branch;
|
|
42
70
|
const ctx = tryGetContext();
|
|
43
71
|
if (ctx?.dryRun) {
|
|
44
|
-
ctx.logger.info(`[DRY-RUN] git fetch ${
|
|
72
|
+
ctx.logger.info(`[DRY-RUN] git fetch ${rem}${br ? ` ${br}` : ''}`);
|
|
45
73
|
return;
|
|
46
74
|
}
|
|
47
|
-
const args = ['fetch',
|
|
48
|
-
if (
|
|
49
|
-
args.push(
|
|
75
|
+
const args = ['fetch', rem];
|
|
76
|
+
if (br)
|
|
77
|
+
args.push(br);
|
|
50
78
|
await execa('git', args, { cwd });
|
|
51
79
|
},
|
|
52
|
-
/**
|
|
53
|
-
|
|
54
|
-
|
|
80
|
+
/**
|
|
81
|
+
* Hard reset working tree to target commit/ref (defaults to HEAD).
|
|
82
|
+
* @param targetOrOptions Target ref name (string, e.g. 'HEAD', 'origin/main'), or GitResetOptions { target, dir }.
|
|
83
|
+
* Note: A bare string argument is treated as the target ref, NOT a directory. Pass { dir: '...' } to change directory.
|
|
84
|
+
*/
|
|
85
|
+
async resetHard(targetOrOptions = 'HEAD') {
|
|
86
|
+
let target = 'HEAD';
|
|
87
|
+
let cwd;
|
|
88
|
+
if (typeof targetOrOptions === 'object' && targetOrOptions !== null) {
|
|
89
|
+
target = targetOrOptions.target ?? 'HEAD';
|
|
90
|
+
cwd = resolveGitCwd(targetOrOptions);
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
target = targetOrOptions;
|
|
94
|
+
cwd = resolveGitCwd();
|
|
95
|
+
}
|
|
55
96
|
const ctx = tryGetContext();
|
|
56
97
|
if (ctx?.dryRun) {
|
|
57
98
|
ctx.logger.info(`[DRY-RUN] git reset --hard ${target}`);
|
|
@@ -59,10 +100,14 @@ export const git = {
|
|
|
59
100
|
}
|
|
60
101
|
await execa('git', ['reset', '--hard', target], { cwd });
|
|
61
102
|
},
|
|
62
|
-
/**
|
|
63
|
-
|
|
64
|
-
|
|
103
|
+
/**
|
|
104
|
+
* Clean working tree untracked files.
|
|
105
|
+
* @param options GitCleanOptions { forceIgnored, dir }. Defaults to repo root.
|
|
106
|
+
*/
|
|
107
|
+
async clean(options = {}) {
|
|
108
|
+
const cwd = resolveGitCwd(options);
|
|
65
109
|
const ctx = tryGetContext();
|
|
110
|
+
const forceIgnored = options.forceIgnored ?? false;
|
|
66
111
|
if (ctx?.dryRun) {
|
|
67
112
|
ctx.logger.info(`[DRY-RUN] git clean -fd${forceIgnored ? 'x' : ''}`);
|
|
68
113
|
return;
|
|
@@ -70,9 +115,22 @@ export const git = {
|
|
|
70
115
|
const flags = forceIgnored ? ['clean', '-fdx'] : ['clean', '-fd'];
|
|
71
116
|
await execa('git', flags, { cwd });
|
|
72
117
|
},
|
|
73
|
-
/**
|
|
74
|
-
|
|
75
|
-
|
|
118
|
+
/**
|
|
119
|
+
* Switch or checkout a ref (defaults to main).
|
|
120
|
+
* @param refOrOptions Ref name (string, e.g. 'main', 'feature/login'), or GitCheckoutOptions { ref, dir }.
|
|
121
|
+
* Note: A bare string argument is treated as the ref name, NOT a directory. Pass { dir: '...' } to change directory.
|
|
122
|
+
*/
|
|
123
|
+
async checkout(refOrOptions = 'main') {
|
|
124
|
+
let ref = 'main';
|
|
125
|
+
let cwd;
|
|
126
|
+
if (typeof refOrOptions === 'object' && refOrOptions !== null) {
|
|
127
|
+
ref = refOrOptions.ref ?? 'main';
|
|
128
|
+
cwd = resolveGitCwd(refOrOptions);
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
ref = refOrOptions;
|
|
132
|
+
cwd = resolveGitCwd();
|
|
133
|
+
}
|
|
76
134
|
const ctx = tryGetContext();
|
|
77
135
|
if (ctx?.dryRun) {
|
|
78
136
|
ctx.logger.info(`[DRY-RUN] git checkout ${ref}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/primitives/git.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/primitives/git.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { createMaskTransform } from './subprocess.js';
|
|
2
|
+
export { createMaskTransform };
|
|
1
3
|
export interface RunOptions {
|
|
2
4
|
/** Working directory (defaults to context's active module or workspace) */
|
|
3
5
|
cwd?: string;
|
|
@@ -12,6 +14,8 @@ export interface ShellOutputResult {
|
|
|
12
14
|
stdout: string;
|
|
13
15
|
stderr: string;
|
|
14
16
|
exitCode: number;
|
|
17
|
+
failed?: boolean;
|
|
18
|
+
signal?: string;
|
|
15
19
|
}
|
|
16
20
|
/**
|
|
17
21
|
* Tagged template runner signature.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../src/primitives/shell.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../src/primitives/shell.ts"],"names":[],"mappings":"AAKA,OAAO,EAIL,mBAAmB,EACpB,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAAE,mBAAmB,EAAE,CAAA;AAE9B,MAAM,WAAW,UAAU;IACzB,2EAA2E;IAC3E,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,sEAAsE;IACtE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC5B,2DAA2D;IAC3D,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,yCAAyC;IACzC,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAkED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,CAAC,QAAQ,EAAE,oBAAoB,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;CACnF;AAED;;;;GAIG;AACH,wBAAgB,GAAG,CAAC,OAAO,EAAE,UAAU,GAAG,cAAc,CAAA;AACxD,wBAAgB,GAAG,CAAC,QAAQ,EAAE,oBAAoB,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;AA4BrG;;GAEG;AACH,wBAAsB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,UAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAE1F;AAED;;GAEG;AACH,wBAAsB,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,UAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAE9F;AAED,eAAO,MAAM,KAAK;;;;CAIjB,CAAA"}
|
package/dist/primitives/shell.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import path from 'node:path';
|
|
2
|
-
import fs from 'node:fs';
|
|
3
2
|
import { execa } from 'execa';
|
|
4
3
|
import { tryGetContext } from '../context/index.js';
|
|
5
4
|
import { templateToArgv } from '../utils/template.js';
|
|
6
|
-
import {
|
|
5
|
+
import { maskString } from '../utils/mask.js';
|
|
6
|
+
import { resolveEnv, getSecretValues, runSubprocess, createMaskTransform } from './subprocess.js';
|
|
7
|
+
export { createMaskTransform };
|
|
7
8
|
function resolveCwd(explicitCwd) {
|
|
8
9
|
if (explicitCwd)
|
|
9
10
|
return explicitCwd;
|
|
@@ -18,29 +19,6 @@ function resolveCwd(explicitCwd) {
|
|
|
18
19
|
}
|
|
19
20
|
return process.cwd();
|
|
20
21
|
}
|
|
21
|
-
function resolveEnv(explicitEnv) {
|
|
22
|
-
const ctx = tryGetContext();
|
|
23
|
-
const base = { ...process.env };
|
|
24
|
-
if (ctx?.env) {
|
|
25
|
-
Object.assign(base, ctx.env);
|
|
26
|
-
}
|
|
27
|
-
if (explicitEnv) {
|
|
28
|
-
Object.assign(base, explicitEnv);
|
|
29
|
-
}
|
|
30
|
-
return base;
|
|
31
|
-
}
|
|
32
|
-
function getSecretValues() {
|
|
33
|
-
const ctx = tryGetContext();
|
|
34
|
-
if (!ctx?.env)
|
|
35
|
-
return [];
|
|
36
|
-
const secrets = [];
|
|
37
|
-
for (const [k, v] of Object.entries(ctx.env)) {
|
|
38
|
-
if (isSecretKey(k) && typeof v === 'string' && v.length >= 3) {
|
|
39
|
-
secrets.push(v);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
return secrets;
|
|
43
|
-
}
|
|
44
22
|
/**
|
|
45
23
|
* Execute command via execa, piping output and handling dryRun.
|
|
46
24
|
*/
|
|
@@ -50,14 +28,15 @@ async function executeInternal(fileOrCmd, args, options) {
|
|
|
50
28
|
const env = resolveEnv(options.env);
|
|
51
29
|
const secrets = getSecretValues();
|
|
52
30
|
const cmdDisplay = args ? [fileOrCmd, ...args].join(' ') : fileOrCmd;
|
|
31
|
+
const maskedCmd = maskString(cmdDisplay, secrets);
|
|
53
32
|
// Dry-run interception
|
|
54
33
|
if (ctx?.dryRun) {
|
|
55
|
-
const maskedCmd = maskString(cmdDisplay, secrets);
|
|
56
34
|
ctx.logger.info(`[DRY-RUN] Executing: ${maskedCmd} (cwd: ${cwd})`);
|
|
57
35
|
return {
|
|
58
|
-
stdout:
|
|
36
|
+
stdout: '',
|
|
59
37
|
stderr: '',
|
|
60
|
-
exitCode: 0
|
|
38
|
+
exitCode: 0,
|
|
39
|
+
failed: false
|
|
61
40
|
};
|
|
62
41
|
}
|
|
63
42
|
const execaOpts = {
|
|
@@ -66,38 +45,19 @@ async function executeInternal(fileOrCmd, args, options) {
|
|
|
66
45
|
reject: options.reject ?? true,
|
|
67
46
|
shell: options.isShell ?? false
|
|
68
47
|
};
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
: execa(fileOrCmd, execaOpts);
|
|
83
|
-
if (subprocess.stdout && logStream) {
|
|
84
|
-
subprocess.stdout.pipe(logStream, { end: false });
|
|
85
|
-
}
|
|
86
|
-
if (subprocess.stderr && logStream) {
|
|
87
|
-
subprocess.stderr.pipe(logStream, { end: false });
|
|
88
|
-
}
|
|
89
|
-
const result = await subprocess;
|
|
90
|
-
return {
|
|
91
|
-
stdout: typeof result.stdout === 'string' ? result.stdout : (result.stdout ? String(result.stdout) : ''),
|
|
92
|
-
stderr: typeof result.stderr === 'string' ? result.stderr : (result.stderr ? String(result.stderr) : ''),
|
|
93
|
-
exitCode: result.exitCode ?? 0
|
|
94
|
-
};
|
|
95
|
-
}
|
|
96
|
-
finally {
|
|
97
|
-
if (logStream) {
|
|
98
|
-
logStream.end();
|
|
99
|
-
}
|
|
100
|
-
}
|
|
48
|
+
const displayCmd = `$ ${maskedCmd}`;
|
|
49
|
+
ctx?.logger?.info?.(displayCmd);
|
|
50
|
+
const subprocess = args
|
|
51
|
+
? execa(fileOrCmd, args, execaOpts)
|
|
52
|
+
: execa(fileOrCmd, execaOpts);
|
|
53
|
+
return runSubprocess({
|
|
54
|
+
subprocess,
|
|
55
|
+
displayCmd,
|
|
56
|
+
cmdText: maskedCmd,
|
|
57
|
+
errorPrefix: 'Command',
|
|
58
|
+
reject: options.reject ?? true,
|
|
59
|
+
secrets
|
|
60
|
+
});
|
|
101
61
|
}
|
|
102
62
|
export function run(templateOrOptions, ...values) {
|
|
103
63
|
// Overload 2: options passed first, returns a TemplateRunner
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell.js","sourceRoot":"","sources":["../../src/primitives/shell.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"shell.js","sourceRoot":"","sources":["../../src/primitives/shell.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,KAAK,EAAgC,MAAM,OAAO,CAAA;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EACL,UAAU,EACV,eAAe,EACf,aAAa,EACb,mBAAmB,EACpB,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAAE,mBAAmB,EAAE,CAAA;AAqB9B,SAAS,UAAU,CAAC,WAAoB;IACtC,IAAI,WAAW;QAAE,OAAO,WAAW,CAAA;IACnC,MAAM,GAAG,GAAG,aAAa,EAAE,CAAA;IAC3B,IAAI,GAAG,EAAE,CAAC;QACR,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,YAAY,CAAC,CAAA;QACtD,CAAC;QACD,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YAClB,OAAO,GAAG,CAAC,SAAS,CAAA;QACtB,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC,GAAG,EAAE,CAAA;AACtB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,eAAe,CAC5B,SAAiB,EACjB,IAA0B,EAC1B,OAA2C;IAE3C,MAAM,GAAG,GAAG,aAAa,EAAE,CAAA;IAC3B,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACnC,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACnC,MAAM,OAAO,GAAG,eAAe,EAAE,CAAA;IACjC,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACpE,MAAM,SAAS,GAAG,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IAEjD,uBAAuB;IACvB,IAAI,GAAG,EAAE,MAAM,EAAE,CAAC;QAChB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,SAAS,UAAU,GAAG,GAAG,CAAC,CAAA;QAClE,OAAO;YACL,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE;YACV,QAAQ,EAAE,CAAC;YACX,MAAM,EAAE,KAAK;SACd,CAAA;IACH,CAAC;IAED,MAAM,SAAS,GAAiB;QAC9B,GAAG;QACH,GAAG;QACH,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,IAAI;QAC9B,KAAK,EAAE,OAAO,CAAC,OAAO,IAAI,KAAK;KAChC,CAAA;IAED,MAAM,UAAU,GAAG,KAAK,SAAS,EAAE,CAAA;IACnC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,CAAA;IAE/B,MAAM,UAAU,GAAG,IAAI;QACrB,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC;QACnC,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;IAE/B,OAAO,aAAa,CAAC;QACnB,UAAU;QACV,UAAU;QACV,OAAO,EAAE,SAAS;QAClB,WAAW,EAAE,SAAS;QACtB,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,IAAI;QAC9B,OAAO;KACR,CAAC,CAAA;AACJ,CAAC;AAgBD,MAAM,UAAU,GAAG,CACjB,iBAAoD,EACpD,GAAG,MAAiB;IAEpB,6DAA6D;IAC7D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,iBAAiB,CAAC,EAAE,CAAC;QACvE,MAAM,OAAO,GAAI,iBAAgC,IAAI,EAAE,CAAA;QACvD,OAAO,KAAK,EAAE,QAA8B,EAAE,GAAG,WAAsB,EAAE,EAAE;YACzE,MAAM,IAAI,GAAG,cAAc,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;YAClD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtB,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;YACrC,CAAC;YACD,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAA;YAC3B,OAAO,eAAe,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;QAC5C,CAAC,CAAA;IACH,CAAC;IAED,qCAAqC;IACrC,MAAM,QAAQ,GAAG,iBAAyC,CAAA;IAC1D,MAAM,IAAI,GAAG,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IAC7C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IACD,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAA;IAC3B,OAAO,eAAe,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAA;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,EAAE,CAAC,GAAW,EAAE,UAAsB,EAAE;IAC5D,OAAO,eAAe,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;AACvE,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,GAAW,EAAE,UAAsB,EAAE;IAChE,OAAO,eAAe,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;AACrG,CAAC;AAED,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,GAAG;IACH,EAAE;IACF,MAAM;CACP,CAAA"}
|