{"_id":"@accelint/constellation-tracker","_rev":"7-68dbda5ce43836f99d78f576c98ce873","name":"@accelint/constellation-tracker","dist-tags":{"latest":"1.0.2"},"versions":{"1.0.0":{"name":"@accelint/constellation-tracker","version":"1.0.0","keywords":["dev-tk","tooling"],"author":{"name":"https://hypergiant.com"},"license":"Apache-2.0","_id":"@accelint/constellation-tracker@1.0.0","maintainers":[{"name":"ray.knight-hypergiant","email":"ray.knight@hypergiant.com"},{"name":"hg-devsecops","email":"hg-devsecops@hypergiant.com"},{"name":"brandonjpierce","email":"brandonpierce91@gmail.com"},{"name":"bryan_hg","email":"bryan.kizer@hypergiant.com"},{"name":"isaac.kehle-hypergiant","email":"isaac.kehle@hypergiant.com"}],"homepage":"https://github.com/gohypergiant/standard-toolkit#readme","bugs":{"url":"https://github.com/gohypergiant/standard-toolkit/issues"},"bin":{"constellation-tracker":"dist/main.js"},"dist":{"shasum":"c1634293dab1434d3b39bc7ade5fcef3a3adbd5e","tarball":"https://registry.npmjs.org/@accelint/constellation-tracker/-/constellation-tracker-1.0.0.tgz","fileCount":35,"integrity":"sha512-3MyWZN1PnR5y/9fRORvCa8R2arJgY04zwRxP71XSsiMHAQCE2WrFlsrLvSa4HZmb5UfJyDHUVzIErY74oYB0xA==","signatures":[{"sig":"MEYCIQD/4+jE0XAbnT+BX4vBoE5YRGwZsDykH2wJCfkJo5i2PAIhALm+Md1/Lb0v+JXi1UgoLMazPM3juoM/H/OEa7L8dSOf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49705},"type":"module","_from":"file:accelint-constellation-tracker-1.0.0.tgz","owner":"default/pathfinder","title":"Constellation Tracker","$schema":"https://json.schemastore.org/package","exports":{".":{"import":{"types":"./dist/lib.d.ts","default":"./dist/lib.js"},"default":"./dist/lib.js"}},"private":false,"scripts":{"lint":"pnpm biome lint","test":"pnpm vitest --dir=test","build":"pnpm tsc && pnpm license && pnpm format","format":"pnpm biome format . --write","license":"pnpm zx ../../scripts/license.mjs","postinstall":"pnpm run build","test:coverage":"pnpm vitest --dir=test --coverage","constellation-tracker":"node ./dist/main.js"},"subPath":"tooling/constellation-tracker","_npmUser":{"name":"brandonjpierce","email":"brandonpierce91@gmail.com"},"_resolved":"/tmp/93f8460f780515afd3a1520419862ca3/accelint-constellation-tracker-1.0.0.tgz","_integrity":"sha512-3MyWZN1PnR5y/9fRORvCa8R2arJgY04zwRxP71XSsiMHAQCE2WrFlsrLvSa4HZmb5UfJyDHUVzIErY74oYB0xA==","repository":{"url":"git+https://github.com/gohypergiant/standard-toolkit.git","type":"git"},"_npmVersion":"10.9.3","description":"A tool used to keep a project's catalog-info.yaml file up to date for use in Constellation.","directories":{},"sideEffects":false,"_nodeVersion":"22.20.0","dependencies":{"ora":"8.2.0","yaml":"^2.8.1","ansis":"4.0.0","globby":"14.1.0","radash":"^12.1.1","commander":"14.0.0","true-myth":"9.0.1","typescript":"^5.8.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"8.5.0","vitest":"2.1.3","@types/node":"^20.17.48","@accelint/vitest-config":"0.1.4","@accelint/typescript-config":"0.1.3"},"_npmOperationalInternal":{"tmp":"tmp/constellation-tracker_1.0.0_1760140541767_0.6509737965154283","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@accelint/constellation-tracker","version":"1.0.1","keywords":["dev-tk","tooling"],"author":{"name":"https://hypergiant.com"},"license":"Apache-2.0","_id":"@accelint/constellation-tracker@1.0.1","maintainers":[{"name":"ray.knight-hypergiant","email":"ray.knight@hypergiant.com"},{"name":"hg-devsecops","email":"hg-devsecops@hypergiant.com"},{"name":"brandonjpierce","email":"brandonpierce91@gmail.com"},{"name":"bryan_hg","email":"bryan.kizer@hypergiant.com"},{"name":"isaac.kehle-hypergiant","email":"isaac.kehle@hypergiant.com"}],"homepage":"https://github.com/gohypergiant/standard-toolkit#readme","bugs":{"url":"https://github.com/gohypergiant/standard-toolkit/issues"},"bin":{"constellation-tracker":"dist/main.js"},"dist":{"shasum":"2618a82b591faba0898acb61931485b4f24e1cb2","tarball":"https://registry.npmjs.org/@accelint/constellation-tracker/-/constellation-tracker-1.0.1.tgz","fileCount":35,"integrity":"sha512-NRfc2IBDyMg12Yh+aSgs/O3XauMqQlky3w9kZ1wqv8qAw1zmhErgbSEuedkQNh5CgUzMcfUOcWz+XotGSFPh+w==","signatures":[{"sig":"MEUCIQC0msHS0AAM0PFtJFp54HK+q1WdLpwI5A0gsdlQHfOZLQIgO15F/c8A880s3JbIzzJD7MwqHJBRRiM74ZUvbzzhcNk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50378},"type":"module","_from":"file:accelint-constellation-tracker-1.0.1.tgz","owner":"default/pathfinder","title":"Constellation Tracker","$schema":"https://json.schemastore.org/package","exports":{".":{"import":{"types":"./dist/lib.d.ts","default":"./dist/lib.js"},"default":"./dist/lib.js"}},"private":false,"scripts":{"lint":"pnpm biome lint","test":"pnpm vitest --dir=test","build":"pnpm tsc && pnpm license && pnpm format","format":"pnpm biome format . --write","license":"pnpm zx ../../scripts/license.mjs","postinstall":"pnpm run build","test:coverage":"pnpm vitest --dir=test --coverage","constellation-tracker":"node ./dist/main.js"},"subPath":"tooling/constellation-tracker","_npmUser":{"name":"brandonjpierce","email":"brandonpierce91@gmail.com"},"_resolved":"/tmp/9520ff6cfc29b8ffb06943d93bc26893/accelint-constellation-tracker-1.0.1.tgz","_integrity":"sha512-NRfc2IBDyMg12Yh+aSgs/O3XauMqQlky3w9kZ1wqv8qAw1zmhErgbSEuedkQNh5CgUzMcfUOcWz+XotGSFPh+w==","repository":{"url":"git+https://github.com/gohypergiant/standard-toolkit.git","type":"git"},"_npmVersion":"10.9.3","description":"A tool used to keep a project's catalog-info.yaml file up to date for use in Constellation.","directories":{},"sideEffects":false,"_nodeVersion":"22.20.0","dependencies":{"ora":"^8.2.0","yaml":"^2.8.1","ansis":"^4.0.0","globby":"^14.1.0","radash":"^12.1.1","commander":"^14.0.0","true-myth":"^9.0.1","typescript":"5.8.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"8.5.0","vitest":"^2.1.9","@types/node":"^24.9.0","@accelint/vitest-config":"0.1.5","@accelint/typescript-config":"0.1.4"},"_npmOperationalInternal":{"tmp":"tmp/constellation-tracker_1.0.1_1761862913022_0.12905634744267158","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@accelint/constellation-tracker","version":"1.0.2","keywords":["dev-tk","tooling"],"author":{"name":"https://hypergiant.com"},"license":"Apache-2.0","_id":"@accelint/constellation-tracker@1.0.2","maintainers":[{"name":"ray.knight-hypergiant","email":"ray.knight@hypergiant.com"},{"name":"hg-devsecops","email":"hg-devsecops@hypergiant.com"},{"name":"brandonjpierce","email":"brandonpierce91@gmail.com"},{"name":"bryan_hg","email":"bryan.kizer@hypergiant.com"},{"name":"isaac.kehle-hypergiant","email":"isaac.kehle@hypergiant.com"}],"homepage":"https://github.com/gohypergiant/standard-toolkit#readme","bugs":{"url":"https://github.com/gohypergiant/standard-toolkit/issues"},"bin":{"constellation-tracker":"dist/main.mjs"},"dist":{"shasum":"8abee0f7eff97c17a47d370be034b25646db18ea","tarball":"https://registry.npmjs.org/@accelint/constellation-tracker/-/constellation-tracker-1.0.2.tgz","fileCount":34,"integrity":"sha512-fpbE7rCTQjn+FLJQURCUqxWlK4V5ffqKJ/LS/DsLxYZF6lJOlyTqDQR0GBWJyQG+Rit0wZPBYAr9mqY819BSFg==","signatures":[{"sig":"MEUCIQD8QTpalo4ZS82Rk9kNjiFEijhknhLLnF3HGxW8mXv+5QIgPe/VtUiXXgAdeWLRUi3seUesZQyPWEg+Q+kIn0W81+E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":69433},"type":"module","_from":"file:accelint-constellation-tracker-1.0.2.tgz","owner":"default/pathfinder","title":"Constellation Tracker","$schema":"https://json.schemastore.org/package","engines":{"node":">=22","pnpm":">=10"},"exports":{"./main":"./dist/main.mjs","./utils/types":"./dist/utils/types.mjs","./log-messages":"./dist/log-messages.mjs","./package.json":"./package.json","./validate-input":"./dist/validate-input.mjs","./get-catalog-info":"./dist/get-catalog-info.mjs","./validate-package":"./dist/validate-package.mjs","./collect-dependencies":"./dist/collect-dependencies.mjs","./utils/save-catalog-info":"./dist/utils/save-catalog-info.mjs","./utils/catalog-info-template":"./dist/utils/catalog-info-template.mjs","./utils/generate-catalog-info":"./dist/utils/generate-catalog-info.mjs"},"private":false,"scripts":{"lint":"pnpm biome lint . --verbose","test":"pnpm vitest --dir=test","format":"pnpm biome format . --write --verbose","license":"pnpm zx ../../scripts/license.mjs","pre-build":"pnpm tsdown","format:check":"pnpm biome format . --verbose","test:coverage":"pnpm vitest --dir=test --coverage","constellation-tracker":"node ./dist/main.mjs"},"subPath":"tooling/constellation-tracker","_npmUser":{"name":"brandonjpierce","email":"brandonpierce91@gmail.com"},"_resolved":"/tmp/c7fd661a7f90cbdafe8d85df6c4f319d/accelint-constellation-tracker-1.0.2.tgz","_integrity":"sha512-fpbE7rCTQjn+FLJQURCUqxWlK4V5ffqKJ/LS/DsLxYZF6lJOlyTqDQR0GBWJyQG+Rit0wZPBYAr9mqY819BSFg==","repository":{"url":"git+https://github.com/gohypergiant/standard-toolkit.git","type":"git"},"_npmVersion":"11.6.2","description":"A tool used to keep a project's catalog-info.yaml file up to date for use in Constellation.","directories":{},"sideEffects":false,"_nodeVersion":"24.12.0","dependencies":{"ora":"^8.2.0","yaml":"^2.8.1","ansis":"^4.0.0","globby":"^14.1.0","radash":"^12.1.1","commander":"^14.0.0","true-myth":"^9.0.1","typescript":"^5.9.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.18.0","vitest":"^4.0.15","@types/node":"^22","@accelint/vitest-config":"0.1.6","@accelint/typescript-config":"0.1.4"},"_npmOperationalInternal":{"tmp":"tmp/constellation-tracker_1.0.2_1766092886832_0.4702689796169166","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2025-10-10T23:55:41.683Z","modified":"2026-04-02T19:29:14.742Z","1.0.0":"2025-10-10T23:55:41.975Z","1.0.1":"2025-10-30T22:21:53.217Z","1.0.2":"2025-12-18T21:21:26.982Z"},"bugs":{"url":"https://github.com/gohypergiant/standard-toolkit/issues"},"author":{"name":"https://hypergiant.com"},"license":"Apache-2.0","homepage":"https://github.com/gohypergiant/standard-toolkit#readme","keywords":["dev-tk","tooling"],"repository":{"url":"git+https://github.com/gohypergiant/standard-toolkit.git","type":"git"},"description":"A tool used to keep a project's catalog-info.yaml file up to date for use in Constellation.","maintainers":[{"email":"hg-devsecops@hypergiant.com","name":"hg-devsecops"},{"email":"brandonpierce91@gmail.com","name":"brandonjpierce"},{"email":"bryan.kizer@hypergiant.com","name":"bryan_hg"},{"email":"colin.leahy@hypergiant.com","name":"colin.leahy"},{"email":"jacob.foster@hypergiant.com","name":"jacob.foster.hg"}],"readme":"# Constellation Tracker\n\nConstellation Tracker is a CLI tool designed to automatically maintain and update your project's `catalog-info.yaml` file for use with Constellation (Backstage). It analyzes your project's dependencies and updates the catalog file with the correct dependency information, ensuring your project's metadata is always accurate and up-to-date.\n\n## Purpose\n\nWhen working with Constellation (a Backstage-based developer portal), each project requires a `catalog-info.yaml` file that describes the project and its dependencies. Manually maintaining this file can be tedious and error-prone, especially as dependencies change over time.\n\nConstellation Tracker solves this by:\n\n1. Automatically generating a `catalog-info.yaml` file if one doesn't exist\n2. Scanning your project's dependencies for their own `catalog-info.yaml` files\n3. Updating your project's `catalog-info.yaml` with the correct dependency information\n4. Maintaining proper formatting and structure of the catalog file\n\n## Installation\n\n```bash\n# From the root of the standard-toolkit repository\npnpm install\n\n# Or install globally\nnpm install -g @accelint/constellation-tracker\n```\n\n## Integration with Git Workflow\n\nConstellation Tracker is designed to be integrated into your Git workflow, typically using tools like lefthook. This ensures your `catalog-info.yaml` file is always up-to-date before commits are made.\n\nExample lefthook configuration in your project's `.lefthook.yml`:\n\n```yaml\npre-commit:\n  commands:\n    constellation-tracker:\n      run: constellation-tracker\n```\n\n## Usage\n\n```bash\n# Run with default options (uses current directory)\nconstellation-tracker\n\n# Specify custom paths\nconstellation-tracker --node-modules \"./custom/node_modules\" --catalog-info \"./path/to/catalog-info.yaml\"\n\n# Regenerate the catalog-info.yaml file completely\nconstellation-tracker --regenerate\n```\n\n### Command Options\n\n- `--node-modules <path>`: Specify a custom path to the node_modules directory\n- `--catalog-info <path>`: Specify a custom path to the catalog-info.yaml file\n- `--regenerate`: Completely regenerate the catalog-info.yaml file\n\n## Development\n\n```bash\n# Build the project\npnpm build\n\n# Run linting\npnpm lint\n\n# Format code\npnpm format\n\n# Run tests\npnpm test\n```\n\n## Important package.json Fields\n\nConstellation Tracker relies on specific fields in your project's `package.json` file:\n\n### Standard Fields Used\n\n- `name`: Used as the component name in the catalog-info.yaml\n- `title`: Used as the component title\n- `version`: Used in the package/version annotation\n- `description`: Used as the component description\n- `repository`: Used to generate links and references\n- `keywords`: Used as tags in the catalog-info.yaml\n\n### Custom Fields Used\n\n- `owner`: Specifies the owner of the component (format: `default/team-name`)\n- `subPath`: Specifies the path to the component within the repository\n\nExample of these custom fields in package.json:\n\n```json\n{\n  \"name\": \"my-package\",\n  \"owner\": \"default/my-team\",\n  \"subPath\": \"packages/my-package\"\n}\n```\n\n## How It Works\n\n1. Reads your project's package.json to extract metadata\n2. Creates or updates the catalog-info.yaml file with this metadata\n3. Scans your node_modules for dependencies that have their own catalog-info.yaml files\n4. Updates your catalog-info.yaml with the dependency information\n5. Saves the updated catalog-info.yaml file\n\nThis ensures your project's dependencies are correctly tracked in Constellation, making it easier to visualize and manage dependencies across your organization.\n","readmeFilename":"README.md"}