@packtory/cli 0.0.8 → 0.0.9
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/command-line-interface/config-loader.js +7 -5
- package/command-line-interface/config-loader.js.map +1 -1
- package/command-line-interface/one-time-password-prompt.js +29 -0
- package/command-line-interface/one-time-password-prompt.js.map +1 -0
- package/command-line-interface/preview-io-shared.js +75 -0
- package/command-line-interface/preview-io-shared.js.map +1 -0
- package/command-line-interface/preview-io.js +15 -0
- package/command-line-interface/preview-io.js.map +1 -0
- package/command-line-interface/runner.js +211 -76
- package/command-line-interface/runner.js.map +1 -1
- package/command-line-interface/spinner-boot.entry-point.js +25 -0
- package/command-line-interface/spinner-boot.entry-point.js.map +1 -0
- package/command-line-interface/spinner-boot.js +9 -0
- package/command-line-interface/spinner-boot.js.map +1 -0
- package/command-line-interface/spinner-shared-state.js +167 -0
- package/command-line-interface/spinner-shared-state.js.map +1 -0
- package/command-line-interface/spinner-worker-backend.js +62 -0
- package/command-line-interface/spinner-worker-backend.js.map +1 -0
- package/command-line-interface/terminal-spinner-renderer.js +21 -15
- package/command-line-interface/terminal-spinner-renderer.js.map +1 -1
- package/common/typed-diff.js +5 -0
- package/common/typed-diff.js.map +1 -0
- package/package.json +6 -6
- package/packages/command-line-interface/command-line-interface.entry-point.d.ts.map +1 -1
- package/packages/command-line-interface/command-line-interface.entry-point.js +61 -7
- package/packages/command-line-interface/command-line-interface.entry-point.js.map +1 -1
- package/readme.md +33 -1
- package/report/changed-artifacts.js +10 -0
- package/report/changed-artifacts.js.map +1 -0
- package/report/html-escaping.js +9 -0
- package/report/html-escaping.js.map +1 -0
- package/report/html-renderer.js +337 -0
- package/report/html-renderer.js.map +1 -0
- package/report/preview-document-diff.js +17 -0
- package/report/preview-document-diff.js.map +1 -0
- package/report/preview-document-helpers.js +173 -0
- package/report/preview-document-helpers.js.map +1 -0
- package/report/preview-document-tree.js +13 -0
- package/report/preview-document-tree.js.map +1 -0
- package/report/preview-document.js +97 -0
- package/report/preview-document.js.map +1 -0
- package/report/terminal-preview-renderer-shared.js +41 -0
- package/report/terminal-preview-renderer-shared.js.map +1 -0
- package/report/terminal-preview-renderer.js +94 -0
- package/report/terminal-preview-renderer.js.map +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preview-document.js","sourceRoot":"","sources":["../../../../source/report/preview-document.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { bold, dim, green, red, yellow } from 'yoctocolors';
|
|
2
|
+
const ansi = {
|
|
3
|
+
bold: { open: 1, close: 22 },
|
|
4
|
+
dim: { open: 2, close: 22 },
|
|
5
|
+
green: { open: 32, close: 39 },
|
|
6
|
+
red: { open: 31, close: 39 },
|
|
7
|
+
yellow: { open: 33, close: 39 }
|
|
8
|
+
};
|
|
9
|
+
function identity(value) {
|
|
10
|
+
return value;
|
|
11
|
+
}
|
|
12
|
+
function withAnsi(openCode, closeCode) {
|
|
13
|
+
return (value) => {
|
|
14
|
+
return `\u001B[${openCode}m${value}\u001B[${closeCode}m`;
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
export function createColors(enabled) {
|
|
18
|
+
if (enabled === false) {
|
|
19
|
+
return { bold: identity, dim: identity, green: identity, red: identity, yellow: identity };
|
|
20
|
+
}
|
|
21
|
+
if (enabled === true) {
|
|
22
|
+
return {
|
|
23
|
+
bold: withAnsi(ansi.bold.open, ansi.bold.close),
|
|
24
|
+
dim: withAnsi(ansi.dim.open, ansi.dim.close),
|
|
25
|
+
green: withAnsi(ansi.green.open, ansi.green.close),
|
|
26
|
+
red: withAnsi(ansi.red.open, ansi.red.close),
|
|
27
|
+
yellow: withAnsi(ansi.yellow.open, ansi.yellow.close)
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
return { bold, dim, green, red, yellow };
|
|
31
|
+
}
|
|
32
|
+
export function renderDiffLine(line, colors) {
|
|
33
|
+
if (line.type === 'add') {
|
|
34
|
+
return colors.green(line.text);
|
|
35
|
+
}
|
|
36
|
+
if (line.type === 'remove') {
|
|
37
|
+
return colors.red(line.text);
|
|
38
|
+
}
|
|
39
|
+
return line.text;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=terminal-preview-renderer-shared.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terminal-preview-renderer-shared.js","sourceRoot":"","sources":["../../../../source/report/terminal-preview-renderer-shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAW5D,MAAM,IAAI,GAAG;IACT,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;IAC5B,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;IAC3B,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;IAC9B,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;IAC5B,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;CACzB,CAAC;AAEX,SAAS,QAAQ,CAAC,KAAa;IAC3B,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,QAAQ,CAAC,QAAgB,EAAE,SAAiB;IACjD,OAAO,CAAC,KAAK,EAAE,EAAE;QACb,OAAO,UAAU,QAAQ,IAAI,KAAK,UAAU,SAAS,GAAG,CAAC;IAC7D,CAAC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAA4B;IACrD,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;QACpB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAC/F,CAAC;IACD,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO;YACH,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YAC/C,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;YAC5C,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;YAClD,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;YAC5C,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;SACxD,CAAC;IACN,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAqB,EAAE,MAAc;IAChE,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QACtB,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACzB,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC;AACrB,CAAC"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/* eslint-disable max-statements, complexity, sonarjs/no-nested-template-literals, unicorn/prefer-single-call, functional/prefer-tacit, @stylistic/max-len, no-continue -- terminal rendering is intentionally linear and string-heavy */
|
|
2
|
+
import { artifactBadgeLabel, artifactStatusLabel } from "./preview-document.js";
|
|
3
|
+
import { collectChangedArtifacts } from "./changed-artifacts.js";
|
|
4
|
+
import { createColors, renderDiffLine } from "./terminal-preview-renderer-shared.js";
|
|
5
|
+
function formatBytes(bytes) {
|
|
6
|
+
return `${bytes} B`;
|
|
7
|
+
}
|
|
8
|
+
function renderArtifactNode(node, colors) {
|
|
9
|
+
const indent = ` ${' '.repeat(node.depth)}`;
|
|
10
|
+
if (node.type === 'directory') {
|
|
11
|
+
return `${indent}${colors.bold(`▸ ${node.name}/`)}`;
|
|
12
|
+
}
|
|
13
|
+
const { artifact } = node;
|
|
14
|
+
const badgeParts = [
|
|
15
|
+
artifactStatusLabel(artifact.status),
|
|
16
|
+
...artifact.badges.map((badge) => {
|
|
17
|
+
return artifactBadgeLabel(badge);
|
|
18
|
+
})
|
|
19
|
+
];
|
|
20
|
+
return `${indent}• ${artifact.path} ${colors.dim(`(${artifact.kind}, ${formatBytes(artifact.sizeBytes)})`)} ${colors.yellow(`[${badgeParts.join(', ')}]`)}`.trimEnd();
|
|
21
|
+
}
|
|
22
|
+
function renderPackage(pkg, colors) {
|
|
23
|
+
const lines = [
|
|
24
|
+
`${colors.bold(pkg.name)}${pkg.versionTransition === undefined ? '' : ` ${colors.dim(pkg.versionTransition)}`}`
|
|
25
|
+
];
|
|
26
|
+
if (pkg.failure !== undefined) {
|
|
27
|
+
lines.push(`${colors.red(' failure')} ${pkg.failure.stage}: ${pkg.failure.message}`);
|
|
28
|
+
}
|
|
29
|
+
lines.push(...pkg.tree.map((node) => {
|
|
30
|
+
return renderArtifactNode(node, colors);
|
|
31
|
+
}));
|
|
32
|
+
if (pkg.eliminatedSourceFiles.length > 0) {
|
|
33
|
+
lines.push(` ${colors.bold('Eliminated source files')}`);
|
|
34
|
+
lines.push(...pkg.eliminatedSourceFiles.map((file) => {
|
|
35
|
+
return ` - ${file.path} ${colors.dim(`(${formatBytes(file.sourceBytes)})`)}`;
|
|
36
|
+
}));
|
|
37
|
+
}
|
|
38
|
+
const changedFiles = collectChangedArtifacts(pkg.tree);
|
|
39
|
+
if (changedFiles.length > 0) {
|
|
40
|
+
lines.push(` ${colors.bold('Diffs')}`);
|
|
41
|
+
for (const artifact of changedFiles) {
|
|
42
|
+
lines.push(` ${artifact.path}`);
|
|
43
|
+
for (const hunk of artifact.diff) {
|
|
44
|
+
lines.push(` ${colors.dim(hunk.header)}`);
|
|
45
|
+
lines.push(...hunk.lines.map((line) => {
|
|
46
|
+
return ` ${renderDiffLine(line, colors)}`;
|
|
47
|
+
}));
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return lines.join('\n');
|
|
52
|
+
}
|
|
53
|
+
export function renderTerminalPreview(document, options = {}) {
|
|
54
|
+
const colors = createColors(options.color);
|
|
55
|
+
const summary = `${document.summary.totalPackages} package(s) · ${document.summary.changedPackages} changed · ${document.summary.failedPackages} failed`;
|
|
56
|
+
const sections = [
|
|
57
|
+
`${colors.bold(document.title)} ${colors.yellow(`[${document.modeLabel}]`)}`,
|
|
58
|
+
colors.dim(summary)
|
|
59
|
+
];
|
|
60
|
+
if (document.issues.length > 0) {
|
|
61
|
+
sections.push(`${colors.red('Issues')}\n${document.issues
|
|
62
|
+
.map((issue) => {
|
|
63
|
+
return `- ${issue}`;
|
|
64
|
+
})
|
|
65
|
+
.join('\n')}`);
|
|
66
|
+
}
|
|
67
|
+
sections.push(...document.packages.map((pkg) => {
|
|
68
|
+
return renderPackage(pkg, colors);
|
|
69
|
+
}));
|
|
70
|
+
return `${sections.join('\n\n')}\n`;
|
|
71
|
+
}
|
|
72
|
+
export function renderFailureOnlyTerminalPreview(document, options = {}) {
|
|
73
|
+
const colors = createColors(options.color);
|
|
74
|
+
const lines = [`${colors.bold(document.title)} ${colors.yellow(`[${document.modeLabel}]`)}`];
|
|
75
|
+
const headings = {
|
|
76
|
+
config: 'Configuration issues',
|
|
77
|
+
checks: 'Check failures',
|
|
78
|
+
partial: 'Package failures'
|
|
79
|
+
};
|
|
80
|
+
if (document.resultType !== 'success') {
|
|
81
|
+
lines.push(colors.red(headings[document.resultType]));
|
|
82
|
+
}
|
|
83
|
+
lines.push(...document.issues.map((issue) => {
|
|
84
|
+
return `- ${issue}`;
|
|
85
|
+
}));
|
|
86
|
+
for (const pkg of document.packages) {
|
|
87
|
+
if (pkg.failure === undefined) {
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
lines.push(`${colors.bold(pkg.name)} ${pkg.failure.stage}: ${pkg.failure.message}`);
|
|
91
|
+
}
|
|
92
|
+
return `${lines.join('\n')}\n`;
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=terminal-preview-renderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terminal-preview-renderer.js","sourceRoot":"","sources":["../../../../source/report/terminal-preview-renderer.ts"],"names":[],"mappings":"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"}
|