@packtory/cli 0.0.102 → 0.0.103
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 +2 -2
- 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 +10 -10
package/common/path-tree.js
CHANGED
|
@@ -1,101 +1,3 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
export const pathTreeNodeType = {
|
|
4
|
-
directory: 'directory',
|
|
5
|
-
file: 'file'
|
|
6
|
-
};
|
|
7
|
-
const manifestFilePriority = 0;
|
|
8
|
-
const directoryPriority = 1;
|
|
9
|
-
const regularFilePriority = 2;
|
|
10
|
-
function priorityOf(node) {
|
|
11
|
-
if (node.type === pathTreeNodeType.file && node.name === packageManifestFilePath) {
|
|
12
|
-
return manifestFilePriority;
|
|
13
|
-
}
|
|
14
|
-
if (node.type === pathTreeNodeType.directory) {
|
|
15
|
-
return directoryPriority;
|
|
16
|
-
}
|
|
17
|
-
return regularFilePriority;
|
|
18
|
-
}
|
|
19
|
-
function comparePathNodes(left, right) {
|
|
20
|
-
const priorityDifference = priorityOf(left) - priorityOf(right);
|
|
21
|
-
if (priorityDifference !== 0) {
|
|
22
|
-
return priorityDifference;
|
|
23
|
-
}
|
|
24
|
-
return left.name.localeCompare(right.name);
|
|
25
|
-
}
|
|
26
|
-
function isDirectoryChild(child) {
|
|
27
|
-
return child.node.type === pathTreeNodeType.directory;
|
|
28
|
-
}
|
|
29
|
-
function toPathEntries(items, getPath) {
|
|
30
|
-
return items.map(function (item) {
|
|
31
|
-
const itemPath = getPath(item);
|
|
32
|
-
const pathParts = itemPath.split('/');
|
|
33
|
-
return { item, path: itemPath, parts: [pathParts.at(0) ?? itemPath, ...pathParts.slice(1)] };
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
function toNestedDirectoryEntry(entry) {
|
|
37
|
-
const [name, nextPart, ...remainingParts] = entry.parts;
|
|
38
|
-
if (nextPart === undefined) {
|
|
39
|
-
return undefined;
|
|
40
|
-
}
|
|
41
|
-
return [name, { ...entry, parts: [nextPart, ...remainingParts] }];
|
|
42
|
-
}
|
|
43
|
-
function toDirectoryGroups(entries) {
|
|
44
|
-
const groups = new Map();
|
|
45
|
-
for (const entry of entries) {
|
|
46
|
-
const nestedEntry = toNestedDirectoryEntry(entry);
|
|
47
|
-
if (nestedEntry !== undefined) {
|
|
48
|
-
const [name, groupedEntry] = nestedEntry;
|
|
49
|
-
const groupedEntries = groups.get(name) ?? [];
|
|
50
|
-
groupedEntries.push(groupedEntry);
|
|
51
|
-
groups.set(name, groupedEntries);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
return Array.from(groups, function ([name, groupedEntries]) {
|
|
55
|
-
return { name, entries: groupedEntries };
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
function toDirectoryChildren(entries, directoryPath, depth) {
|
|
59
|
-
return toDirectoryGroups(entries).map(function (entry) {
|
|
60
|
-
const node = {
|
|
61
|
-
type: pathTreeNodeType.directory,
|
|
62
|
-
path: path.posix.join(directoryPath, entry.name),
|
|
63
|
-
name: entry.name,
|
|
64
|
-
depth: depth + 1
|
|
65
|
-
};
|
|
66
|
-
return { node, directory: entry };
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
function toFileChildren(entries, depth) {
|
|
70
|
-
return entries.flatMap(function (entry) {
|
|
71
|
-
if (entry.parts.length !== 1) {
|
|
72
|
-
return [];
|
|
73
|
-
}
|
|
74
|
-
const node = {
|
|
75
|
-
type: pathTreeNodeType.file,
|
|
76
|
-
path: entry.path,
|
|
77
|
-
name: path.posix.basename(entry.path),
|
|
78
|
-
depth,
|
|
79
|
-
item: entry.item
|
|
80
|
-
};
|
|
81
|
-
return [{ node }];
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
function flattenTree(entries, directoryPath, depth) {
|
|
85
|
-
const nodes = [];
|
|
86
|
-
const children = [...toDirectoryChildren(entries, directoryPath, depth), ...toFileChildren(entries, depth)]
|
|
87
|
-
.toSorted(function (left, right) {
|
|
88
|
-
return comparePathNodes(left.node, right.node);
|
|
89
|
-
});
|
|
90
|
-
for (const child of children) {
|
|
91
|
-
nodes.push(child.node);
|
|
92
|
-
if (isDirectoryChild(child)) {
|
|
93
|
-
nodes.push(...flattenTree(child.directory.entries, child.node.path, child.node.depth));
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
return nodes;
|
|
97
|
-
}
|
|
98
|
-
export function buildPathTree(items, getPath) {
|
|
99
|
-
return flattenTree(toPathEntries(items, getPath), '', 0);
|
|
100
|
-
}
|
|
1
|
+
import 'node:path';
|
|
2
|
+
import "packtory/common/package-layout.js";
|
|
101
3
|
//# sourceMappingURL=path-tree.js.map
|
package/common/path-tree.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"path-tree.js","sourceRoot":"","sources":["../../../../source/common/path-tree.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"path-tree.js","sourceRoot":"","sources":["../../../../source/common/path-tree.ts"],"names":[],"mappings":"AAAA,OAAiB,WAAW,CAAC;AAC7B,OAAwC,mCAAqB,CAAC"}
|
package/package.json
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"cmd-ts": "0.15.0",
|
|
18
18
|
"diff": "9.0.0",
|
|
19
19
|
"open": "11.0.1",
|
|
20
|
-
"packtory": "0.0.
|
|
20
|
+
"packtory": "0.0.92",
|
|
21
21
|
"remeda": "2.43.0",
|
|
22
22
|
"semver": "7.8.5",
|
|
23
23
|
"true-myth": "9.4.0",
|
|
@@ -59,5 +59,5 @@
|
|
|
59
59
|
"./packages/command-line-interface/spinner-worker.entry-point.js"
|
|
60
60
|
],
|
|
61
61
|
"type": "module",
|
|
62
|
-
"version": "0.0.
|
|
62
|
+
"version": "0.0.103"
|
|
63
63
|
}
|
|
@@ -1,81 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
function orderedVersionBumpLevels() {
|
|
5
|
-
return ['major', 'minor', 'patch'];
|
|
6
|
-
}
|
|
7
|
-
function readGitHubToken(dependencies) {
|
|
8
|
-
return dependencies.readEnvironmentVariable('GH_TOKEN') ?? dependencies.readEnvironmentVariable('GITHUB_TOKEN');
|
|
9
|
-
}
|
|
10
|
-
function createEngine(dependencies, config) {
|
|
11
|
-
return dependencies.createPrLogEngine({
|
|
12
|
-
githubToken: readGitHubToken(dependencies),
|
|
13
|
-
workingDirectory: dependencies.workingDirectory,
|
|
14
|
-
config
|
|
15
|
-
});
|
|
16
|
-
}
|
|
17
|
-
function selectVersionBumpLevel(pullRequests, versionBumps) {
|
|
18
|
-
const labels = new Set(pullRequests.map(function (pullRequest) {
|
|
19
|
-
return pullRequest.label;
|
|
20
|
-
}));
|
|
21
|
-
return orderedVersionBumpLevels().find(function (level) {
|
|
22
|
-
return versionBumps[level].some(function (label) {
|
|
23
|
-
return labels.has(label);
|
|
24
|
-
});
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
function incrementVersion(version, level) {
|
|
28
|
-
const nextVersion = semver.inc(version, level);
|
|
29
|
-
if (nextVersion === null) {
|
|
30
|
-
throw new Error(`Failed to increment version "${version}"`);
|
|
31
|
-
}
|
|
32
|
-
return nextVersion;
|
|
33
|
-
}
|
|
34
|
-
function selectNextVersion(currentVersion, pullRequests, versionBumps) {
|
|
35
|
-
const versionBumpLevel = selectVersionBumpLevel(pullRequests, versionBumps);
|
|
36
|
-
return versionBumpLevel === undefined ? currentVersion : incrementVersion(currentVersion, versionBumpLevel);
|
|
37
|
-
}
|
|
38
|
-
export function createPullRequestLabelVersionSourceResolver(dependencies) {
|
|
39
|
-
async function collectLabeledPullRequests(input, packtoryConfig) {
|
|
40
|
-
const packageInfo = await dependencies.readPackageInfo();
|
|
41
|
-
const githubRepo = formatGitHubRepositoryName(packageInfo);
|
|
42
|
-
const prLogConfig = createPrLogConfig(packtoryConfig.changelog);
|
|
43
|
-
const prLogEngine = createEngine(dependencies, prLogConfig);
|
|
44
|
-
const baseRef = await prLogEngine.resolveChangelogBaseRef({
|
|
45
|
-
packageName: input.packageName,
|
|
46
|
-
previousVersion: input.currentVersion,
|
|
47
|
-
previousGitHead: undefined,
|
|
48
|
-
packageTagFormat: packtoryConfig.changelog?.packageTagFormat,
|
|
49
|
-
explicitBaseRef: packtoryConfig.changelog?.explicitBaseRef
|
|
50
|
-
});
|
|
51
|
-
const pullRequests = await prLogEngine.collectMergedPullRequests({ githubRepo, baseRef: baseRef.ref });
|
|
52
|
-
const changedFilesByPullRequest = await prLogEngine.readPullRequestChangedFiles({
|
|
53
|
-
githubRepo,
|
|
54
|
-
pullRequests
|
|
55
|
-
});
|
|
56
|
-
const targetPullRequests = prLogEngine.filterPullRequestsByTargetFiles({
|
|
57
|
-
targetName: input.packageName,
|
|
58
|
-
targetSourceFiles: input.targetSourceFiles,
|
|
59
|
-
pullRequests,
|
|
60
|
-
changedFilesByPullRequest,
|
|
61
|
-
ignoredAttributionPaths: input.ignoredAttributionPaths
|
|
62
|
-
});
|
|
63
|
-
return prLogEngine.resolvePullRequestLabels({
|
|
64
|
-
githubRepo,
|
|
65
|
-
config: prLogConfig,
|
|
66
|
-
pullRequests: targetPullRequests,
|
|
67
|
-
targetName: input.packageName,
|
|
68
|
-
targetScopedLabelPattern: packtoryConfig.changelog?.targetScopedLabelPattern
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
return function (sourceInput) {
|
|
72
|
-
return async function (input) {
|
|
73
|
-
if (input.currentVersion === undefined) {
|
|
74
|
-
return '0.0.1';
|
|
75
|
-
}
|
|
76
|
-
const prLogConfig = createPrLogConfig(sourceInput.packtoryConfig.changelog);
|
|
77
|
-
return selectNextVersion(input.currentVersion, await collectLabeledPullRequests(input, sourceInput.packtoryConfig), prLogConfig.versionBumps);
|
|
78
|
-
};
|
|
79
|
-
};
|
|
80
|
-
}
|
|
1
|
+
import 'semver';
|
|
2
|
+
import "../../command-line-interface/runner/github-repository.js";
|
|
3
|
+
import "../../command-line-interface/runner/changelog-pr-log-config.js";
|
|
81
4
|
//# sourceMappingURL=pull-request-label-versioning.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pull-request-label-versioning.js","sourceRoot":"","sources":["../../../../../source/packages/command-line-interface/pull-request-label-versioning.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"pull-request-label-versioning.js","sourceRoot":"","sources":["../../../../../source/packages/command-line-interface/pull-request-label-versioning.ts"],"names":[],"mappings":"AAAA,OAAmB,QAAQ,CAAC;AAK5B,OAA2C,0DAA0D,CAAC;AACtG,OAAkC,gEAAgE,CAAC"}
|
|
@@ -1,50 +1,13 @@
|
|
|
1
1
|
import path from 'node:path';
|
|
2
|
-
import
|
|
2
|
+
import 'node:timers';
|
|
3
3
|
import { fileURLToPath } from 'node:url';
|
|
4
|
-
import
|
|
5
|
-
import
|
|
4
|
+
import 'node:worker_threads';
|
|
5
|
+
import "../../command-line-interface/spinner/spinner-boot.js";
|
|
6
6
|
const bootModulePath = fileURLToPath(import.meta.url);
|
|
7
7
|
const bootModuleExtension = path.extname(bootModulePath);
|
|
8
8
|
const workerModulePath = path.join(path.dirname(bootModulePath), `spinner-worker.entry-point${bootModuleExtension}`);
|
|
9
|
-
const defaultStdoutColumns = 80;
|
|
10
|
-
const workerTerminationGraceMs = 1000;
|
|
11
9
|
const workerExecArgv = bootModuleExtension === '.ts'
|
|
12
10
|
? ['--experimental-strip-types', '--enable-source-maps']
|
|
13
11
|
: ['--enable-source-maps'];
|
|
14
12
|
let pendingWorkerTermination = Promise.resolve();
|
|
15
|
-
function spawnWorker(request) {
|
|
16
|
-
const worker = new WorkerThread(workerModulePath, {
|
|
17
|
-
workerData: {
|
|
18
|
-
buffer: request.buffer,
|
|
19
|
-
slotCount: request.slotCount,
|
|
20
|
-
stdoutFileDescriptor: request.stdoutFileDescriptor
|
|
21
|
-
},
|
|
22
|
-
execArgv: workerExecArgv
|
|
23
|
-
});
|
|
24
|
-
worker.on('error', function (error) {
|
|
25
|
-
process.stderr.write(`spinner worker error: ${error.message}\n`);
|
|
26
|
-
});
|
|
27
|
-
// eslint-disable-next-line unicorn/no-top-level-assignment-in-function -- the entry point tracks the latest worker so shutdown can await it
|
|
28
|
-
pendingWorkerTermination = new Promise(function (resolve) {
|
|
29
|
-
worker.once('exit', function () {
|
|
30
|
-
resolve();
|
|
31
|
-
});
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
export function createBootedSpinnerRuntime() {
|
|
35
|
-
return bootSpinnerRuntime({
|
|
36
|
-
spawnWorker,
|
|
37
|
-
stdoutFileDescriptor: process.stdout.fd,
|
|
38
|
-
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- process.stdout.columns is undefined at runtime when stdout is not a TTY, despite the type declaring it as number
|
|
39
|
-
stdoutColumns: process.stdout.columns ?? defaultStdoutColumns,
|
|
40
|
-
initialLabel: 'packtory',
|
|
41
|
-
initialMessage: 'Starting …'
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
export async function awaitSpinnerWorkerTermination() {
|
|
45
|
-
const graceTimeout = new Promise(function (resolve) {
|
|
46
|
-
scheduleTimeout(resolve, workerTerminationGraceMs).unref();
|
|
47
|
-
});
|
|
48
|
-
await Promise.race([pendingWorkerTermination, graceTimeout]);
|
|
49
|
-
}
|
|
50
13
|
//# sourceMappingURL=spinner-boot.entry-point.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spinner-boot.entry-point.js","sourceRoot":"","sources":["../../../../../source/packages/command-line-interface/spinner-boot.entry-point.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,
|
|
1
|
+
{"version":3,"file":"spinner-boot.entry-point.js","sourceRoot":"","sources":["../../../../../source/packages/command-line-interface/spinner-boot.entry-point.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAA8C,aAAa,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAuC,qBAAqB,CAAC;AAC7D,OAAmC,sDAAsD,CAAC;AAG1F,MAAM,cAAc,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACtD,MAAM,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;AACzD,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,6BAA6B,mBAAmB,EAAE,CAAC,CAAC;AACrH,MACM,cACc,GAAG,mBAAmB,KAAK,KAAK;IAChD,CAAC,CAAC,CAAE,4BAA4B,EAAE,sBAAsB,CAAE;IAC1D,CAAC,CAAC,CAAE,sBAAsB,CAAE,CAAC;AAEjC,IAAI,wBAAwB,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;AAc5D"}
|
|
@@ -1,109 +1,3 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
function normalizeRepositoryPath(filePath) {
|
|
4
|
-
return filePath.split(path.sep).join('/').replace(/^\/+/u, '');
|
|
5
|
-
}
|
|
6
|
-
function previousPathFor(file) {
|
|
7
|
-
return file.previousPath === undefined ? undefined : normalizeRepositoryPath(file.previousPath);
|
|
8
|
-
}
|
|
9
|
-
function pathFor(file) {
|
|
10
|
-
return normalizeRepositoryPath(file.path);
|
|
11
|
-
}
|
|
12
|
-
function isDeletedFile(file) {
|
|
13
|
-
return file.status === 'removed' || file.status === 'deleted';
|
|
14
|
-
}
|
|
15
|
-
function sourceRootFromSourceFile(filePath) {
|
|
16
|
-
return filePath.split('/').slice(0, -1).join('/');
|
|
17
|
-
}
|
|
18
|
-
function collectDerivedSourceFileRoots(packagePlan) {
|
|
19
|
-
const sourceFileRoots = new Set();
|
|
20
|
-
if (packagePlan.releaseClassification !== releaseAnalysisClassification.dependencyOnly) {
|
|
21
|
-
for (const sourceFile of packagePlan.changelogSourceFiles) {
|
|
22
|
-
const sourceRoot = sourceRootFromSourceFile(normalizeRepositoryPath(sourceFile));
|
|
23
|
-
if (sourceRoot !== '') {
|
|
24
|
-
sourceFileRoots.add(sourceRoot);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
return Array.from(sourceFileRoots);
|
|
29
|
-
}
|
|
30
|
-
function historicalSourceFileRoots(input) {
|
|
31
|
-
return Array.from(new Set([
|
|
32
|
-
...input.sourceFileRoots.map(normalizeRepositoryPath),
|
|
33
|
-
...collectDerivedSourceFileRoots(input.packagePlan)
|
|
34
|
-
]));
|
|
35
|
-
}
|
|
36
|
-
function isHistoricalPath(filePath, roots) {
|
|
37
|
-
return roots.some(function (root) {
|
|
38
|
-
return root === '' || filePath.startsWith(`${root}/`);
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
function fileTouchesTarget(file, targetSourceFiles) {
|
|
42
|
-
return targetSourceFiles.has(pathFor(file));
|
|
43
|
-
}
|
|
44
|
-
function pullRequestTouchesTarget(changedFiles, targetSourceFiles) {
|
|
45
|
-
return changedFiles.some(function (file) {
|
|
46
|
-
return fileTouchesTarget(file, targetSourceFiles);
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
function renamedFilePaths(file, targetSourceFiles) {
|
|
50
|
-
const currentPath = pathFor(file);
|
|
51
|
-
const previousPath = previousPathFor(file);
|
|
52
|
-
if (previousPath === undefined) {
|
|
53
|
-
return [];
|
|
54
|
-
}
|
|
55
|
-
return [
|
|
56
|
-
...targetSourceFiles.has(currentPath) ? [previousPath] : [],
|
|
57
|
-
...targetSourceFiles.has(previousPath) ? [currentPath] : []
|
|
58
|
-
];
|
|
59
|
-
}
|
|
60
|
-
function expandRenamedFiles(targetSourceFiles, changedFiles) {
|
|
61
|
-
return new Set([
|
|
62
|
-
...targetSourceFiles,
|
|
63
|
-
...changedFiles.flatMap(function (file) {
|
|
64
|
-
return renamedFilePaths(file, targetSourceFiles);
|
|
65
|
-
})
|
|
66
|
-
]);
|
|
67
|
-
}
|
|
68
|
-
function expandRenameHistory(targetSourceFiles, changedFiles) {
|
|
69
|
-
return changedFiles.reduce(function (expandedSoFar) {
|
|
70
|
-
return expandRenamedFiles(expandedSoFar, changedFiles);
|
|
71
|
-
}, targetSourceFiles);
|
|
72
|
-
}
|
|
73
|
-
function addDeletedFilesFromTargetPullRequests(targetSourceFiles, changedFilesByPullRequest, sourceFileRoots) {
|
|
74
|
-
const expanded = new Set(targetSourceFiles);
|
|
75
|
-
for (const changedFiles of changedFilesByPullRequest.values()) {
|
|
76
|
-
if (pullRequestTouchesTarget(changedFiles, targetSourceFiles)) {
|
|
77
|
-
for (const file of changedFiles) {
|
|
78
|
-
const filePath = pathFor(file);
|
|
79
|
-
if (isDeletedFile(file) && isHistoricalPath(filePath, sourceFileRoots)) {
|
|
80
|
-
expanded.add(filePath);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
return expanded;
|
|
86
|
-
}
|
|
87
|
-
function addPureDeletedFiles(targetSourceFiles, changedFiles, sourceFileRoots) {
|
|
88
|
-
const expanded = new Set(targetSourceFiles);
|
|
89
|
-
for (const file of changedFiles) {
|
|
90
|
-
const filePath = pathFor(file);
|
|
91
|
-
if (isDeletedFile(file) && isHistoricalPath(filePath, sourceFileRoots)) {
|
|
92
|
-
expanded.add(filePath);
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
return expanded;
|
|
96
|
-
}
|
|
97
|
-
function shouldAttributePureDeletes(packagePlan) {
|
|
98
|
-
return packagePlan.releaseClassification !== releaseAnalysisClassification.dependencyOnly;
|
|
99
|
-
}
|
|
100
|
-
export function expandChangelogSourceFilesForHistory(input) {
|
|
101
|
-
const sourceFileRoots = historicalSourceFileRoots(input);
|
|
102
|
-
const changedFiles = Array.from(input.changedFilesByPullRequest.values()).flat();
|
|
103
|
-
const renamedSourceFiles = expandRenameHistory(new Set(input.packagePlan.changelogSourceFiles.map(normalizeRepositoryPath)), changedFiles);
|
|
104
|
-
const targetSourceFiles = addDeletedFilesFromTargetPullRequests(renamedSourceFiles, input.changedFilesByPullRequest, sourceFileRoots);
|
|
105
|
-
return Array.from(shouldAttributePureDeletes(input.packagePlan)
|
|
106
|
-
? addPureDeletedFiles(targetSourceFiles, changedFiles, sourceFileRoots)
|
|
107
|
-
: targetSourceFiles);
|
|
108
|
-
}
|
|
1
|
+
import 'node:path';
|
|
2
|
+
import "packtory/packtory/packtory-results.js";
|
|
109
3
|
//# sourceMappingURL=changelog-source-file-history.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"changelog-source-file-history.js","sourceRoot":"","sources":["../../../../source/packtory/changelog-source-file-history.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"changelog-source-file-history.js","sourceRoot":"","sources":["../../../../source/packtory/changelog-source-file-history.ts"],"names":[],"mappings":"AAAA,OAAiB,WAAW,CAAC;AAE7B,OAAuE,uCAAuB,CAAC;CASzC"}
|