@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
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import Link from 'next/link'
|
|
2
|
+
|
|
3
|
+
export default function ThemeTestPage() {
|
|
4
|
+
return (
|
|
5
|
+
<main className="min-h-screen bg-background p-8">
|
|
6
|
+
<div className="max-w-4xl mx-auto space-y-8">
|
|
7
|
+
{/* Header */}
|
|
8
|
+
<div className="space-y-2">
|
|
9
|
+
<h1 className="text-4xl font-bold text-foreground">
|
|
10
|
+
Theme Test Page
|
|
11
|
+
</h1>
|
|
12
|
+
<p className="text-muted-foreground">
|
|
13
|
+
Test your theme colors and see changes in real-time
|
|
14
|
+
</p>
|
|
15
|
+
</div>
|
|
16
|
+
|
|
17
|
+
{/* Instructions */}
|
|
18
|
+
<div className="bg-card border border-border rounded-lg p-6 space-y-4">
|
|
19
|
+
<h2 className="text-2xl font-semibold text-card-foreground">
|
|
20
|
+
How to Test Your Theme
|
|
21
|
+
</h2>
|
|
22
|
+
<ol className="list-decimal list-inside space-y-2 text-card-foreground">
|
|
23
|
+
<li>Open <code className="bg-muted px-2 py-1 rounded text-sm">app/brand.css</code></li>
|
|
24
|
+
<li>Uncomment and change the color values (HSL format)</li>
|
|
25
|
+
<li>Save the file and watch this page update automatically</li>
|
|
26
|
+
</ol>
|
|
27
|
+
<p className="text-sm text-muted-foreground">
|
|
28
|
+
Example: Change <code className="bg-muted px-2 py-1 rounded">--color-primary</code> to <code className="bg-muted px-2 py-1 rounded">270 91% 65%</code> for purple
|
|
29
|
+
</p>
|
|
30
|
+
</div>
|
|
31
|
+
|
|
32
|
+
{/* Color Swatches */}
|
|
33
|
+
<div className="space-y-4">
|
|
34
|
+
<h2 className="text-2xl font-semibold text-foreground">
|
|
35
|
+
Theme Colors
|
|
36
|
+
</h2>
|
|
37
|
+
<div className="grid grid-cols-2 md:grid-cols-3 gap-4">
|
|
38
|
+
<div className="space-y-2">
|
|
39
|
+
<div className="h-24 bg-primary rounded-lg flex items-center justify-center">
|
|
40
|
+
<span className="text-primary-foreground font-semibold">Primary</span>
|
|
41
|
+
</div>
|
|
42
|
+
<p className="text-sm text-muted-foreground">--color-primary</p>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
<div className="space-y-2">
|
|
46
|
+
<div className="h-24 bg-secondary rounded-lg flex items-center justify-center">
|
|
47
|
+
<span className="text-secondary-foreground font-semibold">Secondary</span>
|
|
48
|
+
</div>
|
|
49
|
+
<p className="text-sm text-muted-foreground">--color-secondary</p>
|
|
50
|
+
</div>
|
|
51
|
+
|
|
52
|
+
<div className="space-y-2">
|
|
53
|
+
<div className="h-24 bg-accent rounded-lg flex items-center justify-center">
|
|
54
|
+
<span className="text-accent-foreground font-semibold">Accent</span>
|
|
55
|
+
</div>
|
|
56
|
+
<p className="text-sm text-muted-foreground">--color-accent</p>
|
|
57
|
+
</div>
|
|
58
|
+
|
|
59
|
+
<div className="space-y-2">
|
|
60
|
+
<div className="h-24 bg-muted rounded-lg flex items-center justify-center">
|
|
61
|
+
<span className="text-muted-foreground font-semibold">Muted</span>
|
|
62
|
+
</div>
|
|
63
|
+
<p className="text-sm text-muted-foreground">--color-muted</p>
|
|
64
|
+
</div>
|
|
65
|
+
|
|
66
|
+
<div className="space-y-2">
|
|
67
|
+
<div className="h-24 bg-card border border-border rounded-lg flex items-center justify-center">
|
|
68
|
+
<span className="text-card-foreground font-semibold">Card</span>
|
|
69
|
+
</div>
|
|
70
|
+
<p className="text-sm text-muted-foreground">--color-card</p>
|
|
71
|
+
</div>
|
|
72
|
+
|
|
73
|
+
<div className="space-y-2">
|
|
74
|
+
<div className="h-24 bg-destructive rounded-lg flex items-center justify-center">
|
|
75
|
+
<span className="text-destructive-foreground font-semibold">Destructive</span>
|
|
76
|
+
</div>
|
|
77
|
+
<p className="text-sm text-muted-foreground">--color-destructive</p>
|
|
78
|
+
</div>
|
|
79
|
+
</div>
|
|
80
|
+
</div>
|
|
81
|
+
|
|
82
|
+
{/* Interactive Components */}
|
|
83
|
+
<div className="space-y-4">
|
|
84
|
+
<h2 className="text-2xl font-semibold text-foreground">
|
|
85
|
+
Component Examples
|
|
86
|
+
</h2>
|
|
87
|
+
|
|
88
|
+
{/* Buttons */}
|
|
89
|
+
<div className="space-y-3">
|
|
90
|
+
<h3 className="text-lg font-medium text-foreground">Buttons</h3>
|
|
91
|
+
<div className="flex flex-wrap gap-3">
|
|
92
|
+
<button className="px-6 py-3 bg-primary text-primary-foreground rounded-lg hover:opacity-90 transition-opacity font-medium">
|
|
93
|
+
Primary Button
|
|
94
|
+
</button>
|
|
95
|
+
<button className="px-6 py-3 bg-secondary text-secondary-foreground rounded-lg hover:opacity-90 transition-opacity font-medium">
|
|
96
|
+
Secondary Button
|
|
97
|
+
</button>
|
|
98
|
+
<button className="px-6 py-3 bg-accent text-accent-foreground rounded-lg hover:opacity-90 transition-opacity font-medium">
|
|
99
|
+
Accent Button
|
|
100
|
+
</button>
|
|
101
|
+
<button className="px-6 py-3 bg-destructive text-destructive-foreground rounded-lg hover:opacity-90 transition-opacity font-medium">
|
|
102
|
+
Destructive Button
|
|
103
|
+
</button>
|
|
104
|
+
</div>
|
|
105
|
+
</div>
|
|
106
|
+
|
|
107
|
+
{/* Cards */}
|
|
108
|
+
<div className="space-y-3">
|
|
109
|
+
<h3 className="text-lg font-medium text-foreground">Cards</h3>
|
|
110
|
+
<div className="grid md:grid-cols-2 gap-4">
|
|
111
|
+
<div className="bg-card border border-border rounded-lg p-6 space-y-2">
|
|
112
|
+
<h4 className="font-semibold text-card-foreground">Card Title</h4>
|
|
113
|
+
<p className="text-muted-foreground">
|
|
114
|
+
This card uses the card background and border colors from your theme.
|
|
115
|
+
</p>
|
|
116
|
+
</div>
|
|
117
|
+
<div className="bg-muted rounded-lg p-6 space-y-2">
|
|
118
|
+
<h4 className="font-semibold text-foreground">Muted Card</h4>
|
|
119
|
+
<p className="text-muted-foreground">
|
|
120
|
+
This card uses the muted background color for a subtle effect.
|
|
121
|
+
</p>
|
|
122
|
+
</div>
|
|
123
|
+
</div>
|
|
124
|
+
</div>
|
|
125
|
+
|
|
126
|
+
{/* Form Elements */}
|
|
127
|
+
<div className="space-y-3">
|
|
128
|
+
<h3 className="text-lg font-medium text-foreground">Form Elements</h3>
|
|
129
|
+
<div className="space-y-3 max-w-md">
|
|
130
|
+
<input
|
|
131
|
+
type="text"
|
|
132
|
+
placeholder="Input with border color"
|
|
133
|
+
className="w-full px-4 py-2 bg-background border border-input rounded-lg focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:ring-offset-background"
|
|
134
|
+
/>
|
|
135
|
+
<textarea
|
|
136
|
+
placeholder="Textarea with theme colors"
|
|
137
|
+
rows={3}
|
|
138
|
+
className="w-full px-4 py-2 bg-background border border-input rounded-lg focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:ring-offset-background"
|
|
139
|
+
/>
|
|
140
|
+
</div>
|
|
141
|
+
</div>
|
|
142
|
+
</div>
|
|
143
|
+
|
|
144
|
+
{/* Back Link */}
|
|
145
|
+
<div className="pt-8 border-t border-border">
|
|
146
|
+
<Link
|
|
147
|
+
href="/"
|
|
148
|
+
className="inline-flex items-center text-primary hover:underline"
|
|
149
|
+
>
|
|
150
|
+
← Back to Home
|
|
151
|
+
</Link>
|
|
152
|
+
</div>
|
|
153
|
+
</div>
|
|
154
|
+
</main>
|
|
155
|
+
)
|
|
156
|
+
}
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
# Theme Module
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
This module provides theme customization using the @launch77-shared/lib-theme Tailwind CSS preset.
|
|
6
|
+
|
|
7
|
+
## Features
|
|
8
|
+
|
|
9
|
+
- Launch77 theme preset with semantic color tokens
|
|
10
|
+
- Brand color customization via CSS variables
|
|
11
|
+
- Automatic base styles and accessibility features
|
|
12
|
+
- Dark mode support
|
|
13
|
+
- Theme test page for visual verification
|
|
14
|
+
|
|
15
|
+
## Setup
|
|
16
|
+
|
|
17
|
+
The theme plugin has already installed the @launch77-shared/lib-theme package. Follow these manual steps to complete the setup:
|
|
18
|
+
|
|
19
|
+
### 1. Update app/globals.css
|
|
20
|
+
|
|
21
|
+
Add these imports at the top of your `app/globals.css` file:
|
|
22
|
+
|
|
23
|
+
```css
|
|
24
|
+
@import '@launch77-shared/lib-theme/tokens.css';
|
|
25
|
+
|
|
26
|
+
@tailwind base;
|
|
27
|
+
@tailwind components;
|
|
28
|
+
@tailwind utilities;
|
|
29
|
+
|
|
30
|
+
@import '../src/modules/theme/config/brand.css';
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### 2. Update tailwind.config.ts
|
|
34
|
+
|
|
35
|
+
Replace your Tailwind config with:
|
|
36
|
+
|
|
37
|
+
```typescript
|
|
38
|
+
import type { Config } from 'tailwindcss'
|
|
39
|
+
|
|
40
|
+
const config: Config = {
|
|
41
|
+
presets: [require('@launch77-shared/lib-theme')],
|
|
42
|
+
content: [
|
|
43
|
+
'./app/**/*.{js,ts,jsx,tsx,mdx}',
|
|
44
|
+
'./components/**/*.{js,ts,jsx,tsx,mdx}',
|
|
45
|
+
'./lib/**/*.{js,ts,jsx,tsx,mdx}',
|
|
46
|
+
],
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export default config
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Theme Customization
|
|
53
|
+
|
|
54
|
+
### Brand Colors
|
|
55
|
+
|
|
56
|
+
Edit `src/modules/theme/config/brand.css` to customize your brand colors:
|
|
57
|
+
|
|
58
|
+
```css
|
|
59
|
+
:root {
|
|
60
|
+
/* Primary brand color */
|
|
61
|
+
--color-primary: 158 64% 52%;
|
|
62
|
+
--color-primary-foreground: 0 0% 100%;
|
|
63
|
+
|
|
64
|
+
/* Accent color */
|
|
65
|
+
--color-accent: 25 95% 53%;
|
|
66
|
+
--color-accent-foreground: 0 0% 100%;
|
|
67
|
+
|
|
68
|
+
/* Secondary color */
|
|
69
|
+
--color-secondary: 270 50% 40%;
|
|
70
|
+
--color-secondary-foreground: 0 0% 100%;
|
|
71
|
+
}
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### HSL Color Format
|
|
75
|
+
|
|
76
|
+
Colors use HSL format (Hue Saturation Lightness) without the `hsl()` wrapper:
|
|
77
|
+
|
|
78
|
+
- **Hue**: 0-360 (color wheel position)
|
|
79
|
+
- **Saturation**: 0-100% (color intensity)
|
|
80
|
+
- **Lightness**: 0-100% (brightness)
|
|
81
|
+
|
|
82
|
+
Example: `270 91% 65%` = purple
|
|
83
|
+
|
|
84
|
+
### Available Theme Colors
|
|
85
|
+
|
|
86
|
+
The theme includes semantic color tokens:
|
|
87
|
+
|
|
88
|
+
- `primary` - Main brand color
|
|
89
|
+
- `secondary` - Secondary brand color
|
|
90
|
+
- `accent` - Accent/highlight color
|
|
91
|
+
- `muted` - Subtle backgrounds
|
|
92
|
+
- `card` - Card backgrounds
|
|
93
|
+
- `destructive` - Error/danger states
|
|
94
|
+
- `background` - Page background
|
|
95
|
+
- `foreground` - Text color
|
|
96
|
+
- `border` - Border color
|
|
97
|
+
- `input` - Input borders
|
|
98
|
+
- `ring` - Focus rings
|
|
99
|
+
|
|
100
|
+
Each color has a corresponding `-foreground` variant for text on that background.
|
|
101
|
+
|
|
102
|
+
## Testing Your Theme
|
|
103
|
+
|
|
104
|
+
Visit the theme test page to see your theme in action:
|
|
105
|
+
|
|
106
|
+
```
|
|
107
|
+
http://localhost:3000/theme-test
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
The test page shows:
|
|
111
|
+
- All theme color swatches
|
|
112
|
+
- Interactive components (buttons, cards, forms)
|
|
113
|
+
- Real-time updates when you modify brand.css
|
|
114
|
+
|
|
115
|
+
### How to Test
|
|
116
|
+
|
|
117
|
+
1. Open `src/modules/theme/config/brand.css` in your editor
|
|
118
|
+
2. Uncomment and change color values
|
|
119
|
+
3. Save the file
|
|
120
|
+
4. Watch the theme-test page update automatically
|
|
121
|
+
|
|
122
|
+
## Usage in Components
|
|
123
|
+
|
|
124
|
+
Use theme colors via Tailwind utility classes:
|
|
125
|
+
|
|
126
|
+
```tsx
|
|
127
|
+
// Backgrounds
|
|
128
|
+
<div className="bg-primary text-primary-foreground">Primary</div>
|
|
129
|
+
<div className="bg-secondary text-secondary-foreground">Secondary</div>
|
|
130
|
+
<div className="bg-accent text-accent-foreground">Accent</div>
|
|
131
|
+
|
|
132
|
+
// Borders
|
|
133
|
+
<div className="border border-border">With border</div>
|
|
134
|
+
|
|
135
|
+
// Text colors
|
|
136
|
+
<p className="text-foreground">Main text</p>
|
|
137
|
+
<p className="text-muted-foreground">Subtle text</p>
|
|
138
|
+
|
|
139
|
+
// Interactive states
|
|
140
|
+
<button className="bg-primary hover:opacity-90 focus:ring-2 focus:ring-ring">
|
|
141
|
+
Button
|
|
142
|
+
</button>
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
## Dark Mode
|
|
146
|
+
|
|
147
|
+
The theme includes dark mode support. Add the `.dark` class to enable:
|
|
148
|
+
|
|
149
|
+
```tsx
|
|
150
|
+
// In your root layout
|
|
151
|
+
<html className={isDarkMode ? 'dark' : ''}>
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
Customize dark mode colors in `brand.css`:
|
|
155
|
+
|
|
156
|
+
```css
|
|
157
|
+
.dark {
|
|
158
|
+
--color-primary: 158 64% 52%;
|
|
159
|
+
--color-primary-foreground: 240 5.9% 10%;
|
|
160
|
+
}
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
## Module Structure
|
|
164
|
+
|
|
165
|
+
```
|
|
166
|
+
src/modules/theme/
|
|
167
|
+
├── config/
|
|
168
|
+
│ └── brand.css # Brand color customization
|
|
169
|
+
└── README.md # This file
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
## Troubleshooting
|
|
173
|
+
|
|
174
|
+
### Colors not updating
|
|
175
|
+
|
|
176
|
+
1. Check import order in `globals.css` - brand.css should come AFTER `@tailwind` directives
|
|
177
|
+
2. Ensure brand.css path is correct: `@import '../src/modules/theme/config/brand.css'`
|
|
178
|
+
3. Clear Next.js cache: `rm -rf .next && npm run dev`
|
|
179
|
+
|
|
180
|
+
### Theme preset not working
|
|
181
|
+
|
|
182
|
+
1. Verify `tailwind.config.ts` includes the preset: `presets: [require('@launch77-shared/lib-theme')]`
|
|
183
|
+
2. Check @launch77-shared/lib-theme is installed: `npm list @launch77-shared/lib-theme`
|
|
184
|
+
3. Restart dev server after config changes
|
|
185
|
+
|
|
186
|
+
### TypeScript errors
|
|
187
|
+
|
|
188
|
+
The theme uses CSS variables and Tailwind classes - no TypeScript configuration needed. If you see type errors in CSS files, add to `.gitignore`:
|
|
189
|
+
|
|
190
|
+
```
|
|
191
|
+
*.css.d.ts
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
## Next Steps
|
|
195
|
+
|
|
196
|
+
1. Complete the manual setup steps above
|
|
197
|
+
2. Visit `/theme-test` to verify installation
|
|
198
|
+
3. Customize brand colors in `brand.css`
|
|
199
|
+
4. Start building with Launch77 theme tokens
|
|
200
|
+
|
|
201
|
+
## Documentation
|
|
202
|
+
|
|
203
|
+
For complete theme documentation, see:
|
|
204
|
+
- `node_modules/@launch77-shared/lib-theme/docs/THEME.md`
|
|
205
|
+
- Launch77 theme library documentation
|
|
206
|
+
|
|
207
|
+
## Support
|
|
208
|
+
|
|
209
|
+
For issues or questions about the theme module, refer to the Launch77 documentation or contact the development team.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/* Brand Colors */
|
|
2
|
+
/* Customize your theme by overriding CSS variables */
|
|
3
|
+
|
|
4
|
+
:root {
|
|
5
|
+
/* Example: Customize primary color */
|
|
6
|
+
/* --color-primary: 158 64% 52%; */
|
|
7
|
+
/* --color-primary-foreground: 0 0% 100%; */
|
|
8
|
+
|
|
9
|
+
/* Example: Customize accent color */
|
|
10
|
+
/* --color-accent: 25 95% 53%; */
|
|
11
|
+
/* --color-accent-foreground: 0 0% 100%; */
|
|
12
|
+
|
|
13
|
+
/* Example: Customize secondary color */
|
|
14
|
+
/* --color-secondary: 270 50% 40%; */
|
|
15
|
+
/* --color-secondary-foreground: 0 0% 100%; */
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/* Dark mode overrides */
|
|
19
|
+
.dark {
|
|
20
|
+
/* Example: Customize colors for dark mode */
|
|
21
|
+
/* --color-primary: 158 64% 52%; */
|
|
22
|
+
/* --color-primary-foreground: 240 5.9% 10%; */
|
|
23
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"extends": "../../../tsconfig.json",
|
|
3
|
+
"compilerOptions": {
|
|
4
|
+
"outDir": "./dist",
|
|
5
|
+
"rootDir": "./src",
|
|
6
|
+
"module": "ESNext",
|
|
7
|
+
"moduleResolution": "bundler",
|
|
8
|
+
"target": "ES2022",
|
|
9
|
+
"lib": ["ES2022"],
|
|
10
|
+
"types": ["node"]
|
|
11
|
+
},
|
|
12
|
+
"include": ["src/**/*"],
|
|
13
|
+
"exclude": ["node_modules", "dist"]
|
|
14
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
module.exports = {
|
|
2
|
+
root: true,
|
|
3
|
+
parser: '@typescript-eslint/parser',
|
|
4
|
+
parserOptions: {
|
|
5
|
+
ecmaVersion: 2022,
|
|
6
|
+
sourceType: 'module',
|
|
7
|
+
ecmaFeatures: {
|
|
8
|
+
jsx: true,
|
|
9
|
+
},
|
|
10
|
+
},
|
|
11
|
+
plugins: ['@typescript-eslint', 'import'],
|
|
12
|
+
extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended', 'prettier'],
|
|
13
|
+
rules: {
|
|
14
|
+
'import/order': [
|
|
15
|
+
'error',
|
|
16
|
+
{
|
|
17
|
+
groups: ['builtin', 'external', 'internal', ['parent', 'sibling'], 'index', 'type'],
|
|
18
|
+
'newlines-between': 'always',
|
|
19
|
+
alphabetize: {
|
|
20
|
+
order: 'asc',
|
|
21
|
+
caseInsensitive: true,
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
],
|
|
25
|
+
'@typescript-eslint/explicit-module-boundary-types': 'off',
|
|
26
|
+
'@typescript-eslint/no-explicit-any': 'error',
|
|
27
|
+
'@typescript-eslint/no-unused-vars': [
|
|
28
|
+
'error',
|
|
29
|
+
{
|
|
30
|
+
argsIgnorePattern: '^_',
|
|
31
|
+
varsIgnorePattern: '^_',
|
|
32
|
+
},
|
|
33
|
+
],
|
|
34
|
+
'no-console': ['warn', { allow: ['warn', 'error'] }],
|
|
35
|
+
'prefer-const': 'error',
|
|
36
|
+
},
|
|
37
|
+
ignorePatterns: ['node_modules/', 'dist/', '.next/', '.turbo/', '*.js'],
|
|
38
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
#!/usr/bin/env sh
|
|
2
|
+
. "$(dirname -- "$0")/_/husky.sh"
|
|
3
|
+
|
|
4
|
+
echo "🔍 Running pre-push checks..."
|
|
5
|
+
echo "📝 Linting..."
|
|
6
|
+
npm run lint || exit 1
|
|
7
|
+
|
|
8
|
+
echo "🔎 Type checking..."
|
|
9
|
+
npm run typecheck || exit 1
|
|
10
|
+
|
|
11
|
+
echo "💅 Checking code formatting..."
|
|
12
|
+
npx prettier --check "**/*.{js,jsx,ts,tsx,json,md}" || {
|
|
13
|
+
echo ""
|
|
14
|
+
echo "❌ Code formatting issues found!"
|
|
15
|
+
echo ""
|
|
16
|
+
echo "Run this command to fix formatting:"
|
|
17
|
+
echo " npx prettier --write \"**/*.{js,jsx,ts,tsx,json,md}\""
|
|
18
|
+
echo ""
|
|
19
|
+
echo "Then commit the changes and push again."
|
|
20
|
+
echo ""
|
|
21
|
+
exit 1
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
echo "✅ All pre-push checks passed!"
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Launch77 Workspace
|
|
2
|
+
|
|
3
|
+
Welcome to your Launch77 workspace! This is a standalone monorepo for building applications with the Launch77 platform.
|
|
4
|
+
|
|
5
|
+
## Getting Started
|
|
6
|
+
|
|
7
|
+
### 1. Install Dependencies
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
### 2. Create Your First App
|
|
14
|
+
|
|
15
|
+
Use the Launch77 CLI to create apps:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
# Create a web application
|
|
19
|
+
launch77 app:create webapp my-app
|
|
20
|
+
|
|
21
|
+
# Create an API
|
|
22
|
+
launch77 app:create api my-api
|
|
23
|
+
|
|
24
|
+
# Create a marketing site
|
|
25
|
+
launch77 app:create marketing-site my-marketing
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Workspace Structure
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
.
|
|
32
|
+
├── apps/ # Your applications live here
|
|
33
|
+
├── app-templates/ # Custom app templates (future)
|
|
34
|
+
├── libraries/ # Shared libraries (future)
|
|
35
|
+
├── plugins/ # Custom plugins (future)
|
|
36
|
+
├── package.json # Workspace configuration
|
|
37
|
+
└── turbo.json # Turbo build configuration
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Available Commands
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
# Development
|
|
44
|
+
npm run dev # Start all apps in development mode
|
|
45
|
+
|
|
46
|
+
# Building
|
|
47
|
+
npm run build # Build all apps
|
|
48
|
+
|
|
49
|
+
# Quality Checks
|
|
50
|
+
npm run typecheck # Type check all apps
|
|
51
|
+
npm run lint # Lint all apps
|
|
52
|
+
npm run test # Run tests for all apps
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Learn More
|
|
56
|
+
|
|
57
|
+
- [Launch77 Documentation](https://launch77.com/docs) (coming soon)
|
|
58
|
+
- [Turborepo Documentation](https://turbo.build/repo/docs)
|
|
59
|
+
|
|
60
|
+
## Need Help?
|
|
61
|
+
|
|
62
|
+
Visit [launch77.com](https://launch77.com) for more information.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# This file ensures the app-templates directory is tracked by git
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# This file ensures the apps directory is tracked by git
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# This file ensures the libraries directory is tracked by git
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "workspace-name",
|
|
3
|
+
"private": true,
|
|
4
|
+
"license": "UNLICENSED",
|
|
5
|
+
"packageManager": "npm@9.0.0",
|
|
6
|
+
"workspaces": [
|
|
7
|
+
"apps/*",
|
|
8
|
+
"libraries/*",
|
|
9
|
+
"plugins/*",
|
|
10
|
+
"app-templates/*"
|
|
11
|
+
],
|
|
12
|
+
"scripts": {
|
|
13
|
+
"dev": "turbo run dev",
|
|
14
|
+
"build": "turbo run build",
|
|
15
|
+
"test": "turbo run test",
|
|
16
|
+
"lint": "turbo run lint",
|
|
17
|
+
"typecheck": "turbo run typecheck",
|
|
18
|
+
"prepare": "husky"
|
|
19
|
+
},
|
|
20
|
+
"devDependencies": {
|
|
21
|
+
"@typescript-eslint/eslint-plugin": "^6.0.0",
|
|
22
|
+
"@typescript-eslint/parser": "^6.0.0",
|
|
23
|
+
"eslint": "^8.56.0",
|
|
24
|
+
"eslint-config-prettier": "^9.0.0",
|
|
25
|
+
"eslint-plugin-import": "^2.29.0",
|
|
26
|
+
"husky": "^9.0.0",
|
|
27
|
+
"lint-staged": "^15.0.0",
|
|
28
|
+
"prettier": "^3.2.0",
|
|
29
|
+
"turbo": "^2.0.0"
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# This file ensures the plugins directory is tracked by git
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "ES2022",
|
|
4
|
+
"lib": ["ES2022", "DOM", "DOM.Iterable"],
|
|
5
|
+
"module": "commonjs",
|
|
6
|
+
"jsx": "preserve",
|
|
7
|
+
"strict": true,
|
|
8
|
+
"esModuleInterop": true,
|
|
9
|
+
"skipLibCheck": true,
|
|
10
|
+
"forceConsistentCasingInFileNames": true,
|
|
11
|
+
"resolveJsonModule": true,
|
|
12
|
+
"isolatedModules": true,
|
|
13
|
+
"noEmit": true,
|
|
14
|
+
"moduleResolution": "node",
|
|
15
|
+
"allowSyntheticDefaultImports": true,
|
|
16
|
+
"declaration": true,
|
|
17
|
+
"declarationMap": true,
|
|
18
|
+
"sourceMap": true,
|
|
19
|
+
"baseUrl": "."
|
|
20
|
+
},
|
|
21
|
+
"exclude": ["node_modules", "dist", ".next", ".turbo"]
|
|
22
|
+
}
|