rampway 0.2.4 → 0.2.6

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/README.md CHANGED
@@ -40,6 +40,8 @@ rampway production deploy <revision>
40
40
  rampway production status
41
41
  rampway production releases
42
42
  rampway production releases --json
43
+ rampway production tasks
44
+ rampway production tasks --json
43
45
  rampway production rollback
44
46
  rampway production doctor
45
47
  rampway production doctor --json
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli.js"],"names":[],"mappings":";AAyCA;;;GAGG;AACH,2BAHW,MAAM,EAAE,GACN,OAAO,CAAC,IAAI,CAAC,CAUzB;AAED;;;;;;;GAOG;AACH,wCAHW,MAAM,EAAE,GACN;IAAC,OAAO,EAAE,MAAM,GAAC,SAAS,CAAC;IAAC,SAAS,EAAE,MAAM,GAAC,SAAS,CAAC;IAAC,OAAO,EAAE,OAAO,QAAQ,EAAE,cAAc,CAAA;CAAC,CAgB9G"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli.js"],"names":[],"mappings":";AA2CA;;;GAGG;AACH,2BAHW,MAAM,EAAE,GACN,OAAO,CAAC,IAAI,CAAC,CAUzB;AAED;;;;;;;GAOG;AACH,wCAHW,MAAM,EAAE,GACN;IAAC,OAAO,EAAE,MAAM,GAAC,SAAS,CAAC;IAAC,SAAS,EAAE,MAAM,GAAC,SAAS,CAAC;IAAC,OAAO,EAAE,OAAO,QAAQ,EAAE,cAAc,CAAA;CAAC,CAgB9G"}
package/build/src/cli.js CHANGED
@@ -8,6 +8,7 @@ import { deployCommand } from "./commands/deploy.js";
8
8
  import { releasesCommand, statusCommand } from "./commands/releases.js";
9
9
  import { rollbackCommand } from "./commands/rollback.js";
10
10
  import { rollbridgeValidateCommand, rollbridgeStatusCommand, rollbridgeLogsCommand, rollbridgeRecoverCommand } from "./commands/rollbridge.js";
11
+ import { tasksCommand } from "./commands/tasks.js";
11
12
  import { initCommand } from "./commands/init.js";
12
13
  /** @type {Record<string, Function>} */
