diff --git a/bun.lock b/bun.lock index e46f438..ff79da0 100644 --- a/bun.lock +++ b/bun.lock @@ -26,7 +26,7 @@ "stackmap": "./dist/cli.js", }, "dependencies": { - "elkjs": "^0.12.0", + "elkjs": "0.12.0", }, "devDependencies": { "@playwright/test": "^1.63.0", @@ -47,7 +47,7 @@ "version": "0.0.0", "dependencies": { "@stackmap/core": "workspace:*", - "elkjs": "^0.12.0", + "elkjs": "0.12.0", }, }, "packages/schema": { diff --git a/packages/cli/package.json b/packages/cli/package.json index 13a02ea..f27653b 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -49,7 +49,7 @@ "prepack": "bun run build && node scripts/prepack.mjs" }, "dependencies": { - "elkjs": "^0.12.0" + "elkjs": "0.12.0" }, "devDependencies": { "@playwright/test": "^1.63.0", diff --git a/packages/cli/test/skill.test.ts b/packages/cli/test/skill.test.ts index 4d35725..1e1b1f4 100644 --- a/packages/cli/test/skill.test.ts +++ b/packages/cli/test/skill.test.ts @@ -25,6 +25,13 @@ describe('skill ↔ CLI version', () => { }); describe('package.json', () => { + it('pins elkjs exactly, and to the version the layout package uses, so a CLI version always gives the same layout', () => { + const dep = (p: string) => (JSON.parse(readFileSync(new URL(p, import.meta.url), 'utf8')) as { dependencies: Record }).dependencies.elkjs; + const cli = dep('../package.json'); + expect(cli).toMatch(/^\d+\.\d+\.\d+$/); + expect(dep('../../layout/package.json')).toBe(cli); + }); + it('names every diagram kind in its npm keywords, so a search for any of them finds the package', () => { const { keywords } = JSON.parse(readFileSync(new URL('../package.json', import.meta.url), 'utf8')) as { keywords: string[] }; for (const kind of DIAGRAM_KINDS) expect(keywords, kind).toContain(kind); diff --git a/packages/layout/package.json b/packages/layout/package.json index 07dd8e8..325bd4c 100644 --- a/packages/layout/package.json +++ b/packages/layout/package.json @@ -13,6 +13,6 @@ }, "dependencies": { "@stackmap/core": "workspace:*", - "elkjs": "^0.12.0" + "elkjs": "0.12.0" } }