@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
package/dist/index.js
ADDED
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* CiCore CLI - Main Entry Point
|
|
4
|
+
*
|
|
5
|
+
* Professional Multi-Core SaaS Management Tool
|
|
6
|
+
*
|
|
7
|
+
* @author ciCore Team
|
|
8
|
+
* @version 1.0.0
|
|
9
|
+
*/
|
|
10
|
+
import { Command } from 'commander';
|
|
11
|
+
import chalk from 'chalk';
|
|
12
|
+
import { loadDotEnv } from './lib/env.js';
|
|
13
|
+
import { config, setRuntimeFlags } from './lib/config.js';
|
|
14
|
+
// .env auto-load — host config / DB / R2 secret'larını process.env'e getirir
|
|
15
|
+
// (eski elle `set -a; source .env` ihtiyacını kaldırır). Komut/config env'i
|
|
16
|
+
// OKUMADAN önce, en başta. Shell-set vars korunur; secret loglanmaz.
|
|
17
|
+
{
|
|
18
|
+
const _env = loadDotEnv();
|
|
19
|
+
if (_env.loaded && process.env.CICORE_DEBUG) {
|
|
20
|
+
process.stderr.write(`[ci] .env loaded: ${_env.path} (${_env.count} vars)\n`);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
// Import command modules
|
|
24
|
+
import { registerCoreCommands } from './commands/core/index.js';
|
|
25
|
+
import { registerAddonCommands } from './commands/addon/index.js';
|
|
26
|
+
import { registerTenantCommands } from './commands/tenant/index.js';
|
|
27
|
+
import { registerDeployCommands } from './commands/deploy/index.js';
|
|
28
|
+
import { registerDevOpsCommands } from './commands/devops/index.js';
|
|
29
|
+
import { registerServerCommands } from './commands/server/index.js';
|
|
30
|
+
import { registerImageCommands } from './commands/image/index.js';
|
|
31
|
+
import { registerCheckCommands } from './commands/check/index.js';
|
|
32
|
+
import { registerCloudflareCommands } from './commands/cloudflare/index.js';
|
|
33
|
+
import { registerNginxCommands } from './commands/nginx/index.js';
|
|
34
|
+
import { registerCacheCommands } from './commands/cache/index.js';
|
|
35
|
+
import { registerSSLCommands } from './commands/ssl/index.js';
|
|
36
|
+
import { registerDomainCommands } from './commands/domain/index.js';
|
|
37
|
+
import { registerBuildCommands } from './commands/build/index.js';
|
|
38
|
+
import { registerSetupCommand } from './commands/setup/index.js';
|
|
39
|
+
import { registerBrandCommands } from './commands/brand/index.js';
|
|
40
|
+
import { registerSuperAdminCommands } from './commands/superadmin/index.js';
|
|
41
|
+
import { registerAgentCommands } from './commands/agent/index.js';
|
|
42
|
+
import { registerDbCommands } from './commands/db/index.js';
|
|
43
|
+
import { registerInstallCommands } from './commands/install/index.js';
|
|
44
|
+
import { registerLoginCommand } from './commands/login/index.js';
|
|
45
|
+
const program = new Command();
|
|
46
|
+
// ASCII Art Banner
|
|
47
|
+
const banner = `
|
|
48
|
+
${chalk.cyan('╔═══════════════════════════════════════════════════════════╗')}
|
|
49
|
+
${chalk.cyan('║')} ${chalk.bold.white('CiCore CLI')} ${chalk.gray('v1.0.0')} ${chalk.cyan('║')}
|
|
50
|
+
${chalk.cyan('║')} ${chalk.gray('Multi-Core SaaS Platform Management Tool')} ${chalk.cyan('║')}
|
|
51
|
+
${chalk.cyan('╚═══════════════════════════════════════════════════════════╝')}
|
|
52
|
+
`;
|
|
53
|
+
program
|
|
54
|
+
.name('ci')
|
|
55
|
+
.description('CiCore CLI - Multi-Core SaaS Platform Management Tool')
|
|
56
|
+
.version('1.0.0')
|
|
57
|
+
.addHelpText('beforeAll', banner)
|
|
58
|
+
.option('-e, --env <environment>', 'Environment (dev/prod)', 'dev')
|
|
59
|
+
.option('-v, --verbose', 'Verbose output', false)
|
|
60
|
+
.option('--dry-run', 'Dry run mode (no actual changes)', false);
|
|
61
|
+
// Store global options
|
|
62
|
+
program.hook('preAction', (thisCommand) => {
|
|
63
|
+
const opts = thisCommand.opts();
|
|
64
|
+
config.set('env', opts.env);
|
|
65
|
+
// dryRun/verbose are transient per-invocation flags — keep them in memory,
|
|
66
|
+
// never the persisted Conf store (a leaked persisted dryRun=true silently
|
|
67
|
+
// no-ops real work on non-preAction code paths). See config.setRuntimeFlags.
|
|
68
|
+
setRuntimeFlags({ dryRun: opts.dryRun, verbose: opts.verbose });
|
|
69
|
+
});
|
|
70
|
+
// Register all command groups
|
|
71
|
+
registerCoreCommands(program);
|
|
72
|
+
registerAddonCommands(program);
|
|
73
|
+
registerTenantCommands(program);
|
|
74
|
+
registerDeployCommands(program);
|
|
75
|
+
registerDevOpsCommands(program);
|
|
76
|
+
registerServerCommands(program);
|
|
77
|
+
registerImageCommands(program);
|
|
78
|
+
registerCheckCommands(program);
|
|
79
|
+
registerCloudflareCommands(program);
|
|
80
|
+
registerNginxCommands(program);
|
|
81
|
+
registerCacheCommands(program);
|
|
82
|
+
registerSSLCommands(program);
|
|
83
|
+
registerDomainCommands(program);
|
|
84
|
+
registerBuildCommands(program);
|
|
85
|
+
registerSetupCommand(program);
|
|
86
|
+
registerBrandCommands(program);
|
|
87
|
+
registerSuperAdminCommands(program);
|
|
88
|
+
registerAgentCommands(program);
|
|
89
|
+
registerDbCommands(program);
|
|
90
|
+
registerInstallCommands(program);
|
|
91
|
+
registerLoginCommand(program);
|
|
92
|
+
// Error handling
|
|
93
|
+
program.exitOverride();
|
|
94
|
+
try {
|
|
95
|
+
await program.parseAsync(process.argv);
|
|
96
|
+
}
|
|
97
|
+
catch (err) {
|
|
98
|
+
if (err.code === 'commander.help') {
|
|
99
|
+
process.exit(0);
|
|
100
|
+
}
|
|
101
|
+
if (err.code === 'commander.version') {
|
|
102
|
+
process.exit(0);
|
|
103
|
+
}
|
|
104
|
+
console.error(chalk.red('Error:'), err.message);
|
|
105
|
+
process.exit(1);
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CiCore CLI — addon package signing (M3.4 S4, K8 signed marketplace)
|
|
3
|
+
*
|
|
4
|
+
* The publish pipeline computes the package's sha256 and an HMAC signature over
|
|
5
|
+
* that hash. Both are stored in cp_addon_versions (sha256, signature) so a future
|
|
6
|
+
* `ci addon install` (and any verifier) can confirm the pulled package is the one
|
|
7
|
+
* the publisher signed — integrity + provenance.
|
|
8
|
+
*
|
|
9
|
+
* Format (cross-language parity with PHP / the Worker's HMAC):
|
|
10
|
+
* sha256 = hex(sha256(zipBytes))
|
|
11
|
+
* signature = base64url(HMAC-SHA256(sha256hex, secret))
|
|
12
|
+
*
|
|
13
|
+
* The secret is the shared signing key (CDN_GRANT_SECRET → CICORE_JOB_SIGNING_
|
|
14
|
+
* SECRET, K4 reuse, Q3). A tampered package yields a different sha256 → the
|
|
15
|
+
* signature no longer matches → verifyPackage() fails.
|
|
16
|
+
*/
|
|
17
|
+
/** hex sha256 of a buffer (the built addon zip). */
|
|
18
|
+
export declare function sha256Hex(buf: Buffer | Uint8Array): string;
|
|
19
|
+
/** Package signature = base64url(HMAC-SHA256(sha256hex, secret)). PHP/JS parity. */
|
|
20
|
+
export declare function signPackage(sha256hex: string, secret: string): string;
|
|
21
|
+
/** Verify a package signature against the (recomputed) sha256 (constant-time-ish). */
|
|
22
|
+
export declare function verifyPackage(sha256hex: string, signature: string, secret: string): boolean;
|
|
23
|
+
//# sourceMappingURL=addon-sign.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"addon-sign.d.ts","sourceRoot":"","sources":["../../src/lib/addon-sign.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,oDAAoD;AACpD,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAE1D;AAMD,oFAAoF;AACpF,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAErE;AAED,sFAAsF;AACtF,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAM3F"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CiCore CLI — addon package signing (M3.4 S4, K8 signed marketplace)
|
|
3
|
+
*
|
|
4
|
+
* The publish pipeline computes the package's sha256 and an HMAC signature over
|
|
5
|
+
* that hash. Both are stored in cp_addon_versions (sha256, signature) so a future
|
|
6
|
+
* `ci addon install` (and any verifier) can confirm the pulled package is the one
|
|
7
|
+
* the publisher signed — integrity + provenance.
|
|
8
|
+
*
|
|
9
|
+
* Format (cross-language parity with PHP / the Worker's HMAC):
|
|
10
|
+
* sha256 = hex(sha256(zipBytes))
|
|
11
|
+
* signature = base64url(HMAC-SHA256(sha256hex, secret))
|
|
12
|
+
*
|
|
13
|
+
* The secret is the shared signing key (CDN_GRANT_SECRET → CICORE_JOB_SIGNING_
|
|
14
|
+
* SECRET, K4 reuse, Q3). A tampered package yields a different sha256 → the
|
|
15
|
+
* signature no longer matches → verifyPackage() fails.
|
|
16
|
+
*/
|
|
17
|
+
import { createHash, createHmac } from 'node:crypto';
|
|
18
|
+
/** hex sha256 of a buffer (the built addon zip). */
|
|
19
|
+
export function sha256Hex(buf) {
|
|
20
|
+
return createHash('sha256').update(buf).digest('hex');
|
|
21
|
+
}
|
|
22
|
+
function b64url(buf) {
|
|
23
|
+
return buf.toString('base64').replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, '');
|
|
24
|
+
}
|
|
25
|
+
/** Package signature = base64url(HMAC-SHA256(sha256hex, secret)). PHP/JS parity. */
|
|
26
|
+
export function signPackage(sha256hex, secret) {
|
|
27
|
+
return b64url(createHmac('sha256', secret).update(sha256hex).digest());
|
|
28
|
+
}
|
|
29
|
+
/** Verify a package signature against the (recomputed) sha256 (constant-time-ish). */
|
|
30
|
+
export function verifyPackage(sha256hex, signature, secret) {
|
|
31
|
+
const expected = signPackage(sha256hex, secret);
|
|
32
|
+
if (expected.length !== signature.length)
|
|
33
|
+
return false;
|
|
34
|
+
let diff = 0;
|
|
35
|
+
for (let i = 0; i < expected.length; i++)
|
|
36
|
+
diff |= expected.charCodeAt(i) ^ signature.charCodeAt(i);
|
|
37
|
+
return diff === 0;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=addon-sign.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"addon-sign.js","sourceRoot":"","sources":["../../src/lib/addon-sign.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAErD,oDAAoD;AACpD,MAAM,UAAU,SAAS,CAAC,GAAwB;IAChD,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,MAAM,CAAC,GAAW;IACzB,OAAO,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAC3F,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,WAAW,CAAC,SAAiB,EAAE,MAAc;IAC3D,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AACzE,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,aAAa,CAAC,SAAiB,EAAE,SAAiB,EAAE,MAAc;IAChF,MAAM,QAAQ,GAAG,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAChD,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IACvD,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE;QAAE,IAAI,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACnG,OAAO,IAAI,KAAK,CAAC,CAAC;AACpB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"addon-sign.test.d.ts","sourceRoot":"","sources":["../../src/lib/addon-sign.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { sha256Hex, signPackage, verifyPackage } from './addon-sign.js';
|
|
3
|
+
describe('addon-sign (M3.4 S4)', () => {
|
|
4
|
+
it('sha256Hex is deterministic + tamper-sensitive', () => {
|
|
5
|
+
const a = sha256Hex(Buffer.from('addon-zip-bytes'));
|
|
6
|
+
expect(a).toMatch(/^[0-9a-f]{64}$/);
|
|
7
|
+
expect(sha256Hex(Buffer.from('addon-zip-bytes'))).toBe(a);
|
|
8
|
+
expect(sha256Hex(Buffer.from('addon-zip-bytez'))).not.toBe(a); // 1 byte changed
|
|
9
|
+
});
|
|
10
|
+
it('sign + verify round-trip', () => {
|
|
11
|
+
const sha = sha256Hex(Buffer.from('pkg'));
|
|
12
|
+
const sig = signPackage(sha, 'kat-secret');
|
|
13
|
+
expect(verifyPackage(sha, sig, 'kat-secret')).toBe(true);
|
|
14
|
+
});
|
|
15
|
+
it('tampered package (different sha) → signature no longer verifies', () => {
|
|
16
|
+
const sig = signPackage('a'.repeat(64), 'kat-secret');
|
|
17
|
+
expect(verifyPackage('b'.repeat(64), sig, 'kat-secret')).toBe(false); // content changed
|
|
18
|
+
expect(verifyPackage('a'.repeat(64), sig, 'wrong-secret')).toBe(false); // wrong key
|
|
19
|
+
expect(verifyPackage('a'.repeat(64), sig + 'x', 'kat-secret')).toBe(false); // tampered sig
|
|
20
|
+
});
|
|
21
|
+
it('PHP↔TS parity (known-answer vector)', () => {
|
|
22
|
+
// hash_hmac('sha256', str_repeat('a',64), 'kat-secret', true) → base64url, computed in PHP.
|
|
23
|
+
const phpSig = 'U7GDZzI-t3SW63wIlyccx7n8RDiGzh9il39OFEWXPFY';
|
|
24
|
+
expect(signPackage('a'.repeat(64), 'kat-secret')).toBe(phpSig);
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
//# sourceMappingURL=addon-sign.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"addon-sign.test.js","sourceRoot":"","sources":["../../src/lib/addon-sign.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAExE,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACpD,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QACpC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1D,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB;IAClF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;QAClC,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1C,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QAC3C,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;QACzE,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC;QACtD,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,kBAAkB;QACxF,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY;QACpF,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe;IAC7F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,4FAA4F;QAC5F,MAAM,MAAM,GAAG,6CAA6C,CAAC;QAC7D,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CiCore CLI - CDN (Cloudflare R2) Operations
|
|
3
|
+
*
|
|
4
|
+
* Handles uploading addon and core UI files to R2 via CDN Gateway
|
|
5
|
+
*/
|
|
6
|
+
export interface CDNUploadOptions {
|
|
7
|
+
type: 'core' | 'addon';
|
|
8
|
+
addonName?: string;
|
|
9
|
+
version?: string;
|
|
10
|
+
sourcePath: string;
|
|
11
|
+
deleteFirst?: boolean;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Upload files to CDN (R2) via Gateway API
|
|
15
|
+
*/
|
|
16
|
+
export declare function uploadToCDN(options: CDNUploadOptions): Promise<boolean>;
|
|
17
|
+
/**
|
|
18
|
+
* Get CDN URL for addon
|
|
19
|
+
*/
|
|
20
|
+
export declare function getAddonCDNUrl(addonName: string, version?: string): string;
|
|
21
|
+
/**
|
|
22
|
+
* Get CDN URL for core UI
|
|
23
|
+
*/
|
|
24
|
+
export declare function getCoreCDNUrl(version?: string): string;
|
|
25
|
+
//# sourceMappingURL=cdn.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cdn.d.ts","sourceRoot":"","sources":["../../src/lib/cdn.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAoBH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,CAwF7E;AAoCD;;GAEG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,MAAiB,GAAG,MAAM,CAEpF;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,GAAE,MAAiB,GAAG,MAAM,CAEhE"}
|
package/dist/lib/cdn.js
ADDED
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CiCore CLI - CDN (Cloudflare R2) Operations
|
|
3
|
+
*
|
|
4
|
+
* Handles uploading addon and core UI files to R2 via CDN Gateway
|
|
5
|
+
*/
|
|
6
|
+
import { log, spinner } from './logger.js';
|
|
7
|
+
import { exec } from './shell.js';
|
|
8
|
+
import { paths } from './config.js';
|
|
9
|
+
import fs from 'fs-extra';
|
|
10
|
+
import path from 'path';
|
|
11
|
+
import archiver from 'archiver';
|
|
12
|
+
// CDN Configuration — apiKey Kasa vault'tan env-var olarak gelir (CICORE_CDN_API_KEY).
|
|
13
|
+
const CDN_CONFIG = {
|
|
14
|
+
get apiKey() {
|
|
15
|
+
const key = process.env.CICORE_CDN_API_KEY;
|
|
16
|
+
if (!key)
|
|
17
|
+
throw new Error('CICORE_CDN_API_KEY env-var eksik. Kasa vault: ci kasa get cicore cdn-api-key');
|
|
18
|
+
return key;
|
|
19
|
+
},
|
|
20
|
+
endpoint: 'https://cdn-api.cicore.com.tr',
|
|
21
|
+
baseUrl: 'https://cdn.cicore.com.tr',
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Upload files to CDN (R2) via Gateway API
|
|
25
|
+
*/
|
|
26
|
+
export async function uploadToCDN(options) {
|
|
27
|
+
const { type, addonName, version = 'latest', sourcePath, deleteFirst = true } = options;
|
|
28
|
+
// Validate source path
|
|
29
|
+
if (!await fs.pathExists(sourcePath)) {
|
|
30
|
+
log.error(`Source path not found: ${sourcePath}`);
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
const uploadSpinner = spinner('Preparing CDN upload...').start();
|
|
34
|
+
try {
|
|
35
|
+
// Create ZIP file
|
|
36
|
+
const zipName = type === 'core'
|
|
37
|
+
? `coreui-${version}.zip`
|
|
38
|
+
: `${addonName}-${version}.zip`;
|
|
39
|
+
const zipPath = path.join(paths.dev.root, '.tmp-cdn-upload', zipName);
|
|
40
|
+
// Ensure temp directory exists
|
|
41
|
+
await fs.ensureDir(path.dirname(zipPath));
|
|
42
|
+
// Remove old ZIP if exists
|
|
43
|
+
if (await fs.pathExists(zipPath)) {
|
|
44
|
+
await fs.remove(zipPath);
|
|
45
|
+
}
|
|
46
|
+
uploadSpinner.text = 'Creating ZIP archive...';
|
|
47
|
+
// Create ZIP
|
|
48
|
+
await createZip(sourcePath, zipPath);
|
|
49
|
+
const zipStats = await fs.stat(zipPath);
|
|
50
|
+
log.debug(`ZIP created: ${zipPath} (${(zipStats.size / 1024).toFixed(1)} KB)`);
|
|
51
|
+
// Delete existing files on CDN first
|
|
52
|
+
if (deleteFirst) {
|
|
53
|
+
uploadSpinner.text = 'Deleting old files from CDN...';
|
|
54
|
+
await deleteCDNFiles(type, addonName, version);
|
|
55
|
+
}
|
|
56
|
+
// Upload to CDN
|
|
57
|
+
uploadSpinner.text = 'Uploading to CDN...';
|
|
58
|
+
const endpoint = `${CDN_CONFIG.endpoint}/upload-coreui-zip`;
|
|
59
|
+
// Use PowerShell for the upload (cross-platform HTTP client issues)
|
|
60
|
+
const headers = {
|
|
61
|
+
'x-api-key': CDN_CONFIG.apiKey,
|
|
62
|
+
'x-version': version,
|
|
63
|
+
'Content-Type': 'application/zip',
|
|
64
|
+
};
|
|
65
|
+
if (type === 'addon' && addonName) {
|
|
66
|
+
headers['x-addon'] = addonName;
|
|
67
|
+
}
|
|
68
|
+
// Build PowerShell command for upload (single line for Windows compatibility)
|
|
69
|
+
const addonHeader = type === 'addon' && addonName ? `'x-addon'='${addonName}';` : '';
|
|
70
|
+
const escapedZipPath = zipPath.replace(/\\/g, '\\\\');
|
|
71
|
+
const psScript = `$h=@{'x-api-key'='${CDN_CONFIG.apiKey}';'x-version'='${version}';'Content-Type'='application/zip';${addonHeader}};$b=[System.IO.File]::ReadAllBytes('${escapedZipPath}');Invoke-RestMethod -Uri '${endpoint}' -Method Post -Headers $h -Body $b`;
|
|
72
|
+
const result = await exec('powershell', ['-NoProfile', '-Command', psScript], { silent: true });
|
|
73
|
+
if (!result.success) {
|
|
74
|
+
throw new Error(`CDN upload failed: ${result.stderr}`);
|
|
75
|
+
}
|
|
76
|
+
uploadSpinner.succeed('Files uploaded to CDN');
|
|
77
|
+
// Cleanup temp ZIP
|
|
78
|
+
await fs.remove(path.dirname(zipPath));
|
|
79
|
+
// Log CDN URL
|
|
80
|
+
const cdnUrl = type === 'core'
|
|
81
|
+
? `${CDN_CONFIG.baseUrl}/CoreUI/${version}`
|
|
82
|
+
: `${CDN_CONFIG.baseUrl}/addons/${addonName}/${version}`;
|
|
83
|
+
log.kv('CDN URL', cdnUrl);
|
|
84
|
+
return true;
|
|
85
|
+
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
uploadSpinner.fail('CDN upload failed');
|
|
88
|
+
log.error(error.message);
|
|
89
|
+
return false;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Delete files from CDN before upload
|
|
94
|
+
*/
|
|
95
|
+
async function deleteCDNFiles(type, addonName, version) {
|
|
96
|
+
const deleteEndpoint = `${CDN_CONFIG.endpoint}/delete-folder`;
|
|
97
|
+
const folder = type === 'core'
|
|
98
|
+
? `CoreUI/${version}`
|
|
99
|
+
: `addons/${addonName}/${version}`;
|
|
100
|
+
// Single-line PowerShell for Windows compatibility
|
|
101
|
+
const psScript = `$h=@{'x-api-key'='${CDN_CONFIG.apiKey}';'Content-Type'='application/json'};$b='{"folder":"${folder}"}';try{Invoke-RestMethod -Uri '${deleteEndpoint}' -Method Post -Headers $h -Body $b}catch{}`;
|
|
102
|
+
await exec('powershell', ['-NoProfile', '-Command', psScript], { silent: true });
|
|
103
|
+
log.debug(`Deleted CDN folder: ${folder}`);
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Create ZIP archive from directory
|
|
107
|
+
*/
|
|
108
|
+
async function createZip(sourceDir, zipPath) {
|
|
109
|
+
return new Promise((resolve, reject) => {
|
|
110
|
+
const output = fs.createWriteStream(zipPath);
|
|
111
|
+
const archive = archiver('zip', { zlib: { level: 9 } });
|
|
112
|
+
output.on('close', () => resolve());
|
|
113
|
+
archive.on('error', (err) => reject(err));
|
|
114
|
+
archive.pipe(output);
|
|
115
|
+
archive.directory(sourceDir, false);
|
|
116
|
+
archive.finalize();
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Get CDN URL for addon
|
|
121
|
+
*/
|
|
122
|
+
export function getAddonCDNUrl(addonName, version = 'latest') {
|
|
123
|
+
return `${CDN_CONFIG.baseUrl}/addons/${addonName}/${version}`;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Get CDN URL for core UI
|
|
127
|
+
*/
|
|
128
|
+
export function getCoreCDNUrl(version = 'latest') {
|
|
129
|
+
return `${CDN_CONFIG.baseUrl}/CoreUI/${version}`;
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=cdn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cdn.js","sourceRoot":"","sources":["../../src/lib/cdn.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CiCore CLI - Cloudflare API Integration
|
|
3
|
+
*
|
|
4
|
+
* Handles DNS management and Origin Certificate generation
|
|
5
|
+
*/
|
|
6
|
+
export interface CloudflareConfig {
|
|
7
|
+
apiToken: string;
|
|
8
|
+
email?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface CloudflareZone {
|
|
11
|
+
id: string;
|
|
12
|
+
name: string;
|
|
13
|
+
status: string;
|
|
14
|
+
paused: boolean;
|
|
15
|
+
type: string;
|
|
16
|
+
name_servers: string[];
|
|
17
|
+
}
|
|
18
|
+
export interface CloudflareDNSRecord {
|
|
19
|
+
id: string;
|
|
20
|
+
type: string;
|
|
21
|
+
name: string;
|
|
22
|
+
content: string;
|
|
23
|
+
proxied: boolean;
|
|
24
|
+
ttl: number;
|
|
25
|
+
}
|
|
26
|
+
export interface CloudflareOriginCertificate {
|
|
27
|
+
id: string;
|
|
28
|
+
certificate: string;
|
|
29
|
+
private_key: string;
|
|
30
|
+
hostnames: string[];
|
|
31
|
+
expires_on: string;
|
|
32
|
+
request_type: string;
|
|
33
|
+
requested_validity: number;
|
|
34
|
+
}
|
|
35
|
+
export declare function saveCloudflareConfig(config: CloudflareConfig): Promise<void>;
|
|
36
|
+
export declare function loadCloudflareConfig(): Promise<CloudflareConfig | null>;
|
|
37
|
+
export declare function getCloudflareToken(): Promise<string | null>;
|
|
38
|
+
/**
|
|
39
|
+
* List all zones (domains) in the account
|
|
40
|
+
*/
|
|
41
|
+
export declare function listZones(): Promise<CloudflareZone[]>;
|
|
42
|
+
/**
|
|
43
|
+
* Get zone by domain name
|
|
44
|
+
*/
|
|
45
|
+
export declare function getZoneByDomain(domain: string): Promise<CloudflareZone | null>;
|
|
46
|
+
/**
|
|
47
|
+
* List DNS records for a zone
|
|
48
|
+
*/
|
|
49
|
+
export declare function listDNSRecords(zoneId: string): Promise<CloudflareDNSRecord[]>;
|
|
50
|
+
/**
|
|
51
|
+
* Create or update DNS record
|
|
52
|
+
*/
|
|
53
|
+
export declare function upsertDNSRecord(zoneId: string, type: string, name: string, content: string, proxied?: boolean, ttl?: number): Promise<CloudflareDNSRecord | null>;
|
|
54
|
+
/**
|
|
55
|
+
* Delete DNS record
|
|
56
|
+
*/
|
|
57
|
+
export declare function deleteDNSRecord(zoneId: string, recordId: string): Promise<boolean>;
|
|
58
|
+
/**
|
|
59
|
+
* Get current SSL/TLS mode for a zone
|
|
60
|
+
*/
|
|
61
|
+
export declare function getSSLMode(zoneId: string): Promise<string | null>;
|
|
62
|
+
/**
|
|
63
|
+
* Set SSL/TLS mode for a zone
|
|
64
|
+
* Options: off, flexible, full, strict
|
|
65
|
+
*/
|
|
66
|
+
export declare function setSSLMode(zoneId: string, mode: 'off' | 'flexible' | 'full' | 'strict'): Promise<boolean>;
|
|
67
|
+
/**
|
|
68
|
+
* Create Origin Certificate (15 years, free)
|
|
69
|
+
* This certificate is used between Cloudflare and your origin server
|
|
70
|
+
*/
|
|
71
|
+
export declare function createOriginCertificate(hostnames: string[], validityDays?: number): Promise<CloudflareOriginCertificate | null>;
|
|
72
|
+
/**
|
|
73
|
+
* List Origin Certificates
|
|
74
|
+
*/
|
|
75
|
+
export declare function listOriginCertificates(zoneId: string): Promise<CloudflareOriginCertificate[]>;
|
|
76
|
+
/**
|
|
77
|
+
* Revoke Origin Certificate
|
|
78
|
+
*/
|
|
79
|
+
export declare function revokeOriginCertificate(certId: string): Promise<boolean>;
|
|
80
|
+
/**
|
|
81
|
+
* Purge all cache for a zone
|
|
82
|
+
*/
|
|
83
|
+
export declare function purgeAllCache(zoneId: string): Promise<{
|
|
84
|
+
success: boolean;
|
|
85
|
+
error?: string;
|
|
86
|
+
}>;
|
|
87
|
+
/**
|
|
88
|
+
* Purge cache by URLs
|
|
89
|
+
*/
|
|
90
|
+
export declare function purgeCacheByUrls(zoneId: string, urls: string[]): Promise<{
|
|
91
|
+
success: boolean;
|
|
92
|
+
error?: string;
|
|
93
|
+
}>;
|
|
94
|
+
/**
|
|
95
|
+
* Purge cache by tags (Enterprise only)
|
|
96
|
+
*/
|
|
97
|
+
export declare function purgeCacheByTags(zoneId: string, tags: string[]): Promise<boolean>;
|
|
98
|
+
/**
|
|
99
|
+
* Purge cache by prefixes
|
|
100
|
+
*/
|
|
101
|
+
export declare function purgeCacheByPrefixes(zoneId: string, prefixes: string[]): Promise<boolean>;
|
|
102
|
+
/**
|
|
103
|
+
* Setup domain for VuCore
|
|
104
|
+
* - Creates DNS records (A, AAAA for root and subdomains)
|
|
105
|
+
* - Sets SSL mode to Full (Strict)
|
|
106
|
+
* - Creates Origin Certificate
|
|
107
|
+
*/
|
|
108
|
+
export declare function setupDomainForVuCore(domain: string, serverIP: string, options?: {
|
|
109
|
+
createWildcard?: boolean;
|
|
110
|
+
createApiSubdomain?: boolean;
|
|
111
|
+
sslMode?: 'flexible' | 'full' | 'strict';
|
|
112
|
+
}): Promise<{
|
|
113
|
+
success: boolean;
|
|
114
|
+
certificate?: CloudflareOriginCertificate;
|
|
115
|
+
dnsRecords?: CloudflareDNSRecord[];
|
|
116
|
+
error?: string;
|
|
117
|
+
}>;
|
|
118
|
+
/**
|
|
119
|
+
* Verify API token is valid
|
|
120
|
+
*/
|
|
121
|
+
export declare function verifyToken(token?: string): Promise<{
|
|
122
|
+
valid: boolean;
|
|
123
|
+
email?: string;
|
|
124
|
+
error?: string;
|
|
125
|
+
}>;
|
|
126
|
+
/**
|
|
127
|
+
* Get account email
|
|
128
|
+
*/
|
|
129
|
+
export declare function getAccountInfo(): Promise<{
|
|
130
|
+
email: string;
|
|
131
|
+
id: string;
|
|
132
|
+
} | null>;
|
|
133
|
+
//# sourceMappingURL=cloudflare.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloudflare.d.ts","sourceRoot":"","sources":["../../src/lib/cloudflare.ts"],"names":[],"mappings":"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"}
|