@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":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export interface DotEnvResult {
|
|
2
|
+
readonly loaded: boolean;
|
|
3
|
+
readonly path?: string;
|
|
4
|
+
readonly count?: number;
|
|
5
|
+
}
|
|
6
|
+
/** .env'i process.env'e yükle (idempotent; shell-set vars korunur). */
|
|
7
|
+
export declare function loadDotEnv(): DotEnvResult;
|
|
8
|
+
//# sourceMappingURL=env.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/lib/env.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,uEAAuE;AACvE,wBAAgB,UAAU,IAAI,YAAY,CAuCzC"}
|
package/dist/lib/env.js
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
2
|
+
// .env auto-load — CLI bootstrap (zero-dependency).
|
|
3
|
+
// Plan: docs/planning/2026-06-02-cli-dotenv-autoload.md
|
|
4
|
+
//
|
|
5
|
+
// Eskiden her `ci`/script çağrısı öncesi elle `set -a; source .env; set +a`
|
|
6
|
+
// gerekiyordu (CLAUDE.md FUTURE). Bu loader CLI başlarken .env'i process.env'e
|
|
7
|
+
// yükler. Davranış `set -a; source .env` ile uyumlu AMA güvenli:
|
|
8
|
+
// - Shell'de zaten set olan değişken KAZANIR (override YOK).
|
|
9
|
+
// - Arama: CICORE_ENV_FILE override → cwd/.env → cwd'den yukarı walk (max 6).
|
|
10
|
+
// - Secret GÜVENLİĞİ: değerler ASLA loglanmaz; yalnız dosya yolu döner.
|
|
11
|
+
// - Yeni paket bağımlılığı YOK (personel kurulumlarını etkilemez).
|
|
12
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
13
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
14
|
+
import { dirname, join } from 'node:path';
|
|
15
|
+
/** .env'i process.env'e yükle (idempotent; shell-set vars korunur). */
|
|
16
|
+
export function loadDotEnv() {
|
|
17
|
+
const candidates = [];
|
|
18
|
+
if (process.env.CICORE_ENV_FILE)
|
|
19
|
+
candidates.push(process.env.CICORE_ENV_FILE);
|
|
20
|
+
let dir = process.cwd();
|
|
21
|
+
for (let i = 0; i < 6; i++) {
|
|
22
|
+
candidates.push(join(dir, '.env'));
|
|
23
|
+
const parent = dirname(dir);
|
|
24
|
+
if (parent === dir)
|
|
25
|
+
break;
|
|
26
|
+
dir = parent;
|
|
27
|
+
}
|
|
28
|
+
for (const p of candidates) {
|
|
29
|
+
if (!p || !existsSync(p))
|
|
30
|
+
continue;
|
|
31
|
+
let count = 0;
|
|
32
|
+
try {
|
|
33
|
+
const text = readFileSync(p, 'utf8');
|
|
34
|
+
for (const raw of text.split('\n')) {
|
|
35
|
+
const line = raw.trim();
|
|
36
|
+
if (line === '' || line.startsWith('#'))
|
|
37
|
+
continue;
|
|
38
|
+
const eq = line.indexOf('='); // ilk '='; değerdeki '=' (base64 vb.) korunur
|
|
39
|
+
if (eq <= 0)
|
|
40
|
+
continue;
|
|
41
|
+
let key = line.slice(0, eq).trim();
|
|
42
|
+
if (key.startsWith('export '))
|
|
43
|
+
key = key.slice(7).trim();
|
|
44
|
+
if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(key))
|
|
45
|
+
continue;
|
|
46
|
+
if (key in process.env)
|
|
47
|
+
continue; // shell KAZANIR — override etme
|
|
48
|
+
let val = line.slice(eq + 1).trim();
|
|
49
|
+
if (val.length >= 2 &&
|
|
50
|
+
((val.startsWith('"') && val.endsWith('"')) || (val.startsWith("'") && val.endsWith("'")))) {
|
|
51
|
+
val = val.slice(1, -1);
|
|
52
|
+
}
|
|
53
|
+
process.env[key] = val;
|
|
54
|
+
count++;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
return { loaded: true, path: p, count };
|
|
61
|
+
}
|
|
62
|
+
return { loaded: false };
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=env.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/lib/env.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CiCore CLI — Per-host deployment topology
|
|
3
|
+
*
|
|
4
|
+
* Single source of truth for host-specific configuration. Static topology
|
|
5
|
+
* (registry namespace, container names, file paths, compose layout) is
|
|
6
|
+
* declared here at module load; secrets (API keys, DB password, CF token)
|
|
7
|
+
* are read lazily from `.env` via `getHostConfig()` only when actually
|
|
8
|
+
* needed by a command — so `vu --help` works without any env vars set.
|
|
9
|
+
*
|
|
10
|
+
* Onboarding a new platform = one entry in `STATIC_TOPOLOGY` plus the
|
|
11
|
+
* matching env vars in `.env`. No code changes elsewhere in `cli/`.
|
|
12
|
+
*
|
|
13
|
+
* Two hosts initially supported:
|
|
14
|
+
*
|
|
15
|
+
* - `vucore` — production (5.178.111.115). Prod-style 5-file compose
|
|
16
|
+
* under `/home/services/`. Images: `baynis/vucore-*`.
|
|
17
|
+
* CDN: `cdn.cicore.com.tr` (Worker fronting R2 bucket).
|
|
18
|
+
*
|
|
19
|
+
* - `cicore` — staging (10.20.20.11). Single-file compose under
|
|
20
|
+
* `/home/fmcicore/vucore/`. Images: `cisofttr/cicore-*`
|
|
21
|
+
* (private). CDN: `cdn.cicore.com.tr`. Nginx vhost proxies
|
|
22
|
+
* `/_nuxt/` directly to Nuxt — addons still go through CDN.
|
|
23
|
+
*/
|
|
24
|
+
/** Supported host aliases. Adding a host = extend this union + STATIC_TOPOLOGY. */
|
|
25
|
+
export type HostAlias = 'cicore' | 'mkt';
|
|
26
|
+
/** Docker compose services the CLI knows how to address. */
|
|
27
|
+
export type ServiceKey = 'nuxt' | 'php' | 'nginx' | 'postgres' | 'redis';
|
|
28
|
+
/** Subset of services that have their own compose file in split layout. */
|
|
29
|
+
export type AppServiceKey = Extract<ServiceKey, 'nuxt' | 'php' | 'nginx'>;
|
|
30
|
+
/**
|
|
31
|
+
* Static per-host configuration. Pure data — no secrets, no env reads.
|
|
32
|
+
* Secrets are layered on top by `getHostConfig()` at call time.
|
|
33
|
+
*/
|
|
34
|
+
interface HostTopologyStatic {
|
|
35
|
+
readonly alias: HostAlias;
|
|
36
|
+
/** Human-readable label, used in log output only. */
|
|
37
|
+
readonly brandName: string;
|
|
38
|
+
/**
|
|
39
|
+
* Default SSH user for general operations (mkdir, file writes, docker
|
|
40
|
+
* exec, psql, nginx edits, etc.). Must have sudo (NOPASSWD where needed)
|
|
41
|
+
* on the target host. This is the user that owns the deploy work; the
|
|
42
|
+
* forced-command receiver below is a separate, narrower account.
|
|
43
|
+
*/
|
|
44
|
+
readonly sshUser: string;
|
|
45
|
+
/**
|
|
46
|
+
* SSH hostname or IP — passed directly to ssh as the target. Use the VPN
|
|
47
|
+
* address rather than the SSH config alias so the CLI works regardless
|
|
48
|
+
* of the developer's local SSH config and so the connection doesn't
|
|
49
|
+
* depend on public-IP routing that might not be set up yet.
|
|
50
|
+
*/
|
|
51
|
+
readonly sshHostname: string;
|
|
52
|
+
/** Identity file path (tilde-expanded by ops/ssh.ts before exec). */
|
|
53
|
+
readonly sshKeyPath: string;
|
|
54
|
+
/**
|
|
55
|
+
* Receiver account that owns the forced-command wrapper (ssh-wrapper.sh
|
|
56
|
+
* → install-addon.sh / install-core.sh). Used ONLY by addon/core install
|
|
57
|
+
* primitives; all other ops use `sshUser`. When undefined, the host
|
|
58
|
+
* doesn't have a deploy receiver set up and install-* commands need to
|
|
59
|
+
* use the legacy direct-SSH path.
|
|
60
|
+
*/
|
|
61
|
+
readonly deployUser?: string;
|
|
62
|
+
/** Docker Hub namespace for `docker push` — e.g. `baynis`, `cisofttr`. */
|
|
63
|
+
readonly registry: string;
|
|
64
|
+
/** Image name prefix within the push namespace (e.g. `vucore`, `cicore`). */
|
|
65
|
+
readonly imagePrefix: string;
|
|
66
|
+
/**
|
|
67
|
+
* Image base name referenced by the on-server `docker-compose.yml`.
|
|
68
|
+
*
|
|
69
|
+
* Cicore staging pulls from `cisofttr/cicore-*` then retags locally to
|
|
70
|
+
* `baynis/vucore-*:latest` so the unmodified compose file (which hardcodes
|
|
71
|
+
* baynis/vucore-*) keeps working. Vucore prod uses `baynis/vucore-*`
|
|
72
|
+
* directly with no retag.
|
|
73
|
+
*
|
|
74
|
+
* Format: `<namespace>/<prefix>` — the per-service suffix and tag are
|
|
75
|
+
* appended by callers (e.g. `${composeImageName}-nuxt:latest`).
|
|
76
|
+
*/
|
|
77
|
+
readonly composeImageName: string;
|
|
78
|
+
/** Worker endpoint for upload/clean — e.g. `https://cdn-api.cicore.com.tr`. */
|
|
79
|
+
readonly cdnEndpoint: string;
|
|
80
|
+
/** Public CDN base URL — embedded in addon ui-manifest.json. */
|
|
81
|
+
readonly cdnBaseUrl: string;
|
|
82
|
+
/** Relative path (from repo root) to the Wrangler project directory. */
|
|
83
|
+
readonly cdnGatewayDir: string;
|
|
84
|
+
/**
|
|
85
|
+
* When true, the on-server nginx vhost serves `/_nuxt/` directly from the
|
|
86
|
+
* Nuxt container instead of via CDN. The setup/deploy flow then skips
|
|
87
|
+
* CoreUI R2 upload entirely. Addon UIs are always served from the CDN
|
|
88
|
+
* regardless of this flag.
|
|
89
|
+
*/
|
|
90
|
+
readonly cdnBypassForNuxt: boolean;
|
|
91
|
+
/** Directory on the server where `docker compose` is invoked. */
|
|
92
|
+
readonly workDir: string;
|
|
93
|
+
/**
|
|
94
|
+
* Host path that bind-mounts to `/var/www/cores` in the PHP container.
|
|
95
|
+
* Per-core directories (`<coresHostPath>/<core>/{addons,storage,…}`) live
|
|
96
|
+
* here. Setup creates this directory tree per new core.
|
|
97
|
+
*/
|
|
98
|
+
readonly coresHostPath: string;
|
|
99
|
+
/**
|
|
100
|
+
* When true, all services live in one `docker-compose.yml` (cicore layout).
|
|
101
|
+
* When false, each service has its own compose file (vucore prod split).
|
|
102
|
+
* Determines whether `docker compose ... up <service>` needs a positional
|
|
103
|
+
* service argument — see `composeArgs()`.
|
|
104
|
+
*/
|
|
105
|
+
readonly singleCompose: boolean;
|
|
106
|
+
/** Per-service compose filenames (relative to `workDir`). */
|
|
107
|
+
readonly composeFiles: Readonly<Record<AppServiceKey, string>>;
|
|
108
|
+
/** Per-service container names (`docker restart …` targets). */
|
|
109
|
+
readonly containerNames: Readonly<Record<ServiceKey, string>>;
|
|
110
|
+
/**
|
|
111
|
+
* Absolute path on the server to the directory holding nginx vhost
|
|
112
|
+
* configs and the global router file. `vu server domain` / `setup`
|
|
113
|
+
* edit `vucore-global-router.conf` placeholders here, then trigger
|
|
114
|
+
* `nginx -s reload` inside the nginx container (which bind-mounts
|
|
115
|
+
* this directory as `/etc/nginx/conf.d`).
|
|
116
|
+
*/
|
|
117
|
+
readonly nginxConfigDir: string;
|
|
118
|
+
/**
|
|
119
|
+
* UID:GID the PHP-FPM (and Nuxt) container runs as. Core files written by
|
|
120
|
+
* the CLI over SSH are owned by `sshUser`; when that differs from the
|
|
121
|
+
* runtime UID (e.g. root-sshUser hosts), the container can't read the
|
|
122
|
+
* per-core `.env` (mode 600) → DB creds fall back to defaults and install
|
|
123
|
+
* fails. The CLI chowns core files to this UID after writing so ownership
|
|
124
|
+
* is decoupled from the SSH login. cisofttr images run as uid 1000.
|
|
125
|
+
* (Bug surfaced 2026-05-24 on the root-sshUser `mkt` host.)
|
|
126
|
+
*/
|
|
127
|
+
readonly phpRuntimeUid: number;
|
|
128
|
+
/**
|
|
129
|
+
* Default SSL certificate basename (no `.crt`/`.key` suffix) in
|
|
130
|
+
* `/etc/nginx/ssl/`. Used by `nginxWriteVhost` when the operator does
|
|
131
|
+
* not pass an explicit `--ssl-cert-name`. Behind a Cloudflare Tunnel
|
|
132
|
+
* the cert CN does not need to match the served domain, so one shared
|
|
133
|
+
* cert per host is fine for staging; production hosts typically have
|
|
134
|
+
* a per-domain cert with the same basename as the brand.
|
|
135
|
+
*/
|
|
136
|
+
readonly defaultSslCertName: string;
|
|
137
|
+
/** Postgres container name (CREATE DATABASE, migrations target this). */
|
|
138
|
+
readonly dbContainerName: string;
|
|
139
|
+
/** Admin role with CREATE DATABASE privilege. Password read from env. */
|
|
140
|
+
readonly dbAdminUser: string;
|
|
141
|
+
readonly cfAccountId: string;
|
|
142
|
+
readonly cfZoneId: string;
|
|
143
|
+
/**
|
|
144
|
+
* Names (not values) of env vars holding this host's secrets. The CLI
|
|
145
|
+
* reads these via `requireEnv()` at command runtime — never logged, never
|
|
146
|
+
* cached on disk. Keeping the names *here* means a new host only needs to
|
|
147
|
+
* declare its var names alongside its topology; no `ops/` code changes.
|
|
148
|
+
*/
|
|
149
|
+
readonly envVarNames: Readonly<{
|
|
150
|
+
cdnApiKey: string;
|
|
151
|
+
dbAdminPassword: string;
|
|
152
|
+
cfApiToken: string;
|
|
153
|
+
}>;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Full host configuration consumed by every `ops/` primitive and command.
|
|
157
|
+
*
|
|
158
|
+
* Built by merging the static topology with secrets loaded from `process.env`.
|
|
159
|
+
* Always immutable (`Object.freeze`'d) — primitives must not mutate the config
|
|
160
|
+
* they receive.
|
|
161
|
+
*/
|
|
162
|
+
export interface HostConfig extends HostTopologyStatic {
|
|
163
|
+
/** CDN API key for Worker /clean and /upload-coreui-zip authentication. */
|
|
164
|
+
readonly cdnApiKey: string;
|
|
165
|
+
/** Postgres admin password for CREATE DATABASE + GRANT operations. */
|
|
166
|
+
readonly dbAdminPassword: string;
|
|
167
|
+
/** Cloudflare API token scoped for cache purge (and future DNS ops). */
|
|
168
|
+
readonly cfApiToken: string;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Resolve a host configuration by alias.
|
|
172
|
+
*
|
|
173
|
+
* Reads secrets from `process.env` at call time — callers should ensure the
|
|
174
|
+
* loaded `.env` (or shell environment) has the required vars before invoking
|
|
175
|
+
* any command that ends up here. The static topology is hot-cached at module
|
|
176
|
+
* load; secrets are not cached, so changes to env take effect on next call.
|
|
177
|
+
*
|
|
178
|
+
* @throws Error if `alias` is missing, unknown, or any required env var is
|
|
179
|
+
* unset/empty. Error message names the missing variable.
|
|
180
|
+
*/
|
|
181
|
+
export declare function getHostConfig(alias: string | undefined): HostConfig;
|
|
182
|
+
/** Type-guarded narrowing — use before indexing into STATIC_TOPOLOGY. */
|
|
183
|
+
export declare function isKnownHost(alias: string | undefined): alias is HostAlias;
|
|
184
|
+
/** Frozen list of supported aliases — drives CLI help text and validation. */
|
|
185
|
+
export declare function listKnownHosts(): readonly HostAlias[];
|
|
186
|
+
export interface ComposeArgs {
|
|
187
|
+
/** `-f <file>` flag — always present. */
|
|
188
|
+
readonly fileFlag: string;
|
|
189
|
+
/** Service positional argument — empty string for split-layout hosts. */
|
|
190
|
+
readonly serviceArg: string;
|
|
191
|
+
}
|
|
192
|
+
export declare function composeArgs(cfg: HostConfig, service: AppServiceKey): ComposeArgs;
|
|
193
|
+
export {};
|
|
194
|
+
//# sourceMappingURL=hosts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hosts.d.ts","sourceRoot":"","sources":["../../src/lib/hosts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CiCore CLI — Per-host deployment topology
|
|
3
|
+
*
|
|
4
|
+
* Single source of truth for host-specific configuration. Static topology
|
|
5
|
+
* (registry namespace, container names, file paths, compose layout) is
|
|
6
|
+
* declared here at module load; secrets (API keys, DB password, CF token)
|
|
7
|
+
* are read lazily from `.env` via `getHostConfig()` only when actually
|
|
8
|
+
* needed by a command — so `vu --help` works without any env vars set.
|
|
9
|
+
*
|
|
10
|
+
* Onboarding a new platform = one entry in `STATIC_TOPOLOGY` plus the
|
|
11
|
+
* matching env vars in `.env`. No code changes elsewhere in `cli/`.
|
|
12
|
+
*
|
|
13
|
+
* Two hosts initially supported:
|
|
14
|
+
*
|
|
15
|
+
* - `vucore` — production (5.178.111.115). Prod-style 5-file compose
|
|
16
|
+
* under `/home/services/`. Images: `baynis/vucore-*`.
|
|
17
|
+
* CDN: `cdn.cicore.com.tr` (Worker fronting R2 bucket).
|
|
18
|
+
*
|
|
19
|
+
* - `cicore` — staging (10.20.20.11). Single-file compose under
|
|
20
|
+
* `/home/fmcicore/vucore/`. Images: `cisofttr/cicore-*`
|
|
21
|
+
* (private). CDN: `cdn.cicore.com.tr`. Nginx vhost proxies
|
|
22
|
+
* `/_nuxt/` directly to Nuxt — addons still go through CDN.
|
|
23
|
+
*/
|
|
24
|
+
const STATIC_TOPOLOGY = Object.freeze({
|
|
25
|
+
// NOTE: vucore (prod, 5.178.111.115) entry removed 2026-05-20 — CLI is now
|
|
26
|
+
// cicore-only. The old vucore prod stack is stopped (cloudflared docker rm,
|
|
27
|
+
// compose down by user); cicore.com.tr is served from cicore staging as a
|
|
28
|
+
// tenant. To re-add a vucore host later, restore from git history.
|
|
29
|
+
cicore: {
|
|
30
|
+
alias: 'cicore',
|
|
31
|
+
brandName: 'CiCore (staging)',
|
|
32
|
+
sshUser: 'fmcicore', // NOPASSWD sudo on cicore staging
|
|
33
|
+
sshHostname: '10.20.20.11', // VPN address; public IP not routable yet
|
|
34
|
+
sshKeyPath: '~/.ssh/id_ed25519_cicore',
|
|
35
|
+
deployUser: 'cicore-deploy', // forced-command receiver (install-*.sh only)
|
|
36
|
+
registry: 'cisofttr',
|
|
37
|
+
imagePrefix: 'cicore',
|
|
38
|
+
// 2026-05-20: compose now uses cisofttr/cicore-* directly (retag pattern
|
|
39
|
+
// retired — see docs/planning/_archive/2026-05-20-core1-sunset…). Build
|
|
40
|
+
// pushes to cisofttr/cicore-{nuxt,php}; compose pulls the same tag.
|
|
41
|
+
composeImageName: 'cisofttr/cicore',
|
|
42
|
+
cdnEndpoint: 'https://cdn-api.cicore.com.tr',
|
|
43
|
+
cdnBaseUrl: 'https://cdn.cicore.com.tr',
|
|
44
|
+
cdnGatewayDir: 'cicore-cdn-gateway',
|
|
45
|
+
// Verified 2026-05-18: cicore_com_tr.conf has `proxy_pass http://nuxt_frontend`
|
|
46
|
+
// for `/_nuxt/`, so CoreUI R2 upload is a no-op here.
|
|
47
|
+
cdnBypassForNuxt: true,
|
|
48
|
+
workDir: '/home/fmcicore/vucore',
|
|
49
|
+
coresHostPath: '/home/fmcicore/vucore/cores',
|
|
50
|
+
singleCompose: true,
|
|
51
|
+
composeFiles: Object.freeze({
|
|
52
|
+
nuxt: 'docker-compose.yml',
|
|
53
|
+
php: 'docker-compose.yml',
|
|
54
|
+
nginx: 'docker-compose.yml',
|
|
55
|
+
}),
|
|
56
|
+
containerNames: Object.freeze({
|
|
57
|
+
nuxt: 'cicore_nuxt',
|
|
58
|
+
php: 'cicore_php',
|
|
59
|
+
nginx: 'cicore_global_nginx',
|
|
60
|
+
postgres: 'cicore_postgres',
|
|
61
|
+
redis: 'cicore_global_redis',
|
|
62
|
+
}),
|
|
63
|
+
nginxConfigDir: '/home/fmcicore/vucore/services/nginx/conf.d',
|
|
64
|
+
phpRuntimeUid: 1000, // sshUser fmcicore is also uid 1000 → chown is a no-op here
|
|
65
|
+
defaultSslCertName: 'cicore', // /etc/nginx/ssl/cicore.crt — shared cert (tunnel-fronted, CN-match not required)
|
|
66
|
+
dbContainerName: 'cicore_postgres',
|
|
67
|
+
dbAdminUser: 'vucore_admin',
|
|
68
|
+
cfAccountId: '9e0f66e5b6c62630d9c477c42951b7b3',
|
|
69
|
+
cfZoneId: '283449c641762f4bb80e070eaf774bc9',
|
|
70
|
+
envVarNames: Object.freeze({
|
|
71
|
+
cdnApiKey: 'CICORE_CDN_API_KEY',
|
|
72
|
+
dbAdminPassword: 'CICORE_DB_ADMIN_PASSWORD',
|
|
73
|
+
cfApiToken: 'CICORE_CLOUDFLARE_API_TOKEN',
|
|
74
|
+
}),
|
|
75
|
+
},
|
|
76
|
+
// ── mkt — Marketplace + whitelabel test box (5.178.111.115) ──────
|
|
77
|
+
// 2026-05-24: eski vucore prod kutusu temizlenip cicore-staging single-
|
|
78
|
+
// compose modeliyle yeniden kuruldu. cisofttr/cicore-* imajları (login OK).
|
|
79
|
+
// Container/DB adları cicore staging ile birebir (farklı host, çakışma yok).
|
|
80
|
+
// nuxt env_file ./services/nuxt.env'e decouple edildi (chicken-egg fix).
|
|
81
|
+
// CDN: şimdilik cicore worker'ı reuse (kutuya özel CDN worker = follow-up).
|
|
82
|
+
mkt: {
|
|
83
|
+
alias: 'mkt',
|
|
84
|
+
brandName: 'Marketplace/Whitelabel Test (5.178.111.115)',
|
|
85
|
+
sshUser: 'root',
|
|
86
|
+
sshHostname: '5.178.111.115',
|
|
87
|
+
sshKeyPath: '~/.ssh/id_ed25519_cicore',
|
|
88
|
+
// deployUser yok — forced-command receiver henüz kurulmadı; install-* legacy direct-SSH
|
|
89
|
+
registry: 'cisofttr',
|
|
90
|
+
imagePrefix: 'cicore',
|
|
91
|
+
composeImageName: 'cisofttr/cicore',
|
|
92
|
+
cdnEndpoint: 'https://cdn-api.cicore.com.tr',
|
|
93
|
+
cdnBaseUrl: 'https://cdn.cicore.com.tr',
|
|
94
|
+
cdnGatewayDir: 'cicore-cdn-gateway',
|
|
95
|
+
cdnBypassForNuxt: true,
|
|
96
|
+
workDir: '/opt/vucore',
|
|
97
|
+
coresHostPath: '/opt/vucore/cores',
|
|
98
|
+
singleCompose: true,
|
|
99
|
+
composeFiles: Object.freeze({
|
|
100
|
+
nuxt: 'docker-compose.yml',
|
|
101
|
+
php: 'docker-compose.yml',
|
|
102
|
+
nginx: 'docker-compose.yml',
|
|
103
|
+
}),
|
|
104
|
+
containerNames: Object.freeze({
|
|
105
|
+
nuxt: 'cicore_nuxt',
|
|
106
|
+
php: 'cicore_php',
|
|
107
|
+
nginx: 'cicore_global_nginx',
|
|
108
|
+
postgres: 'cicore_global_postgres',
|
|
109
|
+
redis: 'cicore_global_redis',
|
|
110
|
+
}),
|
|
111
|
+
nginxConfigDir: '/opt/vucore/services/nginx/conf.d',
|
|
112
|
+
phpRuntimeUid: 1000, // sshUser root ≠ runtime uid → chown core files to 1000 so php-fpm reads .env
|
|
113
|
+
defaultSslCertName: 'multinodex',
|
|
114
|
+
dbContainerName: 'cicore_global_postgres',
|
|
115
|
+
dbAdminUser: 'vucore_admin',
|
|
116
|
+
cfAccountId: '9e0f66e5b6c62630d9c477c42951b7b3', // Cisofttr
|
|
117
|
+
cfZoneId: 'ff2ab865cfcd46dd8175f687473d9f37', // multinodex.com
|
|
118
|
+
envVarNames: Object.freeze({
|
|
119
|
+
cdnApiKey: 'CICORE_CDN_API_KEY',
|
|
120
|
+
dbAdminPassword: 'MKT_DB_ADMIN_PASSWORD',
|
|
121
|
+
cfApiToken: 'CICORE_CLOUDFLARE_API_TOKEN',
|
|
122
|
+
}),
|
|
123
|
+
},
|
|
124
|
+
});
|
|
125
|
+
/**
|
|
126
|
+
* Resolve a host configuration by alias.
|
|
127
|
+
*
|
|
128
|
+
* Reads secrets from `process.env` at call time — callers should ensure the
|
|
129
|
+
* loaded `.env` (or shell environment) has the required vars before invoking
|
|
130
|
+
* any command that ends up here. The static topology is hot-cached at module
|
|
131
|
+
* load; secrets are not cached, so changes to env take effect on next call.
|
|
132
|
+
*
|
|
133
|
+
* @throws Error if `alias` is missing, unknown, or any required env var is
|
|
134
|
+
* unset/empty. Error message names the missing variable.
|
|
135
|
+
*/
|
|
136
|
+
export function getHostConfig(alias) {
|
|
137
|
+
if (!alias) {
|
|
138
|
+
throw new Error(`Host alias required. Pass --host <alias>. ` +
|
|
139
|
+
`Known: ${listKnownHosts().join(', ')}.`);
|
|
140
|
+
}
|
|
141
|
+
if (!isKnownHost(alias)) {
|
|
142
|
+
throw new Error(`Unknown host '${alias}'. Known: ${listKnownHosts().join(', ')}. ` +
|
|
143
|
+
`To onboard a new platform, add an entry to STATIC_TOPOLOGY in ` +
|
|
144
|
+
`cli/src/lib/hosts.ts and declare its envVarNames in .env.`);
|
|
145
|
+
}
|
|
146
|
+
const topology = STATIC_TOPOLOGY[alias];
|
|
147
|
+
return Object.freeze({
|
|
148
|
+
...topology,
|
|
149
|
+
cdnApiKey: requireEnv(topology.envVarNames.cdnApiKey, alias),
|
|
150
|
+
dbAdminPassword: requireEnv(topology.envVarNames.dbAdminPassword, alias),
|
|
151
|
+
cfApiToken: requireEnv(topology.envVarNames.cfApiToken, alias),
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
/** Type-guarded narrowing — use before indexing into STATIC_TOPOLOGY. */
|
|
155
|
+
export function isKnownHost(alias) {
|
|
156
|
+
return alias !== undefined && Object.prototype.hasOwnProperty.call(STATIC_TOPOLOGY, alias);
|
|
157
|
+
}
|
|
158
|
+
/** Frozen list of supported aliases — drives CLI help text and validation. */
|
|
159
|
+
export function listKnownHosts() {
|
|
160
|
+
return Object.freeze(Object.keys(STATIC_TOPOLOGY));
|
|
161
|
+
}
|
|
162
|
+
export function composeArgs(cfg, service) {
|
|
163
|
+
return Object.freeze({
|
|
164
|
+
fileFlag: `-f ${cfg.composeFiles[service]}`,
|
|
165
|
+
serviceArg: cfg.singleCompose ? service : '',
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
169
|
+
// Helpers (internal)
|
|
170
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
171
|
+
/**
|
|
172
|
+
* Read a required env var; throw a helpful error naming the missing var
|
|
173
|
+
* and the host that needed it.
|
|
174
|
+
*/
|
|
175
|
+
function requireEnv(name, hostAlias) {
|
|
176
|
+
const raw = process.env[name];
|
|
177
|
+
if (raw === undefined || raw.trim() === '') {
|
|
178
|
+
throw new Error(`Host '${hostAlias}' requires env var '${name}' but it is unset or empty. ` +
|
|
179
|
+
`Set it in .env (auto-loaded by the CLI bootstrap) or your shell, then retry.`);
|
|
180
|
+
}
|
|
181
|
+
return raw.trim();
|
|
182
|
+
}
|
|
183
|
+
//# sourceMappingURL=hosts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hosts.js","sourceRoot":"","sources":["../../src/lib/hosts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CiCore CLI Logger
|
|
3
|
+
*
|
|
4
|
+
* Provides consistent logging with colors and formatting
|
|
5
|
+
*/
|
|
6
|
+
import { Ora } from 'ora';
|
|
7
|
+
/**
|
|
8
|
+
* Log levels
|
|
9
|
+
*/
|
|
10
|
+
export declare const log: {
|
|
11
|
+
/**
|
|
12
|
+
* Info message (blue)
|
|
13
|
+
*/
|
|
14
|
+
info: (message: string, ...args: any[]) => void;
|
|
15
|
+
/**
|
|
16
|
+
* Success message (green)
|
|
17
|
+
*/
|
|
18
|
+
success: (message: string, ...args: any[]) => void;
|
|
19
|
+
/**
|
|
20
|
+
* Warning message (yellow)
|
|
21
|
+
*/
|
|
22
|
+
warn: (message: string, ...args: any[]) => void;
|
|
23
|
+
/**
|
|
24
|
+
* Error message (red)
|
|
25
|
+
*/
|
|
26
|
+
error: (message: string, ...args: any[]) => void;
|
|
27
|
+
/**
|
|
28
|
+
* Debug message (gray, only in verbose mode)
|
|
29
|
+
*/
|
|
30
|
+
debug: (message: string, ...args: any[]) => void;
|
|
31
|
+
/**
|
|
32
|
+
* Step message (cyan, for multi-step operations)
|
|
33
|
+
*/
|
|
34
|
+
step: (step: number, total: number, message: string) => void;
|
|
35
|
+
/**
|
|
36
|
+
* Title/header message
|
|
37
|
+
*/
|
|
38
|
+
title: (message: string) => void;
|
|
39
|
+
/**
|
|
40
|
+
* Blank line
|
|
41
|
+
*/
|
|
42
|
+
blank: () => void;
|
|
43
|
+
/**
|
|
44
|
+
* Key-value pair
|
|
45
|
+
*/
|
|
46
|
+
kv: (key: string, value: string) => void;
|
|
47
|
+
/**
|
|
48
|
+
* List item
|
|
49
|
+
*/
|
|
50
|
+
item: (message: string, indent?: number) => void;
|
|
51
|
+
/**
|
|
52
|
+
* Command being executed
|
|
53
|
+
*/
|
|
54
|
+
cmd: (command: string) => void;
|
|
55
|
+
/**
|
|
56
|
+
* Box message
|
|
57
|
+
*/
|
|
58
|
+
box: (title: string, content: string[]) => void;
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* Create a spinner for long-running operations
|
|
62
|
+
*/
|
|
63
|
+
export declare function spinner(text: string): Ora;
|
|
64
|
+
/**
|
|
65
|
+
* Table formatting
|
|
66
|
+
*/
|
|
67
|
+
export declare function formatTable(headers: string[], rows: string[][]): void;
|
|
68
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/lib/logger.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAY,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAG/B;;GAEG;AACH,eAAO,MAAM,GAAG;IACd;;OAEG;oBACa,MAAM,WAAW,GAAG,EAAE;IAItC;;OAEG;uBACgB,MAAM,WAAW,GAAG,EAAE;IAIzC;;OAEG;oBACa,MAAM,WAAW,GAAG,EAAE;IAItC;;OAEG;qBACc,MAAM,WAAW,GAAG,EAAE;IAIvC;;OAEG;qBACc,MAAM,WAAW,GAAG,EAAE;IAMvC;;OAEG;iBACU,MAAM,SAAS,MAAM,WAAW,MAAM;IAInD;;OAEG;qBACc,MAAM;IAMvB;;OAEG;;IAKH;;OAEG;cACO,MAAM,SAAS,MAAM;IAI/B;;OAEG;oBACa,MAAM,WAAU,MAAM;IAKtC;;OAEG;mBACY,MAAM;IAMrB;;OAEG;iBACU,MAAM,WAAW,MAAM,EAAE;CAYvC,CAAC;AAEF;;GAEG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAMzC;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,CAiBrE"}
|