{"_id":"@australiangreens/ag-arch-rules","_rev":"12-1c65215343c10b82b20c6790ecd5d0df","name":"@australiangreens/ag-arch-rules","dist-tags":{"latest":"2.0.0"},"versions":{"0.4.0":{"name":"@australiangreens/ag-arch-rules","version":"0.4.0","_id":"@australiangreens/ag-arch-rules@0.4.0","maintainers":[{"name":"ineffyble","email":"dev@effy.is"},{"name":"anthonyblond","email":"anthony@unfinishedteleporter.com"},{"name":"johntwyman","email":"john.twyman@greens.org.au"},{"name":"australiangreens-cicd","email":"webops@greens.org.au"},{"name":"peterkmurphy-ag","email":"peter.murphy@greens.org.au"}],"dist":{"shasum":"839a6a3457c31c51faf3197fe2ab1abeaa652ffa","tarball":"https://registry.npmjs.org/@australiangreens/ag-arch-rules/-/ag-arch-rules-0.4.0.tgz","fileCount":4,"integrity":"sha512-pGkLnwzJHaz5Wp7VcB6mXjoxIA1VcgRoqn2uwyF4fxjv6MUl3OH2izilLuwL9D089RBUho1Qbwd+YvI5X/PIfQ==","signatures":[{"sig":"MEQCIAd5hXaxqY7b0ntIMavvVm5eqJFlJRXsP4kjlYWO+xwRAiAz51s8cRJBWxQ0tEaU2I8j5x7IQrXUpKiJdMeMSmeygw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25310},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"df13e844ae8499f30b1e8002f5192dff150eecd0","scripts":{"test":"vitest run","build":"tsup src/index.ts --format esm --dts"},"_npmUser":{"name":"johntwyman","email":"john.twyman@greens.org.au"},"_npmVersion":"11.6.1","description":"Architectural lint rules for Australian Greens TypeScript frontend projects, run as Vitest tests.","directories":{},"_nodeVersion":"24.10.0","dependencies":{"glob":"^11.0.0","archunit":"^2.1.0","micromatch":"^4.0.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.30.3","devDependencies":{"tsup":"^8.0.0","vitest":"^3.0.0","typescript":"^5.0.0","@types/node":"^25.6.0","@types/micromatch":"^4.0.0"},"peerDependencies":{"vitest":">=1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ag-arch-rules_0.4.0_1776986682319_0.8792981017874784","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@australiangreens/ag-arch-rules","version":"0.5.0","_id":"@australiangreens/ag-arch-rules@0.5.0","maintainers":[{"name":"ineffyble","email":"dev@effy.is"},{"name":"anthonyblond","email":"anthony@unfinishedteleporter.com"},{"name":"johntwyman","email":"john.twyman@greens.org.au"},{"name":"australiangreens-cicd","email":"webops@greens.org.au"},{"name":"peterkmurphy-ag","email":"peter.murphy@greens.org.au"}],"dist":{"shasum":"771d993428a75fc126e2d567f22d06b494cef9df","tarball":"https://registry.npmjs.org/@australiangreens/ag-arch-rules/-/ag-arch-rules-0.5.0.tgz","fileCount":8,"integrity":"sha512-+dl+CMSNjyW3LWLPz5aNJuIayiAaFwuImuax0SMN9PyEHijQ8pFc6Y4GvuK+wNOxeeHSomPZ8Os6iL6Z2ZyVHQ==","signatures":[{"sig":"MEQCIAXQbLZjGB/S6UPooTnogQUjK0J95P4uY5ar0DW3on99AiAnxSoF6mbRoMA0nlUNp3R5tMtH6XJzlYqFqeSofTixNA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28865},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./config":{"types":"./dist/config.d.ts","import":"./dist/config.js"}},"gitHead":"0214d98dfb6d62fd93633a4d4eff5dba0372d2c8","scripts":{"test":"vitest run","build":"tsup src/index.ts src/config.ts --format esm --dts"},"_npmUser":{"name":"johntwyman","email":"john.twyman@greens.org.au"},"_npmVersion":"11.5.2","description":"Architectural lint rules for Australian Greens TypeScript frontend projects, run as Vitest tests.","directories":{},"_nodeVersion":"22.17.0","dependencies":{"glob":"^11.0.0","archunit":"^2.1.0","micromatch":"^4.0.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.30.3","devDependencies":{"tsup":"^8.0.0","vitest":"^3.0.0","typescript":"^5.0.0","@types/node":"^25.6.0","@types/micromatch":"^4.0.0"},"peerDependencies":{"vitest":">=1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ag-arch-rules_0.5.0_1776991427602_0.9599661197212868","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@australiangreens/ag-arch-rules","version":"0.6.0","_id":"@australiangreens/ag-arch-rules@0.6.0","maintainers":[{"name":"ineffyble","email":"dev@effy.is"},{"name":"anthonyblond","email":"anthony@unfinishedteleporter.com"},{"name":"johntwyman","email":"john.twyman@greens.org.au"},{"name":"australiangreens-cicd","email":"webops@greens.org.au"},{"name":"peterkmurphy-ag","email":"peter.murphy@greens.org.au"}],"dist":{"shasum":"9aa875b3c7bd00db0406c918f968d2ae92dd9604","tarball":"https://registry.npmjs.org/@australiangreens/ag-arch-rules/-/ag-arch-rules-0.6.0.tgz","fileCount":8,"integrity":"sha512-ow2NHEqUCvqXA5nQqWOeua/j98VM1hEqXx8RCrdzYWbYLSwi1SI8kaCM6bFu7QGdkvPQRE/V26H4RDQeX+LIYw==","signatures":[{"sig":"MEUCIQCPWED8Q1IWW+IDYJFp+p7VAoDmqacYLFjw7wlrFMacKAIgB4uUOPJXSLEfxv6k286th2rYK+tOUVAJGeVPywBCiZM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27041},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./config":{"types":"./dist/config.d.ts","import":"./dist/config.js"}},"gitHead":"2f7ae282718a0392ea0291bf6457a260b9a4fd74","scripts":{"test":"vitest run","build":"tsup src/index.ts src/config.ts --format esm --dts"},"_npmUser":{"name":"johntwyman","email":"john.twyman@greens.org.au"},"_npmVersion":"11.6.1","description":"Architectural lint rules for Australian Greens TypeScript frontend projects, run as Vitest tests.","directories":{},"_nodeVersion":"24.10.0","dependencies":{"glob":"^11.0.0","madge":"^8.0.0","archunit":"^2.1.0","micromatch":"^4.0.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.30.3","devDependencies":{"tsup":"^8.0.0","vitest":"^3.0.0","typescript":"^5.0.0","@types/node":"^25.6.0","@types/madge":"^5.0.3","@types/micromatch":"^4.0.0"},"peerDependencies":{"vitest":">=1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ag-arch-rules_0.6.0_1777360635749_0.6315604743556948","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@australiangreens/ag-arch-rules","version":"0.7.0","_id":"@australiangreens/ag-arch-rules@0.7.0","maintainers":[{"name":"ineffyble","email":"dev@effy.is"},{"name":"anthonyblond","email":"anthony@unfinishedteleporter.com"},{"name":"johntwyman","email":"john.twyman@greens.org.au"},{"name":"australiangreens-cicd","email":"webops@greens.org.au"},{"name":"peterkmurphy-ag","email":"peter.murphy@greens.org.au"}],"dist":{"shasum":"b331e0891a93d985902aac40bab452d734bd5e96","tarball":"https://registry.npmjs.org/@australiangreens/ag-arch-rules/-/ag-arch-rules-0.7.0.tgz","fileCount":8,"integrity":"sha512-0BplpaQS6gcKVfLUmKpb/Kyh1H1CReSFXO3Mke+R1+CGKxahkufITbkUc3IKiS01sCX7MLcnWNIXxLhQZmvyiw==","signatures":[{"sig":"MEUCIQCcSLVrjn7zUnRJLWDwVtTKqQAMT5+jJRDDjc2l/Le5FgIga4FuZbxa7w0hKJ1L4t40lmtkJXJjQbsPJVGYcRCbYjg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27666},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./config":{"types":"./dist/config.d.ts","import":"./dist/config.js"}},"gitHead":"fdf3ecf404c319fb0832017adc879311e5f4f706","scripts":{"test":"vitest run","build":"tsup src/index.ts src/config.ts --format esm --dts"},"_npmUser":{"name":"johntwyman","email":"john.twyman@greens.org.au"},"_npmVersion":"11.5.2","description":"Architectural lint rules for Australian Greens TypeScript frontend projects, run as Vitest tests.","directories":{},"_nodeVersion":"22.17.0","dependencies":{"glob":"^11.0.0","madge":"^8.0.0","archunit":"^2.1.0","micromatch":"^4.0.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.30.3","devDependencies":{"tsup":"^8.0.0","vitest":"^3.0.0","typescript":"^5.0.0","@types/node":"^25.6.0","@types/madge":"^5.0.3","@types/micromatch":"^4.0.0"},"peerDependencies":{"vitest":">=1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ag-arch-rules_0.7.0_1777373997697_0.315827834499808","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@australiangreens/ag-arch-rules","version":"0.8.0","_id":"@australiangreens/ag-arch-rules@0.8.0","maintainers":[{"name":"ineffyble","email":"dev@effy.is"},{"name":"anthonyblond","email":"anthony@unfinishedteleporter.com"},{"name":"johntwyman","email":"john.twyman@greens.org.au"},{"name":"australiangreens-cicd","email":"webops@greens.org.au"},{"name":"peterkmurphy-ag","email":"peter.murphy@greens.org.au"}],"dist":{"shasum":"44a22805f74292c3e92b1f76fdcf904fe44a340a","tarball":"https://registry.npmjs.org/@australiangreens/ag-arch-rules/-/ag-arch-rules-0.8.0.tgz","fileCount":8,"integrity":"sha512-5jGl1/uVmb14Mt3cAyFkLXQEUZ4rqcZ8hKHjDlP5/7m7oG1/gqDC7bDjZz6lIBmCmbKBLqzfbP5BeOD0YhIXaQ==","signatures":[{"sig":"MEUCIQCSv7ZWQfNzAskMyeJfI5Xlk+9B+Z/1rdbC53K+8ivrRgIgaU3jRucZ5QNr0hs91IMpEDYfhmJOp1D/MNc/d7FRulI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28682},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./config":{"types":"./dist/config.d.ts","import":"./dist/config.js"}},"gitHead":"cb56600f44f5ef256036ab0f875f5d382053c4b2","scripts":{"test":"vitest run","build":"tsup src/index.ts src/config.ts --format esm --dts"},"_npmUser":{"name":"johntwyman","email":"john.twyman@greens.org.au"},"_npmVersion":"11.6.1","description":"Architectural lint rules for Australian Greens TypeScript frontend projects, run as Vitest tests.","directories":{},"_nodeVersion":"24.10.0","dependencies":{"glob":"^11.0.0","madge":"^8.0.0","archunit":"^2.1.0","micromatch":"^4.0.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.30.3","devDependencies":{"tsup":"^8.0.0","vitest":"^3.0.0","typescript":"^5.0.0","@types/node":"^25.6.0","@types/madge":"^5.0.3","@types/micromatch":"^4.0.0"},"peerDependencies":{"vitest":">=1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ag-arch-rules_0.8.0_1777430421468_0.6494111560497511","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@australiangreens/ag-arch-rules","version":"0.9.0","_id":"@australiangreens/ag-arch-rules@0.9.0","maintainers":[{"name":"ineffyble","email":"dev@effy.is"},{"name":"anthonyblond","email":"anthony@unfinishedteleporter.com"},{"name":"johntwyman","email":"john.twyman@greens.org.au"},{"name":"australiangreens-cicd","email":"webops@greens.org.au"},{"name":"peterkmurphy-ag","email":"peter.murphy@greens.org.au"}],"dist":{"shasum":"1593ff9b05abdf6c9c876e3d50814f48001b2b50","tarball":"https://registry.npmjs.org/@australiangreens/ag-arch-rules/-/ag-arch-rules-0.9.0.tgz","fileCount":8,"integrity":"sha512-lCepE+q36wx2PFBEfMcOx2NKVHVogErpQ1aG+IH+CddYHbIwWMOIf4JenLEQzLMiAIFIwKBPp7UIcDRBEwTLgQ==","signatures":[{"sig":"MEUCIBzF2CXmeDxMwFDlkl2g82y+WpHd+qZHg+CVowEGl+uiAiEAkZkfO5c//lYwxPWETViZpgHuBhLLsnF+Usl8AYQmNZ8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36012},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./config":{"types":"./dist/config.d.ts","import":"./dist/config.js"}},"gitHead":"490ec0d9976a964c23350a6ae7f5e0592964348c","scripts":{"test":"vitest run","build":"tsup src/index.ts src/config.ts --format esm --dts"},"_npmUser":{"name":"johntwyman","email":"john.twyman@greens.org.au"},"_npmVersion":"11.6.1","description":"Architectural lint rules for Australian Greens TypeScript frontend projects, run as Vitest tests.","directories":{},"_nodeVersion":"24.10.0","dependencies":{"glob":"^11.0.0","madge":"^8.0.0","archunit":"^2.1.0","micromatch":"^4.0.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.30.3","devDependencies":{"tsup":"^8.0.0","vitest":"^3.0.0","typescript":"^5.0.0","@types/node":"^25.6.0","@types/madge":"^5.0.3","@types/micromatch":"^4.0.0"},"peerDependencies":{"vitest":">=1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ag-arch-rules_0.9.0_1777436011396_0.35856637227048216","host":"s3://npm-registry-packages-npm-production"}},"0.9.1":{"name":"@australiangreens/ag-arch-rules","version":"0.9.1","_id":"@australiangreens/ag-arch-rules@0.9.1","maintainers":[{"name":"ineffyble","email":"dev@effy.is"},{"name":"anthonyblond","email":"anthony@unfinishedteleporter.com"},{"name":"johntwyman","email":"john.twyman@greens.org.au"},{"name":"australiangreens-cicd","email":"webops@greens.org.au"},{"name":"peterkmurphy-ag","email":"peter.murphy@greens.org.au"}],"dist":{"shasum":"623a7eb2db761abfefe347ccde0705f797ec91d9","tarball":"https://registry.npmjs.org/@australiangreens/ag-arch-rules/-/ag-arch-rules-0.9.1.tgz","fileCount":8,"integrity":"sha512-fbwOVnf6OcTC66L1qLyV6Qz7I6ZeUwK5MfF2l4bwBNTJzi4FUGnzAfpAKBcJSPN4Y4J1ihR/QpdlnCPvyAWWMQ==","signatures":[{"sig":"MEUCIQDKW8BZW1gXlH2pMqPsN1lZDQEHoiKRDNGYiml7S8pI8QIgeswSEd+kdy/0Cjtwh3EABMO94E6h+sGGJCU78i0Ech8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42125},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./config":{"types":"./dist/config.d.ts","import":"./dist/config.js"}},"gitHead":"d0c47dc649936a36c21764df4d3338cee1b9989f","scripts":{"test":"vitest run","build":"tsup src/index.ts src/config.ts --format esm --dts"},"_npmUser":{"name":"johntwyman","email":"john.twyman@greens.org.au"},"_npmVersion":"11.6.1","description":"Architectural lint rules for Australian Greens TypeScript frontend projects, run as Vitest tests.","directories":{},"_nodeVersion":"24.10.0","dependencies":{"glob":"^11.0.0","madge":"^8.0.0","archunit":"^2.1.0","micromatch":"^4.0.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.30.3","devDependencies":{"tsup":"^8.0.0","vitest":"^3.0.0","typescript":"^5.0.0","@types/node":"^25.6.0","@types/madge":"^5.0.3","@types/micromatch":"^4.0.0"},"peerDependencies":{"vitest":">=1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ag-arch-rules_0.9.1_1777443952743_0.7520064598931762","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@australiangreens/ag-arch-rules","version":"1.0.0","_id":"@australiangreens/ag-arch-rules@1.0.0","maintainers":[{"name":"ineffyble","email":"dev@effy.is"},{"name":"anthonyblond","email":"anthony@unfinishedteleporter.com"},{"name":"johntwyman","email":"john.twyman@greens.org.au"},{"name":"australiangreens-cicd","email":"webops@greens.org.au"},{"name":"peterkmurphy-ag","email":"peter.murphy@greens.org.au"}],"bin":{"ag-arch-rules":"dist/bin/init.js"},"dist":{"shasum":"4d066c49530b98de10f3a5e422ac19d7636c3b9a","tarball":"https://registry.npmjs.org/@australiangreens/ag-arch-rules/-/ag-arch-rules-1.0.0.tgz","fileCount":10,"integrity":"sha512-jtJbqk1QXqECYOg2aEyev9hJlBeCeoEnhgL50v7pF/7PM4rTKk3Tkvea82qGX25+tqXegrjKnng9+r+hBQle+A==","signatures":[{"sig":"MEUCIENrGwKukHRPeFlsy3MRdBmf146qsSb36JcRKpdGBq9uAiEAslcegm4YJMtfcY0+tKB0DtAf28VDZIm3K9+Nl0X1Q/A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":70695},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./config":{"types":"./dist/config.d.ts","import":"./dist/config.js"}},"gitHead":"63201161a4396e45f47c34d8b8f3feba18859267","scripts":{"test":"vitest run","build":"tsup"},"_npmUser":{"name":"johntwyman","email":"john.twyman@greens.org.au"},"_npmVersion":"11.5.2","description":"Architectural lint rules for Australian Greens TypeScript frontend projects, run as Vitest tests.","directories":{},"_nodeVersion":"22.17.0","dependencies":{"glob":"^11.0.0","madge":"^8.0.0","archunit":"^2.1.0","micromatch":"^4.0.0","@clack/prompts":"^0.9.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.30.3","devDependencies":{"tsup":"^8.0.0","vitest":"^3.0.0","typescript":"^5.0.0","@types/node":"^25.6.0","@types/madge":"^5.0.3","@types/micromatch":"^4.0.0"},"peerDependencies":{"vitest":">=1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ag-arch-rules_1.0.0_1779695927677_0.30537561741587216","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@australiangreens/ag-arch-rules","version":"1.1.1","_id":"@australiangreens/ag-arch-rules@1.1.1","maintainers":[{"name":"ineffyble","email":"dev@effy.is"},{"name":"anthonyblond","email":"anthony@unfinishedteleporter.com"},{"name":"johntwyman","email":"john.twyman@greens.org.au"},{"name":"australiangreens-cicd","email":"webops@greens.org.au"},{"name":"peterkmurphy-ag","email":"peter.murphy@greens.org.au"}],"bin":{"ag-arch-rules":"dist/bin/init.js"},"dist":{"shasum":"fe47807b17a2d7e601e59dbf48fe322bc66d5686","tarball":"https://registry.npmjs.org/@australiangreens/ag-arch-rules/-/ag-arch-rules-1.1.1.tgz","fileCount":10,"integrity":"sha512-SUOfPXUzV/IQGTbJCcudwNSQ07LdU+n+WrOrPH4HU/AQchRNGLLue7Dgd2nwT2t1x0drjV3syp8nvEPY3Shheg==","signatures":[{"sig":"MEQCIDUb6j7l9MiksI/KXzBAlM+V+SVZ88o9MEyIc/iyMtCCAiB8nfpawohNFTtt9noRO2h/JeIaTChPUHcU0kvkDKV6PA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":70771},"type":"module","_from":"file:australiangreens-ag-arch-rules-1.1.1.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./config":{"types":"./dist/config.d.ts","import":"./dist/config.js"}},"scripts":{"ship":"pnpm test && pnpm build && pnpm publish --no-git-checks","test":"vitest run","build":"tsup","release":"node scripts/release.js"},"_npmUser":{"name":"johntwyman","email":"john.twyman@greens.org.au"},"_resolved":"/tmp/b00d854306d03a4b6be0407374a18a3c/australiangreens-ag-arch-rules-1.1.1.tgz","_integrity":"sha512-SUOfPXUzV/IQGTbJCcudwNSQ07LdU+n+WrOrPH4HU/AQchRNGLLue7Dgd2nwT2t1x0drjV3syp8nvEPY3Shheg==","_npmVersion":"11.5.2","description":"Architectural lint rules for Australian Greens TypeScript frontend projects, run as Vitest tests.","directories":{},"_nodeVersion":"22.17.0","dependencies":{"glob":"^11.0.0","madge":"^8.0.0","archunit":"^2.1.0","micromatch":"^4.0.0","@clack/prompts":"^0.9.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^3.0.0","typescript":"^5.0.0","@types/node":"^25.6.0","@types/madge":"^5.0.3","@types/micromatch":"^4.0.0"},"peerDependencies":{"vitest":">=1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ag-arch-rules_1.1.1_1779696413138_0.3031151413454267","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@australiangreens/ag-arch-rules","version":"1.1.2","_id":"@australiangreens/ag-arch-rules@1.1.2","maintainers":[{"name":"ineffyble","email":"dev@effy.is"},{"name":"anthonyblond","email":"anthony@unfinishedteleporter.com"},{"name":"johntwyman","email":"john.twyman@greens.org.au"},{"name":"australiangreens-cicd","email":"webops@greens.org.au"},{"name":"peterkmurphy-ag","email":"peter.murphy@greens.org.au"}],"bin":{"ag-arch-rules":"dist/bin/init.js"},"dist":{"shasum":"65580fab28ccc2fa7da9acd7031049aef81e1953","tarball":"https://registry.npmjs.org/@australiangreens/ag-arch-rules/-/ag-arch-rules-1.1.2.tgz","fileCount":10,"integrity":"sha512-uvsP27cCzBBV+lj1dwN9J9mSValfpAgTpQb8/XbVJtbu723r3P0nsEAehTfiDwM1hlh9e+3tgBflEJS4pY7pNw==","signatures":[{"sig":"MEUCIHy/Iw4qVaSC2WpxeMJg0Sj/i4Lsp9jNeCVPLRxCq0Q1AiEAiroHwoN6MDy6rWwR4c1NKX/nU0ibAkIiGVDcaRj+liw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":71710},"type":"module","_from":"file:australiangreens-ag-arch-rules-1.1.2.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./config":{"types":"./dist/config.d.ts","import":"./dist/config.js"}},"scripts":{"ship":"pnpm test && pnpm build && pnpm publish --no-git-checks","test":"vitest run","build":"tsup","release":"node scripts/release.js"},"_npmUser":{"name":"johntwyman","email":"john.twyman@greens.org.au"},"_resolved":"/tmp/d4fd2cbcaa84dd5a1f99fff7be7be6e2/australiangreens-ag-arch-rules-1.1.2.tgz","_integrity":"sha512-uvsP27cCzBBV+lj1dwN9J9mSValfpAgTpQb8/XbVJtbu723r3P0nsEAehTfiDwM1hlh9e+3tgBflEJS4pY7pNw==","_npmVersion":"11.6.1","description":"Architectural lint rules for Australian Greens TypeScript frontend projects, run as Vitest tests.","directories":{},"_nodeVersion":"24.10.0","dependencies":{"glob":"^11.0.0","madge":"^8.0.0","archunit":"^2.1.0","micromatch":"^4.0.0","@clack/prompts":"^0.9.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^3.0.0","typescript":"^5.0.0","@types/node":"^25.6.0","@types/madge":"^5.0.3","@types/micromatch":"^4.0.0"},"peerDependencies":{"vitest":">=1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ag-arch-rules_1.1.2_1780092776012_0.2310028386570142","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@australiangreens/ag-arch-rules","version":"1.2.0","_id":"@australiangreens/ag-arch-rules@1.2.0","maintainers":[{"name":"ineffyble","email":"dev@effy.is"},{"name":"anthonyblond","email":"anthony@unfinishedteleporter.com"},{"name":"johntwyman","email":"john.twyman@greens.org.au"},{"name":"australiangreens-cicd","email":"webops@greens.org.au"},{"name":"peterkmurphy-ag","email":"peter.murphy@greens.org.au"}],"bin":{"ag-arch-rules":"dist/bin/init.js"},"dist":{"shasum":"f29cdc915f8262d9824ee229e01204381761d284","tarball":"https://registry.npmjs.org/@australiangreens/ag-arch-rules/-/ag-arch-rules-1.2.0.tgz","fileCount":10,"integrity":"sha512-UO5Y3/sV5rfljvO9GPd25Pfn4+jYMZnoQk7V7FAtTrG8tuLEIwuWJNWSOfRvq03AgJHHw67vUMMhHUV0AiqBCA==","signatures":[{"sig":"MEYCIQD8LgV6F5F1IlonKybk2F/KM64nPQGpkmZqCVOil40ADwIhAPoAGfq6xgg5XMaCptv4/kBEJ0UkOpT6R/cypWtxkA1J","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":71750},"type":"module","_from":"file:australiangreens-ag-arch-rules-1.2.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./config":{"types":"./dist/config.d.ts","import":"./dist/config.js"}},"scripts":{"ship":"pnpm test && pnpm build && pnpm publish --no-git-checks","test":"vitest run","build":"tsup","release":"node scripts/release.js"},"_npmUser":{"name":"johntwyman","email":"john.twyman@greens.org.au"},"_resolved":"/tmp/085a2e826604e99dca7909feb0456ede/australiangreens-ag-arch-rules-1.2.0.tgz","_integrity":"sha512-UO5Y3/sV5rfljvO9GPd25Pfn4+jYMZnoQk7V7FAtTrG8tuLEIwuWJNWSOfRvq03AgJHHw67vUMMhHUV0AiqBCA==","_npmVersion":"10.9.7","description":"Architectural lint rules for Australian Greens TypeScript frontend projects, run as Vitest tests.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"glob":"^13.0.6","madge":"^8.0.0","archunit":"^2.4.0","micromatch":"^4.0.0","@clack/prompts":"^1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^4.1.10","typescript":"^5.9.3","@types/node":"^22.0.0","@types/madge":"^5.0.3","@types/micromatch":"^4.0.0"},"peerDependencies":{"vitest":">=1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ag-arch-rules_1.2.0_1786335244705_0.7464472245370122","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@australiangreens/ag-arch-rules","version":"2.0.0","type":"module","engines":{"node":">=24"},"bin":{"ag-arch-rules":"dist/bin/init.js"},"exports":{".":{"import":"./dist/index.js","types":"./dist/index.d.ts"},"./config":{"import":"./dist/config.js","types":"./dist/config.d.ts"}},"peerDependencies":{"vitest":">=1.0.0"},"dependencies":{"@clack/prompts":"^1.7.0","archunit":"^2.4.0","glob":"^13.0.6","madge":"^8.0.0","micromatch":"^4.0.0"},"devDependencies":{"@types/madge":"^5.0.3","@types/micromatch":"^4.0.0","@types/node":"^24.0.0","tsup":"^8.0.0","typescript":"^6.0.0","vitest":"^4.1.10"},"scripts":{"build":"tsup","test":"vitest run","release":"node scripts/release.js","ship":"pnpm publish --no-git-checks"},"_id":"@australiangreens/ag-arch-rules@2.0.0","description":"Architectural lint rules for Australian Greens TypeScript frontend projects, run as Vitest tests.","_integrity":"sha512-zPJmiwuZRy+XCZkxh0X8d5a3a6NfofTIjf4eolDsnaaxH7RABlPdITGpVUMt1aVYi7vY4WPWX4k6zMamERsUow==","_resolved":"/tmp/581ee1181f60f08f230c317e6d60b005/australiangreens-ag-arch-rules-2.0.0.tgz","_from":"file:australiangreens-ag-arch-rules-2.0.0.tgz","_nodeVersion":"24.19.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-zPJmiwuZRy+XCZkxh0X8d5a3a6NfofTIjf4eolDsnaaxH7RABlPdITGpVUMt1aVYi7vY4WPWX4k6zMamERsUow==","shasum":"16f35d8070b4def7539b025f62e1d6ed095d7e93","tarball":"https://registry.npmjs.org/@australiangreens/ag-arch-rules/-/ag-arch-rules-2.0.0.tgz","fileCount":8,"unpackedSize":71336,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCyXzsR/Ml0ONPVSYvAYN/Vw+gE2GdrTMSXJJZRlBvCLQIgLOIT2lK+Zs+bKFIxYlG17t70norJA9XaOUm8WHhXVEs="}]},"_npmUser":{"name":"peterkmurphy-ag","email":"peter.murphy@greens.org.au"},"directories":{},"maintainers":[{"name":"ineffyble","email":"dev@effy.is"},{"name":"anthonyblond","email":"anthony@unfinishedteleporter.com"},{"name":"johntwyman","email":"john.twyman@greens.org.au"},{"name":"australiangreens-cicd","email":"webops@greens.org.au"},{"name":"peterkmurphy-ag","email":"peter.murphy@greens.org.au"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ag-arch-rules_2.0.0_1786433470745_0.879812575829773"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-23T23:24:42.255Z","modified":"2026-08-11T07:31:11.198Z","0.4.0":"2026-04-23T23:24:42.490Z","0.5.0":"2026-04-24T00:43:47.755Z","0.6.0":"2026-04-28T07:17:15.901Z","0.7.0":"2026-04-28T10:59:57.823Z","0.8.0":"2026-04-29T02:40:21.640Z","0.9.0":"2026-04-29T04:13:31.542Z","0.9.1":"2026-04-29T06:25:52.886Z","1.0.0":"2026-05-25T07:58:47.798Z","1.1.1":"2026-05-25T08:06:53.269Z","1.1.2":"2026-05-29T22:12:56.232Z","1.2.0":"2026-08-10T04:14:04.841Z","2.0.0":"2026-08-11T07:31:10.916Z"},"description":"Architectural lint rules for Australian Greens TypeScript frontend projects, run as Vitest tests.","maintainers":[{"name":"ineffyble","email":"dev@effy.is"},{"name":"anthonyblond","email":"anthony@unfinishedteleporter.com"},{"name":"johntwyman","email":"john.twyman@greens.org.au"},{"name":"australiangreens-cicd","email":"webops@greens.org.au"},{"name":"peterkmurphy-ag","email":"peter.murphy@greens.org.au"}],"readme":"# @australiangreens/ag-arch-rules\n\nArchitectural lint rules for Australian Greens TypeScript frontend projects, run as Vitest tests.\n\nThe package encodes agreed conventions around layer dependencies, project structure, naming, and file metrics. Rules run alongside your normal test suite (or as a separate command), and violations are reported or enforced depending on how you configure them.\n\n## Installation\n\nWith pnpm:\n\n```sh\npnpm add -D @australiangreens/ag-arch-rules\n```\n\nWith npm:\n\n```sh\nnpm install --save-dev @australiangreens/ag-arch-rules\n```\n\nThe package is published to npmjs.com.\n\n## Quick start\n\nCreate two files in your project root (not inside `src/`).\n\n**`arch.check.ts`** — your rule configuration:\n\n```ts\nimport { agFrontendPreset, defineArchConfig, runArchRules } from '@australiangreens/ag-arch-rules';\n\nrunArchRules(defineArchConfig({\n  root: './src',\n  mode: 'report',\n  rules: {\n    ...agFrontendPreset.rules,\n  },\n}));\n```\n\n**`arch.vitest.config.ts`** — Vitest settings for the arch check:\n\n```ts\nimport { defineArchVitestConfig } from '@australiangreens/ag-arch-rules';\nexport default defineArchVitestConfig();\n```\n\nAdd a script to `package.json`:\n\n```json\n\"scripts\": {\n  \"arch:check\": \"vitest run --config arch.vitest.config.ts --reporter=verbose\"\n}\n```\n\nRun with:\n\n```sh\nnpm run arch:check\n```\n\nIn `report` mode, violations are logged to stderr but tests still pass — useful when first adopting the rules on an existing codebase. Switch to `enforce` when you're ready to make violations fail the build.\n\n## AI agent context files\n\nRun the `init` command to generate context files that teach your AI coding agents (Claude Code, Cursor, Gemini) about the architectural rules active in this project:\n\n```sh\nnpx ag-arch-rules init\n```\n\nThe command asks two questions:\n\n1. **Which AI tools** — select any combination of Claude Code, Cursor, and Gemini.\n2. **Which rule sets** — select the presets that apply to the project (Frontend, Backend Node, CDK).\n\n### What gets generated\n\n| Tool | File(s) written |\n|---|---|\n| Claude Code | `CLAUDE.md` — rule documentation upserted into a sentinel section; existing content is preserved |\n| Gemini | `GEMINI.md` — same upsert behaviour as `CLAUDE.md` |\n| Cursor | `.cursor/rules/ag-arch-rules-common.mdc` (always) + one `.mdc` per selected preset |\n\nRe-run `ag-arch-rules init` after upgrading the package to refresh the generated content. Commit the generated files so your whole team benefits.\n\n## Configuration\n\n### `defineArchConfig`\n\nA typed identity function that provides TypeScript inference and IDE autocomplete on your config object.\n\n### `runArchRules`\n\nRegisters one Vitest `it()` block per enabled rule under a `describe('Architecture')` suite. Call it at the top level of your check file — not inside a test block.\n\n### `defineArchVitestConfig`\n\nReturns a Vitest inline config object with defaults suited to running arch checks. Pass its result as the default export of your `arch.vitest.config.ts`.\n\n```ts\nimport { defineArchVitestConfig } from '@australiangreens/ag-arch-rules';\nexport default defineArchVitestConfig();\n```\n\nAll options are optional:\n\n| Option | Type | Default | Description |\n|---|---|---|---|\n| `checkFile` | `string` | `'arch.check.ts'` | Path to the arch check file to run |\n| `pool` | `string` | `'forks'` | Vitest worker pool. `'forks'` is required for the dependency-graph rules that use native Node.js APIs |\n| `testTimeout` | `number` | `30000` | Test timeout in milliseconds. Arch checks analyse the full dependency graph and can take several seconds |\n\n`globals: true` is always set — `archunit` extends Vitest's `expect` at startup and requires it to be available globally.\n\nOverride individual options as needed:\n\n```ts\nexport default defineArchVitestConfig({\n  checkFile: 'my.arch.check.ts',\n  testTimeout: 60000,\n});\n```\n\n### `mode`\n\n| Value | Effect |\n|---|---|\n| `'report'` | Violations are logged; no tests fail |\n| `'enforce'` | `error`-severity violations fail their test; `warn`-severity violations are logged |\n\n### Rule configuration\n\nEach rule can be set to a severity string or a `[severity, options]` tuple:\n\n```ts\nrules: {\n  'max-file-lines': 'off',                           // disabled\n  'require-hook-prefix': 'warn',                     // default severity\n  'max-file-lines': ['warn', { tsx: 500, ts: 400 }], // with options\n}\n```\n\n### `tsConfigPath`\n\nBy default the rules locate the nearest `tsconfig.json` by walking up the directory tree from `root`. This works for most projects and no explicit `tsConfigPath` is needed.\n\nIf you find analysis is slow on a project with many path aliases or project references, you can point the rules at a leaner dedicated config:\n\n```ts\nrunArchRules(defineArchConfig({\n  root: './src',\n  tsConfigPath: './tsconfig.arch.json',\n  mode: 'enforce',\n  rules: { ...agFrontendPreset.rules },\n}));\n```\n\nA minimal `tsconfig.arch.json` strips out `references`, `declaration`, and unrelated `types`, keeping only what the import resolver needs:\n\n```json\n{\n  \"compilerOptions\": {\n    \"module\": \"ES2022\",\n    \"moduleResolution\": \"Node\",\n    \"jsx\": \"react-jsx\",\n    \"strict\": true,\n    \"skipLibCheck\": true,\n    \"paths\": { \"@/*\": [\"./src/*\"] }\n  },\n  \"include\": [\"src\"],\n  \"exclude\": [\"node_modules\", \"dist\"]\n}\n```\n\n### `except` patterns\n\nAll rules accept an `except` array of glob patterns (CWD-relative) to exclude specific files from the rule:\n\n```ts\n'no-components-depend-on-pages': ['error', {\n  except: [\n    'src/components/LegacyWidget/**',\n  ],\n}],\n```\n\n## The `agFrontendPreset`\n\nA ready-made config covering all 14 rules with sensible defaults:\n\n```ts\nimport { agFrontendPreset, defineArchConfig, runArchRules } from '@australiangreens/ag-arch-rules';\n\nrunArchRules(defineArchConfig({\n  root: './src',\n  mode: 'enforce',\n  rules: {\n    ...agFrontendPreset.rules,\n    // override individual rules below\n  },\n}));\n```\n\nDefault severities in the preset:\n\n| Rule | Default |\n|---|---|\n| `no-apis-depend-on-components` | `error` |\n| `no-apis-depend-on-pages` | `error` |\n| `no-components-depend-on-pages` | `error` |\n| `no-hooks-depend-on-pages` | `error` |\n| `no-types-depend-on-runtime-layers` | `error` |\n| `no-constants-depend-on-runtime-layers` | `error` |\n| `no-circular-dependencies` | `error` |\n| `require-barrel-exports` | `warn` |\n| `require-path-alias` | `warn` |\n| `require-error-hierarchy` | `error` |\n| `errors-extend-ag-error` | `error` |\n| `require-test-type-suffix` | `warn` |\n| `require-hook-prefix` | `warn` |\n| `max-file-lines` | `warn` (`tsx: 400`, `ts: 300`) |\n\n## Adopting on an existing codebase\n\nStart in `report` mode so you can see what violations exist without breaking CI. Use `except` patterns to acknowledge known violations you're not ready to fix, then tighten incrementally. When a rule has no remaining violations, switch it to `enforce` or rename the file to `arch.test.ts` and set `mode: 'enforce'` globally.\n\n## Rule reference\n\nSee [docs/RULES.md](docs/RULES.md) for a description of each rule with examples.\n\n## Requirements\n\n- Node.js 24+\n- Vitest 1.0+ (peer dependency)\n- TypeScript project with a `tsconfig.json`\n\n## Releasing\n\n```sh\nnvm use   # Node 24 required\npnpm release patch   # or minor | major\npnpm ship\n```\n\n`prepublishOnly` runs tests and build before publish.\n","readmeFilename":"README.md"}