{"_id":"@canonical/summon-core","_rev":"31-90b4974adc23f9fd05036f1d720456ac","name":"@canonical/summon-core","dist-tags":{"latest":"0.43.0","experimental":"0.43.0-experimental.1"},"versions":{"0.18.0":{"name":"@canonical/summon-core","version":"0.18.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"GPL-3.0","_id":"@canonical/summon-core@0.18.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":"f9ebe79af02ff2cdc44cba70dc663f51c2e599e1","tarball":"https://registry.npmjs.org/@canonical/summon-core/-/summon-core-0.18.0.tgz","fileCount":12,"integrity":"sha512-K4gRV7z9+G5cE1VI4aKRBm7ELcJZE/Y+vaz1+UXNlJ1m8J1C4cMVJLK3bQvjVU2pr9i9XGOGjLS1BCPOgMkyOQ==","signatures":[{"sig":"MEYCIQD1G8kaWViJIZuj6XODIAtJkbgI9nEK2CuyqXNW517UGwIhAJ+rOkHZGp4BhOiOniWFwyx+5dhCSZZhgOCsI6tINOHU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":78244},"type":"module","types":"src/index.ts","module":"src/index.ts","exports":{".":{"types":"./src/index.ts","import":"./src/index.ts"}},"gitHead":"e5434d05421090cb77c227ccaa6025983c9a292c","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","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","test:watch":"vitest","check:biome":"biome check","test:coverage":"vitest run --coverage","check:biome:fix":"biome check --write","check:webarchitect":"webarchitect tool-ts"},"_npmUser":{"name":"mariadias143","email":"marianovadias@gmail.com"},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"11.11.0","description":"Code generation framework: generator definitions, templates, stamps, discovery. Built on @canonical/task.","directories":{},"_nodeVersion":"25.8.0","dependencies":{"ejs":"^4.0.1","chalk":"^5.6.2","@canonical/task":"^0.18.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/bun":"^1.3.10","@types/ejs":"^3.1.5","typescript":"^5.9.3","@types/node":"^24.12.0","@biomejs/biome":"2.4.6","@canonical/biome-config":"^0.18.0","@canonical/webarchitect":"^0.18.0","@canonical/typescript-config":"^0.18.0"},"_npmOperationalInternal":{"tmp":"tmp/summon-core_0.18.0_1774527872393_0.9947625464083654","host":"s3://npm-registry-packages-npm-production"}},"0.20.0":{"name":"@canonical/summon-core","version":"0.20.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"GPL-3.0","_id":"@canonical/summon-core@0.20.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":"09acbfeb6d395c6b3bf3ba2a2e1973d52180f72d","tarball":"https://registry.npmjs.org/@canonical/summon-core/-/summon-core-0.20.0.tgz","fileCount":13,"integrity":"sha512-RjF6Xidv5prLqu86nVocZ0ywESQOKHqGAsboDroIywz3/18MR+6h2THI1vP+UZNX6/erlaTKB5oiLRfNtn5ZQA==","signatures":[{"sig":"MEUCIHZtzrStAuQ4/VAAkKaVnDKghY9CLanJhOAJRMdgnH0MAiEApO8ogYgoFk41pZnIX+SczV1lsM8jA4dN8YGvNK2AUCY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85934},"type":"module","types":"src/index.ts","module":"src/index.ts","exports":{".":{"types":"./src/index.ts","import":"./src/index.ts"}},"gitHead":"1aee634b278922f2aa1cfe2a11d3b14e64280905","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","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","test:watch":"vitest","check:biome":"biome check","test:coverage":"vitest run --coverage","check:biome:fix":"biome check --write","check:webarchitect":"webarchitect tool-ts"},"_npmUser":{"name":"mariadias143","email":"marianovadias@gmail.com"},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.14.0+x64 (linux)","description":"Code generation framework: generator definitions, templates, stamps, discovery. Built on @canonical/task.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ejs":"^4.0.1","chalk":"^5.6.2","@canonical/task":"^0.20.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/bun":"^1.3.10","@types/ejs":"^3.1.5","typescript":"^5.9.3","@types/node":"^24.12.0","@biomejs/biome":"2.4.6","@canonical/biome-config":"^0.20.0","@canonical/webarchitect":"^0.20.0","@canonical/typescript-config":"^0.20.0"},"_npmOperationalInternal":{"tmp":"tmp/summon-core_0.20.0_1774535669313_0.2081654237680246","host":"s3://npm-registry-packages-npm-production"}},"0.21.0":{"name":"@canonical/summon-core","version":"0.21.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"GPL-3.0","_id":"@canonical/summon-core@0.21.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":"88790a43fbf529285ca6b13283069d131cab6561","tarball":"https://registry.npmjs.org/@canonical/summon-core/-/summon-core-0.21.0.tgz","fileCount":43,"integrity":"sha512-oO3J75cR2NAvTbZTfpFESVptGdqQov7ux8fg9eFwHgdioFLM/LJAYsbopMdDU1Znug0M9D2trFEv1x64A3Pj+w==","signatures":[{"sig":"MEYCIQC2Z9m2xvLmnMM7DIa2zYxKM8JJSiQVmHj3U0DhzqEpaQIhALGu24bYLfBkIFxRVwI+0V5pAcIzDjTlTMVBfhOHlBaK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":86755},"type":"module","types":"src/index.ts","module":"src/index.ts","exports":{".":{"types":"./src/index.ts","import":"./src/index.ts"}},"gitHead":"4a39c954e7bbad4903397f8371f801982034a26d","imports":{"#stamp":"./src/stamp/index.ts","#types":"./src/types/index.ts","#template":"./src/template/index.ts","#discovery":"./src/discovery/index.ts"},"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","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","test:watch":"vitest","check:biome":"biome check","test:coverage":"vitest run --coverage","check:biome:fix":"biome check --write","check:webarchitect":"webarchitect tool-ts"},"_npmUser":{"name":"mariadias143","email":"marianovadias@gmail.com"},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.14.0+x64 (linux)","description":"Code generation framework: generator definitions, templates, stamps, discovery. Built on @canonical/task.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ejs":"^5.0.0","chalk":"^5.6.2","@canonical/task":"^0.21.0","@canonical/utils":"^0.21.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/bun":"^1.3.10","@types/ejs":"^3.1.5","typescript":"^5.9.3","@types/node":"^24.12.0","@biomejs/biome":"2.4.9","@canonical/biome-config":"^0.21.0","@canonical/webarchitect":"^0.21.0","@canonical/typescript-config":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/summon-core_0.21.0_1775008258200_0.7643258352610063","host":"s3://npm-registry-packages-npm-production"}},"0.22.0":{"name":"@canonical/summon-core","version":"0.22.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"GPL-3.0","_id":"@canonical/summon-core@0.22.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":"aaf80f8160341ca1083524c10adf08938b9382ab","tarball":"https://registry.npmjs.org/@canonical/summon-core/-/summon-core-0.22.0.tgz","fileCount":43,"integrity":"sha512-awNipjNeq2c7xivRxLJzTTaXRISiCYsiVqVUTRy8XfZmRWr0qc2JEw6jKqrq4GvQnQ4byUYoWEH+DCrQLP9PGA==","signatures":[{"sig":"MEUCIQC5DNZJj6KtvqMjggPk1XzjH2DDZG/mC95ErRaByiiQMAIgY9kpifH0AyDO9s2iCAqsEk9rwvUjEehJ0HpQ0vnnQr0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":86755},"type":"module","types":"src/index.ts","module":"src/index.ts","exports":{".":{"types":"./src/index.ts","import":"./src/index.ts"}},"gitHead":"99e187cf46d8bd7f3933705322fa4ab2d4a711e7","imports":{"#stamp":"./src/stamp/index.ts","#types":"./src/types/index.ts","#template":"./src/template/index.ts","#discovery":"./src/discovery/index.ts"},"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","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","test:watch":"vitest","check:biome":"biome check","test:coverage":"vitest run --coverage","check:biome:fix":"biome check --write","check:webarchitect":"webarchitect tool-ts"},"_npmUser":{"name":"mariadias143","email":"marianovadias@gmail.com"},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.14.1+x64 (linux)","description":"Code generation framework: generator definitions, templates, stamps, discovery. Built on @canonical/task.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ejs":"^5.0.0","chalk":"^5.6.2","@canonical/task":"^0.22.0","@canonical/utils":"^0.22.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/bun":"^1.3.10","@types/ejs":"^3.1.5","typescript":"^5.9.3","@types/node":"^24.12.0","@biomejs/biome":"2.4.9","@canonical/biome-config":"^0.22.0","@canonical/webarchitect":"^0.22.0","@canonical/typescript-config":"^0.22.0"},"_npmOperationalInternal":{"tmp":"tmp/summon-core_0.22.0_1775224858971_0.8195055064754526","host":"s3://npm-registry-packages-npm-production"}},"0.23.0":{"name":"@canonical/summon-core","version":"0.23.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"GPL-3.0","_id":"@canonical/summon-core@0.23.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":"2e28fed6861f8962cf8840ffbb88433ca09a42f5","tarball":"https://registry.npmjs.org/@canonical/summon-core/-/summon-core-0.23.0.tgz","fileCount":43,"integrity":"sha512-k6Kx6eLfMdfFSZikoEy4JBhpCEh12dBfxZHhPqnwhj9WSB68EA0t6vyuBekBzYrJBwA0hu9vQDhYxtgwWPcL6Q==","signatures":[{"sig":"MEQCIEugJFuo8J4xVb5kwVOgnlyhkIe+FVzinh+bnLfCskPPAiBNuFViSpT6VlCsy2wl4XWwRp7rH19t9j0Oyv9DFfHtrQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":86755},"type":"module","types":"src/index.ts","module":"src/index.ts","exports":{".":{"types":"./src/index.ts","import":"./src/index.ts"}},"gitHead":"742f5396bc3f9ca01a49646ed5b67acfc9d001d2","imports":{"#stamp":"./src/stamp/index.ts","#types":"./src/types/index.ts","#template":"./src/template/index.ts","#discovery":"./src/discovery/index.ts"},"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","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","test:watch":"vitest","check:biome":"biome check","test:coverage":"vitest run --coverage","check:biome:fix":"biome check --write","check:webarchitect":"webarchitect tool-ts"},"_npmUser":{"name":"mariadias143","email":"marianovadias@gmail.com"},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.14.1+x64 (linux)","description":"Code generation framework: generator definitions, templates, stamps, discovery. Built on @canonical/task.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ejs":"^5.0.0","chalk":"^5.6.2","@canonical/task":"^0.23.0","@canonical/utils":"^0.23.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/bun":"^1.3.10","@types/ejs":"^3.1.5","typescript":"^5.9.3","@types/node":"^24.12.0","@biomejs/biome":"2.4.9","@canonical/biome-config":"^0.23.0","@canonical/webarchitect":"^0.23.0","@canonical/typescript-config":"^0.23.0"},"_npmOperationalInternal":{"tmp":"tmp/summon-core_0.23.0_1775548389836_0.027680537102842795","host":"s3://npm-registry-packages-npm-production"}},"0.24.0":{"name":"@canonical/summon-core","version":"0.24.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"GPL-3.0","_id":"@canonical/summon-core@0.24.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":"79eaa40debde717cf993fbb7e9445c779c7f0fb5","tarball":"https://registry.npmjs.org/@canonical/summon-core/-/summon-core-0.24.0.tgz","fileCount":51,"integrity":"sha512-/ZJA2/sB/x/vV9p4at2nA4edibJwbuNJIbofe44e1u/oGW6buaEpRP4uGIgLkasqRYuVrdyUcStAaPJfpP3QqQ==","signatures":[{"sig":"MEUCIQDZneF5aZUL/Tz9Ox4DuPIJy6qPcO/hZkwmlL3tNGEVXAIgMthM3GXWVodq4i79EyP4dre7eipiZqDZ1Mnl4dnoH/w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":132702},"type":"module","types":"src/index.ts","module":"src/index.ts","exports":{".":{"types":"./src/index.ts","import":"./src/index.ts"}},"gitHead":"28565e3591ad80525b62bd7be6343d1f12ebf4d0","imports":{"#stamp":"./src/stamp/index.ts","#types":"./src/types/index.ts","#template":"./src/template/index.ts","#discovery":"./src/discovery/index.ts"},"scripts":{"test":"bun run test:vitest","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","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","check:biome":"biome check","test:vitest":"vitest run --coverage","check:biome:fix":"biome check --write","test:vitest:watch":"vitest","check:webarchitect":"webarchitect tool-ts"},"_npmUser":{"name":"mariadias143","email":"marianovadias@gmail.com"},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.14.1+x64 (linux)","description":"Code generation framework: generator definitions, templates, stamps, discovery. Built on @canonical/task.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ejs":"^5.0.0","chalk":"^5.6.2","@canonical/task":"^0.24.0","@canonical/utils":"^0.24.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/bun":"^1.3.10","@types/ejs":"^3.1.5","typescript":"^5.9.3","@types/node":"^24.12.0","@biomejs/biome":"2.4.9","@canonical/biome-config":"^0.24.0","@canonical/webarchitect":"^0.24.0","@canonical/typescript-config":"^0.24.0"},"_npmOperationalInternal":{"tmp":"tmp/summon-core_0.24.0_1776090170906_0.3202317603569651","host":"s3://npm-registry-packages-npm-production"}},"0.25.0":{"name":"@canonical/summon-core","version":"0.25.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"GPL-3.0","_id":"@canonical/summon-core@0.25.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":"f22e0e851a19f1dfaf8d5d5df62d1908e9bb84ab","tarball":"https://registry.npmjs.org/@canonical/summon-core/-/summon-core-0.25.0.tgz","fileCount":51,"integrity":"sha512-eV6SuBIVy6QcpU2tIkTWVTEE+RStuPr4UfjE1t+gpibl5Pv3CsGc5FqbysosWydvTykfe4GLPsc9RmMX2jxcrQ==","signatures":[{"sig":"MEYCIQCtR9IulhiPCxWSbymX0Di1IGr8wrh4SZhXoh9xHr9dAQIhAIcOAWMkkFcmrN3I66rBzyqeeyHhqbqT8nKzGdKptwRB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":132702},"type":"module","types":"src/index.ts","module":"src/index.ts","exports":{".":{"types":"./src/index.ts","import":"./src/index.ts"}},"gitHead":"c6005a14c8210772ad8c589a2b473946780b6c20","imports":{"#stamp":"./src/stamp/index.ts","#types":"./src/types/index.ts","#template":"./src/template/index.ts","#discovery":"./src/discovery/index.ts"},"scripts":{"test":"bun run test:vitest","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","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","check:biome":"biome check","test:vitest":"vitest run --coverage","check:biome:fix":"biome check --write","test:vitest:watch":"vitest","check:webarchitect":"webarchitect tool-ts"},"_npmUser":{"name":"mariadias143","email":"marianovadias@gmail.com"},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.14.1+x64 (linux)","description":"Code generation framework: generator definitions, templates, stamps, discovery. Built on @canonical/task.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ejs":"^5.0.0","chalk":"^5.6.2","@canonical/task":"^0.25.0","@canonical/utils":"^0.25.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/bun":"^1.3.10","@types/ejs":"^3.1.5","typescript":"^5.9.3","@types/node":"^24.12.0","@biomejs/biome":"2.4.9","@canonical/biome-config":"^0.25.0","@canonical/webarchitect":"^0.25.0","@canonical/typescript-config":"^0.25.0"},"_npmOperationalInternal":{"tmp":"tmp/summon-core_0.25.0_1776414450275_0.4524966549228451","host":"s3://npm-registry-packages-npm-production"}},"0.26.0":{"name":"@canonical/summon-core","version":"0.26.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"GPL-3.0","_id":"@canonical/summon-core@0.26.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":"49da7f41a4b5777afcb07be05cca3de36cc93493","tarball":"https://registry.npmjs.org/@canonical/summon-core/-/summon-core-0.26.0.tgz","fileCount":51,"integrity":"sha512-K2vVeCabtGKWnibsnhI+mANXCD+ozGpfdyvg8sVFk09NggC+Arspght4g/fgDgFnSqikzWgdcG18UJanpb7ySA==","signatures":[{"sig":"MEYCIQCUow8thSfytveczAc4emBC30g+y01wQ8HwDJXqpRihIAIhAOpE2nSHKjIVUMvcreyVbBOFGNcLVXnIdITBASD4cAvc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":132702},"type":"module","types":"src/index.ts","module":"src/index.ts","exports":{".":{"types":"./src/index.ts","import":"./src/index.ts"}},"gitHead":"55fece1380dba8dcd3a88af443dd509d9aaaccb2","imports":{"#stamp":"./src/stamp/index.ts","#types":"./src/types/index.ts","#template":"./src/template/index.ts","#discovery":"./src/discovery/index.ts"},"scripts":{"test":"bun run test:vitest","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","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","check:biome":"biome check","test:vitest":"vitest run --coverage","check:biome:fix":"biome check --write","test:vitest:watch":"vitest","check:webarchitect":"webarchitect tool-ts"},"_npmUser":{"name":"mariadias143","email":"marianovadias@gmail.com"},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.14.1+x64 (linux)","description":"Code generation framework: generator definitions, templates, stamps, discovery. Built on @canonical/task.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ejs":"^5.0.0","chalk":"^5.6.2","@canonical/task":"^0.26.0","@canonical/utils":"^0.26.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/bun":"^1.3.10","@types/ejs":"^3.1.5","typescript":"^5.9.3","@types/node":"^24.12.0","@biomejs/biome":"2.4.9","@canonical/biome-config":"^0.26.0","@canonical/webarchitect":"^0.26.0","@canonical/typescript-config":"^0.26.0"},"_npmOperationalInternal":{"tmp":"tmp/summon-core_0.26.0_1777070646490_0.024487366785148845","host":"s3://npm-registry-packages-npm-production"}},"0.27.0":{"name":"@canonical/summon-core","version":"0.27.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"GPL-3.0","_id":"@canonical/summon-core@0.27.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":"dcdbedf84ea4bdc672eb8702eeaf30fcbeb31dda","tarball":"https://registry.npmjs.org/@canonical/summon-core/-/summon-core-0.27.0.tgz","fileCount":51,"integrity":"sha512-jaFRkRqh2bcoWsHtKTlM2ThOu9TgOXtrbODvARnUhC8OvzcKextjHkpnCiVsC+OElXu3FGl1ltMHlsGvL9Kiww==","signatures":[{"sig":"MEUCIQDxRJ1JAdv+nAljSFkoOyQZQUphJZkYs2bDMaECVrzamQIgV9TM3KcS4sNygIkmMRvxVDJlhucq2QFkory/EjT0Lvo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":132702},"type":"module","types":"src/index.ts","module":"src/index.ts","exports":{".":{"types":"./src/index.ts","import":"./src/index.ts"}},"gitHead":"5df5709bf7cb6f2016be2f6eba8391637e2e2a0c","imports":{"#stamp":"./src/stamp/index.ts","#types":"./src/types/index.ts","#template":"./src/template/index.ts","#discovery":"./src/discovery/index.ts"},"scripts":{"test":"bun run test:vitest","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","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","check:biome":"biome check","test:vitest":"vitest run --coverage","check:biome:fix":"biome check --write","test:vitest:watch":"vitest","check:webarchitect":"webarchitect tool-ts"},"_npmUser":{"name":"mariadias143","email":"marianovadias@gmail.com"},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.14.1+x64 (linux)","description":"Code generation framework: generator definitions, templates, stamps, discovery. Built on @canonical/task.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ejs":"^5.0.0","chalk":"^5.6.2","@canonical/task":"^0.27.0","@canonical/utils":"^0.27.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/bun":"^1.3.10","@types/ejs":"^3.1.5","typescript":"^5.9.3","@types/node":"^24.12.0","@biomejs/biome":"2.4.9","@canonical/biome-config":"^0.27.0","@canonical/webarchitect":"^0.27.0","@canonical/typescript-config":"^0.27.0"},"_npmOperationalInternal":{"tmp":"tmp/summon-core_0.27.0_1777454203199_0.31413412657097894","host":"s3://npm-registry-packages-npm-production"}},"0.27.1-experimental.0":{"name":"@canonical/summon-core","version":"0.27.1-experimental.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"GPL-3.0","_id":"@canonical/summon-core@0.27.1-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":"b244e7efa3015e9f3c31562bc94e4876e9b0b996","tarball":"https://registry.npmjs.org/@canonical/summon-core/-/summon-core-0.27.1-experimental.0.tgz","fileCount":51,"integrity":"sha512-Xd2bP+4by6Y4vGxYYvx26UO6aGBiwvC7OH8mIeu8u8MiUvL9ROVRnvIQEOm1P6WrUU1ylSGlqI3+B8Xqj8lvJA==","signatures":[{"sig":"MEYCIQD30mAUtQFVUdpFtQfacapI7A8MGCZ2N+4YhdOt1vSCpQIhAO1BTgs1bTFD5bnm6ERkJ7k6EwDsm5fHUb6ddBro8Mok","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fsummon-core@0.27.1-experimental.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":132841},"type":"module","types":"src/index.ts","module":"src/index.ts","exports":{".":{"types":"./src/index.ts","import":"./src/index.ts"}},"gitHead":"d3f5b9aab7bec07fce40a12b45097d28d3cf0201","imports":{"#stamp":"./src/stamp/index.ts","#types":"./src/types/index.ts","#template":"./src/template/index.ts","#discovery":"./src/discovery/index.ts"},"scripts":{"test":"bun run test:vitest","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","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","check:biome":"biome check","test:vitest":"vitest run --coverage","check:biome:fix":"biome check --write","test:vitest:watch":"vitest","check:webarchitect":"webarchitect tool-ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:40056d4b-3267-48ca-8509-f8a6d4c32884"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.15.0+x64 (linux)","description":"Code generation framework: generator definitions, templates, stamps, discovery. Built on @canonical/task.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ejs":"^5.0.0","chalk":"^5.6.2","@canonical/task":"^0.27.1-experimental.0","@canonical/utils":"^0.27.1-experimental.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/bun":"^1.3.10","@types/ejs":"^3.1.5","typescript":"^5.9.3","@types/node":"^24.12.0","@biomejs/biome":"2.4.9","@canonical/biome-config":"^0.27.1-experimental.0","@canonical/webarchitect":"^0.27.1-experimental.0","@canonical/typescript-config":"^0.27.1-experimental.0"},"_npmOperationalInternal":{"tmp":"tmp/summon-core_0.27.1-experimental.0_1779386197274_0.7927867497097125","host":"s3://npm-registry-packages-npm-production"}},"0.28.0":{"name":"@canonical/summon-core","version":"0.28.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"GPL-3.0","_id":"@canonical/summon-core@0.28.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":"51bdb23b53e78e268a687fc339bd25611c28c887","tarball":"https://registry.npmjs.org/@canonical/summon-core/-/summon-core-0.28.0.tgz","fileCount":51,"integrity":"sha512-q8oYP+LtQQJ7sCqB0E2Z+okLHGc4eyIxj11pAjQF84zVcq7imnRCy4/Egav9wAZVllY9x4mRTUfzJUa+yeAzww==","signatures":[{"sig":"MEUCIA6gFAL7YYilYJ/U1bQnCyz5jp8CaO7/6xtk88ci25vpAiEAjBD4BzLTM2aIEzL5DZgyqKz64hjxWSArKJt+cv4f/Pg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fsummon-core@0.28.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":134561},"type":"module","types":"src/index.ts","module":"src/index.ts","exports":{".":{"types":"./src/index.ts","import":"./src/index.ts"}},"gitHead":"8297d72122bcba903f7e8833cb23ccbaa164ed56","imports":{"#stamp":"./src/stamp/index.ts","#types":"./src/types/index.ts","#template":"./src/template/index.ts","#discovery":"./src/discovery/index.ts"},"scripts":{"test":"bun run test:vitest","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","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","check:biome":"biome check","test:vitest":"vitest run --coverage","check:biome:fix":"biome check --write","test:vitest:watch":"vitest","check:webarchitect":"webarchitect tool-ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:40056d4b-3267-48ca-8509-f8a6d4c32884"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.16.0+x64 (linux)","description":"Code generation framework: generator definitions, templates, stamps, discovery. Built on @canonical/task.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ejs":"^5.0.0","chalk":"^5.6.2","@canonical/task":"^0.28.0","@canonical/utils":"^0.28.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/bun":"^1.3.10","@types/ejs":"^3.1.5","typescript":"^5.9.3","@types/node":"^24.12.0","@biomejs/biome":"2.4.9","@canonical/biome-config":"^0.28.0","@canonical/webarchitect":"^0.28.0","@canonical/typescript-config":"^0.28.0"},"_npmOperationalInternal":{"tmp":"tmp/summon-core_0.28.0_1781617497408_0.4603069090398828","host":"s3://npm-registry-packages-npm-production"}},"0.29.0-experimental.0":{"name":"@canonical/summon-core","version":"0.29.0-experimental.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"GPL-3.0","_id":"@canonical/summon-core@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":"deaf4ecc02266708324f113b56bc0597b6717587","tarball":"https://registry.npmjs.org/@canonical/summon-core/-/summon-core-0.29.0-experimental.0.tgz","fileCount":51,"integrity":"sha512-YJ0uj1J/CWJt62rihZOcK71FTRWIq4IdCQAdNJUbEpXNCgOWY2TpkBdq+cWVv3LNvBLyPSdV+kAuyaJ3aQLWaA==","signatures":[{"sig":"MEQCIBRsTfMAkHcNh1LwUn1aPRellSYO4R3lKRlr4LbuqOK6AiBYnUa9On3z19EuIGsUg77mV174Qrs/J5MW97ucwu56hA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fsummon-core@0.29.0-experimental.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":134621},"type":"module","types":"src/index.ts","module":"src/index.ts","exports":{".":{"types":"./src/index.ts","import":"./src/index.ts"}},"gitHead":"eda67fea634a79b9f77910d3106219efc9b30136","imports":{"#stamp":"./src/stamp/index.ts","#types":"./src/types/index.ts","#template":"./src/template/index.ts","#discovery":"./src/discovery/index.ts"},"scripts":{"test":"bun run test:vitest","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","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","check:biome":"biome check","test:vitest":"vitest run --coverage","check:biome:fix":"biome check --write","test:vitest:watch":"vitest","check:webarchitect":"webarchitect tool-ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:40056d4b-3267-48ca-8509-f8a6d4c32884"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.16.0+x64 (linux)","description":"Code generation framework: generator definitions, templates, stamps, discovery. Built on @canonical/task.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ejs":"^5.0.0","chalk":"^5.6.2","@canonical/task":"^0.29.0-experimental.0","@canonical/utils":"^0.29.0-experimental.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/bun":"^1.3.10","@types/ejs":"^3.1.5","typescript":"^5.9.3","@types/node":"^24.12.0","@biomejs/biome":"2.4.9","@canonical/biome-config":"^0.28.0","@canonical/webarchitect":"^0.29.0-experimental.0","@canonical/typescript-config":"^0.28.0"},"_npmOperationalInternal":{"tmp":"tmp/summon-core_0.29.0-experimental.0_1782338257413_0.4624724050015243","host":"s3://npm-registry-packages-npm-production"}},"0.29.0":{"name":"@canonical/summon-core","version":"0.29.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"GPL-3.0","_id":"@canonical/summon-core@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":"fa12e61068f7b23d3de6c748d85a1aada1b09e10","tarball":"https://registry.npmjs.org/@canonical/summon-core/-/summon-core-0.29.0.tgz","fileCount":51,"integrity":"sha512-gydXxhlpmvIaDYNQE0B1FQ+pnuGp4h4GNdKswZl5qkuJpqkFHgS9ZHzPMYFyoApRAomedOl3AKgDKHJJSxKX8g==","signatures":[{"sig":"MEUCIQDB3HODU/+5pmqis5Krgi+JqHUsS8Kv+0cYUT4snB+/aQIgMbIcFlqVaa2USng5iaxf4DhmZqtoBDPKK05EbghOp1g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fsummon-core@0.29.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":134561},"type":"module","types":"src/index.ts","module":"src/index.ts","exports":{".":{"types":"./src/index.ts","import":"./src/index.ts"}},"gitHead":"535302c1e1e5dd8fa9bc2da4144de57ec4e63005","imports":{"#stamp":"./src/stamp/index.ts","#types":"./src/types/index.ts","#template":"./src/template/index.ts","#discovery":"./src/discovery/index.ts"},"scripts":{"test":"bun run test:vitest","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","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","check:biome":"biome check","test:vitest":"vitest run --coverage","check:biome:fix":"biome check --write","test:vitest:watch":"vitest","check:webarchitect":"webarchitect tool-ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:40056d4b-3267-48ca-8509-f8a6d4c32884"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.18.0+x64 (linux)","description":"Code generation framework: generator definitions, templates, stamps, discovery. Built on @canonical/task.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ejs":"^5.0.0","chalk":"^5.6.2","@canonical/task":"^0.29.0","@canonical/utils":"^0.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/bun":"^1.3.10","@types/ejs":"^3.1.5","typescript":"^5.9.3","@types/node":"^24.12.0","@biomejs/biome":"2.4.9","@canonical/biome-config":"^0.29.0","@canonical/webarchitect":"^0.29.0","@canonical/typescript-config":"^0.29.0"},"_npmOperationalInternal":{"tmp":"tmp/summon-core_0.29.0_1783071071598_0.15581097550457934","host":"s3://npm-registry-packages-npm-production"}},"0.30.0":{"name":"@canonical/summon-core","version":"0.30.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"GPL-3.0","_id":"@canonical/summon-core@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":"747049d2eafb163dd5becc8f946e34f8d5049563","tarball":"https://registry.npmjs.org/@canonical/summon-core/-/summon-core-0.30.0.tgz","fileCount":135,"integrity":"sha512-RMtboliCQHaw/3EvuWGIFBxQUYlX4rVWZRY3Q+/ztc5yPmgxs4+ZQPPt2kYQGRDFGSunt9Hinb8u5Fl/dTG0yw==","signatures":[{"sig":"MEUCIQD+Nlxl9ZKnEGu30xqtC3/VEUhDsIYrQrD0G0J8e4OWUwIgVpMYq+YgkMqpmniUOoPkk/Vim42C5Eufey0Y2dNqHo4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fsummon-core@0.30.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":115049},"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":"bun run test:vitest","build":"tsc -p tsconfig.build.json","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","test:vitest":"vitest run --coverage","check:biome:fix":"biome check --write","test:vitest:watch":"vitest","check:webarchitect":"webarchitect library --license GPL-3.0"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:40056d4b-3267-48ca-8509-f8a6d4c32884"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.18.0+x64 (linux)","description":"Code generation framework: generator definitions, templates, stamps, discovery. Built on @canonical/task.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ejs":"^5.0.0","chalk":"^5.6.2","@canonical/task":"^0.30.0","@canonical/utils":"^0.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/bun":"^1.3.10","@types/ejs":"^3.1.5","typescript":"^5.9.3","@types/node":"^24.12.0","@biomejs/biome":"2.4.9","@canonical/biome-config":"^0.30.0","@canonical/webarchitect":"^0.30.0","@canonical/typescript-config":"^0.30.0"},"_npmOperationalInternal":{"tmp":"tmp/summon-core_0.30.0_1783988114862_0.9613713802535078","host":"s3://npm-registry-packages-npm-production"}},"0.31.0":{"name":"@canonical/summon-core","version":"0.31.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"GPL-3.0","_id":"@canonical/summon-core@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":"6c75296bfbbd1acf23c9f9851b5b215822801adf","tarball":"https://registry.npmjs.org/@canonical/summon-core/-/summon-core-0.31.0.tgz","fileCount":135,"integrity":"sha512-e9nVYvNyTAPNUvzMEnqxVBlNvbngcC+Uoep6FVp94JnUI18Oi0VScZ9NYPjQxToXB7RgAu5FxZt8bKH5Sizjpg==","signatures":[{"sig":"MEYCIQD0Ip805xBF6MBn68bWmVK6wFaPuXmgcwqDZmLmC0T7qQIhAOfCxeaJm/roXy+vNLvYim0ZxDWYH6S3Mumlus7OmHIc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fsummon-core@0.31.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":115145},"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":"bun run test:vitest","build":"tsc -p tsconfig.build.json","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","test:vitest":"vitest run --coverage","check:biome:fix":"biome check --write","test:vitest:watch":"vitest","check:webarchitect":"webarchitect library --license GPL-3.0"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:40056d4b-3267-48ca-8509-f8a6d4c32884"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.18.0+x64 (linux)","description":"Code generation framework: generator definitions, templates, stamps, discovery. Built on @canonical/task.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ejs":"^5.0.0","chalk":"^5.6.2","@canonical/task":"^0.31.0","@canonical/utils":"^0.31.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/bun":"^1.3.10","@types/ejs":"^3.1.5","typescript":"^5.9.3","@types/node":"^24.12.0","@biomejs/biome":"2.4.9","@canonical/biome-config":"^0.31.0","@canonical/webarchitect":"^0.31.0","@canonical/typescript-config":"^0.31.0"},"_npmOperationalInternal":{"tmp":"tmp/summon-core_0.31.0_1784323751386_0.8103341552023247","host":"s3://npm-registry-packages-npm-production"}},"0.32.0":{"name":"@canonical/summon-core","version":"0.32.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"GPL-3.0","_id":"@canonical/summon-core@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":"280f1f489720ad1f95e6ad1096514052a3c00737","tarball":"https://registry.npmjs.org/@canonical/summon-core/-/summon-core-0.32.0.tgz","fileCount":223,"integrity":"sha512-xIrohkjlr9zDC658jFxGHL1VDYwPQSxNoTbkel/95QD79DTSJ/k0F4iG7z6ALPK6BzVPER4yoKaMCNg3njvpyw==","signatures":[{"sig":"MEUCIA64KxMFpAFhOGIg71VBcEkdZxoU+J4l64DOzBIoTLSXAiEAyIzO1UZuJU75tRtzMeHxcR+RzF+7/xCaRq6ElVgRCpQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fsummon-core@0.32.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":285490},"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":"bun run test:vitest && bun run test:ink","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","test:ink":"vitest run --no-coverage 'src/prompt/ink/wizard.test.tsx'","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","check:biome":"biome check","test:vitest":"vitest run --coverage --exclude '**/*.test.tsx'","check:biome:fix":"biome check --write","test:vitest:watch":"vitest","check:webarchitect":"webarchitect library --license GPL-3.0"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:40056d4b-3267-48ca-8509-f8a6d4c32884"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.18.0+x64 (linux)","description":"Code generation framework: generator definitions, templates, stamps, discovery. Built on @canonical/task.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ejs":"^5.0.0","ink":"^6.8.0","chalk":"^5.6.2","react":"^19.2.4","ink-text-input":"^6.0.0","@canonical/task":"^0.32.0","@canonical/utils":"^0.32.0","ink-select-input":"^6.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/bun":"^1.3.10","@types/ejs":"^3.1.5","typescript":"^5.9.3","@types/node":"^24.12.0","@types/react":"^19.2.14","@biomejs/biome":"2.4.9","ink-testing-library":"^4.0.0","@canonical/biome-config":"^0.32.0","@canonical/webarchitect":"^0.32.0","@canonical/typescript-config":"^0.32.0"},"_npmOperationalInternal":{"tmp":"tmp/summon-core_0.32.0_1784542944958_0.12809113981810327","host":"s3://npm-registry-packages-npm-production"}},"0.33.0":{"name":"@canonical/summon-core","version":"0.33.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"GPL-3.0","_id":"@canonical/summon-core@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":"981ed70909eb3c1e7dc118095a9ba6d53143e2f7","tarball":"https://registry.npmjs.org/@canonical/summon-core/-/summon-core-0.33.0.tgz","fileCount":235,"integrity":"sha512-TtwZAnCAcLRJRpcSE+qh3GRwsRqW52Hj0D9FhHVzzUwTdYXZp6wXeEtJzsiXdql/jpXc6Ii55JugI2beOtaRUw==","signatures":[{"sig":"MEUCIBvw2PHQ7ht51pfDBFU89y2zoHqA8yPXSFVEhr0iwxvOAiEAn69zEZc9XCIpfuSSRNjRkZplqvn6q/voMfwmumjFDGU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fsummon-core@0.33.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":315136},"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":"bun run test:vitest && bun run test:ink","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","test:ink":"vitest run --no-coverage 'src/prompt/ink/wizard.test.tsx'","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","check:biome":"biome check","test:vitest":"vitest run --coverage --exclude '**/*.test.tsx'","check:biome:fix":"biome check --write","test:vitest:watch":"vitest","check:webarchitect":"webarchitect library --license GPL-3.0"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:40056d4b-3267-48ca-8509-f8a6d4c32884"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.18.0+x64 (linux)","description":"Code generation framework: generator definitions, templates, stamps, discovery. Built on @canonical/task.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ejs":"^5.0.0","ink":"^6.8.0","chalk":"^5.6.2","react":"^19.2.4","ink-text-input":"^6.0.0","@canonical/task":"^0.33.0","@canonical/utils":"^0.33.0","ink-select-input":"^6.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/bun":"^1.3.10","@types/ejs":"^3.1.5","typescript":"^5.9.3","@types/node":"^24.12.0","@types/react":"^19.2.14","@biomejs/biome":"2.4.9","ink-testing-library":"^4.0.0","@canonical/biome-config":"^0.33.0","@canonical/webarchitect":"^0.33.0","@canonical/typescript-config":"^0.33.0"},"_npmOperationalInternal":{"tmp":"tmp/summon-core_0.33.0_1784914684859_0.5515401392696893","host":"s3://npm-registry-packages-npm-production"}},"0.34.0":{"name":"@canonical/summon-core","version":"0.34.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"GPL-3.0","_id":"@canonical/summon-core@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":"119ae73dd1eac0bba72ee4969368b5b2634c017c","tarball":"https://registry.npmjs.org/@canonical/summon-core/-/summon-core-0.34.0.tgz","fileCount":260,"integrity":"sha512-MMjYPTgig0X6jgCeaePJEUaaIUDAIxNWN5jJoBXFP9b0rwXZ2+BVEA3M6TD4JA0ih86USp+MHw/voZyi6xW3SA==","signatures":[{"sig":"MEUCIQDdmzM2U0ZOuKCVCAuRigS0RE/kArdkrt9wm5dSgtDVywIgYDzV6oQg1zgfC7+dHcPhd4v/Ade67fVekJcKeCC6neU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fsummon-core@0.34.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":354491},"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"},"./testing":{"types":"./dist/types/testing/index.d.ts","import":"./dist/esm/testing/index.js"}},"gitHead":"e8d25fecbe6e70edfc4cb300bad65f691dbbd26e","scripts":{"test":"bun run test:vitest && bun run test:ink","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","test:ink":"vitest run --no-coverage 'src/prompt/ink/wizard.test.tsx'","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","check:biome":"biome check","test:vitest":"vitest run --coverage --exclude '**/*.test.tsx'","check:biome:fix":"biome check --write","test:vitest:watch":"vitest","check:webarchitect":"webarchitect library --license GPL-3.0"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:40056d4b-3267-48ca-8509-f8a6d4c32884"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.19.0+x64 (linux)","description":"Code generation framework: generator definitions, templates, stamps, discovery. Built on @canonical/task.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ejs":"^5.0.0","ink":"^6.8.0","chalk":"^5.6.2","react":"^19.2.4","ink-text-input":"^6.0.0","@canonical/task":"^0.34.0","@canonical/utils":"^0.34.0","ink-select-input":"^6.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/bun":"^1.3.10","@types/ejs":"^3.1.5","typescript":"^5.9.3","@types/node":"^24.12.0","@types/react":"^19.2.14","@biomejs/biome":"2.4.9","ink-testing-library":"^4.0.0","@canonical/biome-config":"^0.34.0","@canonical/webarchitect":"^0.34.0","@canonical/typescript-config":"^0.34.0"},"_npmOperationalInternal":{"tmp":"tmp/summon-core_0.34.0_1787317087705_0.6612255842814485","host":"s3://npm-registry-packages-npm-production"}},"0.35.0":{"name":"@canonical/summon-core","version":"0.35.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"GPL-3.0","_id":"@canonical/summon-core@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":"27687ccb895ddd01cd25d1f77d16b004be301419","tarball":"https://registry.npmjs.org/@canonical/summon-core/-/summon-core-0.35.0.tgz","fileCount":332,"integrity":"sha512-7R1w+33ttxY3hhC9H3kYuvAGrQeTWyeD4UQLvQ0tW1A9JdCjr5nOA7ufqyRO0TxTrt4o1ZxwWCt8MVFOujUElg==","signatures":[{"sig":"MEYCIQCQH0WU4FWgWKJVq9TjXTSfzw5cgwrXFOuDPsQHk6hEQQIhANF50RyZrkKoSl1Y+THhI/KXIJxZW8q6zX2yHUnBTxW9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fsummon-core@0.35.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":505096},"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"},"./format":{"types":"./dist/types/format/index.d.ts","import":"./dist/esm/format/index.js"},"./testing":{"types":"./dist/types/testing/index.d.ts","import":"./dist/esm/testing/index.js"},"./projection":{"types":"./dist/types/projection/index.d.ts","import":"./dist/esm/projection/index.js"},"./projection/commander":{"types":"./dist/types/projection/commander/index.d.ts","import":"./dist/esm/projection/commander/index.js"}},"gitHead":"5198c5399ef657959272c0e35924391573d81146","scripts":{"test":"bun run test:vitest && bun run test:ink","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","test:ink":"vitest run --no-coverage 'src/prompt/ink/wizard.test.tsx'","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","check:biome":"biome check","test:vitest":"vitest run --coverage --exclude '**/*.test.tsx'","check:biome:fix":"biome check --write","test:vitest:watch":"vitest","check:webarchitect":"webarchitect library --license GPL-3.0"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:40056d4b-3267-48ca-8509-f8a6d4c32884"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.19.0+x64 (linux)","description":"Code generation framework: generator definitions, templates, stamps, discovery. Built on @canonical/task.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ejs":"^5.0.0","ink":"^6.8.0","chalk":"^5.6.2","react":"^19.2.4","commander":"^14.0.3","ink-text-input":"^6.0.0","@canonical/task":"^0.35.0","@canonical/utils":"^0.35.0","ink-select-input":"^6.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/bun":"^1.3.10","@types/ejs":"^3.1.5","typescript":"^5.9.3","@types/node":"^26.0.0","@types/react":"^19.2.14","@biomejs/biome":"2.4.9","ink-testing-library":"^4.0.0","@canonical/biome-config":"^0.35.0","@canonical/webarchitect":"^0.35.0","@canonical/typescript-config":"^0.35.0"},"_npmOperationalInternal":{"tmp":"tmp/summon-core_0.35.0_1787877260082_0.6879210512638505","host":"s3://npm-registry-packages-npm-production"}},"0.36.0":{"name":"@canonical/summon-core","version":"0.36.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"GPL-3.0","_id":"@canonical/summon-core@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":"883958e96a237f688dbdc2b29adaa5e5ecd7b692","tarball":"https://registry.npmjs.org/@canonical/summon-core/-/summon-core-0.36.0.tgz","fileCount":332,"integrity":"sha512-sDxs2Ke/hjhzl5o4aDqUuRakWmv38to41VyO5hDgS4M0urHD8Cw3qzLf258rHG+kDn/sxmrVJheW8tZJLMWR3g==","signatures":[{"sig":"MEYCIQD1Zh6/3u1p+mubhm63/MPlbBcNssFgDCMSAv1L1u9FTwIhAK5WxYdt31CI4fvZL8+hjqb5FVmudsc0oPc7Snkk/Jng","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fsummon-core@0.36.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":538896},"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"},"./format":{"types":"./dist/types/format/index.d.ts","import":"./dist/esm/format/index.js"},"./testing":{"types":"./dist/types/testing/index.d.ts","import":"./dist/esm/testing/index.js"},"./projection":{"types":"./dist/types/projection/index.d.ts","import":"./dist/esm/projection/index.js"},"./projection/commander":{"types":"./dist/types/projection/commander/index.d.ts","import":"./dist/esm/projection/commander/index.js"}},"gitHead":"78eb47ac10104e914eeacd331795e14b832703d4","scripts":{"test":"bun run test:vitest && bun run test:ink","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","test:ink":"vitest run --no-coverage src/prompt/ink/wizard.test.tsx src/prompt/ink/mount.test.tsx","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","check:biome":"biome check","test:vitest":"vitest run --coverage --exclude '**/*.test.tsx'","check:biome:fix":"biome check --write","test:vitest:watch":"vitest","check:webarchitect":"webarchitect library --license GPL-3.0"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:40056d4b-3267-48ca-8509-f8a6d4c32884"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.19.0+x64 (linux)","description":"Code generation framework: generator definitions, templates, stamps, discovery. Built on @canonical/task.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ejs":"^5.0.0","ink":"^6.8.0","chalk":"^5.6.2","react":"^19.2.4","commander":"^14.0.3","ink-text-input":"^6.0.0","@canonical/task":"^0.36.0","@canonical/utils":"^0.36.0","ink-select-input":"^6.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/bun":"^1.3.10","@types/ejs":"^3.1.5","typescript":"^5.9.3","@types/node":"^26.0.0","@types/react":"^19.2.14","@biomejs/biome":"2.4.9","ink-testing-library":"^4.0.0","@canonical/biome-config":"^0.36.0","@canonical/webarchitect":"^0.36.0","@canonical/typescript-config":"^0.36.0"},"_npmOperationalInternal":{"tmp":"tmp/summon-core_0.36.0_1788012121122_0.5665123500908151","host":"s3://npm-registry-packages-npm-production"}},"0.37.0":{"name":"@canonical/summon-core","version":"0.37.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"GPL-3.0","_id":"@canonical/summon-core@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":"dad16bda51cd4f02489a6b3a0654301d85e340de","tarball":"https://registry.npmjs.org/@canonical/summon-core/-/summon-core-0.37.0.tgz","fileCount":332,"integrity":"sha512-gLPazMxFGTie1j0YozqemounZD8D7j9Q8o+VrYTAoy2hpEgUd0nMeVG5S+l/Ybwd7PmChhZAz2w6fZ/X7Pv+aw==","signatures":[{"sig":"MEYCIQDv1cAW10qorfnfD/0N7r/NEhz+RXbPzpz8UJhEuS3UIAIhALH33d08mEbUrG0A689+qQeijSrvy3UxpDxL3WfnM87H","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fsummon-core@0.37.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":540656},"type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","engines":{"node":">=22.18 <23 || >=23.6"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js"},"./format":{"types":"./dist/types/format/index.d.ts","import":"./dist/esm/format/index.js"},"./testing":{"types":"./dist/types/testing/index.d.ts","import":"./dist/esm/testing/index.js"},"./projection":{"types":"./dist/types/projection/index.d.ts","import":"./dist/esm/projection/index.js"},"./projection/commander":{"types":"./dist/types/projection/commander/index.d.ts","import":"./dist/esm/projection/commander/index.js"}},"gitHead":"ac8383bdb4be1bcd6fa6c4960a1e3d78c0279688","scripts":{"test":"bun run test:vitest && bun run test:ink","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","test:ink":"vitest run --no-coverage src/prompt/ink/wizard.test.tsx src/prompt/ink/mount.test.tsx","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","check:biome":"biome check","test:vitest":"vitest run --coverage --exclude '**/*.test.tsx'","check:biome:fix":"biome check --write","test:vitest:watch":"vitest","check:webarchitect":"webarchitect library --license GPL-3.0"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:40056d4b-3267-48ca-8509-f8a6d4c32884"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/10.0.1/node@v24.19.0+x64 (linux)","description":"Code generation framework: generator definitions, templates, stamps, discovery. Built on @canonical/task.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ejs":"^5.0.0","ink":"^6.8.0","chalk":"^6.0.0","react":"^19.2.4","commander":"^15.0.0","ink-text-input":"^6.0.0","@canonical/task":"^0.37.0","@canonical/utils":"^0.37.0","ink-select-input":"^6.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/bun":"^1.3.10","@types/ejs":"^3.1.5","typescript":"^5.9.3","@types/node":"^26.0.0","@types/react":"^19.2.14","@biomejs/biome":"2.4.9","ink-testing-library":"^4.0.0","@canonical/biome-config":"^0.37.0","@canonical/webarchitect":"^0.37.0","@canonical/typescript-config":"^0.37.0"},"_npmOperationalInternal":{"tmp":"tmp/summon-core_0.37.0_1788345312298_0.0253531402424918","host":"s3://npm-registry-packages-npm-production"}},"0.38.0":{"name":"@canonical/summon-core","version":"0.38.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"GPL-3.0","_id":"@canonical/summon-core@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":"871671d7965db18a8e00cd71001d086df777caf3","tarball":"https://registry.npmjs.org/@canonical/summon-core/-/summon-core-0.38.0.tgz","fileCount":340,"integrity":"sha512-aqUbtUZxTxRQlRx3lQ4UAfwTI8FafSzW4cc8qXc/1rT4080aWGw2TL7z3d3SbmPdCQ90UOiYoKca5wTzh3phsQ==","signatures":[{"sig":"MEUCICPbfbLIwcXYWpCWBIno9Niqlz5CGdR02vA0CV1ykidBAiEAqm7SHF54Y30FKBQb78+7vnamn7L3wHrzUeKga2FYh+c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCO9Y9TvqoQjqF0HUnkcHkM8cxTuLz+O1lRZq5EKXn/MwIhAMMCgDg2KmUdxI+AWclbxq6mMgiproRofNzxeU9BhtYY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fsummon-core@0.38.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":550283},"type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","engines":{"node":">=22.18 <23 || >=23.6"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js"},"./format":{"types":"./dist/types/format/index.d.ts","import":"./dist/esm/format/index.js"},"./testing":{"types":"./dist/types/testing/index.d.ts","import":"./dist/esm/testing/index.js"},"./projection":{"types":"./dist/types/projection/index.d.ts","import":"./dist/esm/projection/index.js"},"./projection/commander":{"types":"./dist/types/projection/commander/index.d.ts","import":"./dist/esm/projection/commander/index.js"}},"gitHead":"4d10a68a9b299af6fe3d1d7d053e54ca128944ad","scripts":{"test":"bun run test:vitest && bun run test:ink","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","test:ink":"vitest run --no-coverage src/prompt/ink/wizard.test.tsx src/prompt/ink/mount.test.tsx","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","check:biome":"biome check","test:vitest":"vitest run --coverage --exclude '**/*.test.tsx'","check:biome:fix":"biome check --write","test:vitest:watch":"vitest","check:webarchitect":"webarchitect library --license GPL-3.0"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:40056d4b-3267-48ca-8509-f8a6d4c32884"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/10.0.1/node@v24.20.0+x64 (linux)","description":"Code generation framework: generator definitions, templates, stamps, discovery. Built on @canonical/task.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ejs":"^5.0.0","ink":"^6.8.0","chalk":"^6.0.0","react":"^19.2.4","commander":"^15.0.0","ink-text-input":"^6.0.0","@canonical/task":"^0.38.0","@canonical/utils":"^0.38.0","ink-select-input":"^6.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/bun":"^1.3.10","@types/ejs":"^3.1.5","typescript":"^5.9.3","@types/node":"^26.0.0","@types/react":"^19.2.14","@biomejs/biome":"2.5.13","ink-testing-library":"^4.0.0","@canonical/biome-config":"^0.38.0","@canonical/webarchitect":"^0.38.0","@canonical/typescript-config":"^0.38.0"},"_npmOperationalInternal":{"tmp":"tmp/summon-core_0.38.0_1789573121322_0.3213830916012108","host":"s3://npm-registry-packages-npm-production"}},"0.40.0":{"name":"@canonical/summon-core","version":"0.40.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"GPL-3.0","_id":"@canonical/summon-core@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":"4f31af9fc1e2b8a3f7b76e8034dcbf9d1df9f115","tarball":"https://registry.npmjs.org/@canonical/summon-core/-/summon-core-0.40.0.tgz","fileCount":340,"integrity":"sha512-EwHXIcOtM0BHRwoLoFo/G1FhUkbYh7+BK2Ykjy+2/iuwyFYvmgSW8TbQR/ZITPWxqi1qSgXtGmvW1LDcIpGFVw==","signatures":[{"sig":"MEUCIQC/CF0pH4Z7U157mbCJYpjNSTqaIl1ELB+WbO8WQDyU3gIgHW6mo0lPZgqt6O13cSFJ86qoIzcXkBxouRvvn+mGO30=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCJ/R7bevs3kqvMuHhVN6ndSBGhVJLYpFdlVhFi1iqdDgIgG8/bO1eHFKTGOVk5uHnpRPigtD60zyXpaEtLmQKZ/J8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fsummon-core@0.40.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":550283},"type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","engines":{"node":">=22.18 <23 || >=23.6"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js"},"./format":{"types":"./dist/types/format/index.d.ts","import":"./dist/esm/format/index.js"},"./testing":{"types":"./dist/types/testing/index.d.ts","import":"./dist/esm/testing/index.js"},"./projection":{"types":"./dist/types/projection/index.d.ts","import":"./dist/esm/projection/index.js"},"./projection/commander":{"types":"./dist/types/projection/commander/index.d.ts","import":"./dist/esm/projection/commander/index.js"}},"gitHead":"9136b71518260c5f33e7619da087198c931e4c13","scripts":{"test":"bun run test:vitest && bun run test:ink","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","test:ink":"vitest run --no-coverage src/prompt/ink/wizard.test.tsx src/prompt/ink/mount.test.tsx","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","check:biome":"biome check","test:vitest":"vitest run --coverage --exclude '**/*.test.tsx'","check:biome:fix":"biome check --write","test:vitest:watch":"vitest","check:webarchitect":"webarchitect library --license GPL-3.0"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:40056d4b-3267-48ca-8509-f8a6d4c32884"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/10.0.1/node@v24.20.0+x64 (linux)","description":"Code generation framework: generator definitions, templates, stamps, discovery. Built on @canonical/task.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ejs":"^5.0.0","ink":"^6.8.0","chalk":"^6.0.0","react":"^19.2.4","commander":"^15.0.0","ink-text-input":"^6.0.0","@canonical/task":"^0.40.0","@canonical/utils":"^0.40.0","ink-select-input":"^6.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/bun":"^1.3.10","@types/ejs":"^3.1.5","typescript":"^5.9.3","@types/node":"^26.0.0","@types/react":"^19.2.14","@biomejs/biome":"2.5.13","ink-testing-library":"^4.0.0","@canonical/biome-config":"^0.40.0","@canonical/webarchitect":"^0.40.0","@canonical/typescript-config":"^0.40.0"},"_npmOperationalInternal":{"tmp":"tmp/summon-core_0.40.0_1789941881466_0.1408682470103253","host":"s3://npm-registry-packages-npm-production"}},"0.42.0":{"name":"@canonical/summon-core","version":"0.42.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"GPL-3.0","_id":"@canonical/summon-core@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":"b2ddb9756c5a06b04409c696feb4953c4f3a1b9d","tarball":"https://registry.npmjs.org/@canonical/summon-core/-/summon-core-0.42.0.tgz","fileCount":340,"integrity":"sha512-Y1pdNppU+cMzm4bzgE49sX6GmCRD7/QK74KdpRuzANl1JV1YKT+GfsGT386YBzS8ciDX2Z8oHiJ9JV7grPr4IQ==","signatures":[{"sig":"MEUCIQDN/Fm+inc8+2saKiaMfBWfEjtI3s4c7VEBOe1Dgh+ZoAIgKBUL3f1GvUYdaGY7/kXsIaKpxrAfjVdqZ/IxBV9YrbY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDJomZKwi2vUN54aQFhLO4eIjDYmj1PJjC0UrbQZOi3FgIhAK7NSU2jh6n9VeXMsq2ZUIA2Z+DrwYqb5wnpO5E5mlF0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fsummon-core@0.42.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":552339},"type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","engines":{"node":">=22.18 <23 || >=23.6"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js"},"./format":{"types":"./dist/types/format/index.d.ts","import":"./dist/esm/format/index.js"},"./testing":{"types":"./dist/types/testing/index.d.ts","import":"./dist/esm/testing/index.js"},"./projection":{"types":"./dist/types/projection/index.d.ts","import":"./dist/esm/projection/index.js"},"./projection/commander":{"types":"./dist/types/projection/commander/index.d.ts","import":"./dist/esm/projection/commander/index.js"}},"gitHead":"75c2b17029ba899be3fa645be28290ac6fcb83a9","scripts":{"test":"bun run test:vitest && bun run test:ink","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","test:ink":"vitest run --no-coverage src/prompt/ink/wizard.test.tsx src/prompt/ink/mount.test.tsx","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","check:biome":"biome check","test:vitest":"vitest run --coverage --exclude '**/*.test.tsx'","check:biome:fix":"biome check --write","test:vitest:watch":"vitest","check:webarchitect":"webarchitect library --license GPL-3.0"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:40056d4b-3267-48ca-8509-f8a6d4c32884"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/10.0.1/node@v24.21.0+x64 (linux)","description":"Code generation framework: generator definitions, templates, stamps, discovery. Built on @canonical/task.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"ejs":"^5.0.0","ink":"^6.8.0","chalk":"^6.0.0","react":"^19.2.4","commander":"^15.0.0","ink-text-input":"^6.0.0","@canonical/task":"^0.42.0","@canonical/utils":"^0.42.0","ink-select-input":"^6.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/bun":"^1.3.10","@types/ejs":"^3.1.5","typescript":"^7.0.2","@types/node":"^26.0.0","@types/react":"^19.2.14","@biomejs/biome":"2.5.14","ink-testing-library":"^4.0.0","@canonical/biome-config":"^0.42.0","@canonical/webarchitect":"^0.42.0","@canonical/typescript-config":"^0.42.0"},"_npmOperationalInternal":{"tmp":"tmp/summon-core_0.42.0_1790560913962_0.49459525467575083","host":"s3://npm-registry-packages-npm-production"}},"0.43.0-experimental.1":{"name":"@canonical/summon-core","version":"0.43.0-experimental.1","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"GPL-3.0","_id":"@canonical/summon-core@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":"94b714bdacea0708251b9b495ebcfb7ff43c44ef","tarball":"https://registry.npmjs.org/@canonical/summon-core/-/summon-core-0.43.0-experimental.1.tgz","fileCount":340,"integrity":"sha512-N6Cwt7QJyn88lqRks0GDTPfP9AMcl6NU0KEGSYKYhPfJ9CMUUF2WzTpVOfDDhdS2NvDbqAyGwKnLpZm1uOGwcg==","signatures":[{"sig":"MEUCIGsKlQ4LCFV/Kh2vgeO2ISzpin0X4KfZcoOqR7hhTIhVAiEAgxKPF+1KIAdqsyrm9xDxwZeRNEgkR1k6NZLdq1GogrA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDAOqmv1yZj7LGiYivtHNQR8S8vfdLpiNHnhXPMHmmGFAiEAyIqMMWrgFS4MuNSsWz3x7YE7GEf2BhCX+nuwVe2hfrY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fsummon-core@0.43.0-experimental.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":552444},"type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","engines":{"node":">=22.18 <23 || >=23.6"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js"},"./format":{"types":"./dist/types/format/index.d.ts","import":"./dist/esm/format/index.js"},"./testing":{"types":"./dist/types/testing/index.d.ts","import":"./dist/esm/testing/index.js"},"./projection":{"types":"./dist/types/projection/index.d.ts","import":"./dist/esm/projection/index.js"},"./projection/commander":{"types":"./dist/types/projection/commander/index.d.ts","import":"./dist/esm/projection/commander/index.js"}},"gitHead":"5c1b1bdbb95844fac6211f1fe6ba10c29238d6ee","scripts":{"test":"bun run test:vitest && bun run test:ink","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","test:ink":"vitest run --no-coverage src/prompt/ink/wizard.test.tsx src/prompt/ink/mount.test.tsx","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","check:biome":"biome check","test:vitest":"vitest run --coverage --exclude '**/*.test.tsx'","check:biome:fix":"biome check --write","test:vitest:watch":"vitest","check:webarchitect":"webarchitect library --license GPL-3.0"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"f88adcca-8fc1-49d6-badd-b22ffb47845a"}},"repository":{"url":"git+https://github.com/canonical/pragma-core.git","type":"git"},"_npmVersion":"lerna/10.0.1/node@v24.21.0+x64 (linux)","description":"Code generation framework: generator definitions, templates, stamps, discovery. Built on @canonical/task.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"ejs":"^5.0.0","ink":"^6.8.0","chalk":"^6.0.0","react":"^19.2.4","commander":"^15.0.0","ink-text-input":"^6.0.0","@canonical/task":"^0.43.0-experimental.0","@canonical/utils":"^0.43.0-experimental.1","ink-select-input":"^6.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^4.0.18","@types/bun":"^1.3.10","@types/ejs":"^3.1.5","typescript":"^7.0.2","@types/node":"^26.0.0","@types/react":"^19.2.14","@biomejs/biome":"2.5.14","ink-testing-library":"^4.0.0","@canonical/biome-config":"^0.43.0-experimental.0","@canonical/webarchitect":"^0.43.0-experimental.0","@canonical/typescript-config":"^0.43.0-experimental.0"},"_npmOperationalInternal":{"tmp":"tmp/summon-core_0.43.0-experimental.1_1790649939236_0.3313647125991166","host":"s3://npm-registry-packages-npm-production"}},"0.43.0":{"_id":"@canonical/summon-core@0.43.0","bugs":{"url":"https://github.com/canonical/pragma-core/issues"},"dist":{"shasum":"4fffcfb9b0e5802c4f8f4aaa73bd860edb795f59","tarball":"https://registry.npmjs.org/@canonical/summon-core/-/summon-core-0.43.0.tgz","fileCount":340,"integrity":"sha512-ZEGnQQotRjOuRhVVIcDTliKmK+H3llmr9qOL2RVylKlcNqYP1W+EMdK7VwyFMdKnlinRUvnzQuYGsg/If9lMUA==","signatures":[{"sig":"MEYCIQD2s/Aca3WJpR3QMJ/NOBz6QsdznfVzmGb4xfuIHxoJfAIhAJj2iyMqoKfOK9Zv1nYWKTLyVOjlw2j79bVMS53JhRq5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCVF4bWIWvwabr7THcDurYnmhtrVoXS1tUgzzvltBB0RQIgeY99GuPFSelvg11KWqXYm2opIf8aK4K5GrRmEGz9l5Q="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fsummon-core@0.43.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":552354},"name":"@canonical/summon-core","type":"module","types":"dist/types/index.d.ts","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"module":"dist/esm/index.js","engines":{"node":">=22.18 <23 || >=23.6"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js"},"./format":{"types":"./dist/types/format/index.d.ts","import":"./dist/esm/format/index.js"},"./testing":{"types":"./dist/types/testing/index.d.ts","import":"./dist/esm/testing/index.js"},"./projection":{"types":"./dist/types/projection/index.d.ts","import":"./dist/esm/projection/index.js"},"./projection/commander":{"types":"./dist/types/projection/commander/index.d.ts","import":"./dist/esm/projection/commander/index.js"}},"gitHead":"79f70779057238803359b820183de972b4a1220c","license":"GPL-3.0","scripts":{"test":"bun run test:vitest && bun run test:ink","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","test:ink":"vitest run --no-coverage src/prompt/ink/wizard.test.tsx src/prompt/ink/mount.test.tsx","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","check:biome":"biome check","test:vitest":"vitest run --coverage --exclude '**/*.test.tsx'","check:biome:fix":"biome check --write","test:vitest:watch":"vitest","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":"f88adcca-8fc1-49d6-badd-b22ffb47845a"}},"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":"Code generation framework: generator definitions, templates, stamps, discovery. Built on @canonical/task.","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":{"ejs":"^5.0.0","ink":"^6.8.0","chalk":"^6.0.0","react":"^19.2.4","commander":"^15.0.0","ink-text-input":"^6.0.0","@canonical/task":"^0.43.0","@canonical/utils":"^0.43.0","ink-select-input":"^6.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/bun":"^1.3.10","@types/ejs":"^3.1.5","typescript":"^7.0.2","@types/node":"^26.0.0","@types/react":"^19.2.14","@biomejs/biome":"2.5.14","ink-testing-library":"^4.0.0","@canonical/biome-config":"^0.43.0","@canonical/webarchitect":"^0.43.0","@canonical/typescript-config":"^0.43.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/summon-core_0.43.0_1790797636905_0.03635554911389649"}}},"time":{"created":"2026-03-26T12:24:32.287Z","modified":"2026-09-30T19:47:17.417Z","0.18.0":"2026-03-26T12:24:32.548Z","0.20.0":"2026-03-26T14:34:29.463Z","0.21.0":"2026-04-01T01:50:58.350Z","0.22.0":"2026-04-03T14:00:59.118Z","0.23.0":"2026-04-07T07:53:10.000Z","0.24.0":"2026-04-13T14:22:51.069Z","0.25.0":"2026-04-17T08:27:30.422Z","0.26.0":"2026-04-24T22:44:06.675Z","0.27.0":"2026-04-29T09:16:43.348Z","0.27.1-experimental.0":"2026-05-21T17:56:37.434Z","0.28.0":"2026-06-16T13:44:57.576Z","0.29.0-experimental.0":"2026-06-24T21:57:37.565Z","0.29.0":"2026-07-03T09:31:11.713Z","0.30.0":"2026-07-14T00:15:15.000Z","0.31.0":"2026-07-17T21:29:11.520Z","0.32.0":"2026-07-20T10:22:25.101Z","0.33.0":"2026-07-24T17:38:05.051Z","0.34.0":"2026-08-21T12:58:07.832Z","0.35.0":"2026-08-28T00:34:20.253Z","0.36.0":"2026-08-29T14:02:01.295Z","0.37.0":"2026-09-02T10:35:12.421Z","0.38.0":"2026-09-16T15:38:41.407Z","0.40.0":"2026-09-20T22:04:41.588Z","0.42.0":"2026-09-28T02:01:54.065Z","0.43.0-experimental.1":"2026-09-29T02:45:39.369Z","0.43.0":"2026-09-30T19:47:17.028Z"},"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":"Code generation framework: generator definitions, templates, stamps, discovery. Built on @canonical/task.","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":"# Summon\n\nA code generator framework where generators are pure functions that return data, not side effects.\n\nWrite a generator once. Run it for real. Preview with `--dry-run`. Test without mocks. Same code, different interpreters.\n\n```typescript\ngenerate: (answers) => writeFile(`src/${answers.name}.ts`, code)\n// Returns a Task describing \"write this file\"\n// Not a file write. Data.\n```\n\n## Installation\n\n```bash\nnpm install -g @canonical/summon   # or: bun add -g @canonical/summon\n```\n\nThe CLI runs under plain Node — Bun is not required. It ships only with an\nexample generator and `summon init` (to scaffold your own generator). The real\ngenerators live in their own packages; install the ones you need into the same\nlocation and Summon discovers them automatically:\n\n```bash\nnpm install -g @canonical/summon-application   # summon application / domain / page / wrapper\nnpm install -g @canonical/summon-component      # summon component\n```\n\n## Using Generators\n\nSummon discovers generators from installed packages automatically.\nSee [installing generator packages](#installing-generator-packages) to install an existing generator package,\nor [creating generators](#creating-generators) to create a new one.\n\n```bash\n# See what's available\nsummon\n\n# Run a generator interactively\nsummon component react\n\n# Pass answers as positional argument (when supported)\nsummon component react src/components/Button\n\n# Or as a flag\nsummon component react --component-path=src/components/Button\n\n# Preview first (nothing written to disk)\nsummon component react src/components/Button --dry-run\n\n# Show debug output\nsummon component react src/components/Button --verbose\n```\n\nEvery prompt becomes a CLI flag. Boolean prompts with `default: true` use the `--no-` prefix to disable. Generators may also define a **positional argument** for their primary input (like a path), allowing cleaner command invocations.\n\n### CLI Options\n\n| Flag | Description |\n|------|-------------|\n| `-d, --dry-run` | Preview without writing files |\n| `-y, --yes` | Skip confirmation prompts and preview |\n| `-v, --verbose` | Show debug output |\n| `--show-files` | Show file contents in dry-run |\n| `-l, --llm` | LLM mode: dry-run with markdown output, no prompts, no stamps |\n| `--format <type>` | Output format: `json` (implies dry-run, no prompts, no stamps) |\n| `--no-preview` | Skip the file preview |\n| `--no-generated-stamp` | Disable generated file stamp comments |\n\n**LLM Usage:** Summon treats LLMs as first-class CLI users. Use `--llm` for structured markdown output or `--format json` for machine-parseable JSON. Both imply `--dry-run --yes --show-files --no-generated-stamp`:\n\n```bash\n# Structured markdown (answers table, plan table, fenced code blocks)\nsummon component react src/components/Button --llm\n\n# Machine-parseable JSON\nsummon component react src/components/Button --format json\n\n# Session-level LLM mode via environment variable\nexport SUMMON_LLM=1\nsummon component react src/components/Button\n\n# Structured help for LLMs\nsummon component react --help --llm\n```\n\n### Shell Autocompletion\n\nSummon supports TAB completion for Bash, Zsh, and Fish shells. Completions are **dynamic** - they automatically detect newly installed generator packages without needing to re-run setup.\n\n```bash\n# Automatic setup (recommended)\nsummon --setup-completion\n\n# Or manual installation for each shell:\n\n# Zsh\necho '. <(summon --completion)' >> ~/.zshrc\n\n# Bash (may need: brew install bash-completion on macOS)\nsummon --completion >> ~/.summon-completion.sh\necho 'source ~/.summon-completion.sh' >> ~/.bash_profile\n\n# Fish\necho 'summon --completion-fish | source' >> ~/.config/fish/config.fish\n```\n\nAfter setup, restart your shell or source the config file. Then:\n\n```bash\nsummon <TAB>                    # Shows: component, application, init, ...\nsummon component <TAB>          # Shows: react, svelte, lit\nsummon component react <TAB>    # Shows: --component-path, --no-with-styles, ...\nsummon component react --comp<TAB>  # Completes to: --component-path\n```\n\nCompletion features:\n- **Generator names** - Navigate the command tree with TAB\n- **Generator flags** - All prompts become completable flags\n- **Confirm prompts** - Shows `--no-X` for prompts with `default: true`\n- **Select/multiselect** - Completes with available choices\n- **Path prompts** - Filesystem path completion for prompts containing \"path\", \"dir\", \"file\", etc.\n\nTo remove autocompletion:\n\n```bash\nsummon --cleanup-completion\n```\n\n### Positional Arguments\n\nGenerators can define one prompt as a **positional argument**, allowing users to provide the primary input without a flag:\n\n```bash\n# With positional argument support\nsummon component react src/components/Button\n\n# Equivalent to\nsummon component react --component-path=src/components/Button\n```\n\nPositional arguments also get filesystem path completion when using TAB:\n\n```bash\nsummon component react src/comp<TAB>  # Completes to: src/components/\n```\n\n### Installing Generator Packages\n\nThe CLI bundles the `application`, `domain`, `page`, and `wrapper` generators.\nOther generators — including the official `@canonical/summon-component` — ship as\nseparate packages following the `summon-*` or `@scope/summon-*` naming convention.\nInstall one into the **same location** as the CLI (both global, or both project\ndependencies) and summon discovers it automatically:\n\n```bash\n# Component generators (react/svelte/lit)\nnpm install -g @canonical/summon-component   # or: bun add -g ...\n\n# Now available (completions work immediately!)\nsummon component react\nsummon component svelte\n```\n\n## Creating Generators\n\nA generator is a pure function that takes answers and returns a `Task`—a data structure describing what to do.\n\n```typescript\n// src/module/types.ts\ninterface ModuleAnswers {\n  name: string;\n  withTests: boolean;\n}\n\n// src/module/generator.ts\nimport type { GeneratorDefinition } from \"@canonical/summon\";\nimport { debug, info, writeFile, mkdir, sequence_, when } from \"@canonical/summon\";\nimport type { ModuleAnswers } from \"./types.js\";\n\nexport const generator = {\n  meta: {\n    name: \"module\",\n    description: \"Creates a new module\",\n    version: \"0.1.0\",\n  },\n\n  prompts: [\n    // positional: true allows `summon module src/utils` instead of `--name=src/utils`\n    { name: \"name\", type: \"text\", message: \"Module name:\", positional: true },\n    { name: \"withTests\", type: \"confirm\", message: \"Include tests?\", default: true },\n  ],\n\n  generate: (answers) => sequence_([\n    info(`Creating module: ${answers.name}`),\n\n    debug(\"Creating module directory\"),\n    mkdir(`src/${answers.name}`),\n\n    debug(\"Creating index file\"),\n    writeFile(`src/${answers.name}/index.ts`, `export const ${answers.name} = {};\\n`),\n\n    when(answers.withTests, debug(\"Creating test file\")),\n    when(answers.withTests,\n      writeFile(`src/${answers.name}/index.test.ts`, `test(\"works\", () => {});\\n`)\n    ),\n\n    info(`Created module at src/${answers.name}`),\n  ]),\n} as const satisfies GeneratorDefinition<ModuleAnswers>;\n\n// src/module/index.ts (barrel)\nexport { generator } from \"./generator.js\";\nexport type { ModuleAnswers } from \"./types.js\";\n\n// src/index.ts (package barrel)\nimport type { AnyGenerator } from \"@canonical/summon\";\nimport { generator as moduleGenerator } from \"./module/index.js\";\n\nexport const generators = {\n  \"module\": moduleGenerator,\n} as const satisfies Record<string, AnyGenerator>;\n```\n\n### Package Structure\n\nEach generator should be split into three files for maintainability:\n\n```\nmy-summon-package/\n├── package.json\n├── src/\n│   ├── index.ts              # Package barrel - exports generators record\n│   ├── module/\n│   │   ├── index.ts          # Generator barrel\n│   │   ├── types.ts          # Answer types\n│   │   └── generator.ts      # Generator definition\n│   └── templates/            # EJS templates (optional)\n└── README.md\n```\n\n```json\n{\n  \"name\": \"@myorg/summon-module\",\n  \"main\": \"src/index.ts\",\n  \"peerDependencies\": {\n    \"@canonical/summon\": \"workspace:*\"\n  }\n}\n```\n\n### Local Development\n\nFor developing generators locally, link them to make them globally available:\n\n```bash\n# From your generator package directory\ncd /path/to/my-summon-package\nbun link        # for bun\nnpm link        # for npm\n\n# Now available everywhere\nsummon module src/utils\n```\n\nProject-local packages (in `./node_modules`) take precedence over globally linked ones, so you can override with project-specific versions.\n\n### Testing Generators\n\nBecause generators return data, testing is straightforward—no mocks needed:\n\n```typescript\nimport { dryRun, getAffectedFiles } from \"@canonical/summon\";\nimport { generators } from \"./index\";\n\nconst generator = generators[\"module\"];\n\ntest(\"creates expected files\", () => {\n  const task = generator.generate({ name: \"utils\", withTests: true });\n  const { effects } = dryRun(task);\n\n  expect(getAffectedFiles(effects)).toEqual([\n    \"src/utils/index.ts\",\n    \"src/utils/index.test.ts\",\n  ]);\n});\n\ntest(\"skips test file when disabled\", () => {\n  const task = generator.generate({ name: \"utils\", withTests: false });\n  const { effects } = dryRun(task);\n\n  expect(getAffectedFiles(effects)).not.toContain(\"src/utils/index.test.ts\");\n});\n```\n\nThe dry-run interpreter maintains a virtual filesystem, so conditional logic based on `exists()` works correctly even without touching the disk.\n\n## The Monadic Pattern\n\nSummon uses a **monad** to compose tasks. If you've used Promises, you already understand the core idea.\n\n### What's a Monad?\n\nA monad is a design pattern for chaining operations that have some context (like \"might fail\" or \"has effects\"). Think of it as a pipeline where each step can:\n\n1. **Transform values** (`map`) — Apply a function to the result\n2. **Chain operations** (`flatMap`) — Use the result to create the next step\n3. **Short-circuit on failure** — Errors propagate automatically\n\n```typescript\n// Promise (async context)\nfetchUser(id)\n  .then(user => fetchOrders(user.id))    // chain\n  .then(orders => orders.length)          // transform\n  .catch(handleError);                    // recover\n\n// Task (effect context)\ntask(readFile(\"config.json\"))\n  .map(content => JSON.parse(content))    // transform\n  .flatMap(config => writeFile(           // chain\n    config.outputPath,\n    generateCode(config)\n  ))\n  .recover(err => pure(defaultConfig));   // recover\n```\n\n### The Task Type\n\n`Task<A>` represents a computation that:\n- Describes effects (file I/O, shell commands, etc.)\n- Eventually produces a value of type `A`\n- May fail with an error\n\n```typescript\n// A Task is one of three things:\ntype Task<A> =\n  | { _tag: \"Pure\"; value: A }                           // Done, here's the value\n  | { _tag: \"Fail\"; error: TaskError }                   // Failed with error\n  | { _tag: \"Effect\"; effect: Effect; cont: ... }        // Do this effect, then continue\n```\n\n### Composing Tasks\n\nThe `TaskBuilder` provides a fluent API for composition:\n\n```typescript\nimport { task, pure } from \"@canonical/summon\";\n\n// Build a pipeline\nconst pipeline = task(readFile(\"input.txt\"))\n  .map(content => content.toUpperCase())           // Transform the value\n  .flatMap(upper => writeFile(\"output.txt\", upper)) // Chain another effect\n  .andThen(info(\"Done!\"))                          // Sequence (ignore previous value)\n  .recover(err => pure(void 0));                   // Handle errors\n\n// pipeline is still just data — nothing has executed yet\n```\n\n### Key Operations\n\n| Operation | Description | Example |\n|-----------|-------------|---------|\n| `pure(value)` | Wrap a value in a Task | `pure(42)` |\n| `map(fn)` | Transform the result | `.map(x => x * 2)` |\n| `flatMap(fn)` | Chain with another Task | `.flatMap(x => writeFile(...))` |\n| `andThen(task)` | Sequence, discard previous | `.andThen(info(\"next\"))` |\n| `recover(fn)` | Handle errors | `.recover(e => pure(default))` |\n| `tap(fn)` | Side effect, keep value | `.tap(x => debug(x))` |\n\n### Why Monads for Generators?\n\n1. **Composable** — Small tasks combine into complex workflows\n2. **Predictable** — Errors propagate without explicit handling at each step\n3. **Testable** — The pipeline is data; inspect it without running effects\n4. **Declarative** — Describe *what* to do, not *how* to do it\n\n```typescript\n// Complex workflow, reads like a recipe\nconst scaffoldFeature = (name: string) =>\n  task(mkdir(`src/features/${name}`))\n    .andThen(template({\n      source: \"templates/feature.ts.ejs\",\n      dest: `src/features/${name}/index.ts`,\n      vars: { name },\n    }))\n    .andThen(when(config.withTests,\n      template({\n        source: \"templates/test.ts.ejs\",\n        dest: `src/features/${name}/index.test.ts`,\n        vars: { name },\n      })\n    ))\n    .andThen(info(`Created feature: ${name}`))\n    .unwrap();\n```\n\nFor a deeper dive into the \"effects as data\" philosophy, see [Explanation](docs/explanation.md).\n\n## Templating Engine\n\nSummon uses EJS by default for template rendering, but supports custom templating engines via the `TemplatingEngine` interface.\n\n### Default (EJS)\n\n```typescript\nimport { template, templateDir } from \"@canonical/summon\";\n\n// Uses EJS by default\ntemplate({\n  source: \"templates/component.tsx.ejs\",\n  dest: \"src/components/<%= name %>.tsx\",\n  vars: { name: \"Button\" },\n});\n```\n\n### Custom Engines\n\nImplement `TemplatingEngine` to use Handlebars, Mustache, Nunjucks, or any other engine:\n\n```typescript\nimport type { TemplatingEngine } from \"@canonical/summon\";\nimport Handlebars from \"handlebars\";\nimport * as fs from \"node:fs/promises\";\n\nconst handlebarsEngine: TemplatingEngine = {\n  render(template, vars) {\n    return Handlebars.compile(template)(vars);\n  },\n\n  async renderAsync(template, vars) {\n    return Handlebars.compile(template)(vars);\n  },\n\n  async renderFile(templatePath, vars) {\n    const content = await fs.readFile(templatePath, \"utf-8\");\n    return Handlebars.compile(content)(vars);\n  },\n};\n\n// Use in templates\ntemplate({\n  source: \"templates/component.hbs\",\n  dest: \"src/components/{{name}}.tsx\",\n  vars: { name: \"Button\" },\n  engine: handlebarsEngine,\n});\n```\n\n### Interface\n\n```typescript\ninterface TemplatingEngine {\n  /** Render a template string synchronously */\n  render(template: string, vars: Record<string, unknown>): string;\n\n  /** Render a template string asynchronously */\n  renderAsync(template: string, vars: Record<string, unknown>): Promise<string>;\n\n  /** Render a template file asynchronously */\n  renderFile(templatePath: string, vars: Record<string, unknown>): Promise<string>;\n}\n```\n\nThe `engine` option is available on `template()`, `templateDir()`, `renderString()`, `renderStringAsync()`, and `renderFile()`.\n\n## Documentation\n\n- **[Tutorial](docs/tutorial.md)** — Build your first generator from scratch\n- **[How-To Guides](docs/how-to.md)** — Solve specific problems\n- **[Reference](docs/reference.md)** — Complete API documentation\n- **[Explanation](docs/explanation.md)** — Why effects as data? The ideas behind Summon\n\n## License\n\nGPL-3.0\n","readmeFilename":"README.md"}