{"_id":"@ecoma-io/lattice","_rev":"18-fcb42f73366da43d194e2e63b89a33ee","name":"@ecoma-io/lattice","dist-tags":{"latest":"0.12.0"},"versions":{"0.1.0":{"name":"@ecoma-io/lattice","version":"0.1.0","keywords":["architecture","enforcement","dependency-graph","monorepo","module-boundaries","polyglot","static-analysis","language-server","nx","nx-plugin","golang","rust","python","typescript"],"license":"Apache-2.0","_id":"@ecoma-io/lattice@0.1.0","maintainers":[{"name":"johnmvn","email":"john.itvn@gmail.com"}],"homepage":"https://github.com/ecoma-io/lattice/tree/main/packages/lattice#readme","bugs":{"url":"https://github.com/ecoma-io/lattice/issues"},"bin":{"lattice":"cli.mjs","lattice-lsp":"lsp.mjs"},"dist":{"shasum":"bde29ef83c2b28da1f4eefe90b284ed141384c37","tarball":"https://registry.npmjs.org/@ecoma-io/lattice/-/lattice-0.1.0.tgz","fileCount":64,"integrity":"sha512-VKl1yS9RoH7rwFY+sWoP0XGAW79dV0oJJXCBPBGvZfAxBuSUYArEcDq7HHGfBrGFndRn60iG8xjFkzmbuoeXxA==","signatures":[{"sig":"MEUCIFUNmK5rDJGGwedJjiBnQlRxCrbIsJdAMKl8U7wmhDAIAiEAk011aKKnswXvFuQvNKJy/K9eMNtm62rp5uvTutL9pFg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ecoma-io%2flattice@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":824274},"main":"index.mjs","type":"module","engines":{"node":">=22"},"exports":{".":"./index.mjs","./nx":"./nx.mjs","./package.json":"./package.json"},"gitHead":"ddac63a3acbfc415e602ea24b7a67ad916f1fadf","_npmUser":{"name":"johnmvn","email":"john.itvn@gmail.com"},"repository":{"url":"git+https://github.com/ecoma-io/lattice.git","type":"git","directory":"packages/lattice"},"_npmVersion":"11.16.0","description":"Architecture enforcement for polyglot repositories — dependency graphs and module boundaries for Go, Rust, Python, TypeScript and Vue","directories":{},"_nodeVersion":"24.18.0","dependencies":{"smol-toml":"1.7.1"},"_hasShrinkwrap":false,"peerDependencies":{"nx":">=21","vue":">=3","typescript":">=5 <7","@nx/eslint-plugin":">=21"},"peerDependenciesMeta":{"nx":{"optional":true},"vue":{"optional":true},"@nx/eslint-plugin":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/lattice_0.1.0_1786674424114_0.0807828674419282","host":"s3://npm-registry-packages-npm-production"},"deprecated":"renamed to @ecoma-io/archkeep — see https://github.com/ecoma-io/archkeep/blob/main/docs/getting-started/upgrading-from-lattice.md"},"0.2.0":{"name":"@ecoma-io/lattice","version":"0.2.0","keywords":["architecture","enforcement","dependency-graph","monorepo","module-boundaries","polyglot","static-analysis","language-server","nx","nx-plugin","golang","rust","python","typescript"],"license":"Apache-2.0","_id":"@ecoma-io/lattice@0.2.0","maintainers":[{"name":"johnmvn","email":"john.itvn@gmail.com"}],"homepage":"https://github.com/ecoma-io/lattice/tree/main/packages/lattice#readme","bugs":{"url":"https://github.com/ecoma-io/lattice/issues"},"bin":{"lattice":"cli.mjs","lattice-lsp":"lsp.mjs"},"dist":{"shasum":"e9f8a71ab83b5795c7d59763f38b3e8a5069f3a5","tarball":"https://registry.npmjs.org/@ecoma-io/lattice/-/lattice-0.2.0.tgz","fileCount":67,"integrity":"sha512-SSBtAderIvY1PXSCXTH8iE3J9glqJqVU3TNx7nkmrPXMWAqn/CwrpIUp22EpPvEsjQvPgfJPiczip6wyGr7i/A==","signatures":[{"sig":"MEYCIQDpc2Cw/COMomoi99oMdiAHgUgtls4mbqW5UzBY5UXMqAIhAL/OPwAbl7taJs4hnmVQdcCa2GLu1U2uwEKO9RNknaVu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ecoma-io%2flattice@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":861279},"main":"index.mjs","type":"module","engines":{"node":">=22"},"exports":{".":"./index.mjs","./nx":"./nx.mjs","./package.json":"./package.json"},"gitHead":"38d5aec9513bc9df17b86efd4b8df92a0249b31b","_npmUser":{"name":"johnmvn","email":"john.itvn@gmail.com"},"repository":{"url":"git+https://github.com/ecoma-io/lattice.git","type":"git","directory":"packages/lattice"},"_npmVersion":"11.17.0","description":"Architecture enforcement for polyglot repositories — dependency graphs and module boundaries for Go, Rust, Python, TypeScript and Vue","directories":{},"_nodeVersion":"24.19.0","dependencies":{"smol-toml":"1.7.1"},"_hasShrinkwrap":false,"peerDependencies":{"nx":">=21","vue":">=3","typescript":">=5 <7","@nx/eslint-plugin":">=21"},"peerDependenciesMeta":{"nx":{"optional":true},"vue":{"optional":true},"@nx/eslint-plugin":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/lattice_0.2.0_1786685518503_0.0986364764174188","host":"s3://npm-registry-packages-npm-production"},"deprecated":"renamed to @ecoma-io/archkeep — see https://github.com/ecoma-io/archkeep/blob/main/docs/getting-started/upgrading-from-lattice.md"},"0.3.0":{"name":"@ecoma-io/lattice","version":"0.3.0","keywords":["architecture","enforcement","dependency-graph","monorepo","module-boundaries","polyglot","static-analysis","language-server","nx","nx-plugin","golang","rust","python","typescript"],"license":"Apache-2.0","_id":"@ecoma-io/lattice@0.3.0","maintainers":[{"name":"johnmvn","email":"john.itvn@gmail.com"}],"homepage":"https://github.com/ecoma-io/lattice/tree/main/packages/lattice#readme","bugs":{"url":"https://github.com/ecoma-io/lattice/issues"},"bin":{"lattice":"cli.mjs","lattice-lsp":"lsp.mjs"},"dist":{"shasum":"444e4590ed7d7eaeed7487c54b03c6cca4e5e464","tarball":"https://registry.npmjs.org/@ecoma-io/lattice/-/lattice-0.3.0.tgz","fileCount":67,"integrity":"sha512-9b/wQsp4zbalPcorx15HJ+y/b6BQU68dh4D1UrWvbhIXV7P/JSz6TgwDhCn5mBANbCyIBDskH6rJfb0iMG/QZQ==","signatures":[{"sig":"MEQCIFUAj20KNav+xESpnj3cH4v1Td4pF/T+x9DbWwTakXGRAiAyw9IJTOsgucnEUHQHJ2L7B5xRLWcL6KWeDUuTyCPGzg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ecoma-io%2flattice@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":872474},"main":"index.mjs","type":"module","engines":{"node":">=22"},"exports":{".":"./index.mjs","./nx":"./nx.mjs","./package.json":"./package.json"},"gitHead":"ac014cf3656dfc22a31c2b31348474e1ea69c529","_npmUser":{"name":"johnmvn","email":"john.itvn@gmail.com"},"repository":{"url":"git+https://github.com/ecoma-io/lattice.git","type":"git","directory":"packages/lattice"},"_npmVersion":"11.17.0","description":"Architecture enforcement for polyglot repositories — dependency graphs and module boundaries for Go, Rust, Python, TypeScript and Vue","directories":{},"_nodeVersion":"24.19.0","dependencies":{"smol-toml":"1.7.1"},"_hasShrinkwrap":false,"peerDependencies":{"nx":">=21","vue":">=3","typescript":">=5 <7","@nx/eslint-plugin":">=21"},"peerDependenciesMeta":{"nx":{"optional":true},"vue":{"optional":true},"@nx/eslint-plugin":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/lattice_0.3.0_1786705329974_0.3698158010577022","host":"s3://npm-registry-packages-npm-production"},"deprecated":"renamed to @ecoma-io/archkeep — see https://github.com/ecoma-io/archkeep/blob/main/docs/getting-started/upgrading-from-lattice.md"},"0.4.0":{"name":"@ecoma-io/lattice","version":"0.4.0","keywords":["architecture","enforcement","dependency-graph","monorepo","module-boundaries","polyglot","static-analysis","language-server","nx","nx-plugin","golang","rust","python","typescript"],"license":"Apache-2.0","_id":"@ecoma-io/lattice@0.4.0","maintainers":[{"name":"johnmvn","email":"john.itvn@gmail.com"}],"homepage":"https://github.com/ecoma-io/lattice/tree/main/packages/lattice#readme","bugs":{"url":"https://github.com/ecoma-io/lattice/issues"},"bin":{"lattice":"cli.mjs","lattice-lsp":"lsp.mjs"},"dist":{"shasum":"57ccdbc31ff311fb282028dd7de454d1c54d3a7d","tarball":"https://registry.npmjs.org/@ecoma-io/lattice/-/lattice-0.4.0.tgz","fileCount":69,"integrity":"sha512-xEo1S4jM4raOIwHekMFrC2LVKWOx09DOI8siMZVvaMRvW5gZVQ727qmEXlkAuYmxrrfXXaEopQpV+07GvTT9LA==","signatures":[{"sig":"MEUCIHgvTSywjcfx8LLPkTjaeYlCLNl3aB/rLmEAuWgkaZbPAiEAiBVlCQ5Ay0XZjg0f+wunh90MzJc0jhpvDaRyi9OIeYE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ecoma-io%2flattice@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":896663},"main":"index.mjs","type":"module","engines":{"node":">=22"},"exports":{".":"./index.mjs","./nx":"./nx.mjs","./package.json":"./package.json"},"gitHead":"acda8f89e5d602490ef2f5be4722edcc1913deca","_npmUser":{"name":"johnmvn","email":"john.itvn@gmail.com"},"repository":{"url":"git+https://github.com/ecoma-io/lattice.git","type":"git","directory":"packages/lattice"},"_npmVersion":"11.17.0","description":"Architecture enforcement for polyglot repositories — dependency graphs and module boundaries for Go, Rust, Python, TypeScript and Vue","directories":{},"_nodeVersion":"24.19.0","dependencies":{"smol-toml":"1.7.1"},"_hasShrinkwrap":false,"peerDependencies":{"nx":">=21","vue":">=3","typescript":">=5 <7","@nx/eslint-plugin":">=21"},"peerDependenciesMeta":{"nx":{"optional":true},"vue":{"optional":true},"@nx/eslint-plugin":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/lattice_0.4.0_1786719971256_0.06612134722901297","host":"s3://npm-registry-packages-npm-production"},"deprecated":"renamed to @ecoma-io/archkeep — see https://github.com/ecoma-io/archkeep/blob/main/docs/getting-started/upgrading-from-lattice.md"},"0.6.0":{"name":"@ecoma-io/lattice","version":"0.6.0","keywords":["architecture","enforcement","dependency-graph","monorepo","module-boundaries","polyglot","static-analysis","language-server","nx","nx-plugin","golang","rust","python","typescript"],"license":"Apache-2.0","_id":"@ecoma-io/lattice@0.6.0","maintainers":[{"name":"johnmvn","email":"john.itvn@gmail.com"}],"homepage":"https://github.com/ecoma-io/lattice/tree/main/packages/lattice#readme","bugs":{"url":"https://github.com/ecoma-io/lattice/issues"},"bin":{"lattice":"cli.mjs","lattice-lsp":"lsp.mjs"},"dist":{"shasum":"0c918bcaedf9adf0ad2621d9154f16a9483ef79b","tarball":"https://registry.npmjs.org/@ecoma-io/lattice/-/lattice-0.6.0.tgz","fileCount":113,"integrity":"sha512-DiEPcW6MDhWMivK+AYLpQu99uBAS/ZlpUe0tqs3lyLc3vMk3DVinTAODZyuWAHaMdUWkP8bX++LrY1b9RyJ47w==","signatures":[{"sig":"MEUCIQCk2cRMTjzDkiJSv3HEoxEUj3YKCekR4AjjaRflOHh6kQIgKOiWdGPbQFqgmQuZ/j21Ky+pR4z8xSumaeUr2rbrRzY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ecoma-io%2flattice@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1574512},"main":"index.mjs","type":"module","engines":{"node":">=22"},"exports":{".":"./index.mjs","./nx":"./nx.mjs","./package.json":"./package.json"},"gitHead":"f3a4f608b416942f6bf4f2b39447958c7f3c0755","_npmUser":{"name":"johnmvn","email":"john.itvn@gmail.com"},"repository":{"url":"git+https://github.com/ecoma-io/lattice.git","type":"git","directory":"packages/lattice"},"_npmVersion":"11.17.0","description":"Architecture enforcement for polyglot repositories — dependency graphs and module boundaries for Go, Rust, Python, TypeScript, JavaScript and Vue","directories":{},"_nodeVersion":"24.19.0","dependencies":{"smol-toml":"1.7.1"},"_hasShrinkwrap":false,"peerDependencies":{"nx":">=21","vue":">=3","typescript":">=5 <7","@nx/eslint-plugin":">=21"},"peerDependenciesMeta":{"nx":{"optional":true},"vue":{"optional":true},"@nx/eslint-plugin":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/lattice_0.6.0_1787119828535_0.631936406049346","host":"s3://npm-registry-packages-npm-production"},"deprecated":"renamed to @ecoma-io/archkeep — see https://github.com/ecoma-io/archkeep/blob/main/docs/getting-started/upgrading-from-lattice.md"},"0.6.1":{"name":"@ecoma-io/lattice","version":"0.6.1","keywords":["architecture","enforcement","dependency-graph","monorepo","module-boundaries","polyglot","static-analysis","language-server","nx","nx-plugin","golang","rust","python","typescript"],"license":"Apache-2.0","_id":"@ecoma-io/lattice@0.6.1","maintainers":[{"name":"johnmvn","email":"john.itvn@gmail.com"}],"homepage":"https://github.com/ecoma-io/lattice/tree/main/packages/lattice#readme","bugs":{"url":"https://github.com/ecoma-io/lattice/issues"},"bin":{"lattice":"cli.mjs","lattice-lsp":"lsp.mjs"},"dist":{"shasum":"98f5f30f25ed9e2dfd3130bd3a4a5b72260d6841","tarball":"https://registry.npmjs.org/@ecoma-io/lattice/-/lattice-0.6.1.tgz","fileCount":113,"integrity":"sha512-PhwkbUgINaIJ/pw/wmknWTgpQkHVDArocz35MCYBM5qCCrp2k1we8kpfzk3TdE+uCfQ6QWHqsYw1j4GpqxLdkw==","signatures":[{"sig":"MEUCIQC9aOrAzEVmrHZEHZ5IvQafzsHJ8dX8AshXVki9AEPYXQIgWcL+Ew7xCpr8KX0g4Hn9kyTXlQfvfOGQI6frx+DmNCA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ecoma-io%2flattice@0.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1574512},"main":"index.mjs","type":"module","engines":{"node":">=22"},"exports":{".":"./index.mjs","./nx":"./nx.mjs","./package.json":"./package.json"},"gitHead":"4c5075b8301623a0b7df513b95964bdbea809b3f","_npmUser":{"name":"johnmvn","email":"john.itvn@gmail.com"},"repository":{"url":"git+https://github.com/ecoma-io/lattice.git","type":"git","directory":"packages/lattice"},"_npmVersion":"11.17.0","description":"Architecture enforcement for polyglot repositories — dependency graphs and module boundaries for Go, Rust, Python, TypeScript, JavaScript and Vue","directories":{},"_nodeVersion":"24.19.0","dependencies":{"smol-toml":"1.7.1"},"_hasShrinkwrap":false,"peerDependencies":{"nx":">=21","vue":">=3","typescript":">=5 <7","@nx/eslint-plugin":">=21"},"peerDependenciesMeta":{"nx":{"optional":true},"vue":{"optional":true},"@nx/eslint-plugin":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/lattice_0.6.1_1787127704056_0.6100107746163195","host":"s3://npm-registry-packages-npm-production"},"deprecated":"renamed to @ecoma-io/archkeep — see https://github.com/ecoma-io/archkeep/blob/main/docs/getting-started/upgrading-from-lattice.md"},"0.6.2":{"name":"@ecoma-io/lattice","version":"0.6.2","keywords":["architecture","enforcement","dependency-graph","monorepo","module-boundaries","polyglot","static-analysis","language-server","nx","nx-plugin","golang","rust","python","typescript"],"license":"Apache-2.0","_id":"@ecoma-io/lattice@0.6.2","maintainers":[{"name":"johnmvn","email":"john.itvn@gmail.com"}],"homepage":"https://github.com/ecoma-io/lattice/tree/main/packages/lattice#readme","bugs":{"url":"https://github.com/ecoma-io/lattice/issues"},"bin":{"lattice":"cli.mjs","lattice-lsp":"lsp.mjs"},"dist":{"shasum":"514e9c15ed49dace4fa6c9e1657f33ea064f20b3","tarball":"https://registry.npmjs.org/@ecoma-io/lattice/-/lattice-0.6.2.tgz","fileCount":113,"integrity":"sha512-3/TmuvYCFF/jkIwS8E0FXRFaLoDAHmKdwRAmUT1GLjj0XLMF7kayKZB5CXsOYkEUtHVio1Dc9j70eOg/PgzBBA==","signatures":[{"sig":"MEUCIEZ/XPiYNQusNFquvk8U6KBRR18WO75gE/nINiCeyxXfAiEA4K38dhyNwK07GSkP9pHsdav4ghr6+9YRoLasJm61M+A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ecoma-io%2flattice@0.6.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1572321},"main":"index.mjs","type":"module","engines":{"node":">=22"},"exports":{".":"./index.mjs","./nx":"./nx.mjs","./package.json":"./package.json"},"gitHead":"c10ad2b40afc5d64b90440e7845a34bd9c2f6264","_npmUser":{"name":"johnmvn","email":"john.itvn@gmail.com"},"repository":{"url":"git+https://github.com/ecoma-io/lattice.git","type":"git","directory":"packages/lattice"},"_npmVersion":"11.17.0","description":"Architecture enforcement for polyglot repositories — dependency graphs and module boundaries for Go, Rust, Python, TypeScript, JavaScript and Vue","directories":{},"_nodeVersion":"24.19.0","dependencies":{"smol-toml":"1.7.1"},"_hasShrinkwrap":false,"peerDependencies":{"nx":">=21","vue":">=3","typescript":">=5 <7","@nx/eslint-plugin":">=21"},"peerDependenciesMeta":{"nx":{"optional":true},"vue":{"optional":true},"@nx/eslint-plugin":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/lattice_0.6.2_1787138261716_0.37134287473211613","host":"s3://npm-registry-packages-npm-production"},"deprecated":"renamed to @ecoma-io/archkeep — see https://github.com/ecoma-io/archkeep/blob/main/docs/getting-started/upgrading-from-lattice.md"},"0.6.3":{"name":"@ecoma-io/lattice","version":"0.6.3","keywords":["architecture","enforcement","dependency-graph","monorepo","module-boundaries","polyglot","static-analysis","language-server","nx","nx-plugin","golang","rust","python","typescript"],"license":"Apache-2.0","_id":"@ecoma-io/lattice@0.6.3","maintainers":[{"name":"johnmvn","email":"john.itvn@gmail.com"}],"homepage":"https://github.com/ecoma-io/lattice/tree/main/packages/lattice#readme","bugs":{"url":"https://github.com/ecoma-io/lattice/issues"},"bin":{"lattice":"cli.mjs","lattice-lsp":"lsp.mjs"},"dist":{"shasum":"864d4014a4e9680371ba470003543f97db40e559","tarball":"https://registry.npmjs.org/@ecoma-io/lattice/-/lattice-0.6.3.tgz","fileCount":113,"integrity":"sha512-zWjxMU9QT0uoRZolYneAk8Znj2mmaalXb07NYxp6zIq5aqm/22A8KMJxnRw4YxbO5mYLvUScNyJRMU3ilDBQjA==","signatures":[{"sig":"MEUCIFjhy+nwkIqzWMHtomZjUwMZmsp8SSJ4j5chn9HtyR16AiEA9OAYu7W5nFgrfojO1A1E4EaEA7RH3ej1ozhWRAhURb8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ecoma-io%2flattice@0.6.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1578275},"main":"index.mjs","type":"module","engines":{"node":">=22"},"exports":{".":"./index.mjs","./nx":"./nx.mjs","./package.json":"./package.json"},"gitHead":"f1812cde60b89115dda39d426c40099904bd7dda","_npmUser":{"name":"johnmvn","email":"john.itvn@gmail.com"},"repository":{"url":"git+https://github.com/ecoma-io/lattice.git","type":"git","directory":"packages/lattice"},"_npmVersion":"11.17.0","description":"Architecture enforcement for polyglot repositories — dependency graphs and module boundaries for Go, Rust, Python, TypeScript, JavaScript and Vue","directories":{},"_nodeVersion":"24.19.0","dependencies":{"smol-toml":"1.7.1"},"_hasShrinkwrap":false,"peerDependencies":{"nx":">=21","vue":">=3","typescript":">=5 <7","@nx/eslint-plugin":">=21"},"peerDependenciesMeta":{"nx":{"optional":true},"vue":{"optional":true},"@nx/eslint-plugin":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/lattice_0.6.3_1787152364783_0.17648442383820862","host":"s3://npm-registry-packages-npm-production"},"deprecated":"renamed to @ecoma-io/archkeep — see https://github.com/ecoma-io/archkeep/blob/main/docs/getting-started/upgrading-from-lattice.md"},"0.7.0":{"name":"@ecoma-io/lattice","version":"0.7.0","keywords":["architecture","enforcement","dependency-graph","monorepo","module-boundaries","polyglot","static-analysis","language-server","nx","nx-plugin","golang","rust","python","typescript"],"license":"Apache-2.0","_id":"@ecoma-io/lattice@0.7.0","maintainers":[{"name":"johnmvn","email":"john.itvn@gmail.com"}],"homepage":"https://github.com/ecoma-io/lattice/tree/main/packages/lattice#readme","bugs":{"url":"https://github.com/ecoma-io/lattice/issues"},"bin":{"lattice":"cli.mjs","lattice-lsp":"lsp.mjs"},"dist":{"shasum":"5f774d5ff9789a6a0bb3535fcc2eee593971c0db","tarball":"https://registry.npmjs.org/@ecoma-io/lattice/-/lattice-0.7.0.tgz","fileCount":113,"integrity":"sha512-f1NKrTWWWAaqVgNLv9Z9Yp81k3rPDOv/cGe2REWhMpIS9MsaDMZ/55QAJg20JSOWpUeqC3/4XP6cfj6Knlbxcw==","signatures":[{"sig":"MEUCIENu5bpsic7VqO40TId/Aksfgie9R6ECYAWl0RpdMeItAiEAv1s6HoVmroCfwYkc+y5W7CQd9dJMWKC90wKKjLUzfKc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ecoma-io%2flattice@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1580083},"main":"index.mjs","type":"module","engines":{"node":">=22"},"exports":{".":"./index.mjs","./nx":"./nx.mjs","./package.json":"./package.json"},"gitHead":"efdb17a0d47be19af7a8a3e3430b5bd98e3a77dd","_npmUser":{"name":"johnmvn","email":"john.itvn@gmail.com"},"repository":{"url":"git+https://github.com/ecoma-io/lattice.git","type":"git","directory":"packages/lattice"},"_npmVersion":"11.17.0","description":"Architecture enforcement for polyglot repositories — dependency graphs and module boundaries for Go, Rust, Python, TypeScript, JavaScript and Vue","directories":{},"_nodeVersion":"24.19.0","dependencies":{"smol-toml":"1.7.1"},"_hasShrinkwrap":false,"peerDependencies":{"nx":">=21","vue":">=3","typescript":">=5 <7","@nx/eslint-plugin":">=21"},"peerDependenciesMeta":{"nx":{"optional":true},"vue":{"optional":true},"@nx/eslint-plugin":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/lattice_0.7.0_1787161427892_0.27226459974460115","host":"s3://npm-registry-packages-npm-production"},"deprecated":"renamed to @ecoma-io/archkeep — see https://github.com/ecoma-io/archkeep/blob/main/docs/getting-started/upgrading-from-lattice.md"},"0.7.1":{"name":"@ecoma-io/lattice","version":"0.7.1","keywords":["architecture","enforcement","dependency-graph","monorepo","module-boundaries","polyglot","static-analysis","language-server","nx","nx-plugin","golang","rust","python","typescript"],"license":"Apache-2.0","_id":"@ecoma-io/lattice@0.7.1","maintainers":[{"name":"johnmvn","email":"john.itvn@gmail.com"}],"homepage":"https://github.com/ecoma-io/lattice/tree/main/packages/lattice#readme","bugs":{"url":"https://github.com/ecoma-io/lattice/issues"},"bin":{"lattice":"cli.mjs","lattice-lsp":"lsp.mjs"},"dist":{"shasum":"e9ab7547cfd93f41bf4d5e2aa001ae7d6395f793","tarball":"https://registry.npmjs.org/@ecoma-io/lattice/-/lattice-0.7.1.tgz","fileCount":113,"integrity":"sha512-0I4guSQ6x7YsK0OL7G/PgWIS+ZPveLBUINRZaPuya3vsoxu1/Hx9VJOzeELYgD49YOlMRc3kVAt0/GlxxuVqkQ==","signatures":[{"sig":"MEQCIE4Acq9vWOKoW/rxSktdWlT4VpM+vs6fkclzrdA1QaBtAiAi444Pi7L8V23TiaILAgRYPHUMxw4BsnnIzVGFZMqGEQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ecoma-io%2flattice@0.7.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1580083},"main":"index.mjs","type":"module","engines":{"node":">=22"},"exports":{".":"./index.mjs","./nx":"./nx.mjs","./package.json":"./package.json"},"gitHead":"6b4d5179e8e4819de6f63a8d2979088fe6288764","_npmUser":{"name":"johnmvn","email":"john.itvn@gmail.com"},"repository":{"url":"git+https://github.com/ecoma-io/lattice.git","type":"git","directory":"packages/lattice"},"_npmVersion":"11.17.0","description":"Architecture enforcement for polyglot repositories — dependency graphs and module boundaries for Go, Rust, Python, TypeScript, JavaScript and Vue","directories":{},"_nodeVersion":"24.19.0","dependencies":{"smol-toml":"1.7.1"},"_hasShrinkwrap":false,"peerDependencies":{"nx":">=21","vue":">=3","typescript":">=5 <7","@nx/eslint-plugin":">=21"},"peerDependenciesMeta":{"nx":{"optional":true},"vue":{"optional":true},"@nx/eslint-plugin":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/lattice_0.7.1_1787164559497_0.9051875970591712","host":"s3://npm-registry-packages-npm-production"},"deprecated":"renamed to @ecoma-io/archkeep — see https://github.com/ecoma-io/archkeep/blob/main/docs/getting-started/upgrading-from-lattice.md"},"0.8.0":{"name":"@ecoma-io/lattice","version":"0.8.0","keywords":["architecture","enforcement","dependency-graph","monorepo","module-boundaries","polyglot","static-analysis","language-server","nx","nx-plugin","golang","rust","python","typescript"],"license":"Apache-2.0","_id":"@ecoma-io/lattice@0.8.0","maintainers":[{"name":"johnmvn","email":"john.itvn@gmail.com"}],"homepage":"https://github.com/ecoma-io/lattice/tree/main/packages/lattice#readme","bugs":{"url":"https://github.com/ecoma-io/lattice/issues"},"bin":{"lattice":"cli.mjs","lattice-lsp":"lsp.mjs"},"dist":{"shasum":"3c535017723a573fd7f84885b09f19f9d0fbbc8a","tarball":"https://registry.npmjs.org/@ecoma-io/lattice/-/lattice-0.8.0.tgz","fileCount":113,"integrity":"sha512-DRsDs/GOf1n58r++Pi0CFgoWNYh6zXj1IaSYIU0HseNdfcXWFp63yg2mjD5O3k/rgIQG1YETwdHeBAVtVC3O+g==","signatures":[{"sig":"MEYCIQCcE921gBOtu296VGOKy7S0hQRgmM4mT0dLg1FfFqKbCQIhAJiCgobwv43mcsnvr5qJCXPi+NINDpX+22LTRGYABG2X","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ecoma-io%2flattice@0.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1615080},"main":"index.mjs","type":"module","engines":{"node":">=22"},"exports":{".":"./index.mjs","./nx":"./nx.mjs","./package.json":"./package.json"},"gitHead":"bd5e4ccb2aeb9266a4acec68d8de00d14abc2edd","_npmUser":{"name":"johnmvn","email":"john.itvn@gmail.com"},"repository":{"url":"git+https://github.com/ecoma-io/lattice.git","type":"git","directory":"packages/lattice"},"_npmVersion":"11.17.0","description":"Architecture enforcement for polyglot repositories — dependency graphs and module boundaries for Go, Rust, Python, TypeScript, JavaScript and Vue","directories":{},"_nodeVersion":"24.19.0","dependencies":{"smol-toml":"1.7.1"},"_hasShrinkwrap":false,"peerDependencies":{"nx":">=21","vue":">=3","typescript":">=5 <7","@nx/eslint-plugin":">=21"},"peerDependenciesMeta":{"nx":{"optional":true},"vue":{"optional":true},"@nx/eslint-plugin":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/lattice_0.8.0_1787235180488_0.33017781234537646","host":"s3://npm-registry-packages-npm-production"},"deprecated":"renamed to @ecoma-io/archkeep — see https://github.com/ecoma-io/archkeep/blob/main/docs/getting-started/upgrading-from-lattice.md"},"0.9.0":{"name":"@ecoma-io/lattice","version":"0.9.0","keywords":["architecture","enforcement","dependency-graph","monorepo","module-boundaries","polyglot","static-analysis","language-server","nx","nx-plugin","golang","rust","python","typescript"],"license":"Apache-2.0","_id":"@ecoma-io/lattice@0.9.0","maintainers":[{"name":"johnmvn","email":"john.itvn@gmail.com"}],"homepage":"https://github.com/ecoma-io/lattice/tree/main/packages/lattice#readme","bugs":{"url":"https://github.com/ecoma-io/lattice/issues"},"bin":{"lattice":"cli.mjs","lattice-lsp":"lsp.mjs"},"dist":{"shasum":"a7ce4713d9b3ea54ee80d5aa5382914af8ec4cb2","tarball":"https://registry.npmjs.org/@ecoma-io/lattice/-/lattice-0.9.0.tgz","fileCount":120,"integrity":"sha512-RhgAa1OD44IyPrKbNQCDrz7SJQA684S1t0L+ybzpAu/tgdVVb58QUHJLdivYRJvITcHqN5UR5mT2tOm2TjZT4A==","signatures":[{"sig":"MEYCIQCRPZPR5qpVZXbXr1hdOwQGj9EmNvweosIpmXgvsWWqNAIhAOPXonlxakSKh7QiBJyJihR10LhpCrWsl38Hc0u7U1nW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ecoma-io%2flattice@0.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1691319},"main":"index.mjs","type":"module","engines":{"node":">=22"},"exports":{".":"./index.mjs","./nx":"./nx.mjs","./package.json":"./package.json","./presets/*.json":"./presets/*.json"},"gitHead":"0a647133e43e3d7ad3ec27a6cce467abe4d6d4fb","_npmUser":{"name":"johnmvn","email":"john.itvn@gmail.com"},"repository":{"url":"git+https://github.com/ecoma-io/lattice.git","type":"git","directory":"packages/lattice"},"_npmVersion":"11.17.0","description":"Architecture enforcement for polyglot repositories — dependency graphs and module boundaries for Go, Rust, Python, TypeScript, JavaScript and Vue","directories":{},"_nodeVersion":"24.19.0","dependencies":{"smol-toml":"1.7.1"},"_hasShrinkwrap":false,"peerDependencies":{"nx":">=21","vue":">=3","typescript":">=5 <7","@nx/eslint-plugin":">=21"},"peerDependenciesMeta":{"nx":{"optional":true},"vue":{"optional":true},"@nx/eslint-plugin":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/lattice_0.9.0_1787287147145_0.9902767272310153","host":"s3://npm-registry-packages-npm-production"},"deprecated":"renamed to @ecoma-io/archkeep — see https://github.com/ecoma-io/archkeep/blob/main/docs/getting-started/upgrading-from-lattice.md"},"0.10.0":{"name":"@ecoma-io/lattice","version":"0.10.0","keywords":["architecture","enforcement","dependency-graph","monorepo","module-boundaries","polyglot","static-analysis","language-server","nx","nx-plugin","golang","rust","python","typescript"],"license":"Apache-2.0","_id":"@ecoma-io/lattice@0.10.0","maintainers":[{"name":"johnmvn","email":"john.itvn@gmail.com"}],"homepage":"https://github.com/ecoma-io/lattice/tree/main/packages/lattice#readme","bugs":{"url":"https://github.com/ecoma-io/lattice/issues"},"bin":{"lattice":"cli.mjs","lattice-lsp":"lsp.mjs"},"dist":{"shasum":"a712aa8cc7add54fd562e10850250190c472cc29","tarball":"https://registry.npmjs.org/@ecoma-io/lattice/-/lattice-0.10.0.tgz","fileCount":127,"integrity":"sha512-JutDEigV2wMxIyBIwfrnIoNIvd5HJ7O5vqV7nvjt32LrTNM7CxdyTg1BnTo5VaLUTB/TK54fpABHEIj+RWd3Tg==","signatures":[{"sig":"MEYCIQDvrEt926jwIyFhT9l5bW1benJS6xjW9Pbkco9eNYaZUwIhAO3WiJoCsIgcSmADGutKcDdV0NrTKhvGtKfyg6UVuTNr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ecoma-io%2flattice@0.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1847599},"main":"index.mjs","type":"module","engines":{"node":">=22"},"exports":{".":"./index.mjs","./nx":"./nx.mjs","./package.json":"./package.json","./presets/*.json":"./presets/*.json"},"gitHead":"9344d78b70dc1dda4db9969f2311ca2133f61800","_npmUser":{"name":"johnmvn","email":"john.itvn@gmail.com"},"repository":{"url":"git+https://github.com/ecoma-io/lattice.git","type":"git","directory":"packages/lattice"},"_npmVersion":"11.17.0","description":"Architecture enforcement for polyglot repositories — dependency graphs and module boundaries for Go, Rust, Python, TypeScript, JavaScript and Vue","directories":{},"_nodeVersion":"24.19.0","dependencies":{"smol-toml":"1.7.1"},"_hasShrinkwrap":false,"peerDependencies":{"nx":">=21","vue":">=3","typescript":">=5 <7","@nx/eslint-plugin":">=21"},"peerDependenciesMeta":{"nx":{"optional":true},"vue":{"optional":true},"@nx/eslint-plugin":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/lattice_0.10.0_1787387971093_0.27096418491353047","host":"s3://npm-registry-packages-npm-production"},"deprecated":"renamed to @ecoma-io/archkeep — see https://github.com/ecoma-io/archkeep/blob/main/docs/getting-started/upgrading-from-lattice.md"},"0.10.1":{"name":"@ecoma-io/lattice","version":"0.10.1","keywords":["architecture","enforcement","dependency-graph","monorepo","module-boundaries","polyglot","static-analysis","language-server","nx","nx-plugin","golang","rust","python","typescript"],"license":"Apache-2.0","_id":"@ecoma-io/lattice@0.10.1","maintainers":[{"name":"johnmvn","email":"john.itvn@gmail.com"}],"homepage":"https://github.com/ecoma-io/lattice/tree/main/packages/lattice#readme","bugs":{"url":"https://github.com/ecoma-io/lattice/issues"},"bin":{"lattice":"cli.mjs","lattice-lsp":"lsp.mjs"},"dist":{"shasum":"94a70c958eaa2ef8f0eadd930ef90f9f9cfa40be","tarball":"https://registry.npmjs.org/@ecoma-io/lattice/-/lattice-0.10.1.tgz","fileCount":127,"integrity":"sha512-yOdiYBplmX9/u4ZpsP4a2Nn0lMJAk95+7NE/5tIOW31hCuns6Y443vKOJdEuDnhUWNBya/Q4iucgTIG8IZlVcg==","signatures":[{"sig":"MEQCID7eZA4S51jvVBIrYhqlKV8eEyqkX6bGW/hi8omkcN+SAiAA7TY80j12+Id8HywV+drgcUXbNtPaSnpDyZmB8xVNYQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ecoma-io%2flattice@0.10.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1848106},"main":"index.mjs","type":"module","engines":{"node":">=22"},"exports":{".":"./index.mjs","./nx":"./nx.mjs","./package.json":"./package.json","./presets/*.json":"./presets/*.json"},"gitHead":"ba29d5f1356ae56febaa299fe77e6aa4257a0b6f","_npmUser":{"name":"johnmvn","email":"john.itvn@gmail.com"},"repository":{"url":"git+https://github.com/ecoma-io/lattice.git","type":"git","directory":"packages/lattice"},"_npmVersion":"11.17.0","description":"Architecture enforcement for polyglot repositories — dependency graphs and module boundaries for Go, Rust, Python, TypeScript, JavaScript and Vue","directories":{},"_nodeVersion":"24.19.0","dependencies":{"smol-toml":"1.7.1"},"_hasShrinkwrap":false,"peerDependencies":{"nx":">=21","vue":">=3","typescript":">=5 <7","@nx/eslint-plugin":">=21"},"peerDependenciesMeta":{"nx":{"optional":true},"vue":{"optional":true},"@nx/eslint-plugin":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/lattice_0.10.1_1787394160692_0.8195925407567828","host":"s3://npm-registry-packages-npm-production"},"deprecated":"renamed to @ecoma-io/archkeep — see https://github.com/ecoma-io/archkeep/blob/main/docs/getting-started/upgrading-from-lattice.md"},"0.11.0":{"name":"@ecoma-io/lattice","version":"0.11.0","keywords":["architecture","enforcement","dependency-graph","monorepo","module-boundaries","polyglot","static-analysis","language-server","nx","nx-plugin","golang","rust","python","typescript"],"license":"Apache-2.0","_id":"@ecoma-io/lattice@0.11.0","maintainers":[{"name":"johnmvn","email":"john.itvn@gmail.com"}],"homepage":"https://github.com/ecoma-io/lattice/tree/main/packages/lattice#readme","bugs":{"url":"https://github.com/ecoma-io/lattice/issues"},"bin":{"lattice":"cli.mjs","lattice-lsp":"lsp.mjs"},"dist":{"shasum":"4226d9313b6907508c27e0a763606d6a3670dffe","tarball":"https://registry.npmjs.org/@ecoma-io/lattice/-/lattice-0.11.0.tgz","fileCount":127,"integrity":"sha512-zvyEDcy1JZky9eLWlQ6H8LfYBuNcyV84YZ6mT8VcmyreuVv/aaKSU64sdBnqOPx2tb5KVSb3v4ApY+Ianl2MKA==","signatures":[{"sig":"MEUCICA+qsIZ0lOjR7JUcPcM/akZrDnIMlKXXVo5x8bEYad9AiEAnQTtwu4gUfAdZTkHOFqKpURDI5zXSfYFzLpsEne9Jsc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ecoma-io%2flattice@0.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1847014},"main":"index.mjs","type":"module","engines":{"node":">=22"},"exports":{".":"./index.mjs","./nx":"./nx.mjs","./package.json":"./package.json","./presets/*.json":"./presets/*.json"},"gitHead":"f0561eec6f01fe75fa5c0fc574e52d2454122274","_npmUser":{"name":"johnmvn","email":"john.itvn@gmail.com"},"repository":{"url":"git+https://github.com/ecoma-io/lattice.git","type":"git","directory":"packages/lattice"},"_npmVersion":"11.17.0","description":"Architecture enforcement for polyglot repositories — dependency graphs and module boundaries for Go, Rust, Python, TypeScript, JavaScript and Vue","directories":{},"_nodeVersion":"24.19.0","dependencies":{"smol-toml":"1.7.1"},"_hasShrinkwrap":false,"peerDependencies":{"nx":">=21","vue":">=3","typescript":">=5 <7","@nx/eslint-plugin":">=21"},"peerDependenciesMeta":{"nx":{"optional":true},"vue":{"optional":true},"@nx/eslint-plugin":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/lattice_0.11.0_1787403028344_0.43704225914693806","host":"s3://npm-registry-packages-npm-production"},"deprecated":"renamed to @ecoma-io/archkeep — see https://github.com/ecoma-io/archkeep/blob/main/docs/getting-started/upgrading-from-lattice.md"},"0.11.1":{"name":"@ecoma-io/lattice","version":"0.11.1","keywords":["architecture","enforcement","dependency-graph","monorepo","module-boundaries","polyglot","static-analysis","language-server","nx","nx-plugin","golang","rust","python","typescript"],"license":"Apache-2.0","_id":"@ecoma-io/lattice@0.11.1","maintainers":[{"name":"johnmvn","email":"john.itvn@gmail.com"}],"homepage":"https://github.com/ecoma-io/lattice/tree/main/packages/lattice#readme","bugs":{"url":"https://github.com/ecoma-io/lattice/issues"},"bin":{"lattice":"cli.mjs","lattice-lsp":"lsp.mjs"},"dist":{"shasum":"fd2e3e55d37a80e67bb3006edef0688170bd73e7","tarball":"https://registry.npmjs.org/@ecoma-io/lattice/-/lattice-0.11.1.tgz","fileCount":127,"integrity":"sha512-IjAKhtn3bZkd5ekjDiEhoJSRy3quCA5iQso0NZpUIkJ/ryqL0OioXKX10J7HWov9IXymzgz4nto2ZfMdexL15w==","signatures":[{"sig":"MEQCIHLda/tefvYQWRGkR9445DsCu3KjIAm9IyRa5Z0Uqlz8AiAtlMRA1YcmyfDL4CnquYP/OnACLYxABekz3VcKdaLTHw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ecoma-io%2flattice@0.11.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1847014},"main":"index.mjs","type":"module","engines":{"node":">=22"},"exports":{".":"./index.mjs","./nx":"./nx.mjs","./package.json":"./package.json","./presets/*.json":"./presets/*.json"},"gitHead":"01787e3dd354873855f23df5f7e790d0435e0e6b","_npmUser":{"name":"johnmvn","email":"john.itvn@gmail.com"},"repository":{"url":"git+https://github.com/ecoma-io/lattice.git","type":"git","directory":"packages/lattice"},"_npmVersion":"11.17.0","description":"Architecture enforcement for polyglot repositories — dependency graphs and module boundaries for Go, Rust, Python, TypeScript, JavaScript and Vue","directories":{},"_nodeVersion":"24.19.0","dependencies":{"smol-toml":"1.7.1"},"_hasShrinkwrap":false,"peerDependencies":{"nx":">=21","vue":">=3","typescript":">=5 <7","@nx/eslint-plugin":">=21"},"peerDependenciesMeta":{"nx":{"optional":true},"vue":{"optional":true},"@nx/eslint-plugin":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/lattice_0.11.1_1787411227791_0.869516450358411","host":"s3://npm-registry-packages-npm-production"},"deprecated":"renamed to @ecoma-io/archkeep — see https://github.com/ecoma-io/archkeep/blob/main/docs/getting-started/upgrading-from-lattice.md"},"0.12.0":{"name":"@ecoma-io/lattice","version":"0.12.0","keywords":["architecture","enforcement","dependency-graph","monorepo","module-boundaries","polyglot","static-analysis","language-server","nx","nx-plugin","golang","rust","python","typescript"],"license":"Apache-2.0","_id":"@ecoma-io/lattice@0.12.0","maintainers":[{"name":"johnmvn","email":"john.itvn@gmail.com"}],"homepage":"https://github.com/ecoma-io/lattice/tree/main/packages/lattice#readme","bugs":{"url":"https://github.com/ecoma-io/lattice/issues"},"bin":{"lattice":"cli.mjs","lattice-lsp":"lsp.mjs"},"dist":{"shasum":"b0f94672d4e15af64f186d6e00e2dcd9f155aac7","tarball":"https://registry.npmjs.org/@ecoma-io/lattice/-/lattice-0.12.0.tgz","fileCount":131,"integrity":"sha512-FDYvzda8iKHmHnysjAs47lu7mIzVP+h6FuJisR60gOqojTG3/QcO6D6LFQwbsqFrj03B4i7/6caX3xl8bg30dQ==","signatures":[{"sig":"MEYCIQC3SklkCcXsarJ3LjgkqR2HvZCzLiTsocw4ypNjcazOiQIhAO5GJE6sCJs/UlsIFAwjhxmZrr7AhSaiRACBvTWgy2Uh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ecoma-io%2flattice@0.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2085387},"main":"index.mjs","type":"module","engines":{"node":">=22"},"exports":{".":"./index.mjs","./nx":"./nx.mjs","./package.json":"./package.json","./presets/*.json":"./presets/*.json"},"gitHead":"a1b221156689b2ddb8ff2278903028ee8317281a","_npmUser":{"name":"johnmvn","email":"john.itvn@gmail.com"},"repository":{"url":"git+https://github.com/ecoma-io/lattice.git","type":"git","directory":"packages/lattice"},"_npmVersion":"11.17.0","description":"Architecture enforcement for polyglot repositories — dependency graphs and module boundaries for Go, Rust, Python, TypeScript, JavaScript and Vue","directories":{},"_nodeVersion":"24.19.0","dependencies":{"smol-toml":"1.8.0"},"_hasShrinkwrap":false,"peerDependencies":{"nx":">=21","vue":">=3","typescript":">=5 <7","@nx/eslint-plugin":">=21"},"peerDependenciesMeta":{"nx":{"optional":true},"vue":{"optional":true},"@nx/eslint-plugin":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/lattice_0.12.0_1787526120406_0.5652954108280392","host":"s3://npm-registry-packages-npm-production"},"deprecated":"renamed to @ecoma-io/archkeep — see https://github.com/ecoma-io/archkeep/blob/main/docs/getting-started/upgrading-from-lattice.md"}},"time":{"created":"2026-08-14T02:27:03.960Z","modified":"2026-08-24T05:47:33.594Z","0.1.0":"2026-08-14T02:27:04.270Z","0.2.0":"2026-08-14T05:31:58.640Z","0.3.0":"2026-08-14T11:02:10.138Z","0.4.0":"2026-08-14T15:06:11.430Z","0.6.0":"2026-08-19T06:10:28.679Z","0.6.1":"2026-08-19T08:21:44.211Z","0.6.2":"2026-08-19T11:17:41.958Z","0.6.3":"2026-08-19T15:12:44.953Z","0.7.0":"2026-08-19T17:43:48.042Z","0.7.1":"2026-08-19T18:35:59.655Z","0.8.0":"2026-08-20T14:13:00.644Z","0.9.0":"2026-08-21T04:39:07.316Z","0.10.0":"2026-08-22T08:39:31.315Z","0.10.1":"2026-08-22T10:22:40.861Z","0.11.0":"2026-08-22T12:50:28.523Z","0.11.1":"2026-08-22T15:07:07.947Z","0.12.0":"2026-08-23T23:02:00.584Z"},"bugs":{"url":"https://github.com/ecoma-io/lattice/issues"},"license":"Apache-2.0","homepage":"https://github.com/ecoma-io/lattice/tree/main/packages/lattice#readme","keywords":["architecture","enforcement","dependency-graph","monorepo","module-boundaries","polyglot","static-analysis","language-server","nx","nx-plugin","golang","rust","python","typescript"],"repository":{"url":"git+https://github.com/ecoma-io/lattice.git","type":"git","directory":"packages/lattice"},"description":"Architecture enforcement for polyglot repositories — dependency graphs and module boundaries for Go, Rust, Python, TypeScript, JavaScript and Vue","maintainers":[{"name":"johnmvn","email":"john.itvn@gmail.com"}],"readme":"# Lattice\n\n**Architecture governance for polyglot repositories** — a deterministic\nauthority that keeps the architecture your team declared aligned with the code\nyour team keeps changing. Dependency graphs and module boundaries for Go, Rust,\nPython, TypeScript, JavaScript and Vue, with Nx and Moon as first-class\nintegrations. Coding agents read the same verdicts, machine-readably, through\nthe `arch-*` skills. The system boundary — what Lattice is and what it is not —\nis owned by [architecture-authority.md](https://github.com/ecoma-io/lattice/blob/main/docs/doctrine/architecture-authority.md).\n\n## Why it exists\n\nESLint reads JavaScript, TypeScript and Vue. In a polyglot repository, the\nlanguages it cannot parse carry their `layer:` and `scope:` tags with **no\nenforcer behind them**: a Go import that crosses a boundary passes lint, because\nESLint answers \"File ignored because no matching configuration was supplied\"\nfor `.go`. The dependency graph is silent the same way — `nx affected` only\nknows a dependency exists when it is an edge in the project graph, and Nx infers\nno edge for a Go import, a Cargo path dependency, or a `pyproject.toml` path\ndependency. An under-selecting `affected` and an absent boundary rule look\nexactly like a clean workspace, which is why the silence goes unnoticed (the\nmeasurement: [why.md](https://github.com/ecoma-io/lattice/blob/main/docs/doctrine/why.md)).\n\nLattice closes both gaps with one analysis, served three ways — a CLI\n(`lattice check`), a language server (`lattice-lsp`), and an Nx plugin\n(`@ecoma-io/lattice/nx`) — with the same verdict in each.\n\n## It works in under a minute\n\n```shell\nnpm install -D @ecoma-io/lattice\n```\n\n`lattice.json` at the repository root declares the projects and their tags —\nthe `coverage.exempt` row names the boundary law itself, which no project owns:\n\n```json\n{\n  \"projects\": {\n    \"declared\": [\n      { \"name\": \"billing-core\", \"root\": \"libs/billing/core\", \"tags\": [\"scope:billing\"] },\n      { \"name\": \"shared-ui\", \"root\": \"libs/shared/ui\", \"tags\": [\"scope:shared\"] }\n    ]\n  },\n  \"coverage\": {\n    \"exempt\": [\n      {\n        \"path\": \"module-boundaries.config.mjs\",\n        \"reason\": \"The boundary law, not owned by a project\"\n      }\n    ]\n  }\n}\n```\n\n`module-boundaries.config.mjs` at the same root holds the constraint table —\nthe same shape `@nx/enforce-module-boundaries` takes, so one table feeds both\nenforcers:\n\n```js\nexport const depConstraints = [\n  {\n    sourceTag: \"scope:billing\",\n    onlyDependOnLibsWithTags: [\"scope:billing\", \"scope:shared\"],\n    description: \"Billing services must not reach outside their scope\",\n    remediation: \"Move the shared logic into a scope:shared library\",\n  },\n];\n\nexport const moduleBoundaryOptions = {\n  allow: [],\n  buildTargets: [\"build\"],\n  enforceBuildableLibDependency: false,\n  allowCircularSelfDependency: false,\n  checkDynamicDependenciesExceptions: [],\n  ignoredCircularDependencies: [],\n  banTransitiveDependencies: false,\n  checkNestedExternalImports: false,\n};\n```\n\nThe import resolver reads the workspace's `tsconfig.base.json` for path\nmappings, so `@shared/button` maps to the UI source:\n\n```json\n{\n  \"compilerOptions\": {\n    \"paths\": { \"@shared/button\": [\"libs/shared/ui/src/button.ts\"] }\n  }\n}\n```\n\nA `billing-core` file importing `@shared/button` is legal (the constraint\nrow allows it) — and had a `billing-core` file imported into a project tagged\noutside `scope:billing` or `scope:shared`, the same constraint would be an\n`onlyTagsConstraintViolation`, exit 1. Now check the tree:\n\n```shell\nlattice check\n```\n\n```text\npolicy  module-boundaries.config.mjs — fingerprint 3f9c…\n\n✔ no boundary violations (1 import in 2 files across 2 projects; 1 file exempted from coverage by lattice.json's coverage.exempt)\n```\n\nA clean run states what it inspected — the import, file and project counts are\nthe load-bearing half, so \"no violations\" is a claim about coverage as much as\nabout correctness. The exempt suffix names the boundary law itself, which is\nnot owned by any project.\n\nThe import resolver uses the workspace's own `typescript` (a peer dependency,\nresolved from your tree, never bundled). A TypeScript-free Go/Rust/Python\nworkspace pays nothing: resolution keys off the manifests that exist.\n\n## Who it is for\n\n**Human teams** run `lattice check` in CI and gate on its exit code. The verdict\nis deterministic and evidence-based: same tree, same config, same answer — no\nmachine-specific toolchain result, no model in the loop, and every verdict names\nwhat it inspected beside what it found\n([exit-codes.md](https://github.com/ecoma-io/lattice/blob/main/docs/reference/exit-codes.md)).\n\n**Coding agents** read the same authority through the five `arch-*` skills —\n`arch-context` before an edit, `arch-change` during, `arch-check` after,\n`arch-review` on a change or PR, and `arch-migrate` to bring a repository that\ndeclares no architecture under one. The agent is a consumer of the verdict, never\nits authority: the commands it runs are read-only, and the constraint table is\na file it cannot edit ([overview.md](https://github.com/ecoma-io/lattice/blob/main/docs/skills/overview.md)).\n\n## What it does\n\n- **Deterministic graph** — a project graph from any provider: Nx, Moon, or the\n  native discovery that needs neither\n  ([graph.md](https://github.com/ecoma-io/lattice/blob/main/docs/concepts/graph.md)).\n- **Boundary check** — every import judged against the constraint table, with\n  `file:line:column` evidence for each violation\n  ([violations.md](https://github.com/ecoma-io/lattice/blob/main/docs/reference/violations.md)).\n- **Drift and intent** — a tracked `architecture-intent.json` declares what the\n  architecture must be; `drift` and `check` compare the observed graph against\n  it, and an unverifiable intent is a no-verdict, never a pass\n  ([drift.md](https://github.com/ecoma-io/lattice/blob/main/docs/concepts/drift.md)).\n- **Evolution** — `graph` snapshots the architecture, `diff` compares two\n  snapshots, `history` describes the evolution across a directory of them\n  ([diff.md](https://github.com/ecoma-io/lattice/blob/main/docs/usage/diff.md)).\n- **Waivers, profiles, fitness, ADR** — term-bound waivers, named law profiles\n  selected at check time, declared quality gates judged per run, and recorded\n  architecture decisions a constraint row can lean on\n  ([waivers.md](https://github.com/ecoma-io/lattice/blob/main/docs/concepts/waivers.md) ·\n  [profiles.md](https://github.com/ecoma-io/lattice/blob/main/docs/concepts/profiles.md) ·\n  [fitness-functions.md](https://github.com/ecoma-io/lattice/blob/main/docs/concepts/fitness-functions.md) ·\n  [adr.md](https://github.com/ecoma-io/lattice/blob/main/docs/concepts/adr.md)).\n- **Custom rules** — the policy's `customRules` list declares your own rules\n  as committed WebAssembly artifacts, written in any language whose toolchain\n  emits core wasm. Four typed SDKs ship from this repository on the same\n  version chain as the engine — `lattice-rule-sdk` on crates.io (Rust),\n  `@ecoma-io/lattice-rule-sdk` on npm (AssemblyScript), `lattice-rule-sdk` on\n  PyPI (Python, via a RustPython carrier), and a Go module built with TinyGo —\n  and each one's README carries its build story and its measured limits. The\n  contract, not the SDK, is the interface: any toolchain emitting a core-wasm\n  module with no imports is equally valid. Each rule receives the run's\n  observed facts and answers in the same four-verdict vocabulary as everything\n  else: a finding exits 1 under `custom/<rule>/<finding>`, a rule that could\n  not judge exits 3, and an artifact that will not load (missing, hash\n  mismatch, undeclared imports) refuses the run — never a silent skip\n  ([custom-rules.md](https://github.com/ecoma-io/lattice/blob/main/docs/concepts/custom-rules.md),\n  [writing one](https://github.com/ecoma-io/lattice/blob/main/docs/usage/custom-rules.md)).\n- **Shipped policy packs** — Clean Architecture, hexagonal, layered modular\n  monolith and DDD bounded contexts, as ready-made profile registries under\n  this package's `presets/` directory. Copy one into your workspace, or point\n  the `profiles` option straight at it; either way it is enforced by the same\n  path a registry you wrote yourself is\n  ([presets.md](https://github.com/ecoma-io/lattice/blob/main/docs/usage/presets.md)).\n- **Machine-readable JSON** — `--format json` wraps any verdict in a versioned\n  envelope (`schemaVersion`, `status`, `exitCode`, `coverage`); every field\n  name is a public contract\n  ([json-output.md](https://github.com/ecoma-io/lattice/blob/main/docs/reference/json-output.md)).\n- **Language server** — `lattice-lsp` publishes one diagnostic per violation in\n  any LSP client; an empty diagnostic list means \"no violation\", nothing else\n  ([vscode.md](https://github.com/ecoma-io/lattice/blob/main/docs/integrations/vscode.md)).\n\n## Support\n\n- **Languages** — Go, Rust, Python, TypeScript and JavaScript, and Vue. Analysis\n  from source, never a build: nothing shells out to `go`, `cargo`, `uv` or `tsc`\n  ([languages.md](https://github.com/ecoma-io/lattice/blob/main/docs/reference/languages.md)).\n- **Workspaces** — any repository: Nx registers the plugin in `nx.json` and\n  reuses Nx's project graph; Moon workspaces are recognised automatically; any\n  other tree uses `lattice.json` and the native provider\n  ([nx.md](https://github.com/ecoma-io/lattice/blob/main/docs/integrations/nx.md) ·\n  [moon.md](https://github.com/ecoma-io/lattice/blob/main/docs/integrations/moon.md)).\n- **Agents** — Claude Code, Codex and opencode run the `arch-*` skills, which\n  are host-independent ([supported-hosts.md](https://github.com/ecoma-io/lattice/blob/main/docs/skills/supported-hosts.md)).\n\n## Install and quick start\n\n`npm install -D @ecoma-io/lattice` (or pnpm / yarn / bun), create\n`lattice.json` and `module-boundaries.config.mjs` as above, then `lattice check`.\n\nIn CI, both findings (1) and \"no verdict\" (3) must fail the build — the\ndistinction is the point. `lattice check || true` is wrong: it turns \"could\nnot look\" into \"looked and found nothing\". Distinguish explicitly:\n\n```shell\nlattice check\ncase $? in\n  0) echo \"clean\" ;;\n  1) echo \"boundary violations\"; exit 1 ;;\n  3) echo \"the checker could not reach a verdict\"; exit 1 ;;\n  *) echo \"usage error\"; exit 1 ;;\nesac\n```\n\nExit codes: 0 clean — and every selected file was analyzed; 1 findings;\n2 usage error; 3 no verdict\n([exit-codes.md](https://github.com/ecoma-io/lattice/blob/main/docs/reference/exit-codes.md) ·\n[ci.md](https://github.com/ecoma-io/lattice/blob/main/docs/usage/ci.md)).\n\nTen minutes end to end, most of it spent deciding what your tags mean:\n[**Getting started →**](https://github.com/ecoma-io/lattice/blob/main/docs/getting-started/installation.md). `graph`, `diff`,\n`history`, `drift`, `impact`, `explain`, `context` and the rest of the\nseventeen-command surface are in the [CLI reference](https://github.com/ecoma-io/lattice/blob/main/docs/reference/cli.md).\n\n## Documentation map\n\n| Topic           | Read                                                                                                                                                                                                                                                                                                                                                                          |\n| --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| Getting started | [Installation](https://github.com/ecoma-io/lattice/blob/main/docs/getting-started/installation.md) → [first project](https://github.com/ecoma-io/lattice/blob/main/docs/getting-started/first-project.md) → [first policy](https://github.com/ecoma-io/lattice/blob/main/docs/getting-started/first-policy.md)                                                                |\n| Concepts        | [The engine](https://github.com/ecoma-io/lattice/blob/main/docs/concepts/architecture.md) · [boundaries](https://github.com/ecoma-io/lattice/blob/main/docs/concepts/boundaries.md) · [drift](https://github.com/ecoma-io/lattice/blob/main/docs/concepts/drift.md) · [intent](https://github.com/ecoma-io/lattice/blob/main/docs/reference/architecture-intent.md)           |\n| Reference       | [CLI and flags](https://github.com/ecoma-io/lattice/blob/main/docs/reference/cli.md) · [configuration](https://github.com/ecoma-io/lattice/blob/main/docs/reference/configuration.md) · [exit codes](https://github.com/ecoma-io/lattice/blob/main/docs/reference/exit-codes.md) · [JSON output](https://github.com/ecoma-io/lattice/blob/main/docs/reference/json-output.md) |\n| Using it        | [Checking](https://github.com/ecoma-io/lattice/blob/main/docs/usage/checking.md) · [CI](https://github.com/ecoma-io/lattice/blob/main/docs/usage/ci.md) · [troubleshooting](https://github.com/ecoma-io/lattice/blob/main/docs/usage/troubleshooting.md)                                                                                                                      |\n| Agents          | [The `arch-*` protocol](https://github.com/ecoma-io/lattice/blob/main/docs/skills/overview.md)                                                                                                                                                                                                                                                                                |\n| Building on it  | [Architecture](https://github.com/ecoma-io/lattice/blob/main/docs/development/architecture.md) · [contributing](https://github.com/ecoma-io/lattice/blob/main/CONTRIBUTING.md)                                                                                                                                                                                                |\n\n## Status and deliberate limits\n\nCI proves both halves run on this repository's own source — the same `check`\ncommand runs against this tree's tag vocabulary, which shares nothing with the\nworkspace the tool was written against.\n\nThree refusals, by design (full list:\n[architecture-authority.md](https://github.com/ecoma-io/lattice/blob/main/docs/doctrine/architecture-authority.md)):\n\n- **It never infers targets.** Projects and targets stay hand-written in each\n  `project.json`; this tool adds the missing dependency edges only, so what a\n  target does has one source of truth. (The one derivation the Moon provider\n  performs — inferring the workspace layout's `libsDir`/`appsDir` prefixes from\n  project root paths — is about where source lives, never what a target runs.)\n- **It never shells out.** Resolvers read only tracked manifest and source\n  files, so the graph computes on a lint-only CI runner with no Go, Cargo or uv\n  installed.\n- **There is no language off-switch.** Every report of a disabled language\n  would be byte-for-byte identical to that language having no violations, and\n  each analyzer already costs nothing in a workspace without that language.\n\n## License\n\n[Apache License 2.0](https://github.com/ecoma-io/lattice/blob/main/LICENSE) — © Mai Ngọc Hóa (John Martin) and the\nLattice contributors. This README ships inside the tarball; the\nrepository-level landing page with the full capability index is\n[`README.md`](https://github.com/ecoma-io/lattice).\n","readmeFilename":"README.md"}