@packtory/cli 0.0.107 → 0.0.109
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 +33 -2
- package/command-line-interface/config-loader.js.map +1 -1
- package/command-line-interface/one-time-password-prompt.js +31 -0
- package/command-line-interface/one-time-password-prompt.js.map +1 -1
- package/command-line-interface/preview-io/preview-io-shared.js +31 -2
- package/command-line-interface/preview-io/preview-io-shared.js.map +1 -1
- package/command-line-interface/preview-io/preview-io.js +15 -4
- package/command-line-interface/preview-io/preview-io.js.map +1 -1
- package/command-line-interface/preview-io/preview-spawn.js +26 -1
- package/command-line-interface/preview-io/preview-spawn.js.map +1 -1
- package/command-line-interface/runner/changelog-destinations.js +220 -5
- package/command-line-interface/runner/changelog-destinations.js.map +1 -1
- package/command-line-interface/runner/changelog-handler.js +79 -5
- package/command-line-interface/runner/changelog-handler.js.map +1 -1
- package/command-line-interface/runner/changelog-pr-log-config.js +147 -1
- package/command-line-interface/runner/changelog-pr-log-config.js.map +1 -1
- package/command-line-interface/runner/command-parsing.js +10 -0
- package/command-line-interface/runner/command-parsing.js.map +1 -1
- package/command-line-interface/runner/config-inspect-handler.js +79 -4
- package/command-line-interface/runner/config-inspect-handler.js.map +1 -1
- package/command-line-interface/runner/failure-printing.js +75 -5
- package/command-line-interface/runner/failure-printing.js.map +1 -1
- package/command-line-interface/runner/github-api-request.js +100 -0
- package/command-line-interface/runner/github-api-request.js.map +1 -1
- package/command-line-interface/runner/github-release-client.js +102 -2
- package/command-line-interface/runner/github-release-client.js.map +1 -1
- package/command-line-interface/runner/github-release-notes.js +74 -1
- package/command-line-interface/runner/github-release-notes.js.map +1 -1
- package/command-line-interface/runner/github-repository.js +14 -1
- package/command-line-interface/runner/github-repository.js.map +1 -1
- package/command-line-interface/runner/pack-handler.js +203 -4
- package/command-line-interface/runner/pack-handler.js.map +1 -1
- package/command-line-interface/runner/package-dependencies-handler.js +49 -4
- package/command-line-interface/runner/package-dependencies-handler.js.map +1 -1
- package/command-line-interface/runner/package-inspection-handler.js +21 -0
- package/command-line-interface/runner/package-inspection-handler.js.map +1 -1
- package/command-line-interface/runner/package-side-effects-handler.js +51 -5
- package/command-line-interface/runner/package-side-effects-handler.js.map +1 -1
- package/command-line-interface/runner/package-tree-handler.js +66 -3
- package/command-line-interface/runner/package-tree-handler.js.map +1 -1
- package/command-line-interface/runner/preview-handler.js +50 -4
- package/command-line-interface/runner/preview-handler.js.map +1 -1
- package/command-line-interface/runner/progress-wiring.js +32 -0
- package/command-line-interface/runner/progress-wiring.js.map +1 -1
- package/command-line-interface/runner/publish-handler.js +45 -2
- package/command-line-interface/runner/publish-handler.js.map +1 -1
- package/command-line-interface/runner/release-diff-handler.js +33 -3
- package/command-line-interface/runner/release-diff-handler.js.map +1 -1
- package/command-line-interface/runner/release-handler.js +246 -5
- package/command-line-interface/runner/release-handler.js.map +1 -1
- package/command-line-interface/runner/release-output-files.js +24 -2
- package/command-line-interface/runner/release-output-files.js.map +1 -1
- package/command-line-interface/runner/release-plan-result-printing.js +25 -2
- package/command-line-interface/runner/release-plan-result-printing.js.map +1 -1
- package/command-line-interface/runner/release-pr-branch-commit.js +108 -2
- package/command-line-interface/runner/release-pr-branch-commit.js.map +1 -1
- package/command-line-interface/runner/release-pr-github-client.js +289 -8
- package/command-line-interface/runner/release-pr-github-client.js.map +1 -1
- package/command-line-interface/runner/release-pr-workflow-run-cancellation.js +66 -3
- package/command-line-interface/runner/release-pr-workflow-run-cancellation.js.map +1 -1
- package/command-line-interface/runner/release-pr-workflow-runs.js +52 -1
- package/command-line-interface/runner/release-pr-workflow-runs.js.map +1 -1
- package/command-line-interface/runner/release-preparation.js +91 -4
- package/command-line-interface/runner/release-preparation.js.map +1 -1
- package/command-line-interface/runner/release-publish-authorization.js +66 -1
- package/command-line-interface/runner/release-publish-authorization.js.map +1 -1
- package/command-line-interface/runner/release-pull-request-ci.js +297 -0
- package/command-line-interface/runner/release-pull-request-ci.js.map +1 -1
- package/command-line-interface/runner/release-pull-request-config.js +51 -5
- package/command-line-interface/runner/release-pull-request-config.js.map +1 -1
- package/command-line-interface/runner/release-pull-request-handler.js +320 -9
- package/command-line-interface/runner/release-pull-request-handler.js.map +1 -1
- package/command-line-interface/runner/release-pull-request-policy.js +46 -0
- package/command-line-interface/runner/release-pull-request-policy.js.map +1 -1
- package/command-line-interface/runner/release-pull-request-settings.js +18 -2
- package/command-line-interface/runner/release-pull-request-settings.js.map +1 -1
- package/command-line-interface/runner/report-persistence.js +25 -2
- package/command-line-interface/runner/report-persistence.js.map +1 -1
- package/command-line-interface/runner/runner-symbols.js +10 -1
- package/command-line-interface/runner/runner-symbols.js.map +1 -1
- package/command-line-interface/runner/runner.js +403 -15
- package/command-line-interface/runner/runner.js.map +1 -1
- package/command-line-interface/runner/terminal-error-chain.js +101 -0
- package/command-line-interface/runner/terminal-error-chain.js.map +1 -1
- package/command-line-interface/spinner/line-spinner-renderer.js +49 -2
- package/command-line-interface/spinner/line-spinner-renderer.js.map +1 -1
- package/command-line-interface/spinner/spinner-boot.js +9 -1
- package/command-line-interface/spinner/spinner-boot.js.map +1 -1
- package/command-line-interface/spinner/spinner-glyphs.js +30 -1
- package/command-line-interface/spinner/spinner-glyphs.js.map +1 -1
- package/command-line-interface/spinner/spinner-render-sequence.js +30 -2
- package/command-line-interface/spinner/spinner-render-sequence.js.map +1 -1
- package/command-line-interface/spinner/spinner-runtime.js +30 -1
- package/command-line-interface/spinner/spinner-runtime.js.map +1 -1
- package/command-line-interface/spinner/spinner-shared-state.js +271 -0
- package/command-line-interface/spinner/spinner-shared-state.js.map +1 -1
- package/command-line-interface/spinner/spinner-snapshots.js +11 -1
- package/command-line-interface/spinner/spinner-snapshots.js.map +1 -1
- package/command-line-interface/spinner/spinner-worker-backend.js +42 -0
- package/command-line-interface/spinner/spinner-worker-backend.js.map +1 -1
- package/command-line-interface/spinner/spinner-worker-loop.js +39 -3
- package/command-line-interface/spinner/spinner-worker-loop.js.map +1 -1
- package/command-line-interface/spinner/terminal-spinner-renderer.js +54 -0
- package/command-line-interface/spinner/terminal-spinner-renderer.js.map +1 -1
- package/common/path-tree.js +100 -2
- package/common/path-tree.js.map +1 -1
- package/package.json +3 -3
- package/packages/command-line-interface/pull-request-label-versioning.js +80 -3
- package/packages/command-line-interface/pull-request-label-versioning.js.map +1 -1
- package/packages/command-line-interface/spinner-boot.entry-point.js +40 -3
- package/packages/command-line-interface/spinner-boot.entry-point.js.map +1 -1
- package/packtory/changelog-source-file-history.js +108 -2
- package/packtory/changelog-source-file-history.js.map +1 -1
- package/packtory/packtory-changelog.js +294 -5
- package/packtory/packtory-changelog.js.map +1 -1
- package/report/html-renderer/artifact-tree-renderer.js +28 -4
- package/report/html-renderer/artifact-tree-renderer.js.map +1 -1
- package/report/html-renderer/diagnostics-renderer.js +38 -2
- package/report/html-renderer/diagnostics-renderer.js.map +1 -1
- package/report/html-renderer/diff-renderer.js +28 -1
- package/report/html-renderer/diff-renderer.js.map +1 -1
- package/report/html-renderer/eliminated-files-renderer.js +15 -2
- package/report/html-renderer/eliminated-files-renderer.js.map +1 -1
- package/report/html-renderer/html-escaping.js +8 -0
- package/report/html-renderer/html-escaping.js.map +1 -1
- package/report/html-renderer/html-primitives.js +23 -1
- package/report/html-renderer/html-primitives.js.map +1 -1
- package/report/html-renderer/html-renderer.js +60 -4
- package/report/html-renderer/html-renderer.js.map +1 -1
- package/report/html-renderer/html-styles.js +176 -0
- package/report/html-renderer/html-styles.js.map +1 -1
- package/report/html-renderer/package-renderer.js +31 -6
- package/report/html-renderer/package-renderer.js.map +1 -1
- package/report/preview/artifact-diff-builder.js +19 -2
- package/report/preview/artifact-diff-builder.js.map +1 -1
- package/report/preview/artifact-tree-builder.js +19 -1
- package/report/preview/artifact-tree-builder.js.map +1 -1
- package/report/preview/bundle-artifact-index.js +15 -1
- package/report/preview/bundle-artifact-index.js.map +1 -1
- package/report/preview/preview-document-state.js +16 -0
- package/report/preview/preview-document-state.js.map +1 -1
- package/report/preview/preview-document.js +84 -6
- package/report/preview/preview-document.js.map +1 -1
- package/report/preview/preview-result-inspectors.js +33 -2
- package/report/preview/preview-result-inspectors.js.map +1 -1
- package/report/preview/preview-summary.js +25 -0
- package/report/preview/preview-summary.js.map +1 -1
- package/report/release-diff/release-diff-document.js +25 -2
- package/report/release-diff/release-diff-document.js.map +1 -1
- package/report/release-diff/release-diff-summary.js +39 -1
- package/report/release-diff/release-diff-summary.js.map +1 -1
- package/report/terminal-renderer/terminal-artifact-renderer.js +30 -2
- package/report/terminal-renderer/terminal-artifact-renderer.js.map +1 -1
- package/report/terminal-renderer/terminal-package-dependencies-renderer.js +77 -1
- package/report/terminal-renderer/terminal-package-dependencies-renderer.js.map +1 -1
- package/report/terminal-renderer/terminal-package-renderer.js +74 -2
- package/report/terminal-renderer/terminal-package-renderer.js.map +1 -1
- package/report/terminal-renderer/terminal-package-side-effects-renderer.js +54 -1
- package/report/terminal-renderer/terminal-package-side-effects-renderer.js.map +1 -1
- package/report/terminal-renderer/terminal-package-tree-renderer.js +16 -3
- package/report/terminal-renderer/terminal-package-tree-renderer.js.map +1 -1
- package/report/terminal-renderer/terminal-preview-renderer-shared.js +65 -3
- package/report/terminal-renderer/terminal-preview-renderer-shared.js.map +1 -1
- package/report/terminal-renderer/terminal-preview-renderer.js +54 -2
- package/report/terminal-renderer/terminal-preview-renderer.js.map +1 -1
- package/report/terminal-renderer/terminal-release-diff-package-renderer.js +149 -4
- package/report/terminal-renderer/terminal-release-diff-package-renderer.js.map +1 -1
- package/report/terminal-renderer/terminal-release-diff-renderer.js +48 -2
- package/report/terminal-renderer/terminal-release-diff-renderer.js.map +1 -1
- package/sbom.cdx.json +15 -15
package/common/path-tree.js
CHANGED
|
@@ -1,3 +1,101 @@
|
|
|
1
|
-
import 'node:path';
|
|
2
|
-
import "packtory/common/package-layout.js";
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import { packageManifestFilePath } from "packtory/common/package-layout.js";
|
|
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
|
+
}
|
|
3
101
|
//# 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":"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"}
|
package/package.json
CHANGED
|
@@ -17,8 +17,8 @@
|
|
|
17
17
|
"cmd-ts": "0.15.0",
|
|
18
18
|
"diff": "9.0.0",
|
|
19
19
|
"open": "11.0.2",
|
|
20
|
-
"packtory": "0.0.
|
|
21
|
-
"remeda": "2.
|
|
20
|
+
"packtory": "0.0.98",
|
|
21
|
+
"remeda": "2.46.0",
|
|
22
22
|
"semver": "7.8.5",
|
|
23
23
|
"true-myth": "9.4.0",
|
|
24
24
|
"ts-pattern": "5.9.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.109"
|
|
63
63
|
}
|
|
@@ -1,4 +1,81 @@
|
|
|
1
|
-
import 'semver';
|
|
2
|
-
import "../../command-line-interface/runner/github-repository.js";
|
|
3
|
-
import "../../command-line-interface/runner/changelog-pr-log-config.js";
|
|
1
|
+
import semver from 'semver';
|
|
2
|
+
import { formatGitHubRepositoryName } from "../../command-line-interface/runner/github-repository.js";
|
|
3
|
+
import { createPrLogConfig } from "../../command-line-interface/runner/changelog-pr-log-config.js";
|
|
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
|
+
}
|
|
4
81
|
//# 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,OAAO,MAAM,MAAM,QAAQ,CAAC;AAK5B,OAAO,EAAE,0BAA0B,EAAE,MAAM,0DAA0D,CAAC;AACtG,OAAO,EAAE,iBAAiB,EAAE,MAAM,gEAAgE,CAAC;AAanG,SAAS,wBAAwB;IAC7B,OAAO,CAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAE,CAAC;AACzC,CAAC;AAED,SAAS,eAAe,CACpB,YAAwF;IAExF,OAAO,YAAY,CAAC,uBAAuB,CAAC,UAAU,CAAC,IAAI,YAAY,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAAC;AACpH,CAAC;AAED,SAAS,YAAY,CAAC,YAAuD,EAAE,MAAmB;IAC9F,OAAO,YAAY,CAAC,iBAAiB,CAAC;QAClC,WAAW,EAAE,eAAe,CAAC,YAAY,CAAC;QAC1C,gBAAgB,EAAE,YAAY,CAAC,gBAAgB;QAC/C,MAAM;KACT,CAAC,CAAC;AACP,CAAC;AAED,SAAS,sBAAsB,CAC3B,YAA6C,EAC7C,YAAyC;IAEzC,MAAM,MAAM,GAAG,IAAI,GAAG,CAClB,YAAY,CAAC,GAAG,CAAC,UAAU,WAAW;QAClC,OAAO,WAAW,CAAC,KAAK,CAAC;IAC7B,CAAC,CAAC,CACL,CAAC;IACF,OAAO,wBAAwB,EAAE,CAAC,IAAI,CAAC,UAAU,KAAK;QAClD,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,KAAK;YAC3C,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAe,EAAE,KAAuB;IAC9D,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC/C,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,gCAAgC,OAAO,GAAG,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,WAAW,CAAC;AACvB,CAAC;AAED,SAAS,iBAAiB,CACtB,cAAsB,EACtB,YAA6C,EAC7C,YAAyC;IAEzC,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IAC5E,OAAO,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,gBAAgB,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;AAChH,CAAC;AAED,MAAM,UAAU,2CAA2C,CACvD,YAAuD;IAEvD,KAAK,UAAU,0BAA0B,CACrC,KAAqC,EACrC,cAA8B;QAE9B,MAAM,WAAW,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE,CAAC;QACzD,MAAM,UAAU,GAAG,0BAA0B,CAAC,WAAW,CAAC,CAAC;QAC3D,MAAM,WAAW,GAAG,iBAAiB,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAChE,MAAM,WAAW,GAAG,YAAY,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QAC5D,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,uBAAuB,CAAC;YACtD,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,eAAe,EAAE,KAAK,CAAC,cAAc;YACrC,eAAe,EAAE,SAAS;YAC1B,gBAAgB,EAAE,cAAc,CAAC,SAAS,EAAE,gBAAgB;YAC5D,eAAe,EAAE,cAAc,CAAC,SAAS,EAAE,eAAe;SAC7D,CAAC,CAAC;QACH,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC,yBAAyB,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACvG,MAAM,yBAAyB,GAAG,MAAM,WAAW,CAAC,2BAA2B,CAAC;YAC5E,UAAU;YACV,YAAY;SACf,CAAC,CAAC;QACH,MAAM,kBAAkB,GAAG,WAAW,CAAC,+BAA+B,CAAC;YACnE,UAAU,EAAE,KAAK,CAAC,WAAW;YAC7B,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;YAC1C,YAAY;YACZ,yBAAyB;YACzB,uBAAuB,EAAE,KAAK,CAAC,uBAAuB;SACzD,CAAC,CAAC;QACH,OAAO,WAAW,CAAC,wBAAwB,CAAC;YACxC,UAAU;YACV,MAAM,EAAE,WAAW;YACnB,YAAY,EAAE,kBAAkB;YAChC,UAAU,EAAE,KAAK,CAAC,WAAW;YAC7B,wBAAwB,EAAE,cAAc,CAAC,SAAS,EAAE,wBAAwB;SAC/E,CAAC,CAAC;IACP,CAAC;IAED,OAAO,UAAU,WAAW;QACxB,OAAO,KAAK,WAAW,KAAK;YACxB,IAAI,KAAK,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;gBACrC,OAAO,OAAO,CAAC;YACnB,CAAC;YACD,MAAM,WAAW,GAAG,iBAAiB,CAAC,WAAW,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YAC5E,OAAO,iBAAiB,CACpB,KAAK,CAAC,cAAc,EACpB,MAAM,0BAA0B,CAAC,KAAK,EAAE,WAAW,CAAC,cAAc,CAAC,EACnE,WAAW,CAAC,YAAY,CAC3B,CAAC;QACN,CAAC,CAAC;IACN,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -1,13 +1,50 @@
|
|
|
1
1
|
import path from 'node:path';
|
|
2
|
-
import 'node:timers';
|
|
2
|
+
import { setTimeout as scheduleTimeout } from 'node:timers';
|
|
3
3
|
import { fileURLToPath } from 'node:url';
|
|
4
|
-
import 'node:worker_threads';
|
|
5
|
-
import "../../command-line-interface/spinner/spinner-boot.js";
|
|
4
|
+
import { Worker as WorkerThread } from 'node:worker_threads';
|
|
5
|
+
import { bootSpinnerRuntime } from "../../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;
|
|
9
11
|
const workerExecArgv = bootModuleExtension === '.ts'
|
|
10
12
|
? ['--experimental-strip-types', '--enable-source-maps']
|
|
11
13
|
: ['--enable-source-maps'];
|
|
12
14
|
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
|
+
}
|
|
13
50
|
//# 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,OAAO,EAAE,UAAU,IAAI,eAAe,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,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,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAChC,MAAM,wBAAwB,GAAG,IAAI,CAAC;AACtC,MAAM,cAAc,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;AAEhE,SAAS,WAAW,CAAC,OAA2B;IAC5C,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,gBAAgB,EAAE;QAC9C,UAAU,EAAE;YACR,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,oBAAoB,EAAE,OAAO,CAAC,oBAAoB;SACrD;QACD,QAAQ,EAAE,cAAc;KAC3B,CAAC,CAAC;IACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,KAAY;QACrC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IACH,4IAA4I;IAC5I,wBAAwB,GAAG,IAAI,OAAO,CAAO,UAAU,OAAO;QAC1D,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,OAAO,EAAE,CAAC;QACd,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,0BAA0B;IACtC,OAAO,kBAAkB,CAAC;QACtB,WAAW;QACX,oBAAoB,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE;QACvC,2LAA2L;QAC3L,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,oBAAoB;QAC7D,YAAY,EAAE,UAAU;QACxB,cAAc,EAAE,YAAY;KAC/B,CAAC,CAAC;AACP,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,6BAA6B;IAC/C,MAAM,YAAY,GAAG,IAAI,OAAO,CAAO,UAAU,OAAO;QACpD,eAAe,CAAC,OAAO,EAAE,wBAAwB,CAAC,CAAC,KAAK,EAAE,CAAC;IAC/D,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,CAAC,IAAI,CAAC,CAAE,wBAAwB,EAAE,YAAY,CAAE,CAAC,CAAC;AACnE,CAAC"}
|
|
@@ -1,3 +1,109 @@
|
|
|
1
|
-
import 'node:path';
|
|
2
|
-
import "packtory/packtory/packtory-results.js";
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import { releaseAnalysisClassification } from "packtory/packtory/packtory-results.js";
|
|
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
|
+
}
|
|
3
109
|
//# 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,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,6BAA6B,EAA2B,MAAM,uCAAuB,CAAC;AAQ/F,SAAS,uBAAuB,CAAC,QAAgB;IAC7C,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,eAAe,CAAC,IAA4B;IACjD,OAAO,IAAI,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,uBAAuB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACpG,CAAC;AAED,SAAS,OAAO,CAAC,IAA4B;IACzC,OAAO,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,aAAa,CAAC,IAA4B;IAC/C,OAAO,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC;AAClE,CAAC;AAED,SAAS,wBAAwB,CAAC,QAAgB;IAC9C,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,6BAA6B,CAAC,WAA+B;IAClE,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;IAC1C,IAAI,WAAW,CAAC,qBAAqB,KAAK,6BAA6B,CAAC,cAAc,EAAE,CAAC;QACrF,KAAK,MAAM,UAAU,IAAI,WAAW,CAAC,oBAAoB,EAAE,CAAC;YACxD,MAAM,UAAU,GAAG,wBAAwB,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC,CAAC;YACjF,IAAI,UAAU,KAAK,EAAE,EAAE,CAAC;gBACpB,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACpC,CAAC;QACL,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,yBAAyB,CAAC,KAAsC;IACrE,OAAO,KAAK,CAAC,IAAI,CACb,IAAI,GAAG,CAAC;QACJ,GAAG,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,uBAAuB,CAAC;QACrD,GAAG,6BAA6B,CAAC,KAAK,CAAC,WAAW,CAAC;KACtD,CAAC,CACL,CAAC;AACN,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAgB,EAAE,KAAwB;IAChE,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,IAAI;QAC5B,OAAO,IAAI,KAAK,EAAE,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,iBAAiB,CAAC,IAA4B,EAAE,iBAAsC;IAC3F,OAAO,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,wBAAwB,CAC7B,YAA+C,EAC/C,iBAAsC;IAEtC,OAAO,YAAY,CAAC,IAAI,CAAC,UAAU,IAAI;QACnC,OAAO,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,gBAAgB,CAAC,IAA4B,EAAE,iBAAsC;IAC1F,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,EAAE,CAAC;IACd,CAAC;IACD,OAAO;QACH,GAAG,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAE,YAAY,CAAE,CAAC,CAAC,CAAC,EAAE;QAC7D,GAAG,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAE,WAAW,CAAE,CAAC,CAAC,CAAC,EAAE;KAChE,CAAC;AACN,CAAC;AAED,SAAS,kBAAkB,CACvB,iBAAsC,EACtC,YAA+C;IAE/C,OAAO,IAAI,GAAG,CAAC;QACX,GAAG,iBAAiB;QACpB,GAAG,YAAY,CAAC,OAAO,CAAC,UAAU,IAAI;YAClC,OAAO,gBAAgB,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;QACrD,CAAC,CAAC;KACL,CAAC,CAAC;AACP,CAAC;AAED,SAAS,mBAAmB,CACxB,iBAAsC,EACtC,YAA+C;IAE/C,OAAO,YAAY,CAAC,MAAM,CAAC,UAAU,aAAa;QAC9C,OAAO,kBAAkB,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IAC3D,CAAC,EAAE,iBAAiB,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,qCAAqC,CAC1C,iBAAsC,EACtC,yBAAuF,EACvF,eAAkC;IAElC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAC5C,KAAK,MAAM,YAAY,IAAI,yBAAyB,CAAC,MAAM,EAAE,EAAE,CAAC;QAC5D,IAAI,wBAAwB,CAAC,YAAY,EAAE,iBAAiB,CAAC,EAAE,CAAC;YAC5D,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;gBAC9B,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC/B,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,QAAQ,EAAE,eAAe,CAAC,EAAE,CAAC;oBACrE,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAC3B,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,SAAS,mBAAmB,CACxB,iBAAsC,EACtC,YAA+C,EAC/C,eAAkC;IAElC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAC5C,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,QAAQ,EAAE,eAAe,CAAC,EAAE,CAAC;YACrE,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC3B,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,SAAS,0BAA0B,CAAC,WAA+B;IAC/D,OAAO,WAAW,CAAC,qBAAqB,KAAK,6BAA6B,CAAC,cAAc,CAAC;AAC9F,CAAC;AAED,MAAM,UAAU,oCAAoC,CAAC,KAAsC;IACvF,MAAM,eAAe,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;IACzD,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACjF,MAAM,kBAAkB,GAAG,mBAAmB,CAC1C,IAAI,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,oBAAoB,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,EAC5E,YAAY,CACf,CAAC;IACF,MAAM,iBAAiB,GAAG,qCAAqC,CAC3D,kBAAkB,EAClB,KAAK,CAAC,yBAAyB,EAC/B,eAAe,CAClB,CAAC;IAEF,OAAO,KAAK,CAAC,IAAI,CACb,0BAA0B,CAAC,KAAK,CAAC,WAAW,CAAC;QACzC,CAAC,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,YAAY,EAAE,eAAe,CAAC;QACvE,CAAC,CAAC,iBAAiB,CAC1B,CAAC;AACN,CAAC"}
|