13
14
  const COMMANDS = {
@@ -17,6 +18,7 @@ const COMMANDS = {
17
18
  deploy: deployCommand,
18
19
  releases: releasesCommand,
19
20
  status: statusCommand,
21
+ tasks: tasksCommand,
20
22
  rollback: rollbackCommand,
21
23
  "rollbridge-validate": rollbridgeValidateCommand,
22
24
  "rollbridge-status": rollbridgeStatusCommand,
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.js"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../../src/commands/deploy.js"],"names":[],"mappings":"AAKA;;;GAGG;AACH,sEAHW,OAAO,QAAQ,EAAE,WAAW,GAC1B,OAAO,CAAC,IAAI,CAAC,CAczB"}
1
+ {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../../src/commands/deploy.js"],"names":[],"mappings":"AAMA;;;GAGG;AACH,sEAHW,OAAO,QAAQ,EAAE,WAAW,GAC1B,OAAO,CAAC,IAAI,CAAC,CAgCzB"}
@@ -1,6 +1,7 @@
1
1
  // @ts-check
2
2
  import { commandContext as defaultCommandContext } from "./context.js";
3
3
  import { deploy } from "../core/deploy-runner.js";
4
+ import { openDeployLog } from "../core/deploy-log.js";
4
5
  import { humanReporter, jsonReporter } from "../core/reporter.js";
5
6
  /**
6
7
  * @param {import('#types').CommandArgs} args
@@ -8,22 +9,43 @@ import { humanReporter, jsonReporter } from "../core/reporter.js";
8
9
  */
9
10
  export async function deployCommand({ stageName, options, commandContext = defaultCommandContext }) {
10
11
  const reporter = options.json ? jsonReporter() : humanReporter();
11
- const { stage, transport } = await commandContext(options, stageName, { reporter });
12
+ const { config, stage, transport } = await commandContext(options, stageName, { reporter });
12
13
  const resolvedStage = options.branch && !options.revision ? { ...stage, revision: undefined } : stage;
13
- const report = await deploy({ transport, stage: resolvedStage, sourcePath: options.source ?? process.cwd(), revision: options.revision, branch: options.branch ?? stage.branch, dryRun: options.dryRun, force: options.force, reporter });
14
- if (options.json || "plan" in report) {
15
- console.log(JSON.stringify(report, null, 2));
16
- return;
14
+ const sourcePath = options.source ?? process.cwd();
15
+ // A dry run only prints a plan, so there is no deploy transcript worth keeping.
16
+ const deployLog = options.dryRun ? null : openDeployLog({ config, sourcePath, stageName });
17
+ if (deployLog) {
18
+ reporter.attachLogStream(deployLog.stream);
19
+ // Emitted through the reporter so it records its own path as the log's first
20
+ // line and stays off stdout in `--json` mode.
21
+ reporter.line(`Logging deploy output to ${deployLog.path}`);
22
+ }
23
+ try {
24
+ const report = await deploy({ transport, stage: resolvedStage, sourcePath, revision: options.revision, branch: options.branch ?? stage.branch, dryRun: options.dryRun, force: options.force, reporter });
25
+ if (options.json || "plan" in report) {
26
+ console.log(JSON.stringify(report, null, 2));
27
+ return;
28
+ }
29
+ printSummary(/** @type {import('#types').DeployReport} */ (report), deployLog?.path);
30
+ }
31
+ catch (error) {
32
+ if (deployLog)
33
+ deployLog.stream.write(`\nDeploy failed: ${ /** @type {Error} */(error).message}\n`);
34
+ throw error;
35
+ }
36
+ finally {
37
+ if (deployLog)
38
+ await deployLog.close();
17
39
  }
18
- printSummary(/** @type {import('#types').DeployReport} */ (report));
19
40
  }
20
41
  /**
21
42
  * Prints a concise Capistrano-style final summary of a successful deploy.
22
43
  *
23
44
  * @param {import('#types').DeployReport} report
45
+ * @param {string} [logPath] Path of the persistent per-deploy log, when written.
24
46
  * @returns {void}
25
47
  */
26
- function printSummary(report) {
48
+ function printSummary(report, logPath) {
27
49
  const seconds = report.durationMs === undefined ? undefined : (report.durationMs / 1000).toFixed(1);
28
50
  console.log(`✔ Deployed ${report.application}/${report.stage} revision ${report.revision} as release ${report.releaseId}${seconds === undefined ? "" : ` in ${seconds}s`}`);
29
51
  if (report.previousRelease)
@@ -31,5 +53,7 @@ function printSummary(report) {
31
53
  console.log(` Health checks: ${report.healthChecks ?? "n/a"}`);
32
54
  const removed = report.cleanupRemoved ?? [];
33
55
  console.log(` Cleaned up: ${removed.length} old release${removed.length === 1 ? "" : "s"}`);
56
+ if (logPath)
57
+ console.log(` Deploy log: ${logPath}`);
34
58
  }
35
59
  //# sourceMappingURL=deploy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../../src/commands/deploy.js"],"names":[],"mappings":"AAAA,YAAY;AACZ,OAAO,EAAC,cAAc,IAAI,qBAAqB,EAAC,MAAM,cAAc,CAAA;AACpE,OAAO,EAAC,MAAM,EAAC,MAAM,0BAA0B,CAAA;AAC/C,OAAO,EAAC,aAAa,EAAE,YAAY,EAAC,MAAM,qBAAqB,CAAA;AAE/D;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,EAAC,SAAS,EAAE,OAAO,EAAE,cAAc,GAAG,qBAAqB,EAAC;IAC9F,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAA;IAChE,MAAM,EAAC,KAAK,EAAE,SAAS,EAAC,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,SAAS,EAAE,EAAC,QAAQ,EAAC,CAAC,CAAA;IAC/E,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAC,GAAG,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAC,CAAC,CAAC,CAAC,KAAK,CAAA;IACnG,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,EAAC,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAC,CAAC,CAAA;IAEvO,IAAI,OAAO,CAAC,IAAI,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;QAC5C,OAAM;IACR,CAAC;IAED,YAAY,CAAC,4CAA4C,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;AACrE,CAAC;AAED;;;;;GAKG;AACH,SAAS,YAAY,CAAC,MAAM;IAC1B,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IACnG,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,KAAK,aAAa,MAAM,CAAC,QAAQ,eAAe,MAAM,CAAC,SAAS,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,OAAO,GAAG,EAAE,CAAC,CAAA;IAC3K,IAAI,MAAM,CAAC,eAAe;QAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB,MAAM,CAAC,eAAe,EAAE,CAAC,CAAA;IACxF,OAAO,CAAC,GAAG,CAAC,oBAAoB,MAAM,CAAC,YAAY,IAAI,KAAK,EAAE,CAAC,CAAA;IAC/D,MAAM,OAAO,GAAG,MAAM,CAAC,cAAc,IAAI,EAAE,CAAA;IAC3C,OAAO,CAAC,GAAG,CAAC,iBAAiB,OAAO,CAAC,MAAM,eAAe,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA;AAC9F,CAAC"}
1
+ {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../../src/commands/deploy.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @param {import('#types').CommandArgs} args
3
+ * @returns {Promise<void>}
4
+ */
5
+ export function tasksCommand({ stageName, options, commandContext }: import("#types").CommandArgs): Promise<void>;
6
+ /**
7
+ * @param {{stage: import('#types').StageConfig}} opts
8
+ * @returns {import('#types').TasksReport}
9
+ */
10
+ export function tasksReport({ stage }: {
11
+ stage: import("#types").StageConfig;
12
+ }): import("#types").TasksReport;
13
+ //# sourceMappingURL=tasks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../../src/commands/tasks.js"],"names":[],"mappings":"AAIA;;;GAGG;AACH,qEAHW,OAAO,QAAQ,EAAE,WAAW,GAC1B,OAAO,CAAC,IAAI,CAAC,CAuBzB;AAED;;;GAGG;AACH,uCAHW;IAAC,KAAK,EAAE,OAAO,QAAQ,EAAE,WAAW,CAAA;CAAC,GACnC,OAAO,QAAQ,EAAE,WAAW,CAexC"}
@@ -0,0 +1,79 @@
1
+ import { commandContext as defaultCommandContext } from "./context.js";
2
+ import { commandsForEntries } from "../core/task-runner.js";
3
+ import { redactText, redactEnv } from "../core/redaction.js";
4
+ /**
5
+ * @param {import('#types').CommandArgs} args
6
+ * @returns {Promise<void>}
7
+ */
8
+ export async function tasksCommand({ stageName, options, commandContext = defaultCommandContext }) {
9
+ const { stage } = await commandContext(options, stageName);
10
+ const report = tasksReport({ stage });
11
+ if (options.json) {
12
+ console.log(JSON.stringify(report, null, 2));
13
+ return;
14
+ }
15
+ console.log(`Application: ${report.application}`);
16
+ console.log(`Stage: ${report.stage}`);
17
+ console.log(`Task groups: ${report.taskGroupCount}`);
18
+ console.log(`Tasks: ${report.taskCount}`);
19
+ console.log("");
20
+ if (report.taskGroups.length === 0) {
21
+ console.log("No task groups configured.");
22
+ return;
23
+ }
24
+ for (const group of report.taskGroups) {
25
+ console.log(group.name);
26
+ for (const task of group.tasks)
27
+ console.log(` * ${task.command}${annotate(task)}`);
28
+ }
29
+ }
30
+ /**
31
+ * @param {{stage: import('#types').StageConfig}} opts
32
+ * @returns {import('#types').TasksReport}
33
+ */
34
+ export function tasksReport({ stage }) {
35
+ const taskGroups = Object.entries(stage.tasks ?? {}).map(([name, entries]) => ({
36
+ name,
37
+ tasks: commandsForEntries(name, entries).map(reportEntry)
38
+ }));
39
+ const taskCount = taskGroups.reduce((total, group) => total + group.tasks.length, 0);
40
+ return {
41
+ application: stage.application,
42
+ stage: stage.stageName,
43
+ taskGroupCount: taskGroups.length,
44
+ taskCount,
45
+ taskGroups
46
+ };
47
+ }
48
+ /**
49
+ * Reduce a normalized task entry to its safe, listable fields with secrets redacted.
50
+ *
51
+ * @param {import('#types').TaskEntry} task
52
+ * @returns {import('#types').TaskListEntry}
53
+ */
54
+ function reportEntry(task) {
55
+ return {
56
+ command: redactText(task.command),
57
+ ...(task.cwd ? { cwd: task.cwd } : {}),
58
+ ...(task.env ? { env: redactEnv(task.env) } : {}),
59
+ ...(task.optional === true ? { optional: true } : {}),
60
+ ...(task.onlyIfChanged ? { onlyIfChanged: task.onlyIfChanged } : {})
61
+ };
62
+ }
63
+ /**
64
+ * @param {import('#types').TaskListEntry} task
65
+ * @returns {string}
66
+ */
67
+ function annotate(task) {
68
+ const parts = [];
69
+ if (task.cwd)
70
+ parts.push(`cwd: ${task.cwd}`);
71
+ if (task.env)
72
+ parts.push(`env: ${Object.entries(task.env).map(([key, value]) => `${key}=${value}`).join(" ")}`);
73
+ if (task.optional)
74
+ parts.push("optional");
75
+ if (task.onlyIfChanged)
76
+ parts.push(`onlyIfChanged: ${task.onlyIfChanged.join(" ")}`);
77
+ return parts.length > 0 ? ` (${parts.join(", ")})` : "";
78
+ }
79
+ //# sourceMappingURL=tasks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../../src/commands/tasks.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * @name DeployLogSettings
3
+ * @typedef {object} DeployLogSettings
4
+ * @property {boolean} enabled Whether a per-deploy log file is written.
5
+ * @property {string} dir Log directory; relative paths resolve against the deploy source.
6
+ * @property {number} keep Number of most-recent deploy logs to retain.
7
+ */
8
+ /**
9
+ * Resolves the per-deploy log settings from the loaded Rampway config, applying
10
+ * defaults. `deployLog: false` (or `{enabled: false}`) disables logging.
11
+ *
12
+ * @param {unknown} rawConfig Full loaded Rampway config object.
13
+ * @returns {DeployLogSettings}
14
+ */
15
+ export function resolveDeployLogConfig(rawConfig: unknown): DeployLogSettings;
16
+ /**
17
+ * @name DeployLog
18
+ * @typedef {object} DeployLog
19
+ * @property {string} path Absolute path of the log file being written.
20
+ * @property {import('node:fs').WriteStream} stream Append stream to tee reporter output into.
21
+ * @property {() => Promise<void>} close Flushes and closes the log stream.
22
+ */
23
+ /**
24
+ * Opens the per-deploy log for a run: resolves the directory relative to the
25
+ * deploy source, creates a timestamped file, prunes old logs to the configured
26
+ * keep count, and returns an append stream. Returns `null` when logging is
27
+ * disabled.
28
+ *
29
+ * @param {{config: unknown, sourcePath: string, stageName: string, now?: Date}} args
30
+ * @returns {DeployLog | null}
31
+ */
32
+ export function openDeployLog({ config, sourcePath, stageName, now }: {
33
+ config: unknown;
34
+ sourcePath: string;
35
+ stageName: string;
36
+ now?: Date;
37
+ }): DeployLog | null;
38
+ export type DeployLogSettings = {
39
+ /**
40
+ * Whether a per-deploy log file is written.
41
+ */
42
+ enabled: boolean;
43
+ /**
44
+ * Log directory; relative paths resolve against the deploy source.
45
+ */
46
+ dir: string;
47
+ /**
48
+ * Number of most-recent deploy logs to retain.
49
+ */
50
+ keep: number;
51
+ };
52
+ export type DeployLog = {
53
+ /**
54
+ * Absolute path of the log file being written.
55
+ */
56
+ path: string;
57
+ /**
58
+ * Append stream to tee reporter output into.
59
+ */
60
+ stream: import("node:fs").WriteStream;
61
+ /**
62
+ * Flushes and closes the log stream.
63
+ */
64
+ close: () => Promise<void>;
65
+ };
66
+ //# sourceMappingURL=deploy-log.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploy-log.d.ts","sourceRoot":"","sources":["../../../src/core/deploy-log.js"],"names":[],"mappings":"AAqBA;;;;;;GAMG;AAEH;;;;;;GAMG;AACH,kDAHW,OAAO,GACL,iBAAiB,CAiB7B;AAED;;;;;;GAMG;AAEH;;;;;;;;GAQG;AACH,sEAHW;IAAC,MAAM,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,IAAI,CAAA;CAAC,GAClE,SAAS,GAAG,IAAI,CAmB5B;;;;;aA/Da,OAAO;;;;SACP,MAAM;;;;UACN,MAAM;;;;;;UA8BN,MAAM;;;;YACN,OAAO,SAAS,EAAE,WAAW;;;;WAC7B,MAAM,OAAO,CAAC,IAAI,CAAC"}
@@ -0,0 +1,112 @@
1
+ // @ts-check
2
+ /**
3
+ * @file Persistent per-deploy log.
4
+ *
5
+ * A deploy streams every lifecycle step and command chunk through the
6
+ * {@link import('./reporter.js').Reporter}. This module tees that transcript to
7
+ * a timestamped file on the machine running the deploy (relative to the deploy
8
+ * source, or a configurable directory), keeping only the most recent N logs, so
9
+ * a full record of each deploy survives for later inspection — the kind of
10
+ * per-deploy log Capistrano keeps built in.
11
+ */
12
+ import fs from "node:fs";
13
+ import path from "node:path";
14
+ import { optionalBoolean, optionalNonBlankString, optionalPositiveInteger } from "typanic";
15
+ import { releaseIdFromDate } from "./release-id.js";
16
+ const DEFAULT_DIR = "log/deploys";
17
+ const DEFAULT_KEEP = 20;
18
+ /**
19
+ * @name DeployLogSettings
20
+ * @typedef {object} DeployLogSettings
21
+ * @property {boolean} enabled Whether a per-deploy log file is written.
22
+ * @property {string} dir Log directory; relative paths resolve against the deploy source.
23
+ * @property {number} keep Number of most-recent deploy logs to retain.
24
+ */
25
+ /**
26
+ * Resolves the per-deploy log settings from the loaded Rampway config, applying
27
+ * defaults. `deployLog: false` (or `{enabled: false}`) disables logging.
28
+ *
29
+ * @param {unknown} rawConfig Full loaded Rampway config object.
30
+ * @returns {DeployLogSettings}
31
+ */
32
+ export function resolveDeployLogConfig(rawConfig) {
33
+ const config = rawConfig && typeof rawConfig === "object" ? /** @type {Record<string, unknown>} */ (rawConfig) : {};
34
+ const raw = config.deployLog;
35
+ if (raw === undefined || raw === null)
36
+ return { enabled: true, dir: DEFAULT_DIR, keep: DEFAULT_KEEP };
37
+ if (typeof raw === "boolean")
38
+ return { enabled: raw, dir: DEFAULT_DIR, keep: DEFAULT_KEEP };
39
+ if (typeof raw !== "object" || Array.isArray(raw))
40
+ throw new Error(`deployLog must be a boolean or an object, got ${JSON.stringify(raw)}`);
41
+ // Typanic throws loudly on a malformed field (e.g. `enabled: "false"`) rather
42
+ // than silently coercing it; each accessor returns null when the field is absent.
43
+ const settings = /** @type {Record<string, unknown>} */ (raw);
44
+ return {
45
+ enabled: optionalBoolean(settings.enabled, "deployLog.enabled") ?? true,
46
+ dir: optionalNonBlankString(settings.dir, "deployLog.dir") ?? DEFAULT_DIR,
47
+ keep: optionalPositiveInteger(settings.keep, "deployLog.keep") ?? DEFAULT_KEEP
48
+ };
49
+ }
50
+ /**
51
+ * @name DeployLog
52
+ * @typedef {object} DeployLog
53
+ * @property {string} path Absolute path of the log file being written.
54
+ * @property {import('node:fs').WriteStream} stream Append stream to tee reporter output into.
55
+ * @property {() => Promise<void>} close Flushes and closes the log stream.
56
+ */
57
+ /**
58
+ * Opens the per-deploy log for a run: resolves the directory relative to the
59
+ * deploy source, creates a timestamped file, prunes old logs to the configured
60
+ * keep count, and returns an append stream. Returns `null` when logging is
61
+ * disabled.
62
+ *
63
+ * @param {{config: unknown, sourcePath: string, stageName: string, now?: Date}} args
64
+ * @returns {DeployLog | null}
65
+ */
66
+ export function openDeployLog({ config, sourcePath, stageName, now = new Date() }) {
67
+ const { enabled, dir, keep } = resolveDeployLogConfig(config);
68
+ if (!enabled)
69
+ return null;
70
+ const logDir = path.isAbsolute(dir) ? dir : path.join(sourcePath, dir);
71
+ fs.mkdirSync(logDir, { recursive: true });
72
+ const logPath = path.join(logDir, `${releaseIdFromDate(now)}-${sanitizeStageForFilename(stageName)}.log`);
73
+ // Prune existing logs before opening this run's file, reserving one slot so the
74
+ // total (old logs + this deploy) settles at `keep`. `createWriteStream` creates
75
+ // the file lazily, so pruning here also avoids racing its on-disk appearance.
76
+ pruneOldDeployLogs(logDir, Math.max(0, keep - 1));
77
+ const stream = fs.createWriteStream(logPath, { flags: "a" });
78
+ return { path: logPath, stream, close: () => closeStream(stream) };
79
+ }
80
+ /**
81
+ * @param {string} stageName
82
+ * @returns {string}
83
+ */
84
+ function sanitizeStageForFilename(stageName) {
85
+ return stageName.replace(/[^a-zA-Z0-9._-]/g, "_");
86
+ }
87
+ /**
88
+ * Removes all but the newest `keep` Rampway deploy logs. Only files matching the
89
+ * `<timestamp>-<stage>.log` naming are considered, so unrelated files in the
90
+ * directory are never touched.
91
+ *
92
+ * @param {string} logDir
93
+ * @param {number} keep
94
+ * @returns {void}
95
+ */
96
+ function pruneOldDeployLogs(logDir, keep) {
97
+ const entries = fs.readdirSync(logDir).filter(name => /^\d{14}-.*\.log$/.test(name)).sort();
98
+ const removable = entries.slice(0, Math.max(0, entries.length - keep));
99
+ for (const name of removable)
100
+ fs.rmSync(path.join(logDir, name), { force: true });
101
+ }
102
+ /**
103
+ * @param {import('node:fs').WriteStream} stream
104
+ * @returns {Promise<void>}
105
+ */
106
+ function closeStream(stream) {
107
+ return new Promise((resolve, reject) => {
108
+ stream.on("error", reject);
109
+ stream.end(() => resolve());
110
+ });
111
+ }
112
+ //# sourceMappingURL=deploy-log.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploy-log.js","sourceRoot":"","sources":["../../../src/core/deploy-log.js"],"names":[],"mappings":"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"}
@@ -24,8 +24,11 @@ export function redactText(text: string): string;
24
24
  * possibly-incomplete sensitive tail.
25
25
  *
26
26
  * Secret assignments (`KEY=value`) and credential URLs
27
- * (`https://user:pass@host`) are always terminated by whitespace and contain no
28
- * internal whitespace, so any token preceding the final whitespace in the
27
+ * (`https://user:pass@host`) are terminated by whitespace. Unquoted secret
28
+ * values contain no internal whitespace; quoted secret values (single- or
29
+ * double-quoted) may contain whitespace within the quotes, but the streaming
30
+ * redactor does not handle those — it relies on `redactText` for complete
31
+ * command strings, so any token preceding the final whitespace in the
29
32
  * buffer is complete and safe to redact and emit. The unterminated trailing
30
33
  * token is held back until more input (or {@link StreamingRedactor#flush})
31
34
  * arrives. Notably `https://user:pass` without a terminating `@host` is not a
@@ -1 +1 @@
1
- {"version":3,"file":"redaction.d.ts","sourceRoot":"","sources":["../../../src/core/redaction.js"],"names":[],"mappings":"AAMA;;;GAGG;AACH,iCAHW,OAAO,GACL,OAAO,CAInB;AAED;;;;GAIG;AACH,iCAJW,OAAO,SACP,OAAO,GACL,MAAM,CAKlB;AAED;;;GAGG;AACH,gCAHW,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACpB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAOlC;AAED;;;GAGG;AACH,iCAHW,MAAM,GACJ,MAAM,CAIlB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH;IACE;;OAEG;IACH,0BAFW;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAC,EAS5B;IANC,qBAAqB;IACrB,SADW,MAAM,CACA;IACjB,qBAAqB;IACrB,SADW,MAAM,CACK;IACtB,sBAAsB;IACtB,uBADW,OAAO,CACgB;IAGpC;;;;;OAKG;IACH,YAHW,MAAM,GACJ,MAAM,CA6BlB;IAED;;;;;OAKG;IACH,SAFa,MAAM,CAMlB;CACF"}
1
+ {"version":3,"file":"redaction.d.ts","sourceRoot":"","sources":["../../../src/core/redaction.js"],"names":[],"mappings":"AAMA;;;GAGG;AACH,iCAHW,OAAO,GACL,OAAO,CAInB;AAED;;;;GAIG;AACH,iCAJW,OAAO,SACP,OAAO,GACL,MAAM,CAKlB;AAED;;;GAGG;AACH,gCAHW,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACpB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAOlC;AAED;;;GAGG;AACH,iCAHW,MAAM,GACJ,MAAM,CAIlB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH;IACE;;OAEG;IACH,0BAFW;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAC,EAS5B;IANC,qBAAqB;IACrB,SADW,MAAM,CACA;IACjB,qBAAqB;IACrB,SADW,MAAM,CACK;IACtB,sBAAsB;IACtB,uBADW,OAAO,CACgB;IAGpC;;;;;OAKG;IACH,YAHW,MAAM,GACJ,MAAM,CA6BlB;IAED;;;;;OAKG;IACH,SAFa,MAAM,CAMlB;CACF"}
@@ -1,6 +1,6 @@
1
1
  // @ts-check
2
2
  const SECRET_KEY_PATTERN = /(token|password|secret|key|cookie|authorization)/iu;
3
- const SECRET_ASSIGNMENT_PATTERN = /((?:token|password|secret|key|cookie|authorization)[A-Z0-9_\-]*\s*=\s*)([^\s]+)/giu;
3
+ const SECRET_ASSIGNMENT_PATTERN = /((?:token|password|secret|key|cookie|authorization)[A-Z0-9_\-]*\s*=\s*)('[^']*'|"[^"]*"|[^\s]+)/giu;
4
4
  const HTTPS_USERINFO_PATTERN = /(https?:\/\/)[^/@\s]+@/giu;
5
5
  /**
6
6
  * @param {unknown} key
@@ -42,8 +42,11 @@ export function redactText(text) {
42
42
  * possibly-incomplete sensitive tail.
43
43
  *
44
44
  * Secret assignments (`KEY=value`) and credential URLs
45
- * (`https://user:pass@host`) are always terminated by whitespace and contain no
46
- * internal whitespace, so any token preceding the final whitespace in the
45
+ * (`https://user:pass@host`) are terminated by whitespace. Unquoted secret
46
+ * values contain no internal whitespace; quoted secret values (single- or
47
+ * double-quoted) may contain whitespace within the quotes, but the streaming
48
+ * redactor does not handle those — it relies on `redactText` for complete
49
+ * command strings, so any token preceding the final whitespace in the
47
50
  * buffer is complete and safe to redact and emit. The unterminated trailing
48
51
  * token is held back until more input (or {@link StreamingRedactor#flush})
49
52
  * arrives. Notably `https://user:pass` without a terminating `@host` is not a
@@ -1 +1 @@
1
- {"version":3,"file":"redaction.js","sourceRoot":"","sources":["../../../src/core/redaction.js"],"names":[],"mappings":"AAAA,YAAY;AAEZ,MAAM,kBAAkB,GAAG,oDAAoD,CAAA;AAC/E,MAAM,yBAAyB,GAAG,oFAAoF,CAAA;AACtH,MAAM,sBAAsB,GAAG,2BAA2B,CAAA;AAE1D;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,GAAG;IAC7B,OAAO,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;AAC7C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,GAAG,EAAE,KAAK;IACpC,IAAI,WAAW,CAAC,GAAG,CAAC;QAAE,OAAO,YAAY,CAAA;IACzC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;AACtB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,GAAG,GAAG,EAAE;IAChC,qCAAqC;IACrC,MAAM,QAAQ,GAAG,EAAE,CAAA;IACnB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IACvF,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,IAAI;IAC7B,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,yBAAyB,EAAE,cAAc,CAAC,CAAC,OAAO,CAAC,sBAAsB,EAAE,eAAe,CAAC,CAAA;AACzH,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,OAAO,iBAAiB;IAC5B;;OAEG;IACH,YAAY,EAAC,OAAO,GAAG,IAAI,EAAC,GAAG,EAAE;QAC/B,qBAAqB;QACrB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAA;QACjB,qBAAqB;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,sBAAsB;QACtB,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAA;IACpC,CAAC;IAED;;;;;OAKG;IACH,IAAI,CAAC,KAAK;QACR,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC/B,MAAM,eAAe,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAA;YACnD,IAAI,eAAe,GAAG,CAAC;gBAAE,OAAO,EAAE,CAAA;YAClC,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAA;YAClC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;QACtC,CAAC;QAED,IAAI,CAAC,OAAO,IAAI,KAAK,CAAA;QACrB,IAAI,GAAG,GAAG,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC/C,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YACpC,MAAM,YAAY,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAA;YACjD,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;gBAC1C,IAAI,CAAC,OAAO,GAAG,EAAE,CAAA;gBACjB,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAA;gBACjC,OAAO,OAAO,GAAG,YAAY,GAAG,YAAY,CAAA;YAC9C,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAA;YACrD,GAAG,GAAG,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAA;QACvE,CAAC;QACD,IAAI,GAAG,IAAI,CAAC;YAAE,OAAO,EAAE,CAAA;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;QACvC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACtC,OAAO,UAAU,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;IAED;;;;;OAKG;IACH,KAAK;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAA;QACzB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAA;QACjB,OAAO,UAAU,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;CACF;AAED;;;GAGG;AACH,SAAS,mBAAmB,CAAC,IAAI;IAC/B,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACzD,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAAE,OAAO,KAAK,CAAA;IAC3C,CAAC;IACD,OAAO,CAAC,CAAC,CAAA;AACX,CAAC;AAED;;;GAGG;AACH,SAAS,oBAAoB,CAAC,IAAI;IAChC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAAE,OAAO,KAAK,CAAA;IAC3C,CAAC;IACD,OAAO,CAAC,CAAC,CAAA;AACX,CAAC;AAED;;;GAGG;AACH,SAAS,sBAAsB,CAAC,KAAK;IACnC,OAAO,KAAK,CAAC,KAAK,CAAC,0EAA0E,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAA;AAC7G,CAAC"}
1
+ {"version":3,"file":"redaction.js","sourceRoot":"","sources":["../../../src/core/redaction.js"],"names":[],"mappings":"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"}
@@ -26,13 +26,14 @@ export function jsonReporter(): Reporter;
26
26
  */
27
27
  export class Reporter {
28
28
  /**
29
- * @param {{lifecycle?: boolean, streamCommands?: boolean, out?: import('node:stream').Writable, err?: import('node:stream').Writable}} [opts]
29
+ * @param {{lifecycle?: boolean, streamCommands?: boolean, out?: import('node:stream').Writable, err?: import('node:stream').Writable, logStream?: import('node:stream').Writable|null}} [opts]
30
30
  */
31
- constructor({ lifecycle, streamCommands, out, err }?: {
31
+ constructor({ lifecycle, streamCommands, out, err, logStream }?: {
32
32
  lifecycle?: boolean;
33
33
  streamCommands?: boolean;
34
34
  out?: import("node:stream").Writable;
35
35
  err?: import("node:stream").Writable;
36
+ logStream?: import("node:stream").Writable | null;
36
37
  });
37
38
  /** @type {boolean} */
38
39
  lifecycleEnabled: boolean;
@@ -42,26 +43,56 @@ export class Reporter {
42
43
  out: import("node:stream").Writable;
43
44
  /** @type {import('node:stream').Writable} */
44
45
  err: import("node:stream").Writable;
46
+ /**
47
+ * Optional persistent per-deploy log. When attached, every lifecycle line
48
+ * and streamed command chunk is tee'd here in addition to the live
49
+ * stdout/stderr contract, so a full deploy transcript survives on disk.
50
+ *
51
+ * @type {import('node:stream').Writable|null}
52
+ */
53
+ logStream: import("node:stream").Writable | null;
45
54
  /**
46
55
  * Whether live command stdout/stderr should be streamed as it arrives.
47
56
  *
48
57
  * @returns {boolean}
49
58
  */
50
59
  get streamsCommands(): boolean;
60
+ /**
61
+ * Whether the transport should feed redacted command output to the reporter at
62
+ * all — either to live-stream it or to persist it to the deploy log. This is
63
+ * decoupled from {@link streamsCommands} so a `--json` deploy still records a
64
+ * full command transcript in its log even though nothing is streamed live.
65
+ *
66
+ * @returns {boolean}
67
+ */
68
+ get capturesCommands(): boolean;
69
+ /**
70
+ * Attaches a persistent per-deploy log stream after construction. The deploy
71
+ * command builds the reporter before the config (and therefore the log path)
72
+ * is known, so the log is tee'd in once resolved.
73
+ *
74
+ * @param {import('node:stream').Writable|null} stream
75
+ * @returns {void}
76
+ */
77
+ attachLogStream(stream: import("node:stream").Writable | null): void;
51
78
  /**
52
79
  * Prints a Capistrano-style lifecycle line in human mode; no-op otherwise.
80
+ * The line is always tee'd to the persistent log (when attached) so the log
81
+ * stays readable even for a `--json` automation deploy.
53
82
  *
54
83
  * @param {string} message
55
84
  * @returns {void}
56
85
  */
57
86
  line(message: string): void;
58
87
  /**
59
- * Writes already-redacted streamed command output to the error stream. The
60
- * error stream is used so human deploy stdout stays reserved for lifecycle
61
- * progress and the final summary, and JSON stdout stays clean.
88
+ * Records already-redacted command output. It is always tee'd to the deploy
89
+ * log when one is attached, so the log is a full transcript regardless of
90
+ * output mode. It is streamed live to the error stream only when
91
+ * {@link streamsCommands} is set (human mode) — the error stream keeps human
92
+ * stdout reserved for lifecycle progress and JSON stdout clean.
62
93
  *
63
94
  * @param {string} text
64
- * @returns {boolean}
95
+ * @returns {boolean} Backpressure signal: `false` asks the caller to pause. Only the live stream can request a pause; log-only writes never do.
65
96
  */
66
97
  writeCommandOutput(text: string): boolean;
67
98
  }
@@ -1 +1 @@
1
- {"version":3,"file":"reporter.d.ts","sourceRoot":"","sources":["../../../src/core/reporter.js"],"names":[],"mappings":"AA+DA;;;;GAIG;AACH,iCAFa,QAAQ,CAIpB;AAED;;;;;GAKG;AACH,gCAFa,QAAQ,CAIpB;AA9ED;;;;;;;;GAQG;AAEH;;;GAGG;AACH;IACE;;OAEG;IACH,sDAFW;QAAC,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAC;QAAC,GAAG,CAAC,EAAE,OAAO,aAAa,EAAE,QAAQ,CAAC;QAAC,GAAG,CAAC,EAAE,OAAO,aAAa,EAAE,QAAQ,CAAA;KAAC,EAWrI;IARC,sBAAsB;IACtB,kBADW,OAAO,CACe;IACjC,sBAAsB;IACtB,gBADW,OAAO,CACkB;IACpC,6CAA6C;IAC7C,KADW,OAAO,aAAa,EAAE,QAAQ,CAC3B;IACd,6CAA6C;IAC7C,KADW,OAAO,aAAa,EAAE,QAAQ,CAC3B;IAGhB;;;;OAIG;IACH,uBAFa,OAAO,CAInB;IAED;;;;;OAKG;IACH,cAHW,MAAM,GACJ,IAAI,CAIhB;IAED;;;;;;;OAOG;IACH,yBAHW,MAAM,GACJ,OAAO,CAInB;CACF"}
1
+ {"version":3,"file":"reporter.d.ts","sourceRoot":"","sources":["../../../src/core/reporter.js"],"names":[],"mappings":"AAsGA;;;;GAIG;AACH,iCAFa,QAAQ,CAIpB;AAED;;;;;GAKG;AACH,gCAFa,QAAQ,CAIpB;AArHD;;;;;;;;GAQG;AAEH;;;GAGG;AACH;IACE;;OAEG;IACH,iEAFW;QAAC,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAC;QAAC,GAAG,CAAC,EAAE,OAAO,aAAa,EAAE,QAAQ,CAAC;QAAC,GAAG,CAAC,EAAE,OAAO,aAAa,EAAE,QAAQ,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,aAAa,EAAE,QAAQ,GAAC,IAAI,CAAA;KAAC,EAmBtL;IAhBC,sBAAsB;IACtB,kBADW,OAAO,CACe;IACjC,sBAAsB;IACtB,gBADW,OAAO,CACkB;IACpC,6CAA6C;IAC7C,KADW,OAAO,aAAa,EAAE,QAAQ,CAC3B;IACd,6CAA6C;IAC7C,KADW,OAAO,aAAa,EAAE,QAAQ,CAC3B;IACd;;;;;;OAMG;IACH,WAFU,OAAO,aAAa,EAAE,QAAQ,GAAC,IAAI,CAEnB;IAG5B;;;;OAIG;IACH,uBAFa,OAAO,CAInB;IAED;;;;;;;OAOG;IACH,wBAFa,OAAO,CAInB;IAED;;;;;;;OAOG;IACH,wBAHW,OAAO,aAAa,EAAE,QAAQ,GAAC,IAAI,GACjC,IAAI,CAIhB;IAED;;;;;;;OAOG;IACH,cAHW,MAAM,GACJ,IAAI,CAKhB;IAED;;;;;;;;;OASG;IACH,yBAHW,MAAM,GACJ,OAAO,CAMnB;CACF"}
@@ -14,9 +14,9 @@
14
14
  */
15
15
  export class Reporter {
16
16
  /**
17
- * @param {{lifecycle?: boolean, streamCommands?: boolean, out?: import('node:stream').Writable, err?: import('node:stream').Writable}} [opts]
17
+ * @param {{lifecycle?: boolean, streamCommands?: boolean, out?: import('node:stream').Writable, err?: import('node:stream').Writable, logStream?: import('node:stream').Writable|null}} [opts]
18
18
  */
19
- constructor({ lifecycle = true, streamCommands = true, out = process.stdout, err = process.stderr } = {}) {
19
+ constructor({ lifecycle = true, streamCommands = true, out = process.stdout, err = process.stderr, logStream = null } = {}) {
20
20
  /** @type {boolean} */
21
21
  this.lifecycleEnabled = lifecycle;
22
22
  /** @type {boolean} */
@@ -25,6 +25,14 @@ export class Reporter {
25
25
  this.out = out;
26
26
  /** @type {import('node:stream').Writable} */
27
27
  this.err = err;
28
+ /**
29
+ * Optional persistent per-deploy log. When attached, every lifecycle line
30
+ * and streamed command chunk is tee'd here in addition to the live
31
+ * stdout/stderr contract, so a full deploy transcript survives on disk.
32
+ *
33
+ * @type {import('node:stream').Writable|null}
34
+ */
35
+ this.logStream = logStream;
28
36
  }
29
37
  /**
30
38
  * Whether live command stdout/stderr should be streamed as it arrives.
@@ -34,8 +42,32 @@ export class Reporter {
34
42
  get streamsCommands() {
35
43
  return this.streamCommands;
36
44
  }
45
+ /**
46
+ * Whether the transport should feed redacted command output to the reporter at
47
+ * all — either to live-stream it or to persist it to the deploy log. This is
48
+ * decoupled from {@link streamsCommands} so a `--json` deploy still records a
49
+ * full command transcript in its log even though nothing is streamed live.
50
+ *
51
+ * @returns {boolean}
52
+ */
53
+ get capturesCommands() {
54
+ return this.streamCommands || this.logStream !== null;
55
+ }
56
+ /**
57
+ * Attaches a persistent per-deploy log stream after construction. The deploy
58
+ * command builds the reporter before the config (and therefore the log path)
59
+ * is known, so the log is tee'd in once resolved.
60
+ *
61
+ * @param {import('node:stream').Writable|null} stream
62
+ * @returns {void}
63
+ */
64
+ attachLogStream(stream) {
65
+ this.logStream = stream;
66
+ }
37
67
  /**
38
68
  * Prints a Capistrano-style lifecycle line in human mode; no-op otherwise.
69
+ * The line is always tee'd to the persistent log (when attached) so the log
70
+ * stays readable even for a `--json` automation deploy.
39
71
  *
40
72
  * @param {string} message
41
73
  * @returns {void}
@@ -43,16 +75,24 @@ export class Reporter {
43
75
  line(message) {
44
76
  if (this.lifecycleEnabled)
45
77
  this.out.write(`${message}\n`);
78
+ if (this.logStream)
79
+ this.logStream.write(`${message}\n`);
46
80
  }
47
81
  /**
48
- * Writes already-redacted streamed command output to the error stream. The
49
- * error stream is used so human deploy stdout stays reserved for lifecycle
50
- * progress and the final summary, and JSON stdout stays clean.
82
+ * Records already-redacted command output. It is always tee'd to the deploy
83
+ * log when one is attached, so the log is a full transcript regardless of
84
+ * output mode. It is streamed live to the error stream only when
85
+ * {@link streamsCommands} is set (human mode) — the error stream keeps human
86
+ * stdout reserved for lifecycle progress and JSON stdout clean.
51
87
  *
52
88
  * @param {string} text
53
- * @returns {boolean}
89
+ * @returns {boolean} Backpressure signal: `false` asks the caller to pause. Only the live stream can request a pause; log-only writes never do.
54
90
  */
55
91
  writeCommandOutput(text) {
92
+ if (this.logStream)
93
+ this.logStream.write(text);
94
+ if (!this.streamCommands)
95
+ return true;
56
96
  return this.err.write(text);
57
97
  }
58
98
  }
@@ -1 +1 @@
1
- {"version":3,"file":"reporter.js","sourceRoot":"","sources":["../../../src/core/reporter.js"],"names":[],"mappings":"AAAA,YAAY;AAEZ;;;;;;;;GAQG;AAEH;;;GAGG;AACH,MAAM,OAAO,QAAQ;IACnB;;OAEG;IACH,YAAY,EAAC,SAAS,GAAG,IAAI,EAAE,cAAc,GAAG,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,EAAC,GAAG,EAAE;QACpG,sBAAsB;QACtB,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAA;QACjC,sBAAsB;QACtB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;QACpC,6CAA6C;QAC7C,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,6CAA6C;QAC7C,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;IAChB,CAAC;IAED;;;;OAIG;IACH,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,cAAc,CAAA;IAC5B,CAAC;IAED;;;;;OAKG;IACH,IAAI,CAAC,OAAO;QACV,IAAI,IAAI,CAAC,gBAAgB;YAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,OAAO,IAAI,CAAC,CAAA;IAC3D,CAAC;IAED;;;;;;;OAOG;IACH,kBAAkB,CAAC,IAAI;QACrB,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAC7B,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,IAAI,QAAQ,CAAC,EAAC,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAC,CAAC,CAAA;AAC9D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO,IAAI,QAAQ,CAAC,EAAC,SAAS,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAC,CAAC,CAAA;AAChE,CAAC"}
1
+ {"version":3,"file":"reporter.js","sourceRoot":"","sources":["../../../src/core/reporter.js"],"names":[],"mappings":"AAAA,YAAY;AAEZ;;;;;;;;GAQG;AAEH;;;GAGG;AACH,MAAM,OAAO,QAAQ;IACnB;;OAEG;IACH,YAAY,EAAC,SAAS,GAAG,IAAI,EAAE,cAAc,GAAG,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,EAAC,GAAG,EAAE;QACtH,sBAAsB;QACtB,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAA;QACjC,sBAAsB;QACtB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;QACpC,6CAA6C;QAC7C,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,6CAA6C;QAC7C,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd;;;;;;WAMG;QACH,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC5B,CAAC;IAED;;;;OAIG;IACH,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,cAAc,CAAA;IAC5B,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,CAAA;IACvD,CAAC;IAED;;;;;;;OAOG;IACH,eAAe,CAAC,MAAM;QACpB,IAAI,CAAC,SAAS,GAAG,MAAM,CAAA;IACzB,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,CAAC,OAAO;QACV,IAAI,IAAI,CAAC,gBAAgB;YAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,OAAO,IAAI,CAAC,CAAA;QACzD,IAAI,IAAI,CAAC,SAAS;YAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,OAAO,IAAI,CAAC,CAAA;IAC1D,CAAC;IAED;;;;;;;;;OASG;IACH,kBAAkB,CAAC,IAAI;QACrB,IAAI,IAAI,CAAC,SAAS;YAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC9C,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE,OAAO,IAAI,CAAA;QACrC,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAC7B,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,IAAI,QAAQ,CAAC,EAAC,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAC,CAAC,CAAA;AAC9D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO,IAAI,QAAQ,CAAC,EAAC,SAAS,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAC,CAAC,CAAA;AAChE,CAAC"}
@@ -111,7 +111,7 @@ export class LocalTransport {
111
111
  * @returns {Promise<import('#types').SpawnResult>}
112
112
  */
113
113
  async run(command, { cwd, env = {} } = {}) {
114
- const shouldStream = this.reporter.streamsCommands;
114
+ const shouldCapture = this.reporter.capturesCommands;
115
115
  return await new Promise((resolve, reject) => {
116
116
  const child = spawn(command, { cwd, env: { ...process.env, ...env }, shell: true });
117
117
  let output = "";
@@ -119,7 +119,7 @@ export class LocalTransport {
119
119
  const emit = /** @param {Buffer|string} chunk */ /** @param {Buffer|string} chunk */ chunk => {
120
120
  const text = chunk.toString();
121
121
  output += text;
122
- if (!shouldStream)
122
+ if (!shouldCapture)
123
123
  return;
124
124
  const safe = redactor.push(text);
125
125
  if (safe && !this.reporter.writeCommandOutput(safe)) {
@@ -132,7 +132,7 @@ export class LocalTransport {
132
132
  }
133
133
  };
134
134
  const flush = () => {
135
- if (!shouldStream)
135
+ if (!shouldCapture)
136
136
  return;
137
137
  const rest = redactor.flush();
138
138
  if (rest)
@@ -1 +1 @@
1
- {"version":3,"file":"local-transport.js","sourceRoot":"","sources":["../../../src/transports/local-transport.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local-transport.js","sourceRoot":"","sources":["../../../src/transports/local-transport.js"],"names":[],"mappings":"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"}
@@ -223,7 +223,7 @@ export class SshTransport {
223
223
  async runCommandPlan(plan, { input, stream = true } = {}) {
224
224
  if (plan.pipeTo)
225
225
  return await this.runPipedCommandPlan(plan, { stream });
226
- const shouldStream = stream && this.reporter.streamsCommands;
226
+ const shouldCapture = stream && this.reporter.capturesCommands;
227
227
  return await new Promise((resolve, reject) => {
228
228
  const child = spawn(plan.command, plan.args);
229
229
  let output = "";
@@ -233,7 +233,7 @@ export class SshTransport {
233
233
  const emit = /** @param {Buffer|string} chunk */ /** @param {Buffer|string} chunk */ chunk => {
234
234
  const text = chunk.toString();
235
235
  output += text;
236
- if (!shouldStream)
236
+ if (!shouldCapture)
237
237
  return;
238
238
  const safe = redactor.push(text);
239
239
  if (safe && !this.reporter.writeCommandOutput(safe)) {
@@ -246,7 +246,7 @@ export class SshTransport {
246
246
  }
247
247
  };
248
248
  const flush = () => {
249
- if (!shouldStream)
249
+ if (!shouldCapture)
250
250
  return;
251
251
  const rest = redactor.flush();
252
252
  if (rest)
@@ -279,14 +279,14 @@ export class SshTransport {
279
279
  */
280
280
  async runPipedCommandPlan(plan, { stream = true } = {}) {
281
281
  const pipeTo = /** @type {import('#types').CommandPlan} */ (plan.pipeTo);
282
- const shouldStream = stream && this.reporter.streamsCommands;
282
+ const shouldCapture = stream && this.reporter.capturesCommands;
283
283
  return await new Promise((resolve, reject) => {
284
284
  const source = spawn(plan.command, plan.args);
285
285
  const target = spawn(pipeTo.command, pipeTo.args);
286
286
  let output = "";
287
287
  const redactor = new StreamingRedactor();
288
288
  const flushOutput = () => {
289
- if (!shouldStream)
289
+ if (!shouldCapture)
290
290
  return;
291
291
  const rest = redactor.flush();
292
292
  if (rest)
@@ -303,7 +303,7 @@ export class SshTransport {
303
303
  const append = /** @param {Buffer|string} chunk */ /** @param {Buffer|string} chunk */ chunk => {
304
304
  const text = chunk.toString();
305
305
  output += text;
306
- if (!shouldStream)
306
+ if (!shouldCapture)
307
307
  return;
308
308
  const safe = redactor.push(text);
309
309
  if (safe && !this.reporter.writeCommandOutput(safe)) {
@@ -1 +1 @@
1
- {"version":3,"file":"ssh-transport.js","sourceRoot":"","sources":["../../../src/transports/ssh-transport.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ssh-transport.js","sourceRoot":"","sources":["../../../src/transports/ssh-transport.js"],"names":[],"mappings":"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"}
@@ -115,6 +115,23 @@ export type ReleasesReport = {
115
115
  current: string;
116
116
  };
117
117
  };
118
+ export type TaskListEntry = {
119
+ command: string;
120
+ cwd?: string | undefined;
121
+ env?: Record<string, string> | undefined;
122
+ optional?: boolean | undefined;
123
+ onlyIfChanged?: string[] | undefined;
124
+ };
125
+ export type TasksReport = {
126
+ application: string;
127
+ stage: string;
128
+ taskGroupCount: number;
129
+ taskCount: number;
130
+ taskGroups: Array<{
131
+ name: string;
132
+ tasks: TaskListEntry[];
133
+ }>;
134
+ };
118
135
  export type StatusReport = {
119
136
  application: string;
120
137
  stage: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.js"],"names":[],"mappings":";UAYc,OAAO,GAAC,KAAK;;;;;;;;;UAab,MAAM;cACN,OAAO;;;;;;;;UAgBP,MAAM;;;;;;;;;;;;aAgBN,MAAM;;;;;;;UAWN,MAAM;aACN,MAAM;;YAEN,QAAQ,GAAC,QAAQ,GAAC,SAAS;;;;;iBAS3B,MAAM;eACN,MAAM;;YAEN,MAAM;;cAEN,MAAM;cACN,YAAY,GAAC,YAAY,GAAC,gBAAgB;eAC1C,eAAe;;cACF,MAAM;eAAS,MAAM;eAAS,MAAM;gBAAU,MAAM,EAAE;;kBACnE,MAAM;iBACN,WAAW,EAAE;gBACb,WAAW,EAAE;WACb,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC;WAC3B,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC;kBAC3B,gBAAgB,EAAE;aAClB,aAAa;;;cAOb,MAAM;kBACN,MAAM;gBACN,MAAM;iBACN,MAAM;cACN,MAAM;eACN,MAAM;gBACN,MAAM;;;;WAQN,MAAM;YACN,MAAM;;YAEN,MAAM;;;iBAON,MAAM;WACN,MAAM;eACN,MAAM;cACN,MAAM;;;WAGN,MAAM;;;;;;;;iBAYN,MAAM;WACN,MAAM;eACN,MAAM;kBACN,MAAM;;WAEN,MAAM;;;iBAON,MAAM;WACN,MAAM;aACN,MAAM,GAAC,IAAI;cACX,MAAM,EAAE;kBACR,MAAM;WACN;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAC;;;iBAOnC,MAAM;WACN,MAAM;cACN,MAAM;aACN,MAAM,GAAC,IAAI;cACX,MAAM,EAAE;kBACR,MAAM;mBACN,MAAM,GAAC,SAAS;WAChB;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC;aACjE;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC;;;QAOd,OAAO;gBACP,MAAM;iBACN,MAAM;WACN,MAAM;cACN,MAAM;eACN;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC;cACd,MAAM;aACN;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC;iBACd,MAAM;gBACN,MAAM;gBACN,MAAM;kBACN,MAAM;cACN,MAAM,EAAE;;;iBAOR,MAAM;WACN,MAAM;eACN,MAAM;cACN,MAAM;YACN,MAAM;gBACN,MAAM;gBACN,MAAM;UACN,MAAM;oBACN,MAAM;;;WAON,MAAM;UACN,MAAM;SACN,MAAM;eACN,MAAM;;;;;;;;;;;;;;;;;;eA0BN,MAAM;aACN,cAAc;;;;YAQd,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC;YACrC,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC;aACxC,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC;cAClE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC;QACrC,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC;YACrC,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC;eAC3C,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC;cACpD,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC;UACrC,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;aACzC,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC;SAC3C,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAC,KAAK,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,CAAC;yBACpG,MAAM,KAAK,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,OAAO,CAAA;KAAC,GAAC,SAAS,CAAC;;;UAOxE,MAAM,MAAM,EAAE;YACd,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAC,KAAK,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,CAAC;0BACjI,SAAS,QAAQ;QAAC,WAAW,EAAE,MAAM,CAAA;KAAC,KAAK,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAC,CAAC;wBACrE,SAAS,QAAQ;QAAC,WAAW,EAAE,MAAM,CAAA;KAAC,KAAK,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAC,CAAC;2BACrE,SAAS,QAAQ;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAC,KAAK,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAC,CAAC;;;;aAQlG,MAAM;UACN,MAAM,EAAE;;;;eAQR,SAAS;WACT,WAAW;;;;;;;;;;;;;;;;;;;YA2BX,MAAM;gBACN,MAAM;;;UAON,MAAM;aACN,MAAM;gBACN,MAAM;;;;;;;;;;UAcN,MAAM;YACN,MAAM;;8BAMP,CAAC,MAAM,EAAE,aAAa,KAAK,cAAc;;aAOxC,OAAO;UACP,MAAM"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.js"],"names":[],"mappings":"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"}
@@ -8,6 +8,21 @@
8
8
  |-------|------|----------|-------------|
9
9
  | `application` | string | yes | Name of the application. Used in deploy metadata and reports. |
10
10
  | `stages` | object | yes | Map of stage names to stage configs. |
11
+ | `deployLog` | object \| boolean | no | Per-deploy log settings, or a boolean to enable/disable with defaults. See Deploy log below. |
12
+
13
+ ### Deploy log
14
+
15
+ Every `rampway <stage> deploy` writes a full transcript of its lifecycle steps and streamed command output (already redacted) to a timestamped file on the machine running the deploy — the kind of per-deploy log Capistrano keeps built in. The path is printed at the start of the run and in the final summary. Dry runs are not logged.
16
+
17
+ | Field | Type | Required | Default | Description |
18
+ |-------|------|----------|---------|-------------|
19
+ | `enabled` | boolean | no | `true` | Set to `false` (or set `deployLog: false`) to disable per-deploy logging. |
20
+ | `dir` | string | no | `"log/deploys"` | Log directory. Relative paths resolve against the deploy source; absolute paths are used as-is. |
21
+ | `keep` | number | no | `20` | Number of most-recent deploy logs to retain; older ones are pruned. |
22
+
23
+ Log files are named `<UTC-timestamp>-<stage>.log` (e.g. `20260722162000-production.log`). Only files matching that pattern are pruned, so unrelated files in the directory are never removed.
24
+
25
+ Malformed `deployLog` config fails loudly: `enabled` must be a boolean, `dir` a non-empty string, and `keep` a positive integer.
11
26
 
12
27
  ## Stage fields
13
28
 
@@ -172,6 +187,17 @@ onlyIfChanged(["backend"], npmInstall({cwd: "backend", production: true}))
172
187
  5. Tasks with `onlyIfChanged` are skipped when their paths haven't changed since the last deploy.
173
188
  6. Tasks with `cwd` resolve relative to the release root.
174
189
 
190
+ ### Listing tasks
191
+
192
+ `rampway <environment> tasks` lists a stage's configured task groups and their entries in config order, so you can discover what a deploy will run without deploying:
193
+
194
+ ```bash
195
+ rampway production tasks
196
+ rampway production tasks --json
197
+ ```
198
+
199
+ Each entry shows its command plus any `cwd`, `env`, `optional`, and `onlyIfChanged` metadata. Secret-like env values and `KEY=value` assignments in commands are redacted in both the human and `--json` output.
200
+
175
201
  ## Hooks
176
202
 
177
203
  Hooks are lifecycle-phase callbacks that run commands at specific points during the deploy pipeline, outside the fixed task-group slot. Each hook phase accepts an array of task entries (strings or objects, same format as tasks).
@@ -18,6 +18,7 @@ Rampway is a JS-native alternative to Capistrano for Node projects. This guide m
18
18
  | `after/before` hooks | `tasks` run in config order, or use lifecycle `hooks` for phase-specific callbacks |
19
19
  | `deploy:starting` … `deploy:finished` | task groups + runtime deploy |
20
20
  | `cap production deploy` | `rampway production deploy` |
21
+ | `cap -T` / `cap production -T` | `rampway production tasks` |
21
22
  | `cap production deploy:rollback` | `rampway production rollback` |
22
23
  | `current` symlink | same |
23
24
  | `releases/` directory | same |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rampway",
3
- "version": "0.2.4",
3
+ "version": "0.2.6",
4
4
  "description": "JS-native Capistrano-style release-directory deployments with Rollbridge integration.",
5
5
  "type": "module",
6
6
  "private": false,
@@ -78,7 +78,8 @@
78
78
  "release:major": "npm version major && git push --follow-tags"
79
79
  },
80
80
  "dependencies": {
81
- "@types/node": "^26.1.1"
81
+ "@types/node": "^26.1.1",
82
+ "typanic": "^1.0.9"
82
83
  },
83
84
  "devDependencies": {
84
85
  "eslint": "^9.39.2",