@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.
Files changed (398) hide show
  1. package/.eslintrc.json +6 -0
  2. package/dist/app-templates/webapp/.env.ci +6 -0
  3. package/dist/app-templates/webapp/.env.example +9 -0
  4. package/dist/app-templates/webapp/.eslintrc.json +6 -0
  5. package/dist/app-templates/webapp/README.md.hbs +80 -0
  6. package/dist/app-templates/webapp/app/about/page.tsx.hbs +41 -0
  7. package/dist/app-templates/webapp/app/dashboard/page.tsx.hbs +51 -0
  8. package/dist/app-templates/webapp/app/globals.css +31 -0
  9. package/dist/app-templates/webapp/app/layout.tsx.hbs +26 -0
  10. package/dist/app-templates/webapp/app/page.tsx.hbs +30 -0
  11. package/dist/app-templates/webapp/next.config.js +99 -0
  12. package/dist/app-templates/webapp/package.json.hbs +30 -0
  13. package/dist/app-templates/webapp/postcss.config.js +6 -0
  14. package/dist/app-templates/webapp/tailwind.config.ts +24 -0
  15. package/dist/app-templates/webapp/tsconfig.json +29 -0
  16. package/dist/app-templates/webapp/vercel.json.hbs +7 -0
  17. package/dist/cli.d.ts +3 -0
  18. package/dist/cli.d.ts.map +1 -0
  19. package/dist/cli.js +29 -0
  20. package/dist/cli.js.map +1 -0
  21. package/dist/infrastructure/filesystem.d.ts +41 -0
  22. package/dist/infrastructure/filesystem.d.ts.map +1 -0
  23. package/dist/infrastructure/filesystem.js +61 -0
  24. package/dist/infrastructure/filesystem.js.map +1 -0
  25. package/dist/infrastructure/npm.d.ts +9 -0
  26. package/dist/infrastructure/npm.d.ts.map +1 -0
  27. package/dist/infrastructure/npm.js +17 -0
  28. package/dist/infrastructure/npm.js.map +1 -0
  29. package/dist/infrastructure/template-engine.d.ts +12 -0
  30. package/dist/infrastructure/template-engine.d.ts.map +1 -0
  31. package/dist/infrastructure/template-engine.js +40 -0
  32. package/dist/infrastructure/template-engine.js.map +1 -0
  33. package/dist/infrastructure/template-generator.d.ts +9 -0
  34. package/dist/infrastructure/template-generator.d.ts.map +1 -0
  35. package/dist/infrastructure/template-generator.js +19 -0
  36. package/dist/infrastructure/template-generator.js.map +1 -0
  37. package/dist/infrastructure/template.d.ts +20 -0
  38. package/dist/infrastructure/template.d.ts.map +1 -0
  39. package/dist/infrastructure/template.js +53 -0
  40. package/dist/infrastructure/template.js.map +1 -0
  41. package/dist/modules/app/commands/create-app.d.ts +3 -0
  42. package/dist/modules/app/commands/create-app.d.ts.map +1 -0
  43. package/dist/modules/app/commands/create-app.js +51 -0
  44. package/dist/modules/app/commands/create-app.js.map +1 -0
  45. package/dist/modules/app/commands/delete-app.d.ts +3 -0
  46. package/dist/modules/app/commands/delete-app.d.ts.map +1 -0
  47. package/dist/modules/app/commands/delete-app.js +109 -0
  48. package/dist/modules/app/commands/delete-app.js.map +1 -0
  49. package/dist/modules/app/commands/generate-manifest.d.ts +3 -0
  50. package/dist/modules/app/commands/generate-manifest.d.ts.map +1 -0
  51. package/dist/modules/app/commands/generate-manifest.js +62 -0
  52. package/dist/modules/app/commands/generate-manifest.js.map +1 -0
  53. package/dist/modules/app/commands/validate-manifest.d.ts +3 -0
  54. package/dist/modules/app/commands/validate-manifest.d.ts.map +1 -0
  55. package/dist/modules/app/commands/validate-manifest.js +68 -0
  56. package/dist/modules/app/commands/validate-manifest.js.map +1 -0
  57. package/dist/modules/app/errors/app-errors.d.ts +19 -0
  58. package/dist/modules/app/errors/app-errors.d.ts.map +1 -0
  59. package/dist/modules/app/errors/app-errors.js +37 -0
  60. package/dist/modules/app/errors/app-errors.js.map +1 -0
  61. package/dist/modules/app/index.d.ts +10 -0
  62. package/dist/modules/app/index.d.ts.map +1 -0
  63. package/dist/modules/app/index.js +11 -0
  64. package/dist/modules/app/index.js.map +1 -0
  65. package/dist/modules/app/lib/manifest-schema.d.ts +39 -0
  66. package/dist/modules/app/lib/manifest-schema.d.ts.map +1 -0
  67. package/dist/modules/app/lib/manifest-schema.js +44 -0
  68. package/dist/modules/app/lib/manifest-schema.js.map +1 -0
  69. package/dist/modules/app/services/app-svc.d.ts +15 -0
  70. package/dist/modules/app/services/app-svc.d.ts.map +1 -0
  71. package/dist/modules/app/services/app-svc.js +90 -0
  72. package/dist/modules/app/services/app-svc.js.map +1 -0
  73. package/dist/modules/app/services/manifest-svc.d.ts +28 -0
  74. package/dist/modules/app/services/manifest-svc.d.ts.map +1 -0
  75. package/dist/modules/app/services/manifest-svc.js +119 -0
  76. package/dist/modules/app/services/manifest-svc.js.map +1 -0
  77. package/dist/modules/app/types/app-types.d.ts +21 -0
  78. package/dist/modules/app/types/app-types.d.ts.map +1 -0
  79. package/dist/modules/app/types/app-types.js +5 -0
  80. package/dist/modules/app/types/app-types.js.map +1 -0
  81. package/dist/modules/catalog/commands/generate.d.ts +9 -0
  82. package/dist/modules/catalog/commands/generate.d.ts.map +1 -0
  83. package/dist/modules/catalog/commands/generate.js +94 -0
  84. package/dist/modules/catalog/commands/generate.js.map +1 -0
  85. package/dist/modules/catalog/commands/scan.d.ts +9 -0
  86. package/dist/modules/catalog/commands/scan.d.ts.map +1 -0
  87. package/dist/modules/catalog/commands/scan.js +43 -0
  88. package/dist/modules/catalog/commands/scan.js.map +1 -0
  89. package/dist/modules/catalog/config/catalog-config.d.ts +49 -0
  90. package/dist/modules/catalog/config/catalog-config.d.ts.map +1 -0
  91. package/dist/modules/catalog/config/catalog-config.js +116 -0
  92. package/dist/modules/catalog/config/catalog-config.js.map +1 -0
  93. package/dist/modules/catalog/config/catalog-config.test.d.ts +2 -0
  94. package/dist/modules/catalog/config/catalog-config.test.d.ts.map +1 -0
  95. package/dist/modules/catalog/config/catalog-config.test.js +362 -0
  96. package/dist/modules/catalog/config/catalog-config.test.js.map +1 -0
  97. package/dist/modules/catalog/index.d.ts +9 -0
  98. package/dist/modules/catalog/index.d.ts.map +1 -0
  99. package/dist/modules/catalog/index.js +9 -0
  100. package/dist/modules/catalog/index.js.map +1 -0
  101. package/dist/modules/catalog/parsers/typescript-parser.d.ts +15 -0
  102. package/dist/modules/catalog/parsers/typescript-parser.d.ts.map +1 -0
  103. package/dist/modules/catalog/parsers/typescript-parser.js +82 -0
  104. package/dist/modules/catalog/parsers/typescript-parser.js.map +1 -0
  105. package/dist/modules/catalog/scanners/metadata-extractor.d.ts +10 -0
  106. package/dist/modules/catalog/scanners/metadata-extractor.d.ts.map +1 -0
  107. package/dist/modules/catalog/scanners/metadata-extractor.js +122 -0
  108. package/dist/modules/catalog/scanners/metadata-extractor.js.map +1 -0
  109. package/dist/modules/catalog/scanners/metadata-validator.d.ts +6 -0
  110. package/dist/modules/catalog/scanners/metadata-validator.d.ts.map +1 -0
  111. package/dist/modules/catalog/scanners/metadata-validator.js +57 -0
  112. package/dist/modules/catalog/scanners/metadata-validator.js.map +1 -0
  113. package/dist/modules/catalog/scanners/ui-component-scanner.d.ts +11 -0
  114. package/dist/modules/catalog/scanners/ui-component-scanner.d.ts.map +1 -0
  115. package/dist/modules/catalog/scanners/ui-component-scanner.js +147 -0
  116. package/dist/modules/catalog/scanners/ui-component-scanner.js.map +1 -0
  117. package/dist/modules/catalog/schemas/catalog-ui-components.schema.json +161 -0
  118. package/dist/modules/catalog/schemas/schemas/catalog-ui-components.schema.json +145 -0
  119. package/dist/modules/catalog/services/catalog-generator-svc.d.ts +27 -0
  120. package/dist/modules/catalog/services/catalog-generator-svc.d.ts.map +1 -0
  121. package/dist/modules/catalog/services/catalog-generator-svc.js +100 -0
  122. package/dist/modules/catalog/services/catalog-generator-svc.js.map +1 -0
  123. package/dist/modules/catalog/services/catalog-generator-svc.test.d.ts +2 -0
  124. package/dist/modules/catalog/services/catalog-generator-svc.test.d.ts.map +1 -0
  125. package/dist/modules/catalog/services/catalog-generator-svc.test.js +201 -0
  126. package/dist/modules/catalog/services/catalog-generator-svc.test.js.map +1 -0
  127. package/dist/modules/catalog/services/catalog-svc.d.ts +39 -0
  128. package/dist/modules/catalog/services/catalog-svc.d.ts.map +1 -0
  129. package/dist/modules/catalog/services/catalog-svc.js +163 -0
  130. package/dist/modules/catalog/services/catalog-svc.js.map +1 -0
  131. package/dist/modules/catalog/types/catalog-types.d.ts +120 -0
  132. package/dist/modules/catalog/types/catalog-types.d.ts.map +1 -0
  133. package/dist/modules/catalog/types/catalog-types.js +5 -0
  134. package/dist/modules/catalog/types/catalog-types.js.map +1 -0
  135. package/dist/modules/catalog/utils/examples-generator.d.ts +6 -0
  136. package/dist/modules/catalog/utils/examples-generator.d.ts.map +1 -0
  137. package/dist/modules/catalog/utils/examples-generator.js +55 -0
  138. package/dist/modules/catalog/utils/examples-generator.js.map +1 -0
  139. package/dist/modules/catalog/utils/quality-reporter.d.ts +13 -0
  140. package/dist/modules/catalog/utils/quality-reporter.d.ts.map +1 -0
  141. package/dist/modules/catalog/utils/quality-reporter.js +64 -0
  142. package/dist/modules/catalog/utils/quality-reporter.js.map +1 -0
  143. package/dist/modules/catalog/validators/component-name-validator.d.ts +20 -0
  144. package/dist/modules/catalog/validators/component-name-validator.d.ts.map +1 -0
  145. package/dist/modules/catalog/validators/component-name-validator.js +33 -0
  146. package/dist/modules/catalog/validators/component-name-validator.js.map +1 -0
  147. package/dist/modules/catalog/validators/component-name-validator.test.d.ts +2 -0
  148. package/dist/modules/catalog/validators/component-name-validator.test.d.ts.map +1 -0
  149. package/dist/modules/catalog/validators/component-name-validator.test.js +196 -0
  150. package/dist/modules/catalog/validators/component-name-validator.test.js.map +1 -0
  151. package/dist/modules/deploy/commands/deploy-init-action.d.ts +12 -0
  152. package/dist/modules/deploy/commands/deploy-init-action.d.ts.map +1 -0
  153. package/dist/modules/deploy/commands/deploy-init-action.js +220 -0
  154. package/dist/modules/deploy/commands/deploy-init-action.js.map +1 -0
  155. package/dist/modules/deploy/commands/deploy-init.d.ts +6 -0
  156. package/dist/modules/deploy/commands/deploy-init.d.ts.map +1 -0
  157. package/dist/modules/deploy/commands/deploy-init.js +16 -0
  158. package/dist/modules/deploy/commands/deploy-init.js.map +1 -0
  159. package/dist/modules/deploy/commands/deploy-logs-action.d.ts +12 -0
  160. package/dist/modules/deploy/commands/deploy-logs-action.d.ts.map +1 -0
  161. package/dist/modules/deploy/commands/deploy-logs-action.js +113 -0
  162. package/dist/modules/deploy/commands/deploy-logs-action.js.map +1 -0
  163. package/dist/modules/deploy/commands/deploy-logs.d.ts +6 -0
  164. package/dist/modules/deploy/commands/deploy-logs.d.ts.map +1 -0
  165. package/dist/modules/deploy/commands/deploy-logs.js +17 -0
  166. package/dist/modules/deploy/commands/deploy-logs.js.map +1 -0
  167. package/dist/modules/deploy/commands/deploy-status-action.d.ts +8 -0
  168. package/dist/modules/deploy/commands/deploy-status-action.d.ts.map +1 -0
  169. package/dist/modules/deploy/commands/deploy-status-action.js +153 -0
  170. package/dist/modules/deploy/commands/deploy-status-action.js.map +1 -0
  171. package/dist/modules/deploy/commands/deploy-status.d.ts +6 -0
  172. package/dist/modules/deploy/commands/deploy-status.d.ts.map +1 -0
  173. package/dist/modules/deploy/commands/deploy-status.js +13 -0
  174. package/dist/modules/deploy/commands/deploy-status.js.map +1 -0
  175. package/dist/modules/deploy/index.d.ts +7 -0
  176. package/dist/modules/deploy/index.d.ts.map +1 -0
  177. package/dist/modules/deploy/index.js +7 -0
  178. package/dist/modules/deploy/index.js.map +1 -0
  179. package/dist/modules/deploy/services/deploy-svc.d.ts +17 -0
  180. package/dist/modules/deploy/services/deploy-svc.d.ts.map +1 -0
  181. package/dist/modules/deploy/services/deploy-svc.js +25 -0
  182. package/dist/modules/deploy/services/deploy-svc.js.map +1 -0
  183. package/dist/modules/deploy/utils/vercel-extended.d.ts +63 -0
  184. package/dist/modules/deploy/utils/vercel-extended.d.ts.map +1 -0
  185. package/dist/modules/deploy/utils/vercel-extended.js +238 -0
  186. package/dist/modules/deploy/utils/vercel-extended.js.map +1 -0
  187. package/dist/modules/plugin/commands/plugin-install.d.ts +3 -0
  188. package/dist/modules/plugin/commands/plugin-install.d.ts.map +1 -0
  189. package/dist/modules/plugin/commands/plugin-install.js +45 -0
  190. package/dist/modules/plugin/commands/plugin-install.js.map +1 -0
  191. package/dist/modules/plugin/errors/plugin-errors.d.ts +16 -0
  192. package/dist/modules/plugin/errors/plugin-errors.d.ts.map +1 -0
  193. package/dist/modules/plugin/errors/plugin-errors.js +39 -0
  194. package/dist/modules/plugin/errors/plugin-errors.js.map +1 -0
  195. package/dist/modules/plugin/index.d.ts +6 -0
  196. package/dist/modules/plugin/index.d.ts.map +1 -0
  197. package/dist/modules/plugin/index.js +9 -0
  198. package/dist/modules/plugin/index.js.map +1 -0
  199. package/dist/modules/plugin/lib/plugin-registry.d.ts +15 -0
  200. package/dist/modules/plugin/lib/plugin-registry.d.ts.map +1 -0
  201. package/dist/modules/plugin/lib/plugin-registry.js +47 -0
  202. package/dist/modules/plugin/lib/plugin-registry.js.map +1 -0
  203. package/dist/modules/plugin/services/plugin-svc.d.ts +10 -0
  204. package/dist/modules/plugin/services/plugin-svc.d.ts.map +1 -0
  205. package/dist/modules/plugin/services/plugin-svc.js +44 -0
  206. package/dist/modules/plugin/services/plugin-svc.js.map +1 -0
  207. package/dist/modules/plugin/types/plugin-types.d.ts +19 -0
  208. package/dist/modules/plugin/types/plugin-types.d.ts.map +1 -0
  209. package/dist/modules/plugin/types/plugin-types.js +2 -0
  210. package/dist/modules/plugin/types/plugin-types.js.map +1 -0
  211. package/dist/modules/startup/commands/create-startup.d.ts +3 -0
  212. package/dist/modules/startup/commands/create-startup.d.ts.map +1 -0
  213. package/dist/modules/startup/commands/create-startup.js +43 -0
  214. package/dist/modules/startup/commands/create-startup.js.map +1 -0
  215. package/dist/modules/startup/errors/startup-errors.d.ts +13 -0
  216. package/dist/modules/startup/errors/startup-errors.d.ts.map +1 -0
  217. package/dist/modules/startup/errors/startup-errors.js +25 -0
  218. package/dist/modules/startup/errors/startup-errors.js.map +1 -0
  219. package/dist/modules/startup/index.d.ts +5 -0
  220. package/dist/modules/startup/index.d.ts.map +1 -0
  221. package/dist/modules/startup/index.js +7 -0
  222. package/dist/modules/startup/index.js.map +1 -0
  223. package/dist/modules/startup/services/startup-service.d.ts +7 -0
  224. package/dist/modules/startup/services/startup-service.d.ts.map +1 -0
  225. package/dist/modules/startup/services/startup-service.js +43 -0
  226. package/dist/modules/startup/services/startup-service.js.map +1 -0
  227. package/dist/modules/startup/types/startup-types.d.ts +8 -0
  228. package/dist/modules/startup/types/startup-types.d.ts.map +1 -0
  229. package/dist/modules/startup/types/startup-types.js +2 -0
  230. package/dist/modules/startup/types/startup-types.js.map +1 -0
  231. package/dist/modules/startup/utils/startup-validators.d.ts +8 -0
  232. package/dist/modules/startup/utils/startup-validators.d.ts.map +1 -0
  233. package/dist/modules/startup/utils/startup-validators.js +17 -0
  234. package/dist/modules/startup/utils/startup-validators.js.map +1 -0
  235. package/dist/modules/workspace/commands/init-workspace.d.ts +3 -0
  236. package/dist/modules/workspace/commands/init-workspace.d.ts.map +1 -0
  237. package/dist/modules/workspace/commands/init-workspace.js +54 -0
  238. package/dist/modules/workspace/commands/init-workspace.js.map +1 -0
  239. package/dist/modules/workspace/errors/workspace-errors.d.ts +10 -0
  240. package/dist/modules/workspace/errors/workspace-errors.d.ts.map +1 -0
  241. package/dist/modules/workspace/errors/workspace-errors.js +19 -0
  242. package/dist/modules/workspace/errors/workspace-errors.js.map +1 -0
  243. package/dist/modules/workspace/index.d.ts +5 -0
  244. package/dist/modules/workspace/index.d.ts.map +1 -0
  245. package/dist/modules/workspace/index.js +7 -0
  246. package/dist/modules/workspace/index.js.map +1 -0
  247. package/dist/modules/workspace/services/workspace-service.d.ts +6 -0
  248. package/dist/modules/workspace/services/workspace-service.d.ts.map +1 -0
  249. package/dist/modules/workspace/services/workspace-service.js +46 -0
  250. package/dist/modules/workspace/services/workspace-service.js.map +1 -0
  251. package/dist/modules/workspace/types/workspace-types.d.ts +8 -0
  252. package/dist/modules/workspace/types/workspace-types.d.ts.map +1 -0
  253. package/dist/modules/workspace/types/workspace-types.js +2 -0
  254. package/dist/modules/workspace/types/workspace-types.js.map +1 -0
  255. package/dist/modules/workspace/utils/workspace-validators.d.ts +8 -0
  256. package/dist/modules/workspace/utils/workspace-validators.d.ts.map +1 -0
  257. package/dist/modules/workspace/utils/workspace-validators.js +17 -0
  258. package/dist/modules/workspace/utils/workspace-validators.js.map +1 -0
  259. package/dist/plugins/theme/package.json +32 -0
  260. package/dist/plugins/theme/plugin.json +9 -0
  261. package/dist/plugins/theme/src/generator.ts +92 -0
  262. package/dist/plugins/theme/src/utils/config-modifier.ts +142 -0
  263. package/dist/plugins/theme/src/utils/css-modifier.ts +89 -0
  264. package/dist/plugins/theme/templates/app/theme-test/page.tsx +156 -0
  265. package/dist/plugins/theme/templates/src/modules/theme/README.md +209 -0
  266. package/dist/plugins/theme/templates/src/modules/theme/config/brand.css +23 -0
  267. package/dist/plugins/theme/tsconfig.json +14 -0
  268. package/dist/plugins/theme/tsup.config.ts +10 -0
  269. package/dist/templates/startup/apps/.gitkeep +8 -0
  270. package/dist/templates/templates/startup/apps/.gitkeep +8 -0
  271. package/dist/templates/templates/workspace/.eslintignore +7 -0
  272. package/dist/templates/templates/workspace/.eslintrc.js +38 -0
  273. package/dist/templates/templates/workspace/.husky/pre-push +24 -0
  274. package/dist/templates/templates/workspace/.launch77/workspace.json +3 -0
  275. package/dist/templates/templates/workspace/.lintstagedrc.json +4 -0
  276. package/dist/templates/templates/workspace/.prettierrc +9 -0
  277. package/dist/templates/templates/workspace/README.md +62 -0
  278. package/dist/templates/templates/workspace/app-templates/.gitkeep +1 -0
  279. package/dist/templates/templates/workspace/apps/.gitkeep +1 -0
  280. package/dist/templates/templates/workspace/libraries/.gitkeep +1 -0
  281. package/dist/templates/templates/workspace/package.json +31 -0
  282. package/dist/templates/templates/workspace/plugins/.gitkeep +1 -0
  283. package/dist/templates/templates/workspace/tsconfig.json +22 -0
  284. package/dist/templates/templates/workspace/turbo.json +25 -0
  285. package/dist/templates/workspace/.launch77/workspace.json +3 -0
  286. package/dist/templates/workspace/README.md +62 -0
  287. package/dist/templates/workspace/app-templates/.gitkeep +1 -0
  288. package/dist/templates/workspace/apps/.gitkeep +1 -0
  289. package/dist/templates/workspace/libraries/.gitkeep +1 -0
  290. package/dist/templates/workspace/package.json +21 -0
  291. package/dist/templates/workspace/plugins/.gitkeep +1 -0
  292. package/dist/templates/workspace/tsconfig.json +22 -0
  293. package/dist/templates/workspace/turbo.json +25 -0
  294. package/dist/utils/launch77-context.d.ts +16 -0
  295. package/dist/utils/launch77-context.d.ts.map +1 -0
  296. package/dist/utils/launch77-context.js +111 -0
  297. package/dist/utils/launch77-context.js.map +1 -0
  298. package/dist/utils/launch77-validation.d.ts +17 -0
  299. package/dist/utils/launch77-validation.d.ts.map +1 -0
  300. package/dist/utils/launch77-validation.js +44 -0
  301. package/dist/utils/launch77-validation.js.map +1 -0
  302. package/dist/utils/monorepo.d.ts +19 -0
  303. package/dist/utils/monorepo.d.ts.map +1 -0
  304. package/dist/utils/monorepo.js +100 -0
  305. package/dist/utils/monorepo.js.map +1 -0
  306. package/dist/utils/validation.d.ts +32 -0
  307. package/dist/utils/validation.d.ts.map +1 -0
  308. package/dist/utils/validation.js +92 -0
  309. package/dist/utils/validation.js.map +1 -0
  310. package/dist/utils/version.d.ts +7 -0
  311. package/dist/utils/version.d.ts.map +1 -0
  312. package/dist/utils/version.js +16 -0
  313. package/dist/utils/version.js.map +1 -0
  314. package/launch77-cli-1.2.0.tgz +0 -0
  315. package/package.json +48 -0
  316. package/src/cli.ts +34 -0
  317. package/src/infrastructure/filesystem.ts +69 -0
  318. package/src/infrastructure/npm.ts +18 -0
  319. package/src/infrastructure/template-engine.ts +48 -0
  320. package/src/infrastructure/template-generator.ts +26 -0
  321. package/src/infrastructure/template.ts +66 -0
  322. package/src/modules/app/commands/create-app.ts +60 -0
  323. package/src/modules/app/commands/delete-app.ts +123 -0
  324. package/src/modules/app/commands/generate-manifest.ts +75 -0
  325. package/src/modules/app/commands/validate-manifest.ts +78 -0
  326. package/src/modules/app/errors/app-errors.ts +41 -0
  327. package/src/modules/app/index.ts +16 -0
  328. package/src/modules/app/lib/manifest-schema.ts +65 -0
  329. package/src/modules/app/services/app-svc.ts +115 -0
  330. package/src/modules/app/services/manifest-svc.ts +144 -0
  331. package/src/modules/app/types/app-types.ts +27 -0
  332. package/src/modules/catalog/commands/generate.ts +115 -0
  333. package/src/modules/catalog/commands/scan.ts +48 -0
  334. package/src/modules/catalog/config/catalog-config.test.ts +404 -0
  335. package/src/modules/catalog/config/catalog-config.ts +130 -0
  336. package/src/modules/catalog/index.ts +9 -0
  337. package/src/modules/catalog/parsers/typescript-parser.ts +93 -0
  338. package/src/modules/catalog/scanners/metadata-extractor.ts +134 -0
  339. package/src/modules/catalog/scanners/metadata-validator.ts +67 -0
  340. package/src/modules/catalog/scanners/ui-component-scanner.ts +185 -0
  341. package/src/modules/catalog/schemas/catalog-ui-components.schema.json +145 -0
  342. package/src/modules/catalog/services/catalog-generator-svc.test.ts +233 -0
  343. package/src/modules/catalog/services/catalog-generator-svc.ts +124 -0
  344. package/src/modules/catalog/services/catalog-svc.ts +222 -0
  345. package/src/modules/catalog/types/catalog-types.ts +149 -0
  346. package/src/modules/catalog/utils/examples-generator.ts +68 -0
  347. package/src/modules/catalog/utils/quality-reporter.ts +76 -0
  348. package/src/modules/catalog/validators/component-name-validator.test.ts +233 -0
  349. package/src/modules/catalog/validators/component-name-validator.ts +43 -0
  350. package/src/modules/deploy/commands/deploy-init-action.ts +247 -0
  351. package/src/modules/deploy/commands/deploy-init.ts +19 -0
  352. package/src/modules/deploy/commands/deploy-logs-action.ts +135 -0
  353. package/src/modules/deploy/commands/deploy-logs.ts +20 -0
  354. package/src/modules/deploy/commands/deploy-status-action.ts +175 -0
  355. package/src/modules/deploy/commands/deploy-status.ts +16 -0
  356. package/src/modules/deploy/index.ts +7 -0
  357. package/src/modules/deploy/services/deploy-svc.ts +31 -0
  358. package/src/modules/deploy/utils/vercel-extended.ts +286 -0
  359. package/src/modules/plugin/commands/plugin-install.ts +51 -0
  360. package/src/modules/plugin/errors/plugin-errors.ts +44 -0
  361. package/src/modules/plugin/index.ts +14 -0
  362. package/src/modules/plugin/lib/launch77-workspace.code-workspace +14 -0
  363. package/src/modules/plugin/lib/plugin-registry.ts +59 -0
  364. package/src/modules/plugin/services/plugin-svc.ts +53 -0
  365. package/src/modules/plugin/types/plugin-types.ts +21 -0
  366. package/src/modules/startup/commands/create-startup.ts +53 -0
  367. package/src/modules/startup/errors/startup-errors.ts +23 -0
  368. package/src/modules/startup/index.ts +11 -0
  369. package/src/modules/startup/services/startup-service.ts +57 -0
  370. package/src/modules/startup/types/startup-types.ts +8 -0
  371. package/src/modules/startup/utils/startup-validators.ts +19 -0
  372. package/src/modules/workspace/commands/init-workspace.ts +63 -0
  373. package/src/modules/workspace/errors/workspace-errors.ts +16 -0
  374. package/src/modules/workspace/index.ts +11 -0
  375. package/src/modules/workspace/services/workspace-service.ts +59 -0
  376. package/src/modules/workspace/types/workspace-types.ts +8 -0
  377. package/src/modules/workspace/utils/workspace-validators.ts +19 -0
  378. package/src/utils/launch77-context.ts +152 -0
  379. package/src/utils/launch77-validation.ts +59 -0
  380. package/src/utils/monorepo.ts +137 -0
  381. package/src/utils/validation.ts +117 -0
  382. package/src/utils/version.ts +16 -0
  383. package/templates/startup/apps/.gitkeep +8 -0
  384. package/templates/workspace/.eslintignore +7 -0
  385. package/templates/workspace/.eslintrc.js +38 -0
  386. package/templates/workspace/.husky/pre-push +24 -0
  387. package/templates/workspace/.launch77/workspace.json +3 -0
  388. package/templates/workspace/.lintstagedrc.json +4 -0
  389. package/templates/workspace/.prettierrc +9 -0
  390. package/templates/workspace/README.md +62 -0
  391. package/templates/workspace/app-templates/.gitkeep +1 -0
  392. package/templates/workspace/apps/.gitkeep +1 -0
  393. package/templates/workspace/libraries/.gitkeep +1 -0
  394. package/templates/workspace/package.json +31 -0
  395. package/templates/workspace/plugins/.gitkeep +1 -0
  396. package/templates/workspace/tsconfig.json +22 -0
  397. package/templates/workspace/turbo.json +25 -0
  398. 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,10 @@
