@packtory/cli 0.0.102 → 0.0.104
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 +2 -33
- package/command-line-interface/config-loader.js.map +1 -1
- package/command-line-interface/one-time-password-prompt.js +0 -31
- package/command-line-interface/one-time-password-prompt.js.map +1 -1
- package/command-line-interface/preview-io/preview-io-shared.js +2 -31
- package/command-line-interface/preview-io/preview-io-shared.js.map +1 -1
- package/command-line-interface/preview-io/preview-io.js +4 -15
- package/command-line-interface/preview-io/preview-io.js.map +1 -1
- package/command-line-interface/preview-io/preview-spawn.js +1 -26
- package/command-line-interface/preview-io/preview-spawn.js.map +1 -1
- package/command-line-interface/runner/changelog-destinations.js +5 -220
- package/command-line-interface/runner/changelog-destinations.js.map +1 -1
- package/command-line-interface/runner/changelog-handler.js +5 -79
- package/command-line-interface/runner/changelog-handler.js.map +1 -1
- package/command-line-interface/runner/changelog-pr-log-config.js +1 -147
- package/command-line-interface/runner/changelog-pr-log-config.js.map +1 -1
- package/command-line-interface/runner/command-parsing.js +0 -10
- package/command-line-interface/runner/command-parsing.js.map +1 -1
- package/command-line-interface/runner/config-inspect-handler.js +4 -79
- package/command-line-interface/runner/config-inspect-handler.js.map +1 -1
- package/command-line-interface/runner/failure-printing.js +5 -75
- package/command-line-interface/runner/failure-printing.js.map +1 -1
- package/command-line-interface/runner/github-api-request.js +0 -100
- package/command-line-interface/runner/github-api-request.js.map +1 -1
- package/command-line-interface/runner/github-release-client.js +2 -102
- package/command-line-interface/runner/github-release-client.js.map +1 -1
- package/command-line-interface/runner/github-release-notes.js +1 -74
- package/command-line-interface/runner/github-release-notes.js.map +1 -1
- package/command-line-interface/runner/github-repository.js +1 -14
- package/command-line-interface/runner/github-repository.js.map +1 -1
- package/command-line-interface/runner/pack-handler.js +4 -201
- package/command-line-interface/runner/pack-handler.js.map +1 -1
- package/command-line-interface/runner/package-dependencies-handler.js +3 -53
- package/command-line-interface/runner/package-dependencies-handler.js.map +1 -1
- package/command-line-interface/runner/package-tree-handler.js +3 -66
- package/command-line-interface/runner/package-tree-handler.js.map +1 -1
- package/command-line-interface/runner/preview-handler.js +4 -50
- package/command-line-interface/runner/preview-handler.js.map +1 -1
- package/command-line-interface/runner/progress-wiring.js +0 -32
- package/command-line-interface/runner/progress-wiring.js.map +1 -1
- package/command-line-interface/runner/publish-handler.js +2 -45
- package/command-line-interface/runner/publish-handler.js.map +1 -1
- package/command-line-interface/runner/release-diff-handler.js +3 -33
- package/command-line-interface/runner/release-diff-handler.js.map +1 -1
- package/command-line-interface/runner/release-handler.js +5 -246
- package/command-line-interface/runner/release-handler.js.map +1 -1
- package/command-line-interface/runner/release-output-files.js +2 -24
- package/command-line-interface/runner/release-output-files.js.map +1 -1
- package/command-line-interface/runner/release-plan-result-printing.js +2 -25
- package/command-line-interface/runner/release-plan-result-printing.js.map +1 -1
- package/command-line-interface/runner/release-pr-branch-commit.js +2 -108
- package/command-line-interface/runner/release-pr-branch-commit.js.map +1 -1
- package/command-line-interface/runner/release-pr-github-client.js +8 -289
- package/command-line-interface/runner/release-pr-github-client.js.map +1 -1
- package/command-line-interface/runner/release-pr-workflow-run-cancellation.js +3 -66
- package/command-line-interface/runner/release-pr-workflow-run-cancellation.js.map +1 -1
- package/command-line-interface/runner/release-pr-workflow-runs.js +1 -52
- package/command-line-interface/runner/release-pr-workflow-runs.js.map +1 -1
- package/command-line-interface/runner/release-preparation.js +4 -91
- package/command-line-interface/runner/release-preparation.js.map +1 -1
- package/command-line-interface/runner/release-publish-authorization.js +1 -66
- package/command-line-interface/runner/release-publish-authorization.js.map +1 -1
- package/command-line-interface/runner/release-pull-request-ci.js +0 -297
- package/command-line-interface/runner/release-pull-request-ci.js.map +1 -1
- package/command-line-interface/runner/release-pull-request-config.d.ts +0 -38
- package/command-line-interface/runner/release-pull-request-config.d.ts.map +1 -1
- package/command-line-interface/runner/release-pull-request-config.js +5 -51
- package/command-line-interface/runner/release-pull-request-config.js.map +1 -1
- package/command-line-interface/runner/release-pull-request-handler.js +9 -320
- package/command-line-interface/runner/release-pull-request-handler.js.map +1 -1
- package/command-line-interface/runner/release-pull-request-policy.js +0 -46
- package/command-line-interface/runner/release-pull-request-policy.js.map +1 -1
- package/command-line-interface/runner/release-pull-request-settings.js +2 -18
- package/command-line-interface/runner/release-pull-request-settings.js.map +1 -1
- package/command-line-interface/runner/report-persistence.js +2 -25
- package/command-line-interface/runner/report-persistence.js.map +1 -1
- package/command-line-interface/runner/runner-symbols.js +1 -10
- package/command-line-interface/runner/runner-symbols.js.map +1 -1
- package/command-line-interface/runner/runner.js +14 -385
- package/command-line-interface/runner/runner.js.map +1 -1
- package/command-line-interface/runner/terminal-error-chain.js +0 -101
- package/command-line-interface/runner/terminal-error-chain.js.map +1 -1
- package/command-line-interface/spinner/line-spinner-renderer.js +2 -49
- package/command-line-interface/spinner/line-spinner-renderer.js.map +1 -1
- package/command-line-interface/spinner/spinner-boot.js +1 -9
- package/command-line-interface/spinner/spinner-boot.js.map +1 -1
- package/command-line-interface/spinner/spinner-glyphs.js +1 -30
- package/command-line-interface/spinner/spinner-glyphs.js.map +1 -1
- package/command-line-interface/spinner/spinner-render-sequence.js +2 -30
- package/command-line-interface/spinner/spinner-render-sequence.js.map +1 -1
- package/command-line-interface/spinner/spinner-runtime.js +1 -30
- package/command-line-interface/spinner/spinner-runtime.js.map +1 -1
- package/command-line-interface/spinner/spinner-shared-state.js +0 -271
- package/command-line-interface/spinner/spinner-shared-state.js.map +1 -1
- package/command-line-interface/spinner/spinner-snapshots.js +1 -11
- package/command-line-interface/spinner/spinner-snapshots.js.map +1 -1
- package/command-line-interface/spinner/spinner-worker-backend.js +0 -42
- package/command-line-interface/spinner/spinner-worker-backend.js.map +1 -1
- package/command-line-interface/spinner/spinner-worker-loop.js +3 -39
- package/command-line-interface/spinner/spinner-worker-loop.js.map +1 -1
- package/command-line-interface/spinner/terminal-spinner-renderer.js +0 -54
- package/command-line-interface/spinner/terminal-spinner-renderer.js.map +1 -1
- package/common/path-tree.js +2 -100
- package/common/path-tree.js.map +1 -1
- package/package.json +3 -3
- package/packages/command-line-interface/pull-request-label-versioning.js +3 -80
- package/packages/command-line-interface/pull-request-label-versioning.js.map +1 -1
- package/packages/command-line-interface/spinner-boot.entry-point.js +3 -40
- package/packages/command-line-interface/spinner-boot.entry-point.js.map +1 -1
- package/packtory/changelog-source-file-history.js +2 -108
- package/packtory/changelog-source-file-history.js.map +1 -1
- package/packtory/packtory-changelog.js +5 -294
- package/packtory/packtory-changelog.js.map +1 -1
- package/report/html-renderer/artifact-tree-renderer.js +4 -28
- package/report/html-renderer/artifact-tree-renderer.js.map +1 -1
- package/report/html-renderer/diagnostics-renderer.js +2 -38
- package/report/html-renderer/diagnostics-renderer.js.map +1 -1
- package/report/html-renderer/diff-renderer.js +1 -28
- package/report/html-renderer/diff-renderer.js.map +1 -1
- package/report/html-renderer/eliminated-files-renderer.js +2 -15
- package/report/html-renderer/eliminated-files-renderer.js.map +1 -1
- package/report/html-renderer/html-escaping.js +0 -8
- package/report/html-renderer/html-escaping.js.map +1 -1
- package/report/html-renderer/html-primitives.js +1 -23
- package/report/html-renderer/html-primitives.js.map +1 -1
- package/report/html-renderer/html-renderer.js +4 -60
- package/report/html-renderer/html-renderer.js.map +1 -1
- package/report/html-renderer/html-styles.js +0 -176
- package/report/html-renderer/html-styles.js.map +1 -1
- package/report/html-renderer/package-renderer.js +6 -31
- package/report/html-renderer/package-renderer.js.map +1 -1
- package/report/preview/artifact-diff-builder.js +2 -19
- package/report/preview/artifact-diff-builder.js.map +1 -1
- package/report/preview/artifact-tree-builder.js +1 -19
- package/report/preview/artifact-tree-builder.js.map +1 -1
- package/report/preview/bundle-artifact-index.js +1 -15
- package/report/preview/bundle-artifact-index.js.map +1 -1
- package/report/preview/preview-document-state.js +0 -16
- package/report/preview/preview-document-state.js.map +1 -1
- package/report/preview/preview-document.js +6 -84
- package/report/preview/preview-document.js.map +1 -1
- package/report/preview/preview-result-inspectors.js +2 -33
- package/report/preview/preview-result-inspectors.js.map +1 -1
- package/report/preview/preview-summary.js +0 -25
- package/report/preview/preview-summary.js.map +1 -1
- package/report/release-diff/release-diff-document.js +2 -25
- package/report/release-diff/release-diff-document.js.map +1 -1
- package/report/release-diff/release-diff-summary.js +1 -39
- package/report/release-diff/release-diff-summary.js.map +1 -1
- package/report/terminal-renderer/terminal-artifact-renderer.js +2 -30
- package/report/terminal-renderer/terminal-artifact-renderer.js.map +1 -1
- package/report/terminal-renderer/terminal-package-dependencies-renderer.js +1 -77
- package/report/terminal-renderer/terminal-package-dependencies-renderer.js.map +1 -1
- package/report/terminal-renderer/terminal-package-renderer.js +2 -74
- package/report/terminal-renderer/terminal-package-renderer.js.map +1 -1
- package/report/terminal-renderer/terminal-package-tree-renderer.js +3 -16
- package/report/terminal-renderer/terminal-package-tree-renderer.js.map +1 -1
- package/report/terminal-renderer/terminal-preview-renderer-shared.js +3 -61
- package/report/terminal-renderer/terminal-preview-renderer-shared.js.map +1 -1
- package/report/terminal-renderer/terminal-preview-renderer.js +2 -54
- package/report/terminal-renderer/terminal-preview-renderer.js.map +1 -1
- package/report/terminal-renderer/terminal-release-diff-package-renderer.js +4 -145
- package/report/terminal-renderer/terminal-release-diff-package-renderer.js.map +1 -1
- package/report/terminal-renderer/terminal-release-diff-renderer.js +2 -48
- package/report/terminal-renderer/terminal-release-diff-renderer.js.map +1 -1
- package/sbom.cdx.json +15 -15
|
@@ -1,34 +1,3 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
function isFunction(value) {
|
|
4
|
-
return typeof value === 'function';
|
|
5
|
-
}
|
|
6
|
-
function unwrapConfigModule(module) {
|
|
7
|
-
if (hasProp(module, 'config')) {
|
|
8
|
-
return module.config;
|
|
9
|
-
}
|
|
10
|
-
if (hasProp(module, 'buildConfig')) {
|
|
11
|
-
const { buildConfig } = module;
|
|
12
|
-
if (isFunction(buildConfig)) {
|
|
13
|
-
return buildConfig();
|
|
14
|
-
}
|
|
15
|
-
throw new Error('Named export of "buildConfig" config file is not a function');
|
|
16
|
-
}
|
|
17
|
-
throw new Error('Config file doesn’t have a named export "config" nor "buildConfig"');
|
|
18
|
-
}
|
|
19
|
-
async function loadConfigModule(configFilePath, importModule) {
|
|
20
|
-
const module = await importModule(configFilePath);
|
|
21
|
-
if (!isPlainObject(module)) {
|
|
22
|
-
throw new Error('Invalid config file');
|
|
23
|
-
}
|
|
24
|
-
return unwrapConfigModule(module);
|
|
25
|
-
}
|
|
26
|
-
export function createConfigLoader(dependencies) {
|
|
27
|
-
const { currentWorkingDirectory, importModule } = dependencies;
|
|
28
|
-
async function loadPacktoryConfig() {
|
|
29
|
-
const configFilePath = path.join(currentWorkingDirectory, 'packtory.config.js');
|
|
30
|
-
return loadConfigModule(configFilePath, importModule);
|
|
31
|
-
}
|
|
32
|
-
return { load: loadPacktoryConfig };
|
|
33
|
-
}
|
|
1
|
+
import 'node:path';
|
|
2
|
+
import 'remeda';
|
|
34
3
|
//# sourceMappingURL=config-loader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../../../source/command-line-interface/config-loader.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../../../source/command-line-interface/config-loader.ts"],"names":[],"mappings":"AAAA,OAAiB,WAAW,CAAC;AAC7B,OAAuC,QAAQ,CAAC"}
|
|
@@ -1,32 +1 @@
|
|
|
1
|
-
const oneTimePasswordPromptTimeoutMs = 90_000;
|
|
2
|
-
async function readOneTimePassword(interfaceInstance, clock) {
|
|
3
|
-
const answer = await Promise.race([
|
|
4
|
-
interfaceInstance.question('Registry one-time password: '),
|
|
5
|
-
new Promise(function (resolve) {
|
|
6
|
-
clock.setTimeout(function () {
|
|
7
|
-
resolve(undefined);
|
|
8
|
-
}, oneTimePasswordPromptTimeoutMs);
|
|
9
|
-
})
|
|
10
|
-
]);
|
|
11
|
-
if (typeof answer !== 'string' || answer.trim().length === 0) {
|
|
12
|
-
throw new Error('One-time password input timed out or was empty');
|
|
13
|
-
}
|
|
14
|
-
return answer.trim();
|
|
15
|
-
}
|
|
16
|
-
export function createOneTimePasswordPrompt(dependencies) {
|
|
17
|
-
const { clock, isInteractiveTerminal, stopSpinner, createInterface } = dependencies;
|
|
18
|
-
return async function () {
|
|
19
|
-
if (!isInteractiveTerminal()) {
|
|
20
|
-
throw new Error('The registry requested a one-time password, but prompting requires an interactive terminal');
|
|
21
|
-
}
|
|
22
|
-
stopSpinner();
|
|
23
|
-
const interfaceInstance = createInterface();
|
|
24
|
-
try {
|
|
25
|
-
return await readOneTimePassword(interfaceInstance, clock);
|
|
26
|
-
}
|
|
27
|
-
finally {
|
|
28
|
-
interfaceInstance.close();
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
1
|
//# sourceMappingURL=one-time-password-prompt.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"one-time-password-prompt.js","sourceRoot":"","sources":["../../../../source/command-line-interface/one-time-password-prompt.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"one-time-password-prompt.js","sourceRoot":"","sources":["../../../../source/command-line-interface/one-time-password-prompt.ts"],"names":[],"mappings":""}
|
|
@@ -1,32 +1,3 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
export function createPreviewIo(dependencies) {
|
|
4
|
-
const shell = dependencies.shell ?? 'sh';
|
|
5
|
-
return {
|
|
6
|
-
createTemporaryPreviewHtmlPath() {
|
|
7
|
-
return path.join(dependencies.tmpdir(), `packtory-preview-${dependencies.randomUuid()}.html`);
|
|
8
|
-
},
|
|
9
|
-
async pagePreviewOutput(content) {
|
|
10
|
-
if (!dependencies.stdoutIsTTY) {
|
|
11
|
-
return false;
|
|
12
|
-
}
|
|
13
|
-
if (dependencies.pager !== undefined && dependencies.pager !== '') {
|
|
14
|
-
const didPage = await spawnForCompletion(dependencies.spawnProcess, shell, ['-lc', dependencies.pager], content);
|
|
15
|
-
if (didPage) {
|
|
16
|
-
return true;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
return spawnForCompletion(dependencies.spawnProcess, shell, ['-lc', 'less -R'], content);
|
|
20
|
-
},
|
|
21
|
-
async openPreviewFile(filePath) {
|
|
22
|
-
try {
|
|
23
|
-
await dependencies.openFile(filePath);
|
|
24
|
-
return true;
|
|
25
|
-
}
|
|
26
|
-
catch {
|
|
27
|
-
return false;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
}
|
|
1
|
+
import 'node:path';
|
|
2
|
+
import "./preview-spawn.js";
|
|
32
3
|
//# sourceMappingURL=preview-io-shared.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preview-io-shared.js","sourceRoot":"","sources":["../../../../../source/command-line-interface/preview-io/preview-io-shared.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"preview-io-shared.js","sourceRoot":"","sources":["../../../../../source/command-line-interface/preview-io/preview-io-shared.ts"],"names":[],"mappings":"AAAA,OAAiB,WAAW,CAAC;AAC7B,OAAuD,oBAAoB,CAAC"}
|
|
@@ -1,16 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
export function createDefaultPreviewIo(dependencies) {
|
|
6
|
-
return createPreviewIo({
|
|
7
|
-
openFile: dependencies.openFile,
|
|
8
|
-
spawnProcess: dependencies.spawnProcess ?? defaultSpawnProcess,
|
|
9
|
-
randomUuid: dependencies.randomUuid ?? randomUUID,
|
|
10
|
-
tmpdir: dependencies.tmpdir ?? os.tmpdir,
|
|
11
|
-
shell: dependencies.shell,
|
|
12
|
-
pager: dependencies.pager,
|
|
13
|
-
stdoutIsTTY: dependencies.stdoutIsTTY
|
|
14
|
-
});
|
|
15
|
-
}
|
|
1
|
+
import 'node:crypto';
|
|
2
|
+
import 'node:os';
|
|
3
|
+
import "./preview-io-shared.js";
|
|
4
|
+
import "./preview-spawn.js";
|
|
16
5
|
//# sourceMappingURL=preview-io.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preview-io.js","sourceRoot":"","sources":["../../../../../source/command-line-interface/preview-io/preview-io.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"preview-io.js","sourceRoot":"","sources":["../../../../../source/command-line-interface/preview-io/preview-io.ts"],"names":[],"mappings":"AAAA,OAA2B,aAAa,CAAC;AACzC,OAAe,SAAS,CAAC;AACzB,OAA4E,wBAAwB,CAAC;AACrG,OAAoC,oBAAoB,CAAC"}
|
|
@@ -1,27 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
export function defaultSpawnProcess(command, commandArguments, options) {
|
|
3
|
-
return spawn(command, Array.from(commandArguments), {
|
|
4
|
-
...options,
|
|
5
|
-
stdio: options.stdio === 'ignore' ? 'ignore' : Array.from(options.stdio)
|
|
6
|
-
});
|
|
7
|
-
}
|
|
8
|
-
export async function spawnForCompletion(spawnProcess, command, commandArguments, content) {
|
|
9
|
-
return new Promise(function (resolve) {
|
|
10
|
-
const child = spawnProcess(command, commandArguments, { stdio: ['pipe', 'inherit', 'inherit'] });
|
|
11
|
-
if (child.stdin === null) {
|
|
12
|
-
resolve(false);
|
|
13
|
-
return;
|
|
14
|
-
}
|
|
15
|
-
child.on('error', function () {
|
|
16
|
-
resolve(false);
|
|
17
|
-
});
|
|
18
|
-
child.on('close', function (code) {
|
|
19
|
-
resolve(code === 0);
|
|
20
|
-
});
|
|
21
|
-
child.stdin.on('error', function () {
|
|
22
|
-
resolve(false);
|
|
23
|
-
});
|
|
24
|
-
child.stdin.end(content);
|
|
25
|
-
});
|
|
26
|
-
}
|
|
1
|
+
import 'node:child_process';
|
|
27
2
|
//# sourceMappingURL=preview-spawn.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preview-spawn.js","sourceRoot":"","sources":["../../../../../source/command-line-interface/preview-io/preview-spawn.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"preview-spawn.js","sourceRoot":"","sources":["../../../../../source/command-line-interface/preview-io/preview-spawn.ts"],"names":[],"mappings":"AAAA,OAAsB,oBAAoB,CAAC"}
|
|
@@ -1,221 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
function isPassThroughObject(value) {
|
|
7
|
-
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
8
|
-
}
|
|
9
|
-
function isChangelogSettings(changelog) {
|
|
10
|
-
return changelog?.prLog === undefined || isPassThroughObject(changelog.prLog);
|
|
11
|
-
}
|
|
12
|
-
export function parseValidConfig(config) {
|
|
13
|
-
const result = safeParse(packtoryConfigSchema, config);
|
|
14
|
-
if (!result.success || !isChangelogSettings(result.data.changelog)) {
|
|
15
|
-
return undefined;
|
|
16
|
-
}
|
|
17
|
-
return {
|
|
18
|
-
changelog: result.data.changelog,
|
|
19
|
-
commonPackageSettings: result.data.commonPackageSettings,
|
|
20
|
-
packages: result.data.packages
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
export function createChangelogGenerationOptions(config) {
|
|
24
|
-
return {
|
|
25
|
-
explicitBaseRef: config.changelog?.explicitBaseRef,
|
|
26
|
-
packageTagFormat: config.changelog?.packageTagFormat,
|
|
27
|
-
prLogConfig: createPrLogConfig(config.changelog),
|
|
28
|
-
targetScopedLabelPattern: config.changelog?.targetScopedLabelPattern
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
function normalizeConfiguredPath(filePath) {
|
|
32
|
-
return filePath.split(/[/\\]/u).join(path.sep);
|
|
33
|
-
}
|
|
34
|
-
function resolveRepositoryPath(dependencies, filePath) {
|
|
35
|
-
return path.resolve(dependencies.workingDirectory, normalizeConfiguredPath(filePath));
|
|
36
|
-
}
|
|
37
|
-
function toRepositoryRelativePath(workingDirectory, filePath) {
|
|
38
|
-
return path.relative(workingDirectory, filePath).split(path.sep).join('/');
|
|
39
|
-
}
|
|
40
|
-
function resolvePackageSourcesFolder(packageConfig, config) {
|
|
41
|
-
const sourcesFolder = packageConfig.sourcesFolder ?? config.commonPackageSettings?.sourcesFolder;
|
|
42
|
-
if (sourcesFolder === undefined) {
|
|
43
|
-
throw new Error(`Config for package "${packageConfig.name}" is missing the sources folder`);
|
|
44
|
-
}
|
|
45
|
-
return sourcesFolder;
|
|
46
|
-
}
|
|
47
|
-
export function collectChangelogSourceFileRoots(dependencies, config) {
|
|
48
|
-
return new Map(config.packages.map(function (packageConfig) {
|
|
49
|
-
const sourcesFolder = resolvePackageSourcesFolder(packageConfig, config);
|
|
50
|
-
const absoluteSourceFolder = resolveRepositoryPath(dependencies, sourcesFolder);
|
|
51
|
-
return [
|
|
52
|
-
packageConfig.name,
|
|
53
|
-
[toRepositoryRelativePath(dependencies.workingDirectory, absoluteSourceFolder)]
|
|
54
|
-
];
|
|
55
|
-
}));
|
|
56
|
-
}
|
|
57
|
-
function mapPackageConfigByName(config) {
|
|
58
|
-
return new Map(config.packages.map(function (packageConfig) {
|
|
59
|
-
return [packageConfig.name, packageConfig];
|
|
60
|
-
}));
|
|
61
|
-
}
|
|
62
|
-
function resolvePackageFilePath(dependencies, config, packageConfig, outputPath) {
|
|
63
|
-
return path.resolve(dependencies.workingDirectory, normalizeConfiguredPath(resolvePackageSourcesFolder(packageConfig, config)), normalizeConfiguredPath(outputPath));
|
|
64
|
-
}
|
|
65
|
-
function resolveExplicitPackageFilePath(dependencies, output, packageName) {
|
|
66
|
-
const outputPath = output.paths[packageName];
|
|
67
|
-
if (outputPath === undefined) {
|
|
68
|
-
throw new Error(`Changelog output path for package "${packageName}" is missing`);
|
|
69
|
-
}
|
|
70
|
-
return resolveRepositoryPath(dependencies, outputPath);
|
|
71
|
-
}
|
|
72
|
-
function hasSharedPackagePath(output) {
|
|
73
|
-
return Object.hasOwn(output, 'path');
|
|
74
|
-
}
|
|
75
|
-
export function collectGeneratedAttributionPaths(dependencies, config) {
|
|
76
|
-
return generatedAttributionPaths.collectGeneratedAttributionPaths(dependencies.workingDirectory, config);
|
|
77
|
-
}
|
|
78
|
-
export function shouldPageGroupedChangelog(outputs) {
|
|
79
|
-
return (outputs === undefined ||
|
|
80
|
-
outputs.some(function (output) {
|
|
81
|
-
return output.kind === 'github-release';
|
|
82
|
-
}));
|
|
83
|
-
}
|
|
84
|
-
function collectRepositoryDestinations(dependencies, outputs, changelog) {
|
|
85
|
-
return outputs.flatMap(function (output) {
|
|
86
|
-
if (output.kind !== 'repository-file') {
|
|
87
|
-
return [];
|
|
88
|
-
}
|
|
89
|
-
return [{
|
|
90
|
-
filePath: resolveRepositoryPath(dependencies, output.path),
|
|
91
|
-
generatedMarkdown: changelog.groupedMarkdown
|
|
92
|
-
}];
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
function collectRepositoryOutputFilePaths(dependencies, outputs) {
|
|
96
|
-
return outputs.flatMap(function (output) {
|
|
97
|
-
if (output.kind !== 'repository-file') {
|
|
98
|
-
return [];
|
|
99
|
-
}
|
|
100
|
-
return [{ filePath: resolveRepositoryPath(dependencies, output.path), packageName: undefined }];
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
function collectPackageDestinationsWithSharedPath(dependencies, config, output, changelog) {
|
|
104
|
-
const packageConfigsByName = mapPackageConfigByName(config);
|
|
105
|
-
return Array.from(changelog.packageMarkdownByName, function ([packageName, generatedMarkdown]) {
|
|
106
|
-
const packageConfig = packageConfigsByName.get(packageName);
|
|
107
|
-
if (packageConfig === undefined) {
|
|
108
|
-
throw new Error(`Config for package "${packageName}" is missing`);
|
|
109
|
-
}
|
|
110
|
-
return {
|
|
111
|
-
filePath: resolvePackageFilePath(dependencies, config, packageConfig, output.path),
|
|
112
|
-
generatedMarkdown
|
|
113
|
-
};
|
|
114
|
-
});
|
|
115
|
-
}
|
|
116
|
-
function collectPackageOutputFilePathsWithSharedPath(dependencies, config, output) {
|
|
117
|
-
return config.packages.map(function (packageConfig) {
|
|
118
|
-
return {
|
|
119
|
-
filePath: resolvePackageFilePath(dependencies, config, packageConfig, output.path),
|
|
120
|
-
packageName: packageConfig.name
|
|
121
|
-
};
|
|
122
|
-
});
|
|
123
|
-
}
|
|
124
|
-
function collectPackageDestinationsWithExplicitPaths(dependencies, output, changelog) {
|
|
125
|
-
return Array.from(changelog.packageMarkdownByName, function ([packageName, generatedMarkdown]) {
|
|
126
|
-
return { filePath: resolveExplicitPackageFilePath(dependencies, output, packageName), generatedMarkdown };
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
function collectPackageOutputFilePathsWithExplicitPaths(dependencies, output) {
|
|
130
|
-
return Object.entries(output.paths).map(function ([packageName, outputPath]) {
|
|
131
|
-
return { filePath: resolveRepositoryPath(dependencies, outputPath), packageName };
|
|
132
|
-
});
|
|
133
|
-
}
|
|
134
|
-
function collectPackageDestinations(dependencies, config, outputs, changelog) {
|
|
135
|
-
return outputs.flatMap(function (output) {
|
|
136
|
-
if (output.kind !== 'package-file') {
|
|
137
|
-
return [];
|
|
138
|
-
}
|
|
139
|
-
if (hasSharedPackagePath(output)) {
|
|
140
|
-
return collectPackageDestinationsWithSharedPath(dependencies, config, output, changelog);
|
|
141
|
-
}
|
|
142
|
-
return collectPackageDestinationsWithExplicitPaths(dependencies, output, changelog);
|
|
143
|
-
});
|
|
144
|
-
}
|
|
145
|
-
function collectPackageOutputFilePaths(dependencies, config, outputs) {
|
|
146
|
-
return outputs.flatMap(function (output) {
|
|
147
|
-
if (output.kind !== 'package-file') {
|
|
148
|
-
return [];
|
|
149
|
-
}
|
|
150
|
-
if (hasSharedPackagePath(output)) {
|
|
151
|
-
return collectPackageOutputFilePathsWithSharedPath(dependencies, config, output);
|
|
152
|
-
}
|
|
153
|
-
return collectPackageOutputFilePathsWithExplicitPaths(dependencies, output);
|
|
154
|
-
});
|
|
155
|
-
}
|
|
156
|
-
export function collectChangelogOutputFilePaths(dependencies, config) {
|
|
157
|
-
const outputs = config.changelog?.outputs;
|
|
158
|
-
if (outputs === undefined) {
|
|
159
|
-
return [];
|
|
160
|
-
}
|
|
161
|
-
return [
|
|
162
|
-
...collectRepositoryOutputFilePaths(dependencies, outputs),
|
|
163
|
-
...collectPackageOutputFilePaths(dependencies, config, outputs)
|
|
164
|
-
];
|
|
165
|
-
}
|
|
166
|
-
function isMissingFileError(error) {
|
|
167
|
-
return Reflect.get(new Object(error), 'code') === 'ENOENT';
|
|
168
|
-
}
|
|
169
|
-
async function readChangelogMarkdown(fileManager, filePath) {
|
|
170
|
-
try {
|
|
171
|
-
return await fileManager.readFile(filePath);
|
|
172
|
-
}
|
|
173
|
-
catch (error) {
|
|
174
|
-
if (isMissingFileError(error)) {
|
|
175
|
-
return '';
|
|
176
|
-
}
|
|
177
|
-
throw error;
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
async function buildChangelogFile(dependencies, prLogEngine, destination) {
|
|
181
|
-
if (destination.generatedMarkdown.length === 0) {
|
|
182
|
-
return undefined;
|
|
183
|
-
}
|
|
184
|
-
const existingChangelogMarkdownValue = await readChangelogMarkdown(dependencies.fileManager, destination.filePath);
|
|
185
|
-
const content = prLogEngine.updateChangelog({
|
|
186
|
-
existingChangelogMarkdown: existingChangelogMarkdownValue,
|
|
187
|
-
generatedChangelogMarkdown: destination.generatedMarkdown
|
|
188
|
-
});
|
|
189
|
-
return { content, filePath: destination.filePath };
|
|
190
|
-
}
|
|
191
|
-
function collectChangelogDestinations(dependencies, config, changelog) {
|
|
192
|
-
const outputs = config.changelog?.outputs;
|
|
193
|
-
if (outputs === undefined) {
|
|
194
|
-
return [];
|
|
195
|
-
}
|
|
196
|
-
return [
|
|
197
|
-
...collectRepositoryDestinations(dependencies, outputs, changelog),
|
|
198
|
-
...collectPackageDestinations(dependencies, config, outputs, changelog)
|
|
199
|
-
];
|
|
200
|
-
}
|
|
201
|
-
export async function buildConfiguredChangelogFiles(dependencies, config, prLogEngine, changelog) {
|
|
202
|
-
const destinations = collectChangelogDestinations(dependencies, config, changelog);
|
|
203
|
-
const writtenFiles = [];
|
|
204
|
-
for (const destination of destinations) {
|
|
205
|
-
const writtenFile = await buildChangelogFile(dependencies, prLogEngine, destination);
|
|
206
|
-
if (writtenFile !== undefined) {
|
|
207
|
-
writtenFiles.push(writtenFile);
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
return writtenFiles;
|
|
211
|
-
}
|
|
212
|
-
export async function writeConfiguredChangelogs(dependencies, config, prLogEngine, changelog) {
|
|
213
|
-
const writtenFiles = await buildConfiguredChangelogFiles(dependencies, config, prLogEngine, changelog);
|
|
214
|
-
for (const file of writtenFiles) {
|
|
215
|
-
await dependencies.fileManager.writeFile(file.filePath, file.content);
|
|
216
|
-
}
|
|
217
|
-
return writtenFiles.map(function (file) {
|
|
218
|
-
return file.filePath;
|
|
219
|
-
});
|
|
220
|
-
}
|
|
1
|
+
import 'node:path';
|
|
2
|
+
import "packtory/common/schema-validation.js";
|
|
3
|
+
import "packtory/config/packtory-config-schema.js";
|
|
4
|
+
import "packtory/packtory/generated-attribution-paths.js";
|
|
5
|
+
import "./changelog-pr-log-config.js";
|
|
221
6
|
//# sourceMappingURL=changelog-destinations.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"changelog-destinations.js","sourceRoot":"","sources":["../../../../../source/command-line-interface/runner/changelog-destinations.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"changelog-destinations.js","sourceRoot":"","sources":["../../../../../source/command-line-interface/runner/changelog-destinations.ts"],"names":[],"mappings":"AAAA,OAAiB,WAAW,CAAC;AAG7B,OAA0B,sCAAmC,CAAC;AAE9D,OAAqC,2CAAwC,CAAC;AAE9E,OAA2C,kDAA+C,CAAC;AAE3F,OAAkC,8BAA8B,CAAC;AA+EvC"}
|
|
@@ -1,80 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
function toError(error) {
|
|
7
|
-
return error instanceof Error ? error : new Error(String(error));
|
|
8
|
-
}
|
|
9
|
-
function formatChangelogHandlerError(error) {
|
|
10
|
-
return formatTerminalError(toError(error));
|
|
11
|
-
}
|
|
12
|
-
function formatChangelogHandlerTrace(error) {
|
|
13
|
-
return formatTerminalErrorTrace(toError(error));
|
|
14
|
-
}
|
|
15
|
-
function readGitHubToken(dependencies) {
|
|
16
|
-
return dependencies.readEnvironmentVariable('GH_TOKEN') ?? dependencies.readEnvironmentVariable('GITHUB_TOKEN');
|
|
17
|
-
}
|
|
18
|
-
function createEngine(dependencies, config) {
|
|
19
|
-
return dependencies.createPrLogEngine({
|
|
20
|
-
githubToken: readGitHubToken(dependencies),
|
|
21
|
-
workingDirectory: dependencies.workingDirectory,
|
|
22
|
-
config
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
async function renderChangelog(dependencies, config, packages) {
|
|
26
|
-
if (packages.length === 0) {
|
|
27
|
-
return;
|
|
28
|
-
}
|
|
29
|
-
const packageInfo = await dependencies.readPackageInfo();
|
|
30
|
-
const generationOptions = createChangelogGenerationOptions(config);
|
|
31
|
-
const prLogEngine = createEngine(dependencies, generationOptions.prLogConfig);
|
|
32
|
-
const changelog = await generateChangelogOutputs({
|
|
33
|
-
packages,
|
|
34
|
-
prLogEngine,
|
|
35
|
-
changelogSourceFileRootsByPackageName: collectChangelogSourceFileRoots(dependencies, config),
|
|
36
|
-
explicitBaseRef: generationOptions.explicitBaseRef,
|
|
37
|
-
githubRepo: formatGitHubRepositoryName(packageInfo),
|
|
38
|
-
ignoredAttributionPaths: collectGeneratedAttributionPaths(dependencies, config),
|
|
39
|
-
packageTagFormat: generationOptions.packageTagFormat,
|
|
40
|
-
currentDate: dependencies.currentDate(),
|
|
41
|
-
prLogConfig: generationOptions.prLogConfig,
|
|
42
|
-
targetScopedLabelPattern: generationOptions.targetScopedLabelPattern
|
|
43
|
-
});
|
|
44
|
-
if (shouldPageGroupedChangelog(config.changelog?.outputs) && changelog.groupedMarkdown.length > 0) {
|
|
45
|
-
await dependencies.pageOutput(changelog.groupedMarkdown);
|
|
46
|
-
}
|
|
47
|
-
await writeConfiguredChangelogs(dependencies, config, prLogEngine, changelog);
|
|
48
|
-
}
|
|
49
|
-
function resolveReleasePlanExitCode(log, result, trace) {
|
|
50
|
-
if (result.isOk) {
|
|
51
|
-
return 0;
|
|
52
|
-
}
|
|
53
|
-
printReleasePlanFailure(log, result.error, trace);
|
|
54
|
-
return 1;
|
|
55
|
-
}
|
|
56
|
-
async function runChangelog(dependencies) {
|
|
57
|
-
const config = await dependencies.configLoader.load();
|
|
58
|
-
const outcome = await dependencies.packtory.planReleaseAgainstLatestPublished(config);
|
|
59
|
-
dependencies.spinnerRenderer.stopAll();
|
|
60
|
-
const validConfig = parseValidConfig(config);
|
|
61
|
-
if (validConfig !== undefined) {
|
|
62
|
-
await renderChangelog(dependencies, validConfig, collectReleasePlanPackages(outcome.result));
|
|
63
|
-
}
|
|
64
|
-
return resolveReleasePlanExitCode(dependencies.log, outcome.result, dependencies.trace);
|
|
65
|
-
}
|
|
66
|
-
function stopSpinnersAndReturn(dependencies, exitCode) {
|
|
67
|
-
dependencies.spinnerRenderer.stopAll();
|
|
68
|
-
return exitCode;
|
|
69
|
-
}
|
|
70
|
-
export async function runChangelogHandler(dependencies) {
|
|
71
|
-
try {
|
|
72
|
-
return stopSpinnersAndReturn(dependencies, await runChangelog(dependencies));
|
|
73
|
-
}
|
|
74
|
-
catch (error) {
|
|
75
|
-
const formatError = dependencies.trace ? formatChangelogHandlerTrace : formatChangelogHandlerError;
|
|
76
|
-
dependencies.log(formatError(error));
|
|
77
|
-
return stopSpinnersAndReturn(dependencies, 1);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
1
|
+
import "../../packtory/packtory-changelog.js";
|
|
2
|
+
import "./changelog-destinations.js";
|
|
3
|
+
import "./github-repository.js";
|
|
4
|
+
import "./release-plan-result-printing.js";
|
|
5
|
+
import "./terminal-error-chain.js";
|
|
80
6
|
//# sourceMappingURL=changelog-handler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"changelog-handler.js","sourceRoot":"","sources":["../../../../../source/command-line-interface/runner/changelog-handler.ts"],"names":[],"mappings":"AAGA,
|
|
1
|
+
{"version":3,"file":"changelog-handler.js","sourceRoot":"","sources":["../../../../../source/command-line-interface/runner/changelog-handler.ts"],"names":[],"mappings":"AAGA,OAAyC,sCAAsC,CAAC;AAGhF,OAOO,6BAA6B,CAAC;AACrC,OAA2C,wBAAwB,CAAC;AACpE,OAAoE,mCAAmC,CAAC;AACxG,OAA8D,2BAA2B,CAAC"}
|