@launch77/cli 1.2.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/.eslintrc.json +6 -0
- package/dist/app-templates/webapp/.env.ci +6 -0
- package/dist/app-templates/webapp/.env.example +9 -0
- package/dist/app-templates/webapp/.eslintrc.json +6 -0
- package/dist/app-templates/webapp/README.md.hbs +80 -0
- package/dist/app-templates/webapp/app/about/page.tsx.hbs +41 -0
- package/dist/app-templates/webapp/app/dashboard/page.tsx.hbs +51 -0
- package/dist/app-templates/webapp/app/globals.css +31 -0
- package/dist/app-templates/webapp/app/layout.tsx.hbs +26 -0
- package/dist/app-templates/webapp/app/page.tsx.hbs +30 -0
- package/dist/app-templates/webapp/next.config.js +99 -0
- package/dist/app-templates/webapp/package.json.hbs +30 -0
- package/dist/app-templates/webapp/postcss.config.js +6 -0
- package/dist/app-templates/webapp/tailwind.config.ts +24 -0
- package/dist/app-templates/webapp/tsconfig.json +29 -0
- package/dist/app-templates/webapp/vercel.json.hbs +7 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +29 -0
- package/dist/cli.js.map +1 -0
- package/dist/infrastructure/filesystem.d.ts +41 -0
- package/dist/infrastructure/filesystem.d.ts.map +1 -0
- package/dist/infrastructure/filesystem.js +61 -0
- package/dist/infrastructure/filesystem.js.map +1 -0
- package/dist/infrastructure/npm.d.ts +9 -0
- package/dist/infrastructure/npm.d.ts.map +1 -0
- package/dist/infrastructure/npm.js +17 -0
- package/dist/infrastructure/npm.js.map +1 -0
- package/dist/infrastructure/template-engine.d.ts +12 -0
- package/dist/infrastructure/template-engine.d.ts.map +1 -0
- package/dist/infrastructure/template-engine.js +40 -0
- package/dist/infrastructure/template-engine.js.map +1 -0
- package/dist/infrastructure/template-generator.d.ts +9 -0
- package/dist/infrastructure/template-generator.d.ts.map +1 -0
- package/dist/infrastructure/template-generator.js +19 -0
- package/dist/infrastructure/template-generator.js.map +1 -0
- package/dist/infrastructure/template.d.ts +20 -0
- package/dist/infrastructure/template.d.ts.map +1 -0
- package/dist/infrastructure/template.js +53 -0
- package/dist/infrastructure/template.js.map +1 -0
- package/dist/modules/app/commands/create-app.d.ts +3 -0
- package/dist/modules/app/commands/create-app.d.ts.map +1 -0
- package/dist/modules/app/commands/create-app.js +51 -0
- package/dist/modules/app/commands/create-app.js.map +1 -0
- package/dist/modules/app/commands/delete-app.d.ts +3 -0
- package/dist/modules/app/commands/delete-app.d.ts.map +1 -0
- package/dist/modules/app/commands/delete-app.js +109 -0
- package/dist/modules/app/commands/delete-app.js.map +1 -0
- package/dist/modules/app/commands/generate-manifest.d.ts +3 -0
- package/dist/modules/app/commands/generate-manifest.d.ts.map +1 -0
- package/dist/modules/app/commands/generate-manifest.js +62 -0
- package/dist/modules/app/commands/generate-manifest.js.map +1 -0
- package/dist/modules/app/commands/validate-manifest.d.ts +3 -0
- package/dist/modules/app/commands/validate-manifest.d.ts.map +1 -0
- package/dist/modules/app/commands/validate-manifest.js +68 -0
- package/dist/modules/app/commands/validate-manifest.js.map +1 -0
- package/dist/modules/app/errors/app-errors.d.ts +19 -0
- package/dist/modules/app/errors/app-errors.d.ts.map +1 -0
- package/dist/modules/app/errors/app-errors.js +37 -0
- package/dist/modules/app/errors/app-errors.js.map +1 -0
- package/dist/modules/app/index.d.ts +10 -0
- package/dist/modules/app/index.d.ts.map +1 -0
- package/dist/modules/app/index.js +11 -0
- package/dist/modules/app/index.js.map +1 -0
- package/dist/modules/app/lib/manifest-schema.d.ts +39 -0
- package/dist/modules/app/lib/manifest-schema.d.ts.map +1 -0
- package/dist/modules/app/lib/manifest-schema.js +44 -0
- package/dist/modules/app/lib/manifest-schema.js.map +1 -0
- package/dist/modules/app/services/app-svc.d.ts +15 -0
- package/dist/modules/app/services/app-svc.d.ts.map +1 -0
- package/dist/modules/app/services/app-svc.js +90 -0
- package/dist/modules/app/services/app-svc.js.map +1 -0
- package/dist/modules/app/services/manifest-svc.d.ts +28 -0
- package/dist/modules/app/services/manifest-svc.d.ts.map +1 -0
- package/dist/modules/app/services/manifest-svc.js +119 -0
- package/dist/modules/app/services/manifest-svc.js.map +1 -0
- package/dist/modules/app/types/app-types.d.ts +21 -0
- package/dist/modules/app/types/app-types.d.ts.map +1 -0
- package/dist/modules/app/types/app-types.js +5 -0
- package/dist/modules/app/types/app-types.js.map +1 -0
- package/dist/modules/catalog/commands/generate.d.ts +9 -0
- package/dist/modules/catalog/commands/generate.d.ts.map +1 -0
- package/dist/modules/catalog/commands/generate.js +94 -0
- package/dist/modules/catalog/commands/generate.js.map +1 -0
- package/dist/modules/catalog/commands/scan.d.ts +9 -0
- package/dist/modules/catalog/commands/scan.d.ts.map +1 -0
- package/dist/modules/catalog/commands/scan.js +43 -0
- package/dist/modules/catalog/commands/scan.js.map +1 -0
- package/dist/modules/catalog/config/catalog-config.d.ts +49 -0
- package/dist/modules/catalog/config/catalog-config.d.ts.map +1 -0
- package/dist/modules/catalog/config/catalog-config.js +116 -0
- package/dist/modules/catalog/config/catalog-config.js.map +1 -0
- package/dist/modules/catalog/config/catalog-config.test.d.ts +2 -0
- package/dist/modules/catalog/config/catalog-config.test.d.ts.map +1 -0
- package/dist/modules/catalog/config/catalog-config.test.js +362 -0
- package/dist/modules/catalog/config/catalog-config.test.js.map +1 -0
- package/dist/modules/catalog/index.d.ts +9 -0
- package/dist/modules/catalog/index.d.ts.map +1 -0
- package/dist/modules/catalog/index.js +9 -0
- package/dist/modules/catalog/index.js.map +1 -0
- package/dist/modules/catalog/parsers/typescript-parser.d.ts +15 -0
- package/dist/modules/catalog/parsers/typescript-parser.d.ts.map +1 -0
- package/dist/modules/catalog/parsers/typescript-parser.js +82 -0
- package/dist/modules/catalog/parsers/typescript-parser.js.map +1 -0
- package/dist/modules/catalog/scanners/metadata-extractor.d.ts +10 -0
- package/dist/modules/catalog/scanners/metadata-extractor.d.ts.map +1 -0
- package/dist/modules/catalog/scanners/metadata-extractor.js +122 -0
- package/dist/modules/catalog/scanners/metadata-extractor.js.map +1 -0
- package/dist/modules/catalog/scanners/metadata-validator.d.ts +6 -0
- package/dist/modules/catalog/scanners/metadata-validator.d.ts.map +1 -0
- package/dist/modules/catalog/scanners/metadata-validator.js +57 -0
- package/dist/modules/catalog/scanners/metadata-validator.js.map +1 -0
- package/dist/modules/catalog/scanners/ui-component-scanner.d.ts +11 -0
- package/dist/modules/catalog/scanners/ui-component-scanner.d.ts.map +1 -0
- package/dist/modules/catalog/scanners/ui-component-scanner.js +147 -0
- package/dist/modules/catalog/scanners/ui-component-scanner.js.map +1 -0
- package/dist/modules/catalog/schemas/catalog-ui-components.schema.json +161 -0
- package/dist/modules/catalog/schemas/schemas/catalog-ui-components.schema.json +145 -0
- package/dist/modules/catalog/services/catalog-generator-svc.d.ts +27 -0
- package/dist/modules/catalog/services/catalog-generator-svc.d.ts.map +1 -0
- package/dist/modules/catalog/services/catalog-generator-svc.js +100 -0
- package/dist/modules/catalog/services/catalog-generator-svc.js.map +1 -0
- package/dist/modules/catalog/services/catalog-generator-svc.test.d.ts +2 -0
- package/dist/modules/catalog/services/catalog-generator-svc.test.d.ts.map +1 -0
- package/dist/modules/catalog/services/catalog-generator-svc.test.js +201 -0
- package/dist/modules/catalog/services/catalog-generator-svc.test.js.map +1 -0
- package/dist/modules/catalog/services/catalog-svc.d.ts +39 -0
- package/dist/modules/catalog/services/catalog-svc.d.ts.map +1 -0
- package/dist/modules/catalog/services/catalog-svc.js +163 -0
- package/dist/modules/catalog/services/catalog-svc.js.map +1 -0
- package/dist/modules/catalog/types/catalog-types.d.ts +120 -0
- package/dist/modules/catalog/types/catalog-types.d.ts.map +1 -0
- package/dist/modules/catalog/types/catalog-types.js +5 -0
- package/dist/modules/catalog/types/catalog-types.js.map +1 -0
- package/dist/modules/catalog/utils/examples-generator.d.ts +6 -0
- package/dist/modules/catalog/utils/examples-generator.d.ts.map +1 -0
- package/dist/modules/catalog/utils/examples-generator.js +55 -0
- package/dist/modules/catalog/utils/examples-generator.js.map +1 -0
- package/dist/modules/catalog/utils/quality-reporter.d.ts +13 -0
- package/dist/modules/catalog/utils/quality-reporter.d.ts.map +1 -0
- package/dist/modules/catalog/utils/quality-reporter.js +64 -0
- package/dist/modules/catalog/utils/quality-reporter.js.map +1 -0
- package/dist/modules/catalog/validators/component-name-validator.d.ts +20 -0
- package/dist/modules/catalog/validators/component-name-validator.d.ts.map +1 -0
- package/dist/modules/catalog/validators/component-name-validator.js +33 -0
- package/dist/modules/catalog/validators/component-name-validator.js.map +1 -0
- package/dist/modules/catalog/validators/component-name-validator.test.d.ts +2 -0
- package/dist/modules/catalog/validators/component-name-validator.test.d.ts.map +1 -0
- package/dist/modules/catalog/validators/component-name-validator.test.js +196 -0
- package/dist/modules/catalog/validators/component-name-validator.test.js.map +1 -0
- package/dist/modules/deploy/commands/deploy-init-action.d.ts +12 -0
- package/dist/modules/deploy/commands/deploy-init-action.d.ts.map +1 -0
- package/dist/modules/deploy/commands/deploy-init-action.js +220 -0
- package/dist/modules/deploy/commands/deploy-init-action.js.map +1 -0
- package/dist/modules/deploy/commands/deploy-init.d.ts +6 -0
- package/dist/modules/deploy/commands/deploy-init.d.ts.map +1 -0
- package/dist/modules/deploy/commands/deploy-init.js +16 -0
- package/dist/modules/deploy/commands/deploy-init.js.map +1 -0
- package/dist/modules/deploy/commands/deploy-logs-action.d.ts +12 -0
- package/dist/modules/deploy/commands/deploy-logs-action.d.ts.map +1 -0
- package/dist/modules/deploy/commands/deploy-logs-action.js +113 -0
- package/dist/modules/deploy/commands/deploy-logs-action.js.map +1 -0
- package/dist/modules/deploy/commands/deploy-logs.d.ts +6 -0
- package/dist/modules/deploy/commands/deploy-logs.d.ts.map +1 -0
- package/dist/modules/deploy/commands/deploy-logs.js +17 -0
- package/dist/modules/deploy/commands/deploy-logs.js.map +1 -0
- package/dist/modules/deploy/commands/deploy-status-action.d.ts +8 -0
- package/dist/modules/deploy/commands/deploy-status-action.d.ts.map +1 -0
- package/dist/modules/deploy/commands/deploy-status-action.js +153 -0
- package/dist/modules/deploy/commands/deploy-status-action.js.map +1 -0
- package/dist/modules/deploy/commands/deploy-status.d.ts +6 -0
- package/dist/modules/deploy/commands/deploy-status.d.ts.map +1 -0
- package/dist/modules/deploy/commands/deploy-status.js +13 -0
- package/dist/modules/deploy/commands/deploy-status.js.map +1 -0
- package/dist/modules/deploy/index.d.ts +7 -0
- package/dist/modules/deploy/index.d.ts.map +1 -0
- package/dist/modules/deploy/index.js +7 -0
- package/dist/modules/deploy/index.js.map +1 -0
- package/dist/modules/deploy/services/deploy-svc.d.ts +17 -0
- package/dist/modules/deploy/services/deploy-svc.d.ts.map +1 -0
- package/dist/modules/deploy/services/deploy-svc.js +25 -0
- package/dist/modules/deploy/services/deploy-svc.js.map +1 -0
- package/dist/modules/deploy/utils/vercel-extended.d.ts +63 -0
- package/dist/modules/deploy/utils/vercel-extended.d.ts.map +1 -0
- package/dist/modules/deploy/utils/vercel-extended.js +238 -0
- package/dist/modules/deploy/utils/vercel-extended.js.map +1 -0
- package/dist/modules/plugin/commands/plugin-install.d.ts +3 -0
- package/dist/modules/plugin/commands/plugin-install.d.ts.map +1 -0
- package/dist/modules/plugin/commands/plugin-install.js +45 -0
- package/dist/modules/plugin/commands/plugin-install.js.map +1 -0
- package/dist/modules/plugin/errors/plugin-errors.d.ts +16 -0
- package/dist/modules/plugin/errors/plugin-errors.d.ts.map +1 -0
- package/dist/modules/plugin/errors/plugin-errors.js +39 -0
- package/dist/modules/plugin/errors/plugin-errors.js.map +1 -0
- package/dist/modules/plugin/index.d.ts +6 -0
- package/dist/modules/plugin/index.d.ts.map +1 -0
- package/dist/modules/plugin/index.js +9 -0
- package/dist/modules/plugin/index.js.map +1 -0
- package/dist/modules/plugin/lib/plugin-registry.d.ts +15 -0
- package/dist/modules/plugin/lib/plugin-registry.d.ts.map +1 -0
- package/dist/modules/plugin/lib/plugin-registry.js +47 -0
- package/dist/modules/plugin/lib/plugin-registry.js.map +1 -0
- package/dist/modules/plugin/services/plugin-svc.d.ts +10 -0
- package/dist/modules/plugin/services/plugin-svc.d.ts.map +1 -0
- package/dist/modules/plugin/services/plugin-svc.js +44 -0
- package/dist/modules/plugin/services/plugin-svc.js.map +1 -0
- package/dist/modules/plugin/types/plugin-types.d.ts +19 -0
- package/dist/modules/plugin/types/plugin-types.d.ts.map +1 -0
- package/dist/modules/plugin/types/plugin-types.js +2 -0
- package/dist/modules/plugin/types/plugin-types.js.map +1 -0
- package/dist/modules/startup/commands/create-startup.d.ts +3 -0
- package/dist/modules/startup/commands/create-startup.d.ts.map +1 -0
- package/dist/modules/startup/commands/create-startup.js +43 -0
- package/dist/modules/startup/commands/create-startup.js.map +1 -0
- package/dist/modules/startup/errors/startup-errors.d.ts +13 -0
- package/dist/modules/startup/errors/startup-errors.d.ts.map +1 -0
- package/dist/modules/startup/errors/startup-errors.js +25 -0
- package/dist/modules/startup/errors/startup-errors.js.map +1 -0
- package/dist/modules/startup/index.d.ts +5 -0
- package/dist/modules/startup/index.d.ts.map +1 -0
- package/dist/modules/startup/index.js +7 -0
- package/dist/modules/startup/index.js.map +1 -0
- package/dist/modules/startup/services/startup-service.d.ts +7 -0
- package/dist/modules/startup/services/startup-service.d.ts.map +1 -0
- package/dist/modules/startup/services/startup-service.js +43 -0
- package/dist/modules/startup/services/startup-service.js.map +1 -0
- package/dist/modules/startup/types/startup-types.d.ts +8 -0
- package/dist/modules/startup/types/startup-types.d.ts.map +1 -0
- package/dist/modules/startup/types/startup-types.js +2 -0
- package/dist/modules/startup/types/startup-types.js.map +1 -0
- package/dist/modules/startup/utils/startup-validators.d.ts +8 -0
- package/dist/modules/startup/utils/startup-validators.d.ts.map +1 -0
- package/dist/modules/startup/utils/startup-validators.js +17 -0
- package/dist/modules/startup/utils/startup-validators.js.map +1 -0
- package/dist/modules/workspace/commands/init-workspace.d.ts +3 -0
- package/dist/modules/workspace/commands/init-workspace.d.ts.map +1 -0
- package/dist/modules/workspace/commands/init-workspace.js +54 -0
- package/dist/modules/workspace/commands/init-workspace.js.map +1 -0
- package/dist/modules/workspace/errors/workspace-errors.d.ts +10 -0
- package/dist/modules/workspace/errors/workspace-errors.d.ts.map +1 -0
- package/dist/modules/workspace/errors/workspace-errors.js +19 -0
- package/dist/modules/workspace/errors/workspace-errors.js.map +1 -0
- package/dist/modules/workspace/index.d.ts +5 -0
- package/dist/modules/workspace/index.d.ts.map +1 -0
- package/dist/modules/workspace/index.js +7 -0
- package/dist/modules/workspace/index.js.map +1 -0
- package/dist/modules/workspace/services/workspace-service.d.ts +6 -0
- package/dist/modules/workspace/services/workspace-service.d.ts.map +1 -0
- package/dist/modules/workspace/services/workspace-service.js +46 -0
- package/dist/modules/workspace/services/workspace-service.js.map +1 -0
- package/dist/modules/workspace/types/workspace-types.d.ts +8 -0
- package/dist/modules/workspace/types/workspace-types.d.ts.map +1 -0
- package/dist/modules/workspace/types/workspace-types.js +2 -0
- package/dist/modules/workspace/types/workspace-types.js.map +1 -0
- package/dist/modules/workspace/utils/workspace-validators.d.ts +8 -0
- package/dist/modules/workspace/utils/workspace-validators.d.ts.map +1 -0
- package/dist/modules/workspace/utils/workspace-validators.js +17 -0
- package/dist/modules/workspace/utils/workspace-validators.js.map +1 -0
- package/dist/plugins/theme/package.json +32 -0
- package/dist/plugins/theme/plugin.json +9 -0
- package/dist/plugins/theme/src/generator.ts +92 -0
- package/dist/plugins/theme/src/utils/config-modifier.ts +142 -0
- package/dist/plugins/theme/src/utils/css-modifier.ts +89 -0
- package/dist/plugins/theme/templates/app/theme-test/page.tsx +156 -0
- package/dist/plugins/theme/templates/src/modules/theme/README.md +209 -0
- package/dist/plugins/theme/templates/src/modules/theme/config/brand.css +23 -0
- package/dist/plugins/theme/tsconfig.json +14 -0
- package/dist/plugins/theme/tsup.config.ts +10 -0
- package/dist/templates/startup/apps/.gitkeep +8 -0
- package/dist/templates/templates/startup/apps/.gitkeep +8 -0
- package/dist/templates/templates/workspace/.eslintignore +7 -0
- package/dist/templates/templates/workspace/.eslintrc.js +38 -0
- package/dist/templates/templates/workspace/.husky/pre-push +24 -0
- package/dist/templates/templates/workspace/.launch77/workspace.json +3 -0
- package/dist/templates/templates/workspace/.lintstagedrc.json +4 -0
- package/dist/templates/templates/workspace/.prettierrc +9 -0
- package/dist/templates/templates/workspace/README.md +62 -0
- package/dist/templates/templates/workspace/app-templates/.gitkeep +1 -0
- package/dist/templates/templates/workspace/apps/.gitkeep +1 -0
- package/dist/templates/templates/workspace/libraries/.gitkeep +1 -0
- package/dist/templates/templates/workspace/package.json +31 -0
- package/dist/templates/templates/workspace/plugins/.gitkeep +1 -0
- package/dist/templates/templates/workspace/tsconfig.json +22 -0
- package/dist/templates/templates/workspace/turbo.json +25 -0
- package/dist/templates/workspace/.launch77/workspace.json +3 -0
- package/dist/templates/workspace/README.md +62 -0
- package/dist/templates/workspace/app-templates/.gitkeep +1 -0
- package/dist/templates/workspace/apps/.gitkeep +1 -0
- package/dist/templates/workspace/libraries/.gitkeep +1 -0
- package/dist/templates/workspace/package.json +21 -0
- package/dist/templates/workspace/plugins/.gitkeep +1 -0
- package/dist/templates/workspace/tsconfig.json +22 -0
- package/dist/templates/workspace/turbo.json +25 -0
- package/dist/utils/launch77-context.d.ts +16 -0
- package/dist/utils/launch77-context.d.ts.map +1 -0
- package/dist/utils/launch77-context.js +111 -0
- package/dist/utils/launch77-context.js.map +1 -0
- package/dist/utils/launch77-validation.d.ts +17 -0
- package/dist/utils/launch77-validation.d.ts.map +1 -0
- package/dist/utils/launch77-validation.js +44 -0
- package/dist/utils/launch77-validation.js.map +1 -0
- package/dist/utils/monorepo.d.ts +19 -0
- package/dist/utils/monorepo.d.ts.map +1 -0
- package/dist/utils/monorepo.js +100 -0
- package/dist/utils/monorepo.js.map +1 -0
- package/dist/utils/validation.d.ts +32 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +92 -0
- package/dist/utils/validation.js.map +1 -0
- package/dist/utils/version.d.ts +7 -0
- package/dist/utils/version.d.ts.map +1 -0
- package/dist/utils/version.js +16 -0
- package/dist/utils/version.js.map +1 -0
- package/launch77-cli-1.2.0.tgz +0 -0
- package/package.json +48 -0
- package/src/cli.ts +34 -0
- package/src/infrastructure/filesystem.ts +69 -0
- package/src/infrastructure/npm.ts +18 -0
- package/src/infrastructure/template-engine.ts +48 -0
- package/src/infrastructure/template-generator.ts +26 -0
- package/src/infrastructure/template.ts +66 -0
- package/src/modules/app/commands/create-app.ts +60 -0
- package/src/modules/app/commands/delete-app.ts +123 -0
- package/src/modules/app/commands/generate-manifest.ts +75 -0
- package/src/modules/app/commands/validate-manifest.ts +78 -0
- package/src/modules/app/errors/app-errors.ts +41 -0
- package/src/modules/app/index.ts +16 -0
- package/src/modules/app/lib/manifest-schema.ts +65 -0
- package/src/modules/app/services/app-svc.ts +115 -0
- package/src/modules/app/services/manifest-svc.ts +144 -0
- package/src/modules/app/types/app-types.ts +27 -0
- package/src/modules/catalog/commands/generate.ts +115 -0
- package/src/modules/catalog/commands/scan.ts +48 -0
- package/src/modules/catalog/config/catalog-config.test.ts +404 -0
- package/src/modules/catalog/config/catalog-config.ts +130 -0
- package/src/modules/catalog/index.ts +9 -0
- package/src/modules/catalog/parsers/typescript-parser.ts +93 -0
- package/src/modules/catalog/scanners/metadata-extractor.ts +134 -0
- package/src/modules/catalog/scanners/metadata-validator.ts +67 -0
- package/src/modules/catalog/scanners/ui-component-scanner.ts +185 -0
- package/src/modules/catalog/schemas/catalog-ui-components.schema.json +145 -0
- package/src/modules/catalog/services/catalog-generator-svc.test.ts +233 -0
- package/src/modules/catalog/services/catalog-generator-svc.ts +124 -0
- package/src/modules/catalog/services/catalog-svc.ts +222 -0
- package/src/modules/catalog/types/catalog-types.ts +149 -0
- package/src/modules/catalog/utils/examples-generator.ts +68 -0
- package/src/modules/catalog/utils/quality-reporter.ts +76 -0
- package/src/modules/catalog/validators/component-name-validator.test.ts +233 -0
- package/src/modules/catalog/validators/component-name-validator.ts +43 -0
- package/src/modules/deploy/commands/deploy-init-action.ts +247 -0
- package/src/modules/deploy/commands/deploy-init.ts +19 -0
- package/src/modules/deploy/commands/deploy-logs-action.ts +135 -0
- package/src/modules/deploy/commands/deploy-logs.ts +20 -0
- package/src/modules/deploy/commands/deploy-status-action.ts +175 -0
- package/src/modules/deploy/commands/deploy-status.ts +16 -0
- package/src/modules/deploy/index.ts +7 -0
- package/src/modules/deploy/services/deploy-svc.ts +31 -0
- package/src/modules/deploy/utils/vercel-extended.ts +286 -0
- package/src/modules/plugin/commands/plugin-install.ts +51 -0
- package/src/modules/plugin/errors/plugin-errors.ts +44 -0
- package/src/modules/plugin/index.ts +14 -0
- package/src/modules/plugin/lib/launch77-workspace.code-workspace +14 -0
- package/src/modules/plugin/lib/plugin-registry.ts +59 -0
- package/src/modules/plugin/services/plugin-svc.ts +53 -0
- package/src/modules/plugin/types/plugin-types.ts +21 -0
- package/src/modules/startup/commands/create-startup.ts +53 -0
- package/src/modules/startup/errors/startup-errors.ts +23 -0
- package/src/modules/startup/index.ts +11 -0
- package/src/modules/startup/services/startup-service.ts +57 -0
- package/src/modules/startup/types/startup-types.ts +8 -0
- package/src/modules/startup/utils/startup-validators.ts +19 -0
- package/src/modules/workspace/commands/init-workspace.ts +63 -0
- package/src/modules/workspace/errors/workspace-errors.ts +16 -0
- package/src/modules/workspace/index.ts +11 -0
- package/src/modules/workspace/services/workspace-service.ts +59 -0
- package/src/modules/workspace/types/workspace-types.ts +8 -0
- package/src/modules/workspace/utils/workspace-validators.ts +19 -0
- package/src/utils/launch77-context.ts +152 -0
- package/src/utils/launch77-validation.ts +59 -0
- package/src/utils/monorepo.ts +137 -0
- package/src/utils/validation.ts +117 -0
- package/src/utils/version.ts +16 -0
- package/templates/startup/apps/.gitkeep +8 -0
- package/templates/workspace/.eslintignore +7 -0
- package/templates/workspace/.eslintrc.js +38 -0
- package/templates/workspace/.husky/pre-push +24 -0
- package/templates/workspace/.launch77/workspace.json +3 -0
- package/templates/workspace/.lintstagedrc.json +4 -0
- package/templates/workspace/.prettierrc +9 -0
- package/templates/workspace/README.md +62 -0
- package/templates/workspace/app-templates/.gitkeep +1 -0
- package/templates/workspace/apps/.gitkeep +1 -0
- package/templates/workspace/libraries/.gitkeep +1 -0
- package/templates/workspace/package.json +31 -0
- package/templates/workspace/plugins/.gitkeep +1 -0
- package/templates/workspace/tsconfig.json +22 -0
- package/templates/workspace/turbo.json +25 -0
- package/tsconfig.json +23 -0
package/.eslintrc.json
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
# CI/CD Build Environment Variables
|
|
2
|
+
# These values allow Next.js to build and prerender static pages in CI
|
|
3
|
+
# Real production values are set in deployment platform (Vercel)
|
|
4
|
+
NEXT_PUBLIC_SITE_URL=http://localhost:3000
|
|
5
|
+
NEXT_PUBLIC_API_URL=http://localhost:4000/graphql
|
|
6
|
+
NEXT_PUBLIC_GTM_ID=
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# {{appName}}
|
|
2
|
+
|
|
3
|
+
{{#if startupName}}Part of the {{startupName}} startup{{/if}}
|
|
4
|
+
|
|
5
|
+
A web application built with the Launch77 Platform.
|
|
6
|
+
|
|
7
|
+
## Getting Started
|
|
8
|
+
|
|
9
|
+
1. Install dependencies (from monorepo root):
|
|
10
|
+
```bash
|
|
11
|
+
npm install
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
2. Set up environment variables:
|
|
15
|
+
```bash
|
|
16
|
+
cp .env.example .env.local
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
3. Run the development server:
|
|
20
|
+
```bash
|
|
21
|
+
npm run dev
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Open [http://localhost:{{port}}](http://localhost:{{port}}) in your browser.
|
|
25
|
+
|
|
26
|
+
## Available Scripts
|
|
27
|
+
|
|
28
|
+
- `npm run dev` - Start development server
|
|
29
|
+
- `npm run build` - Build for production
|
|
30
|
+
- `npm run start` - Start production server
|
|
31
|
+
- `npm run lint` - Run ESLint
|
|
32
|
+
- `npm run typecheck` - Run TypeScript type checking
|
|
33
|
+
|
|
34
|
+
## Launch77 Packages
|
|
35
|
+
|
|
36
|
+
This app uses the following Launch77 platform packages:
|
|
37
|
+
|
|
38
|
+
- **@launch77/ui** - Shared component library
|
|
39
|
+
- **@launch77/theme** - Tailwind preset and design tokens
|
|
40
|
+
|
|
41
|
+
## Project Structure
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
app/
|
|
45
|
+
├── layout.tsx # Root layout
|
|
46
|
+
├── page.tsx # Homepage
|
|
47
|
+
├── dashboard/ # Example dashboard page
|
|
48
|
+
├── about/ # About page
|
|
49
|
+
└── globals.css # Global styles (imports @launch77/theme)
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Next Steps
|
|
53
|
+
|
|
54
|
+
1. **Add Authentication**: Implement login/register pages and protect routes
|
|
55
|
+
2. **Connect to API**: Set up API client to connect to your backend
|
|
56
|
+
3. **Add Features**: Build out your application features
|
|
57
|
+
|
|
58
|
+
## Using UI Components
|
|
59
|
+
|
|
60
|
+
```tsx
|
|
61
|
+
import { Button, Card, Input } from '@launch77/ui'
|
|
62
|
+
|
|
63
|
+
export default function MyPage() {
|
|
64
|
+
return (
|
|
65
|
+
<Card>
|
|
66
|
+
<Input placeholder="Enter text" />
|
|
67
|
+
<Button>Submit</Button>
|
|
68
|
+
</Card>
|
|
69
|
+
)
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## Customizing Theme
|
|
74
|
+
|
|
75
|
+
Extend `tailwind.config.ts` for theme customization.
|
|
76
|
+
|
|
77
|
+
## Learn More
|
|
78
|
+
|
|
79
|
+
- [Next.js Documentation](https://nextjs.org/docs)
|
|
80
|
+
- [Launch77 Platform Docs](../../README.md)
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import Link from 'next/link'
|
|
2
|
+
|
|
3
|
+
export default function AboutPage() {
|
|
4
|
+
return (
|
|
5
|
+
<div className="min-h-screen bg-gray-50">
|
|
6
|
+
<nav className="border-b border-gray-200">
|
|
7
|
+
<div className="max-w-7xl mx-auto px-4 py-4">
|
|
8
|
+
<div className="flex items-center justify-between">
|
|
9
|
+
<h1 className="text-xl font-bold text-gray-900">{{appName}}</h1>
|
|
10
|
+
<Link
|
|
11
|
+
href="/"
|
|
12
|
+
className="px-4 py-2 text-sm font-medium text-gray-700 hover:text-gray-900 hover:bg-gray-100 rounded-md transition-colors"
|
|
13
|
+
>
|
|
14
|
+
Home
|
|
15
|
+
</Link>
|
|
16
|
+
</div>
|
|
17
|
+
</div>
|
|
18
|
+
</nav>
|
|
19
|
+
|
|
20
|
+
<main className="max-w-3xl mx-auto px-4 py-16">
|
|
21
|
+
<h1 className="text-4xl font-bold text-gray-900 mb-4">
|
|
22
|
+
About {{appName}}
|
|
23
|
+
</h1>
|
|
24
|
+
<div className="prose prose-slate">
|
|
25
|
+
<p className="text-lg text-gray-600 mb-4">
|
|
26
|
+
This is a web application built with the Launch77 Platform.
|
|
27
|
+
</p>
|
|
28
|
+
<p className="text-gray-600 mb-4">
|
|
29
|
+
Launch77 provides a modern development environment with:
|
|
30
|
+
</p>
|
|
31
|
+
<ul className="list-disc list-inside text-gray-600 mb-4 space-y-2">
|
|
32
|
+
<li>Next.js for server-side rendering and routing</li>
|
|
33
|
+
<li>Tailwind CSS for styling</li>
|
|
34
|
+
<li>TypeScript for type safety</li>
|
|
35
|
+
<li>Plugin-based architecture for adding capabilities</li>
|
|
36
|
+
</ul>
|
|
37
|
+
</div>
|
|
38
|
+
</main>
|
|
39
|
+
</div>
|
|
40
|
+
)
|
|
41
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import Link from 'next/link'
|
|
2
|
+
|
|
3
|
+
export default function DashboardPage() {
|
|
4
|
+
return (
|
|
5
|
+
<div className="min-h-screen bg-gray-50">
|
|
6
|
+
<nav className="border-b border-gray-200">
|
|
7
|
+
<div className="max-w-7xl mx-auto px-4 py-4">
|
|
8
|
+
<div className="flex items-center justify-between">
|
|
9
|
+
<h1 className="text-xl font-bold text-gray-900">{{appName}}</h1>
|
|
10
|
+
<Link
|
|
11
|
+
href="/"
|
|
12
|
+
className="px-4 py-2 text-sm font-medium text-gray-700 hover:text-gray-900 hover:bg-gray-100 rounded-md transition-colors"
|
|
13
|
+
>
|
|
14
|
+
Home
|
|
15
|
+
</Link>
|
|
16
|
+
</div>
|
|
17
|
+
</div>
|
|
18
|
+
</nav>
|
|
19
|
+
|
|
20
|
+
<main className="max-w-7xl mx-auto px-4 py-8">
|
|
21
|
+
<div className="mb-8">
|
|
22
|
+
<h2 className="text-3xl font-bold text-gray-900 mb-2">Dashboard</h2>
|
|
23
|
+
<p className="text-gray-600">
|
|
24
|
+
This is a protected page example. Add your authentication logic here.
|
|
25
|
+
</p>
|
|
26
|
+
</div>
|
|
27
|
+
|
|
28
|
+
<div className="grid gap-4 md:grid-cols-2 lg:grid-cols-3">
|
|
29
|
+
<div className="rounded-lg border border-gray-200 bg-white p-6">
|
|
30
|
+
<h3 className="font-semibold text-gray-900 mb-2">Card 1</h3>
|
|
31
|
+
<p className="text-sm text-gray-600">
|
|
32
|
+
Example content for your dashboard
|
|
33
|
+
</p>
|
|
34
|
+
</div>
|
|
35
|
+
<div className="rounded-lg border border-gray-200 bg-white p-6">
|
|
36
|
+
<h3 className="font-semibold text-gray-900 mb-2">Card 2</h3>
|
|
37
|
+
<p className="text-sm text-gray-600">
|
|
38
|
+
Example content for your dashboard
|
|
39
|
+
</p>
|
|
40
|
+
</div>
|
|
41
|
+
<div className="rounded-lg border border-gray-200 bg-white p-6">
|
|
42
|
+
<h3 className="font-semibold text-gray-900 mb-2">Card 3</h3>
|
|
43
|
+
<p className="text-sm text-gray-600">
|
|
44
|
+
Example content for your dashboard
|
|
45
|
+
</p>
|
|
46
|
+
</div>
|
|
47
|
+
</div>
|
|
48
|
+
</main>
|
|
49
|
+
</div>
|
|
50
|
+
)
|
|
51
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
@tailwind base;
|
|
2
|
+
@tailwind components;
|
|
3
|
+
@tailwind utilities;
|
|
4
|
+
|
|
5
|
+
/* Base resets and accessibility styles */
|
|
6
|
+
@layer base {
|
|
7
|
+
html {
|
|
8
|
+
scroll-behavior: smooth;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
body {
|
|
12
|
+
@apply antialiased;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/* Focus styles for accessibility */
|
|
16
|
+
:focus-visible {
|
|
17
|
+
@apply outline-none ring-2 ring-blue-500 ring-offset-2;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/* Reduced motion support */
|
|
21
|
+
@media (prefers-reduced-motion: reduce) {
|
|
22
|
+
*,
|
|
23
|
+
*::before,
|
|
24
|
+
*::after {
|
|
25
|
+
animation-duration: 0.01ms !important;
|
|
26
|
+
animation-iteration-count: 1 !important;
|
|
27
|
+
transition-duration: 0.01ms !important;
|
|
28
|
+
scroll-behavior: auto !important;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { Metadata } from 'next'
|
|
2
|
+
import { Inter } from 'next/font/google'
|
|
3
|
+
|
|
4
|
+
import './globals.css'
|
|
5
|
+
|
|
6
|
+
const inter = Inter({ subsets: ['latin'] })
|
|
7
|
+
|
|
8
|
+
export const metadata: Metadata = {
|
|
9
|
+
title: '{{appName}}',
|
|
10
|
+
description: '{{appName}} - Built with Launch77 Platform',
|
|
11
|
+
icons: {
|
|
12
|
+
icon: '/favicon.ico',
|
|
13
|
+
},
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export default function RootLayout({
|
|
17
|
+
children,
|
|
18
|
+
}: {
|
|
19
|
+
children: React.ReactNode
|
|
20
|
+
}) {
|
|
21
|
+
return (
|
|
22
|
+
<html lang="en" className={`${inter.className} scroll-smooth`}>
|
|
23
|
+
<body>{children}</body>
|
|
24
|
+
</html>
|
|
25
|
+
)
|
|
26
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import Link from 'next/link'
|
|
2
|
+
|
|
3
|
+
export default function HomePage() {
|
|
4
|
+
return (
|
|
5
|
+
<main className="min-h-screen flex items-center justify-center bg-gray-50">
|
|
6
|
+
<div className="max-w-2xl mx-auto px-4 py-16 text-center">
|
|
7
|
+
<h1 className="text-4xl font-bold text-gray-900 mb-4">
|
|
8
|
+
Welcome to {{appName}}
|
|
9
|
+
</h1>
|
|
10
|
+
<p className="text-lg text-gray-600 mb-8">
|
|
11
|
+
Built with the Launch77 Platform
|
|
12
|
+
</p>
|
|
13
|
+
<div className="flex gap-4 justify-center">
|
|
14
|
+
<Link
|
|
15
|
+
href="/dashboard"
|
|
16
|
+
className="inline-flex items-center justify-center px-6 py-3 text-base font-medium text-white bg-blue-600 hover:bg-blue-700 rounded-lg transition-colors"
|
|
17
|
+
>
|
|
18
|
+
Go to Dashboard
|
|
19
|
+
</Link>
|
|
20
|
+
<Link
|
|
21
|
+
href="/about"
|
|
22
|
+
className="inline-flex items-center justify-center px-6 py-3 text-base font-medium text-gray-700 bg-white hover:bg-gray-50 border border-gray-300 rounded-lg transition-colors"
|
|
23
|
+
>
|
|
24
|
+
Learn More
|
|
25
|
+
</Link>
|
|
26
|
+
</div>
|
|
27
|
+
</div>
|
|
28
|
+
</main>
|
|
29
|
+
)
|
|
30
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
// Load .env.ci in CI environments for build-time placeholder variables
|
|
2
|
+
// This allows static page generation to succeed without real env values
|
|
3
|
+
// Real values come from deployment platform (Vercel/Railway)
|
|
4
|
+
if (process.env.CI === 'true') {
|
|
5
|
+
const path = require('path')
|
|
6
|
+
require('dotenv').config({ path: path.join(__dirname, '.env.ci') })
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
/** @type {import('next').NextConfig} */
|
|
10
|
+
const nextConfig = {
|
|
11
|
+
reactStrictMode: true,
|
|
12
|
+
images: {
|
|
13
|
+
formats: ['image/avif', 'image/webp'],
|
|
14
|
+
deviceSizes: [640, 750, 1080, 1200, 1920],
|
|
15
|
+
imageSizes: [16, 32, 48, 64, 96, 128, 256],
|
|
16
|
+
minimumCacheTTL: 60 * 60 * 24 * 365, // 1 year
|
|
17
|
+
},
|
|
18
|
+
compress: true,
|
|
19
|
+
poweredByHeader: false,
|
|
20
|
+
swcMinify: true,
|
|
21
|
+
compiler: {
|
|
22
|
+
removeConsole: process.env.NODE_ENV === 'production',
|
|
23
|
+
},
|
|
24
|
+
headers: async () => [
|
|
25
|
+
{
|
|
26
|
+
source: '/:path*',
|
|
27
|
+
headers: [
|
|
28
|
+
{
|
|
29
|
+
key: 'X-DNS-Prefetch-Control',
|
|
30
|
+
value: 'on',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
key: 'X-Content-Type-Options',
|
|
34
|
+
value: 'nosniff',
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
key: 'X-Frame-Options',
|
|
38
|
+
value: 'SAMEORIGIN',
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
key: 'X-XSS-Protection',
|
|
42
|
+
value: '1; mode=block',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
key: 'Referrer-Policy',
|
|
46
|
+
value: 'origin-when-cross-origin',
|
|
47
|
+
},
|
|
48
|
+
],
|
|
49
|
+
},
|
|
50
|
+
// Cache static assets aggressively
|
|
51
|
+
{
|
|
52
|
+
source: '/(.*).jpg',
|
|
53
|
+
headers: [
|
|
54
|
+
{
|
|
55
|
+
key: 'Cache-Control',
|
|
56
|
+
value: 'public, max-age=31536000, immutable',
|
|
57
|
+
},
|
|
58
|
+
],
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
source: '/(.*).png',
|
|
62
|
+
headers: [
|
|
63
|
+
{
|
|
64
|
+
key: 'Cache-Control',
|
|
65
|
+
value: 'public, max-age=31536000, immutable',
|
|
66
|
+
},
|
|
67
|
+
],
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
source: '/(.*).svg',
|
|
71
|
+
headers: [
|
|
72
|
+
{
|
|
73
|
+
key: 'Cache-Control',
|
|
74
|
+
value: 'public, max-age=31536000, immutable',
|
|
75
|
+
},
|
|
76
|
+
],
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
source: '/(.*).webp',
|
|
80
|
+
headers: [
|
|
81
|
+
{
|
|
82
|
+
key: 'Cache-Control',
|
|
83
|
+
value: 'public, max-age=31536000, immutable',
|
|
84
|
+
},
|
|
85
|
+
],
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
source: '/_next/static/(.*)',
|
|
89
|
+
headers: [
|
|
90
|
+
{
|
|
91
|
+
key: 'Cache-Control',
|
|
92
|
+
value: 'public, max-age=31536000, immutable',
|
|
93
|
+
},
|
|
94
|
+
],
|
|
95
|
+
},
|
|
96
|
+
],
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
module.exports = nextConfig
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "{{#if startupName}}@{{startupName}}/{{appName}}{{else}}{{appName}}{{/if}}",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"private": true,
|
|
5
|
+
"description": "{{appName}}{{#if startupName}} ({{startupName}}){{/if}} - Built with Launch77 Platform",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"dev": "next dev{{#if port}} -p {{port}}{{/if}}",
|
|
8
|
+
"build": "next build",
|
|
9
|
+
"start": "next start{{#if port}} -p {{port}}{{/if}}",
|
|
10
|
+
"test": "echo \"No tests configured\" && exit 0",
|
|
11
|
+
"lint": "next lint",
|
|
12
|
+
"typecheck": "tsc --noEmit"
|
|
13
|
+
},
|
|
14
|
+
"dependencies": {
|
|
15
|
+
"next": "^14.2.0",
|
|
16
|
+
"react": "^18.3.1",
|
|
17
|
+
"react-dom": "^18.3.1"
|
|
18
|
+
},
|
|
19
|
+
"devDependencies": {
|
|
20
|
+
"@types/node": "^20.0.0",
|
|
21
|
+
"@types/react": "^18.2.79",
|
|
22
|
+
"@types/react-dom": "^18.2.25",
|
|
23
|
+
"autoprefixer": "^10.4.21",
|
|
24
|
+
"eslint": "^8.56.0",
|
|
25
|
+
"eslint-config-next": "^14.2.0",
|
|
26
|
+
"postcss": "^8.5.6",
|
|
27
|
+
"tailwindcss": "^3.4.17",
|
|
28
|
+
"typescript": "^5.3.0"
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { Config } from 'tailwindcss'
|
|
2
|
+
|
|
3
|
+
const config: Config = {
|
|
4
|
+
content: [
|
|
5
|
+
'./app/**/*.{js,ts,jsx,tsx,mdx}',
|
|
6
|
+
'./components/**/*.{js,ts,jsx,tsx,mdx}',
|
|
7
|
+
'./lib/**/*.{js,ts,jsx,tsx,mdx}',
|
|
8
|
+
],
|
|
9
|
+
theme: {
|
|
10
|
+
extend: {
|
|
11
|
+
// Add your custom theme extensions here
|
|
12
|
+
// Example:
|
|
13
|
+
// colors: {
|
|
14
|
+
// brand: {
|
|
15
|
+
// 500: '#FF5816',
|
|
16
|
+
// 600: '#F03D00',
|
|
17
|
+
// },
|
|
18
|
+
// },
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
plugins: [],
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export default config
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"extends": "../../tsconfig.json",
|
|
3
|
+
"compilerOptions": {
|
|
4
|
+
"target": "ES2020",
|
|
5
|
+
"lib": ["dom", "dom.iterable", "esnext"],
|
|
6
|
+
"allowJs": true,
|
|
7
|
+
"skipLibCheck": true,
|
|
8
|
+
"strict": true,
|
|
9
|
+
"noEmit": true,
|
|
10
|
+
"esModuleInterop": true,
|
|
11
|
+
"module": "esnext",
|
|
12
|
+
"moduleResolution": "bundler",
|
|
13
|
+
"resolveJsonModule": true,
|
|
14
|
+
"isolatedModules": true,
|
|
15
|
+
"jsx": "preserve",
|
|
16
|
+
"incremental": true,
|
|
17
|
+
"plugins": [
|
|
18
|
+
{
|
|
19
|
+
"name": "next"
|
|
20
|
+
}
|
|
21
|
+
],
|
|
22
|
+
"paths": {
|
|
23
|
+
"@/*": ["./*"]
|
|
24
|
+
},
|
|
25
|
+
"baseUrl": "."
|
|
26
|
+
},
|
|
27
|
+
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
|
|
28
|
+
"exclude": ["node_modules"]
|
|
29
|
+
}
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
|
package/dist/cli.js
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { Command } from 'commander';
|
|
3
|
+
import { createAppCommand, deleteAppCommand, generateManifestCommand, validateManifestCommand } from './modules/app/index.js';
|
|
4
|
+
import { scanCommand, createGenerateCommand } from './modules/catalog/index.js';
|
|
5
|
+
import { deployInitCommand, deployLogsCommand, deployStatusCommand } from './modules/deploy/index.js';
|
|
6
|
+
import { pluginInstallCommand } from './modules/plugin/index.js';
|
|
7
|
+
import { createStartupCommand } from './modules/startup/index.js';
|
|
8
|
+
import { getPackageVersion } from './utils/version.js';
|
|
9
|
+
import { initWorkspaceCommand } from './modules/workspace/index.js';
|
|
10
|
+
const program = new Command()
|
|
11
|
+
.name('launch77')
|
|
12
|
+
.description('Launch77 Platform CLI')
|
|
13
|
+
.version(getPackageVersion(import.meta.url));
|
|
14
|
+
// Register module commands
|
|
15
|
+
program.addCommand(initWorkspaceCommand());
|
|
16
|
+
program.addCommand(createStartupCommand());
|
|
17
|
+
program.addCommand(createAppCommand());
|
|
18
|
+
program.addCommand(deleteAppCommand());
|
|
19
|
+
program.addCommand(generateManifestCommand());
|
|
20
|
+
program.addCommand(validateManifestCommand());
|
|
21
|
+
program.addCommand(pluginInstallCommand());
|
|
22
|
+
program.addCommand(scanCommand());
|
|
23
|
+
program.addCommand(createGenerateCommand());
|
|
24
|
+
// Deploy commands
|
|
25
|
+
program.addCommand(deployInitCommand());
|
|
26
|
+
program.addCommand(deployStatusCommand());
|
|
27
|
+
program.addCommand(deployLogsCommand());
|
|
28
|
+
program.parse();
|
|
29
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAA;AAC7H,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAC/E,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AACrG,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAEnE,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE;KAC1B,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CAAC,uBAAuB,CAAC;KACpC,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;AAE9C,2BAA2B;AAC3B,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAA;AAC1C,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAA;AAC1C,OAAO,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAA;AACtC,OAAO,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAA;AACtC,OAAO,CAAC,UAAU,CAAC,uBAAuB,EAAE,CAAC,CAAA;AAC7C,OAAO,CAAC,UAAU,CAAC,uBAAuB,EAAE,CAAC,CAAA;AAC7C,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAA;AAC1C,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAA;AACjC,OAAO,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,CAAA;AAE3C,kBAAkB;AAClB,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAA;AACvC,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAA;AACzC,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAA;AAEvC,OAAO,CAAC,KAAK,EAAE,CAAA"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Check if a file or directory exists
|
|
3
|
+
*/
|
|
4
|
+
export declare function exists(path: string): Promise<boolean>;
|
|
5
|
+
/**
|
|
6
|
+
* Ensure a directory exists, creating it if necessary
|
|
7
|
+
*/
|
|
8
|
+
export declare function ensureDir(path: string): Promise<void>;
|
|
9
|
+
/**
|
|
10
|
+
* Write a file with content
|
|
11
|
+
*/
|
|
12
|
+
export declare function writeFile(path: string, content: string): Promise<void>;
|
|
13
|
+
/**
|
|
14
|
+
* Write JSON to a file with formatting
|
|
15
|
+
*/
|
|
16
|
+
export declare function writeJSON(path: string, data: unknown, spaces?: number): Promise<void>;
|
|
17
|
+
/**
|
|
18
|
+
* Read a file's content
|
|
19
|
+
*/
|
|
20
|
+
export declare function readFile(path: string): Promise<string>;
|
|
21
|
+
/**
|
|
22
|
+
* Read JSON from a file
|
|
23
|
+
*/
|
|
24
|
+
export declare function readJSON<T = unknown>(path: string): Promise<T>;
|
|
25
|
+
/**
|
|
26
|
+
* Copy a file or directory
|
|
27
|
+
*/
|
|
28
|
+
export declare function copy(src: string, dest: string): Promise<void>;
|
|
29
|
+
/**
|
|
30
|
+
* Read directory contents
|
|
31
|
+
*/
|
|
32
|
+
export declare function readdir(path: string): Promise<string[]>;
|
|
33
|
+
/**
|
|
34
|
+
* Read directory with file types
|
|
35
|
+
*/
|
|
36
|
+
export declare function readdirWithTypes(path: string): Promise<Array<{
|
|
37
|
+
name: string;
|
|
38
|
+
isDirectory: boolean;
|
|
39
|
+
isFile: boolean;
|
|
40
|
+
}>>;
|
|
41
|
+
//# sourceMappingURL=filesystem.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filesystem.d.ts","sourceRoot":"","sources":["../../src/infrastructure/filesystem.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAE3D;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE3D;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE5E;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,SAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAEtF;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAE5D;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAEpE;AAED;;GAEG;AACH,wBAAsB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEnE;AAED;;GAEG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAE7D;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC,CAO5H"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import fs from 'fs-extra';
|
|
2
|
+
/**
|
|
3
|
+
* Check if a file or directory exists
|
|
4
|
+
*/
|
|
5
|
+
export async function exists(path) {
|
|
6
|
+
return fs.pathExists(path);
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Ensure a directory exists, creating it if necessary
|
|
10
|
+
*/
|
|
11
|
+
export async function ensureDir(path) {
|
|
12
|
+
await fs.ensureDir(path);
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Write a file with content
|
|
16
|
+
*/
|
|
17
|
+
export async function writeFile(path, content) {
|
|
18
|
+
await fs.writeFile(path, content, 'utf-8');
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Write JSON to a file with formatting
|
|
22
|
+
*/
|
|
23
|
+
export async function writeJSON(path, data, spaces = 2) {
|
|
24
|
+
await fs.writeJSON(path, data, { spaces });
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Read a file's content
|
|
28
|
+
*/
|
|
29
|
+
export async function readFile(path) {
|
|
30
|
+
return fs.readFile(path, 'utf-8');
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Read JSON from a file
|
|
34
|
+
*/
|
|
35
|
+
export async function readJSON(path) {
|
|
36
|
+
return fs.readJSON(path);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Copy a file or directory
|
|
40
|
+
*/
|
|
41
|
+
export async function copy(src, dest) {
|
|
42
|
+
await fs.copy(src, dest);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Read directory contents
|
|
46
|
+
*/
|
|
47
|
+
export async function readdir(path) {
|
|
48
|
+
return fs.readdir(path);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Read directory with file types
|
|
52
|
+
*/
|
|
53
|
+
export async function readdirWithTypes(path) {
|
|
54
|
+
const entries = await fs.readdir(path, { withFileTypes: true });
|
|
55
|
+
return entries.map((entry) => ({
|
|
56
|
+
name: entry.name,
|
|
57
|
+
isDirectory: entry.isDirectory(),
|
|
58
|
+
isFile: entry.isFile(),
|
|
59
|
+
}));
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=filesystem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filesystem.js","sourceRoot":"","sources":["../../src/infrastructure/filesystem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAA;AAEzB;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAY;IACvC,OAAO,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;AAC5B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAY;IAC1C,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAY,EAAE,OAAe;IAC3D,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;AAC5C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAY,EAAE,IAAa,EAAE,MAAM,GAAG,CAAC;IACrE,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;AAC5C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAY;IACzC,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;AACnC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAc,IAAY;IACtD,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,GAAW,EAAE,IAAY;IAClD,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAY;IACxC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAY;IACjD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;IAC/D,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC7B,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE;QAChC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE;KACvB,CAAC,CAAC,CAAA;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"npm.d.ts","sourceRoot":"","sources":["../../src/infrastructure/npm.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAK9D;AAED;;GAEG;AACH,wBAAsB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAExD"}
|