iec-cli 0.6.6
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/README.md +159 -0
- package/dist/commands/backup.d.ts +11 -0
- package/dist/commands/backup.d.ts.map +1 -0
- package/dist/commands/backup.js +112 -0
- package/dist/commands/backup.js.map +1 -0
- package/dist/commands/config.d.ts +28 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +190 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/deploy.d.ts +16 -0
- package/dist/commands/deploy.d.ts.map +1 -0
- package/dist/commands/deploy.js +235 -0
- package/dist/commands/deploy.js.map +1 -0
- package/dist/commands/destroy.d.ts +12 -0
- package/dist/commands/destroy.d.ts.map +1 -0
- package/dist/commands/destroy.js +62 -0
- package/dist/commands/destroy.js.map +1 -0
- package/dist/commands/domains.d.ts +36 -0
- package/dist/commands/domains.d.ts.map +1 -0
- package/dist/commands/domains.js +323 -0
- package/dist/commands/domains.js.map +1 -0
- package/dist/commands/env.d.ts +7 -0
- package/dist/commands/env.d.ts.map +1 -0
- package/dist/commands/env.js +42 -0
- package/dist/commands/env.js.map +1 -0
- package/dist/commands/git.d.ts +32 -0
- package/dist/commands/git.d.ts.map +1 -0
- package/dist/commands/git.js +340 -0
- package/dist/commands/git.js.map +1 -0
- package/dist/commands/init-ai.d.ts +7 -0
- package/dist/commands/init-ai.d.ts.map +1 -0
- package/dist/commands/init-ai.js +257 -0
- package/dist/commands/init-ai.js.map +1 -0
- package/dist/commands/init.d.ts +8 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +228 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/link.d.ts +10 -0
- package/dist/commands/link.d.ts.map +1 -0
- package/dist/commands/link.js +193 -0
- package/dist/commands/link.js.map +1 -0
- package/dist/commands/login.d.ts +16 -0
- package/dist/commands/login.d.ts.map +1 -0
- package/dist/commands/login.js +468 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/logs.d.ts +16 -0
- package/dist/commands/logs.d.ts.map +1 -0
- package/dist/commands/logs.js +362 -0
- package/dist/commands/logs.js.map +1 -0
- package/dist/commands/oauth.d.ts +33 -0
- package/dist/commands/oauth.d.ts.map +1 -0
- package/dist/commands/oauth.js +181 -0
- package/dist/commands/oauth.js.map +1 -0
- package/dist/commands/preflight.d.ts +8 -0
- package/dist/commands/preflight.d.ts.map +1 -0
- package/dist/commands/preflight.js +190 -0
- package/dist/commands/preflight.js.map +1 -0
- package/dist/commands/program.d.ts +7 -0
- package/dist/commands/program.d.ts.map +1 -0
- package/dist/commands/program.js +59 -0
- package/dist/commands/program.js.map +1 -0
- package/dist/commands/programs.d.ts +7 -0
- package/dist/commands/programs.d.ts.map +1 -0
- package/dist/commands/programs.js +42 -0
- package/dist/commands/programs.js.map +1 -0
- package/dist/commands/push.d.ts +12 -0
- package/dist/commands/push.d.ts.map +1 -0
- package/dist/commands/push.js +166 -0
- package/dist/commands/push.js.map +1 -0
- package/dist/commands/register-scaffold.test.d.ts +2 -0
- package/dist/commands/register-scaffold.test.d.ts.map +1 -0
- package/dist/commands/register-scaffold.test.js +291 -0
- package/dist/commands/register-scaffold.test.js.map +1 -0
- package/dist/commands/register.d.ts +7 -0
- package/dist/commands/register.d.ts.map +1 -0
- package/dist/commands/register.js +304 -0
- package/dist/commands/register.js.map +1 -0
- package/dist/commands/rollback.d.ts +11 -0
- package/dist/commands/rollback.d.ts.map +1 -0
- package/dist/commands/rollback.js +147 -0
- package/dist/commands/rollback.js.map +1 -0
- package/dist/commands/sample.d.ts +15 -0
- package/dist/commands/sample.d.ts.map +1 -0
- package/dist/commands/sample.js +312 -0
- package/dist/commands/sample.js.map +1 -0
- package/dist/commands/scopes.d.ts +29 -0
- package/dist/commands/scopes.d.ts.map +1 -0
- package/dist/commands/scopes.js +203 -0
- package/dist/commands/scopes.js.map +1 -0
- package/dist/commands/services.d.ts +13 -0
- package/dist/commands/services.d.ts.map +1 -0
- package/dist/commands/services.js +95 -0
- package/dist/commands/services.js.map +1 -0
- package/dist/commands/settings.d.ts +10 -0
- package/dist/commands/settings.d.ts.map +1 -0
- package/dist/commands/settings.js +41 -0
- package/dist/commands/settings.js.map +1 -0
- package/dist/commands/signup.d.ts +9 -0
- package/dist/commands/signup.d.ts.map +1 -0
- package/dist/commands/signup.js +192 -0
- package/dist/commands/signup.js.map +1 -0
- package/dist/commands/status.d.ts +9 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +170 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/troubleshoot.d.ts +19 -0
- package/dist/commands/troubleshoot.d.ts.map +1 -0
- package/dist/commands/troubleshoot.js +465 -0
- package/dist/commands/troubleshoot.js.map +1 -0
- package/dist/commands/update.d.ts +6 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +64 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/commands/user.d.ts +17 -0
- package/dist/commands/user.d.ts.map +1 -0
- package/dist/commands/user.js +126 -0
- package/dist/commands/user.js.map +1 -0
- package/dist/commands/versions.d.ts +16 -0
- package/dist/commands/versions.d.ts.map +1 -0
- package/dist/commands/versions.js +116 -0
- package/dist/commands/versions.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +556 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/__tests__/scaffold-integration.test.d.ts +2 -0
- package/dist/lib/__tests__/scaffold-integration.test.d.ts.map +1 -0
- package/dist/lib/__tests__/scaffold-integration.test.js +321 -0
- package/dist/lib/__tests__/scaffold-integration.test.js.map +1 -0
- package/dist/lib/ai/client.d.ts +39 -0
- package/dist/lib/ai/client.d.ts.map +1 -0
- package/dist/lib/ai/client.js +236 -0
- package/dist/lib/ai/client.js.map +1 -0
- package/dist/lib/ai/generator.d.ts +17 -0
- package/dist/lib/ai/generator.d.ts.map +1 -0
- package/dist/lib/ai/generator.js +338 -0
- package/dist/lib/ai/generator.js.map +1 -0
- package/dist/lib/ai/prompts.d.ts +47 -0
- package/dist/lib/ai/prompts.d.ts.map +1 -0
- package/dist/lib/ai/prompts.js +247 -0
- package/dist/lib/ai/prompts.js.map +1 -0
- package/dist/lib/ai/scanner.d.ts +50 -0
- package/dist/lib/ai/scanner.d.ts.map +1 -0
- package/dist/lib/ai/scanner.js +237 -0
- package/dist/lib/ai/scanner.js.map +1 -0
- package/dist/lib/api.d.ts +18 -0
- package/dist/lib/api.d.ts.map +1 -0
- package/dist/lib/api.js +67 -0
- package/dist/lib/api.js.map +1 -0
- package/dist/lib/auto-register.d.ts +12 -0
- package/dist/lib/auto-register.d.ts.map +1 -0
- package/dist/lib/auto-register.js +42 -0
- package/dist/lib/auto-register.js.map +1 -0
- package/dist/lib/bio.d.ts +90 -0
- package/dist/lib/bio.d.ts.map +1 -0
- package/dist/lib/bio.js +247 -0
- package/dist/lib/bio.js.map +1 -0
- package/dist/lib/builder.d.ts +65 -0
- package/dist/lib/builder.d.ts.map +1 -0
- package/dist/lib/builder.js +192 -0
- package/dist/lib/builder.js.map +1 -0
- package/dist/lib/catalog.d.ts +3 -0
- package/dist/lib/catalog.d.ts.map +1 -0
- package/dist/lib/catalog.js +17 -0
- package/dist/lib/catalog.js.map +1 -0
- package/dist/lib/config.d.ts +20 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +124 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/forgejo.d.ts +188 -0
- package/dist/lib/forgejo.d.ts.map +1 -0
- package/dist/lib/forgejo.js +305 -0
- package/dist/lib/forgejo.js.map +1 -0
- package/dist/lib/output.d.ts +12 -0
- package/dist/lib/output.d.ts.map +1 -0
- package/dist/lib/output.js +39 -0
- package/dist/lib/output.js.map +1 -0
- package/dist/lib/scaffold.d.ts +30 -0
- package/dist/lib/scaffold.d.ts.map +1 -0
- package/dist/lib/scaffold.js +180 -0
- package/dist/lib/scaffold.js.map +1 -0
- package/dist/lib/scope-requests.d.ts +17 -0
- package/dist/lib/scope-requests.d.ts.map +1 -0
- package/dist/lib/scope-requests.js +78 -0
- package/dist/lib/scope-requests.js.map +1 -0
- package/dist/lib/scope-requests.test.d.ts +2 -0
- package/dist/lib/scope-requests.test.d.ts.map +1 -0
- package/dist/lib/scope-requests.test.js +239 -0
- package/dist/lib/scope-requests.test.js.map +1 -0
- package/dist/lib/troubleshoot/analyzer.d.ts +14 -0
- package/dist/lib/troubleshoot/analyzer.d.ts.map +1 -0
- package/dist/lib/troubleshoot/analyzer.js +541 -0
- package/dist/lib/troubleshoot/analyzer.js.map +1 -0
- package/dist/lib/troubleshoot/auto-fix.d.ts +29 -0
- package/dist/lib/troubleshoot/auto-fix.d.ts.map +1 -0
- package/dist/lib/troubleshoot/auto-fix.js +373 -0
- package/dist/lib/troubleshoot/auto-fix.js.map +1 -0
- package/dist/lib/troubleshoot/index.d.ts +5 -0
- package/dist/lib/troubleshoot/index.d.ts.map +1 -0
- package/dist/lib/troubleshoot/index.js +6 -0
- package/dist/lib/troubleshoot/index.js.map +1 -0
- package/dist/lib/troubleshoot/log-fetcher.d.ts +43 -0
- package/dist/lib/troubleshoot/log-fetcher.d.ts.map +1 -0
- package/dist/lib/troubleshoot/log-fetcher.js +431 -0
- package/dist/lib/troubleshoot/log-fetcher.js.map +1 -0
- package/dist/lib/troubleshoot/redactor.d.ts +35 -0
- package/dist/lib/troubleshoot/redactor.d.ts.map +1 -0
- package/dist/lib/troubleshoot/redactor.js +208 -0
- package/dist/lib/troubleshoot/redactor.js.map +1 -0
- package/dist/lib/validators/catalog-schemas.d.ts +59 -0
- package/dist/lib/validators/catalog-schemas.d.ts.map +1 -0
- package/dist/lib/validators/catalog-schemas.js +32 -0
- package/dist/lib/validators/catalog-schemas.js.map +1 -0
- package/dist/lib/validators/catalog-validator.d.ts +3 -0
- package/dist/lib/validators/catalog-validator.d.ts.map +1 -0
- package/dist/lib/validators/catalog-validator.js +247 -0
- package/dist/lib/validators/catalog-validator.js.map +1 -0
- package/dist/lib/validators/catalog-validator.test.d.ts +2 -0
- package/dist/lib/validators/catalog-validator.test.d.ts.map +1 -0
- package/dist/lib/validators/catalog-validator.test.js +420 -0
- package/dist/lib/validators/catalog-validator.test.js.map +1 -0
- package/dist/lib/validators/dockerfile-validator.d.ts +5 -0
- package/dist/lib/validators/dockerfile-validator.d.ts.map +1 -0
- package/dist/lib/validators/dockerfile-validator.js +295 -0
- package/dist/lib/validators/dockerfile-validator.js.map +1 -0
- package/dist/lib/validators/dockerfile-validator.test.d.ts +2 -0
- package/dist/lib/validators/dockerfile-validator.test.d.ts.map +1 -0
- package/dist/lib/validators/dockerfile-validator.test.js +161 -0
- package/dist/lib/validators/dockerfile-validator.test.js.map +1 -0
- package/dist/lib/validators/env-validator.d.ts +3 -0
- package/dist/lib/validators/env-validator.d.ts.map +1 -0
- package/dist/lib/validators/env-validator.js +268 -0
- package/dist/lib/validators/env-validator.js.map +1 -0
- package/dist/lib/validators/git-validator.d.ts +3 -0
- package/dist/lib/validators/git-validator.d.ts.map +1 -0
- package/dist/lib/validators/git-validator.js +236 -0
- package/dist/lib/validators/git-validator.js.map +1 -0
- package/dist/lib/validators/health-detector.d.ts +4 -0
- package/dist/lib/validators/health-detector.d.ts.map +1 -0
- package/dist/lib/validators/health-detector.js +172 -0
- package/dist/lib/validators/health-detector.js.map +1 -0
- package/dist/lib/validators/health-detector.test.d.ts +2 -0
- package/dist/lib/validators/health-detector.test.d.ts.map +1 -0
- package/dist/lib/validators/health-detector.test.js +118 -0
- package/dist/lib/validators/health-detector.test.js.map +1 -0
- package/dist/lib/validators/index.d.ts +8 -0
- package/dist/lib/validators/index.d.ts.map +1 -0
- package/dist/lib/validators/index.js +8 -0
- package/dist/lib/validators/index.js.map +1 -0
- package/dist/lib/validators/route-validator.d.ts +3 -0
- package/dist/lib/validators/route-validator.d.ts.map +1 -0
- package/dist/lib/validators/route-validator.js +238 -0
- package/dist/lib/validators/route-validator.js.map +1 -0
- package/dist/lib/validators/scope-validator.d.ts +3 -0
- package/dist/lib/validators/scope-validator.d.ts.map +1 -0
- package/dist/lib/validators/scope-validator.js +141 -0
- package/dist/lib/validators/scope-validator.js.map +1 -0
- package/dist/lib/watch.d.ts +35 -0
- package/dist/lib/watch.d.ts.map +1 -0
- package/dist/lib/watch.js +171 -0
- package/dist/lib/watch.js.map +1 -0
- package/dist/templates/api/.env.example +15 -0
- package/dist/templates/api/Dockerfile +45 -0
- package/dist/templates/api/README.md +85 -0
- package/dist/templates/api/catalog-info.yaml +22 -0
- package/dist/templates/api/gitignore +31 -0
- package/dist/templates/api/helm/{{name}}/Chart.yaml +9 -0
- package/dist/templates/api/helm/{{name}}/templates/deployment.yaml +72 -0
- package/dist/templates/api/helm/{{name}}/templates/ingress.yaml +43 -0
- package/dist/templates/api/helm/{{name}}/templates/service.yaml +17 -0
- package/dist/templates/api/helm/{{name}}/values.yaml +64 -0
- package/dist/templates/api/package.json +33 -0
- package/dist/templates/api/src/index.ts +61 -0
- package/dist/templates/api/src/routes/example.ts +165 -0
- package/dist/templates/api/tsconfig.json +18 -0
- package/dist/templates/crosspod/README.md +87 -0
- package/dist/templates/crosspod/service-a/Dockerfile +27 -0
- package/dist/templates/crosspod/service-a/catalog-info.yaml +54 -0
- package/dist/templates/crosspod/service-a/gitignore +5 -0
- package/dist/templates/crosspod/service-a/helm/{{name}}-service-a/Chart.yaml +6 -0
- package/dist/templates/crosspod/service-a/helm/{{name}}-service-a/templates/deployment.yaml +72 -0
- package/dist/templates/crosspod/service-a/helm/{{name}}-service-a/templates/ingress.yaml +43 -0
- package/dist/templates/crosspod/service-a/helm/{{name}}-service-a/templates/service.yaml +17 -0
- package/dist/templates/crosspod/service-a/helm/{{name}}-service-a/values.yaml +44 -0
- package/dist/templates/crosspod/service-a/package.json +29 -0
- package/dist/templates/crosspod/service-a/src/index.ts +89 -0
- package/dist/templates/crosspod/service-a/tsconfig.json +14 -0
- package/dist/templates/crosspod/service-b/Dockerfile +27 -0
- package/dist/templates/crosspod/service-b/catalog-info.yaml +27 -0
- package/dist/templates/crosspod/service-b/gitignore +5 -0
- package/dist/templates/crosspod/service-b/helm/{{name}}-service-b/Chart.yaml +6 -0
- package/dist/templates/crosspod/service-b/helm/{{name}}-service-b/templates/deployment.yaml +72 -0
- package/dist/templates/crosspod/service-b/helm/{{name}}-service-b/templates/ingress.yaml +43 -0
- package/dist/templates/crosspod/service-b/helm/{{name}}-service-b/templates/service.yaml +17 -0
- package/dist/templates/crosspod/service-b/helm/{{name}}-service-b/values.yaml +47 -0
- package/dist/templates/crosspod/service-b/package.json +26 -0
- package/dist/templates/crosspod/service-b/src/index.ts +143 -0
- package/dist/templates/crosspod/service-b/tsconfig.json +14 -0
- package/dist/templates/mga/{{name}}-api/.env.example +5 -0
- package/dist/templates/mga/{{name}}-api/Dockerfile +45 -0
- package/dist/templates/mga/{{name}}-api/catalog-info.yaml +44 -0
- package/dist/templates/mga/{{name}}-api/gitignore +31 -0
- package/dist/templates/mga/{{name}}-api/helm/{{name}}-api/Chart.yaml +9 -0
- package/dist/templates/mga/{{name}}-api/helm/{{name}}-api/templates/deployment.yaml +72 -0
- package/dist/templates/mga/{{name}}-api/helm/{{name}}-api/templates/ingress.yaml +43 -0
- package/dist/templates/mga/{{name}}-api/helm/{{name}}-api/templates/service.yaml +17 -0
- package/dist/templates/mga/{{name}}-api/helm/{{name}}-api/values.yaml +65 -0
- package/dist/templates/mga/{{name}}-api/package.json +37 -0
- package/dist/templates/mga/{{name}}-api/src/index.ts +82 -0
- package/dist/templates/mga/{{name}}-api/src/lib/mongo.ts +19 -0
- package/dist/templates/mga/{{name}}-api/src/middleware/auth.ts +133 -0
- package/dist/templates/mga/{{name}}-api/src/models/agent.ts +45 -0
- package/dist/templates/mga/{{name}}-api/src/models/application.ts +58 -0
- package/dist/templates/mga/{{name}}-api/src/models/invite.ts +39 -0
- package/dist/templates/mga/{{name}}-api/src/models/policy.ts +59 -0
- package/dist/templates/mga/{{name}}-api/src/models/product.ts +51 -0
- package/dist/templates/mga/{{name}}-api/src/models/quote.ts +68 -0
- package/dist/templates/mga/{{name}}-api/src/routes/agents.ts +98 -0
- package/dist/templates/mga/{{name}}-api/src/routes/applications.ts +170 -0
- package/dist/templates/mga/{{name}}-api/src/routes/invites.ts +146 -0
- package/dist/templates/mga/{{name}}-api/src/routes/policies.ts +70 -0
- package/dist/templates/mga/{{name}}-api/src/routes/products.ts +154 -0
- package/dist/templates/mga/{{name}}-api/src/routes/quotes.ts +263 -0
- package/dist/templates/mga/{{name}}-api/src/routes/reports.ts +199 -0
- package/dist/templates/mga/{{name}}-api/tsconfig.json +18 -0
- package/dist/templates/mga/{{name}}-web/.dockerignore +6 -0
- package/dist/templates/mga/{{name}}-web/.env.example +6 -0
- package/dist/templates/mga/{{name}}-web/Dockerfile +51 -0
- package/dist/templates/mga/{{name}}-web/catalog-info.yaml +24 -0
- package/dist/templates/mga/{{name}}-web/dockerignore +6 -0
- package/dist/templates/mga/{{name}}-web/gitignore +36 -0
- package/dist/templates/mga/{{name}}-web/helm/{{name}}-web/Chart.yaml +9 -0
- package/dist/templates/mga/{{name}}-web/helm/{{name}}-web/templates/_helpers.tpl +49 -0
- package/dist/templates/mga/{{name}}-web/helm/{{name}}-web/templates/configmap.yaml +10 -0
- package/dist/templates/mga/{{name}}-web/helm/{{name}}-web/templates/deployment.yaml +56 -0
- package/dist/templates/mga/{{name}}-web/helm/{{name}}-web/templates/ingress.yaml +41 -0
- package/dist/templates/mga/{{name}}-web/helm/{{name}}-web/templates/service.yaml +15 -0
- package/dist/templates/mga/{{name}}-web/helm/{{name}}-web/values.yaml +70 -0
- package/dist/templates/mga/{{name}}-web/next.config.js +8 -0
- package/dist/templates/mga/{{name}}-web/package.json +30 -0
- package/dist/templates/mga/{{name}}-web/public/.gitkeep +0 -0
- package/dist/templates/mga/{{name}}-web/public/gitkeep +0 -0
- package/dist/templates/mga/{{name}}-web/src/app/api/auth/callback/route.ts +77 -0
- package/dist/templates/mga/{{name}}-web/src/app/api/auth/login/route.ts +16 -0
- package/dist/templates/mga/{{name}}-web/src/app/api/auth/logout/route.ts +7 -0
- package/dist/templates/mga/{{name}}-web/src/app/api/auth/session/route.ts +42 -0
- package/dist/templates/mga/{{name}}-web/src/app/api/health/route.ts +10 -0
- package/dist/templates/mga/{{name}}-web/src/app/api/proxy/applications/route.ts +47 -0
- package/dist/templates/mga/{{name}}-web/src/app/applications/layout.tsx +17 -0
- package/dist/templates/mga/{{name}}-web/src/app/applications/new/page.tsx +374 -0
- package/dist/templates/mga/{{name}}-web/src/app/applications/page.tsx +109 -0
- package/dist/templates/mga/{{name}}-web/src/app/dashboard/admin/page.tsx +179 -0
- package/dist/templates/mga/{{name}}-web/src/app/dashboard/agent/page.tsx +125 -0
- package/dist/templates/mga/{{name}}-web/src/app/dashboard/insured/page.tsx +145 -0
- package/dist/templates/mga/{{name}}-web/src/app/dashboard/layout.tsx +17 -0
- package/dist/templates/mga/{{name}}-web/src/app/dashboard/page.tsx +27 -0
- package/dist/templates/mga/{{name}}-web/src/app/dashboard/shell.tsx +89 -0
- package/dist/templates/mga/{{name}}-web/src/app/globals.css +477 -0
- package/dist/templates/mga/{{name}}-web/src/app/layout.tsx +19 -0
- package/dist/templates/mga/{{name}}-web/src/app/page.tsx +74 -0
- package/dist/templates/mga/{{name}}-web/src/app/reports/layout.tsx +21 -0
- package/dist/templates/mga/{{name}}-web/src/app/reports/page.tsx +231 -0
- package/dist/templates/mga/{{name}}-web/src/lib/api.ts +79 -0
- package/dist/templates/mga/{{name}}-web/src/lib/auth.ts +285 -0
- package/dist/templates/mga/{{name}}-web/src/middleware.ts +71 -0
- package/dist/templates/mga/{{name}}-web/tsconfig.json +26 -0
- package/dist/templates/nextjs/.env.example +11 -0
- package/dist/templates/nextjs/Dockerfile +51 -0
- package/dist/templates/nextjs/README.md +87 -0
- package/dist/templates/nextjs/catalog-info.yaml +16 -0
- package/dist/templates/nextjs/gitignore +36 -0
- package/dist/templates/nextjs/helm/{{name}}/Chart.yaml +9 -0
- package/dist/templates/nextjs/helm/{{name}}/templates/deployment.yaml +72 -0
- package/dist/templates/nextjs/helm/{{name}}/templates/ingress.yaml +43 -0
- package/dist/templates/nextjs/helm/{{name}}/templates/service.yaml +17 -0
- package/dist/templates/nextjs/helm/{{name}}/values.yaml +60 -0
- package/dist/templates/nextjs/next.config.js +23 -0
- package/dist/templates/nextjs/package.json +29 -0
- package/dist/templates/nextjs/public/.gitkeep +0 -0
- package/dist/templates/nextjs/public/gitkeep +0 -0
- package/dist/templates/nextjs/src/app/api/example/route.ts +63 -0
- package/dist/templates/nextjs/src/app/api/health/route.ts +10 -0
- package/dist/templates/nextjs/src/app/layout.tsx +18 -0
- package/dist/templates/nextjs/src/app/page.tsx +49 -0
- package/dist/templates/nextjs/tsconfig.json +26 -0
- package/dist/templates/nextjs-oauth/.dockerignore +6 -0
- package/dist/templates/nextjs-oauth/.env.example +12 -0
- package/dist/templates/nextjs-oauth/Dockerfile +51 -0
- package/dist/templates/nextjs-oauth/README.md +115 -0
- package/dist/templates/nextjs-oauth/catalog-info.yaml +17 -0
- package/dist/templates/nextjs-oauth/dockerignore +6 -0
- package/dist/templates/nextjs-oauth/gitignore +36 -0
- package/dist/templates/nextjs-oauth/helm/Chart.yaml +6 -0
- package/dist/templates/nextjs-oauth/helm/templates/_helpers.tpl +49 -0
- package/dist/templates/nextjs-oauth/helm/templates/configmap.yaml +10 -0
- package/dist/templates/nextjs-oauth/helm/templates/deployment.yaml +56 -0
- package/dist/templates/nextjs-oauth/helm/templates/ingress.yaml +41 -0
- package/dist/templates/nextjs-oauth/helm/templates/service.yaml +15 -0
- package/dist/templates/nextjs-oauth/helm/values.yaml +69 -0
- package/dist/templates/nextjs-oauth/helm/{{name}}/Chart.yaml +9 -0
- package/dist/templates/nextjs-oauth/helm/{{name}}/templates/deployment.yaml +68 -0
- package/dist/templates/nextjs-oauth/helm/{{name}}/templates/service.yaml +17 -0
- package/dist/templates/nextjs-oauth/helm/{{name}}/values.yaml +51 -0
- package/dist/templates/nextjs-oauth/next.config.js +23 -0
- package/dist/templates/nextjs-oauth/package.json +30 -0
- package/dist/templates/nextjs-oauth/public/.gitkeep +0 -0
- package/dist/templates/nextjs-oauth/public/gitkeep +0 -0
- package/dist/templates/nextjs-oauth/src/app/api/auth/callback/route.ts +77 -0
- package/dist/templates/nextjs-oauth/src/app/api/auth/login/route.ts +16 -0
- package/dist/templates/nextjs-oauth/src/app/api/auth/logout/route.ts +7 -0
- package/dist/templates/nextjs-oauth/src/app/api/auth/session/route.ts +42 -0
- package/dist/templates/nextjs-oauth/src/app/api/example/route.ts +63 -0
- package/dist/templates/nextjs-oauth/src/app/api/health/route.ts +10 -0
- package/dist/templates/nextjs-oauth/src/app/dashboard/page.tsx +92 -0
- package/dist/templates/nextjs-oauth/src/app/layout.tsx +18 -0
- package/dist/templates/nextjs-oauth/src/app/page.tsx +110 -0
- package/dist/templates/nextjs-oauth/src/lib/auth.ts +285 -0
- package/dist/templates/nextjs-oauth/src/middleware.ts +71 -0
- package/dist/templates/nextjs-oauth/tsconfig.json +26 -0
- package/dist/templates/static/catalog-info.yaml +14 -0
- package/dist/templates/static/index.html +16 -0
- package/dist/templates/static/styles.css +39 -0
- package/dist/templates/worker/.env.example +13 -0
- package/dist/templates/worker/Dockerfile +26 -0
- package/dist/templates/worker/README.md +106 -0
- package/dist/templates/worker/catalog-info.yaml +19 -0
- package/dist/templates/worker/gitignore +5 -0
- package/dist/templates/worker/helm/{{name}}/Chart.yaml +9 -0
- package/dist/templates/worker/helm/{{name}}/templates/deployment.yaml +68 -0
- package/dist/templates/worker/helm/{{name}}/templates/ingress.yaml +43 -0
- package/dist/templates/worker/helm/{{name}}/values.yaml +64 -0
- package/dist/templates/worker/package.json +26 -0
- package/dist/templates/worker/src/index.ts +185 -0
- package/dist/templates/worker/tsconfig.json +14 -0
- package/dist/types/index.d.ts +596 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +41 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/platform.d.ts +191 -0
- package/dist/types/platform.d.ts.map +1 -0
- package/dist/types/platform.js +17 -0
- package/dist/types/platform.js.map +1 -0
- package/package.json +62 -0
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { BioClient } from '../lib/bio.js';
|
|
3
|
+
import { log, formatTable } from '../lib/output.js';
|
|
4
|
+
import { loadCatalogInfo } from '../lib/catalog.js';
|
|
5
|
+
export async function listScopesCommand(options) {
|
|
6
|
+
const bio = await BioClient.create();
|
|
7
|
+
const result = await bio.listScopes(options.service);
|
|
8
|
+
if (!result.success) {
|
|
9
|
+
log.error(`Failed to list scopes: ${result.error?.message}`);
|
|
10
|
+
process.exit(1);
|
|
11
|
+
}
|
|
12
|
+
const modules = result.data?.modules || [];
|
|
13
|
+
if (options.json) {
|
|
14
|
+
console.log(JSON.stringify(modules, null, 2));
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
if (modules.length === 0) {
|
|
18
|
+
log.warning('No scopes found');
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
for (const mod of modules) {
|
|
22
|
+
console.log(`\n${chalk.bold(mod.name)} ${chalk.dim(`(${mod.serviceId})`)}`);
|
|
23
|
+
const rows = mod.scopes.map((s) => [s.code, s.name, s.description]);
|
|
24
|
+
console.log(formatTable(['SCOPE', 'NAME', 'DESCRIPTION'], rows));
|
|
25
|
+
}
|
|
26
|
+
console.log();
|
|
27
|
+
}
|
|
28
|
+
export async function requestScopeCommand(service, scopesCsv, options) {
|
|
29
|
+
const bio = await BioClient.create();
|
|
30
|
+
const scopes = scopesCsv.split(',').map((s) => s.trim()).filter(Boolean);
|
|
31
|
+
if (scopes.length === 0) {
|
|
32
|
+
log.error('At least one scope is required');
|
|
33
|
+
process.exit(1);
|
|
34
|
+
}
|
|
35
|
+
// Determine credential from catalog-info or flags
|
|
36
|
+
let credentialType = (options.credentialType || 'oauth_client');
|
|
37
|
+
let credentialId = options.credential || '';
|
|
38
|
+
if (!credentialId) {
|
|
39
|
+
const catalog = await loadCatalogInfo();
|
|
40
|
+
if (catalog?.spec?.oauth?.clientId) {
|
|
41
|
+
credentialId = catalog.spec.oauth.clientId;
|
|
42
|
+
credentialType = 'oauth_client';
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
log.error('No credential specified. Use --credential <id> or define oauth.clientId in catalog-info.yaml');
|
|
46
|
+
process.exit(1);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
// Determine requesting service from catalog-info
|
|
50
|
+
const catalog = await loadCatalogInfo();
|
|
51
|
+
const requestingServiceId = catalog?.metadata?.name;
|
|
52
|
+
if (!requestingServiceId) {
|
|
53
|
+
log.error('No service name found. Run from a directory with catalog-info.yaml');
|
|
54
|
+
process.exit(1);
|
|
55
|
+
}
|
|
56
|
+
const result = await bio.createScopeGrant({
|
|
57
|
+
requestingServiceId,
|
|
58
|
+
targetServiceId: service,
|
|
59
|
+
requestedScopes: scopes,
|
|
60
|
+
requestNote: options.reason,
|
|
61
|
+
credentialType,
|
|
62
|
+
credentialId,
|
|
63
|
+
});
|
|
64
|
+
if (!result.success) {
|
|
65
|
+
log.error(`Failed to create scope request: ${result.error?.message}`);
|
|
66
|
+
process.exit(1);
|
|
67
|
+
}
|
|
68
|
+
const grant = result.data;
|
|
69
|
+
log.success(`Scope request created: ${grant.grantId}`);
|
|
70
|
+
log.dim(` From: ${grant.requestingServiceId}`);
|
|
71
|
+
log.dim(` To: ${grant.targetServiceId}`);
|
|
72
|
+
log.dim(` Scopes: ${grant.requestedScopes.join(', ')}`);
|
|
73
|
+
log.dim(` Status: ${chalk.yellow(grant.status)}`);
|
|
74
|
+
log.info('');
|
|
75
|
+
log.info('An admin must approve this request before the scopes take effect.');
|
|
76
|
+
}
|
|
77
|
+
export async function listRequestsCommand(options) {
|
|
78
|
+
const bio = await BioClient.create();
|
|
79
|
+
const filters = {};
|
|
80
|
+
if (!options.all) {
|
|
81
|
+
filters.status = 'pending';
|
|
82
|
+
}
|
|
83
|
+
// If in a project directory, filter to that service
|
|
84
|
+
const catalog = await loadCatalogInfo().catch(() => null);
|
|
85
|
+
if (catalog?.metadata?.name && !options.all) {
|
|
86
|
+
filters.requestingServiceId = catalog.metadata.name;
|
|
87
|
+
}
|
|
88
|
+
const result = await bio.listScopeGrants(filters);
|
|
89
|
+
if (!result.success) {
|
|
90
|
+
log.error(`Failed to list scope requests: ${result.error?.message}`);
|
|
91
|
+
process.exit(1);
|
|
92
|
+
}
|
|
93
|
+
const grants = result.data || [];
|
|
94
|
+
if (options.json) {
|
|
95
|
+
console.log(JSON.stringify(grants, null, 2));
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
if (grants.length === 0) {
|
|
99
|
+
log.info('No scope requests found');
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
const rows = grants.map((g) => [
|
|
103
|
+
g.grantId.slice(0, 8),
|
|
104
|
+
g.requestingServiceId,
|
|
105
|
+
g.targetServiceId,
|
|
106
|
+
g.requestedScopes.join(', '),
|
|
107
|
+
statusColor(g.status),
|
|
108
|
+
new Date(g.requestedAt).toLocaleDateString(),
|
|
109
|
+
]);
|
|
110
|
+
console.log(formatTable(['ID', 'FROM', 'TO', 'SCOPES', 'STATUS', 'REQUESTED'], rows));
|
|
111
|
+
}
|
|
112
|
+
export async function grantCommand(grantId, options) {
|
|
113
|
+
const bio = await BioClient.create();
|
|
114
|
+
const data = {
|
|
115
|
+
status: 'approved',
|
|
116
|
+
reviewNote: options.reason,
|
|
117
|
+
};
|
|
118
|
+
if (options.scopes) {
|
|
119
|
+
data.grantedScopes = options.scopes.split(',').map((s) => s.trim());
|
|
120
|
+
}
|
|
121
|
+
const result = await bio.reviewScopeGrant(grantId, data);
|
|
122
|
+
if (!result.success) {
|
|
123
|
+
log.error(`Failed to approve grant: ${result.error?.message}`);
|
|
124
|
+
process.exit(1);
|
|
125
|
+
}
|
|
126
|
+
const grant = result.data;
|
|
127
|
+
log.success(`Scope grant approved: ${grant.grantId}`);
|
|
128
|
+
log.dim(` Granted scopes: ${grant.grantedScopes.join(', ')}`);
|
|
129
|
+
log.dim(` Credential: ${grant.credentialId}`);
|
|
130
|
+
}
|
|
131
|
+
export async function denyCommand(grantId, options) {
|
|
132
|
+
const bio = await BioClient.create();
|
|
133
|
+
const result = await bio.reviewScopeGrant(grantId, {
|
|
134
|
+
status: 'denied',
|
|
135
|
+
reviewNote: options.reason,
|
|
136
|
+
});
|
|
137
|
+
if (!result.success) {
|
|
138
|
+
log.error(`Failed to deny grant: ${result.error?.message}`);
|
|
139
|
+
process.exit(1);
|
|
140
|
+
}
|
|
141
|
+
log.success(`Scope grant denied: ${grantId}`);
|
|
142
|
+
}
|
|
143
|
+
export async function revokeCommand(grantId, options) {
|
|
144
|
+
const bio = await BioClient.create();
|
|
145
|
+
const result = await bio.reviewScopeGrant(grantId, {
|
|
146
|
+
status: 'revoked',
|
|
147
|
+
reviewNote: options.reason,
|
|
148
|
+
});
|
|
149
|
+
if (!result.success) {
|
|
150
|
+
log.error(`Failed to revoke grant: ${result.error?.message}`);
|
|
151
|
+
process.exit(1);
|
|
152
|
+
}
|
|
153
|
+
log.success(`Scope grant revoked: ${grantId}`);
|
|
154
|
+
log.dim(' Scopes have been removed from the credential.');
|
|
155
|
+
}
|
|
156
|
+
export async function statusCommand(options) {
|
|
157
|
+
const catalog = await loadCatalogInfo();
|
|
158
|
+
if (!catalog?.metadata?.name) {
|
|
159
|
+
log.error('No service name found. Run from a directory with catalog-info.yaml');
|
|
160
|
+
process.exit(1);
|
|
161
|
+
}
|
|
162
|
+
const bio = await BioClient.create();
|
|
163
|
+
const result = await bio.listScopeGrants({
|
|
164
|
+
requestingServiceId: catalog.metadata.name,
|
|
165
|
+
});
|
|
166
|
+
if (!result.success) {
|
|
167
|
+
log.error(`Failed to get scope status: ${result.error?.message}`);
|
|
168
|
+
process.exit(1);
|
|
169
|
+
}
|
|
170
|
+
const grants = result.data || [];
|
|
171
|
+
if (options.json) {
|
|
172
|
+
console.log(JSON.stringify(grants, null, 2));
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
if (grants.length === 0) {
|
|
176
|
+
log.info(`No scope grants for ${catalog.metadata.name}`);
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
log.info(`Scope grants for ${chalk.bold(catalog.metadata.name)}:\n`);
|
|
180
|
+
const rows = grants.map((g) => [
|
|
181
|
+
g.targetServiceId,
|
|
182
|
+
g.requestedScopes.join(', '),
|
|
183
|
+
g.grantedScopes.join(', ') || '-',
|
|
184
|
+
statusColor(g.status),
|
|
185
|
+
g.credentialId.slice(0, 20),
|
|
186
|
+
]);
|
|
187
|
+
console.log(formatTable(['TARGET', 'REQUESTED', 'GRANTED', 'STATUS', 'CREDENTIAL'], rows));
|
|
188
|
+
}
|
|
189
|
+
function statusColor(status) {
|
|
190
|
+
switch (status) {
|
|
191
|
+
case 'approved':
|
|
192
|
+
return chalk.green(status);
|
|
193
|
+
case 'pending':
|
|
194
|
+
return chalk.yellow(status);
|
|
195
|
+
case 'denied':
|
|
196
|
+
return chalk.red(status);
|
|
197
|
+
case 'revoked':
|
|
198
|
+
return chalk.dim(status);
|
|
199
|
+
default:
|
|
200
|
+
return status;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
//# sourceMappingURL=scopes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scopes.js","sourceRoot":"","sources":["../../src/commands/scopes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
interface ListServicesOptions {
|
|
2
|
+
json?: boolean;
|
|
3
|
+
}
|
|
4
|
+
interface UpdateServiceOptions {
|
|
5
|
+
name?: string;
|
|
6
|
+
branch?: string;
|
|
7
|
+
dockerfile?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function listServicesCommand(options: ListServicesOptions): Promise<void>;
|
|
10
|
+
export declare function updateServiceCommand(serviceId: string, options: UpdateServiceOptions): Promise<void>;
|
|
11
|
+
export declare function deleteServiceCommand(serviceId: string): Promise<void>;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=services.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../src/commands/services.ts"],"names":[],"mappings":"AAGA,UAAU,mBAAmB;IAC3B,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAED,UAAU,oBAAoB;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwCrF;AAED,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAmCf;AAED,wBAAsB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAqB3E"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { BuilderClient } from '../lib/builder.js';
|
|
2
|
+
import { log, spinner, formatTable } from '../lib/output.js';
|
|
3
|
+
export async function listServicesCommand(options) {
|
|
4
|
+
const sp = spinner('Fetching services');
|
|
5
|
+
try {
|
|
6
|
+
const builder = await BuilderClient.create();
|
|
7
|
+
const result = await builder.listServices();
|
|
8
|
+
sp.stop(true);
|
|
9
|
+
if (!result.success || !result.data) {
|
|
10
|
+
log.error(`Failed to list services: ${result.error?.message || 'Unknown error'}`);
|
|
11
|
+
process.exit(1);
|
|
12
|
+
}
|
|
13
|
+
const services = result.data;
|
|
14
|
+
if (services.length === 0) {
|
|
15
|
+
log.warning('No services registered');
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
if (options.json) {
|
|
19
|
+
console.log(JSON.stringify(services, null, 2));
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
const rows = services.map(s => [
|
|
23
|
+
s.id.substring(0, 8),
|
|
24
|
+
s.name,
|
|
25
|
+
s.branch,
|
|
26
|
+
s.dockerfilePath || 'Dockerfile',
|
|
27
|
+
]);
|
|
28
|
+
console.log(formatTable(['ID', 'NAME', 'BRANCH', 'DOCKERFILE'], rows));
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
sp.stop(false);
|
|
32
|
+
if (error instanceof Error) {
|
|
33
|
+
log.error(`Failed to list services: ${error.message}`);
|
|
34
|
+
}
|
|
35
|
+
process.exit(1);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
export async function updateServiceCommand(serviceId, options) {
|
|
39
|
+
if (!options.name && !options.branch && !options.dockerfile) {
|
|
40
|
+
log.error('No updates specified. Use --name, --branch, or --dockerfile');
|
|
41
|
+
process.exit(1);
|
|
42
|
+
}
|
|
43
|
+
const sp = spinner('Updating service');
|
|
44
|
+
try {
|
|
45
|
+
const builder = await BuilderClient.create();
|
|
46
|
+
const updates = {};
|
|
47
|
+
if (options.name)
|
|
48
|
+
updates.name = options.name;
|
|
49
|
+
if (options.branch)
|
|
50
|
+
updates.branch = options.branch;
|
|
51
|
+
if (options.dockerfile)
|
|
52
|
+
updates.dockerfilePath = options.dockerfile;
|
|
53
|
+
const result = await builder.updateService(serviceId, updates);
|
|
54
|
+
sp.stop(true);
|
|
55
|
+
if (!result.success || !result.data) {
|
|
56
|
+
log.error(`Failed to update service: ${result.error?.message || 'Unknown error'}`);
|
|
57
|
+
process.exit(1);
|
|
58
|
+
}
|
|
59
|
+
log.success(`Service updated: ${result.data.name}`);
|
|
60
|
+
if (options.name)
|
|
61
|
+
log.dim(` Name: ${result.data.name}`);
|
|
62
|
+
if (options.branch)
|
|
63
|
+
log.dim(` Branch: ${result.data.branch}`);
|
|
64
|
+
if (options.dockerfile)
|
|
65
|
+
log.dim(` Dockerfile: ${result.data.dockerfilePath}`);
|
|
66
|
+
}
|
|
67
|
+
catch (error) {
|
|
68
|
+
sp.stop(false);
|
|
69
|
+
if (error instanceof Error) {
|
|
70
|
+
log.error(`Failed to update service: ${error.message}`);
|
|
71
|
+
}
|
|
72
|
+
process.exit(1);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
export async function deleteServiceCommand(serviceId) {
|
|
76
|
+
const sp = spinner('Deleting service');
|
|
77
|
+
try {
|
|
78
|
+
const builder = await BuilderClient.create();
|
|
79
|
+
const result = await builder.deleteService(serviceId);
|
|
80
|
+
sp.stop(true);
|
|
81
|
+
if (!result.success) {
|
|
82
|
+
log.error(`Failed to delete service: ${result.error?.message || 'Unknown error'}`);
|
|
83
|
+
process.exit(1);
|
|
84
|
+
}
|
|
85
|
+
log.success('Service deleted');
|
|
86
|
+
}
|
|
87
|
+
catch (error) {
|
|
88
|
+
sp.stop(false);
|
|
89
|
+
if (error instanceof Error) {
|
|
90
|
+
log.error(`Failed to delete service: ${error.message}`);
|
|
91
|
+
}
|
|
92
|
+
process.exit(1);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=services.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"services.js","sourceRoot":"","sources":["../../src/commands/services.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
interface ConfigSetOptions {
|
|
2
|
+
kokoUrl?: string;
|
|
3
|
+
builderUrl?: string;
|
|
4
|
+
registry?: string;
|
|
5
|
+
kubeconfig?: string;
|
|
6
|
+
anthropicKey?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function settingsCommand(options: ConfigSetOptions): Promise<void>;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=settings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/commands/settings.ts"],"names":[],"mappings":"AAIA,UAAU,gBAAgB;IACxB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAa9E"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { loadConfig, saveConfig, CONFIG_PATH } from '../lib/config.js';
|
|
2
|
+
import { log } from '../lib/output.js';
|
|
3
|
+
export async function settingsCommand(options) {
|
|
4
|
+
const hasUpdates = options.kokoUrl !== undefined ||
|
|
5
|
+
options.builderUrl !== undefined ||
|
|
6
|
+
options.registry !== undefined ||
|
|
7
|
+
options.kubeconfig !== undefined ||
|
|
8
|
+
options.anthropicKey !== undefined;
|
|
9
|
+
if (hasUpdates) {
|
|
10
|
+
await setConfig(options);
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
await showConfig();
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
async function showConfig() {
|
|
17
|
+
const config = await loadConfig();
|
|
18
|
+
log.info('Current configuration');
|
|
19
|
+
log.dim(`Config file: ${CONFIG_PATH}`);
|
|
20
|
+
log.info('');
|
|
21
|
+
log.dim(` koko_url: ${config.koko_url}`);
|
|
22
|
+
log.dim(` builder_url: ${config.builder_url}`);
|
|
23
|
+
log.dim(` registry: ${config.registry}`);
|
|
24
|
+
log.dim(` kubeconfig: ${config.kubeconfig}`);
|
|
25
|
+
log.dim(` anthropic_key: ${config.anthropic_api_key ? '***configured***' : '(not set)'}`);
|
|
26
|
+
}
|
|
27
|
+
async function setConfig(options) {
|
|
28
|
+
const config = await loadConfig();
|
|
29
|
+
const newConfig = {
|
|
30
|
+
...config,
|
|
31
|
+
...(options.kokoUrl && { koko_url: options.kokoUrl }),
|
|
32
|
+
...(options.builderUrl && { builder_url: options.builderUrl }),
|
|
33
|
+
...(options.registry && { registry: options.registry }),
|
|
34
|
+
...(options.kubeconfig && { kubeconfig: options.kubeconfig }),
|
|
35
|
+
...(options.anthropicKey && { anthropic_api_key: options.anthropicKey }),
|
|
36
|
+
};
|
|
37
|
+
await saveConfig(newConfig);
|
|
38
|
+
log.success('Configuration updated');
|
|
39
|
+
log.dim(`Saved to ${CONFIG_PATH}`);
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=settings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/commands/settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACtE,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAWtC,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAAyB;IAC7D,MAAM,UAAU,GACd,OAAO,CAAC,OAAO,KAAK,SAAS;QAC7B,OAAO,CAAC,UAAU,KAAK,SAAS;QAChC,OAAO,CAAC,QAAQ,KAAK,SAAS;QAC9B,OAAO,CAAC,UAAU,KAAK,SAAS;QAChC,OAAO,CAAC,YAAY,KAAK,SAAS,CAAA;IAEpC,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,SAAS,CAAC,OAAO,CAAC,CAAA;IAC1B,CAAC;SAAM,CAAC;QACN,MAAM,UAAU,EAAE,CAAA;IACpB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,UAAU;IACvB,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAA;IAEjC,GAAG,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA;IACjC,GAAG,CAAC,GAAG,CAAC,gBAAgB,WAAW,EAAE,CAAC,CAAA;IACtC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACZ,GAAG,CAAC,GAAG,CAAC,qBAAqB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC/C,GAAG,CAAC,GAAG,CAAC,qBAAqB,MAAM,CAAC,WAAW,EAAE,CAAC,CAAA;IAClD,GAAG,CAAC,GAAG,CAAC,qBAAqB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC/C,GAAG,CAAC,GAAG,CAAC,qBAAqB,MAAM,CAAC,UAAU,EAAE,CAAC,CAAA;IACjD,GAAG,CAAC,GAAG,CAAC,qBAAqB,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAA;AAC7F,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,OAAyB;IAChD,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAA;IAEjC,MAAM,SAAS,GAAW;QACxB,GAAG,MAAM;QACT,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;QACrD,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;QAC9D,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;QACvD,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;QAC7D,GAAG,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,iBAAiB,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC;KACzE,CAAA;IAED,MAAM,UAAU,CAAC,SAAS,CAAC,CAAA;IAC3B,GAAG,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAA;IACpC,GAAG,CAAC,GAAG,CAAC,YAAY,WAAW,EAAE,CAAC,CAAA;AACpC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signup.d.ts","sourceRoot":"","sources":["../../src/commands/signup.ts"],"names":[],"mappings":"AAuEA,UAAU,aAAa;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,wBAAsB,aAAa,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgG9E"}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
import { createInterface } from 'node:readline';
|
|
2
|
+
import { loadConfig, saveAuth, loadAuth } from '../lib/config.js';
|
|
3
|
+
import { log, spinner } from '../lib/output.js';
|
|
4
|
+
import { BioClient } from '../lib/bio.js';
|
|
5
|
+
import { BuilderClient } from '../lib/builder.js';
|
|
6
|
+
import { ForgejoClient, FORGEJO_URL } from '../lib/forgejo.js';
|
|
7
|
+
function prompt(question) {
|
|
8
|
+
const rl = createInterface({
|
|
9
|
+
input: process.stdin,
|
|
10
|
+
output: process.stdout,
|
|
11
|
+
});
|
|
12
|
+
return new Promise((resolve) => {
|
|
13
|
+
rl.question(question, (answer) => {
|
|
14
|
+
rl.close();
|
|
15
|
+
resolve(answer.trim());
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
function promptPassword(question) {
|
|
20
|
+
return new Promise((resolve) => {
|
|
21
|
+
const rl = createInterface({
|
|
22
|
+
input: process.stdin,
|
|
23
|
+
output: process.stdout,
|
|
24
|
+
});
|
|
25
|
+
// Hide password input on supported terminals
|
|
26
|
+
if (process.stdin.isTTY) {
|
|
27
|
+
process.stdout.write(question);
|
|
28
|
+
const stdin = process.stdin;
|
|
29
|
+
const wasRaw = stdin.isRaw;
|
|
30
|
+
stdin.setRawMode(true);
|
|
31
|
+
let password = '';
|
|
32
|
+
const onData = (char) => {
|
|
33
|
+
const c = char.toString('utf8');
|
|
34
|
+
if (c === '\n' || c === '\r') {
|
|
35
|
+
stdin.setRawMode(wasRaw ?? false);
|
|
36
|
+
stdin.removeListener('data', onData);
|
|
37
|
+
process.stdout.write('\n');
|
|
38
|
+
rl.close();
|
|
39
|
+
resolve(password);
|
|
40
|
+
}
|
|
41
|
+
else if (c === '\u007F' || c === '\b') {
|
|
42
|
+
// Backspace
|
|
43
|
+
if (password.length > 0) {
|
|
44
|
+
password = password.slice(0, -1);
|
|
45
|
+
process.stdout.write('\b \b');
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
else if (c === '\u0003') {
|
|
49
|
+
// Ctrl+C
|
|
50
|
+
process.stdout.write('\n');
|
|
51
|
+
process.exit(1);
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
password += c;
|
|
55
|
+
process.stdout.write('*');
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
stdin.on('data', onData);
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
// Non-TTY: fallback to visible input
|
|
62
|
+
rl.question(question, (answer) => {
|
|
63
|
+
rl.close();
|
|
64
|
+
resolve(answer.trim());
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
export async function signupCommand(options = {}) {
|
|
70
|
+
// Check if already logged in
|
|
71
|
+
const existingAuth = await loadAuth();
|
|
72
|
+
if (existingAuth) {
|
|
73
|
+
log.info(`Already logged in as ${existingAuth.user.email}`);
|
|
74
|
+
log.dim('Run "iec logout" first, or "iec login --force" to switch accounts');
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
// Resolve fields from flags > env vars > interactive prompt
|
|
78
|
+
const email = options.email || process.env.IEC_EMAIL || await prompt(' Email: ');
|
|
79
|
+
if (!email) {
|
|
80
|
+
log.error('Email is required');
|
|
81
|
+
process.exit(1);
|
|
82
|
+
}
|
|
83
|
+
const firstName = options.firstName || await prompt(' First name: ');
|
|
84
|
+
if (!firstName) {
|
|
85
|
+
log.error('First name is required');
|
|
86
|
+
process.exit(1);
|
|
87
|
+
}
|
|
88
|
+
const lastName = options.lastName || await prompt(' Last name: ');
|
|
89
|
+
if (!lastName) {
|
|
90
|
+
log.error('Last name is required');
|
|
91
|
+
process.exit(1);
|
|
92
|
+
}
|
|
93
|
+
const password = options.password || process.env.IEC_PASSWORD || await (async () => {
|
|
94
|
+
log.dim('\n Password: 12+ characters, uppercase, lowercase, and a number\n');
|
|
95
|
+
const pw = await promptPassword(' Password: ');
|
|
96
|
+
if (!pw) {
|
|
97
|
+
log.error('Password is required');
|
|
98
|
+
process.exit(1);
|
|
99
|
+
}
|
|
100
|
+
const confirmPw = await promptPassword(' Confirm password: ');
|
|
101
|
+
if (pw !== confirmPw) {
|
|
102
|
+
log.error('Passwords do not match');
|
|
103
|
+
process.exit(1);
|
|
104
|
+
}
|
|
105
|
+
return pw;
|
|
106
|
+
})();
|
|
107
|
+
if (!password) {
|
|
108
|
+
log.error('Password is required');
|
|
109
|
+
process.exit(1);
|
|
110
|
+
}
|
|
111
|
+
log.info('Create your developer account\n');
|
|
112
|
+
const sp = spinner('Creating account');
|
|
113
|
+
try {
|
|
114
|
+
const bio = await BioClient.create();
|
|
115
|
+
const result = await bio.register({ email, firstName, lastName, password });
|
|
116
|
+
if (!result.success || !result.data) {
|
|
117
|
+
sp.stop(false);
|
|
118
|
+
log.error(`Registration failed: ${result.error?.message || 'Unknown error'}`);
|
|
119
|
+
process.exit(1);
|
|
120
|
+
}
|
|
121
|
+
const { accessToken, refreshToken, bioId, name, expiresIn } = result.data;
|
|
122
|
+
// Save auth credentials
|
|
123
|
+
const expiresAt = new Date(Date.now() + expiresIn * 1000).toISOString();
|
|
124
|
+
const auth = {
|
|
125
|
+
token: accessToken,
|
|
126
|
+
bioToken: accessToken,
|
|
127
|
+
bioRefreshToken: refreshToken,
|
|
128
|
+
bioTokenExpiresAt: expiresAt,
|
|
129
|
+
user: {
|
|
130
|
+
id: bioId,
|
|
131
|
+
email: result.data.email,
|
|
132
|
+
name,
|
|
133
|
+
},
|
|
134
|
+
};
|
|
135
|
+
await saveAuth(auth);
|
|
136
|
+
sp.stop(true);
|
|
137
|
+
log.success(`Account created! Welcome, ${name}`);
|
|
138
|
+
// Provision Forgejo account + PAT
|
|
139
|
+
await provisionGitAccount(result.data.email, name);
|
|
140
|
+
log.info('');
|
|
141
|
+
log.info('Quick start:');
|
|
142
|
+
log.info(' iec sample --api my-first-api # Create a project');
|
|
143
|
+
log.info(' cd my-first-api');
|
|
144
|
+
log.info(' iec deploy # Deploy to sandbox');
|
|
145
|
+
}
|
|
146
|
+
catch (error) {
|
|
147
|
+
sp.stop(false);
|
|
148
|
+
if (error instanceof Error) {
|
|
149
|
+
log.error(`Registration failed: ${error.message}`);
|
|
150
|
+
}
|
|
151
|
+
process.exit(1);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
async function provisionGitAccount(email, name) {
|
|
155
|
+
try {
|
|
156
|
+
const config = await loadConfig();
|
|
157
|
+
const builder = new BuilderClient(config.builder_url);
|
|
158
|
+
const auth = await loadAuth();
|
|
159
|
+
if (!auth)
|
|
160
|
+
return;
|
|
161
|
+
// We need to make an authenticated request - BuilderClient.create() would work
|
|
162
|
+
// but let's use the stored token directly
|
|
163
|
+
const response = await fetch(`${config.builder_url}/users/provision-git`, {
|
|
164
|
+
method: 'POST',
|
|
165
|
+
headers: {
|
|
166
|
+
'Content-Type': 'application/json',
|
|
167
|
+
Authorization: `Bearer ${auth.token}`,
|
|
168
|
+
},
|
|
169
|
+
body: JSON.stringify({ email, name }),
|
|
170
|
+
});
|
|
171
|
+
if (!response.ok)
|
|
172
|
+
return;
|
|
173
|
+
const result = (await response.json());
|
|
174
|
+
if (result.success && result.data) {
|
|
175
|
+
const { username, provisioned, token } = result.data;
|
|
176
|
+
if (provisioned) {
|
|
177
|
+
log.dim(` Git account created: ${username}`);
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
log.dim(` Git account exists: ${username}`);
|
|
181
|
+
}
|
|
182
|
+
if (token) {
|
|
183
|
+
ForgejoClient.saveCredentials(FORGEJO_URL, token, 'pat', undefined, undefined, username);
|
|
184
|
+
log.dim(` Git credentials saved for ${username}`);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
catch {
|
|
189
|
+
log.dim(' Git account provisioning skipped (builder may be unavailable)');
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
//# sourceMappingURL=signup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signup.js","sourceRoot":"","sources":["../../src/commands/signup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AACjE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAG9D,SAAS,MAAM,CAAC,QAAgB;IAC9B,MAAM,EAAE,GAAG,eAAe,CAAC;QACzB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAA;IAEF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE;YAC/B,EAAE,CAAC,KAAK,EAAE,CAAA;YACV,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;QACxB,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,QAAgB;IACtC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,EAAE,GAAG,eAAe,CAAC;YACzB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAA;QAEF,6CAA6C;QAC7C,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;YAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;YAC3B,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAA;YAC1B,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;YAEtB,IAAI,QAAQ,GAAG,EAAE,CAAA;YACjB,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,EAAE;gBAC9B,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;gBAC/B,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;oBAC7B,KAAK,CAAC,UAAU,CAAC,MAAM,IAAI,KAAK,CAAC,CAAA;oBACjC,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;oBACpC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;oBAC1B,EAAE,CAAC,KAAK,EAAE,CAAA;oBACV,OAAO,CAAC,QAAQ,CAAC,CAAA;gBACnB,CAAC;qBAAM,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;oBACxC,YAAY;oBACZ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACxB,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;wBAChC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;oBAC/B,CAAC;gBACH,CAAC;qBAAM,IAAI,CAAC,KAAK,QAAQ,EAAE,CAAC;oBAC1B,SAAS;oBACT,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;oBAC1B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;gBACjB,CAAC;qBAAM,CAAC;oBACN,QAAQ,IAAI,CAAC,CAAA;oBACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBAC3B,CAAC;YACH,CAAC,CAAA;YACD,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC1B,CAAC;aAAM,CAAC;YACN,qCAAqC;YACrC,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE;gBAC/B,EAAE,CAAC,KAAK,EAAE,CAAA;gBACV,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;YACxB,CAAC,CAAC,CAAA;QACJ,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AASD,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,UAAyB,EAAE;IAC7D,6BAA6B;IAC7B,MAAM,YAAY,GAAG,MAAM,QAAQ,EAAE,CAAA;IACrC,IAAI,YAAY,EAAE,CAAC;QACjB,GAAG,CAAC,IAAI,CAAC,wBAAwB,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;QAC3D,GAAG,CAAC,GAAG,CAAC,mEAAmE,CAAC,CAAA;QAC5E,OAAM;IACR,CAAC;IAED,4DAA4D;IAC5D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,MAAM,MAAM,CAAC,WAAW,CAAC,CAAA;IACjF,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,GAAG,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAA;QAC9B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAA;IACrE,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,GAAG,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAA;QACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,MAAM,MAAM,CAAC,eAAe,CAAC,CAAA;IAClE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,GAAG,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAA;QAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,MAAM,CAAC,KAAK,IAAI,EAAE;QACjF,GAAG,CAAC,GAAG,CAAC,oEAAoE,CAAC,CAAA;QAC7E,MAAM,EAAE,GAAG,MAAM,cAAc,CAAC,cAAc,CAAC,CAAA;QAC/C,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,GAAG,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAA;YACjC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,sBAAsB,CAAC,CAAA;QAC9D,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACrB,GAAG,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAA;YACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QACD,OAAO,EAAE,CAAA;IACX,CAAC,CAAC,EAAE,CAAA;IAEJ,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,GAAG,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAA;QACjC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,GAAG,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAA;IAC3C,MAAM,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAA;IAEtC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,MAAM,EAAE,CAAA;QACpC,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAA;QAE3E,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACpC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACd,GAAG,CAAC,KAAK,CAAC,wBAAwB,MAAM,CAAC,KAAK,EAAE,OAAO,IAAI,eAAe,EAAE,CAAC,CAAA;YAC7E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,IAAI,CAAA;QAEzE,wBAAwB;QACxB,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAA;QACvE,MAAM,IAAI,GAAS;YACjB,KAAK,EAAE,WAAW;YAClB,QAAQ,EAAE,WAAW;YACrB,eAAe,EAAE,YAAY;YAC7B,iBAAiB,EAAE,SAAS;YAC5B,IAAI,EAAE;gBACJ,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK;gBACxB,IAAI;aACL;SACF,CAAA;QACD,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAA;QAEpB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACb,GAAG,CAAC,OAAO,CAAC,6BAA6B,IAAI,EAAE,CAAC,CAAA;QAEhD,kCAAkC;QAClC,MAAM,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QAElD,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACZ,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QACxB,GAAG,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAA;QAChE,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;QAC7B,GAAG,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAA;IACnE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACd,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,GAAG,CAAC,KAAK,CAAC,wBAAwB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;QACpD,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,KAAa,EAAE,IAAY;IAC5D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAA;QACjC,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;QACrD,MAAM,IAAI,GAAG,MAAM,QAAQ,EAAE,CAAA;QAC7B,IAAI,CAAC,IAAI;YAAE,OAAM;QAEjB,+EAA+E;QAC/E,0CAA0C;QAC1C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,CAAC,WAAW,sBAAsB,EAAE;YACxE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,UAAU,IAAI,CAAC,KAAK,EAAE;aACtC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;SACtC,CAAC,CAAA;QAEF,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,OAAM;QAExB,MAAM,MAAM,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAGpC,CAAA;QAED,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAClC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,IAAI,CAAA;YAEpD,IAAI,WAAW,EAAE,CAAC;gBAChB,GAAG,CAAC,GAAG,CAAC,0BAA0B,QAAQ,EAAE,CAAC,CAAA;YAC/C,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,GAAG,CAAC,yBAAyB,QAAQ,EAAE,CAAC,CAAA;YAC9C,CAAC;YAED,IAAI,KAAK,EAAE,CAAC;gBACV,aAAa,CAAC,eAAe,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;gBACxF,GAAG,CAAC,GAAG,CAAC,+BAA+B,QAAQ,EAAE,CAAC,CAAA;YACpD,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,GAAG,CAAC,GAAG,CAAC,iEAAiE,CAAC,CAAA;IAC5E,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAYA,UAAU,aAAa;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAoCzE"}
|