{"_id":"@canonical/summon-application","_rev":"20-ed93fc638d88c9391db10397f95a50b7","name":"@canonical/summon-application","dist-tags":{"latest":"0.43.0","experimental":"0.43.0-experimental.1"},"versions":{"0.29.0-experimental.0":{"name":"@canonical/summon-application","version":"0.29.0-experimental.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"GPL-3.0","_id":"@canonical/summon-application@0.29.0-experimental.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"amylily1011","email":"amy.lily@canonical.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"mariadias143","email":"marianovadias@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"d1b0612a8233d0e31cebfe4884567e32fbd20df9","tarball":"https://registry.npmjs.org/@canonical/summon-application/-/summon-application-0.29.0-experimental.0.tgz","fileCount":65,"integrity":"sha512-kaKdmfXwNZqe5fXM+bu+smzLP1xKHSnP+hSa3FHnSDyVM8NTd6oIXncqYJrwSQntGb7PiHmeDy3XqNlPaHwvSQ==","signatures":[{"sig":"MEYCIQCi7zpjv+5q3FdJ+rbBKWPm2gIzu/3Wx+B7LmqqA8nmwgIhAIM1NppwSXZ7eEx40uZz5WpkMHp6fFCo1Ly09QT6cMCA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":118010},"main":"src/index.ts","type":"module","types":"src/index.ts","module":"src/index.ts","exports":{".":{"types":"./src/index.ts","import":"./src/index.ts"}},"gitHead":"da13740c90f9692560635ce9ace5fdc2e699f593","scripts":{"test":"vitest run","build":"echo 'No build needed - runs directly from TypeScript'","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","check:fix":"bun run check:biome:fix && bun run check:ts","check:biome":"biome check","check:biome:fix":"biome check --write","check:webarchitect":"webarchitect tool-ts"},"_npmUser":{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"11.6.2","description":"Summon generators for application scaffolding: domain, route, and wrapper","directories":{},"_nodeVersion":"24.13.0","dependencies":{"typescript":"^5.9.3","@canonical/task":"^0.29.0-experimental.0","@canonical/utils":"^0.29.0-experimental.0","@canonical/summon-core":"^0.29.0-experimental.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/node":"^24.12.0","@biomejs/biome":"2.4.9","@canonical/biome-config":"^0.28.0","@canonical/webarchitect":"^0.29.0-experimental.0"},"_npmOperationalInternal":{"tmp":"tmp/summon-application_0.29.0-experimental.0_1783028596979_0.5650342162549657","host":"s3://npm-registry-packages-npm-production"}},"0.29.0":{"name":"@canonical/summon-application","version":"0.29.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"GPL-3.0","_id":"@canonical/summon-application@0.29.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"amylily1011","email":"amy.lily@canonical.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"274106efa4f4d3f2a8e2e9bc890771888a54d3a1","tarball":"https://registry.npmjs.org/@canonical/summon-application/-/summon-application-0.29.0.tgz","fileCount":66,"integrity":"sha512-h8EI4KA1UM2KBNBTeYwt5KeeVaqCbw9m3Pm8DDO8Pc1dR/jqZxHAXmcR3ssGYh4mGPtgBmAsnvb69BIJv4uFPA==","signatures":[{"sig":"MEUCIFmfO2zWd3aZ6AHyVlJGmin3rvFmFzevGNwTpE2St0S9AiEAkpSfF7L1jJMUWLDcoEpSM4dQJRD2ntFSWnbEVZxAfxA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fsummon-application@0.29.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":125625},"main":"src/index.ts","type":"module","types":"src/index.ts","module":"src/index.ts","exports":{".":{"types":"./src/index.ts","import":"./src/index.ts"}},"gitHead":"535302c1e1e5dd8fa9bc2da4144de57ec4e63005","scripts":{"test":"vitest run","build":"echo 'No build needed - runs directly from TypeScript'","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","check:fix":"bun run check:biome:fix && bun run check:ts","check:biome":"biome check","check:biome:fix":"biome check --write","check:webarchitect":"webarchitect tool-ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08db0bf9-4f71-43fe-93e6-4d137b5753b7"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.18.0+x64 (linux)","description":"Summon generators for application scaffolding: domain, route, and wrapper","directories":{},"_nodeVersion":"24.18.0","dependencies":{"typescript":"^5.9.3","@canonical/task":"^0.29.0","@canonical/utils":"^0.29.0","@canonical/summon-core":"^0.29.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/node":"^24.12.0","@biomejs/biome":"2.4.9","@canonical/biome-config":"^0.29.0","@canonical/webarchitect":"^0.29.0"},"_npmOperationalInternal":{"tmp":"tmp/summon-application_0.29.0_1783071075729_0.15255902304434654","host":"s3://npm-registry-packages-npm-production"}},"0.30.0":{"name":"@canonical/summon-application","version":"0.30.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"GPL-3.0","_id":"@canonical/summon-application@0.30.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"amylily1011","email":"amy.lily@canonical.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"1773f0ee91838cb01e96817fe33f8af5bc0ec3f7","tarball":"https://registry.npmjs.org/@canonical/summon-application/-/summon-application-0.30.0.tgz","fileCount":115,"integrity":"sha512-kLSIzdUCSyo5KeF0g70/+5sINbLi6V2DS21uwOyeFjk4+6MgtMZ4kTJ8gZRhKW/evRvnSAGjqWrbCywUKwzd9Q==","signatures":[{"sig":"MEUCIQDQ7ZiVKw0oDLgnZ7IAWuakQom3avpuxn1NLxzG77V6LgIgLyo1mkyoQR1i8KRGh2l4P3jyhw9CJwBaGdMx+sxgDg8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fsummon-application@0.30.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":215918},"main":"dist/esm/index.js","type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js"}},"gitHead":"40fe86ac955473536ac14f074812a9821f5b65c0","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json && bun ../../../scripts/copy-templates.ts src dist/esm","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","check:biome":"biome check","check:biome:fix":"biome check --write","check:webarchitect":"webarchitect library --license GPL-3.0"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08db0bf9-4f71-43fe-93e6-4d137b5753b7"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.18.0+x64 (linux)","description":"Summon generators for application scaffolding: domain, route, and wrapper","directories":{},"_nodeVersion":"24.18.0","dependencies":{"typescript":"^5.9.3","@canonical/task":"^0.30.0","@canonical/utils":"^0.30.0","@canonical/summon-core":"^0.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/node":"^24.12.0","@biomejs/biome":"2.4.9","@canonical/biome-config":"^0.30.0","@canonical/webarchitect":"^0.30.0"},"_npmOperationalInternal":{"tmp":"tmp/summon-application_0.30.0_1783988118579_0.8550836490400342","host":"s3://npm-registry-packages-npm-production"}},"0.31.0":{"name":"@canonical/summon-application","version":"0.31.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"GPL-3.0","_id":"@canonical/summon-application@0.31.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"amylily1011","email":"amy.lily@canonical.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"e93bb61b026aa09d7b54c2a82407e6c9cf008e53","tarball":"https://registry.npmjs.org/@canonical/summon-application/-/summon-application-0.31.0.tgz","fileCount":115,"integrity":"sha512-5X1213tkuvahYyT14ii5GFufbMTrLyELX2EuCCYQDLpabPKBOz0CE/dkc4oXKzapN3fXF37+g7le5FYovRHqmA==","signatures":[{"sig":"MEUCIQC9ecyQQB0ytvvaC1FE0EeuDucBbxrSWun9k6sDxoANDgIgW9m0HO3uqB0r2VVtnQTFudzOHlVOd7jJhPGckFymVXI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fsummon-application@0.31.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":215918},"main":"dist/esm/index.js","type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js"}},"gitHead":"d4a67ebe42e62b8cf3de77f42f537309ca88d672","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json && bun ../../../scripts/copy-templates.ts src dist/esm","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","check:biome":"biome check","check:biome:fix":"biome check --write","check:webarchitect":"webarchitect library --license GPL-3.0"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08db0bf9-4f71-43fe-93e6-4d137b5753b7"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.18.0+x64 (linux)","description":"Summon generators for application scaffolding: domain, route, and wrapper","directories":{},"_nodeVersion":"24.18.0","dependencies":{"typescript":"^5.9.3","@canonical/task":"^0.31.0","@canonical/utils":"^0.31.0","@canonical/summon-core":"^0.31.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/node":"^24.12.0","@biomejs/biome":"2.4.9","@canonical/biome-config":"^0.31.0","@canonical/webarchitect":"^0.31.0"},"_npmOperationalInternal":{"tmp":"tmp/summon-application_0.31.0_1784323754805_0.5787169812062603","host":"s3://npm-registry-packages-npm-production"}},"0.32.0":{"name":"@canonical/summon-application","version":"0.32.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"GPL-3.0","_id":"@canonical/summon-application@0.32.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"amylily1011","email":"amy.lily@canonical.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"07df3974d2e8f1f41d81df864d9e92fcdf0bfc99","tarball":"https://registry.npmjs.org/@canonical/summon-application/-/summon-application-0.32.0.tgz","fileCount":120,"integrity":"sha512-Li9uuYv+26okg0fyMijBdxnpu7ZK1IbwvFLO9XllX5tAQvFoYZBTGhIRKNIn5CH64x8CvkOu9H3/cjq0buGXVg==","signatures":[{"sig":"MEUCIDFvGRWhRC88ni3vodCJn30DU6vwNlIn8fKRTQzHj0yRAiEAk+5I6GNdi4yE8EUl4o7h4mflu9ogrt4BHWA7YxVCJrw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fsummon-application@0.32.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":230790},"main":"dist/esm/index.js","type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js"}},"gitHead":"5b279d8150e3988c68c6c2a741046bcd425624ca","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json && bun ../../../scripts/copy-templates.ts src dist/esm","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","check:biome":"biome check","check:biome:fix":"biome check --write","check:webarchitect":"webarchitect library --license GPL-3.0"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08db0bf9-4f71-43fe-93e6-4d137b5753b7"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.18.0+x64 (linux)","description":"Summon generators for application scaffolding: domain, route, and wrapper","directories":{},"_nodeVersion":"24.18.0","dependencies":{"typescript":"^5.9.3","@canonical/task":"^0.32.0","@canonical/utils":"^0.32.0","@canonical/summon-core":"^0.32.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/node":"^24.12.0","@biomejs/biome":"2.4.9","@canonical/biome-config":"^0.32.0","@canonical/webarchitect":"^0.32.0"},"_npmOperationalInternal":{"tmp":"tmp/summon-application_0.32.0_1784542948802_0.9505161573135046","host":"s3://npm-registry-packages-npm-production"}},"0.33.0":{"name":"@canonical/summon-application","version":"0.33.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"GPL-3.0","_id":"@canonical/summon-application@0.33.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"amylily1011","email":"amy.lily@canonical.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"acd4253d8ca039e09f2461187ec820d7f5372c13","tarball":"https://registry.npmjs.org/@canonical/summon-application/-/summon-application-0.33.0.tgz","fileCount":120,"integrity":"sha512-CClvj2aFj8bd97k7Y9v+JI43oaAkHM0673+HR6wN4nyDolSjtfBvDRNCmeSElyl0opSCZmCLAcS/qAlX18QWKA==","signatures":[{"sig":"MEUCIFH0Z5pmJ0C4sQaRxq5KyQl8ANaVWQqR1mc2RCJYJ0NmAiEAqqEVZpXU4HHSxRQZCrWUcJ8diKKDD0OsvKBBlwdwSxM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fsummon-application@0.33.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":230790},"main":"dist/esm/index.js","type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js"}},"gitHead":"fca2bc4440fff2d511fc8db6686f9b19222fdbc7","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json && bun ../../../scripts/copy-templates.ts src dist/esm","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","check:biome":"biome check","check:biome:fix":"biome check --write","check:webarchitect":"webarchitect library --license GPL-3.0"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08db0bf9-4f71-43fe-93e6-4d137b5753b7"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.18.0+x64 (linux)","description":"Summon generators for application scaffolding: domain, route, and wrapper","directories":{},"_nodeVersion":"24.18.0","dependencies":{"typescript":"^5.9.3","@canonical/task":"^0.33.0","@canonical/utils":"^0.33.0","@canonical/summon-core":"^0.33.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/node":"^24.12.0","@biomejs/biome":"2.4.9","@canonical/biome-config":"^0.33.0","@canonical/webarchitect":"^0.33.0"},"_npmOperationalInternal":{"tmp":"tmp/summon-application_0.33.0_1784914690825_0.2457720507307466","host":"s3://npm-registry-packages-npm-production"}},"0.34.0":{"name":"@canonical/summon-application","version":"0.34.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"GPL-3.0","_id":"@canonical/summon-application@0.34.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"amylily1011","email":"amy.lily@canonical.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"fe824ac66edc22da581a69aa41180a8a83003fa0","tarball":"https://registry.npmjs.org/@canonical/summon-application/-/summon-application-0.34.0.tgz","fileCount":120,"integrity":"sha512-TfcoRbz83pQcZEw7ctrC+Y6XYY8TyTWUsW8oYRFowpVl4SerXs9tezsvibukv8/6obrTfwoi5H98H1HSd8Esaw==","signatures":[{"sig":"MEUCIQCzC1rfygVRQ8kgkuhzuS92nV75D53XFWzL6HdLahfs4AIgVwPunJQwK8p6nJ1WPsQeXSNuvstwnwq8CMtJ36J+arQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fsummon-application@0.34.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":230790},"main":"dist/esm/index.js","type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js"}},"gitHead":"e8d25fecbe6e70edfc4cb300bad65f691dbbd26e","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json && bun ../../../scripts/copy-templates.ts src dist/esm","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","check:biome":"biome check","check:biome:fix":"biome check --write","check:webarchitect":"webarchitect library --license GPL-3.0"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08db0bf9-4f71-43fe-93e6-4d137b5753b7"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.19.0+x64 (linux)","description":"Summon generators for application scaffolding: domain, route, and wrapper","directories":{},"_nodeVersion":"24.19.0","dependencies":{"typescript":"^5.9.3","@canonical/task":"^0.34.0","@canonical/utils":"^0.34.0","@canonical/summon-core":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/node":"^24.12.0","@biomejs/biome":"2.4.9","@canonical/biome-config":"^0.34.0","@canonical/webarchitect":"^0.34.0"},"_npmOperationalInternal":{"tmp":"tmp/summon-application_0.34.0_1787317091512_0.19926913404203805","host":"s3://npm-registry-packages-npm-production"}},"0.35.0":{"name":"@canonical/summon-application","version":"0.35.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"GPL-3.0","_id":"@canonical/summon-application@0.35.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"amylily1011","email":"amy.lily@canonical.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"4a91b279ba75d96722d1db43138ae0b0cc44b40d","tarball":"https://registry.npmjs.org/@canonical/summon-application/-/summon-application-0.35.0.tgz","fileCount":143,"integrity":"sha512-sMmo/QN2qe3OclKGIuOqJaIF56Hncg/NgCNq1tosRLVyJzYkEmCpF2/ATcx6AKMDjH5thz0vffgq/EcVWn2eLQ==","signatures":[{"sig":"MEUCIDIbC1tE5Ch2GO6Bik2334kWnjE7jIJ1H3GKm6f+tRgyAiEAvnJFq3fH2Z5qsNzSPW20n3YUMrh8IzSbfLNjf2wGMYI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fsummon-application@0.35.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":329900},"main":"dist/esm/index.js","type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js"}},"gitHead":"5198c5399ef657959272c0e35924391573d81146","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json && bun ../../../scripts/copy-templates.ts src dist/esm","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","check:biome":"biome check","check:biome:fix":"biome check --write","check:webarchitect":"webarchitect library --license GPL-3.0"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08db0bf9-4f71-43fe-93e6-4d137b5753b7"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.19.0+x64 (linux)","description":"Summon generators for application scaffolding: domain, route, and wrapper","directories":{},"_nodeVersion":"24.19.0","dependencies":{"typescript":"^5.9.3","@canonical/task":"^0.35.0","@canonical/utils":"^0.35.0","@canonical/summon-core":"^0.35.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/node":"^26.0.0","@biomejs/biome":"2.4.9","@canonical/biome-config":"^0.35.0","@canonical/webarchitect":"^0.35.0"},"_npmOperationalInternal":{"tmp":"tmp/summon-application_0.35.0_1787877263893_0.01588848028476253","host":"s3://npm-registry-packages-npm-production"}},"0.36.0":{"name":"@canonical/summon-application","version":"0.36.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"GPL-3.0","_id":"@canonical/summon-application@0.36.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"ffb9f3f9b31e479f3fe7bf874f6979a428820e1b","tarball":"https://registry.npmjs.org/@canonical/summon-application/-/summon-application-0.36.0.tgz","fileCount":143,"integrity":"sha512-vB3+aoydaD5vocTgTXHRuompjJU7FyprfiY+x235ExjNszLWiNqNE/JplHQI1OXuMp4tkKaNcSHcSFvXmTHIxQ==","signatures":[{"sig":"MEUCIQDinUppW4rMMl2JZQQMPk3emsGkvNuC6tjIm/B76re7yQIgF3eLO8VsJUV2QVSC5u9zRZMYDMZv7uI1QyshOXSo/OA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fsummon-application@0.36.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":329900},"main":"dist/esm/index.js","type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js"}},"gitHead":"78eb47ac10104e914eeacd331795e14b832703d4","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json && bun ../../../scripts/copy-templates.ts src dist/esm","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","check:biome":"biome check","check:biome:fix":"biome check --write","check:webarchitect":"webarchitect library --license GPL-3.0"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08db0bf9-4f71-43fe-93e6-4d137b5753b7"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.19.0+x64 (linux)","description":"Summon generators for application scaffolding: domain, route, and wrapper","directories":{},"_nodeVersion":"24.19.0","dependencies":{"typescript":"^5.9.3","@canonical/task":"^0.36.0","@canonical/utils":"^0.36.0","@canonical/summon-core":"^0.36.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/node":"^26.0.0","@biomejs/biome":"2.4.9","@canonical/biome-config":"^0.36.0","@canonical/webarchitect":"^0.36.0"},"_npmOperationalInternal":{"tmp":"tmp/summon-application_0.36.0_1788012125565_0.04281692021244532","host":"s3://npm-registry-packages-npm-production"}},"0.37.0":{"name":"@canonical/summon-application","version":"0.37.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"GPL-3.0","_id":"@canonical/summon-application@0.37.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"abbiesims","email":"abbie.sims@canonical.com"},{"name":"ataku_b","email":"atakan99saglam@gmail.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"9be00864c54714ee419890ebd50821db710d7bc8","tarball":"https://registry.npmjs.org/@canonical/summon-application/-/summon-application-0.37.0.tgz","fileCount":143,"integrity":"sha512-JaZudzdFY1rh2iKqZEBrMPqrkAf1WMzCUsThdFJUQ/DfNXCDfDXsAYaf/wpNMwn/7K1IqcqBDh+DA8fHbqim1A==","signatures":[{"sig":"MEUCIFbsHzSqZK0jsmIWJOjzwPmA6j/kJoyeulWYB//l5dJUAiEAlmyKKUkuPvGvEOd8DSjeGpDDXIjKcpNM+fW7OQqkxDg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fsummon-application@0.37.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":347642},"main":"dist/esm/index.js","type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js"}},"gitHead":"ac8383bdb4be1bcd6fa6c4960a1e3d78c0279688","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json && bun ../../../scripts/copy-templates.ts src dist/esm","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","check:biome":"biome check","check:biome:fix":"biome check --write","check:webarchitect":"webarchitect library --license GPL-3.0"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08db0bf9-4f71-43fe-93e6-4d137b5753b7"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/10.0.1/node@v24.19.0+x64 (linux)","description":"Summon generators for application scaffolding: domain, route, and wrapper","directories":{},"_nodeVersion":"24.19.0","dependencies":{"typescript":"^5.9.3","@canonical/task":"^0.37.0","@canonical/utils":"^0.37.0","@canonical/summon-core":"^0.37.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/node":"^26.0.0","@biomejs/biome":"2.4.9","@canonical/biome-config":"^0.37.0","@canonical/webarchitect":"^0.37.0"},"_npmOperationalInternal":{"tmp":"tmp/summon-application_0.37.0_1788345315931_0.44306125701865207","host":"s3://npm-registry-packages-npm-production"}},"0.38.0":{"name":"@canonical/summon-application","version":"0.38.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"GPL-3.0","_id":"@canonical/summon-application@0.38.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"abbiesims","email":"abbie.sims@canonical.com"},{"name":"ataku_b","email":"atakan99saglam@gmail.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"794d4d4995d2d357cd9e82ee8c8b417b4dd07b6c","tarball":"https://registry.npmjs.org/@canonical/summon-application/-/summon-application-0.38.0.tgz","fileCount":145,"integrity":"sha512-78XKFCbVopaK31Hj4KKFyhiCTTbKs3XiT07PVbd5BmH+qvELBXyI3MnWE9xbuxv9hRgM31GWBfoP0tqnmeYveQ==","signatures":[{"sig":"MEQCIH+LS8ubgGrOBJr0GS0ldLwMnRkPxkIRq9Z76n3D+wgzAiAEyRE2vN941wr/8CHe8iviPEF/mJNnFkr58Jr3i8vOTQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCWjHn60NXlUUjC5w9PjN55lBXFuXGWmfC6VwuqJr0JJgIhAIGXy7y6w4hBJT1NnBuIv2IjzScVTx3qr8/FjAwECh3K","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fsummon-application@0.38.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":359156},"main":"dist/esm/index.js","type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js"}},"gitHead":"4d10a68a9b299af6fe3d1d7d053e54ca128944ad","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json && bun ../../../scripts/copy-templates.ts src dist/esm","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","check:biome":"biome check","check:biome:fix":"biome check --write","check:webarchitect":"webarchitect library --license GPL-3.0"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08db0bf9-4f71-43fe-93e6-4d137b5753b7"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/10.0.1/node@v24.20.0+x64 (linux)","description":"Summon generators for application scaffolding: domain, route, and wrapper","directories":{},"_nodeVersion":"24.20.0","dependencies":{"typescript":"^5.9.3","@canonical/task":"^0.38.0","@canonical/utils":"^0.38.0","@canonical/summon-core":"^0.38.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/node":"^26.0.0","@biomejs/biome":"2.5.13","@canonical/biome-config":"^0.38.0","@canonical/webarchitect":"^0.38.0"},"_npmOperationalInternal":{"tmp":"tmp/summon-application_0.38.0_1789573156208_0.029621991870102837","host":"s3://npm-registry-packages-npm-production"}},"0.40.0":{"name":"@canonical/summon-application","version":"0.40.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"GPL-3.0","_id":"@canonical/summon-application@0.40.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"abbiesims","email":"abbie.sims@canonical.com"},{"name":"ataku_b","email":"atakan99saglam@gmail.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"6a72adb23113ea32b5d275b6d5e578145d45e499","tarball":"https://registry.npmjs.org/@canonical/summon-application/-/summon-application-0.40.0.tgz","fileCount":145,"integrity":"sha512-PcUEUCuR2VMYKMgrWQvWpdJmVyzxL8ZRhPaj1emJf5Xc4hWTyT9JlYZiU3cNUKbU7MGc46JytK6x9eEvgZngzA==","signatures":[{"sig":"MEUCIQChTf944iP+vPveOv4JZ5g8DtgkXXWQWHlDLFoLHFctuwIgfNJEB7z1VUK24mRDo8trGiPL6nuY+hSg69fM1DP5v7s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIFTyLWNzE4+a++iVm3oEBOcQwGFj+fXiKCAYEK/FqC88AiEAsKSXOx9MKPGne1xhVLVfxk0OAZFQqWK13xvgGO/vCrU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fsummon-application@0.40.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":359156},"main":"dist/esm/index.js","type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js"}},"gitHead":"9136b71518260c5f33e7619da087198c931e4c13","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json && bun ../../../scripts/copy-templates.ts src dist/esm","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","check:biome":"biome check","check:biome:fix":"biome check --write","check:webarchitect":"webarchitect library --license GPL-3.0"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08db0bf9-4f71-43fe-93e6-4d137b5753b7"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/10.0.1/node@v24.20.0+x64 (linux)","description":"Summon generators for application scaffolding: domain, route, and wrapper","directories":{},"_nodeVersion":"24.20.0","dependencies":{"typescript":"^5.9.3","@canonical/task":"^0.40.0","@canonical/utils":"^0.40.0","@canonical/summon-core":"^0.40.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/node":"^26.0.0","@biomejs/biome":"2.5.13","@canonical/biome-config":"^0.40.0","@canonical/webarchitect":"^0.40.0"},"_npmOperationalInternal":{"tmp":"tmp/summon-application_0.40.0_1789941935491_0.2213717704029896","host":"s3://npm-registry-packages-npm-production"}},"0.42.0":{"name":"@canonical/summon-application","version":"0.42.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"GPL-3.0","_id":"@canonical/summon-application@0.42.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"abbiesims","email":"abbie.sims@canonical.com"},{"name":"ataku_b","email":"atakan99saglam@gmail.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"25b5706ae56468a375e6d87b0539cdcd493e737e","tarball":"https://registry.npmjs.org/@canonical/summon-application/-/summon-application-0.42.0.tgz","fileCount":151,"integrity":"sha512-xUTNAotX9fAgpD2Nwm4LWHRl3kIAT+t7mZarskcgHrPJ++3P5Sljocnx0HYSxPjQOL5FmcBDpuDyFsgnloKxGw==","signatures":[{"sig":"MEUCIQDmKJaf75XgGm0pFSwRo3wyPFtYK58nVUUCJkJPQMg4FAIgFQtA4WWry7Rt/TqKicxR/s/2GHITkPFT/dNAdMYZqvI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDSwCI81i01o8lI7PclNd1OHYaaTIVXK/AwWCnh+Qv/8QIgAm6wyv5ZkMAd+SI4yp3vAIrRlV3F2b8FFcez5GEjKvE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fsummon-application@0.42.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":351165},"main":"dist/esm/index.js","type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js"}},"gitHead":"75c2b17029ba899be3fa645be28290ac6fcb83a9","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json && bun ../../../scripts/copy-templates.ts src dist/esm","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","check:biome":"biome check","check:biome:fix":"biome check --write","check:webarchitect":"webarchitect library --license GPL-3.0"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08db0bf9-4f71-43fe-93e6-4d137b5753b7"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/10.0.1/node@v24.21.0+x64 (linux)","description":"Summon generators for application scaffolding: application, domain, page, and wrapper","directories":{},"_nodeVersion":"24.21.0","dependencies":{"@canonical/task":"^0.42.0","@canonical/utils":"^0.42.0","@canonical/summon-core":"^0.42.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","typescript":"^7.0.2","@types/node":"^26.0.0","@biomejs/biome":"2.5.14","@canonical/biome-config":"^0.42.0","@canonical/webarchitect":"^0.42.0"},"_npmOperationalInternal":{"tmp":"tmp/summon-application_0.42.0_1790560895601_0.4907137089019955","host":"s3://npm-registry-packages-npm-production"}},"0.43.0-experimental.1":{"name":"@canonical/summon-application","version":"0.43.0-experimental.1","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"GPL-3.0","_id":"@canonical/summon-application@0.43.0-experimental.1","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"abbiesims","email":"abbie.sims@canonical.com"},{"name":"ataku_b","email":"atakan99saglam@gmail.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma-core#readme","bugs":{"url":"https://github.com/canonical/pragma-core/issues"},"dist":{"shasum":"931854537ef884b5cadfad907e5d77e423c83e90","tarball":"https://registry.npmjs.org/@canonical/summon-application/-/summon-application-0.43.0-experimental.1.tgz","fileCount":151,"integrity":"sha512-K7s1Rqfw/vvvXkzcGbB+mjB/K01gn1IfSvMrMS6WP3+HPqEnjSZvPhMO7ur8LC9CfWOMKIewEeDm3kHMcxVD9g==","signatures":[{"sig":"MEUCIQDQKJIgVjkNfG7VkeJ83HCsViBU2xmwMBOnuLF+Dp7V4wIgXygOgaLEhbc4Pg/g3MINgzzNugDr3UJ5D3D0mEzF+7s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIFq17ZNrmMc5sDyCdmK36t2AUwdbpi9EXqAfHWV/Gt/SAiBL5zaJK2aOCCmwmHDvD+GY17BdRI6eXDGq+4Hi5PPOtg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fsummon-application@0.43.0-experimental.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":351443},"main":"dist/esm/index.js","type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js"}},"gitHead":"5c1b1bdbb95844fac6211f1fe6ba10c29238d6ee","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json && bun ../../../scripts/copy-templates.ts src dist/esm","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","check:biome":"biome check","check:biome:fix":"biome check --write","check:webarchitect":"webarchitect library --license GPL-3.0"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"da186efa-3ab8-4e71-88c7-7839dd46ba44"}},"repository":{"url":"git+https://github.com/canonical/pragma-core.git","type":"git"},"_npmVersion":"lerna/10.0.1/node@v24.21.0+x64 (linux)","description":"Summon generators for application scaffolding: application, domain, page, and wrapper","directories":{},"_nodeVersion":"24.21.0","dependencies":{"@canonical/task":"^0.43.0-experimental.0","@canonical/utils":"^0.43.0-experimental.1","@canonical/summon-core":"^0.43.0-experimental.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^4.0.18","typescript":"^7.0.2","@types/node":"^26.0.0","@biomejs/biome":"2.5.14","@canonical/biome-config":"^0.43.0-experimental.0","@canonical/webarchitect":"^0.43.0-experimental.0"},"_npmOperationalInternal":{"tmp":"tmp/summon-application_0.43.0-experimental.1_1790649852406_0.3582391981358386","host":"s3://npm-registry-packages-npm-production"}},"0.43.0":{"_id":"@canonical/summon-application@0.43.0","bugs":{"url":"https://github.com/canonical/pragma-core/issues"},"dist":{"shasum":"b8d87c131f14f19ea272dbb82dbf11ed16188a63","tarball":"https://registry.npmjs.org/@canonical/summon-application/-/summon-application-0.43.0.tgz","fileCount":151,"integrity":"sha512-P+G5pXu7BRZxH0XhMA1k2NwV45FfRCJniz+1pOq3ZiF/JJWGEWPZoV185G4WPumJB3HMxRqRbykzEaMseMYoBw==","signatures":[{"sig":"MEUCIH4zu6Z8aAAfahUJJnzFWsAisIkW1OSyQVUAUY8OVd81AiEAuhCabqrxut0m/GUcw1tgQ8j1RPAmEq3ojCnJDv3pTvw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD0Tn7Ut30smui/V8x6SX+AUEMqsO2bzkUilNOVJKmGmgIhALSVzuV3RD/TqMllWg1XfX5mYDVNrL3PxjZkDxepVsQT"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fsummon-application@0.43.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":351353},"main":"dist/esm/index.js","name":"@canonical/summon-application","type":"module","types":"dist/types/index.d.ts","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js"}},"gitHead":"79f70779057238803359b820183de972b4a1220c","license":"GPL-3.0","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json && bun ../../../scripts/copy-templates.ts src dist/esm","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","check:biome":"biome check","check:biome:fix":"biome check --write","check:webarchitect":"webarchitect library --license GPL-3.0"},"version":"0.43.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"da186efa-3ab8-4e71-88c7-7839dd46ba44"}},"homepage":"https://github.com/canonical/pragma-core#readme","repository":{"url":"git+https://github.com/canonical/pragma-core.git","type":"git"},"_npmVersion":"lerna/10.0.1/node@v24.21.0+x64 (linux)","description":"Summon generators for application scaffolding: application, domain, page, and wrapper","directories":{},"maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"abbiesims","email":"abbie.sims@canonical.com"},{"name":"ataku_b","email":"atakan99saglam@gmail.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"_nodeVersion":"24.21.0","dependencies":{"@canonical/task":"^0.43.0","@canonical/utils":"^0.43.0","@canonical/summon-core":"^0.43.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","typescript":"^7.0.2","@types/node":"^26.0.0","@biomejs/biome":"2.5.14","@canonical/biome-config":"^0.43.0","@canonical/webarchitect":"^0.43.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/summon-application_0.43.0_1790797604333_0.9967689874828787"}}},"time":{"created":"2026-07-02T21:43:16.862Z","modified":"2026-09-30T19:46:44.837Z","0.29.0-experimental.0":"2026-07-02T21:43:17.112Z","0.29.0":"2026-07-03T09:31:15.845Z","0.30.0":"2026-07-14T00:15:18.773Z","0.31.0":"2026-07-17T21:29:14.917Z","0.32.0":"2026-07-20T10:22:28.946Z","0.33.0":"2026-07-24T17:38:11.021Z","0.34.0":"2026-08-21T12:58:11.658Z","0.35.0":"2026-08-28T00:34:24.024Z","0.36.0":"2026-08-29T14:02:05.731Z","0.37.0":"2026-09-02T10:35:16.076Z","0.38.0":"2026-09-16T15:39:16.349Z","0.40.0":"2026-09-20T22:05:35.581Z","0.42.0":"2026-09-28T02:01:35.689Z","0.43.0-experimental.1":"2026-09-29T02:44:12.501Z","0.43.0":"2026-09-30T19:46:44.415Z"},"bugs":{"url":"https://github.com/canonical/pragma-core/issues"},"author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"GPL-3.0","homepage":"https://github.com/canonical/pragma-core#readme","repository":{"url":"git+https://github.com/canonical/pragma-core.git","type":"git"},"description":"Summon generators for application scaffolding: application, domain, page, and wrapper","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"abbiesims","email":"abbie.sims@canonical.com"},{"name":"ataku_b","email":"atakan99saglam@gmail.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"readme":"# @canonical/summon-application\n\nSummon generators for scaffolding application structure: full applications, domains, pages, and wrappers. Produces code aligned with the [boilerplate reference app](https://github.com/canonical/pragma-web/tree/main/apps/react/boilerplate-vite).\n\n## Generators\n\n### `summon application/react <name>`\n\nScaffolds a complete React application with routing, Storybook, and two starter domains — server-rendered by default, or client-only with `--rendering spa`.\n\n```bash\nsummon application/react my-app\nsummon application/react --no-forms my-app\nsummon application/react --intl my-app\nsummon application/react --relay my-app\nsummon application/react --rendering spa my-app\n```\n\nProduces:\n\n```\nmy-app/\n├── .storybook/\n│   ├── main.ts\n│   ├── preview.ts\n│   └── decorators/\n│       ├── withRouter.tsx    # Hash-based router decorator\n│       └── index.ts\n├── patches/                  # bun dependency patches (--relay only)\n├── src/\n│   ├── client/entry.tsx      # Client hydration\n│   ├── server/               # (omitted with --rendering spa)\n│   │   ├── entry.tsx         # SSR render\n│   │   ├── server.express.ts # Express dev server\n│   │   ├── server.bun.ts     # Bun dev server\n│   │   └── sitemap.ts\n│   ├── domains/\n│   │   ├── marketing/        # HomePage, GuidePage, routes\n│   │   ├── account/          # AccountPage, LoginPage, routes\n│   │   ├── contact/          # ContactPage, routes (omitted with --no-forms)\n│   │   └── catalog/          # CatalogPage, ProductList, ProductCard (--relay only)\n│   ├── lib/\n│   │   ├── Navigation/\n│   │   ├── ThemeSelector/\n│   │   ├── ExampleComponent/\n│   │   ├── LazyComponent/\n│   │   └── ClientOnly/       # SSR query guard (--relay only; omitted with --rendering spa)\n│   ├── i18n/                 # Locale config, message catalogs (--intl only)\n│   ├── relay/                # Environment factory, mock schema, __generated__ (--relay only)\n│   ├── styles/\n│   ├── routes.tsx\n│   └── vite-env.d.ts\n├── biome.json\n├── index.html\n├── package.json\n├── relay.config.json         # (--relay only)\n├── tsconfig.json\n└── vite.config.ts\n```\n\nForm components are ON by default: the contact domain and its `contactRoutes` wiring in `routes.tsx` ship unless `--no-forms` is passed.\n\n#### `--intl`: internationalisation\n\nOff by default. `--intl` adds locale negotiation (cookie > `Accept-Language` >\ndefault), per-locale message catalogs for `en`/`fr`/`ar` under `src/i18n/`, a\n`LocaleSelector` in the chrome, the Storybook locale toolbar and its `withI18n`\ndecorator, and translated copy across every page. Under `--rendering spa` the same\nnegotiation runs in the browser (cookie, then `navigator.languages`) because no\nserver saw the request.\n\n#### `--rendering spa`: client-only, no SSR layer\n\nOff by default — a scaffolded app server-renders. `--rendering spa` is subtractive: it\nemits a strict subset of the default tree, and nothing that is SPA-only.\n\nOmitted:\n\n- `src/server/` — the SSR entry, the compiled renderer, and the Express and Bun\n  dev/preview servers.\n- `src/sitemap/` — `/sitemap.xml` is a server-rendered route, and its renderer\n  is the getters' only consumer.\n- `src/lib/ClientOnly/` — an SSR-safety wrapper, so a no-op here.\n- The `dev:*`, `preview:*` and `build:server` scripts, `--ssrManifest` on\n  `build:client`, and the `express`, `@canonical/react-ssr`, `@types/express`,\n  `tsx` and `bun-types` dependencies.\n\nKept: the e2e suite. Its harness spawns a script and polls HTTP — `vite` and\n`vite preview` are servers too — so the matrix keeps its two non-SSR cells and\n`bun run test:e2e` still covers `dev` and `preview`.\n\n**What a SPA gives up.** The client router still performs the auth redirect,\nthe `/home` redirect and the not-found route. What is lost is the HTTP status\non a *cold* request — no 404, 301 or 302 from a server — plus `/sitemap.xml`\nand the server-painted first paint (`<html lang dir>` and the cookie-derived\ntheme class), so expect a brief default theme/locale flash. With `--relay` the\ncatalog page always suspends and fetches rather than arriving with prefetched\ndata. Static hosting needs a history-API fallback the scaffold does not\nconfigure.\n\n#### `--relay`: Relay (GraphQL) data layer\n\nThe `--relay` flag (off by default) mirrors the boilerplate's Relay data layer:\n\n- **`src/relay/`** — a `createEnvironment` factory built on\n  `relay-runtime-network`'s middleware pipeline: by default a local executor\n  resolves every operation in-process against the executable mock catalog\n  schema (`schema.graphql` + `schema.ts`), so the app runs with zero backend;\n  setting `VITE_GRAPHQL_URL` (or passing `graphqlUrl`) switches to posting\n  operations to a real endpoint. The relay-compiler artifacts in\n  `src/relay/__generated__/` are committed — deterministic outputs of the\n  committed schema — and regenerated with `bun run relay` (or `relay:watch`)\n  after any schema or `graphql` tag edit.\n- **`src/domains/catalog/`** — an example domain wiring `useLazyLoadQuery`\n  (`ProductList`) and a colocated `useFragment` (`ProductCard`) behind the\n  canonical Suspense + `ErrorBoundary` pairing, with Storybook stories mocked\n  via `@canonical/storybook-addon-relay` (`parameters.relay` mock resolvers +\n  play tests) and component tests against both the local schema and\n  `relay-test-utils`.\n- **`src/lib/ClientOnly/`** — keeps queries off the server render path until\n  SSR data serialization/hydration is supported: the server streams the\n  fallback and the browser fetches after hydration. It is emitted only with\n  `--relay` because the catalog page is its only consumer today.\n- **`patches/` + `\"patchedDependencies\"`** — emitted only for STANDALONE\n  apps. bun resolves `patchedDependencies` paths from the workspace root, so\n  when the target path is inside a bun workspace (detected by walking up for\n  a `package.json` whose `workspaces` globs cover the app) the workspace root\n  owns patching and the scaffold emits neither the `patches/` directory nor\n  the `patchedDependencies` block — an app-local block there would abort\n  `bun install` with \"Couldn't find patch file\". A standalone app cannot\n  inherit anyone's `patches/`, so three bun patches ship with the scaffold:\n  `react-relay@21.0.1` (cjs-module-lexer export hints so named imports\n  survive Node SSR externalisation), `relay-runtime@21.0.1` (real runtime\n  bindings for type-only names the compiler artifacts import as values —\n  `ConcreteRequest`, `ReaderFragment`, `FragmentRefs`), and\n  `relay-runtime-network@0.1.0` (fixes its broken package `imports` map —\n  temporary until the fixed upstream release lands, advl/lit-relay#32, after\n  which the patch and its `patchedDependencies` entry can be dropped).\n- **Wiring** — `RelayEnvironmentProvider` in both entries (one environment\n  per browser session on the client, a fresh one per request on the server),\n  `vite-plugin-relay-lite` in `vite.config.ts` (`codegen: false`; artifacts\n  are committed), the `relay` / `relay:watch` scripts, catalog route, nav\n  link, and sitemap entries, and the relay addon via `extraAddons` in\n  `.storybook/main.ts`.\n\n**Known caveats — not yet on npm.** `@canonical/storybook-addon-relay` and\nthe fixed `relay-runtime-network` release have not been published yet. A\nscaffolded app's install currently fails to resolve\n`@canonical/storybook-addon-relay` (404 from the registry), and the\n`relay-runtime-network` patch remains necessary until the fixed upstream\nrelease lands. The scaffold encodes the intended end state; a `--relay` app's\ninstall will only fully resolve once those packages publish.\n\n### `summon domain <name>`\n\nCreates a domain folder under `src/domains/` with a `MainPage` and a `routes.ts` barrel.\n\n```bash\nsummon domain billing\n```\n\nProduces:\n\n```\nsrc/domains/billing/\n├── MainPage.tsx    # Page component rendering <Head>\n└── routes.ts       # Route barrel with example route entry\n```\n\nAfter generating, import the domain routes in `src/routes.tsx` and wire them with `group()`:\n\n```tsx\nimport billingRoutes from \"#domains/billing/routes.js\";\n\nconst [billing] = group(publicLayout, [billingRoutes.billing] as const);\n```\n\n### `summon page <domain>/<name>`\n\nAdds a page component to an existing domain. It writes one new file and edits nothing else: routing the page stays a hand edit, so the domain's `routes.ts` and `src/routes.tsx` only ever contain what you wrote.\n\n```bash\nsummon page invoices/detail\n```\n\nProduces:\n\n```\nsrc/domains/invoices/\n└── DetailPage.tsx   # New page component\n```\n\nThe argument is exactly two segments, the domain and then the page name in kebab-case (`order-lines` makes `OrderLinesPage.tsx`); the domain folder already carries the domain's name, so the file is `DetailPage.tsx`, not `InvoicesDetailPage.tsx`. The generator refuses to run when the domain does not exist (create it first with `summon domain <name>`) or when the page file already exists.\n\nAfter writing the page, it prints what to add by hand. For `invoices/detail`, that starts with the import and a route entry for `src/domains/invoices/routes.ts` (the url is an example to adapt):\n\n```ts\nimport DetailPage from \"./DetailPage.js\";\n\n  detail: route({ url: \"/invoices/detail\", content: DetailPage }),\n```\n\nand ends with the wiring for `src/routes.tsx`, where the comments stand for what the app names itself:\n\n```tsx\nimport invoicesRoutes from \"#domains/invoices/routes.js\";\nconst [detail] = group(/* your wrapper() */, [invoicesRoutes.detail] as const);\nconst appRoutes = { /* …the routes already listed */ detail } as const;\n```\n\nThe full guide printed at run time also shows a url with a `:param` and the page signature that reads `params`, and says where typed search parameters go (a Standard Schema as the route's `search`). Its route examples are type-checked against `@canonical/router-core` in this package's tests. The page and the guide are rendered from the generator's `.ejs` templates.\n\n`--undo` deletes the page file. It touches nothing else, because the generator changed nothing else; remove any lines you pasted by hand yourself.\n\n### `summon wrapper <name>`\n\nCreates a layout wrapper component under `src/lib/`.\n\n```bash\nsummon wrapper sidebar\n```\n\nProduces:\n\n```\nsrc/lib/SidebarLayout/\n├── SidebarLayout.tsx   # Layout component with children prop\n└── index.ts            # Barrel export\n```\n\nUse the layout component in a `wrapper()` call in `routes.tsx`:\n\n```tsx\nimport SidebarLayout from \"#lib/SidebarLayout/index.js\";\n\nconst sidebarWrapper = wrapper({\n  id: \"sidebar\",\n  component: ({ children }) => <SidebarLayout>{children}</SidebarLayout>,\n});\n```\n\n## Conventions\n\nThe generators enforce the conventions established by the boilerplate:\n\n### File structure\n\n```\nsrc/\n├── client/                 # Client entry point (hydration; createRoot with --rendering spa)\n├── server/                 # Server entry points (Express, Bun) — omitted with --rendering spa\n├── domains/                # Feature domains\n│   ├── marketing/\n│   │   ├── HomePage.tsx\n│   │   ├── GuidePage.tsx\n│   │   └── routes.ts\n│   ├── account/\n│   │   ├── AccountPage.tsx\n│   │   ├── LoginPage.tsx\n│   │   └── routes.ts\n│   ├── contact/            # Omitted with --no-forms\n│   │   ├── ContactPage.tsx\n│   │   └── routes.ts\n│   └── catalog/            # When --relay is enabled\n│       ├── CatalogPage.tsx\n│       ├── ProductList.tsx\n│       ├── ProductCard.tsx\n│       ├── ErrorBoundary.tsx\n│       └── routes.ts\n├── lib/                    # Shared components\n│   ├── Navigation/\n│   └── SidebarLayout/\n├── relay/                  # When --relay is enabled\n│   ├── environment.ts      # Environment factory (local executor / HTTP)\n│   ├── schema.graphql      # Mock SDL (relay-compiler validates against it)\n│   ├── schema.ts           # Executable mock schema (graphql-js)\n│   └── __generated__/      # Committed relay-compiler artifacts\n├── styles/                 # CSS\n├── formatDocumentTitle.ts  # Appends the app name to every page's title\n└── routes.tsx              # Root route map, middleware, type registration\n```\n\n### Naming\n\n| Concept | Pattern | Example |\n|---------|---------|---------|\n| Page component | `{Name}Page.tsx` | `SettingsPage.tsx` |\n| Layout component | `{Name}Layout.tsx` | `SidebarLayout.tsx` |\n| Domain routes | `routes.ts` (not `.tsx`) | `src/domains/billing/routes.ts` |\n| Root routes | `routes.tsx` | `src/routes.tsx` |\n| Component folders | PascalCase | `src/lib/SidebarLayout/` |\n\n### Route definitions\n\nRoutes are flat objects using `route()` from `@canonical/router-core`:\n\n```ts\nconst routes = {\n  invoices: route({\n    url: \"/billing/invoices\",\n    content: InvoicesPage,\n  }),\n} as const;\n\nexport default routes;\n```\n\n- `content` receives the component directly (not a wrapper function)\n- Pages render `<Head>` from `@canonical/react-head` for title and meta — one\n  owner per document, so a layout or an entry never renders it\n- No `fetch()` / `warm()` unless needed for cache warming\n- No `.error` — use React error boundaries\n- Route files are `.ts` (no JSX in route definitions)\n\n### Storybook decorators\n\nThe generated application includes a `withRouter` decorator for stories that need a router context:\n\n```tsx\nimport withRouter from \"../decorators/withRouter.js\";\n\nconst meta = {\n  decorators: [withRouter()],\n} satisfies Meta;\n```\n\nPass custom routes when the story depends on specific route shapes:\n\n```tsx\nimport { appRoutes } from \"../../routes.js\";\n\nconst meta = {\n  decorators: [withRouter({ routes: appRoutes })],\n} satisfies Meta;\n```\n\nThe decorator uses `createHashRouter` from `@canonical/router-core`, which stores routes in `window.location.hash` — suitable for Storybook and static environments where no server handles URL paths.\n\n### Wrappers\n\nWrapper components are standard React components with a `children` prop. They become routable wrappers via `wrapper()` + `group()` in `routes.tsx`:\n\n```tsx\nconst layout = wrapper({\n  id: \"sidebar\",\n  component: ({ children }) => <SidebarLayout>{children}</SidebarLayout>,\n});\n\nconst [invoices, payments] = group(layout, [\n  billingRoutes.invoices,\n  billingRoutes.payments,\n] as const);\n```\n\n### Type registration\n\nRegister routes once in `routes.tsx` for global type inference:\n\n```tsx\ndeclare module \"@canonical/router-react\" {\n  interface RouterRegister {\n    routes: typeof appRoutes;\n  }\n}\n```\n\nThis enables typed `<Link to=\"invoices\">`, `router.navigate(\"invoices\")`, and `router.buildPath(\"invoices\")`.\n\n## Open questions\n\nDesign decisions about the generated output that are not yet settled:\n\n- **A `--rendering spa` app has no sitemap.** `/sitemap.xml` is a server-rendered route, so\n  `--rendering spa` drops `src/sitemap/` entirely. The getters themselves are portable — a\n  build step could write a static `public/sitemap.xml` and a static host would serve\n  it fine — but that is new tooling nothing else needs, and keeping the renderer\n  would hold `@canonical/react-ssr` as a dependency for otherwise-dead code.\n  **Open:** whether SEO-facing SPAs should get a build-time sitemap emitter.\n\n- **Pinned pragma version is fetched at summon time.** Generated apps pin the pragma\n  workspace packages (`react-ds-global`, `router-core`, `styles`, …) at `^<latest>`, where\n  `<latest>` is queried from the npm registry when the app is scaffolded\n  (`resolvePragmaVersion` in `src/shared/versions.ts`, via `npm view`). If the registry is\n  unreachable it falls back to `^<installed generator version>` — safe because\n  `@canonical/summon-application` is released in lockstep with those packages. Note\n  `@canonical/design-tokens` is versioned separately and is *not* covered here (it arrives\n  transitively via `@canonical/styles`). **Open:** whether to cache the lookup or let users\n  pin explicitly for reproducible offline scaffolding.\n\n- **Two static-asset folders (`src/assets/` + `public/`).** The generated app ships both,\n  and `.storybook/main.ts` lists `staticDirs: [\"../src/assets\", \"../public\"]` to match the\n  `@canonical/react-ds-global` convention. The two serve different roles under Vite —\n  `src/assets/` for assets *imported in code* (hashed/optimized, dropped if unused), `public/`\n  for files referenced by fixed URL (favicon, `robots.txt`, served as-is, unhashed). **Open:**\n  whether a scaffolded app genuinely needs both by default, or whether one (likely just\n  `public/` for a favicon) is enough and `src/assets/` should be added only when the app\n  actually imports an asset. Currently both ship with `.gitkeep` placeholders.\n","readmeFilename":"README.md"}