@cicore/cli 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/ci.js +13 -0
- package/dist/commands/addon/api-actions.d.ts +45 -0
- package/dist/commands/addon/api-actions.d.ts.map +1 -0
- package/dist/commands/addon/api-actions.js +281 -0
- package/dist/commands/addon/api-actions.js.map +1 -0
- package/dist/commands/addon/build.d.ts +11 -0
- package/dist/commands/addon/build.d.ts.map +1 -0
- package/dist/commands/addon/build.js +182 -0
- package/dist/commands/addon/build.js.map +1 -0
- package/dist/commands/addon/create.d.ts +11 -0
- package/dist/commands/addon/create.d.ts.map +1 -0
- package/dist/commands/addon/create.js +1186 -0
- package/dist/commands/addon/create.js.map +1 -0
- package/dist/commands/addon/delete.d.ts +13 -0
- package/dist/commands/addon/delete.d.ts.map +1 -0
- package/dist/commands/addon/delete.js +83 -0
- package/dist/commands/addon/delete.js.map +1 -0
- package/dist/commands/addon/deploy.d.ts +27 -0
- package/dist/commands/addon/deploy.d.ts.map +1 -0
- package/dist/commands/addon/deploy.js +459 -0
- package/dist/commands/addon/deploy.js.map +1 -0
- package/dist/commands/addon/dev-deploy.d.ts +31 -0
- package/dist/commands/addon/dev-deploy.d.ts.map +1 -0
- package/dist/commands/addon/dev-deploy.js +128 -0
- package/dist/commands/addon/dev-deploy.js.map +1 -0
- package/dist/commands/addon/dev.d.ts +36 -0
- package/dist/commands/addon/dev.d.ts.map +1 -0
- package/dist/commands/addon/dev.js +323 -0
- package/dist/commands/addon/dev.js.map +1 -0
- package/dist/commands/addon/extract-classes.d.ts +23 -0
- package/dist/commands/addon/extract-classes.d.ts.map +1 -0
- package/dist/commands/addon/extract-classes.js +281 -0
- package/dist/commands/addon/extract-classes.js.map +1 -0
- package/dist/commands/addon/generate-safelist.d.ts +24 -0
- package/dist/commands/addon/generate-safelist.d.ts.map +1 -0
- package/dist/commands/addon/generate-safelist.js +276 -0
- package/dist/commands/addon/generate-safelist.js.map +1 -0
- package/dist/commands/addon/index.d.ts +19 -0
- package/dist/commands/addon/index.d.ts.map +1 -0
- package/dist/commands/addon/index.js +296 -0
- package/dist/commands/addon/index.js.map +1 -0
- package/dist/commands/addon/init-repo.d.ts +25 -0
- package/dist/commands/addon/init-repo.d.ts.map +1 -0
- package/dist/commands/addon/init-repo.js +171 -0
- package/dist/commands/addon/init-repo.js.map +1 -0
- package/dist/commands/addon/install.d.ts +23 -0
- package/dist/commands/addon/install.d.ts.map +1 -0
- package/dist/commands/addon/install.js +84 -0
- package/dist/commands/addon/install.js.map +1 -0
- package/dist/commands/addon/list.d.ts +10 -0
- package/dist/commands/addon/list.d.ts.map +1 -0
- package/dist/commands/addon/list.js +102 -0
- package/dist/commands/addon/list.js.map +1 -0
- package/dist/commands/addon/manifest-refresh.d.ts +17 -0
- package/dist/commands/addon/manifest-refresh.d.ts.map +1 -0
- package/dist/commands/addon/manifest-refresh.js +48 -0
- package/dist/commands/addon/manifest-refresh.js.map +1 -0
- package/dist/commands/addon/migrate.d.ts +40 -0
- package/dist/commands/addon/migrate.d.ts.map +1 -0
- package/dist/commands/addon/migrate.js +236 -0
- package/dist/commands/addon/migrate.js.map +1 -0
- package/dist/commands/addon/publish.d.ts +33 -0
- package/dist/commands/addon/publish.d.ts.map +1 -0
- package/dist/commands/addon/publish.js +236 -0
- package/dist/commands/addon/publish.js.map +1 -0
- package/dist/commands/addon/scaffold-quality.d.ts +21 -0
- package/dist/commands/addon/scaffold-quality.d.ts.map +1 -0
- package/dist/commands/addon/scaffold-quality.js +90 -0
- package/dist/commands/addon/scaffold-quality.js.map +1 -0
- package/dist/commands/addon/sign.d.ts +9 -0
- package/dist/commands/addon/sign.d.ts.map +1 -0
- package/dist/commands/addon/sign.js +83 -0
- package/dist/commands/addon/sign.js.map +1 -0
- package/dist/commands/addon/toggle.d.ts +6 -0
- package/dist/commands/addon/toggle.d.ts.map +1 -0
- package/dist/commands/addon/toggle.js +46 -0
- package/dist/commands/addon/toggle.js.map +1 -0
- package/dist/commands/agent/index.d.ts +34 -0
- package/dist/commands/agent/index.d.ts.map +1 -0
- package/dist/commands/agent/index.js +564 -0
- package/dist/commands/agent/index.js.map +1 -0
- package/dist/commands/brand/index.d.ts +54 -0
- package/dist/commands/brand/index.d.ts.map +1 -0
- package/dist/commands/brand/index.js +367 -0
- package/dist/commands/brand/index.js.map +1 -0
- package/dist/commands/build/index.d.ts +53 -0
- package/dist/commands/build/index.d.ts.map +1 -0
- package/dist/commands/build/index.js +726 -0
- package/dist/commands/build/index.js.map +1 -0
- package/dist/commands/cache/flush-local.d.ts +31 -0
- package/dist/commands/cache/flush-local.d.ts.map +1 -0
- package/dist/commands/cache/flush-local.js +161 -0
- package/dist/commands/cache/flush-local.js.map +1 -0
- package/dist/commands/cache/index.d.ts +14 -0
- package/dist/commands/cache/index.d.ts.map +1 -0
- package/dist/commands/cache/index.js +453 -0
- package/dist/commands/cache/index.js.map +1 -0
- package/dist/commands/check/index.d.ts +8 -0
- package/dist/commands/check/index.d.ts.map +1 -0
- package/dist/commands/check/index.js +1316 -0
- package/dist/commands/check/index.js.map +1 -0
- package/dist/commands/cloudflare/index.d.ts +8 -0
- package/dist/commands/cloudflare/index.d.ts.map +1 -0
- package/dist/commands/cloudflare/index.js +453 -0
- package/dist/commands/cloudflare/index.js.map +1 -0
- package/dist/commands/core/create.d.ts +12 -0
- package/dist/commands/core/create.d.ts.map +1 -0
- package/dist/commands/core/create.js +206 -0
- package/dist/commands/core/create.js.map +1 -0
- package/dist/commands/core/delete.d.ts +11 -0
- package/dist/commands/core/delete.d.ts.map +1 -0
- package/dist/commands/core/delete.js +64 -0
- package/dist/commands/core/delete.js.map +1 -0
- package/dist/commands/core/env.d.ts +12 -0
- package/dist/commands/core/env.d.ts.map +1 -0
- package/dist/commands/core/env.js +95 -0
- package/dist/commands/core/env.js.map +1 -0
- package/dist/commands/core/health.d.ts +6 -0
- package/dist/commands/core/health.d.ts.map +1 -0
- package/dist/commands/core/health.js +215 -0
- package/dist/commands/core/health.js.map +1 -0
- package/dist/commands/core/index.d.ts +15 -0
- package/dist/commands/core/index.d.ts.map +1 -0
- package/dist/commands/core/index.js +86 -0
- package/dist/commands/core/index.js.map +1 -0
- package/dist/commands/core/list.d.ts +11 -0
- package/dist/commands/core/list.d.ts.map +1 -0
- package/dist/commands/core/list.js +58 -0
- package/dist/commands/core/list.js.map +1 -0
- package/dist/commands/core/rebuild.d.ts +13 -0
- package/dist/commands/core/rebuild.d.ts.map +1 -0
- package/dist/commands/core/rebuild.js +119 -0
- package/dist/commands/core/rebuild.js.map +1 -0
- package/dist/commands/db/index.d.ts +23 -0
- package/dist/commands/db/index.d.ts.map +1 -0
- package/dist/commands/db/index.js +355 -0
- package/dist/commands/db/index.js.map +1 -0
- package/dist/commands/db/promote-silo.d.ts +320 -0
- package/dist/commands/db/promote-silo.d.ts.map +1 -0
- package/dist/commands/db/promote-silo.js +930 -0
- package/dist/commands/db/promote-silo.js.map +1 -0
- package/dist/commands/db/relocate.d.ts +41 -0
- package/dist/commands/db/relocate.d.ts.map +1 -0
- package/dist/commands/db/relocate.js +482 -0
- package/dist/commands/db/relocate.js.map +1 -0
- package/dist/commands/db/rollback-silo.d.ts +44 -0
- package/dist/commands/db/rollback-silo.d.ts.map +1 -0
- package/dist/commands/db/rollback-silo.js +402 -0
- package/dist/commands/db/rollback-silo.js.map +1 -0
- package/dist/commands/deploy/index.d.ts +26 -0
- package/dist/commands/deploy/index.d.ts.map +1 -0
- package/dist/commands/deploy/index.js +107 -0
- package/dist/commands/deploy/index.js.map +1 -0
- package/dist/commands/devops/index.d.ts +6 -0
- package/dist/commands/devops/index.d.ts.map +1 -0
- package/dist/commands/devops/index.js +220 -0
- package/dist/commands/devops/index.js.map +1 -0
- package/dist/commands/domain/index.d.ts +8 -0
- package/dist/commands/domain/index.d.ts.map +1 -0
- package/dist/commands/domain/index.js +386 -0
- package/dist/commands/domain/index.js.map +1 -0
- package/dist/commands/image/index.d.ts +8 -0
- package/dist/commands/image/index.d.ts.map +1 -0
- package/dist/commands/image/index.js +308 -0
- package/dist/commands/image/index.js.map +1 -0
- package/dist/commands/install/factory-reset.d.ts +21 -0
- package/dist/commands/install/factory-reset.d.ts.map +1 -0
- package/dist/commands/install/factory-reset.js +83 -0
- package/dist/commands/install/factory-reset.js.map +1 -0
- package/dist/commands/install/index.d.ts +17 -0
- package/dist/commands/install/index.d.ts.map +1 -0
- package/dist/commands/install/index.js +44 -0
- package/dist/commands/install/index.js.map +1 -0
- package/dist/commands/install/install.d.ts +35 -0
- package/dist/commands/install/install.d.ts.map +1 -0
- package/dist/commands/install/install.js +171 -0
- package/dist/commands/install/install.js.map +1 -0
- package/dist/commands/login/index.d.ts +15 -0
- package/dist/commands/login/index.d.ts.map +1 -0
- package/dist/commands/login/index.js +58 -0
- package/dist/commands/login/index.js.map +1 -0
- package/dist/commands/nginx/index.d.ts +11 -0
- package/dist/commands/nginx/index.d.ts.map +1 -0
- package/dist/commands/nginx/index.js +580 -0
- package/dist/commands/nginx/index.js.map +1 -0
- package/dist/commands/server/bootstrap.d.ts +25 -0
- package/dist/commands/server/bootstrap.d.ts.map +1 -0
- package/dist/commands/server/bootstrap.js +260 -0
- package/dist/commands/server/bootstrap.js.map +1 -0
- package/dist/commands/server/index.d.ts +8 -0
- package/dist/commands/server/index.d.ts.map +1 -0
- package/dist/commands/server/index.js +2524 -0
- package/dist/commands/server/index.js.map +1 -0
- package/dist/commands/setup/index.d.ts +34 -0
- package/dist/commands/setup/index.d.ts.map +1 -0
- package/dist/commands/setup/index.js +423 -0
- package/dist/commands/setup/index.js.map +1 -0
- package/dist/commands/ssl/index.d.ts +8 -0
- package/dist/commands/ssl/index.d.ts.map +1 -0
- package/dist/commands/ssl/index.js +275 -0
- package/dist/commands/ssl/index.js.map +1 -0
- package/dist/commands/superadmin/index.d.ts +16 -0
- package/dist/commands/superadmin/index.d.ts.map +1 -0
- package/dist/commands/superadmin/index.js +81 -0
- package/dist/commands/superadmin/index.js.map +1 -0
- package/dist/commands/tenant/index.d.ts +6 -0
- package/dist/commands/tenant/index.d.ts.map +1 -0
- package/dist/commands/tenant/index.js +192 -0
- package/dist/commands/tenant/index.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +107 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/addon-sign.d.ts +23 -0
- package/dist/lib/addon-sign.d.ts.map +1 -0
- package/dist/lib/addon-sign.js +39 -0
- package/dist/lib/addon-sign.js.map +1 -0
- package/dist/lib/addon-sign.test.d.ts +2 -0
- package/dist/lib/addon-sign.test.d.ts.map +1 -0
- package/dist/lib/addon-sign.test.js +27 -0
- package/dist/lib/addon-sign.test.js.map +1 -0
- package/dist/lib/cdn.d.ts +25 -0
- package/dist/lib/cdn.d.ts.map +1 -0
- package/dist/lib/cdn.js +131 -0
- package/dist/lib/cdn.js.map +1 -0
- package/dist/lib/cloudflare.d.ts +133 -0
- package/dist/lib/cloudflare.d.ts.map +1 -0
- package/dist/lib/cloudflare.js +435 -0
- package/dist/lib/cloudflare.js.map +1 -0
- package/dist/lib/config.d.ts +96 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +132 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/env.d.ts +8 -0
- package/dist/lib/env.d.ts.map +1 -0
- package/dist/lib/env.js +64 -0
- package/dist/lib/env.js.map +1 -0
- package/dist/lib/hosts.d.ts +194 -0
- package/dist/lib/hosts.d.ts.map +1 -0
- package/dist/lib/hosts.js +183 -0
- package/dist/lib/hosts.js.map +1 -0
- package/dist/lib/logger.d.ts +68 -0
- package/dist/lib/logger.d.ts.map +1 -0
- package/dist/lib/logger.js +130 -0
- package/dist/lib/logger.js.map +1 -0
- package/dist/lib/nginx-config.d.ts +78 -0
- package/dist/lib/nginx-config.d.ts.map +1 -0
- package/dist/lib/nginx-config.js +736 -0
- package/dist/lib/nginx-config.js.map +1 -0
- package/dist/lib/ops/addon-dev.d.ts +93 -0
- package/dist/lib/ops/addon-dev.d.ts.map +1 -0
- package/dist/lib/ops/addon-dev.js +237 -0
- package/dist/lib/ops/addon-dev.js.map +1 -0
- package/dist/lib/ops/addon-quality.d.ts +38 -0
- package/dist/lib/ops/addon-quality.d.ts.map +1 -0
- package/dist/lib/ops/addon-quality.js +338 -0
- package/dist/lib/ops/addon-quality.js.map +1 -0
- package/dist/lib/ops/addon-routes.d.ts +49 -0
- package/dist/lib/ops/addon-routes.d.ts.map +1 -0
- package/dist/lib/ops/addon-routes.js +189 -0
- package/dist/lib/ops/addon-routes.js.map +1 -0
- package/dist/lib/ops/addon.d.ts +120 -0
- package/dist/lib/ops/addon.d.ts.map +1 -0
- package/dist/lib/ops/addon.js +260 -0
- package/dist/lib/ops/addon.js.map +1 -0
- package/dist/lib/ops/cdn.d.ts +87 -0
- package/dist/lib/ops/cdn.d.ts.map +1 -0
- package/dist/lib/ops/cdn.js +170 -0
- package/dist/lib/ops/cdn.js.map +1 -0
- package/dist/lib/ops/cf.d.ts +36 -0
- package/dist/lib/ops/cf.d.ts.map +1 -0
- package/dist/lib/ops/cf.js +114 -0
- package/dist/lib/ops/cf.js.map +1 -0
- package/dist/lib/ops/compose.d.ts +95 -0
- package/dist/lib/ops/compose.d.ts.map +1 -0
- package/dist/lib/ops/compose.js +165 -0
- package/dist/lib/ops/compose.js.map +1 -0
- package/dist/lib/ops/core.d.ts +117 -0
- package/dist/lib/ops/core.d.ts.map +1 -0
- package/dist/lib/ops/core.js +322 -0
- package/dist/lib/ops/core.js.map +1 -0
- package/dist/lib/ops/db.d.ts +116 -0
- package/dist/lib/ops/db.d.ts.map +1 -0
- package/dist/lib/ops/db.js +351 -0
- package/dist/lib/ops/db.js.map +1 -0
- package/dist/lib/ops/dns.d.ts +111 -0
- package/dist/lib/ops/dns.d.ts.map +1 -0
- package/dist/lib/ops/dns.js +306 -0
- package/dist/lib/ops/dns.js.map +1 -0
- package/dist/lib/ops/image.d.ts +94 -0
- package/dist/lib/ops/image.d.ts.map +1 -0
- package/dist/lib/ops/image.js +159 -0
- package/dist/lib/ops/image.js.map +1 -0
- package/dist/lib/ops/nginx.d.ts +114 -0
- package/dist/lib/ops/nginx.d.ts.map +1 -0
- package/dist/lib/ops/nginx.js +388 -0
- package/dist/lib/ops/nginx.js.map +1 -0
- package/dist/lib/ops/redis.d.ts +7 -0
- package/dist/lib/ops/redis.d.ts.map +1 -0
- package/dist/lib/ops/redis.js +35 -0
- package/dist/lib/ops/redis.js.map +1 -0
- package/dist/lib/ops/ssh.d.ts +127 -0
- package/dist/lib/ops/ssh.d.ts.map +1 -0
- package/dist/lib/ops/ssh.js +269 -0
- package/dist/lib/ops/ssh.js.map +1 -0
- package/dist/lib/prompts.d.ts +46 -0
- package/dist/lib/prompts.d.ts.map +1 -0
- package/dist/lib/prompts.js +113 -0
- package/dist/lib/prompts.js.map +1 -0
- package/dist/lib/sast.d.ts +43 -0
- package/dist/lib/sast.d.ts.map +1 -0
- package/dist/lib/sast.js +79 -0
- package/dist/lib/sast.js.map +1 -0
- package/dist/lib/sast.test.d.ts +2 -0
- package/dist/lib/sast.test.d.ts.map +1 -0
- package/dist/lib/sast.test.js +33 -0
- package/dist/lib/sast.test.js.map +1 -0
- package/dist/lib/shell.d.ts +61 -0
- package/dist/lib/shell.d.ts.map +1 -0
- package/dist/lib/shell.js +183 -0
- package/dist/lib/shell.js.map +1 -0
- package/dist/lib/ssh-config.d.ts +37 -0
- package/dist/lib/ssh-config.d.ts.map +1 -0
- package/dist/lib/ssh-config.js +122 -0
- package/dist/lib/ssh-config.js.map +1 -0
- package/dist/lib/tenant-scope.d.ts +38 -0
- package/dist/lib/tenant-scope.d.ts.map +1 -0
- package/dist/lib/tenant-scope.js +129 -0
- package/dist/lib/tenant-scope.js.map +1 -0
- package/dist/lib/tenant-scope.test.d.ts +2 -0
- package/dist/lib/tenant-scope.test.d.ts.map +1 -0
- package/dist/lib/tenant-scope.test.js +223 -0
- package/dist/lib/tenant-scope.test.js.map +1 -0
- package/package.json +58 -0
- package/templates/bootstrap/.env.template +54 -0
- package/templates/bootstrap/docker-compose.yml +145 -0
- package/templates/vhost.conf.tmpl +446 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nginx-config.js","sourceRoot":"","sources":["../../src/lib/nginx-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAwBH,+CAA+C;AAC/C,+CAA+C;AAC/C,+CAA+C;AAE/C;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,aAAqB;IACpD,MAAM,OAAO,GAAmB,EAAE,CAAC;IAEnC,wBAAwB;IACxB,MAAM,SAAS,GAAG,oDAAoD,CAAC;IACvE,IAAI,KAAK,CAAC;IACV,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IAEvC,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACxD,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,+BAA+B;IAC/B,MAAM,eAAe,GAAG,qCAAqC,CAAC;IAC9D,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEhD,OAAO,CAAC,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC9D,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACxF,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,wBAAwB;IACxB,MAAM,QAAQ,GAAG,2DAA2D,CAAC;IAC7E,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC/C,MAAM,cAAc,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAE1D,uBAAuB;IACvB,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,aAAa,EAAE,CAAC;QAC3C,OAAO,CAAC,IAAI,CAAC;YACX,MAAM;YACN,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,cAAc;SAC5B,CAAC,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,aAAqB;IACzD,MAAM,OAAO,GAAuC,EAAE,CAAC;IAEvD,8CAA8C;IAC9C,MAAM,aAAa,GAAG,yCAAyC,CAAC;IAChE,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAEpD,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,WAAW,GAAG,qCAAqC,CAAC;QAC1D,IAAI,KAAK,CAAC;QAEV,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACvD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACxB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,gEAAgE;YAChE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxF,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,+CAA+C;AAC/C,qCAAqC;AACrC,+CAA+C;AAE/C;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAc;IAChD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC7C,OAAO,4BAA4B,OAAO;wBACpB,OAAO;uBACR,OAAO,kBAAkB,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAAc,EAAE,QAAgB;IACxE,OAAO,OAAO,MAAM,UAAU,QAAQ;UAC9B,MAAM,MAAM,QAAQ;UACpB,MAAM,MAAM,QAAQ,GAAG,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAc,EAAE,QAAgB;IAClE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC7C,OAAO,cAAc,OAAO,OAAO,QAAQ,GAAG,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAAgB;IACpD,OAAO,OAAO,QAAQ,mBAAmB,QAAQ,GAAG,CAAC;AACvD,CAAC;AAED,+CAA+C;AAC/C,gCAAgC;AAChC,+CAA+C;AAE/C;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAC/B,aAAqB,EACrB,MAAc,EACd,QAAgB,EAChB,WAAmB;IAEnB,IAAI,SAAS,GAAG,aAAa,CAAC;IAE9B,sBAAsB;IACtB,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACzD,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QACnB,MAAM,WAAW,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAChD,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAChG,CAAC;IAED,6BAA6B;IAC7B,MAAM,cAAc,GAAG,+DAA+D,CAAC;IACvF,MAAM,cAAc,GAAG,SAAS,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IACvD,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,aAAa,GAAG,SAAS,MAAM,UAAU,QAAQ,cAAc,MAAM,MAAM,QAAQ,cAAc,MAAM,MAAM,QAAQ,+CAA+C,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,QAAQ,OAAO,CAAC;QAC7N,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,cAAc,EAAE,KAAK,aAAa,eAAe,QAAQ,GAAG,CAAC,CAAC;IAC9F,CAAC;IAED,+BAA+B;IAC/B,MAAM,aAAa,GAAG,IAAI,MAAM,CAAC,GAAG,QAAQ,mBAAmB,QAAQ,GAAG,CAAC,CAAC;IAC5E,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACnC,MAAM,cAAc,GAAG,SAAS,CAAC,OAAO,CAAC,eAAe,EAAE,SAAS,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC,CAAC;QAC5G,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,aAAa,GAAG,OAAO,QAAQ,mBAAmB,QAAQ,KAAK,CAAC;YACtE,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,GAAG,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACnG,CAAC;IACH,CAAC;IAED,yCAAyC;IACzC,MAAM,kBAAkB,GAAG,qEAAqE,CAAC;IACjG,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACrD,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,MAAM,EAAE,CAAC,EAAE,CAAC;QACvD,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,kBAAkB,EAAE,YAAY,MAAM,IAAI,CAAC,CAAC;IAC5E,CAAC;IAED,0CAA0C;IAC1C,MAAM,iBAAiB,GAAG,6JAA6J,CAAC;IACxL,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACvD,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACnD,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;YAC5C,MAAM,cAAc,GAAG,qCAAqC,aAAa,GAAG,CAAC;YAC7E,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,iBAAiB,EAAE,yBAAyB,cAAc,IAAI,CAAC,CAAC;QAChG,CAAC;IACH,CAAC;IAED,kCAAkC;IAClC,MAAM,eAAe,GAAG,uFAAuF,CAAC;IAChH,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IACnD,IAAI,SAAS,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAChD,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,eAAe,EAAE,QAAQ,MAAM,QAAQ,MAAM,IAAI,CAAC,CAAC;IACnF,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,aAAqB,EAAE,MAAc;IAC1E,IAAI,SAAS,GAAG,aAAa,CAAC;IAC9B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAE7C,yBAAyB;IACzB,MAAM,SAAS,GAAG,IAAI,MAAM,CAAC,0CAA0C,OAAO,yBAAyB,EAAE,GAAG,CAAC,CAAC;IAC9G,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAE7C,MAAM,YAAY,GAAG,IAAI,MAAM,CAAC,+BAA+B,OAAO,yBAAyB,EAAE,GAAG,CAAC,CAAC;IACtG,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IAEhD,MAAM,iBAAiB,GAAG,IAAI,MAAM,CAAC,kCAAkC,OAAO,yBAAyB,EAAE,GAAG,CAAC,CAAC;IAC9G,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;IAErD,gCAAgC;IAChC,MAAM,cAAc,GAAG,IAAI,MAAM,CAAC,OAAO,MAAM,kBAAkB,EAAE,GAAG,CAAC,CAAC;IACxE,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IAElD,MAAM,WAAW,GAAG,IAAI,MAAM,CAAC,aAAa,MAAM,kBAAkB,EAAE,GAAG,CAAC,CAAC;IAC3E,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAE/C,MAAM,WAAW,GAAG,IAAI,MAAM,CAAC,aAAa,MAAM,kBAAkB,EAAE,GAAG,CAAC,CAAC;IAC3E,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAE/C,yBAAyB;IACzB,MAAM,WAAW,GAAG,IAAI,MAAM,CAAC,qBAAqB,OAAO,qBAAqB,EAAE,GAAG,CAAC,CAAC;IACvF,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAE/C,iCAAiC;IACjC,MAAM,cAAc,GAAG,IAAI,MAAM,CAAC,aAAa,MAAM,EAAE,EAAE,GAAG,CAAC,CAAC;IAC9D,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IAElD,oCAAoC;IACpC,MAAM,iBAAiB,GAAG,IAAI,MAAM,CAAC,mEAAmE,OAAO,KAAK,EAAE,GAAG,CAAC,CAAC;IAC3H,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;IAErD,kCAAkC;IAClC,MAAM,eAAe,GAAG,IAAI,MAAM,CAAC,OAAO,MAAM,EAAE,EAAE,GAAG,CAAC,CAAC;IACzD,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IAEnD,MAAM,cAAc,GAAG,IAAI,MAAM,CAAC,aAAa,MAAM,EAAE,EAAE,GAAG,CAAC,CAAC;IAC9D,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IAElD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,aAAqB,EAAE,QAAgB;IAC3E,IAAI,SAAS,GAAG,aAAa,CAAC;IAE9B,wCAAwC;IACxC,SAAS,GAAG,SAAS,CAAC,OAAO,CAC3B,2DAA2D,EAC3D,kCAAkC,QAAQ,OAAO,CAClD,CAAC;IAEF,SAAS,GAAG,SAAS,CAAC,OAAO,CAC3B,+DAA+D,EAC/D,sCAAsC,QAAQ,OAAO,CACtD,CAAC;IAEF,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,aAAqB,EAAE,MAAc;IAC3E,IAAI,SAAS,GAAG,aAAa,CAAC;IAE9B,6BAA6B;IAC7B,SAAS,GAAG,SAAS,CAAC,OAAO,CAC3B,qCAAqC,EACrC,oBAAoB,MAAM,IAAI,CAC/B,CAAC;IAEF,+BAA+B;IAC/B,SAAS,GAAG,SAAS,CAAC,OAAO,CAC3B,gCAAgC,EAChC,eAAe,MAAM,IAAI,CAC1B,CAAC;IAEF,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,+CAA+C;AAC/C,YAAY;AACZ,+CAA+C;AAE/C;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,aAAqB;IACvD,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,4BAA4B;IAC5B,MAAM,UAAU,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;IAC5D,MAAM,WAAW,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;IAC7D,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,sBAAsB,UAAU,UAAU,WAAW,QAAQ,CAAC,CAAC;IAC7E,CAAC;IAED,8BAA8B;IAC9B,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,+BAA+B,CAAC,EAAE,CAAC;QAC7D,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,CAAC;QACtD,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC;QACpD,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,CAAC;QACtD,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACvC,CAAC;IAED,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;QAC1B,MAAM;KACP,CAAC;AACJ,CAAC;AAED,+CAA+C;AAC/C,wBAAwB;AACxB,+CAA+C;AAE/C;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAuB;IAC7D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACxC,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;IAE3C,wBAAwB;IACxB,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE/E,mCAAmC;IACnC,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QACxC,OAAO,SAAS,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,QAAQ;MACtC,CAAC,CAAC,MAAM,UAAU,CAAC,CAAC,QAAQ;UACxB,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,QAAQ;UACxB,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,QAAQ,GAAG,CAAC;IACpC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEhB,gCAAgC;IAChC,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QACzC,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC/C,OAAO,cAAc,OAAO,OAAO,CAAC,CAAC,QAAQ,GAAG,CAAC;IACnD,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,sBAAsB;IACtB,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC/D,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEzF,6BAA6B;IAC7B,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrE,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QACxC,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC/C,OAAO,qCAAqC,OAAO,GAAG,CAAC;IACzD,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAC9B,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEtF,OAAO;;;;;;;;;;uBAUc,aAAa;EAClC,WAAW;kBACK,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsE7B,iBAAiB;;;EAGjB,kBAAkB;;2BAEO,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ;;;;;;;EAO5C,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA4BC,cAAc;;qCAEK,WAAW;yCACP,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAuDlC,iBAAiB;;qCAEE,WAAW;yCACP,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAmHlC,eAAe;;qCAEI,WAAW;yCACP,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqJnD,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Helpers for the `ci addon dev` lifecycle.
|
|
3
|
+
*
|
|
4
|
+
* The dev session has three pieces of state that must stay in sync:
|
|
5
|
+
* 1. The vite process serving the addon source
|
|
6
|
+
* 2. `cores/<core>/.dev-addon-overrides.json` — the runtime config map
|
|
7
|
+
* Nuxt reads via core-loader; tells useAddonLifecycle to fetch
|
|
8
|
+
* entry.ts from vite instead of the dist build
|
|
9
|
+
* 3. `nginx/snippets/addon-dev-routes.conf` — the per-addon location
|
|
10
|
+
* blocks (HMR WS + HTTP module proxy) included by `dev.conf`
|
|
11
|
+
*
|
|
12
|
+
* If any one of these drifts (vite crashes, override stays; snippet stays,
|
|
13
|
+
* override removed; …) the addon page either 502s or shows the error
|
|
14
|
+
* overlay. The CLI treats all three as one transaction: start writes all
|
|
15
|
+
* three, stop tears down all three, and `--reset` nukes them when they
|
|
16
|
+
* fall out of sync (e.g. after a laptop sleep / process kill).
|
|
17
|
+
*
|
|
18
|
+
* The override map is the source of truth: nginx snippets are regenerated
|
|
19
|
+
* from it on every start/stop (full rewrite, not surgical edit) so partial
|
|
20
|
+
* writes can't leave the snippets file corrupted.
|
|
21
|
+
*/
|
|
22
|
+
export interface DevSessionEntry {
|
|
23
|
+
base: string;
|
|
24
|
+
port: number;
|
|
25
|
+
pid?: number;
|
|
26
|
+
}
|
|
27
|
+
export type DevOverrideMap = Record<string, DevSessionEntry>;
|
|
28
|
+
export declare const OVERRIDE_REL_PATH = "cores/dev/.dev-addon-overrides.json";
|
|
29
|
+
export declare const SNIPPETS_REL_PATH = "nginx/snippets/addon-dev-routes.conf";
|
|
30
|
+
export declare const VITE_PORT_BASE = 5173;
|
|
31
|
+
export declare const VITE_PORT_MAX = 5273;
|
|
32
|
+
/**
|
|
33
|
+
* Walk up from a starting directory looking for the dev-shell root.
|
|
34
|
+
* Markers: nginx/snippets/ + cores/dev/addons/ + docker-compose.yml.
|
|
35
|
+
* Personnel typically run `ci addon dev` from inside an addon dir or from
|
|
36
|
+
* dev-shell itself; we find dev-shell so they don't have to remember.
|
|
37
|
+
*/
|
|
38
|
+
export declare function findShellRoot(startDir: string): string | null;
|
|
39
|
+
export declare function overrideMapPath(shellRoot: string): string;
|
|
40
|
+
export declare function snippetsFilePath(shellRoot: string): string;
|
|
41
|
+
/** Returns an empty object when the file is missing or malformed — the
|
|
42
|
+
* alternative (throw) would block the lifecycle CLI from ever recovering
|
|
43
|
+
* a corrupted state. Malformed JSON is surfaced via a warning instead. */
|
|
44
|
+
export declare function readOverrideMap(shellRoot: string): Promise<DevOverrideMap>;
|
|
45
|
+
/** Atomic write via temp file + rename so a kill between writeFile and
|
|
46
|
+
* rename leaves the previous version intact (rather than truncated). */
|
|
47
|
+
export declare function writeOverrideMap(shellRoot: string, map: DevOverrideMap): Promise<void>;
|
|
48
|
+
/** TCP listener probe. Returns true when *anything* is listening on the
|
|
49
|
+
* port — we don't try to distinguish "our vite" from "someone else's
|
|
50
|
+
* service", because either way we shouldn't reuse the port. */
|
|
51
|
+
export declare function isPortInUse(port: number): Promise<boolean>;
|
|
52
|
+
/** Walks the pool and returns the first port not currently in the
|
|
53
|
+
* override map AND not listening on TCP. The map check is cheap and
|
|
54
|
+
* catches our own active sessions; the TCP probe catches anything else
|
|
55
|
+
* on the personnel's machine (another vite, a dev server, etc.). */
|
|
56
|
+
export declare function findFreePort(map: DevOverrideMap): Promise<number>;
|
|
57
|
+
/** Process-alive check. Sending signal 0 doesn't actually deliver a
|
|
58
|
+
* signal; it just probes whether the kernel has a process with that PID
|
|
59
|
+
* the current user can signal. We use this on `--list` to spot dead
|
|
60
|
+
* sessions whose entry still lingers in the override map. */
|
|
61
|
+
export declare function isPidAlive(pid: number | undefined): boolean;
|
|
62
|
+
/** Full rewrite of the snippets file from the override map. Partial
|
|
63
|
+
* writes can't corrupt state because we're not editing in place — the
|
|
64
|
+
* entire file is replaced atomically. Empty map → empty file (one
|
|
65
|
+
* header comment, no location blocks), which nginx treats as a no-op
|
|
66
|
+
* include. */
|
|
67
|
+
export declare function writeNginxSnippets(shellRoot: string, map: DevOverrideMap): Promise<void>;
|
|
68
|
+
/** Try `nginx -s reload` inside the container first (fast, no downtime).
|
|
69
|
+
* Fall back to `docker compose restart nginx` when reload doesn't pick
|
|
70
|
+
* the new file up — macOS Docker Desktop's bind mounts can serve a
|
|
71
|
+
* stale view of the snippets file for a few seconds after a host-side
|
|
72
|
+
* write, and `-s reload` rereads the cached version. The restart forces
|
|
73
|
+
* a fresh mount snapshot. Faz 1 POC surfaced this; documented inline so
|
|
74
|
+
* the workaround doesn't look like cargo-culting in a year.
|
|
75
|
+
*
|
|
76
|
+
* Validation (`nginx -t`) always runs first — a broken config doesn't
|
|
77
|
+
* hit a running nginx. */
|
|
78
|
+
export declare function reloadNginx(shellRoot: string, { allowCompose }?: {
|
|
79
|
+
allowCompose?: boolean;
|
|
80
|
+
}): Promise<{
|
|
81
|
+
ok: boolean;
|
|
82
|
+
method: 'reload' | 'compose-restart' | 'failed';
|
|
83
|
+
detail: string;
|
|
84
|
+
}>;
|
|
85
|
+
/** Build the `base` URL the override map publishes to Nuxt. Lives here
|
|
86
|
+
* so the URL pattern is defined in one place and both `ci addon dev`
|
|
87
|
+
* and any future tooling agree on what useAddonLifecycle expects. */
|
|
88
|
+
export declare function buildOverrideBase(addonName: string): string;
|
|
89
|
+
/** True if the addon dir on disk has the vite dev config personnel needs
|
|
90
|
+
* to start a dev session. When false, the CLI should surface
|
|
91
|
+
* `ci addon scaffold-dev <Name>` as the next step. */
|
|
92
|
+
export declare function hasViteDevConfig(shellRoot: string, addonName: string): Promise<boolean>;
|
|
93
|
+
//# sourceMappingURL=addon-dev.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"addon-dev.d.ts","sourceRoot":"","sources":["../../../src/lib/ops/addon-dev.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAWH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;AAG5D,eAAO,MAAM,iBAAiB,wCAAwC,CAAA;AACtE,eAAO,MAAM,iBAAiB,yCAAyC,CAAA;AAMvE,eAAO,MAAM,cAAc,OAAO,CAAA;AAClC,eAAO,MAAM,aAAa,OAAO,CAAA;AAQjC;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAa7D;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED;;2EAE2E;AAC3E,wBAAsB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAWhF;AAED;yEACyE;AACzE,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAa5F;AAED;;gEAEgE;AAChE,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAY1D;AAED;;;qEAGqE;AACrE,wBAAsB,YAAY,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAQvE;AAED;;;8DAG8D;AAC9D,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAU3D;AA+BD;;;;eAIe;AACf,wBAAsB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAW9F;AAED;;;;;;;;;2BAS2B;AAC3B,wBAAsB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,YAAmB,EAAE,GAAE;IAAE,YAAY,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,QAAQ,GAAG,iBAAiB,GAAG,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAmBxM;AAED;;sEAEsE;AACtE,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED;;uDAEuD;AACvD,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAG7F"}
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Helpers for the `ci addon dev` lifecycle.
|
|
3
|
+
*
|
|
4
|
+
* The dev session has three pieces of state that must stay in sync:
|
|
5
|
+
* 1. The vite process serving the addon source
|
|
6
|
+
* 2. `cores/<core>/.dev-addon-overrides.json` — the runtime config map
|
|
7
|
+
* Nuxt reads via core-loader; tells useAddonLifecycle to fetch
|
|
8
|
+
* entry.ts from vite instead of the dist build
|
|
9
|
+
* 3. `nginx/snippets/addon-dev-routes.conf` — the per-addon location
|
|
10
|
+
* blocks (HMR WS + HTTP module proxy) included by `dev.conf`
|
|
11
|
+
*
|
|
12
|
+
* If any one of these drifts (vite crashes, override stays; snippet stays,
|
|
13
|
+
* override removed; …) the addon page either 502s or shows the error
|
|
14
|
+
* overlay. The CLI treats all three as one transaction: start writes all
|
|
15
|
+
* three, stop tears down all three, and `--reset` nukes them when they
|
|
16
|
+
* fall out of sync (e.g. after a laptop sleep / process kill).
|
|
17
|
+
*
|
|
18
|
+
* The override map is the source of truth: nginx snippets are regenerated
|
|
19
|
+
* from it on every start/stop (full rewrite, not surgical edit) so partial
|
|
20
|
+
* writes can't leave the snippets file corrupted.
|
|
21
|
+
*/
|
|
22
|
+
import path from 'node:path';
|
|
23
|
+
import net from 'node:net';
|
|
24
|
+
import { spawnSync } from 'node:child_process';
|
|
25
|
+
import fs from 'fs-extra';
|
|
26
|
+
// Where things live, relative to the dev-shell root.
|
|
27
|
+
export const OVERRIDE_REL_PATH = 'cores/dev/.dev-addon-overrides.json';
|
|
28
|
+
export const SNIPPETS_REL_PATH = 'nginx/snippets/addon-dev-routes.conf';
|
|
29
|
+
// Port pool. 5173 is vite's default; we stay close to it so personnel
|
|
30
|
+
// recognise the port range. 100 slots cover unrealistic team-on-one-box
|
|
31
|
+
// scenarios (each personnel has their own laptop, so most installations
|
|
32
|
+
// will only ever use 1–2 ports).
|
|
33
|
+
export const VITE_PORT_BASE = 5173;
|
|
34
|
+
export const VITE_PORT_MAX = 5273;
|
|
35
|
+
const NGINX_CONTAINER = 'addon_dev_nginx';
|
|
36
|
+
const NGINX_SNIPPET_HEADER = `# AUTO-GENERATED by \`ci addon dev <Name>\` — do not edit by hand.
|
|
37
|
+
# Per-addon HMR proxy snippets. Regenerated from cores/dev/.dev-addon-overrides.json
|
|
38
|
+
# every time \`ci addon dev\` or \`ci addon stop\` runs. Manual edits will be lost.
|
|
39
|
+
`;
|
|
40
|
+
/**
|
|
41
|
+
* Walk up from a starting directory looking for the dev-shell root.
|
|
42
|
+
* Markers: nginx/snippets/ + cores/dev/addons/ + docker-compose.yml.
|
|
43
|
+
* Personnel typically run `ci addon dev` from inside an addon dir or from
|
|
44
|
+
* dev-shell itself; we find dev-shell so they don't have to remember.
|
|
45
|
+
*/
|
|
46
|
+
export function findShellRoot(startDir) {
|
|
47
|
+
let current = path.resolve(startDir);
|
|
48
|
+
for (let i = 0; i < 8; i++) {
|
|
49
|
+
const isShell = fs.existsSync(path.join(current, 'nginx', 'snippets')) &&
|
|
50
|
+
fs.existsSync(path.join(current, 'cores', 'dev', 'addons')) &&
|
|
51
|
+
fs.existsSync(path.join(current, 'docker-compose.yml'));
|
|
52
|
+
if (isShell)
|
|
53
|
+
return current;
|
|
54
|
+
const parent = path.dirname(current);
|
|
55
|
+
if (parent === current)
|
|
56
|
+
return null;
|
|
57
|
+
current = parent;
|
|
58
|
+
}
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
export function overrideMapPath(shellRoot) {
|
|
62
|
+
return path.join(shellRoot, OVERRIDE_REL_PATH);
|
|
63
|
+
}
|
|
64
|
+
export function snippetsFilePath(shellRoot) {
|
|
65
|
+
return path.join(shellRoot, SNIPPETS_REL_PATH);
|
|
66
|
+
}
|
|
67
|
+
/** Returns an empty object when the file is missing or malformed — the
|
|
68
|
+
* alternative (throw) would block the lifecycle CLI from ever recovering
|
|
69
|
+
* a corrupted state. Malformed JSON is surfaced via a warning instead. */
|
|
70
|
+
export async function readOverrideMap(shellRoot) {
|
|
71
|
+
const filePath = overrideMapPath(shellRoot);
|
|
72
|
+
try {
|
|
73
|
+
if (!(await fs.pathExists(filePath)))
|
|
74
|
+
return {};
|
|
75
|
+
const raw = await fs.readFile(filePath, 'utf8');
|
|
76
|
+
if (!raw.trim())
|
|
77
|
+
return {};
|
|
78
|
+
return JSON.parse(raw);
|
|
79
|
+
}
|
|
80
|
+
catch (err) {
|
|
81
|
+
console.warn(`⚠ Corrupt ${OVERRIDE_REL_PATH} — treating as empty (${err.message})`);
|
|
82
|
+
return {};
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
/** Atomic write via temp file + rename so a kill between writeFile and
|
|
86
|
+
* rename leaves the previous version intact (rather than truncated). */
|
|
87
|
+
export async function writeOverrideMap(shellRoot, map) {
|
|
88
|
+
const filePath = overrideMapPath(shellRoot);
|
|
89
|
+
await fs.ensureDir(path.dirname(filePath));
|
|
90
|
+
if (Object.keys(map).length === 0) {
|
|
91
|
+
// Empty map → remove the file entirely. core-loader treats missing as
|
|
92
|
+
// empty, so this keeps the dev tenant pristine when no `ci addon dev`
|
|
93
|
+
// sessions are active.
|
|
94
|
+
await fs.remove(filePath);
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
const tmp = `${filePath}.tmp.${process.pid}`;
|
|
98
|
+
await fs.writeFile(tmp, JSON.stringify(map, null, 2) + '\n', 'utf8');
|
|
99
|
+
await fs.move(tmp, filePath, { overwrite: true });
|
|
100
|
+
}
|
|
101
|
+
/** TCP listener probe. Returns true when *anything* is listening on the
|
|
102
|
+
* port — we don't try to distinguish "our vite" from "someone else's
|
|
103
|
+
* service", because either way we shouldn't reuse the port. */
|
|
104
|
+
export function isPortInUse(port) {
|
|
105
|
+
return new Promise((resolve) => {
|
|
106
|
+
const tester = net.createServer();
|
|
107
|
+
tester.once('error', (err) => {
|
|
108
|
+
// EADDRINUSE = in use; anything else = treat as in use (be safe).
|
|
109
|
+
resolve(err.code === 'EADDRINUSE' || true);
|
|
110
|
+
});
|
|
111
|
+
tester.once('listening', () => {
|
|
112
|
+
tester.close(() => resolve(false));
|
|
113
|
+
});
|
|
114
|
+
tester.listen(port, '127.0.0.1');
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
/** Walks the pool and returns the first port not currently in the
|
|
118
|
+
* override map AND not listening on TCP. The map check is cheap and
|
|
119
|
+
* catches our own active sessions; the TCP probe catches anything else
|
|
120
|
+
* on the personnel's machine (another vite, a dev server, etc.). */
|
|
121
|
+
export async function findFreePort(map) {
|
|
122
|
+
const reserved = new Set(Object.values(map).map((entry) => entry.port));
|
|
123
|
+
for (let port = VITE_PORT_BASE; port <= VITE_PORT_MAX; port++) {
|
|
124
|
+
if (reserved.has(port))
|
|
125
|
+
continue;
|
|
126
|
+
if (await isPortInUse(port))
|
|
127
|
+
continue;
|
|
128
|
+
return port;
|
|
129
|
+
}
|
|
130
|
+
throw new Error(`No free port in ${VITE_PORT_BASE}-${VITE_PORT_MAX}. Run \`ci addon dev --reset\` to clear stale entries.`);
|
|
131
|
+
}
|
|
132
|
+
/** Process-alive check. Sending signal 0 doesn't actually deliver a
|
|
133
|
+
* signal; it just probes whether the kernel has a process with that PID
|
|
134
|
+
* the current user can signal. We use this on `--list` to spot dead
|
|
135
|
+
* sessions whose entry still lingers in the override map. */
|
|
136
|
+
export function isPidAlive(pid) {
|
|
137
|
+
if (pid === undefined || pid <= 0)
|
|
138
|
+
return false;
|
|
139
|
+
try {
|
|
140
|
+
process.kill(pid, 0);
|
|
141
|
+
return true;
|
|
142
|
+
}
|
|
143
|
+
catch (err) {
|
|
144
|
+
const code = err.code;
|
|
145
|
+
// EPERM means "process exists but you can't signal it" → alive.
|
|
146
|
+
return code === 'EPERM';
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
/** Generate one location block for an active session.
|
|
150
|
+
* Layout matches the POC snippet that shipped in Faz 1 — exact-match
|
|
151
|
+
* WebSocket route first (no URI strip; `server.hmr.path: '__hmr'` makes
|
|
152
|
+
* vite join base+path internally), then the prefix HTTP route (NO
|
|
153
|
+
* proxy_pass trailing slash; vite's `base` config expects to see the
|
|
154
|
+
* full prefix and strips it itself). */
|
|
155
|
+
function renderSnippet(addonName, port) {
|
|
156
|
+
return `
|
|
157
|
+
# ── ${addonName} ─────────────────────────────────────────────────
|
|
158
|
+
location = /__addon-dev/${addonName}/__hmr {
|
|
159
|
+
proxy_pass http://host.docker.internal:${port};
|
|
160
|
+
proxy_http_version 1.1;
|
|
161
|
+
proxy_set_header Upgrade $http_upgrade;
|
|
162
|
+
proxy_set_header Connection $connection_upgrade;
|
|
163
|
+
proxy_set_header Host $host;
|
|
164
|
+
proxy_read_timeout 3600s;
|
|
165
|
+
proxy_send_timeout 3600s;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
location /__addon-dev/${addonName}/ {
|
|
169
|
+
proxy_pass http://host.docker.internal:${port};
|
|
170
|
+
proxy_http_version 1.1;
|
|
171
|
+
proxy_set_header Upgrade $http_upgrade;
|
|
172
|
+
proxy_set_header Connection $connection_upgrade;
|
|
173
|
+
proxy_set_header Host $host;
|
|
174
|
+
}
|
|
175
|
+
`;
|
|
176
|
+
}
|
|
177
|
+
/** Full rewrite of the snippets file from the override map. Partial
|
|
178
|
+
* writes can't corrupt state because we're not editing in place — the
|
|
179
|
+
* entire file is replaced atomically. Empty map → empty file (one
|
|
180
|
+
* header comment, no location blocks), which nginx treats as a no-op
|
|
181
|
+
* include. */
|
|
182
|
+
export async function writeNginxSnippets(shellRoot, map) {
|
|
183
|
+
const filePath = snippetsFilePath(shellRoot);
|
|
184
|
+
await fs.ensureDir(path.dirname(filePath));
|
|
185
|
+
const blocks = Object.entries(map)
|
|
186
|
+
.sort(([a], [b]) => a.localeCompare(b))
|
|
187
|
+
.map(([name, entry]) => renderSnippet(name, entry.port))
|
|
188
|
+
.join('\n');
|
|
189
|
+
const content = NGINX_SNIPPET_HEADER + blocks;
|
|
190
|
+
const tmp = `${filePath}.tmp.${process.pid}`;
|
|
191
|
+
await fs.writeFile(tmp, content, 'utf8');
|
|
192
|
+
await fs.move(tmp, filePath, { overwrite: true });
|
|
193
|
+
}
|
|
194
|
+
/** Try `nginx -s reload` inside the container first (fast, no downtime).
|
|
195
|
+
* Fall back to `docker compose restart nginx` when reload doesn't pick
|
|
196
|
+
* the new file up — macOS Docker Desktop's bind mounts can serve a
|
|
197
|
+
* stale view of the snippets file for a few seconds after a host-side
|
|
198
|
+
* write, and `-s reload` rereads the cached version. The restart forces
|
|
199
|
+
* a fresh mount snapshot. Faz 1 POC surfaced this; documented inline so
|
|
200
|
+
* the workaround doesn't look like cargo-culting in a year.
|
|
201
|
+
*
|
|
202
|
+
* Validation (`nginx -t`) always runs first — a broken config doesn't
|
|
203
|
+
* hit a running nginx. */
|
|
204
|
+
export async function reloadNginx(shellRoot, { allowCompose = true } = {}) {
|
|
205
|
+
const test = spawnSync('docker', ['exec', NGINX_CONTAINER, 'nginx', '-t'], { encoding: 'utf8' });
|
|
206
|
+
if (test.status !== 0) {
|
|
207
|
+
return { ok: false, method: 'failed', detail: (test.stderr || test.stdout || 'nginx -t failed').trim() };
|
|
208
|
+
}
|
|
209
|
+
const reload = spawnSync('docker', ['exec', NGINX_CONTAINER, 'nginx', '-s', 'reload'], { encoding: 'utf8' });
|
|
210
|
+
if (reload.status === 0) {
|
|
211
|
+
return { ok: true, method: 'reload', detail: 'nginx -s reload OK' };
|
|
212
|
+
}
|
|
213
|
+
if (!allowCompose) {
|
|
214
|
+
return { ok: false, method: 'failed', detail: (reload.stderr || reload.stdout || 'reload failed').trim() };
|
|
215
|
+
}
|
|
216
|
+
// Compose restart fallback — requires being run from a dir where compose
|
|
217
|
+
// resolves the dev-shell project (shellRoot has docker-compose.yml).
|
|
218
|
+
const restart = spawnSync('docker', ['compose', 'restart', 'nginx'], { encoding: 'utf8', cwd: shellRoot });
|
|
219
|
+
if (restart.status === 0) {
|
|
220
|
+
return { ok: true, method: 'compose-restart', detail: 'docker compose restart nginx OK (used after reload failed)' };
|
|
221
|
+
}
|
|
222
|
+
return { ok: false, method: 'failed', detail: (restart.stderr || restart.stdout || 'compose restart failed').trim() };
|
|
223
|
+
}
|
|
224
|
+
/** Build the `base` URL the override map publishes to Nuxt. Lives here
|
|
225
|
+
* so the URL pattern is defined in one place and both `ci addon dev`
|
|
226
|
+
* and any future tooling agree on what useAddonLifecycle expects. */
|
|
227
|
+
export function buildOverrideBase(addonName) {
|
|
228
|
+
return `/__addon-dev/${addonName}/ui`;
|
|
229
|
+
}
|
|
230
|
+
/** True if the addon dir on disk has the vite dev config personnel needs
|
|
231
|
+
* to start a dev session. When false, the CLI should surface
|
|
232
|
+
* `ci addon scaffold-dev <Name>` as the next step. */
|
|
233
|
+
export async function hasViteDevConfig(shellRoot, addonName) {
|
|
234
|
+
const cfg = path.join(shellRoot, 'cores', 'dev', 'addons', addonName, 'vite.config.dev.js');
|
|
235
|
+
return fs.pathExists(cfg);
|
|
236
|
+
}
|
|
237
|
+
//# sourceMappingURL=addon-dev.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"addon-dev.js","sourceRoot":"","sources":["../../../src/lib/ops/addon-dev.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Quality stack templates shared by `ci addon create` (new addons) and
|
|
3
|
+
* `ci addon scaffold-quality` (existing addon backport — Faz 5B).
|
|
4
|
+
*
|
|
5
|
+
* Tooling binaries (eslint, vue-tsc, prettier) live in dev-shell's
|
|
6
|
+
* top-level node_modules so a single `npm install` covers every addon
|
|
7
|
+
* on the machine — the configs here just point each addon's source
|
|
8
|
+
* files at the shared toolchain.
|
|
9
|
+
*
|
|
10
|
+
* Legacy .eslintrc.json instead of flat config: ESLint 9's flat config
|
|
11
|
+
* requires a JS module file in every addon (with explicit plugin
|
|
12
|
+
* imports). The legacy JSON form works fine in ESLint 8.x and stays
|
|
13
|
+
* personnel-friendly. We'll switch when the Vue + TypeScript plugin
|
|
14
|
+
* ecosystem catches up to flat config.
|
|
15
|
+
*/
|
|
16
|
+
export declare function genEslintConfig(): object;
|
|
17
|
+
export declare function genPrettierConfig(): object;
|
|
18
|
+
export declare function genEditorConfig(): string;
|
|
19
|
+
export declare function genTsConfig(): object;
|
|
20
|
+
/**
|
|
21
|
+
* Ambient type declarations for the addon source. The runtime resolves
|
|
22
|
+
* `@cicore/shared` via the host's import map and `$fetch` is Nuxt's
|
|
23
|
+
* global, but vue-tsc has no way to find either without these shims.
|
|
24
|
+
* Declared as `any` for now — Faz 6 (SDK docs) ships richer type
|
|
25
|
+
* surfaces alongside the API reference and replaces these stubs.
|
|
26
|
+
*/
|
|
27
|
+
export declare function genAmbientTypes(): string;
|
|
28
|
+
export declare function genGitlabCi(addonName: string): string;
|
|
29
|
+
/** Apply the full quality template to an existing addon dir. Idempotent:
|
|
30
|
+
* files already present are kept unless `overwrite` is true. */
|
|
31
|
+
export interface ApplyQualityTemplateResult {
|
|
32
|
+
written: string[];
|
|
33
|
+
skipped: string[];
|
|
34
|
+
}
|
|
35
|
+
export declare function applyQualityTemplate(addonDir: string, addonName: string, options?: {
|
|
36
|
+
overwrite?: boolean;
|
|
37
|
+
}): Promise<ApplyQualityTemplateResult>;
|
|
38
|
+
//# sourceMappingURL=addon-quality.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"addon-quality.d.ts","sourceRoot":"","sources":["../../../src/lib/ops/addon-quality.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,wBAAgB,eAAe,IAAI,MAAM,CAiCxC;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAU1C;AAED,wBAAgB,eAAe,IAAI,MAAM,CAcxC;AAED,wBAAgB,WAAW,IAAI,MAAM,CAgCpC;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAsFxC;AAED,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAwGrD;AAED;iEACiE;AACjE,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB;AAED,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAO,GACpC,OAAO,CAAC,0BAA0B,CAAC,CAgCrC"}
|