1
+ import { defineConfig } from 'tsup'
2
+
3
+ export default defineConfig({
4
+ entry: ['src/generator.ts'],
5
+ format: ['esm'],
6
+ dts: false,
7
+ sourcemap: false,
8
+ clean: true,
9
+ shims: true,
10
+ })
@@ -0,0 +1,8 @@
1
+ # Apps Directory
2
+
3
+ This directory will contain all applications for this startup.
4
+
5
+ Create new apps using:
6
+ ```bash
7
+ launch77 create-app marketing-site <app-name>
8
+ ```
@@ -0,0 +1,8 @@
1
+ # Apps Directory
2
+
3
+ This directory will contain all applications for this startup.
4
+
5
+ Create new apps using:
6
+ ```bash
7
+ launch77 create-app marketing-site <app-name>
8
+ ```
@@ -0,0 +1,7 @@
1
+ node_modules
2
+ dist
3
+ .next
4
+ .turbo
5
+ coverage
6
+ *.config.js
7
+ .eslintrc.js
@@ -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,3 @@
1
+ {
2
+ "version": "1.0.0"
3
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "*.{js,jsx,ts,tsx}": ["eslint --fix", "prettier --write"],
3
+ "*.{json,md,yaml,yml}": ["prettier --write"]
4
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "semi": false,
3
+ "singleQuote": true,
4
+ "tabWidth": 2,
5
+ "trailingComma": "es5",
6
+ "printWidth": 1000,
7
+ "arrowParens": "always",
8
+ "endOfLine": "lf"
9
+ }
@@ -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
+ }