intershell 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +301 -0
- package/dist/commands/ci/act.d.ts +13 -0
- package/dist/commands/ci/act.d.ts.map +1 -0
- package/dist/commands/ci/act.js +89 -0
- package/dist/commands/ci/act.js.map +1 -0
- package/dist/commands/ci/attach-affected.d.ts +12 -0
- package/dist/commands/ci/attach-affected.d.ts.map +1 -0
- package/dist/commands/ci/attach-affected.js +83 -0
- package/dist/commands/ci/attach-affected.js.map +1 -0
- package/dist/commands/ci/attach-service-ports.d.ts +10 -0
- package/dist/commands/ci/attach-service-ports.d.ts.map +1 -0
- package/dist/commands/ci/attach-service-ports.js +25 -0
- package/dist/commands/ci/attach-service-ports.js.map +1 -0
- package/dist/commands/commit-check.d.ts +13 -0
- package/dist/commands/commit-check.d.ts.map +1 -0
- package/dist/commands/commit-check.js +110 -0
- package/dist/commands/commit-check.js.map +1 -0
- package/dist/commands/commit.d.ts +16 -0
- package/dist/commands/commit.d.ts.map +1 -0
- package/dist/commands/commit.js +91 -0
- package/dist/commands/commit.js.map +1 -0
- package/dist/commands/dev/check.d.ts +13 -0
- package/dist/commands/dev/check.d.ts.map +1 -0
- package/dist/commands/dev/check.js +91 -0
- package/dist/commands/dev/check.js.map +1 -0
- package/dist/commands/dev/cleanup.d.ts +10 -0
- package/dist/commands/dev/cleanup.d.ts.map +1 -0
- package/dist/commands/dev/cleanup.js +28 -0
- package/dist/commands/dev/cleanup.js.map +1 -0
- package/dist/commands/dev/rm.d.ts +12 -0
- package/dist/commands/dev/rm.d.ts.map +1 -0
- package/dist/commands/dev/rm.js +49 -0
- package/dist/commands/dev/rm.js.map +1 -0
- package/dist/commands/dev/setup.d.ts +10 -0
- package/dist/commands/dev/setup.d.ts.map +1 -0
- package/dist/commands/dev/setup.js +40 -0
- package/dist/commands/dev/setup.js.map +1 -0
- package/dist/commands/local/cleanup.d.ts +12 -0
- package/dist/commands/local/cleanup.d.ts.map +1 -0
- package/dist/commands/local/cleanup.js +62 -0
- package/dist/commands/local/cleanup.js.map +1 -0
- package/dist/commands/local/setup.d.ts +11 -0
- package/dist/commands/local/setup.d.ts.map +1 -0
- package/dist/commands/local/setup.js +55 -0
- package/dist/commands/local/setup.js.map +1 -0
- package/dist/commands/local/vscode.d.ts +17 -0
- package/dist/commands/local/vscode.d.ts.map +1 -0
- package/dist/commands/local/vscode.js +94 -0
- package/dist/commands/local/vscode.js.map +1 -0
- package/dist/commands/update-package-json.d.ts +12 -0
- package/dist/commands/update-package-json.d.ts.map +1 -0
- package/dist/commands/update-package-json.js +82 -0
- package/dist/commands/update-package-json.js.map +1 -0
- package/dist/commands/version/apply.d.ts +16 -0
- package/dist/commands/version/apply.d.ts.map +1 -0
- package/dist/commands/version/apply.js +120 -0
- package/dist/commands/version/apply.js.map +1 -0
- package/dist/commands/version/ci.d.ts +12 -0
- package/dist/commands/version/ci.d.ts.map +1 -0
- package/dist/commands/version/ci.js +67 -0
- package/dist/commands/version/ci.js.map +1 -0
- package/dist/commands/version/prepare.d.ts +19 -0
- package/dist/commands/version/prepare.d.ts.map +1 -0
- package/dist/commands/version/prepare.js +153 -0
- package/dist/commands/version/prepare.js.map +1 -0
- package/dist/core/colorify.d.ts +21 -0
- package/dist/core/colorify.d.ts.map +1 -0
- package/dist/core/colorify.js +56 -0
- package/dist/core/colorify.js.map +1 -0
- package/dist/core/index.d.ts +4 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +3 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/types.d.ts +181 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +5 -0
- package/dist/core/types.js.map +1 -0
- package/dist/core/wrapshell.d.ts +19 -0
- package/dist/core/wrapshell.d.ts.map +1 -0
- package/dist/core/wrapshell.js +323 -0
- package/dist/core/wrapshell.js.map +1 -0
- package/dist/entities/affected/affected.d.ts +4 -0
- package/dist/entities/affected/affected.d.ts.map +1 -0
- package/dist/entities/affected/affected.js +20 -0
- package/dist/entities/affected/affected.js.map +1 -0
- package/dist/entities/affected/affected.test.d.ts +2 -0
- package/dist/entities/affected/affected.test.d.ts.map +1 -0
- package/dist/entities/affected/affected.test.js +305 -0
- package/dist/entities/affected/affected.test.js.map +1 -0
- package/dist/entities/affected/index.d.ts +2 -0
- package/dist/entities/affected/index.d.ts.map +1 -0
- package/dist/entities/affected/index.js +2 -0
- package/dist/entities/affected/index.js.map +1 -0
- package/dist/entities/branch/branch.d.ts +8 -0
- package/dist/entities/branch/branch.d.ts.map +1 -0
- package/dist/entities/branch/branch.js +74 -0
- package/dist/entities/branch/branch.js.map +1 -0
- package/dist/entities/branch/branch.test.d.ts +2 -0
- package/dist/entities/branch/branch.test.d.ts.map +1 -0
- package/dist/entities/branch/branch.test.js +316 -0
- package/dist/entities/branch/branch.test.js.map +1 -0
- package/dist/entities/branch/branch.types.d.ts +6 -0
- package/dist/entities/branch/branch.types.d.ts.map +1 -0
- package/dist/entities/branch/branch.types.js +2 -0
- package/dist/entities/branch/branch.types.js.map +1 -0
- package/dist/entities/branch/index.d.ts +3 -0
- package/dist/entities/branch/index.d.ts.map +1 -0
- package/dist/entities/branch/index.js +3 -0
- package/dist/entities/branch/index.js.map +1 -0
- package/dist/entities/commit/commit.d.ts +15 -0
- package/dist/entities/commit/commit.d.ts.map +1 -0
- package/dist/entities/commit/commit.js +196 -0
- package/dist/entities/commit/commit.js.map +1 -0
- package/dist/entities/commit/commit.test.d.ts +26 -0
- package/dist/entities/commit/commit.test.d.ts.map +1 -0
- package/dist/entities/commit/commit.test.js +550 -0
- package/dist/entities/commit/commit.test.js.map +1 -0
- package/dist/entities/commit/commit.types.d.ts +49 -0
- package/dist/entities/commit/commit.types.d.ts.map +1 -0
- package/dist/entities/commit/commit.types.js +31 -0
- package/dist/entities/commit/commit.types.js.map +1 -0
- package/dist/entities/commit/index.d.ts +3 -0
- package/dist/entities/commit/index.d.ts.map +1 -0
- package/dist/entities/commit/index.js +3 -0
- package/dist/entities/commit/index.js.map +1 -0
- package/dist/entities/commit/pr.d.ts +11 -0
- package/dist/entities/commit/pr.d.ts.map +1 -0
- package/dist/entities/commit/pr.js +201 -0
- package/dist/entities/commit/pr.js.map +1 -0
- package/dist/entities/commit/pr.test.d.ts +2 -0
- package/dist/entities/commit/pr.test.d.ts.map +1 -0
- package/dist/entities/commit/pr.test.js +782 -0
- package/dist/entities/commit/pr.test.js.map +1 -0
- package/dist/entities/compose/compose.d.ts +18 -0
- package/dist/entities/compose/compose.d.ts.map +1 -0
- package/dist/entities/compose/compose.js +197 -0
- package/dist/entities/compose/compose.js.map +1 -0
- package/dist/entities/compose/compose.test.d.ts +2 -0
- package/dist/entities/compose/compose.test.d.ts.map +1 -0
- package/dist/entities/compose/compose.test.js +406 -0
- package/dist/entities/compose/compose.test.js.map +1 -0
- package/dist/entities/compose/compose.types.d.ts +77 -0
- package/dist/entities/compose/compose.types.d.ts.map +1 -0
- package/dist/entities/compose/compose.types.js +2 -0
- package/dist/entities/compose/compose.types.js.map +1 -0
- package/dist/entities/compose/index.d.ts +3 -0
- package/dist/entities/compose/index.d.ts.map +1 -0
- package/dist/entities/compose/index.js +3 -0
- package/dist/entities/compose/index.js.map +1 -0
- package/dist/entities/entities.shell.d.ts +29 -0
- package/dist/entities/entities.shell.d.ts.map +1 -0
- package/dist/entities/entities.shell.js +27 -0
- package/dist/entities/entities.shell.js.map +1 -0
- package/dist/entities/entities.shell.test.d.ts +2 -0
- package/dist/entities/entities.shell.test.d.ts.map +1 -0
- package/dist/entities/entities.shell.test.js +23 -0
- package/dist/entities/entities.shell.test.js.map +1 -0
- package/dist/entities/index.d.ts +12 -0
- package/dist/entities/index.d.ts.map +1 -0
- package/dist/entities/index.js +12 -0
- package/dist/entities/index.js.map +1 -0
- package/dist/entities/intershell-config/intershell-config.d.ts +11 -0
- package/dist/entities/intershell-config/intershell-config.d.ts.map +1 -0
- package/dist/entities/intershell-config/intershell-config.default.d.ts +188 -0
- package/dist/entities/intershell-config/intershell-config.default.d.ts.map +1 -0
- package/dist/entities/intershell-config/intershell-config.default.js +225 -0
- package/dist/entities/intershell-config/intershell-config.default.js.map +1 -0
- package/dist/entities/intershell-config/intershell-config.js +132 -0
- package/dist/entities/intershell-config/intershell-config.js.map +1 -0
- package/dist/entities/intershell-config/intershell-config.test.d.ts +2 -0
- package/dist/entities/intershell-config/intershell-config.test.d.ts.map +1 -0
- package/dist/entities/intershell-config/intershell-config.test.js +102 -0
- package/dist/entities/intershell-config/intershell-config.test.js.map +1 -0
- package/dist/entities/intershell-config/intershell-config.types.d.ts +103 -0
- package/dist/entities/intershell-config/intershell-config.types.d.ts.map +1 -0
- package/dist/entities/intershell-config/intershell-config.types.js +2 -0
- package/dist/entities/intershell-config/intershell-config.types.js.map +1 -0
- package/dist/entities/package/index.d.ts +4 -0
- package/dist/entities/package/index.d.ts.map +1 -0
- package/dist/entities/package/index.js +4 -0
- package/dist/entities/package/index.js.map +1 -0
- package/dist/entities/package/package.d.ts +49 -0
- package/dist/entities/package/package.d.ts.map +1 -0
- package/dist/entities/package/package.js +234 -0
- package/dist/entities/package/package.js.map +1 -0
- package/dist/entities/package/package.shell.d.ts +48 -0
- package/dist/entities/package/package.shell.d.ts.map +1 -0
- package/dist/entities/package/package.shell.js +118 -0
- package/dist/entities/package/package.shell.js.map +1 -0
- package/dist/entities/package/package.test.d.ts +23 -0
- package/dist/entities/package/package.test.d.ts.map +1 -0
- package/dist/entities/package/package.test.js +637 -0
- package/dist/entities/package/package.test.js.map +1 -0
- package/dist/entities/package/package.types.d.ts +48 -0
- package/dist/entities/package/package.types.d.ts.map +1 -0
- package/dist/entities/package/package.types.js +2 -0
- package/dist/entities/package/package.types.js.map +1 -0
- package/dist/entities/package-changelog/index.d.ts +4 -0
- package/dist/entities/package-changelog/index.d.ts.map +1 -0
- package/dist/entities/package-changelog/index.js +4 -0
- package/dist/entities/package-changelog/index.js.map +1 -0
- package/dist/entities/package-changelog/package-changelog.d.ts +20 -0
- package/dist/entities/package-changelog/package-changelog.d.ts.map +1 -0
- package/dist/entities/package-changelog/package-changelog.js +59 -0
- package/dist/entities/package-changelog/package-changelog.js.map +1 -0
- package/dist/entities/package-changelog/package-changelog.types.d.ts +25 -0
- package/dist/entities/package-changelog/package-changelog.types.d.ts.map +1 -0
- package/dist/entities/package-changelog/package-changelog.types.js +2 -0
- package/dist/entities/package-changelog/package-changelog.types.js.map +1 -0
- package/dist/entities/package-changelog/template.d.ts +20 -0
- package/dist/entities/package-changelog/template.d.ts.map +1 -0
- package/dist/entities/package-changelog/template.default.d.ts +10 -0
- package/dist/entities/package-changelog/template.default.d.ts.map +1 -0
- package/dist/entities/package-changelog/template.default.js +85 -0
- package/dist/entities/package-changelog/template.default.js.map +1 -0
- package/dist/entities/package-changelog/template.js +90 -0
- package/dist/entities/package-changelog/template.js.map +1 -0
- package/dist/entities/package-commits/dependency-analyzer.d.ts +35 -0
- package/dist/entities/package-commits/dependency-analyzer.d.ts.map +1 -0
- package/dist/entities/package-commits/dependency-analyzer.js +169 -0
- package/dist/entities/package-commits/dependency-analyzer.js.map +1 -0
- package/dist/entities/package-commits/dependency-analyzer.test.d.ts +2 -0
- package/dist/entities/package-commits/dependency-analyzer.test.d.ts.map +1 -0
- package/dist/entities/package-commits/dependency-analyzer.test.js +25 -0
- package/dist/entities/package-commits/dependency-analyzer.test.js.map +1 -0
- package/dist/entities/package-commits/index.d.ts +3 -0
- package/dist/entities/package-commits/index.d.ts.map +1 -0
- package/dist/entities/package-commits/index.js +3 -0
- package/dist/entities/package-commits/index.js.map +1 -0
- package/dist/entities/package-commits/package-commits.d.ts +33 -0
- package/dist/entities/package-commits/package-commits.d.ts.map +1 -0
- package/dist/entities/package-commits/package-commits.js +149 -0
- package/dist/entities/package-commits/package-commits.js.map +1 -0
- package/dist/entities/package-commits/package-commits.test.d.ts +2 -0
- package/dist/entities/package-commits/package-commits.test.d.ts.map +1 -0
- package/dist/entities/package-commits/package-commits.test.js +40 -0
- package/dist/entities/package-commits/package-commits.test.js.map +1 -0
- package/dist/entities/package-tags/index.d.ts +2 -0
- package/dist/entities/package-tags/index.d.ts.map +1 -0
- package/dist/entities/package-tags/index.js +2 -0
- package/dist/entities/package-tags/index.js.map +1 -0
- package/dist/entities/package-tags/package-tags.d.ts +24 -0
- package/dist/entities/package-tags/package-tags.d.ts.map +1 -0
- package/dist/entities/package-tags/package-tags.js +197 -0
- package/dist/entities/package-tags/package-tags.js.map +1 -0
- package/dist/entities/package-tags/package-tags.test.d.ts +2 -0
- package/dist/entities/package-tags/package-tags.test.d.ts.map +1 -0
- package/dist/entities/package-tags/package-tags.test.js +60 -0
- package/dist/entities/package-tags/package-tags.test.js.map +1 -0
- package/dist/entities/package-version/index.d.ts +3 -0
- package/dist/entities/package-version/index.d.ts.map +1 -0
- package/dist/entities/package-version/index.js +3 -0
- package/dist/entities/package-version/index.js.map +1 -0
- package/dist/entities/package-version/package-version.d.ts +16 -0
- package/dist/entities/package-version/package-version.d.ts.map +1 -0
- package/dist/entities/package-version/package-version.js +166 -0
- package/dist/entities/package-version/package-version.js.map +1 -0
- package/dist/entities/package-version/package-version.test.d.ts +2 -0
- package/dist/entities/package-version/package-version.test.d.ts.map +1 -0
- package/dist/entities/package-version/package-version.test.js +113 -0
- package/dist/entities/package-version/package-version.test.js.map +1 -0
- package/dist/entities/package-version/package-version.types.d.ts +31 -0
- package/dist/entities/package-version/package-version.types.d.ts.map +1 -0
- package/dist/entities/package-version/package-version.types.js +2 -0
- package/dist/entities/package-version/package-version.types.js.map +1 -0
- package/dist/entities/tag/index.d.ts +3 -0
- package/dist/entities/tag/index.d.ts.map +1 -0
- package/dist/entities/tag/index.js +3 -0
- package/dist/entities/tag/index.js.map +1 -0
- package/dist/entities/tag/tag.d.ts +24 -0
- package/dist/entities/tag/tag.d.ts.map +1 -0
- package/dist/entities/tag/tag.js +168 -0
- package/dist/entities/tag/tag.js.map +1 -0
- package/dist/entities/tag/tag.test.d.ts +2 -0
- package/dist/entities/tag/tag.test.d.ts.map +1 -0
- package/dist/entities/tag/tag.test.js +638 -0
- package/dist/entities/tag/tag.test.js.map +1 -0
- package/dist/entities/tag/tag.types.d.ts +35 -0
- package/dist/entities/tag/tag.types.d.ts.map +1 -0
- package/dist/entities/tag/tag.types.js +2 -0
- package/dist/entities/tag/tag.types.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/package.json +73 -0
- package/src/commands/ci/act.ts +95 -0
- package/src/commands/ci/attach-affected.ts +93 -0
- package/src/commands/ci/attach-service-ports.ts +31 -0
- package/src/commands/commit-check.ts +124 -0
- package/src/commands/commit.ts +103 -0
- package/src/commands/dev/check.ts +117 -0
- package/src/commands/dev/cleanup.ts +34 -0
- package/src/commands/dev/rm.ts +66 -0
- package/src/commands/dev/setup.ts +48 -0
- package/src/commands/local/cleanup.ts +74 -0
- package/src/commands/local/setup.ts +68 -0
- package/src/commands/local/vscode.ts +118 -0
- package/src/commands/update-package-json.ts +104 -0
- package/src/commands/version/apply.ts +156 -0
- package/src/commands/version/ci.ts +85 -0
- package/src/commands/version/prepare.ts +217 -0
- package/src/core/colorify.ts +61 -0
- package/src/core/index.ts +3 -0
- package/src/core/types.ts +262 -0
- package/src/core/wrapshell.ts +388 -0
- package/src/entities/affected/affected.test.ts +427 -0
- package/src/entities/affected/affected.ts +22 -0
- package/src/entities/affected/index.ts +1 -0
- package/src/entities/branch/branch.test.ts +348 -0
- package/src/entities/branch/branch.ts +89 -0
- package/src/entities/branch/branch.types.ts +5 -0
- package/src/entities/branch/index.ts +2 -0
- package/src/entities/commit/commit.test.ts +769 -0
- package/src/entities/commit/commit.ts +245 -0
- package/src/entities/commit/commit.types.ts +81 -0
- package/src/entities/commit/index.ts +2 -0
- package/src/entities/commit/pr.test.ts +860 -0
- package/src/entities/commit/pr.ts +241 -0
- package/src/entities/compose/compose.test.ts +496 -0
- package/src/entities/compose/compose.ts +251 -0
- package/src/entities/compose/compose.types.ts +88 -0
- package/src/entities/compose/index.ts +2 -0
- package/src/entities/entities.shell.test.ts +35 -0
- package/src/entities/entities.shell.ts +81 -0
- package/src/entities/index.ts +11 -0
- package/src/entities/intershell-config/intershell-config.default.ts +229 -0
- package/src/entities/intershell-config/intershell-config.test.ts +117 -0
- package/src/entities/intershell-config/intershell-config.ts +143 -0
- package/src/entities/intershell-config/intershell-config.types.ts +118 -0
- package/src/entities/package/index.ts +3 -0
- package/src/entities/package/package.shell.ts +124 -0
- package/src/entities/package/package.test.ts +830 -0
- package/src/entities/package/package.ts +267 -0
- package/src/entities/package/package.types.ts +49 -0
- package/src/entities/package-changelog/index.ts +3 -0
- package/src/entities/package-changelog/package-changelog.ts +81 -0
- package/src/entities/package-changelog/package-changelog.types.ts +30 -0
- package/src/entities/package-changelog/template.default.ts +109 -0
- package/src/entities/package-changelog/template.ts +118 -0
- package/src/entities/package-commits/dependency-analyzer.test.ts +29 -0
- package/src/entities/package-commits/dependency-analyzer.ts +194 -0
- package/src/entities/package-commits/index.ts +2 -0
- package/src/entities/package-commits/package-commits.test.ts +44 -0
- package/src/entities/package-commits/package-commits.ts +191 -0
- package/src/entities/package-tags/index.ts +1 -0
- package/src/entities/package-tags/package-tags.test.ts +73 -0
- package/src/entities/package-tags/package-tags.ts +234 -0
- package/src/entities/package-version/index.ts +2 -0
- package/src/entities/package-version/package-version.test.ts +141 -0
- package/src/entities/package-version/package-version.ts +234 -0
- package/src/entities/package-version/package-version.types.ts +35 -0
- package/src/entities/tag/index.ts +2 -0
- package/src/entities/tag/tag.test.ts +844 -0
- package/src/entities/tag/tag.ts +208 -0
- package/src/entities/tag/tag.types.ts +37 -0
- package/src/index.ts +7 -0
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
2
|
+
import { resolve } from "node:path";
|
|
3
|
+
import { entitiesShell } from "../entities.shell";
|
|
4
|
+
import { EntityPackage } from "../package";
|
|
5
|
+
export class EntityDependencyAnalyzer {
|
|
6
|
+
package;
|
|
7
|
+
constructor(packageInstance) {
|
|
8
|
+
this.package = packageInstance;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Get internal monorepo dependencies for a package at a specific tag/commit
|
|
12
|
+
* Returns only dependencies within this monorepo
|
|
13
|
+
*/
|
|
14
|
+
async getPackageDependenciesAtRef(reference) {
|
|
15
|
+
try {
|
|
16
|
+
// Get all internal packages in the monorepo
|
|
17
|
+
const allPackages = await EntityPackage.getAllPackages();
|
|
18
|
+
// Get package.json dependencies
|
|
19
|
+
const packageJsonDeps = await this.getPackageJsonDependencies(reference);
|
|
20
|
+
// Get tsconfig dependencies
|
|
21
|
+
const tsconfigDeps = await this.getTsConfigDependencies(reference);
|
|
22
|
+
// Combine and filter for internal dependencies only
|
|
23
|
+
const allDeps = [...new Set([...packageJsonDeps, ...tsconfigDeps])];
|
|
24
|
+
return allDeps.filter((dep) => allPackages.includes(dep));
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
return [];
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Get package.json dependencies for a package at a specific reference
|
|
32
|
+
*/
|
|
33
|
+
async getPackageJsonDependencies(reference) {
|
|
34
|
+
try {
|
|
35
|
+
const result = await entitiesShell.gitShowPackageJsonAtTag(reference, this.package.getJsonPath());
|
|
36
|
+
if (result.exitCode !== 0) {
|
|
37
|
+
return [];
|
|
38
|
+
}
|
|
39
|
+
const packageJson = JSON.parse(result.text());
|
|
40
|
+
const deps = [
|
|
41
|
+
...(packageJson.dependencies
|
|
42
|
+
? Object.keys(packageJson.dependencies)
|
|
43
|
+
: []),
|
|
44
|
+
...(packageJson.devDependencies
|
|
45
|
+
? Object.keys(packageJson.devDependencies)
|
|
46
|
+
: []),
|
|
47
|
+
...(packageJson.peerDependencies
|
|
48
|
+
? Object.keys(packageJson.peerDependencies)
|
|
49
|
+
: []),
|
|
50
|
+
];
|
|
51
|
+
// Filter for @repo/ packages and return without @repo/ prefix
|
|
52
|
+
return deps.filter((dep) => dep.startsWith("@repo/")).map((dep) => dep.replace("@repo/", ""));
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
return [];
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Get tsconfig dependencies by resolving paths to actual internal packages
|
|
60
|
+
*/
|
|
61
|
+
async getTsConfigDependencies(reference) {
|
|
62
|
+
try {
|
|
63
|
+
const packagePath = this.package.getPath();
|
|
64
|
+
const tsconfigPaths = await this.getTsConfigPaths(reference);
|
|
65
|
+
const deps = [];
|
|
66
|
+
for (const [alias, paths] of Object.entries(tsconfigPaths)) {
|
|
67
|
+
// Check if alias itself is an internal package
|
|
68
|
+
if (alias.startsWith("@repo/")) {
|
|
69
|
+
deps.push(alias.replace("@repo/", ""));
|
|
70
|
+
}
|
|
71
|
+
// Check if paths point to internal packages
|
|
72
|
+
if (Array.isArray(paths)) {
|
|
73
|
+
for (const path of paths) {
|
|
74
|
+
const resolvedPath = resolve(packagePath, path);
|
|
75
|
+
const internalPackage = this.findInternalPackageFromPath(resolvedPath);
|
|
76
|
+
if (internalPackage) {
|
|
77
|
+
deps.push(internalPackage);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return [...new Set(deps)];
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
return [];
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Find internal package name from absolute path
|
|
90
|
+
*/
|
|
91
|
+
findInternalPackageFromPath(absolutePath) {
|
|
92
|
+
// Check if path points to packages/ or apps/ directory
|
|
93
|
+
const packagesMatch = absolutePath.match(/\/packages\/([^/]+)/);
|
|
94
|
+
const appsMatch = absolutePath.match(/\/apps\/([^/]+)/);
|
|
95
|
+
if (packagesMatch) {
|
|
96
|
+
return `@repo/${packagesMatch[1]}`;
|
|
97
|
+
}
|
|
98
|
+
if (appsMatch) {
|
|
99
|
+
return appsMatch[1];
|
|
100
|
+
}
|
|
101
|
+
return null;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Get TypeScript configuration paths for a package at a specific git reference
|
|
105
|
+
*/
|
|
106
|
+
async getTsConfigPaths(reference) {
|
|
107
|
+
try {
|
|
108
|
+
const tsconfig = await this.readTsconfigAtRef(reference);
|
|
109
|
+
const resolvedConfig = await this.resolveExtendedTsConfig(tsconfig, this.package.getPath());
|
|
110
|
+
return resolvedConfig.compilerOptions?.paths || {};
|
|
111
|
+
}
|
|
112
|
+
catch {
|
|
113
|
+
return {};
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Read tsconfig.json at a specific git reference
|
|
118
|
+
*/
|
|
119
|
+
async readTsconfigAtRef(reference) {
|
|
120
|
+
try {
|
|
121
|
+
const result = await entitiesShell.gitShow(`${reference}:${this.package.getTsconfigPath()}`);
|
|
122
|
+
if (result.exitCode !== 0) {
|
|
123
|
+
// If tsconfig.json doesn't exist at this reference, return empty config
|
|
124
|
+
return {};
|
|
125
|
+
}
|
|
126
|
+
const content = result.text();
|
|
127
|
+
return JSON.parse(content);
|
|
128
|
+
}
|
|
129
|
+
catch {
|
|
130
|
+
// If parsing fails, return empty config
|
|
131
|
+
return {};
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Resolve extended TypeScript configurations
|
|
136
|
+
*/
|
|
137
|
+
async resolveExtendedTsConfig(config, packagePath) {
|
|
138
|
+
if (!config.extends) {
|
|
139
|
+
return config;
|
|
140
|
+
}
|
|
141
|
+
const extendedPath = resolve(packagePath, config.extends);
|
|
142
|
+
if (!existsSync(extendedPath)) {
|
|
143
|
+
return config;
|
|
144
|
+
}
|
|
145
|
+
try {
|
|
146
|
+
const extendedContent = readFileSync(extendedPath, "utf-8");
|
|
147
|
+
const extendedConfig = JSON.parse(extendedContent);
|
|
148
|
+
// Recursively resolve extended configs
|
|
149
|
+
const resolvedExtended = await this.resolveExtendedTsConfig(extendedConfig, packagePath);
|
|
150
|
+
// Merge configurations
|
|
151
|
+
return {
|
|
152
|
+
...resolvedExtended,
|
|
153
|
+
...config,
|
|
154
|
+
compilerOptions: {
|
|
155
|
+
...resolvedExtended.compilerOptions,
|
|
156
|
+
...config.compilerOptions,
|
|
157
|
+
paths: {
|
|
158
|
+
...(resolvedExtended.compilerOptions?.paths || {}),
|
|
159
|
+
...(config.compilerOptions?.paths || {}),
|
|
160
|
+
},
|
|
161
|
+
},
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
catch {
|
|
165
|
+
return config;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
//# sourceMappingURL=dependency-analyzer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependency-analyzer.js","sourceRoot":"","sources":["../../../src/entities/package-commits/dependency-analyzer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependency-analyzer.test.d.ts","sourceRoot":"","sources":["../../../src/entities/package-commits/dependency-analyzer.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { describe, expect, test } from "bun:test";
|
|
2
|
+
import { EntityPackage } from "../package";
|
|
3
|
+
import { EntityDependencyAnalyzer } from "./dependency-analyzer";
|
|
4
|
+
describe("EntityDependencyAnalyzer", () => {
|
|
5
|
+
test("should create instance", () => {
|
|
6
|
+
const packageInstance = new EntityPackage("root");
|
|
7
|
+
const analyzer = new EntityDependencyAnalyzer(packageInstance);
|
|
8
|
+
expect(analyzer).toBeDefined();
|
|
9
|
+
});
|
|
10
|
+
test("should get package dependencies at ref", async () => {
|
|
11
|
+
const packageInstance = new EntityPackage("root");
|
|
12
|
+
const analyzer = new EntityDependencyAnalyzer(packageInstance);
|
|
13
|
+
// This will return empty array since we can't mock git operations easily
|
|
14
|
+
const deps = await analyzer.getPackageDependenciesAtRef("HEAD");
|
|
15
|
+
expect(Array.isArray(deps)).toBe(true);
|
|
16
|
+
});
|
|
17
|
+
test("should handle dependencies", async () => {
|
|
18
|
+
const packageInstance = new EntityPackage("root");
|
|
19
|
+
const analyzer = new EntityDependencyAnalyzer(packageInstance);
|
|
20
|
+
const deps = await analyzer.getPackageDependenciesAtRef("HEAD");
|
|
21
|
+
expect(Array.isArray(deps)).toBe(true);
|
|
22
|
+
// Root package might have dependencies, so we just check it's an array
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
//# sourceMappingURL=dependency-analyzer.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependency-analyzer.test.js","sourceRoot":"","sources":["../../../src/entities/package-commits/dependency-analyzer.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACzC,IAAI,CAAC,wBAAwB,EAAE,GAAG,EAAE;QACnC,MAAM,eAAe,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,IAAI,wBAAwB,CAAC,eAAe,CAAC,CAAC;QAC/D,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,eAAe,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,IAAI,wBAAwB,CAAC,eAAe,CAAC,CAAC;QAE/D,yEAAyE;QACzE,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC;QAChE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;QAC7C,MAAM,eAAe,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,IAAI,wBAAwB,CAAC,eAAe,CAAC,CAAC;QAE/D,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC;QAChE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,uEAAuE;IACxE,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/entities/package-commits/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/entities/package-commits/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { ParsedCommitData } from "../commit";
|
|
2
|
+
import { EntityPackage } from "../package";
|
|
3
|
+
export declare class EntityPackageCommits {
|
|
4
|
+
private package;
|
|
5
|
+
private commit;
|
|
6
|
+
private dependencyAnalyzer;
|
|
7
|
+
constructor(packageInstance: EntityPackage);
|
|
8
|
+
/**
|
|
9
|
+
* Get the first commit for this package
|
|
10
|
+
*/
|
|
11
|
+
getFirstCommitForPackage(): Promise<string>;
|
|
12
|
+
/**
|
|
13
|
+
* Get commits in a range for this package with dependency filtering
|
|
14
|
+
*/
|
|
15
|
+
getCommitsInRange(from: string, to: string): Promise<ParsedCommitData[]>;
|
|
16
|
+
/**
|
|
17
|
+
* Get which packages are affected by a commit (direct and dependencies)
|
|
18
|
+
* Analyzes the commit's file changes against package dependencies
|
|
19
|
+
*/
|
|
20
|
+
getCommitAffectedPackages(commit: ParsedCommitData): Promise<{
|
|
21
|
+
direct: string | null;
|
|
22
|
+
dependencies: string[];
|
|
23
|
+
}>;
|
|
24
|
+
/**
|
|
25
|
+
* Deduplicate merge commits - remove hashes that are already included in merge commits
|
|
26
|
+
*/
|
|
27
|
+
private filterMergeCommitsByPackage;
|
|
28
|
+
/**
|
|
29
|
+
* Sort commits: merge commits first, then orphan commits, both by date (newest first)
|
|
30
|
+
*/
|
|
31
|
+
private sortCommits;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=package-commits.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-commits.d.ts","sourceRoot":"","sources":["../../../src/entities/package-commits/package-commits.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAGlD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAG3C,qBAAa,oBAAoB;IAChC,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,kBAAkB,CAA2B;gBAEzC,eAAe,EAAE,aAAa;IAM1C;;OAEG;IACG,wBAAwB,IAAI,OAAO,CAAC,MAAM,CAAC;IAqCjD;;OAEG;IACG,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IA+C9E;;;OAGG;IACG,yBAAyB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC;QAClE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,YAAY,EAAE,MAAM,EAAE,CAAC;KACvB,CAAC;IA+BF;;OAEG;YACW,2BAA2B;IAwBzC;;OAEG;IACH,OAAO,CAAC,WAAW;CAenB"}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import { EntityCommit } from "../commit";
|
|
2
|
+
import { entitiesShell } from "../entities.shell";
|
|
3
|
+
import { EntityPackage } from "../package";
|
|
4
|
+
import { EntityDependencyAnalyzer } from "./dependency-analyzer";
|
|
5
|
+
export class EntityPackageCommits {
|
|
6
|
+
package;
|
|
7
|
+
commit;
|
|
8
|
+
dependencyAnalyzer;
|
|
9
|
+
constructor(packageInstance) {
|
|
10
|
+
this.package = packageInstance;
|
|
11
|
+
this.commit = new EntityCommit();
|
|
12
|
+
this.dependencyAnalyzer = new EntityDependencyAnalyzer(this.package);
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Get the first commit for this package
|
|
16
|
+
*/
|
|
17
|
+
async getFirstCommitForPackage() {
|
|
18
|
+
if (this.package.getName() === "root") {
|
|
19
|
+
// For root package, use the very first commit of the repository
|
|
20
|
+
const result = await entitiesShell.gitFirstCommit();
|
|
21
|
+
if (result.exitCode !== 0) {
|
|
22
|
+
throw new Error("Could not find first commit");
|
|
23
|
+
}
|
|
24
|
+
return result.text().trim();
|
|
25
|
+
}
|
|
26
|
+
// For sub-packages, find the first commit where the package directory was introduced
|
|
27
|
+
const packagePath = this.package.getPath();
|
|
28
|
+
const result = await entitiesShell.gitLogHashes([packagePath]);
|
|
29
|
+
if (result.exitCode !== 0 || !result.text().trim()) {
|
|
30
|
+
// If no commits found for this package path, fall back to first commit
|
|
31
|
+
const firstCommitResult = await entitiesShell.gitFirstCommit();
|
|
32
|
+
if (firstCommitResult.exitCode !== 0) {
|
|
33
|
+
throw new Error("Could not find first commit");
|
|
34
|
+
}
|
|
35
|
+
return firstCommitResult.text().trim();
|
|
36
|
+
}
|
|
37
|
+
// Get the last commit hash from the result (since git log returns newest first)
|
|
38
|
+
const commitHashes = result.text().trim().split("\n").filter(Boolean);
|
|
39
|
+
if (commitHashes.length === 0) {
|
|
40
|
+
const firstCommitResult = await entitiesShell.gitFirstCommit();
|
|
41
|
+
if (firstCommitResult.exitCode !== 0) {
|
|
42
|
+
throw new Error("Could not find first commit");
|
|
43
|
+
}
|
|
44
|
+
return firstCommitResult.text().trim();
|
|
45
|
+
}
|
|
46
|
+
// Return the last commit (which is the first chronologically)
|
|
47
|
+
return commitHashes[commitHashes.length - 1];
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Get commits in a range for this package with dependency filtering
|
|
51
|
+
*/
|
|
52
|
+
async getCommitsInRange(from, to) {
|
|
53
|
+
const gitRange = from === "0.0.0" ? to : `${from}..${to}`;
|
|
54
|
+
try {
|
|
55
|
+
// Get all commit hashes (both regular and merge commits)
|
|
56
|
+
const [allHashesResult, mergeHashesResult] = await Promise.all([
|
|
57
|
+
entitiesShell.gitLogHashes([gitRange]),
|
|
58
|
+
entitiesShell.gitLogHashes([gitRange, "--merges"]),
|
|
59
|
+
]);
|
|
60
|
+
const allHashes = allHashesResult.exitCode === 0
|
|
61
|
+
? allHashesResult.text().trim().split("\n").filter(Boolean)
|
|
62
|
+
: [];
|
|
63
|
+
const mergeHashes = mergeHashesResult.exitCode === 0
|
|
64
|
+
? mergeHashesResult.text().trim().split("\n").filter(Boolean)
|
|
65
|
+
: [];
|
|
66
|
+
// For non-root packages, filter merge commits by package path
|
|
67
|
+
const commitHashes = await this.filterMergeCommitsByPackage(allHashes, mergeHashes);
|
|
68
|
+
// Parse all commits
|
|
69
|
+
const allCommits = await Promise.all(commitHashes.map((hash) => this.commit.parseByHash(hash)));
|
|
70
|
+
// Filter commits based on package dependencies at each commit
|
|
71
|
+
const relevantCommits = [];
|
|
72
|
+
for (const commit of allCommits) {
|
|
73
|
+
// Check if commit affects this package or its dependencies
|
|
74
|
+
const affected = await this.getCommitAffectedPackages(commit);
|
|
75
|
+
// Include commit if it affects this package directly or any of its dependencies
|
|
76
|
+
if (affected.direct !== null || affected.dependencies.length > 0) {
|
|
77
|
+
relevantCommits.push(commit);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
// Sort commits: merge commits first, then orphan commits, both by date
|
|
81
|
+
return this.sortCommits(relevantCommits);
|
|
82
|
+
}
|
|
83
|
+
catch (error) {
|
|
84
|
+
console.warn("Failed to get commits in range:", error);
|
|
85
|
+
return [];
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Get which packages are affected by a commit (direct and dependencies)
|
|
90
|
+
* Analyzes the commit's file changes against package dependencies
|
|
91
|
+
*/
|
|
92
|
+
async getCommitAffectedPackages(commit) {
|
|
93
|
+
if (!commit.files?.length) {
|
|
94
|
+
return { direct: null, dependencies: [] };
|
|
95
|
+
}
|
|
96
|
+
// Get package dependencies at the commit
|
|
97
|
+
const commitHash = commit.info?.hash || "HEAD";
|
|
98
|
+
const packageDeps = await this.dependencyAnalyzer.getPackageDependenciesAtRef(commitHash);
|
|
99
|
+
// Check if commit affects this package directly
|
|
100
|
+
const packagePath = this.package.getPath();
|
|
101
|
+
const affectsDirect = this.package.isRoot()
|
|
102
|
+
? commit.files.length > 0 // For root package, any file change affects it
|
|
103
|
+
: commit.files.some((file) => file.startsWith(packagePath));
|
|
104
|
+
// Check if commit affects any dependencies
|
|
105
|
+
const affectedDependencies = [];
|
|
106
|
+
for (const dep of packageDeps) {
|
|
107
|
+
const depPackage = new EntityPackage(dep);
|
|
108
|
+
const depPath = depPackage.getPath();
|
|
109
|
+
if (commit.files.some((file) => file.startsWith(depPath))) {
|
|
110
|
+
affectedDependencies.push(dep);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
return {
|
|
114
|
+
direct: affectsDirect ? this.package.getName() : null,
|
|
115
|
+
dependencies: affectedDependencies,
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Deduplicate merge commits - remove hashes that are already included in merge commits
|
|
120
|
+
*/
|
|
121
|
+
async filterMergeCommitsByPackage(allHashes, mergeHashes) {
|
|
122
|
+
// For each merge commit, get the individual commits inside it
|
|
123
|
+
const individualCommits = new Set();
|
|
124
|
+
for (const mergeHash of mergeHashes) {
|
|
125
|
+
const prCommitsResult = await entitiesShell.gitLogHashes([`${mergeHash}^..${mergeHash}^2`]);
|
|
126
|
+
if (prCommitsResult.exitCode === 0) {
|
|
127
|
+
const prHashes = prCommitsResult.text().trim().split("\n").filter(Boolean);
|
|
128
|
+
prHashes.forEach((hash) => {
|
|
129
|
+
individualCommits.add(hash);
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
// Remove individual commits that are already included in merge commits
|
|
134
|
+
const filteredHashes = allHashes.filter((hash) => !individualCommits.has(hash));
|
|
135
|
+
// Return merge commits + filtered individual commits
|
|
136
|
+
return [...new Set([...filteredHashes, ...mergeHashes])];
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Sort commits: merge commits first, then orphan commits, both by date (newest first)
|
|
140
|
+
*/
|
|
141
|
+
sortCommits(commits) {
|
|
142
|
+
const mergeCommits = commits.filter((commit) => commit.message.isMerge);
|
|
143
|
+
const orphanCommits = commits.filter((commit) => !commit.message.isMerge &&
|
|
144
|
+
!mergeCommits.some((mergeCommit) => mergeCommit.pr?.prCommits?.some((prCommit) => prCommit.info?.hash === commit.info?.hash)));
|
|
145
|
+
const sortByDate = (a, b) => new Date(b.info?.date || "0").getTime() - new Date(a.info?.date || "0").getTime();
|
|
146
|
+
return [...mergeCommits.sort(sortByDate), ...orphanCommits.sort(sortByDate)];
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
//# sourceMappingURL=package-commits.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-commits.js","sourceRoot":"","sources":["../../../src/entities/package-commits/package-commits.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-commits.test.d.ts","sourceRoot":"","sources":["../../../src/entities/package-commits/package-commits.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { describe, expect, test } from "bun:test";
|
|
2
|
+
import { EntityPackage } from "../package";
|
|
3
|
+
import { EntityPackageCommits } from "./package-commits";
|
|
4
|
+
describe("EntityPackageCommits", () => {
|
|
5
|
+
test("should create instance", () => {
|
|
6
|
+
const packageInstance = new EntityPackage("api");
|
|
7
|
+
const commitPackage = new EntityPackageCommits(packageInstance);
|
|
8
|
+
expect(commitPackage).toBeDefined();
|
|
9
|
+
});
|
|
10
|
+
test("should create root instance", () => {
|
|
11
|
+
const packageInstance = new EntityPackage("root");
|
|
12
|
+
const rootCommitPackage = new EntityPackageCommits(packageInstance);
|
|
13
|
+
expect(rootCommitPackage).toBeDefined();
|
|
14
|
+
});
|
|
15
|
+
test("should have main method", () => {
|
|
16
|
+
const packageInstance = new EntityPackage("api");
|
|
17
|
+
const commitPackage = new EntityPackageCommits(packageInstance);
|
|
18
|
+
// Check that the main method exists
|
|
19
|
+
expect(typeof commitPackage.getCommitsInRange).toBe("function");
|
|
20
|
+
});
|
|
21
|
+
describe("getCommitsInRange", () => {
|
|
22
|
+
test("should return empty array when git operations fail", async () => {
|
|
23
|
+
const packageInstance = new EntityPackage("root");
|
|
24
|
+
const commitPackage = new EntityPackageCommits(packageInstance);
|
|
25
|
+
// Test with invalid range to trigger error handling
|
|
26
|
+
const result = await commitPackage.getCommitsInRange("invalid", "invalid");
|
|
27
|
+
expect(Array.isArray(result)).toBe(true);
|
|
28
|
+
expect(result.length).toBe(0);
|
|
29
|
+
});
|
|
30
|
+
test("should handle package-specific commits", async () => {
|
|
31
|
+
const packageInstance = new EntityPackage("api");
|
|
32
|
+
const commitPackage = new EntityPackageCommits(packageInstance);
|
|
33
|
+
// Test with invalid range to trigger error handling
|
|
34
|
+
const result = await commitPackage.getCommitsInRange("invalid", "invalid");
|
|
35
|
+
expect(Array.isArray(result)).toBe(true);
|
|
36
|
+
expect(result.length).toBe(0);
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
//# sourceMappingURL=package-commits.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-commits.test.js","sourceRoot":"","sources":["../../../src/entities/package-commits/package-commits.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEzD,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACrC,IAAI,CAAC,wBAAwB,EAAE,GAAG,EAAE;QACnC,MAAM,eAAe,GAAG,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC;QACjD,MAAM,aAAa,GAAG,IAAI,oBAAoB,CAAC,eAAe,CAAC,CAAC;QAChE,MAAM,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACxC,MAAM,eAAe,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,iBAAiB,GAAG,IAAI,oBAAoB,CAAC,eAAe,CAAC,CAAC;QACpE,MAAM,CAAC,iBAAiB,CAAC,CAAC,WAAW,EAAE,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACpC,MAAM,eAAe,GAAG,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC;QACjD,MAAM,aAAa,GAAG,IAAI,oBAAoB,CAAC,eAAe,CAAC,CAAC;QAChE,oCAAoC;QACpC,MAAM,CAAC,OAAO,aAAa,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAClC,IAAI,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;YACrE,MAAM,eAAe,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;YAClD,MAAM,aAAa,GAAG,IAAI,oBAAoB,CAAC,eAAe,CAAC,CAAC;YAChE,oDAAoD;YACpD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YAC3E,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;YACzD,MAAM,eAAe,GAAG,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC;YACjD,MAAM,aAAa,GAAG,IAAI,oBAAoB,CAAC,eAAe,CAAC,CAAC;YAChE,oDAAoD;YACpD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YAC3E,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/entities/package-tags/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/entities/package-tags/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { EntityPackage } from "../package";
|
|
2
|
+
import type { EntityGitTagVersion, EntityPackageVersionHistory } from "../package-version/package-version.types";
|
|
3
|
+
export declare class EntityPackageTags {
|
|
4
|
+
private package;
|
|
5
|
+
private packageCommits;
|
|
6
|
+
constructor(packageInstance: EntityPackage);
|
|
7
|
+
getTagPrefix(): Promise<string>;
|
|
8
|
+
createPackageTag(version: string, message?: string): Promise<void>;
|
|
9
|
+
listPackageTags(): Promise<string[]>;
|
|
10
|
+
packageTagExists(version: string): Promise<boolean>;
|
|
11
|
+
getBaseTagShaForPackage(from?: string): Promise<string>;
|
|
12
|
+
getTagsInRangeForPackage(from: string, to: string): Promise<Array<{
|
|
13
|
+
tag: string;
|
|
14
|
+
previousTag?: string;
|
|
15
|
+
}>>;
|
|
16
|
+
getPackageVersionHistory(): Promise<EntityPackageVersionHistory>;
|
|
17
|
+
getLatestPackageVersionInHistory(): Promise<string | null>;
|
|
18
|
+
packageVersionExistsInHistory(version: string): Promise<boolean>;
|
|
19
|
+
getPackageVersionAtTag(tagName: string): Promise<EntityGitTagVersion | null>;
|
|
20
|
+
validateTagPrefixForPackage(tagName: string): Promise<void>;
|
|
21
|
+
detectTagPrefix(tagName: string): string | undefined;
|
|
22
|
+
compareVersions(version1: string, version2: string): number;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=package-tags.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-tags.d.ts","sourceRoot":"","sources":["../../../src/entities/package-tags/package-tags.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,OAAO,KAAK,EACX,mBAAmB,EACnB,2BAA2B,EAC3B,MAAM,0CAA0C,CAAC;AAGlD,qBAAa,iBAAiB;IAC7B,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,cAAc,CAAuB;gBAEjC,eAAe,EAAE,aAAa;IAKpC,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAI/B,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWlE,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAIpC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAOnD,uBAAuB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAmBvD,wBAAwB,CAC7B,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,GACR,OAAO,CAAC,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IA8BlD,wBAAwB,IAAI,OAAO,CAAC,2BAA2B,CAAC;IAgChE,gCAAgC,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAK1D,6BAA6B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKhE,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IA+B5E,2BAA2B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmCjE,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAepD,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;CAc3D"}
|