awscfn 1.5.0 → 1.6.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/README.md CHANGED
@@ -106,7 +106,7 @@ awscfn list-stacks
106
106
 
107
107
  ### 🔎 inspect-stack
108
108
 
109
- Inspect a **deployed** stack in a **read-only pager view** (TUI-like), including:
109
+ Inspect a **deployed** stack in an **interactive multi-pane TUI** (with pager/text fallback), including:
110
110
 
111
111
  - full deployed template body
112
112
  - current parameters and outputs
@@ -122,7 +122,7 @@ awscfn inspect-stack -n <STACK_NAME>
122
122
  |------|-------------|
123
123
  | `--name`, `-n` | Stack name |
124
124
  | `--events`, `-e` | Max stack events to fetch (`0` = all available events). Default `500` |
125
- | `--pager` / `--no-pager` | Use a view-only pager (default true). Disable to print directly |
125
+ | `--pager` / `--no-pager` | Use interactive TUI/pager output (default true). Disable to print directly |
126
126
 
127
127
  This command performs read-only CloudFormation API calls (`DescribeStacks`, `GetTemplate`, `DescribeStackEvents`) and makes no stack changes.
128
128
 
package/bin/awscfn CHANGED
@@ -345,7 +345,7 @@ const eventsLimitOpt = {
345
345
  const pagerOpt = {
346
346
  pager: {
347
347
  type: 'boolean',
348
- describe: 'Open output in a view-only pager (use --no-pager to print directly)',
348
+ describe: 'Use interactive TUI/pager output (use --no-pager to print directly)',
349
349
  demandOption: false,
350
350
  default: true,
351
351
  },
@@ -355,7 +355,7 @@ const cli = yargs
355
355
  .scriptName('awscfn')
356
356
  .usage('Usage:\n $0 <command> [options]')
357
357
  .example('$0 list-stacks', 'List active stacks in the current AWS region')
358
- .example('$0 inspect-stack -n my-stack', 'Open a read-only stack inspection view')
358
+ .example('$0 inspect-stack -n my-stack', 'Open interactive stack inspection panes')
359
359
  .example('$0 update-stack -n my-stack -t ./template.yaml -p ./params.yaml', 'Update an existing stack')
360
360
  .epilog('Tip: run `awscfn <command> --help` for command-specific help.')
361
361
  .option('ci', {
@@ -433,7 +433,7 @@ const cli = yargs
433
433
  )
434
434
  .command(
435
435
  'inspect-stack',
436
- 'Inspect a deployed stack in a read-only pager view',
436
+ 'Inspect a deployed stack in interactive panes (with fallback)',
437
437
  (cmd) => cmd.options({ ...nameOpt, ...eventsLimitOpt, ...pagerOpt }),
438
438
  ({ name, events, pager }) => {
439
439
  runCommand(() => inspectStack(name, { eventsLimit: Number(events), usePager: Boolean(pager) }));
@@ -1 +1 @@
1
- {"version":3,"file":"inspectStack.d.ts","sourceRoot":"","sources":["../src/inspectStack.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,mBAAmB;IAChC,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,OAAO,CAAA;CACpB;AAwND,wBAAsB,YAAY,CAC9B,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,GACvC,OAAO,CAAC,IAAI,CAAC,CAkBf"}
1
+ {"version":3,"file":"inspectStack.d.ts","sourceRoot":"","sources":["../src/inspectStack.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,mBAAmB;IAChC,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,OAAO,CAAA;CACpB;AAwOD,wBAAsB,YAAY,CAC9B,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,GACvC,OAAO,CAAC,IAAI,CAAC,CAwCf"}
@@ -36,6 +36,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.inspectStack = inspectStack;
37
37
  const cfn = __importStar(require("./lib/cfn"));
38
38
  const viewText_1 = require("./lib/viewText");
39
+ const viewInspectTui_1 = require("./lib/viewInspectTui");
39
40
  const DEFAULT_OPTIONS = {
40
41
  eventsLimit: 500,
41
42
  usePager: true,
@@ -99,14 +100,14 @@ function formatParameters(stack) {
99
100
  if (params.length === 0)
100
101
  return 'No parameters on stack.';
101
102
  return params
102
- .map((param) => `${param.ParameterKey ?? 'Unknown'}=${param.ParameterValue ?? '(no value returned)'}`)
103
+ .map((param) => `${param.ParameterKey ?? 'Unknown'}: ${param.ParameterValue ?? '(no value returned)'}`)
103
104
  .join('\n');
104
105
  }
105
106
  function formatOutputs(stack) {
106
107
  const outputs = stack.Outputs ?? [];
107
108
  if (outputs.length === 0)
108
109
  return 'No outputs on stack.';
109
- return outputs.map((output) => `${output.OutputKey ?? 'Unknown'}=${output.OutputValue ?? ''}`).join('\n');
110
+ return outputs.map((output) => `${output.OutputKey ?? 'Unknown'}: ${output.OutputValue ?? ''}`).join('\n');
110
111
  }
111
112
  function formatRootCauses(failures) {
112
113
  const rootCauses = uniqueRootCauseCandidates(failures).slice(0, 10);
@@ -157,19 +158,27 @@ function stackSummary(stack) {
157
158
  ];
158
159
  return lines.join('\n');
159
160
  }
160
- function buildReport(stack, templateBody, events, options) {
161
+ function buildSections(stack, templateBody, events, options) {
161
162
  const failures = getFailureEvents(toChronological(events));
162
163
  const sections = [
163
- formatSection('Stack Summary', stackSummary(stack)),
164
- formatSection('Stack Details (Raw JSON)', stackDetailsJson(stack)),
165
- formatSection('Parameters', formatParameters(stack)),
166
- formatSection('Outputs', formatOutputs(stack)),
167
- formatSection('Likely Root Causes', formatRootCauses(failures)),
168
- formatSection('Failure Events', formatFailureEvents(failures)),
169
- formatSection('Events', formatEvents(events, options.eventsLimit)),
170
- formatSection('Full Deployed Template', templateBody || 'Template body is empty.'),
164
+ { title: 'Stack Summary', body: stackSummary(stack) },
165
+ { title: 'Stack Details (Raw JSON)', body: stackDetailsJson(stack) },
166
+ { title: 'Parameters', body: formatParameters(stack) },
167
+ { title: 'Outputs', body: formatOutputs(stack) },
168
+ { title: 'Likely Root Causes', body: formatRootCauses(failures) },
169
+ { title: 'Failure Events', body: formatFailureEvents(failures) },
170
+ { title: 'Events', body: formatEvents(events, options.eventsLimit) },
171
+ { title: 'Full Deployed Template', body: templateBody || 'Template body is empty.' },
171
172
  ];
172
- return ['awscfn inspect-stack', '='.repeat(20), '', ...sections].join('\n\n');
173
+ return sections;
174
+ }
175
+ function buildReport(sections) {
176
+ return [
177
+ 'awscfn inspect-stack',
178
+ '='.repeat(20),
179
+ '',
180
+ ...sections.map((section) => formatSection(section.title, section.body)),
181
+ ].join('\n\n');
173
182
  }
174
183
  async function inspectStack(stackName, options) {
175
184
  cfn.initCloudFormationClient();
@@ -181,7 +190,22 @@ async function inspectStack(stackName, options) {
181
190
  cfn.getStackTemplateBody(stackName),
182
191
  cfn.listStackEvents(stackName, resolvedOptions.eventsLimit),
183
192
  ]);
184
- const report = buildReport(stack, templateBody, events, resolvedOptions);
193
+ const sections = buildSections(stack, templateBody, events, resolvedOptions);
194
+ if (resolvedOptions.usePager) {
195
+ const didShowTui = await (0, viewInspectTui_1.viewInspectTui)(sections, {
196
+ title: `awscfn inspect-stack: ${stackName}`,
197
+ subtitle: [
198
+ 'Tab switches focus.',
199
+ 'Up/Down navigates.',
200
+ 'PgUp/PgDn scrolls.',
201
+ 'q quits.',
202
+ ].join(' '),
203
+ });
204
+ if (didShowTui) {
205
+ return;
206
+ }
207
+ }
208
+ const report = buildReport(sections);
185
209
  (0, viewText_1.viewText)(`inspect-${stackName}`, report, { usePager: resolvedOptions.usePager });
186
210
  }
187
211
  //# sourceMappingURL=inspectStack.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"inspectStack.js","sourceRoot":"","sources":["../src/inspectStack.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inspectStack.js","sourceRoot":"","sources":["../src/inspectStack.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgPA,oCA2CC;AA1RD,+CAAiC;AACjC,6CAAwC;AACxC,yDAAuE;AAcvE,MAAM,eAAe,GAAwB;IACzC,WAAW,EAAE,GAAG;IAChB,QAAQ,EAAE,IAAI;CACjB,CAAC;AAEF,MAAM,wBAAwB,GAAG;IAC7B,8BAA8B;IAC9B,4BAA4B;IAC5B,qCAAqC;IACrC,iBAAiB;CACpB,CAAC;AAEF,SAAS,KAAK,CAAC,KAAY;IAEvB,IAAI,CAAC,KAAK,EAAE,CAAC;QAET,OAAO,GAAG,CAAC;IAEf,CAAC;IAED,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;AAE/B,CAAC;AAED,SAAS,WAAW,CAAC,KAAiB;IAElC,OAAO,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AAE3C,CAAC;AAED,SAAS,eAAe,CAAC,MAAoB;IAEzC,OAAO,MAAM,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;AAExF,CAAC;AAED,SAAS,eAAe,CAAC,MAAc;IAEnC,OAAO,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AAEpE,CAAC;AAED,SAAS,sBAAsB,CAAC,MAAc;IAE1C,OAAO,wBAAwB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAE5E,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAoB;IAE1C,MAAM,GAAG,GAA0B,EAAE,CAAC;IAEtC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAEzB,MAAM,MAAM,GAAG,KAAK,CAAC,cAAc,IAAI,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAG,KAAK,CAAC,oBAAoB,IAAI,EAAE,CAAC;QAEhD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM;YAAE,SAAS;QAElD,GAAG,CAAC,IAAI,CAAC;YACL,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC;YACjC,QAAQ,EAAE,GAAG,KAAK,CAAC,iBAAiB,IAAI,SAAS,KAAK,KAAK,CAAC,YAAY,IAAI,SAAS,GAAG;YACxF,MAAM;YACN,MAAM;SACT,CAAC,CAAC;IAEP,CAAC;IAED,OAAO,GAAG,CAAC;AAEf,CAAC;AAED,SAAS,yBAAyB,CAAC,QAA+B;IAE9D,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IACtC,MAAM,UAAU,GAA0B,EAAE,CAAC;IAE7C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAE7B,IAAI,sBAAsB,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,SAAS;QAExF,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAChC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAE7B,CAAC;IAED,OAAO,UAAU,CAAC;AAEtB,CAAC;AAED,SAAS,aAAa,CAAC,KAAa,EAAE,IAAY;IAE9C,OAAO,GAAG,KAAK,KAAK,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;AAE5D,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAY;IAElC,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC;IAEtC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,yBAAyB,CAAC;IAE1D,OAAO,MAAM;SACR,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,YAAY,IAAI,SAAS,KAAK,KAAK,CAAC,cAAc,IAAI,qBAAqB,EAAE,CAAC;SACtG,IAAI,CAAC,IAAI,CAAC,CAAC;AAEpB,CAAC;AAED,SAAS,aAAa,CAAC,KAAY;IAE/B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC;IAEpC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,sBAAsB,CAAC;IAExD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,SAAS,IAAI,SAAS,KAAK,MAAM,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAE/G,CAAC;AAED,SAAS,gBAAgB,CAAC,QAA+B;IAErD,MAAM,UAAU,GAAG,yBAAyB,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEpE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,yCAAyC,CAAC;IAE9E,OAAO,UAAU;SACZ,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,SAAS,KAAK,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,QAAQ,eAAe,OAAO,CAAC,MAAM,EAAE,CAAC;SAC7G,IAAI,CAAC,MAAM,CAAC,CAAC;AAEtB,CAAC;AAED,SAAS,mBAAmB,CAAC,QAA+B;IAExD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,0BAA0B,CAAC;IAE7D,OAAO,QAAQ;SACV,KAAK,CAAC,CAAC,EAAE,CAAC;SACV,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,SAAS,KAAK,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,QAAQ,eAAe,OAAO,CAAC,MAAM,EAAE,CAAC;SAC7G,IAAI,CAAC,MAAM,CAAC,CAAC;AAEtB,CAAC;AAED,SAAS,WAAW,CAAC,KAAiB;IAElC,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,KAAK,CAAC,cAAc,IAAI,SAAS,CAAC;IACjD,MAAM,OAAO,GAAG,KAAK,CAAC,iBAAiB,IAAI,SAAS,CAAC;IACrD,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,IAAI,SAAS,CAAC;IAC7C,MAAM,MAAM,GAAG,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC,eAAe,KAAK,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAE7F,OAAO,IAAI,SAAS,KAAK,MAAM,IAAI,OAAO,KAAK,IAAI,IAAI,MAAM,EAAE,CAAC;AAEpE,CAAC;AAED,SAAS,YAAY,CAAC,MAAoB,EAAE,WAAmB;IAE3D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,wBAAwB,CAAC;IAEzD,MAAM,aAAa,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,WAAW,GAAG,CAAC;QAC1B,CAAC,CAAC,iBAAiB,WAAW,iCAAiC;QAC/D,CAAC,CAAC,4CAA4C,CAAC;IAEnD,OAAO,GAAG,MAAM,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;AAE3F,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAY;IAElC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,YAAY,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAE1G,CAAC;AAED,SAAS,YAAY,CAAC,KAAY;IAE9B,MAAM,KAAK,GAAG;QACV,cAAc,KAAK,CAAC,SAAS,IAAI,GAAG,EAAE;QACtC,YAAY,KAAK,CAAC,OAAO,IAAI,GAAG,EAAE;QAClC,WAAW,KAAK,CAAC,WAAW,IAAI,GAAG,EAAE;QACrC,iBAAiB,KAAK,CAAC,iBAAiB,IAAI,GAAG,EAAE;QACjD,cAAc,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE;QACzC,cAAc,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE;QAC5C,gBAAgB,KAAK,CAAC,gBAAgB,EAAE,gBAAgB,IAAI,GAAG,EAAE;QACjE,gCAAgC,KAAK,CAAC,2BAA2B,IAAI,KAAK,EAAE;KAC/E,CAAC;IAEF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAE5B,CAAC;AAED,SAAS,aAAa,CAClB,KAAY,EACZ,YAAoB,EACpB,MAAoB,EACpB,OAA4B;IAG5B,MAAM,QAAQ,GAAG,gBAAgB,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAwB;QAClC,EAAC,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC,EAAC;QACnD,EAAC,KAAK,EAAE,0BAA0B,EAAE,IAAI,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAAC;QAClE,EAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAAC;QACpD,EAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,EAAC;QAC9C,EAAC,KAAK,EAAE,oBAAoB,EAAE,IAAI,EAAE,gBAAgB,CAAC,QAAQ,CAAC,EAAC;QAC/D,EAAC,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,mBAAmB,CAAC,QAAQ,CAAC,EAAC;QAC9D,EAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,EAAC;QAClE,EAAC,KAAK,EAAE,wBAAwB,EAAE,IAAI,EAAE,YAAY,IAAI,yBAAyB,EAAC;KACrF,CAAC;IAEF,OAAO,QAAQ,CAAC;AAEpB,CAAC;AAED,SAAS,WAAW,CAAC,QAA6B;IAE9C,OAAO;QACH,sBAAsB;QACtB,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACd,EAAE;QACF,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;KAC3E,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAEnB,CAAC;AAEM,KAAK,UAAU,YAAY,CAC9B,SAAiB,EACjB,OAAsC;IAGtC,GAAG,CAAC,wBAAwB,EAAE,CAAC;IAE/B,MAAM,eAAe,GAAG,EAAC,GAAG,eAAe,EAAE,GAAG,OAAO,EAAC,CAAC;IACzD,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAExD,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,SAAS,SAAS,iBAAiB,CAAC,CAAC;IAEjE,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC7C,GAAG,CAAC,oBAAoB,CAAC,SAAS,CAAC;QACnC,GAAG,CAAC,eAAe,CAAC,SAAS,EAAE,eAAe,CAAC,WAAW,CAAC;KAC9D,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;IAE7E,IAAI,eAAe,CAAC,QAAQ,EAAE,CAAC;QAE3B,MAAM,UAAU,GAAG,MAAM,IAAA,+BAAc,EAAC,QAAQ,EAAE;YAC9C,KAAK,EAAE,yBAAyB,SAAS,EAAE;YAC3C,QAAQ,EAAE;gBACN,qBAAqB;gBACrB,oBAAoB;gBACpB,oBAAoB;gBACpB,UAAU;aACb,CAAC,IAAI,CAAC,GAAG,CAAC;SACd,CAAC,CAAC;QAEH,IAAI,UAAU,EAAE,CAAC;YAEb,OAAO;QAEX,CAAC;IAEL,CAAC;IAED,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IAErC,IAAA,mBAAQ,EAAC,WAAW,SAAS,EAAE,EAAE,MAAM,EAAE,EAAC,QAAQ,EAAE,eAAe,CAAC,QAAQ,EAAC,CAAC,CAAC;AAEnF,CAAC"}
@@ -0,0 +1,10 @@
1
+ export interface InspectTuiSection {
2
+ title: string;
3
+ body: string;
4
+ }
5
+ export interface InspectTuiOptions {
6
+ title: string;
7
+ subtitle: string;
8
+ }
9
+ export declare function viewInspectTui(sections: InspectTuiSection[], options: InspectTuiOptions): Promise<boolean>;
10
+ //# sourceMappingURL=viewInspectTui.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewInspectTui.d.ts","sourceRoot":"","sources":["../../src/lib/viewInspectTui.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,iBAAiB;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,iBAAiB;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;CACnB;AAugBD,wBAAsB,cAAc,CAChC,QAAQ,EAAE,iBAAiB,EAAE,EAC7B,OAAO,EAAE,iBAAiB,GAC3B,OAAO,CAAC,OAAO,CAAC,CAYlB"}
@@ -0,0 +1,343 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.viewInspectTui = viewInspectTui;
4
+ const node_process_1 = require("node:process");
5
+ const MIN_WIDTH = 70;
6
+ const MIN_HEIGHT = 16;
7
+ const KEY_PAGE_UP = '\u001b[5~';
8
+ const KEY_PAGE_DOWN = '\u001b[6~';
9
+ const KEY_ARROW_UP = '\u001b[A';
10
+ const KEY_ARROW_DOWN = '\u001b[B';
11
+ const KEY_ARROW_LEFT = '\u001b[D';
12
+ const KEY_ARROW_RIGHT = '\u001b[C';
13
+ function supportsInteractiveTui() {
14
+ return node_process_1.stdin.isTTY === true
15
+ && node_process_1.stdout.isTTY === true
16
+ && process.env.CI !== 'true'
17
+ && process.env.GITHUB_ACTIONS !== 'true';
18
+ }
19
+ function colorize(text, ansiCode, enabled) {
20
+ if (!enabled)
21
+ return text;
22
+ return `${ansiCode}${text}\x1b[0m`;
23
+ }
24
+ function highlightStatusToken(token, useColor) {
25
+ if (/FAILED|ROLLBACK/.test(token)) {
26
+ return colorize(token, '\x1b[31m', useColor);
27
+ }
28
+ if (/COMPLETE|SUCCEEDED/.test(token)) {
29
+ return colorize(token, '\x1b[32m', useColor);
30
+ }
31
+ if (/IN_PROGRESS|PENDING/.test(token)) {
32
+ return colorize(token, '\x1b[33m', useColor);
33
+ }
34
+ return token;
35
+ }
36
+ function highlightStatusTerms(line, useColor) {
37
+ return line.replace(/\b[A-Z]+(?:_[A-Z]+)+\b/g, (token) => highlightStatusToken(token, useColor));
38
+ }
39
+ function highlightTimestamp(line, useColor) {
40
+ return line.replace(/\[(\d{4}-\d{2}-\d{2}T[^\]]+)\]/g, (_match, timestamp) => colorize(`[${timestamp}]`, '\x1b[90m', useColor));
41
+ }
42
+ function highlightKeyValueLine(line, useColor) {
43
+ const jsonMatch = line.match(/^(\s*)"([^"]+)"(\s*:.*)$/);
44
+ if (jsonMatch) {
45
+ const [, indent, key, suffix] = jsonMatch;
46
+ return `${indent}${colorize(`"${key}"`, '\x1b[36m', useColor)}${suffix}`;
47
+ }
48
+ const kvMatch = line.match(/^(\s*)([A-Za-z][A-Za-z0-9_\-. ()/]*)(:\s*.*)$/);
49
+ if (!kvMatch)
50
+ return line;
51
+ const [, indent, key, suffix] = kvMatch;
52
+ return `${indent}${colorize(key, '\x1b[36m', useColor)}${suffix}`;
53
+ }
54
+ function highlightLabels(line, useColor) {
55
+ return line.replace(/\bReason:/g, () => colorize('Reason:', '\x1b[33m', useColor));
56
+ }
57
+ function styleContentLine(line, sectionTitle, useColor) {
58
+ let styled = line;
59
+ if (sectionTitle.includes('Raw JSON') || sectionTitle.includes('Template') || line.includes(':')) {
60
+ styled = highlightKeyValueLine(styled, useColor);
61
+ }
62
+ styled = highlightTimestamp(styled, useColor);
63
+ styled = highlightStatusTerms(styled, useColor);
64
+ styled = highlightLabels(styled, useColor);
65
+ return styled;
66
+ }
67
+ function truncateText(text, width) {
68
+ if (width <= 0)
69
+ return '';
70
+ if (text.length <= width)
71
+ return text;
72
+ if (width <= 3)
73
+ return text.slice(0, width);
74
+ return `${text.slice(0, width - 3)}...`;
75
+ }
76
+ function padText(text, width) {
77
+ if (text.length >= width)
78
+ return text;
79
+ return `${text}${' '.repeat(width - text.length)}`;
80
+ }
81
+ function fitLine(text, width) {
82
+ return padText(truncateText(text, width), width);
83
+ }
84
+ function wrapLine(line, width) {
85
+ if (line.length === 0)
86
+ return [''];
87
+ const out = [];
88
+ let offset = 0;
89
+ while (offset < line.length) {
90
+ out.push(line.slice(offset, offset + width));
91
+ offset += width;
92
+ }
93
+ return out;
94
+ }
95
+ function wrapBody(body, width) {
96
+ const lines = body.replace(/\r\n/g, '\n').split('\n');
97
+ const wrapped = [];
98
+ for (const line of lines) {
99
+ wrapped.push(...wrapLine(line, width));
100
+ }
101
+ return wrapped;
102
+ }
103
+ function getLayout() {
104
+ const width = Math.max(40, node_process_1.stdout.columns ?? 80);
105
+ const height = Math.max(10, node_process_1.stdout.rows ?? 24);
106
+ const sidebarWidth = Math.max(18, Math.min(30, Math.floor(width * 0.28)));
107
+ const contentWidth = Math.max(20, width - sidebarWidth - 3);
108
+ const bodyHeight = Math.max(3, height - 5);
109
+ return { width, height, sidebarWidth, contentWidth, bodyHeight };
110
+ }
111
+ function isLayoutTooSmall(layout) {
112
+ return layout.width < MIN_WIDTH || layout.height < MIN_HEIGHT;
113
+ }
114
+ function currentContentLines(state, layout) {
115
+ const section = state.sections[state.activeSectionIndex];
116
+ return wrapBody(section.body, layout.contentWidth);
117
+ }
118
+ function maxScrollOffset(contentLines, layout) {
119
+ return Math.max(0, contentLines.length - layout.bodyHeight);
120
+ }
121
+ function sectionWindowStart(state, layout) {
122
+ const maxStart = Math.max(0, state.sections.length - layout.bodyHeight);
123
+ const preferred = Math.max(0, state.activeSectionIndex - Math.floor(layout.bodyHeight / 2));
124
+ return Math.min(preferred, maxStart);
125
+ }
126
+ function renderSidebarLine(title, isActive, hasFocus, width, useColor) {
127
+ const marker = isActive ? '>' : ' ';
128
+ const content = fitLine(`${marker} ${title}`, width);
129
+ if (!isActive)
130
+ return content;
131
+ if (hasFocus)
132
+ return colorize(content, '\x1b[1;36m', useColor);
133
+ return colorize(content, '\x1b[36m', useColor);
134
+ }
135
+ function renderHeader(state, layout) {
136
+ const title = colorize(fitLine(state.options.title, layout.width), '\x1b[1;37m', state.useColor);
137
+ const subtitle = colorize(fitLine(state.options.subtitle, layout.width), '\x1b[90m', state.useColor);
138
+ const divider = colorize('-'.repeat(layout.width), '\x1b[90m', state.useColor);
139
+ return [title, subtitle, divider];
140
+ }
141
+ function renderBody(state, layout, contentLines) {
142
+ const start = sectionWindowStart(state, layout);
143
+ const visibleContent = contentLines.slice(state.scrollOffset, state.scrollOffset + layout.bodyHeight);
144
+ const rows = [];
145
+ const activeSection = state.sections[state.activeSectionIndex];
146
+ const divider = colorize('|', '\x1b[90m', state.useColor);
147
+ for (let row = 0; row < layout.bodyHeight; row++) {
148
+ const section = state.sections[start + row];
149
+ const left = section
150
+ ? renderSidebarLine(section.title, start + row === state.activeSectionIndex, state.focusMode === 'sections', layout.sidebarWidth, state.useColor)
151
+ : fitLine('', layout.sidebarWidth);
152
+ const rightPlain = fitLine(visibleContent[row] ?? '', layout.contentWidth);
153
+ const right = styleContentLine(rightPlain, activeSection.title, state.useColor);
154
+ rows.push(`${left} ${divider} ${right}`);
155
+ }
156
+ return rows;
157
+ }
158
+ function renderFooter(state, layout, contentLines) {
159
+ const divider = colorize('-'.repeat(layout.width), '\x1b[90m', state.useColor);
160
+ const maxScroll = maxScrollOffset(contentLines, layout);
161
+ const startLine = contentLines.length === 0 ? 0 : state.scrollOffset + 1;
162
+ const endLine = Math.min(contentLines.length, state.scrollOffset + layout.bodyHeight);
163
+ const status = [
164
+ `Section ${state.activeSectionIndex + 1}/${state.sections.length}`,
165
+ `Lines ${startLine}-${endLine}/${Math.max(contentLines.length, 1)}`,
166
+ `Focus ${state.focusMode}`,
167
+ 'Tab switch focus',
168
+ 'Arrows navigate',
169
+ 'PgUp/PgDn scroll',
170
+ 'q quit',
171
+ maxScroll > 0 ? '' : 'No scroll',
172
+ ].filter(Boolean).join(' | ');
173
+ return [divider, colorize(fitLine(status, layout.width), '\x1b[90m', state.useColor)];
174
+ }
175
+ function smallTerminalFrame(layout) {
176
+ const lines = [
177
+ fitLine('awscfn inspect-stack', layout.width),
178
+ fitLine('', layout.width),
179
+ fitLine(`Terminal too small (${layout.width}x${layout.height}) for interactive mode.`, layout.width),
180
+ fitLine(`Resize to at least ${MIN_WIDTH}x${MIN_HEIGHT}, or use --no-pager.`, layout.width),
181
+ fitLine('', layout.width),
182
+ fitLine('Press q to quit.', layout.width),
183
+ ];
184
+ return lines.join('\n');
185
+ }
186
+ function buildFrame(state) {
187
+ const layout = getLayout();
188
+ if (isLayoutTooSmall(layout)) {
189
+ return smallTerminalFrame(layout);
190
+ }
191
+ const contentLines = currentContentLines(state, layout);
192
+ const lines = [
193
+ ...renderHeader(state, layout),
194
+ ...renderBody(state, layout, contentLines),
195
+ ...renderFooter(state, layout, contentLines),
196
+ ];
197
+ return lines.join('\n');
198
+ }
199
+ function normalizeKey(input) {
200
+ if (input === '\u0003')
201
+ return 'QUIT';
202
+ if (input === '\u001b' || input === 'q')
203
+ return 'QUIT';
204
+ if (input === '\t')
205
+ return 'TAB';
206
+ if (input === KEY_ARROW_UP || input === 'k')
207
+ return 'UP';
208
+ if (input === KEY_ARROW_DOWN || input === 'j')
209
+ return 'DOWN';
210
+ if (input === KEY_ARROW_LEFT || input === 'h')
211
+ return 'LEFT';
212
+ if (input === KEY_ARROW_RIGHT || input === 'l')
213
+ return 'RIGHT';
214
+ if (input === KEY_PAGE_UP)
215
+ return 'PGUP';
216
+ if (input === KEY_PAGE_DOWN)
217
+ return 'PGDN';
218
+ if (input === 'g')
219
+ return 'HOME';
220
+ if (input === 'G')
221
+ return 'END';
222
+ return 'UNKNOWN';
223
+ }
224
+ function updateActiveSection(state, nextIndex) {
225
+ const clamped = Math.max(0, Math.min(state.sections.length - 1, nextIndex));
226
+ if (clamped === state.activeSectionIndex)
227
+ return false;
228
+ state.activeSectionIndex = clamped;
229
+ state.scrollOffset = 0;
230
+ return true;
231
+ }
232
+ function updateScroll(state, delta) {
233
+ const layout = getLayout();
234
+ const contentLines = currentContentLines(state, layout);
235
+ const max = maxScrollOffset(contentLines, layout);
236
+ const next = Math.max(0, Math.min(max, state.scrollOffset + delta));
237
+ if (next === state.scrollOffset)
238
+ return false;
239
+ state.scrollOffset = next;
240
+ return true;
241
+ }
242
+ function applyKey(state, key) {
243
+ if (key === 'QUIT')
244
+ return 'quit';
245
+ if (key === 'TAB') {
246
+ state.focusMode = state.focusMode === 'sections' ? 'content' : 'sections';
247
+ return 'rerender';
248
+ }
249
+ if (key === 'LEFT')
250
+ return updateActiveSection(state, state.activeSectionIndex - 1) ? 'rerender' : 'noop';
251
+ if (key === 'RIGHT')
252
+ return updateActiveSection(state, state.activeSectionIndex + 1) ? 'rerender' : 'noop';
253
+ if (key === 'HOME')
254
+ return updateScroll(state, Number.MIN_SAFE_INTEGER) ? 'rerender' : 'noop';
255
+ if (key === 'END')
256
+ return updateScroll(state, Number.MAX_SAFE_INTEGER) ? 'rerender' : 'noop';
257
+ if (key === 'PGUP')
258
+ return updateScroll(state, -Math.max(1, getLayout().bodyHeight - 1)) ? 'rerender' : 'noop';
259
+ if (key === 'PGDN')
260
+ return updateScroll(state, Math.max(1, getLayout().bodyHeight - 1)) ? 'rerender' : 'noop';
261
+ if (key === 'UP') {
262
+ return state.focusMode === 'sections'
263
+ ? (updateActiveSection(state, state.activeSectionIndex - 1) ? 'rerender' : 'noop')
264
+ : (updateScroll(state, -1) ? 'rerender' : 'noop');
265
+ }
266
+ if (key === 'DOWN') {
267
+ return state.focusMode === 'sections'
268
+ ? (updateActiveSection(state, state.activeSectionIndex + 1) ? 'rerender' : 'noop')
269
+ : (updateScroll(state, 1) ? 'rerender' : 'noop');
270
+ }
271
+ return 'noop';
272
+ }
273
+ function enterScreen() {
274
+ node_process_1.stdout.write('\x1b[?1049h');
275
+ node_process_1.stdout.write('\x1b[?25l');
276
+ node_process_1.stdout.write('\x1b[2J\x1b[H');
277
+ }
278
+ function leaveScreen() {
279
+ node_process_1.stdout.write('\x1b[?25h');
280
+ node_process_1.stdout.write('\x1b[?1049l');
281
+ }
282
+ function render(state) {
283
+ node_process_1.stdout.write('\x1b[2J\x1b[H');
284
+ node_process_1.stdout.write(buildFrame(state));
285
+ }
286
+ function createState(sections, options) {
287
+ return {
288
+ sections,
289
+ activeSectionIndex: 0,
290
+ scrollOffset: 0,
291
+ focusMode: 'sections',
292
+ options,
293
+ useColor: process.env.NO_COLOR === undefined,
294
+ };
295
+ }
296
+ // eslint-disable-next-line max-lines-per-function
297
+ function startTuiSession(state, resolve) {
298
+ let finished = false;
299
+ function finish(value) {
300
+ if (finished)
301
+ return;
302
+ finished = true;
303
+ node_process_1.stdin.removeListener('data', onData);
304
+ node_process_1.stdout.removeListener('resize', onResize);
305
+ node_process_1.stdin.setRawMode(false);
306
+ node_process_1.stdin.pause();
307
+ leaveScreen();
308
+ resolve(value);
309
+ }
310
+ function onData(chunk) {
311
+ const key = normalizeKey(typeof chunk === 'string' ? chunk : chunk.toString('utf8'));
312
+ const action = applyKey(state, key);
313
+ if (action === 'quit') {
314
+ finish(true);
315
+ return;
316
+ }
317
+ if (action === 'rerender')
318
+ render(state);
319
+ }
320
+ function onResize() {
321
+ render(state);
322
+ }
323
+ try {
324
+ enterScreen();
325
+ node_process_1.stdin.setRawMode(true);
326
+ node_process_1.stdin.resume();
327
+ node_process_1.stdin.setEncoding('utf8');
328
+ node_process_1.stdin.on('data', onData);
329
+ node_process_1.stdout.on('resize', onResize);
330
+ render(state);
331
+ }
332
+ catch {
333
+ finish(false);
334
+ }
335
+ }
336
+ async function viewInspectTui(sections, options) {
337
+ if (!supportsInteractiveTui() || sections.length === 0 || typeof node_process_1.stdin.setRawMode !== 'function') {
338
+ return false;
339
+ }
340
+ const state = createState(sections, options);
341
+ return new Promise((resolve) => startTuiSession(state, resolve));
342
+ }
343
+ //# sourceMappingURL=viewInspectTui.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewInspectTui.js","sourceRoot":"","sources":["../../src/lib/viewInspectTui.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "awscfn",
3
- "version": "1.5.0",
3
+ "version": "1.6.0",
4
4
  "description": "CLI and TypeScript SDK for managing AWS CloudFormation stacks with simple YAML parameters and real-time event streaming.",
5
5
  "type": "commonjs",
6
6
  "main": "./dist/index.js",