@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":"promote-silo.js","sourceRoot":"","sources":["../../../src/commands/db/promote-silo.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAGH,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAA;AACzC,OAAO,EAAE,aAAa,EAAmB,MAAM,oBAAoB,CAAA;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAE9C,MAAM,UAAU,GAAG,gBAAgB,CAAA;AACnC,MAAM,OAAO,GAAG,yBAAyB,CAAA;AACzC,MAAM,UAAU,GAAG,CAAC,CAAA;AACpB,MAAM,sBAAsB,GAAG,EAAE,CAAA;AAEjC,4EAA4E;AAC5E,4BAA4B;AAC5B,4EAA4E;AAE5E,MAAM,UAAU,mBAAmB,CAAC,EAAW;IAC7C,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC;SACvB,WAAW,CAAC,gGAAgG,CAAC;SAC7G,cAAc,CAAC,gBAAgB,EAAE,uBAAuB,CAAC;SACzD,MAAM,CAAC,mBAAmB,EAAE,2BAA2B,CAAC;SACxD,MAAM,CAAC,iBAAiB,EAAE,kEAAkE,CAAC;SAC7F,MAAM,CAAC,oBAAoB,EAAE,uDAAuD,EAAE,KAAK,CAAC;SAC5F,MAAM,CAAC,WAAW,EAAE,yDAAyD,EAAE,KAAK,CAAC;SACrF,MAAM,CAAC,KAAK,EAAE,IAAiB,EAAE,EAAE;QAClC,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAClC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,GAAG,CAAC,KAAK,CAAC,yBAAyB,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;YAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACrE,CAAC;QACD,MAAM,GAAG,GAAY;YACnB,GAAG;YACH,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI;YACzB,eAAe,EAAE,IAAI,CAAC,eAAe,KAAK,IAAI;YAC9C,MAAM,EAAE,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,QAAQ,EAAE,EAAG,4BAA4B;YACzE,KAAK,EAAE,UAAU,CAAC,UAAU,CAAC;SAC9B,CAAA;QACD,MAAM,EAAE,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,CAAA;QACrC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC1B,CAAC,CAAC,CAAA;AACN,CAAC;AA8FD,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,GAAY;IAChD,GAAG,CAAC,IAAI,CAAC,wBAAwB,GAAG,CAAC,KAAK,SAAS,GAAG,CAAC,GAAG,CAAC,KAAK,YAAY,GAAG,CAAC,MAAM,EAAE,CAAC,CAAA;IACzF,IAAI,CAAC;QACH,oBAAoB;QACpB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAA;QAEnE,uEAAuE;QACvE,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,CAAA;QACnC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAA;QAEtF,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,GAAG,CAAC,OAAO,CAAC,4DAA4D,CAAC,CAAA;YACzE,GAAG,CAAC,IAAI,CAAC,eAAe,SAAS,CAAC,MAAM,CAAC,MAAM,wBAAwB,CAAC,CAAA;YACxE,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAA;YACtF,GAAG,CAAC,IAAI,CAAC,iBAAiB,SAAS,CAAC,UAAU,CAAC,MAAM,oCAAoC,CAAC,CAAA;YAC1F,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;YAC3E,OAAO,IAAI,CAAA;QACb,CAAC;QAED,6BAA6B;QAC7B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,gBAAgB,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;QAEpF,0BAA0B;QAC1B,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,gBAAgB,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;QAE5E,0BAA0B;QAC1B,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,gBAAgB,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;QAEvE,2EAA2E;QAC3E,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,cAAc,EAC/B,GAAG,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;QAEtF,mEAAmE;QACnE,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,QAAQ,EACzB,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;QAEjF,6CAA6C;QAC7C,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,eAAe,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAA;QAE3E,wCAAwC;QACxC,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,kBAAkB,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;QAE3E,GAAG,CAAC,OAAO,CAAC,qCAAqC,GAAG,CAAC,KAAK,yCAAyC,CAAC,CAAA;QACpG,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC5D,GAAG,CAAC,KAAK,CAAC,mCAAmC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC,CAAA;QACjF,MAAM,YAAY,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAA;QACtC,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,sEAAsE;AACtE,MAAM,CAAC,KAAK,UAAU,IAAI,CACxB,GAAY,EACZ,GAAW,EACX,IAAY,EACZ,IAAsB;IAEtB,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;QAC1C,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,IAAI,UAAU,KAAK,IAAI,qCAAqC,CAAC,CAAA;QACtF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,EAAE,CAAM,CAAA;IAC3C,CAAC;IACD,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,SAAS,CAAA;IACjC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IACnD,MAAM,YAAY,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,CAAA;IACxC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,IAAI,UAAU,KAAK,IAAI,UAAU,CAAC,CAAA;IAC3D,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,IAAI,EAAE,CAAA;QACxB,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,WAAW,CAAA;QACnC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;QACpD,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,CAAA;QAC5C,MAAM,YAAY,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,CAAA;QACxC,GAAG,CAAC,OAAO,CAAC,SAAS,GAAG,GAAG,CAAC,IAAI,UAAU,KAAK,IAAI,SAAS,CAAC,CAAA;QAC7D,OAAO,GAAG,CAAA;IACZ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,QAAQ,CAAA;QAChC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACvE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;QACpD,MAAM,GAAG,CAAA;IACX,CAAC;AACH,CAAC;AAED,4EAA4E;AAC5E,8CAA8C;AAC9C,4EAA4E;AAE5E,iFAAiF;AACjF,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAAY;IAC3C,MAAM,IAAI,GAAG,MAAM,YAAY,CAC7B,GAAG,CAAC,GAAG,EAAE,UAAU,EACnB;oCACgC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAC7D,CAAA;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,UAAU,GAAG,CAAC,KAAK,0BAA0B,CAAC,CAAA;IACrF,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,IAAI,CAAC,CAAC,OAAO,KAAK,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,UAAU,GAAG,CAAC,KAAK,sCAAsC,CAAC,CAAA;IACpG,IAAI,CAAC,CAAC,OAAO,KAAK,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,UAAU,GAAG,CAAC,KAAK,0BAA0B,CAAC,CAAC,OAAO,GAAG,CAAC,CAAA;IACpG,IAAI,CAAC,CAAC,UAAU,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,KAAK,IAAI,IAAI,CAAC,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;QAC7E,MAAM,IAAI,KAAK,CAAC,UAAU,GAAG,CAAC,KAAK,uDAAuD,CAAC,CAAA;IAC7F,CAAC;IACD,OAAO,CAAC,CAAA;AACV,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,GAAY,EAAE,KAAe,EAAE,IAAe;IAE9C,uDAAuD;IACvD,MAAM,UAAU,GAAG,MAAM,YAAY,CACnC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EACrB;;wCAEoC,CACrC,CAAA;IACD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,GAAG,CAAC,IAAI,CAAC,iDAAiD,IAAI,CAAC,OAAO,4BAA4B,CAAC,CAAA;IACrG,CAAC;IAED,sEAAsE;IACtE,MAAM,MAAM,GAAG,MAAM,YAAY,CAC/B,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EACrB;;;;;;;;;;;;;;;;uDAgBmD,CACpD,CAAA;IAED,iFAAiF;IACjF,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;QACxB,IAAI,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,GAAG,CAAC,IAAI,CAAC,yDAAyD,EAAE,CAAC,YAAY,IAAI,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,YAAY,OAAO,EAAE,CAAC,aAAa,IAAI,EAAE,CAAC,YAAY,IAAI,EAAE,CAAC,aAAa,iBAAiB,EAAE,CAAC,SAAS,EAAE,CAAC,CAAA;QACtN,CAAC;IACH,CAAC;IAED,2DAA2D;IAC3D,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IACnC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAsB,CAAA,CAAC,mBAAmB;IAEjE,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,UAAU,EAAE,CAAA;QAC/C,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE;YACf,MAAM,EAAE,CAAC,CAAC,YAAY;YACtB,KAAK,EAAE,CAAC,CAAC,UAAU;YACnB,GAAG,EAAE,QAAQ;YACb,MAAM,EAAE,EAAE;YACV,SAAS,EAAE,eAAe,UAAU,GAAG;YACvC,KAAK,EAAE,CAAC;SACT,CAAC,CAAA;IACJ,CAAC;IAED,2DAA2D;IAC3D,MAAM,UAAU,GAAG,IAAI,GAAG,EAAyE,CAAA;IACnG,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,aAAa,IAAI,EAAE,CAAC,YAAY,EAAE,CAAA;QACvD,MAAM,KAAK,GAAI,GAAG,EAAE,CAAC,YAAY,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;QACrD,IAAI,MAAM,KAAK,KAAK;YAAE,SAAQ,CAAC,uBAAuB;QACtD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;QACvD,UAAU,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,YAAY,EAAE,SAAS,EAAE,EAAE,CAAC,aAAa,EAAE,CAAC,CAAA;IACjG,CAAC;IAED,2EAA2E;IAC3E,MAAM,KAAK,GAAa,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;IAC3C,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,IAAI,EAAE,MAAM,GAAG,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAA;QAC3G,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,EAAG,CAAA;QAChC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QAC1C,IAAI,CAAC,WAAW;YAAE,SAAQ;QAC1B,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAA;QAChD,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;gBAAE,SAAQ,CAAC,sCAAsC;YACzE,2FAA2F;YAC3F,MAAM,SAAS,GACb,GAAG,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM;gBAC/B,WAAW,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,cAAc,CAAC,SAAS,CAAC,UAAU,WAAW,CAAC,SAAS,GAAG,CAAA;YACxG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAC1C,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE;gBACnB,MAAM,EAAE,KAAK;gBACb,GAAG,EAAE,IAAI;gBACT,MAAM,EAAE,CAAC,SAAS,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC;gBAC1C,SAAS;gBACT,KAAK,EAAE,WAAW,CAAC,KAAK,GAAG,CAAC;aAC7B,CAAC,CAAA;YACF,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;QACrB,CAAC;IACH,CAAC;IAED,0EAA0E;IAC1E,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAC1D,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK;YAAE,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAA;QACjD,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,EAAE,CAAA;QACnC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,EAAE,CAAA;QACnC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACvC,CAAC,CAAC,CAAA;IAEF,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAA;IACnE,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,MAAM,CAAA;IAC3D,GAAG,CAAC,IAAI,CAAC,yBAAyB,QAAQ,CAAC,MAAM,eAAe,WAAW,aAAa,OAAO,eAAe,CAAC,CAAA;IAC/G,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACnB,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;QACxE,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,CAAA;QAC/E,GAAG,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,SAAS,EAAE,CAAC,CAAA;IACpD,CAAC,CAAC,CAAA;IAEF,8DAA8D;IAC9D,EAAE;IACF,qEAAqE;IACrE,4CAA4C;IAC5C,wEAAwE;IACxE,6EAA6E;IAC7E,2EAA2E;IAC3E,yDAAyD;IACzD,EAAE;IACF,wEAAwE;IACxE,uEAAuE;IACvE,0EAA0E;IAC1E,mBAAmB;IACnB,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;IACxE,MAAM,MAAM,GAAG,IAAI,GAAG,EAA0B,CAAA;IAChD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAA;IACpC,MAAM,QAAQ,GAAa,EAAE,CAAA;IAC7B,IAAI,SAAS,GAAG,CAAC,CAAA;IAEjB,MAAM,YAAY,GAAG,CAAC,QAAgB,EAAE,YAAoB,EAAE,WAAmB,EAAQ,EAAE;QACzF,MAAM,SAAS,GAAG,GAAG,YAAY,IAAI,WAAW,EAAE,CAAA;QAClD,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAM,CAAO,UAAU;QACnD,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,OAAM,CAAO,kBAAkB;QAC3D,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,OAAM,CAAO,0CAA0C;QAEnF,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QACtC,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAAE,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YAC7E,OAAM;QACR,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE;YACpB,MAAM,EAAE,YAAY;YACpB,KAAK,EAAE,WAAW;YAClB,SAAS,EAAE,CAAC,QAAQ,CAAC;SACtB,CAAC,CAAA;QACF,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QACtB,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAC1B,CAAC,CAAA;IAED,8CAA8C;IAC9C,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;QACxB,YAAY,CAAC,GAAG,EAAE,CAAC,YAAY,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,aAAa,EAAE,EAAE,CAAC,YAAY,CAAC,CAAA;IACzF,CAAC;IACD,uEAAuE;IACvE,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,IAAI,EAAE,SAAS,GAAG,IAAI,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,4FAA4F,CAAC,CAAA;QAC/G,CAAC;QACD,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,EAAG,CAAA;QACnC,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;YACxB,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,YAAY,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;YACvD,IAAI,QAAQ,KAAK,SAAS;gBAAE,SAAQ;YACpC,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC,aAAa,EAAE,EAAE,CAAC,YAAY,CAAC,CAAA;QAC3D,CAAC;IACH,CAAC;IAED,kEAAkE;IAClE,kEAAkE;IAClE,sEAAsE;IACtE,qCAAqC;IACrC,MAAM,UAAU,GAAG,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAAA;IAE1E,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,GAAG,CAAC,IAAI,CAAC,uEAAuE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAA;QACpG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CACrB,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,kBAAkB,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAChF,CAAA;IACH,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,IAAI,CAAC,0EAA0E,CAAC,CAAA;IACtF,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,8FAA8F,CAC/F,CAAA;IACH,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAA;AACzC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAsB,EAAE,MAAmB;IAC5E,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,KAAK,EAAE,CAAA;IACzC,4EAA4E;IAC5E,0EAA0E;IAC1E,cAAc;IACd,MAAM,OAAO,GAAG,IAAI,GAAG,CAAS,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;IACxE,MAAM,KAAK,GAAG,IAAI,GAAG,CAAyB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IAE3F,gEAAgE;IAChE,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAA;IACvC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAoB,CAAA,CAAI,4BAA4B;IAC5E,KAAK,MAAM,CAAC,IAAI,OAAO;QAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAExC,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAI,GAAG,EAAE,CAAC,YAAY,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;QACxD,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,aAAa,IAAI,EAAE,CAAC,YAAY,EAAE,CAAA;QAC1D,IAAI,QAAQ,KAAK,SAAS;YAAE,SAAQ;QACpC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,SAAQ;QAC/D,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QACnD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;QACzD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAAE,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAC3F,CAAC;IAED,uDAAuD;IACvD,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK;QAAE,IAAI,CAAC,KAAK,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACtD,KAAK,CAAC,IAAI,EAAE,CAAA;IAEZ,MAAM,MAAM,GAAqB,EAAE,CAAA;IACnC,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,gFAAgF,CAAC,CAAA;QACnG,CAAC;QACD,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,EAAG,CAAA;QACxB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,CAAA;QAC1B,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YACtC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;YACjC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YACf,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACZ,iCAAiC;gBACjC,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;gBACvC,IAAI,GAAG,KAAK,CAAC,CAAC;oBAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;oBAAM,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;YAC7D,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CACb,+CAA+C,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,8BAA8B,CAC1G,CAAA;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAaD,0FAA0F;AAC1F,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,GAAG,CAAA;AAC7C,CAAC;AACD,wCAAwC;AACxC,MAAM,UAAU,cAAc,CAAC,SAAiB;IAC9C,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC5C,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAA;AACrD,CAAC;AAED,6DAA6D;AAC7D,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,GAAY,EAAE,KAAe;IACjE,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAChC,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,IAAI,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;IACtF,MAAM,MAAM,GAAG,MAAM,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,CAAA;IACxE,MAAM,MAAM,GAAG,GAAG,MAAM,OAAO,CAAA;IAE/B,uCAAuC;IACvC,MAAM,MAAM,GAAG,MAAM,YAAY,CAC/B,GAAG,CAAC,GAAG,EAAE,UAAU,EACnB,wDAAwD,MAAM,CAAC,MAAM,CAAC,GAAG,CAC1E,CAAA;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,eAAe,CAAA;QAClC,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,WAAW,CAAA;QACjC,MAAM,MAAM,GACV,qBAAqB;YACrB,eAAe,EAAE,YAAY,KAAK,sDAAsD;YACxF,mBAAmB,MAAM,KAAK;YAC9B,mBAAmB;YACnB,0DAA0D,MAAM,WAAW;YAC3E,mBAAmB,MAAM,WAAW;YACpC,aAAa;YACb,eAAe;YACf,oCAAoC,MAAM,OAAO,MAAM,KAAK;YAC5D,OAAO,CAAA;QACT,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;QACpE,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;IACvG,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,IAAI,CAAC,wBAAwB,MAAM,6CAA6C,CAAC,CAAA;IACvF,CAAC;IAED,6EAA6E;IAC7E,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,CAAA;IACnC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAA;AAC3F,CAAC;AAED,iFAAiF;AACjF,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,GAAY,EAAE,IAAe,EAAE,IAAe;IAClF,2DAA2D;IAC3D,MAAM,UAAU,GAAG,MAAM,YAAY,CACnC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EACrB,uFAAuF,CACxF,CAAA;IACD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;QACtE,GAAG,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,OAAO,iBAAiB,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAA;QACjG,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAA;IACrB,CAAC;IACD,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,eAAe,CAAA;IAClC,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,WAAW,CAAA;IACjC,MAAM,MAAM,GACV,qBAAqB;QACrB,eAAe,EAAE,eAAe,KAAK,oBAAoB,IAAI,CAAC,OAAO,yCAAyC;QAC9G,sBAAsB,EAAE,YAAY,KAAK,oBAAoB,IAAI,CAAC,OAAO,uBAAuB,CAAA;IAClG,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;IACpE,IAAI,CAAC,GAAG,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;IACrG,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAA;AACrB,CAAC;AAED,0EAA0E;AAC1E,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,GAAY,EAAE,KAAe;IACjE,MAAM,MAAM,CACV,GAAG,CAAC,GAAG,EAAE,UAAU,EACnB;kBACc,KAAK,CAAC,EAAE,6BAA6B,CACpD,CAAA;IACD,MAAM,qBAAqB,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,CAAA,CAAE,gCAAgC;IAChF,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAA;AAChC,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,GAAY,EAAE,KAAe,EAAE,QAAsB,EAAE,UAA4B,EACnF,IAAe,EAAE,IAAe;IAEhC,IAAI,QAAQ,GAAG,CAAC,CAAA;IAChB,IAAI,OAAO,GAAG,CAAC,CAAA;IACf,IAAI,SAAS,GAAG,CAAC,CAAA;IACjB,IAAI,UAAU,GAAG,CAAC,CAAA;IAClB,IAAI,QAAQ,GAAG,CAAC,CAAA;IAEhB,sEAAsE;IACtE,oEAAoE;IACpE,uEAAuE;IACvE,4BAA4B;IAC5B,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,EAAE,CAAA;QACtC,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;QAC/E,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;QAE/E,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;YAC7C,GAAG,CAAC,IAAI,CAAC,iBAAiB,KAAK,iBAAiB,SAAS,4BAA4B,CAAC,CAAA;YACtF,UAAU,EAAE,CAAA,CAAC,0CAA0C;YACvD,QAAQ,IAAI,SAAS,CAAA;YACrB,SAAQ;QACV,CAAC;QACD,IAAI,SAAS,KAAK,CAAC,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;YACvC,GAAG,CAAC,IAAI,CAAC,iBAAiB,KAAK,wBAAwB,CAAC,CAAA;YACxD,SAAQ;QACV,CAAC;QACD,IAAI,SAAS,GAAG,CAAC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC7C,GAAG,CAAC,IAAI,CAAC,iBAAiB,KAAK,yBAAyB,SAAS,SAAS,SAAS,yBAAyB,CAAC,CAAA;YAC7G,MAAM,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAA;QAC3D,CAAC;QACD,IAAI,SAAS,GAAG,OAAO,EAAE,CAAC;YACxB,GAAG,CAAC,IAAI,CAAC,iBAAiB,KAAK,6BAA6B,SAAS,kCAAkC,CAAC,CAAA;QAC1G,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,iBAAiB,KAAK,MAAM,SAAS,uBAAuB,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC/F,gEAAgE;QAChE,MAAM,QAAQ,GAAe;YAC3B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE;YAC3D,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;SAC7B,CAAA;QACD,MAAM,sBAAsB,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QACvE,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;QAC3E,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,GAAG,CAAC,IAAI,CAAC,iBAAiB,KAAK,mBAAmB,KAAK,YAAY,SAAS,qCAAqC,CAAC,CAAA;QACpH,CAAC;QACD,UAAU,EAAE,CAAA;QACZ,QAAQ,IAAI,KAAK,CAAA;IACnB,CAAC;IACD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,GAAG,CAAC,IAAI,CAAC,qCAAqC,UAAU,IAAI,UAAU,CAAC,MAAM,SAAS,QAAQ,EAAE,CAAC,CAAA;IACnG,CAAC;IAED,4DAA4D;IAC5D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,GAAG,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAA;QAChF,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAA;IACrE,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,EAAE,CAAA;QAC3C,MAAM,SAAS,GAAG,MAAM,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;QAChE,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;QAE/E,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;YAC7C,GAAG,CAAC,IAAI,CAAC,aAAa,UAAU,iBAAiB,SAAS,4CAA4C,CAAC,CAAA;YACvG,OAAO,EAAE,CAAA;YACT,SAAS,IAAI,SAAS,CAAA;YACtB,SAAQ;QACV,CAAC;QACD,IAAI,SAAS,KAAK,CAAC,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;YACvC,GAAG,CAAC,IAAI,CAAC,aAAa,UAAU,mCAAmC,CAAC,CAAA;YACpE,OAAO,EAAE,CAAA;YACT,SAAQ;QACV,CAAC;QACD,IAAI,SAAS,GAAG,CAAC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC7C,GAAG,CAAC,IAAI,CAAC,aAAa,UAAU,kCAAkC,SAAS,SAAS,SAAS,oBAAoB,CAAC,CAAA;YAClH,MAAM,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAA;QAC3D,CAAC;QAED,GAAG,CAAC,IAAI,CAAC,aAAa,UAAU,MAAM,SAAS,eAAe,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA;QACvF,MAAM,sBAAsB,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;QAChE,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;QAC3E,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,uEAAuE;YACvE,uEAAuE;YACvE,4DAA4D;YAC5D,GAAG,CAAC,IAAI,CAAC,aAAa,UAAU,mBAAmB,KAAK,YAAY,SAAS,qCAAqC,CAAC,CAAA;QACrH,CAAC;QACD,QAAQ,EAAE,CAAA;QACV,SAAS,IAAI,KAAK,CAAA;IACpB,CAAC;IAED,GAAG,CAAC,IAAI,CAAC,kCAAkC,QAAQ,YAAY,OAAO,SAAS,SAAS,EAAE,CAAC,CAAA;IAC3F,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAA;AACrE,CAAC;AAED,kEAAkE;AAClE,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,GAAY,EAAE,MAAc,EAAE,CAAa;IAClF,MAAM,IAAI,GAAG,MAAM,YAAY,CAC7B,GAAG,CAAC,GAAG,EAAE,MAAM,EACf,mCAAmC,cAAc,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,UAAU,CAAC,CAAC,SAAS,EAAE,CACnG,CAAA;IACD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACzD,CAAC;AAED,iFAAiF;AACjF,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAAY,EAAE,MAAc,EAAE,MAAc,EAAE,KAAa,EAAE,KAAa;IACzG,MAAM,IAAI,GAAG,MAAM,YAAY,CAC7B,GAAG,CAAC,GAAG,EAAE,MAAM,EACf,mCAAmC,cAAc,CAAC,GAAG,MAAM,IAAI,KAAK,EAAE,CAAC,UAAU,KAAK,EAAE,CACzF,CAAA;IACD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACzD,CAAC;AAED,0DAA0D;AAC1D,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAY,EAAE,MAAc,EAAE,MAAc,EAAE,KAAa;IAC7F,oEAAoE;IACpE,yDAAyD;IACzD,MAAM,MAAM,CACV,GAAG,CAAC,GAAG,EAAE,MAAM,EACf,kBAAkB,cAAc,CAAC,GAAG,MAAM,IAAI,KAAK,EAAE,CAAC,mBAAmB,CAC1E,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,GAAY,EAAE,MAAc,EAAE,MAAc,EAAE,CAAa;IAE3D,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,eAAe,CAAA;IAClC,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,WAAW,CAAA;IACjC,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA;IACvD,qEAAqE;IACrE,MAAM,SAAS,GACb,0CAA0C;QAC1C,uBAAuB,MAAM,UAAU,CAAC,CAAC,SAAS,aAAa,CAAA;IACjE,0DAA0D;IAC1D,MAAM,SAAS,GACb,0CAA0C;QAC1C,QAAQ,MAAM,aAAa,CAAA;IAE7B,wEAAwE;IACxE,+DAA+D;IAC/D,MAAM,MAAM,GACV,qBAAqB;QACrB,kBAAkB,EAAE,YAAY;QAChC,sBAAsB;QACtB,aAAa,KAAK,oBAAoB,MAAM,+CAA+C;QAC3F,SAAS,CAAC,SAAS,CAAC;QACpB,eAAe,KAAK,oBAAoB,MAAM,+CAA+C;QAC7F,SAAS,CAAC,SAAS,CAAC;QACpB,KAAK,CAAA;IAEP,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;IACpE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACb,QAAQ,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,YAAY,CAAC,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CACzF,CAAA;IACH,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,GAAW;IACnC,kEAAkE;IAClE,8EAA8E;IAC9E,sEAAsE;IACtE,qBAAqB;IACrB,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IACxC,OAAO,IAAI,OAAO,GAAG,CAAA;AACvB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,GAAY,EAAE,KAAe,EAAE,QAAsB,EAAE,UAA4B,EACnF,IAAe,EAAE,IAAe;IAKhC,IAAI,UAAU,GAAG,CAAC,CAAA;IAClB,IAAI,OAAO,GAAG,CAAC,CAAA;IACf,IAAI,gBAAgB,GAAG,CAAC,CAAA;IACxB,IAAI,OAAO,GAAG,CAAC,CAAA;IAEf,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,EAAE,CAAA;QAEtC,0BAA0B;QAC1B,MAAM,SAAS,GAAG,MAAM,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;QAChE,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;QAC/E,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,GAAG,CAAC,KAAK,CAAC,cAAc,KAAK,qBAAqB,SAAS,SAAS,SAAS,WAAW,CAAC,CAAA;YACzF,UAAU,EAAE,CAAA;YACZ,SAAQ,CAAC,gCAAgC;QAC3C,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,cAAc,KAAK,MAAM,SAAS,IAAI,CAAC,CAAA;QAEhD,+BAA+B;QAC/B,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAA;QACjF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,GAAG,CAAC,IAAI,CAAC,cAAc,KAAK,yCAAyC,CAAC,CAAA;YACtE,gBAAgB,EAAE,CAAA;QACpB,CAAC;aAAM,CAAC;YACN,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACjD,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;YAChG,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;YAC1F,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAC1B,GAAG,CAAC,KAAK,CAAC,cAAc,KAAK,eAAe,QAAQ,aAAa,QAAQ,WAAW,CAAC,CAAA;gBACrF,UAAU,EAAE,CAAA;gBACZ,SAAQ;YACV,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,cAAc,KAAK,UAAU,QAAQ,IAAI,CAAC,CAAA;QACrD,CAAC;QAED,wEAAwE;QACxE,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,MAAM,UAAU,CAC3B,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,EACpC,gBAAgB,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CACpC,CAAA;YACD,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;gBACb,GAAG,CAAC,KAAK,CAAC,cAAc,KAAK,eAAe,IAAI,4BAA4B,KAAK,CAAC,EAAE,cAAc,CAAC,CAAA;gBACnG,OAAO,IAAI,IAAI,CAAA;YACjB,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,IAAI,CAAC,cAAc,KAAK,qBAAqB,CAAC,CAAA;YACpD,CAAC;QACH,CAAC;IACH,CAAC;IAED,0EAA0E;IAC1E,yEAAyE;IACzE,wEAAwE;IACxE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QACrE,OAAO,GAAG,WAAW,CAAA;QACrB,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;YACpB,GAAG,CAAC,KAAK,CAAC,6BAA6B,WAAW,yCAAyC,CAAC,CAAA;QAC9F,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAA;QACzD,CAAC;IACH,CAAC;IAED,GAAG,CAAC,IAAI,CACN,sCAAsC,QAAQ,CAAC,MAAM,SAAS,UAAU,CAAC,MAAM,GAAG;QAClF,cAAc,UAAU,YAAY,OAAO,GAAG;QAC9C,qBAAqB,gBAAgB,eAAe,OAAO,EAAE,CAC9D,CAAA;IAED,IAAI,UAAU,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CACb,wCAAwC,UAAU,YAAY,OAAO,YAAY,OAAO,IAAI;YAC5F,iDAAiD,CAClD,CAAA;IACH,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAA;AACpF,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,GAAY,EAAE,MAAc,EAAE,QAAsB;IAEpD,qDAAqD;IACrD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;IACzE,MAAM,MAAM,GAAG,MAAM,YAAY,CAC/B,GAAG,CAAC,GAAG,EAAE,MAAM,EACf;;;;;;;;;;;;;;;sDAekD,CACnD,CAAA;IAED,IAAI,YAAY,GAAG,CAAC,CAAA;IACpB,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,YAAY,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;QACvD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,SAAQ,CAAC,yCAAyC;QACnF,MAAM,MAAM,GAAI,cAAc,CAAC,QAAQ,CAAC,CAAA;QACxC,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,EAAE,CAAC,aAAa,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,CAAA;QACxE,MAAM,GAAG,GAAO,UAAU,CAAC,EAAE,CAAC,YAAY,CAAC,CAAA;QAC3C,MAAM,GAAG,GAAO,UAAU,CAAC,EAAE,CAAC,aAAa,CAAC,CAAA;QAC5C,MAAM,GAAG,GACP,mCAAmC,MAAM,KAAK;YAC9C,WAAW,GAAG,eAAe;YAC7B,iCAAiC,OAAO,cAAc,GAAG,QAAQ,GAAG,GAAG,CAAA;QACzE,MAAM,IAAI,GAAG,MAAM,YAAY,CAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,CAAA;QACpE,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAChE,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAChB,GAAG,CAAC,KAAK,CACP,aAAa,QAAQ,IAAI,EAAE,CAAC,YAAY,MAAM,EAAE,CAAC,aAAa,IAAI,EAAE,CAAC,YAAY,IAAI,EAAE,CAAC,aAAa,IAAI;gBACzG,GAAG,OAAO,oBAAoB,CAC/B,CAAA;YACD,YAAY,IAAI,OAAO,CAAA;QACzB,CAAC;IACH,CAAC;IACD,OAAO,YAAY,CAAA;AACrB,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,GAAY,EAAE,MAAc,EAAE,MAAc,EAAE,KAAa,EAAE,KAAa,EAAE,OAAe;IAE3F,MAAM,CAAC,GAAG,cAAc,CAAC,GAAG,MAAM,IAAI,KAAK,EAAE,CAAC,CAAA;IAC9C,MAAM,GAAG,GACP,8DAA8D,OAAO,eAAe;QACpF,QAAQ,CAAC,YAAY,KAAK,EAAE,CAAA;IAC9B,MAAM,IAAI,GAAG,MAAM,YAAY,CAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,CAAA;IACpE,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AACrC,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,GAAY,EAAE,MAAc,EAAE,MAAc,EAAE,KAAa;IAE3D,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;IAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IAC5B,MAAM,IAAI,GAAG,MAAM,YAAY,CAC7B,GAAG,CAAC,GAAG,EAAE,MAAM,EACf;;;;;8CAK0C,OAAO,sBAAsB,MAAM;kDAC/B,CAC/C,CAAA;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;AACjC,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,GAAY,EAAE,KAAe,EAAE,IAAe;IAE9C,MAAM,GAAG,GACP,UAAU;QACV,iJAAiJ;QACjJ,oBAAoB,KAAK,CAAC,EAAE,gCAAgC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,KAAK;QACvG,WAAW,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,wBAAwB,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI;QAC7J,uBAAuB;QACvB,gDAAgD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,0CAA0C,KAAK,CAAC,EAAE,KAAK;QAC3H,OAAO;QACP,sDAAsD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,wCAAwC;QAClH,cAAc,KAAK,CAAC,EAAE,yBAAyB;QAC/C,WAAW,CAAA;IACb,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC,CAAA;IAClD,IAAI,CAAC,GAAG,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;IAC/E,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;AAChD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,GAAY,EAAE,KAAe;IACnE,MAAM,MAAM,CACV,GAAG,CAAC,GAAG,EAAE,UAAU,EACnB;oEACgE,KAAK,CAAC,EAAE;gBAC5D,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,cAAc,EAAE,sBAAsB,EAAE,CAAC,CAAC,WAAW,CAC5G,CAAA;IACD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;AACzB,CAAC;AAED,4EAA4E;AAC5E,cAAc;AACd,4EAA4E;AAE5E,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,GAAY;IAC5C,MAAM,IAAI,GAAG,MAAM,YAAY,CAC7B,GAAG,CAAC,GAAG,EAAE,UAAU,EACnB;;;cAGU,CACX,CAAA;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAA;IACnG,OAAO,IAAI,CAAC,CAAC,CAAC,CAAA;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,GAAY,EAAE,MAA4B,EAAE,GAAkB;IAC/F,IAAI,CAAC,GAAG,CAAC,KAAK;QAAE,OAAM,CAAC,0CAA0C;IACjE,MAAM,MAAM,GAAG,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAA;IACzD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IAC3C,MAAM,MAAM,CACV,GAAG,CAAC,GAAG,EAAE,UAAU,EACnB,2CAA2C,MAAM,aAAa,MAAM,CAAC,SAAS,CAAC,mBAAmB,MAAM;kBAC1F,GAAG,CAAC,KAAK,GAAG,CAC3B,CAAA;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,GAAY;IAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ;YAAE,OAAO,CAAC,CAAA;IACrF,CAAC;IACD,OAAO,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAA;AACzD,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,CAAS;IAClC,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,SAAkB,EAAE,CAAC,CAAC,CAAA;AAC1E,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,CAAS;IACjC,yEAAyE;IACzE,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,KAAK,MAAM,EAAE,IAAI,CAAC;QAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IAC7D,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAC9D,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,EAAE,KAAK,EAAE,CAAA;IACjE,OAAO,KAAgC,CAAA;AACzC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAyB;IACnD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAAC,GAAG,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;QAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAAC,CAAC;IAC7F,IAAI,CAAC;QAAC,OAAO,aAAa,CAAC,KAAK,CAAC,CAAA;IAAC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAC/C,GAAG,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAC9E,CAAC;AACH,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,CAAS,IAAY,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA,CAAC,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CiCore CLI — `ci db relocate` (M2 db_relocate).
|
|
3
|
+
*
|
|
4
|
+
* 9-step orchestrator: brand'in dedicated DB'sini KAYNAK cluster/host'tan
|
|
5
|
+
* HEDEF cluster/host'a taşı. brand_id/RLS GEREKMEZ (tüm DB = tek brand,
|
|
6
|
+
* DB-per-brand felsefe). pg_dump + pg_restore (K-REL-1 v1).
|
|
7
|
+
*
|
|
8
|
+
* LOCKED spec: docs/planning/2026-06-01-m2-db-relocation.md.
|
|
9
|
+
*
|
|
10
|
+
* Mustafa kilitleri (K-REL-1..K-REL-11):
|
|
11
|
+
* K-REL-1 — pg_dump + pg_restore v1 (streaming M2.2)
|
|
12
|
+
* K-REL-2 — Planlı pencere + write-freeze (status='relocating' →
|
|
13
|
+
* BrandWriteGuardMiddleware 503 + Retry-After)
|
|
14
|
+
* K-REL-3 — Kaynak DB retain (14g); ayrı cleanup job
|
|
15
|
+
* K-REL-4 — Atomic registry flip (retired-row: kaynak status='retired' +
|
|
16
|
+
* hedef yeni 'active' satır; F2 review kararı; migration 007
|
|
17
|
+
* partial-unique-on-live ile UNIQUE çakışması çözüldü)
|
|
18
|
+
* K-REL-5 — Direct ssh transport v1
|
|
19
|
+
* K-REL-6 — v1 intra-cluster (mkt; aynı postgres instance içinde
|
|
20
|
+
* pg_dump|pg_restore — SSH zincirine gerek yok); multi-cluster
|
|
21
|
+
* M2.2'de pipe two-host
|
|
22
|
+
* K-REL-7 — Faz 6 helper reuse (promote-silo.ts'ten)
|
|
23
|
+
* K-REL-8 — Migration 006 'relocating' allow-list
|
|
24
|
+
* K-REL-9 — Sentinel: relocate-canary brand
|
|
25
|
+
*
|
|
26
|
+
* INVARIANT:
|
|
27
|
+
* INV-1 (reuse) — Step 6 verify (count + checksum) yeşil olmadan flip yok
|
|
28
|
+
* INV-2 (reuse) — Kaynak DB SİLİNMEZ (retain 14g, ayrı cleanup)
|
|
29
|
+
* INV-3 (reuse) — Write-freeze status='relocating'; middleware allow-list
|
|
30
|
+
*
|
|
31
|
+
* brand_id'ye özel parçalar (Faz 6'dan) GEREKMEZ:
|
|
32
|
+
* - Discovery FK closure + transitif refs (tüm DB taşınır)
|
|
33
|
+
* - COPY predicate (filtresiz tam-DB)
|
|
34
|
+
* - K3 anti-sızıntı (DB tek-brand zaten)
|
|
35
|
+
* - INV-4 referential integrity (schema dump bütünlüğü garanti)
|
|
36
|
+
* - INV-5 anti-leak ters yön (tek-brand DB)
|
|
37
|
+
* - K-R3 UUID PK (relocation PK taşımaz, ne ise o gider)
|
|
38
|
+
*/
|
|
39
|
+
import { Command } from 'commander';
|
|
40
|
+
export declare function registerRelocate(db: Command): void;
|
|
41
|
+
//# sourceMappingURL=relocate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relocate.d.ts","sourceRoot":"","sources":["../../../src/commands/db/relocate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAgCnC,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI,CA4ClD"}
|
|
@@ -0,0 +1,482 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CiCore CLI — `ci db relocate` (M2 db_relocate).
|
|
3
|
+
*
|
|
4
|
+
* 9-step orchestrator: brand'in dedicated DB'sini KAYNAK cluster/host'tan
|
|
5
|
+
* HEDEF cluster/host'a taşı. brand_id/RLS GEREKMEZ (tüm DB = tek brand,
|
|
6
|
+
* DB-per-brand felsefe). pg_dump + pg_restore (K-REL-1 v1).
|
|
7
|
+
*
|
|
8
|
+
* LOCKED spec: docs/planning/2026-06-01-m2-db-relocation.md.
|
|
9
|
+
*
|
|
10
|
+
* Mustafa kilitleri (K-REL-1..K-REL-11):
|
|
11
|
+
* K-REL-1 — pg_dump + pg_restore v1 (streaming M2.2)
|
|
12
|
+
* K-REL-2 — Planlı pencere + write-freeze (status='relocating' →
|
|
13
|
+
* BrandWriteGuardMiddleware 503 + Retry-After)
|
|
14
|
+
* K-REL-3 — Kaynak DB retain (14g); ayrı cleanup job
|
|
15
|
+
* K-REL-4 — Atomic registry flip (retired-row: kaynak status='retired' +
|
|
16
|
+
* hedef yeni 'active' satır; F2 review kararı; migration 007
|
|
17
|
+
* partial-unique-on-live ile UNIQUE çakışması çözüldü)
|
|
18
|
+
* K-REL-5 — Direct ssh transport v1
|
|
19
|
+
* K-REL-6 — v1 intra-cluster (mkt; aynı postgres instance içinde
|
|
20
|
+
* pg_dump|pg_restore — SSH zincirine gerek yok); multi-cluster
|
|
21
|
+
* M2.2'de pipe two-host
|
|
22
|
+
* K-REL-7 — Faz 6 helper reuse (promote-silo.ts'ten)
|
|
23
|
+
* K-REL-8 — Migration 006 'relocating' allow-list
|
|
24
|
+
* K-REL-9 — Sentinel: relocate-canary brand
|
|
25
|
+
*
|
|
26
|
+
* INVARIANT:
|
|
27
|
+
* INV-1 (reuse) — Step 6 verify (count + checksum) yeşil olmadan flip yok
|
|
28
|
+
* INV-2 (reuse) — Kaynak DB SİLİNMEZ (retain 14g, ayrı cleanup)
|
|
29
|
+
* INV-3 (reuse) — Write-freeze status='relocating'; middleware allow-list
|
|
30
|
+
*
|
|
31
|
+
* brand_id'ye özel parçalar (Faz 6'dan) GEREKMEZ:
|
|
32
|
+
* - Discovery FK closure + transitif refs (tüm DB taşınır)
|
|
33
|
+
* - COPY predicate (filtresiz tam-DB)
|
|
34
|
+
* - K3 anti-sızıntı (DB tek-brand zaten)
|
|
35
|
+
* - INV-4 referential integrity (schema dump bütünlüğü garanti)
|
|
36
|
+
* - INV-5 anti-leak ters yön (tek-brand DB)
|
|
37
|
+
* - K-R3 UUID PK (relocation PK taşımaz, ne ise o gider)
|
|
38
|
+
*/
|
|
39
|
+
import { log } from '../../lib/logger.js';
|
|
40
|
+
import { dbSelectJson, dbExec } from '../../lib/ops/db.js';
|
|
41
|
+
import { runRemoteScript } from '../../lib/ops/ssh.js';
|
|
42
|
+
import { invalidateBrandStatus } from '../../lib/ops/redis.js';
|
|
43
|
+
import { isDryRun } from '../../lib/config.js';
|
|
44
|
+
import { blankSteps, resolveHost, step, persistSteps, currentStepIndex, countWhere, tableChecksum, fetchPrimaryKeyColumns, quoteIdent, quoteQualified, sqlLit, } from './promote-silo.js';
|
|
45
|
+
const CONTROL_DB = 'vucore_control';
|
|
46
|
+
const SLUG_RE = /^[a-z][a-z0-9_-]{1,62}$/;
|
|
47
|
+
const IDENT_RE = /^[a-zA-Z0-9_.-]+$/;
|
|
48
|
+
const STEP_COUNT = 9;
|
|
49
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
50
|
+
// Public API
|
|
51
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
52
|
+
export function registerRelocate(db) {
|
|
53
|
+
db.command('relocate')
|
|
54
|
+
.description('Relocate a brand DB from one host/cluster to another (9-step orchestrator; idempotent + resumable; K-REL v1 intra-cluster)')
|
|
55
|
+
.requiredOption('--brand <slug>', 'Brand slug to relocate')
|
|
56
|
+
.requiredOption('--target-host <host>', 'Target Postgres host (FQDN/IP)')
|
|
57
|
+
.option('--target-port <port>', 'Target Postgres port', '5432')
|
|
58
|
+
.option('--target-cluster <name>', 'Target cluster_name registry value')
|
|
59
|
+
.option('--target-region <region>', 'Target placement_region (cp_databases)')
|
|
60
|
+
.option('-h, --host <host>', 'Host alias (cicore | mkt)')
|
|
61
|
+
.option('--job-id <uuid>', 'Existing cp_provisioning_jobs id (resume); else a new ad-hoc run')
|
|
62
|
+
.option('--confirm-relocation', 'Skip the inventory pause on Step 2 (CI/agent mode)', false)
|
|
63
|
+
.option('--dry-run', 'Plan only — Step 1+2 (validate + inventory), no DDL/DML', false)
|
|
64
|
+
.action(async (opts) => {
|
|
65
|
+
const cfg = resolveHost(opts.host);
|
|
66
|
+
if (!SLUG_RE.test(opts.brand)) {
|
|
67
|
+
log.error(`Invalid --brand slug '${opts.brand}'.`);
|
|
68
|
+
process.exit(1);
|
|
69
|
+
}
|
|
70
|
+
if (!IDENT_RE.test(opts.targetHost)) {
|
|
71
|
+
log.error(`Invalid --target-host '${opts.targetHost}'.`);
|
|
72
|
+
process.exit(1);
|
|
73
|
+
}
|
|
74
|
+
const targetPort = Number.parseInt(opts.targetPort ?? '5432', 10);
|
|
75
|
+
if (!Number.isInteger(targetPort) || targetPort < 1 || targetPort > 65535) {
|
|
76
|
+
log.error(`Invalid --target-port '${opts.targetPort}'.`);
|
|
77
|
+
process.exit(1);
|
|
78
|
+
}
|
|
79
|
+
const ctx = {
|
|
80
|
+
cfg,
|
|
81
|
+
brand: opts.brand,
|
|
82
|
+
jobId: opts.jobId ?? null,
|
|
83
|
+
confirmManifest: opts.confirmRelocation === true,
|
|
84
|
+
// Collision-robust (Part B): Commander v12 root + subcommand --dry-run
|
|
85
|
+
// çakışmasında flag hangi seviyeye atanırsa atansın yakala. isDryRun()
|
|
86
|
+
// global flag'i, opts.dryRun local flag'i temsil eder.
|
|
87
|
+
dryRun: opts.dryRun === true || isDryRun(),
|
|
88
|
+
steps: blankSteps(STEP_COUNT),
|
|
89
|
+
};
|
|
90
|
+
const target = {
|
|
91
|
+
host: opts.targetHost,
|
|
92
|
+
port: targetPort,
|
|
93
|
+
cluster: opts.targetCluster ?? null,
|
|
94
|
+
region: opts.targetRegion ?? null,
|
|
95
|
+
};
|
|
96
|
+
const ok = await runRelocation(ctx, target);
|
|
97
|
+
process.exit(ok ? 0 : 1);
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
101
|
+
// 9-step orchestrator
|
|
102
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
103
|
+
async function runRelocation(ctx, target) {
|
|
104
|
+
log.info(`[relocate] brand=${ctx.brand} host=${ctx.cfg.alias} target=${target.host}:${target.port} dry-run=${ctx.dryRun}`);
|
|
105
|
+
try {
|
|
106
|
+
// STEP 1 — VALIDATE
|
|
107
|
+
const brand = await step(ctx, 0, 'validate', () => doValidate(ctx));
|
|
108
|
+
const source = await fetchSourceDb(ctx, brand);
|
|
109
|
+
// STEP 2 — INVENTORY (rapor + --confirm-relocation gate)
|
|
110
|
+
const inventory = await step(ctx, 1, 'inventory', () => doInventory(ctx, brand, source, target));
|
|
111
|
+
if (ctx.dryRun) {
|
|
112
|
+
log.success('[relocate] dry-run complete: validate + inventory');
|
|
113
|
+
log.info(` source: ${source.db_host}:${source.db_port}/${source.db_name}`);
|
|
114
|
+
log.info(` target: ${target.host}:${target.port}/${source.db_name}`);
|
|
115
|
+
log.info(` tables: ${inventory.tables} · db_size_pretty=${inventory.dbSize}`);
|
|
116
|
+
return true;
|
|
117
|
+
}
|
|
118
|
+
// STEP 3 — MARK RELOCATING (write-freeze devreye girer)
|
|
119
|
+
await step(ctx, 2, 'mark_relocating', () => doMarkRelocating(ctx, brand));
|
|
120
|
+
// STEP 4 — PROVISION TARGET DB (CREATE DATABASE + role + grant)
|
|
121
|
+
await step(ctx, 3, 'provision_target', () => doProvisionTarget(ctx, source, target));
|
|
122
|
+
// STEP 5 — SNAPSHOT/COPY (pg_dump | pg_restore)
|
|
123
|
+
await step(ctx, 4, 'snapshot_copy', () => doSnapshotCopy(ctx, source, target));
|
|
124
|
+
// STEP 6 — VERIFY (INV-1 cutover gate; count + checksum tüm tablolar)
|
|
125
|
+
await step(ctx, 5, 'verify', () => doVerifyRelocation(ctx, source, target));
|
|
126
|
+
// STEP 7 — REGISTRY FLIP (atomic UPDATE cp_databases)
|
|
127
|
+
await step(ctx, 6, 'registry_flip', () => doRegistryFlip(ctx, brand, source, target));
|
|
128
|
+
// STEP 8 — CACHE INVALIDATE + FREEZE KALK
|
|
129
|
+
await step(ctx, 7, 'cache_invalidate', () => doCacheInvalidateFreezeKalk(ctx, brand, source));
|
|
130
|
+
// STEP 9 — AUDIT END
|
|
131
|
+
await step(ctx, 8, 'audit_end', () => doAuditEnd(ctx, brand, source, target));
|
|
132
|
+
log.success(`[relocate] ✅ success — brand '${ctx.brand}' relocated to ${target.host}:${target.port} (source retained 14g; INV-2)`);
|
|
133
|
+
return true;
|
|
134
|
+
}
|
|
135
|
+
catch (err) {
|
|
136
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
137
|
+
log.error(`[relocate] ❌ failed at step ${currentStepIndex(ctx) + 1}: ${msg}`);
|
|
138
|
+
await persistSteps(ctx, 'failed', msg);
|
|
139
|
+
return false;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
143
|
+
// Step bodies
|
|
144
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
145
|
+
/** Step 1 — VALIDATE: brand var + sentinel değil + cp_databases'ta active source. */
|
|
146
|
+
async function doValidate(ctx) {
|
|
147
|
+
const rows = await dbSelectJson(ctx.cfg, CONTROL_DB, `SELECT id::text, slug, db_tier, is_default::text, status, placement_region
|
|
148
|
+
FROM cp_brands WHERE slug='${sqlLit(ctx.brand)}' LIMIT 1`);
|
|
149
|
+
if (rows.length === 0)
|
|
150
|
+
throw new Error(`brand '${ctx.brand}' not found in cp_brands`);
|
|
151
|
+
const b = rows[0];
|
|
152
|
+
if (b.is_default === 't' || b.is_default === true || b.is_default === 'true') {
|
|
153
|
+
throw new Error(`brand '${ctx.brand}' is_default=true — sentinel brand cannot be relocated`);
|
|
154
|
+
}
|
|
155
|
+
// status='active' beklenir; başka durumlarda operator manual karar
|
|
156
|
+
if (b.status !== 'active' && b.status !== 'relocating') {
|
|
157
|
+
throw new Error(`brand '${ctx.brand}' status='${b.status}' — relocation requires status='active' (or resumable 'relocating')`);
|
|
158
|
+
}
|
|
159
|
+
return b;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Step 2 — INVENTORY: kaynak DB hakkında pre-flight rapor.
|
|
163
|
+
*
|
|
164
|
+
* Tablo sayısı + boyut + tahmini downtime. --confirm-relocation flag YOKsa
|
|
165
|
+
* insan-gözden-geçirme gate'i (operator dump'ı görmeden devam edemez).
|
|
166
|
+
* CI/agent mode'da spawnRelocate her zaman bayrağı geçirir.
|
|
167
|
+
*/
|
|
168
|
+
async function doInventory(ctx, brand, source, target) {
|
|
169
|
+
const tablesRows = await dbSelectJson(ctx.cfg, source.db_name, `SELECT count(*)::text AS n FROM information_schema.tables WHERE table_schema='public'`);
|
|
170
|
+
const tables = tablesRows.length ? Number.parseInt(tablesRows[0].n, 10) : 0;
|
|
171
|
+
const sizeRows = await dbSelectJson(ctx.cfg, source.db_name, `SELECT pg_size_pretty(pg_database_size(current_database())) AS sz,
|
|
172
|
+
pg_database_size(current_database())::text AS sb`);
|
|
173
|
+
const dbSize = sizeRows[0]?.sz ?? '?';
|
|
174
|
+
const dbBytes = Number.parseInt(sizeRows[0]?.sb ?? '0', 10);
|
|
175
|
+
// Çok kaba tahmin: 50 MB/s pg_dump+restore ortalama. v1 sentinel için indikatif.
|
|
176
|
+
const estDowntimeSec = Math.max(5, Math.ceil(dbBytes / (50 * 1024 * 1024)));
|
|
177
|
+
log.info(`[inventory] tables=${tables} db_size=${dbSize} est_downtime≈${estDowntimeSec}s`);
|
|
178
|
+
log.info(`[inventory] source: ${source.db_host}:${source.db_port}/${source.db_name}`);
|
|
179
|
+
log.info(`[inventory] target: ${target.host}:${target.port}/${source.db_name} (same db_name; host changes)`);
|
|
180
|
+
if (!ctx.confirmManifest) {
|
|
181
|
+
throw new Error('inventory review required — re-run with --confirm-relocation (CI/agent mode) after operator review (K-REL-2 planlı pencere)');
|
|
182
|
+
}
|
|
183
|
+
return { tables, dbSize, estDowntimeSec };
|
|
184
|
+
}
|
|
185
|
+
/** Step 3 — MARK RELOCATING: BrandWriteGuard freeze devreye girer (K-REL-2). */
|
|
186
|
+
async function doMarkRelocating(ctx, brand) {
|
|
187
|
+
await dbExec(ctx.cfg, CONTROL_DB, `UPDATE cp_brands SET status='relocating', updated_at=now()
|
|
188
|
+
WHERE id='${brand.id}' AND status != 'relocating'`);
|
|
189
|
+
// F1: paylaşımlı freeze-status Redis key'ini sil → freeze ANINDA tüm PHP
|
|
190
|
+
// worker'larında devreye girer (in-process TTL stale penceresi beklenmez).
|
|
191
|
+
await invalidateBrandStatus(ctx.cfg, brand.id);
|
|
192
|
+
return { status: 'relocating' };
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Step 4 — PROVISION TARGET DB.
|
|
196
|
+
*
|
|
197
|
+
* v1 intra-cluster (K-REL-6): kaynak ve hedef aynı postgres instance içinde
|
|
198
|
+
* farklı DB değil — aynı DB adı ile yeni postgres instance'a kopya AMA mkt'de
|
|
199
|
+
* sadece tek postgres var. Bu nedenle "host taşıma" v1'de simülasyon: hedef
|
|
200
|
+
* host = kaynak host (aynı postgres), AYNI db_name kullanıldığında çakışma
|
|
201
|
+
* olur. v1 sentinel için: target.host farklıysa (multi-cluster M2.2'ye
|
|
202
|
+
* hazırlık), Postgres connection o host'a açılır + CREATE DATABASE yapılır.
|
|
203
|
+
*
|
|
204
|
+
* Mkt'de target.host == source.db_host ise: CREATE DATABASE çakışır (aynı
|
|
205
|
+
* name); v1 davranışı: error fırlat ("intra-cluster same-host relocation
|
|
206
|
+
* requires distinct DB name; not v1 scope").
|
|
207
|
+
*
|
|
208
|
+
* Idempotent: hedef DB zaten varsa atla.
|
|
209
|
+
*/
|
|
210
|
+
async function doProvisionTarget(ctx, source, target) {
|
|
211
|
+
if (target.host === source.db_host && target.port === source.db_port) {
|
|
212
|
+
throw new Error('target == source host/port — v1 relocation requires distinct target host (intra-cluster same-host taşıma desteklenmez)');
|
|
213
|
+
}
|
|
214
|
+
// pg_isready hedef host'ta + CREATE DATABASE.
|
|
215
|
+
// Mkt'de hedef host'a SSH/network erişimi varsa, postgres client'ı buradan
|
|
216
|
+
// doğrudan bağlanabilir. v1 scope: target host postgres'ine PSQL ile bağlan.
|
|
217
|
+
const pg = ctx.cfg.dbContainerName;
|
|
218
|
+
const admin = ctx.cfg.dbAdminUser;
|
|
219
|
+
const script = `set -euo pipefail\n` +
|
|
220
|
+
// Idempotent check: hedef DB var mı
|
|
221
|
+
`EXISTS=$(docker exec ${pg} psql -U ${admin} -h ${shq(target.host)} -p ${target.port} -d postgres -tAc ` +
|
|
222
|
+
`"SELECT 1 FROM pg_database WHERE datname='${sqlLit(source.db_name)}'" 2>/dev/null || echo "")\n` +
|
|
223
|
+
`if [ "$EXISTS" = "1" ]; then\n` +
|
|
224
|
+
` echo "TARGET_EXISTS"\n` +
|
|
225
|
+
`else\n` +
|
|
226
|
+
` docker exec ${pg} psql -U ${admin} -h ${shq(target.host)} -p ${target.port} -d postgres -v ON_ERROR_STOP=1 -c ` +
|
|
227
|
+
` "CREATE DATABASE \\"${source.db_name}\\""\n` +
|
|
228
|
+
` docker exec ${pg} psql -U ${admin} -h ${shq(target.host)} -p ${target.port} -d postgres -v ON_ERROR_STOP=1 -c ` +
|
|
229
|
+
` "DO \\$\\$ BEGIN IF NOT EXISTS (SELECT 1 FROM pg_roles WHERE rolname='${source.db_user}') THEN CREATE ROLE \\"${source.db_user}\\" LOGIN; END IF; END \\$\\$;"\n` +
|
|
230
|
+
` docker exec ${pg} psql -U ${admin} -h ${shq(target.host)} -p ${target.port} -d postgres -v ON_ERROR_STOP=1 -c ` +
|
|
231
|
+
` "GRANT ALL PRIVILEGES ON DATABASE \\"${source.db_name}\\" TO \\"${source.db_user}\\""\n` +
|
|
232
|
+
` echo "TARGET_CREATED"\n` +
|
|
233
|
+
`fi\n`;
|
|
234
|
+
const res = await runRemoteScript(ctx.cfg, script, { silent: true });
|
|
235
|
+
if (!res.success) {
|
|
236
|
+
throw new Error(`provision target failed: ${(res.stderr || res.stdout).trim().slice(0, 500)}`);
|
|
237
|
+
}
|
|
238
|
+
const created = res.stdout.includes('TARGET_CREATED');
|
|
239
|
+
log.info(`[provision] target ${target.host}:${target.port}/${source.db_name} — ${created ? 'created' : 'exists (idempotent)'}`);
|
|
240
|
+
return { created, target_host: target.host };
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Step 5 — SNAPSHOT/COPY (K-REL-1 pg_dump+pg_restore v1).
|
|
244
|
+
*
|
|
245
|
+
* `pg_dump -Fc` kaynak'tan + ssh transport yok (v1 intra-cluster mkt; CLI host
|
|
246
|
+
* postgres container'ına bağlanır, hedef host'a network üzerinden); pipe
|
|
247
|
+
* `pg_restore -d <target_db>`. session_replication_role=replica gerek yok
|
|
248
|
+
* (tek brand DB, FK constraint zaten doğru sırada dump yapılır).
|
|
249
|
+
*
|
|
250
|
+
* Idempotent: hedef DB tablo sayısı > 0 ise atla (önceki kısmi restore varsa
|
|
251
|
+
* operator manual karar — partial restore detection v2).
|
|
252
|
+
*/
|
|
253
|
+
async function doSnapshotCopy(ctx, source, target) {
|
|
254
|
+
// Idempotent guard: hedef DB tablo sayısı > 0 ise atla.
|
|
255
|
+
const pg = ctx.cfg.dbContainerName;
|
|
256
|
+
const admin = ctx.cfg.dbAdminUser;
|
|
257
|
+
const checkScript = `docker exec ${pg} psql -U ${admin} -h ${shq(target.host)} -p ${target.port} -d ${source.db_name} ` +
|
|
258
|
+
`-tAc "SELECT count(*) FROM information_schema.tables WHERE table_schema='public'" 2>/dev/null || echo "0"`;
|
|
259
|
+
const checkRes = await runRemoteScript(ctx.cfg, checkScript, { silent: true });
|
|
260
|
+
const tableCount = Number.parseInt(checkRes.stdout.trim() || '0', 10);
|
|
261
|
+
if (tableCount > 0) {
|
|
262
|
+
log.info(`[snapshot] target already has ${tableCount} tables — skip (idempotent resume)`);
|
|
263
|
+
return { ok: true };
|
|
264
|
+
}
|
|
265
|
+
// pg_dump | pg_restore pipe (CLI host bash'inde tek docker exec içinde).
|
|
266
|
+
const dumpRestore = `set -euo pipefail\n` +
|
|
267
|
+
`docker exec ${pg} bash -lc 'set -o pipefail && ` +
|
|
268
|
+
` pg_dump -U ${admin} -h ${source.db_host} -p ${source.db_port} -d ${source.db_name} -Fc ` +
|
|
269
|
+
` | pg_restore -U ${admin} -h ${shq(target.host)} -p ${target.port} -d ${source.db_name} ` +
|
|
270
|
+
` --no-owner --no-acl --exit-on-error' \n`;
|
|
271
|
+
log.info(`[snapshot] dump ${source.db_host}:${source.db_port}/${source.db_name} → ${target.host}:${target.port}/${source.db_name}`);
|
|
272
|
+
const res = await runRemoteScript(ctx.cfg, dumpRestore, { silent: true });
|
|
273
|
+
if (!res.success) {
|
|
274
|
+
throw new Error(`pg_dump|pg_restore failed: ${(res.stderr || res.stdout).trim().slice(0, 500)}`);
|
|
275
|
+
}
|
|
276
|
+
return { ok: true };
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Step 6 — VERIFY (INV-1 cutover gate; Faz 6 helper reuse).
|
|
280
|
+
*
|
|
281
|
+
* Her tablo için: kaynak count == hedef count + md5 checksum eşit (PK varsa).
|
|
282
|
+
* Mismatch → THROW (Step 7 atomic flip ÇALIŞMAZ; INV-1).
|
|
283
|
+
*
|
|
284
|
+
* pg_dump bütünlüğü zaten FK orphan üretmez (schema + data tek dump);
|
|
285
|
+
* INV-4 ayrı kontrol gerekmez.
|
|
286
|
+
*/
|
|
287
|
+
async function doVerifyRelocation(ctx, source, target) {
|
|
288
|
+
// Hedef host parametrik dbSelectJson çağrısı için: helper ctx.cfg.alias'ı kullanıyor.
|
|
289
|
+
// v1 intra-cluster mkt'de target.host network erişimli; helper'a context yetiyor.
|
|
290
|
+
// Multi-cluster M2.2'de iki ayrı dbSelectJson ctx (kaynak + hedef cluster).
|
|
291
|
+
// Şimdilik dbSelectJson source ve target için aynı ctx.cfg kullanır (postgres
|
|
292
|
+
// container -h target.host parametresiyle bağlanır); dbSelectJson default
|
|
293
|
+
// localhost'a bağlanıyor — bu v1 sınırlaması, M2.2'de relocation gateway
|
|
294
|
+
// genişletilir.
|
|
295
|
+
//
|
|
296
|
+
// v1 PRAGMATİK: kaynak ve hedef AYNI postgres instance OLMADIĞI için
|
|
297
|
+
// (provision step'inde guard), dbSelectJson'ın hedef host'a parametre
|
|
298
|
+
// geçirmesi gerekir. M2.2'ye kadar bu pragmatik: önce kaynak içinde count,
|
|
299
|
+
// sonra ssh script ile hedef host'a query.
|
|
300
|
+
// Tablo listesi (kaynak schema):
|
|
301
|
+
const tables = await dbSelectJson(ctx.cfg, source.db_name, `SELECT table_schema, table_name FROM information_schema.tables WHERE table_schema='public' ORDER BY 1,2`);
|
|
302
|
+
let mismatches = 0;
|
|
303
|
+
let checksumsSkipped = 0;
|
|
304
|
+
for (const t of tables) {
|
|
305
|
+
const label = `${t.table_schema}.${t.table_name}`;
|
|
306
|
+
const srcCount = await countWhere(ctx, source.db_name, t.table_schema, t.table_name, '1=1');
|
|
307
|
+
// Hedef'te count: ssh script üzerinden.
|
|
308
|
+
const tgtCount = await countOnTarget(ctx, target, source.db_name, t.table_schema, t.table_name, '1=1');
|
|
309
|
+
if (srcCount !== tgtCount) {
|
|
310
|
+
log.error(` [count] ${label} — source=${srcCount} target=${tgtCount} MISMATCH`);
|
|
311
|
+
mismatches++;
|
|
312
|
+
continue;
|
|
313
|
+
}
|
|
314
|
+
log.info(` [count] ${label} — ${srcCount} ✓`);
|
|
315
|
+
// Checksum (PK varsa).
|
|
316
|
+
const pkCols = await fetchPrimaryKeyColumns(ctx, source.db_name, t.table_schema, t.table_name);
|
|
317
|
+
if (pkCols.length === 0) {
|
|
318
|
+
log.warn(` [chk ] ${label} — no PK; checksum SKIPPED (count-only)`);
|
|
319
|
+
checksumsSkipped++;
|
|
320
|
+
continue;
|
|
321
|
+
}
|
|
322
|
+
const orderBy = pkCols.map(quoteIdent).join(', ');
|
|
323
|
+
const srcHash = await tableChecksum(ctx, source.db_name, t.table_schema, t.table_name, '1=1', orderBy);
|
|
324
|
+
const tgtHash = await checksumOnTarget(ctx, target, source.db_name, t.table_schema, t.table_name, orderBy);
|
|
325
|
+
if (srcHash !== tgtHash) {
|
|
326
|
+
log.error(` [chk ] ${label} — source_md5=${srcHash} target_md5=${tgtHash} MISMATCH`);
|
|
327
|
+
mismatches++;
|
|
328
|
+
continue;
|
|
329
|
+
}
|
|
330
|
+
log.info(` [chk ] ${label} — md5=${srcHash} ✓`);
|
|
331
|
+
}
|
|
332
|
+
log.info(`[verify] tables=${tables.length} mismatches=${mismatches} checksums_skipped=${checksumsSkipped}`);
|
|
333
|
+
if (mismatches > 0) {
|
|
334
|
+
throw new Error(`INV-1 cutover gate FAIL — mismatches=${mismatches}; source DB intact (INV-2 reuse); target retained for forensic`);
|
|
335
|
+
}
|
|
336
|
+
return { tables: tables.length, mismatches, checksumsSkipped };
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* Step 7 — REGISTRY FLIP (atomic single-txn; K-REL-3 retired-row pattern).
|
|
340
|
+
*
|
|
341
|
+
* F2 (review 2026-06-02, Mustafa kararı): eski in-place host UPDATE kaynağı
|
|
342
|
+
* registry'de izsiz bırakıyordu → planlanan db_relocate_cleanup job (14g)
|
|
343
|
+
* tutunacak satır bulamazdı. Çözüm: retired-row pattern — kaynak satır
|
|
344
|
+
* status='retired' (INV-2 retain; cleanup job bunu DROP eder), hedef için
|
|
345
|
+
* YENİ status='active' satır (kaynağın tüm attr'ları kopyalanır, host/port/
|
|
346
|
+
* cluster/region override). UNIQUE(owner_type,owner_id,db_name) tam-constraint'i
|
|
347
|
+
* bunu engellerdi (db_name değişmez); migration 007 onu partial-unique-on-live
|
|
348
|
+
* (WHERE status<>'retired') ile değiştirdi → retired + active yan yana durur.
|
|
349
|
+
*
|
|
350
|
+
* F3 (review 2026-06-02): rowcount assert — kaynak active satır tam 1 değilse
|
|
351
|
+
* RAISE EXCEPTION (sessiz no-op önlenir). plpgsql DO + GET DIAGNOSTICS.
|
|
352
|
+
*
|
|
353
|
+
* Resume-idempotent: hedef-host'lu active satır zaten varsa (önceki çalışmada
|
|
354
|
+
* flip commit olmuş) atla — DO bloğu kaynağı tekrar 'active' bulamayıp
|
|
355
|
+
* RAISE etmesin diye.
|
|
356
|
+
*/
|
|
357
|
+
async function doRegistryFlip(ctx, brand, source, target) {
|
|
358
|
+
// Idempotent resume guard: flip zaten yapıldıysa atla.
|
|
359
|
+
const existing = await dbSelectJson(ctx.cfg, CONTROL_DB, `SELECT count(*)::text AS n FROM cp_databases
|
|
360
|
+
WHERE owner_type='brand' AND owner_id='${brand.id}'
|
|
361
|
+
AND db_name='${sqlLit(source.db_name)}'
|
|
362
|
+
AND db_host='${sqlLit(target.host)}' AND db_port=${target.port}
|
|
363
|
+
AND status='active'`);
|
|
364
|
+
if (existing.length && Number.parseInt(existing[0].n, 10) > 0) {
|
|
365
|
+
log.info('[flip] target-host active row already present — skip (idempotent resume)');
|
|
366
|
+
return { flipped: true };
|
|
367
|
+
}
|
|
368
|
+
// target null ise kaynağın değerini koru (INSERT'te v_src.* kullanılır).
|
|
369
|
+
const clusterVal = target.cluster ? `'${sqlLit(target.cluster)}'` : 'v_src.cluster_name';
|
|
370
|
+
const regionVal = target.region ? `'${sqlLit(target.region)}'` : 'v_src.placement_region';
|
|
371
|
+
const sql = `BEGIN;\n` +
|
|
372
|
+
`DO $flip$\n` +
|
|
373
|
+
`DECLARE\n` +
|
|
374
|
+
` v_src cp_databases%ROWTYPE;\n` +
|
|
375
|
+
` v_n int;\n` +
|
|
376
|
+
`BEGIN\n` +
|
|
377
|
+
` UPDATE cp_databases SET status='retired', updated_at=now()\n` +
|
|
378
|
+
` WHERE owner_type='brand' AND owner_id='${brand.id}'\n` +
|
|
379
|
+
` AND db_name='${sqlLit(source.db_name)}'\n` +
|
|
380
|
+
` AND db_host='${sqlLit(source.db_host)}' AND db_port=${source.db_port}\n` +
|
|
381
|
+
` AND status='active'\n` +
|
|
382
|
+
` RETURNING * INTO v_src;\n` +
|
|
383
|
+
` GET DIAGNOSTICS v_n = ROW_COUNT;\n` +
|
|
384
|
+
` IF v_n <> 1 THEN\n` +
|
|
385
|
+
` RAISE EXCEPTION 'registry flip: expected exactly 1 active source row, got %', v_n;\n` +
|
|
386
|
+
` END IF;\n` +
|
|
387
|
+
` INSERT INTO cp_databases\n` +
|
|
388
|
+
` (owner_type, owner_id, db_kind, cluster_name, db_host, db_port, db_name,\n` +
|
|
389
|
+
` db_user, db_secret_ref, region, backup_policy, db_tier, placement_region, status)\n` +
|
|
390
|
+
` VALUES\n` +
|
|
391
|
+
` (v_src.owner_type, v_src.owner_id, v_src.db_kind, ${clusterVal},\n` +
|
|
392
|
+
` '${sqlLit(target.host)}', ${target.port}, v_src.db_name,\n` +
|
|
393
|
+
` v_src.db_user, v_src.db_secret_ref, v_src.region, v_src.backup_policy,\n` +
|
|
394
|
+
` v_src.db_tier, ${regionVal}, 'active');\n` +
|
|
395
|
+
`END\n` +
|
|
396
|
+
`$flip$;\n` +
|
|
397
|
+
`COMMIT;\n`;
|
|
398
|
+
const res = await dbExec(ctx.cfg, CONTROL_DB, sql);
|
|
399
|
+
if (!res.success)
|
|
400
|
+
throw new Error(`registry flip failed: ${res.stderr.trim()}`);
|
|
401
|
+
return { flipped: true };
|
|
402
|
+
}
|
|
403
|
+
/**
|
|
404
|
+
* Step 8 — CACHE INVALIDATE + FREEZE KALK.
|
|
405
|
+
*
|
|
406
|
+
* cp_brands.status='active' (BrandWriteGuard freeze kalkar). Kaynak DB
|
|
407
|
+
* cp_databases'ta status='retired' satır olarak DURUYOR (Step 7 retired-row;
|
|
408
|
+
* K-REL-3/INV-2 retain) — db_relocate_cleanup job 14g sonra bu satırı bulup
|
|
409
|
+
* fiziksel DROP eder. Tamamlanma kaydı ayrıca cp_audit_log'a (Step 9).
|
|
410
|
+
*/
|
|
411
|
+
async function doCacheInvalidateFreezeKalk(ctx, brand, source) {
|
|
412
|
+
await dbExec(ctx.cfg, CONTROL_DB, `UPDATE cp_brands SET status='active', updated_at=now() WHERE id='${brand.id}'`);
|
|
413
|
+
// F1: freeze KALKTI → Redis key'i sil ki worker'lar anlık 'active' görsün
|
|
414
|
+
// (aksi halde TTL'e kadar 503 dönmeye devam ederdi).
|
|
415
|
+
await invalidateBrandStatus(ctx.cfg, brand.id);
|
|
416
|
+
return { status: 'active', source_retained: source };
|
|
417
|
+
}
|
|
418
|
+
/** Step 9 — AUDIT END (relocate_completed + source retain notu). */
|
|
419
|
+
async function doAuditEnd(ctx, brand, source, target) {
|
|
420
|
+
const payload = JSON.stringify({
|
|
421
|
+
brand: ctx.brand,
|
|
422
|
+
source: { host: source.db_host, port: source.db_port, db: source.db_name },
|
|
423
|
+
target: { host: target.host, port: target.port, db: source.db_name },
|
|
424
|
+
cluster: target.cluster, region: target.region,
|
|
425
|
+
retention_days: 14,
|
|
426
|
+
});
|
|
427
|
+
await dbExec(ctx.cfg, CONTROL_DB, `INSERT INTO cp_audit_log (actor, action, target, after)
|
|
428
|
+
VALUES ('cli:db-relocate', 'relocate_completed', 'brand:${brand.id}',
|
|
429
|
+
'${sqlLit(payload)}'::jsonb)`);
|
|
430
|
+
return { logged: true };
|
|
431
|
+
}
|
|
432
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
433
|
+
// Helpers (relocation'a özel)
|
|
434
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
435
|
+
/** cp_databases'tan active source DB satırını çek. */
|
|
436
|
+
async function fetchSourceDb(ctx, brand) {
|
|
437
|
+
const rows = await dbSelectJson(ctx.cfg, CONTROL_DB, `SELECT db_host, db_port, db_name, db_user
|
|
438
|
+
FROM cp_databases
|
|
439
|
+
WHERE owner_type='brand' AND owner_id='${brand.id}' AND status='active'
|
|
440
|
+
LIMIT 1`);
|
|
441
|
+
if (rows.length === 0) {
|
|
442
|
+
throw new Error(`no active cp_databases row for brand '${brand.slug}' (owner=brand, status=active)`);
|
|
443
|
+
}
|
|
444
|
+
return rows[0];
|
|
445
|
+
}
|
|
446
|
+
/**
|
|
447
|
+
* Hedef host'ta count sorgusu (ssh + docker exec + psql -h target.host).
|
|
448
|
+
* v1 intra-cluster mkt: aynı CLI host'tan target.host'a network bağlantısı.
|
|
449
|
+
* Multi-cluster M2.2'de iki-ssh pipe pattern'ine genişler.
|
|
450
|
+
*/
|
|
451
|
+
async function countOnTarget(ctx, target, dbName, schema, table, where) {
|
|
452
|
+
const pg = ctx.cfg.dbContainerName;
|
|
453
|
+
const admin = ctx.cfg.dbAdminUser;
|
|
454
|
+
const qTable = quoteQualified(`${schema}.${table}`);
|
|
455
|
+
const sql = `SELECT count(*)::text FROM ${qTable} WHERE ${where}`;
|
|
456
|
+
const script = `docker exec ${pg} psql -U ${admin} -h ${shq(target.host)} -p ${target.port} -d ${dbName} ` +
|
|
457
|
+
`-tAc ${shq(sql)} 2>/dev/null`;
|
|
458
|
+
const res = await runRemoteScript(ctx.cfg, script, { silent: true });
|
|
459
|
+
if (!res.success) {
|
|
460
|
+
throw new Error(`target count(${schema}.${table}) failed: ${(res.stderr || res.stdout).trim().slice(0, 200)}`);
|
|
461
|
+
}
|
|
462
|
+
return Number.parseInt(res.stdout.trim() || '0', 10);
|
|
463
|
+
}
|
|
464
|
+
/** Hedef host'ta md5 checksum (PK ORDER BY ile deterministik). */
|
|
465
|
+
async function checksumOnTarget(ctx, target, dbName, schema, table, orderBy) {
|
|
466
|
+
const pg = ctx.cfg.dbContainerName;
|
|
467
|
+
const admin = ctx.cfg.dbAdminUser;
|
|
468
|
+
const qTable = quoteQualified(`${schema}.${table}`);
|
|
469
|
+
const sql = `SELECT md5(coalesce(string_agg(md5(t.*::text), '' ORDER BY ${orderBy}), '')) AS h ` +
|
|
470
|
+
`FROM ${qTable} t`;
|
|
471
|
+
const script = `docker exec ${pg} psql -U ${admin} -h ${shq(target.host)} -p ${target.port} -d ${dbName} ` +
|
|
472
|
+
`-tAc ${shq(sql)} 2>/dev/null`;
|
|
473
|
+
const res = await runRemoteScript(ctx.cfg, script, { silent: true });
|
|
474
|
+
if (!res.success) {
|
|
475
|
+
throw new Error(`target checksum(${schema}.${table}) failed: ${(res.stderr || res.stdout).trim().slice(0, 200)}`);
|
|
476
|
+
}
|
|
477
|
+
return res.stdout.trim();
|
|
478
|
+
}
|
|
479
|
+
function shq(s) {
|
|
480
|
+
return `'${s.replace(/'/g, `'\\''`)}'`;
|
|
481
|
+
}
|
|
482
|
+
//# sourceMappingURL=relocate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relocate.js","sourceRoot":"","sources":["../../../src/commands/db/relocate.ts"],"names":[],"mappings":"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"}
|