@launch77/cli 1.2.0 → 1.4.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/CHANGELOG.md +22 -0
- package/dist/cli.js +8 -1
- package/dist/cli.js.map +1 -1
- package/dist/infrastructure/git.d.ts +37 -0
- package/dist/infrastructure/git.d.ts.map +1 -0
- package/dist/infrastructure/git.js +82 -0
- package/dist/infrastructure/git.js.map +1 -0
- package/dist/infrastructure/github.d.ts +43 -0
- package/dist/infrastructure/github.d.ts.map +1 -0
- package/dist/infrastructure/github.js +89 -0
- package/dist/infrastructure/github.js.map +1 -0
- package/dist/infrastructure/template-generator.d.ts +1 -1
- package/dist/infrastructure/template-generator.d.ts.map +1 -1
- package/dist/infrastructure/template.d.ts +5 -0
- package/dist/infrastructure/template.d.ts.map +1 -1
- package/dist/infrastructure/template.js +11 -0
- package/dist/infrastructure/template.js.map +1 -1
- package/dist/modules/app/commands/create-app.js +1 -1
- package/dist/modules/app/commands/create-app.js.map +1 -1
- package/dist/modules/app/commands/delete-app.js +1 -1
- package/dist/modules/app/commands/delete-app.js.map +1 -1
- package/dist/modules/app/services/app-svc.d.ts +1 -1
- package/dist/modules/app/services/app-svc.d.ts.map +1 -1
- package/dist/modules/app/services/manifest-svc.d.ts +1 -1
- package/dist/modules/app/services/manifest-svc.d.ts.map +1 -1
- package/dist/modules/catalog/config/catalog-config.test.js +1 -1
- package/dist/modules/catalog/config/catalog-config.test.js.map +1 -1
- package/dist/modules/catalog/schemas/catalog-ui-components.schema.json +2 -18
- package/dist/modules/git/commands/git-connect.d.ts +3 -0
- package/dist/modules/git/commands/git-connect.d.ts.map +1 -0
- package/dist/modules/git/commands/git-connect.js +156 -0
- package/dist/modules/git/commands/git-connect.js.map +1 -0
- package/dist/modules/git/errors/git-errors.d.ts +21 -0
- package/dist/modules/git/errors/git-errors.d.ts.map +1 -0
- package/dist/modules/git/errors/git-errors.js +41 -0
- package/dist/modules/git/errors/git-errors.js.map +1 -0
- package/dist/modules/git/index.d.ts +5 -0
- package/dist/modules/git/index.d.ts.map +1 -0
- package/dist/modules/git/index.js +8 -0
- package/dist/modules/git/index.js.map +1 -0
- package/dist/modules/git/services/git-service.d.ts +24 -0
- package/dist/modules/git/services/git-service.d.ts.map +1 -0
- package/dist/modules/git/services/git-service.js +56 -0
- package/dist/modules/git/services/git-service.js.map +1 -0
- package/dist/modules/git/services/github-service.d.ts +27 -0
- package/dist/modules/git/services/github-service.d.ts.map +1 -0
- package/dist/modules/git/services/github-service.js +45 -0
- package/dist/modules/git/services/github-service.js.map +1 -0
- package/dist/modules/plugin/commands/plugin-create.d.ts +3 -0
- package/dist/modules/plugin/commands/plugin-create.d.ts.map +1 -0
- package/dist/modules/plugin/commands/plugin-create.js +59 -0
- package/dist/modules/plugin/commands/plugin-create.js.map +1 -0
- package/dist/modules/plugin/commands/plugin-install.d.ts.map +1 -1
- package/dist/modules/plugin/commands/plugin-install.js +9 -24
- package/dist/modules/plugin/commands/plugin-install.js.map +1 -1
- package/dist/modules/plugin/errors/plugin-errors.d.ts +24 -1
- package/dist/modules/plugin/errors/plugin-errors.d.ts.map +1 -1
- package/dist/modules/plugin/errors/plugin-errors.js +79 -6
- package/dist/modules/plugin/errors/plugin-errors.js.map +1 -1
- package/dist/modules/plugin/index.d.ts +4 -2
- package/dist/modules/plugin/index.d.ts.map +1 -1
- package/dist/modules/plugin/index.js +4 -2
- package/dist/modules/plugin/index.js.map +1 -1
- package/dist/modules/plugin/lib/plugin-registry.d.ts +6 -12
- package/dist/modules/plugin/lib/plugin-registry.d.ts.map +1 -1
- package/dist/modules/plugin/lib/plugin-registry.js +13 -30
- package/dist/modules/plugin/lib/plugin-registry.js.map +1 -1
- package/dist/modules/plugin/lib/plugin-resolver.d.ts +76 -0
- package/dist/modules/plugin/lib/plugin-resolver.d.ts.map +1 -0
- package/dist/modules/plugin/lib/plugin-resolver.js +128 -0
- package/dist/modules/plugin/lib/plugin-resolver.js.map +1 -0
- package/dist/modules/plugin/lib/plugin-resolver.test.d.ts +2 -0
- package/dist/modules/plugin/lib/plugin-resolver.test.d.ts.map +1 -0
- package/dist/modules/plugin/lib/plugin-resolver.test.js +175 -0
- package/dist/modules/plugin/lib/plugin-resolver.test.js.map +1 -0
- package/dist/modules/plugin/services/plugin-create-service.d.ts +16 -0
- package/dist/modules/plugin/services/plugin-create-service.d.ts.map +1 -0
- package/dist/modules/plugin/services/plugin-create-service.js +47 -0
- package/dist/modules/plugin/services/plugin-create-service.js.map +1 -0
- package/dist/modules/plugin/services/plugin-svc.d.ts +8 -3
- package/dist/modules/plugin/services/plugin-svc.d.ts.map +1 -1
- package/dist/modules/plugin/services/plugin-svc.js +96 -15
- package/dist/modules/plugin/services/plugin-svc.js.map +1 -1
- package/dist/modules/release/commands/release-init.d.ts +3 -0
- package/dist/modules/release/commands/release-init.d.ts.map +1 -0
- package/dist/modules/release/commands/release-init.js +92 -0
- package/dist/modules/release/commands/release-init.js.map +1 -0
- package/dist/modules/release/errors/release-errors.d.ts +7 -0
- package/dist/modules/release/errors/release-errors.d.ts.map +1 -0
- package/dist/modules/release/errors/release-errors.js +13 -0
- package/dist/modules/release/errors/release-errors.js.map +1 -0
- package/dist/modules/release/index.d.ts +4 -0
- package/dist/modules/release/index.d.ts.map +1 -0
- package/dist/modules/release/index.js +7 -0
- package/dist/modules/release/index.js.map +1 -0
- package/dist/modules/release/services/release-service.d.ts +34 -0
- package/dist/modules/release/services/release-service.d.ts.map +1 -0
- package/dist/modules/release/services/release-service.js +154 -0
- package/dist/modules/release/services/release-service.js.map +1 -0
- package/dist/modules/workspace/commands/init-workspace.d.ts.map +1 -1
- package/dist/modules/workspace/commands/init-workspace.js +4 -5
- package/dist/modules/workspace/commands/init-workspace.js.map +1 -1
- package/dist/modules/workspace/services/workspace-service.d.ts +2 -1
- package/dist/modules/workspace/services/workspace-service.d.ts.map +1 -1
- package/dist/modules/workspace/services/workspace-service.js +27 -1
- package/dist/modules/workspace/services/workspace-service.js.map +1 -1
- package/dist/templates/plugin/README.md.hbs +39 -0
- package/dist/{plugins/theme/package.json → templates/plugin/package.json.hbs} +5 -3
- package/dist/templates/plugin/plugin.json.hbs +7 -0
- package/dist/templates/plugin/src/generator.ts.hbs +64 -0
- package/dist/templates/plugin/templates/src/.gitkeep +0 -0
- package/dist/templates/plugin/tsconfig.json +10 -0
- package/dist/{plugins/theme → templates/plugin}/tsup.config.ts +0 -1
- package/dist/templates/workspace/.github/workflows/ci.yml +102 -0
- package/dist/templates/workspace/package.json +16 -1
- package/dist/templates/workspace/turbo.json +5 -0
- package/dist/utils/launch77-context.d.ts +1 -1
- package/dist/utils/launch77-context.d.ts.map +1 -1
- package/dist/utils/launch77-context.js +25 -2
- package/dist/utils/launch77-context.js.map +1 -1
- package/dist/utils/launch77-validation.d.ts +1 -1
- package/dist/utils/launch77-validation.d.ts.map +1 -1
- package/dist/utils/string.d.ts +13 -0
- package/dist/utils/string.d.ts.map +1 -0
- package/dist/utils/string.js +18 -0
- package/dist/utils/string.js.map +1 -0
- package/package.json +7 -10
- package/src/cli.ts +10 -1
- package/src/infrastructure/git.ts +86 -0
- package/src/infrastructure/github.ts +111 -0
- package/src/infrastructure/template-generator.ts +1 -1
- package/src/infrastructure/template.ts +14 -0
- package/src/modules/app/commands/create-app.ts +1 -1
- package/src/modules/app/commands/delete-app.ts +1 -1
- package/src/modules/app/services/app-svc.ts +1 -1
- package/src/modules/app/services/manifest-svc.ts +1 -1
- package/src/modules/catalog/config/catalog-config.test.ts +1 -1
- package/src/modules/git/commands/git-connect.ts +183 -0
- package/src/modules/git/errors/git-errors.ts +44 -0
- package/src/modules/git/index.ts +9 -0
- package/src/modules/git/services/git-service.ts +63 -0
- package/src/modules/git/services/github-service.ts +52 -0
- package/src/modules/plugin/commands/plugin-create.ts +68 -0
- package/src/modules/plugin/commands/plugin-install.ts +9 -26
- package/src/modules/plugin/errors/plugin-errors.ts +87 -6
- package/src/modules/plugin/index.ts +4 -2
- package/src/modules/plugin/lib/plugin-registry.ts +14 -37
- package/src/modules/plugin/lib/plugin-resolver.test.ts +215 -0
- package/src/modules/plugin/lib/plugin-resolver.ts +160 -0
- package/src/modules/plugin/services/plugin-create-service.ts +69 -0
- package/src/modules/plugin/services/plugin-svc.ts +108 -15
- package/src/modules/release/commands/release-init.ts +102 -0
- package/src/modules/release/errors/release-errors.ts +13 -0
- package/src/modules/release/index.ts +8 -0
- package/src/modules/release/services/release-service.ts +170 -0
- package/src/modules/workspace/commands/init-workspace.ts +4 -6
- package/src/modules/workspace/services/workspace-service.ts +30 -1
- package/src/utils/launch77-context.ts +29 -3
- package/src/utils/launch77-validation.ts +1 -1
- package/src/utils/string.ts +17 -0
- package/templates/plugin/README.md.hbs +39 -0
- package/templates/plugin/package.json.hbs +34 -0
- package/templates/plugin/plugin.json.hbs +7 -0
- package/templates/plugin/src/generator.ts.hbs +64 -0
- package/templates/plugin/templates/src/.gitkeep +0 -0
- package/templates/plugin/tsconfig.json +10 -0
- package/templates/plugin/tsup.config.ts +9 -0
- package/templates/workspace/.github/workflows/ci.yml +102 -0
- package/templates/workspace/package.json +5 -0
- package/templates/workspace/turbo.json +5 -0
- package/tests/integration/cli.test.ts +25 -0
- package/tests/integration/setup.ts +20 -0
- package/vitest.config.ts +9 -0
- package/vitest.integration.config.ts +9 -0
- package/dist/app-templates/webapp/.env.ci +0 -6
- package/dist/app-templates/webapp/.env.example +0 -9
- package/dist/app-templates/webapp/.eslintrc.json +0 -6
- package/dist/app-templates/webapp/README.md.hbs +0 -80
- package/dist/app-templates/webapp/app/about/page.tsx.hbs +0 -41
- package/dist/app-templates/webapp/app/dashboard/page.tsx.hbs +0 -51
- package/dist/app-templates/webapp/app/globals.css +0 -31
- package/dist/app-templates/webapp/app/layout.tsx.hbs +0 -26
- package/dist/app-templates/webapp/app/page.tsx.hbs +0 -30
- package/dist/app-templates/webapp/next.config.js +0 -99
- package/dist/app-templates/webapp/package.json.hbs +0 -30
- package/dist/app-templates/webapp/postcss.config.js +0 -6
- package/dist/app-templates/webapp/tailwind.config.ts +0 -24
- package/dist/app-templates/webapp/tsconfig.json +0 -29
- package/dist/app-templates/webapp/vercel.json.hbs +0 -7
- package/dist/modules/catalog/schemas/schemas/catalog-ui-components.schema.json +0 -145
- package/dist/plugins/theme/plugin.json +0 -9
- package/dist/plugins/theme/src/generator.ts +0 -92
- package/dist/plugins/theme/src/utils/config-modifier.ts +0 -142
- package/dist/plugins/theme/src/utils/css-modifier.ts +0 -89
- package/dist/plugins/theme/templates/app/theme-test/page.tsx +0 -156
- package/dist/plugins/theme/templates/src/modules/theme/README.md +0 -209
- package/dist/plugins/theme/templates/src/modules/theme/config/brand.css +0 -23
- package/dist/plugins/theme/tsconfig.json +0 -14
- package/dist/templates/templates/startup/apps/.gitkeep +0 -8
- package/dist/templates/templates/workspace/.launch77/workspace.json +0 -3
- package/dist/templates/templates/workspace/README.md +0 -62
- package/dist/templates/templates/workspace/app-templates/.gitkeep +0 -1
- package/dist/templates/templates/workspace/apps/.gitkeep +0 -1
- package/dist/templates/templates/workspace/libraries/.gitkeep +0 -1
- package/dist/templates/templates/workspace/package.json +0 -31
- package/dist/templates/templates/workspace/plugins/.gitkeep +0 -1
- package/dist/templates/templates/workspace/tsconfig.json +0 -22
- package/dist/templates/templates/workspace/turbo.json +0 -25
- package/launch77-cli-1.2.0.tgz +0 -0
- package/src/modules/plugin/lib/launch77-workspace.code-workspace +0 -14
- /package/dist/templates/{templates/workspace → workspace}/.eslintignore +0 -0
- /package/dist/templates/{templates/workspace → workspace}/.eslintrc.js +0 -0
- /package/dist/templates/{templates/workspace → workspace}/.husky/pre-push +0 -0
- /package/dist/templates/{templates/workspace → workspace}/.lintstagedrc.json +0 -0
- /package/dist/templates/{templates/workspace → workspace}/.prettierrc +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"release-service.js","sourceRoot":"","sources":["../../../../src/modules/release/services/release-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init-workspace.d.ts","sourceRoot":"","sources":["../../../../src/modules/workspace/commands/init-workspace.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAMnC,wBAAgB,oBAAoB,IAAI,OAAO,
|
|
1
|
+
{"version":3,"file":"init-workspace.d.ts","sourceRoot":"","sources":["../../../../src/modules/workspace/commands/init-workspace.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAMnC,wBAAgB,oBAAoB,IAAI,OAAO,CAkD9C"}
|
|
@@ -31,12 +31,11 @@ export function initWorkspaceCommand() {
|
|
|
31
31
|
const service = new WorkspaceService();
|
|
32
32
|
try {
|
|
33
33
|
const spinner = ora('Creating workspace structure...').start();
|
|
34
|
-
const result = await service.initWorkspace({ name: workspaceName }, process.cwd());
|
|
35
|
-
spinner.succeed('Workspace structure created');
|
|
36
|
-
// Success message
|
|
37
34
|
const cwd = process.cwd();
|
|
38
|
-
|
|
39
|
-
|
|
35
|
+
const result = await service.initWorkspace({ name: workspaceName }, cwd, spinner);
|
|
36
|
+
// Success message
|
|
37
|
+
console.log(chalk.green(`\n✅ Workspace ready at ${path.relative(cwd, result.workspacePath)}\n`));
|
|
38
|
+
console.log(chalk.gray(`Next steps:\n` + ` 1. cd ${workspaceName}\n` + ` 2. Create your first app with launch77 commands\n`));
|
|
40
39
|
}
|
|
41
40
|
catch (error) {
|
|
42
41
|
if (error instanceof WorkspaceAlreadyExistsError) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init-workspace.js","sourceRoot":"","sources":["../../../../src/modules/workspace/commands/init-workspace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAE5B,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,GAAG,MAAM,KAAK,CAAA;AAErB,OAAO,EAAE,2BAA2B,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AACtG,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AAEnE,MAAM,UAAU,oBAAoB;IAClC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;SACvB,QAAQ,CAAC,QAAQ,EAAE,0DAA0D,CAAC;SAC9E,WAAW,CAAC,qCAAqC,CAAC;SAClD,MAAM,CAAC,KAAK,EAAE,IAAa,EAAE,EAAE;QAC9B,qCAAqC;QACrC,IAAI,aAAa,GAAG,IAAI,CAAA;QACxB,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,aAAa,GAAG,MAAM,KAAK,CAAC;gBAC1B,OAAO,EAAE,iBAAiB;gBAC1B,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;oBAClB,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACxC,OAAO,gCAAgC,CAAA;oBACzC,CAAC;oBACD,MAAM,YAAY,GAAG,cAAc,CAAA;oBACnC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;wBAC9B,OAAO,kEAAkE,CAAA;oBAC3E,CAAC;oBACD,OAAO,IAAI,CAAA;gBACb,CAAC;aACF,CAAC,CAAA;QACJ,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gCAAgC,aAAa,IAAI,CAAC,CAAC,CAAA;QAE1E,MAAM,OAAO,GAAG,IAAI,gBAAgB,EAAE,CAAA;QAEtC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,GAAG,CAAC,iCAAiC,CAAC,CAAC,KAAK,EAAE,CAAA;YAE9D,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"init-workspace.js","sourceRoot":"","sources":["../../../../src/modules/workspace/commands/init-workspace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAE5B,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,GAAG,MAAM,KAAK,CAAA;AAErB,OAAO,EAAE,2BAA2B,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AACtG,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AAEnE,MAAM,UAAU,oBAAoB;IAClC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;SACvB,QAAQ,CAAC,QAAQ,EAAE,0DAA0D,CAAC;SAC9E,WAAW,CAAC,qCAAqC,CAAC;SAClD,MAAM,CAAC,KAAK,EAAE,IAAa,EAAE,EAAE;QAC9B,qCAAqC;QACrC,IAAI,aAAa,GAAG,IAAI,CAAA;QACxB,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,aAAa,GAAG,MAAM,KAAK,CAAC;gBAC1B,OAAO,EAAE,iBAAiB;gBAC1B,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;oBAClB,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACxC,OAAO,gCAAgC,CAAA;oBACzC,CAAC;oBACD,MAAM,YAAY,GAAG,cAAc,CAAA;oBACnC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;wBAC9B,OAAO,kEAAkE,CAAA;oBAC3E,CAAC;oBACD,OAAO,IAAI,CAAA;gBACb,CAAC;aACF,CAAC,CAAA;QACJ,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gCAAgC,aAAa,IAAI,CAAC,CAAC,CAAA;QAE1E,MAAM,OAAO,GAAG,IAAI,gBAAgB,EAAE,CAAA;QAEtC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,GAAG,CAAC,iCAAiC,CAAC,CAAC,KAAK,EAAE,CAAA;YAE9D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;YACzB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;YAEjF,kBAAkB;YAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,0BAA0B,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAA;YAChG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,GAAG,WAAW,aAAa,IAAI,GAAG,qDAAqD,CAAC,CAAC,CAAA;QACjI,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,2BAA2B,EAAE,CAAC;gBACjD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,CAAA;gBAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACjB,CAAC;YAED,IAAI,KAAK,YAAY,yBAAyB,EAAE,CAAC;gBAC/C,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,CAAA;gBAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACjB,CAAC;YAED,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC,CAAC,CAAA;AACN,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { InitWorkspaceRequest, InitWorkspaceResult } from '../types/workspace-types.js';
|
|
2
|
+
import type { Ora } from 'ora';
|
|
2
3
|
export declare class WorkspaceService {
|
|
3
|
-
initWorkspace(request: InitWorkspaceRequest, cwd: string): Promise<InitWorkspaceResult>;
|
|
4
|
+
initWorkspace(request: InitWorkspaceRequest, cwd: string, spinner?: Ora): Promise<InitWorkspaceResult>;
|
|
4
5
|
private getTemplatePath;
|
|
5
6
|
}
|
|
6
7
|
//# sourceMappingURL=workspace-service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-service.d.ts","sourceRoot":"","sources":["../../../../src/modules/workspace/services/workspace-service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"workspace-service.d.ts","sourceRoot":"","sources":["../../../../src/modules/workspace/services/workspace-service.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAC5F,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAE9B,qBAAa,gBAAgB;IACrB,aAAa,CAAC,OAAO,EAAE,oBAAoB,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA6D5G,OAAO,CAAC,eAAe;CAYxB"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import * as path from 'path';
|
|
2
2
|
import { fileURLToPath } from 'url';
|
|
3
|
+
import { execa } from 'execa';
|
|
3
4
|
import * as filesystem from '../../../infrastructure/filesystem.js';
|
|
5
|
+
import * as npm from '../../../infrastructure/npm.js';
|
|
4
6
|
import { WorkspaceAlreadyExistsError } from '../errors/workspace-errors.js';
|
|
5
7
|
import { validateWorkspaceName } from '../utils/workspace-validators.js';
|
|
6
8
|
export class WorkspaceService {
|
|
7
|
-
async initWorkspace(request, cwd) {
|
|
9
|
+
async initWorkspace(request, cwd, spinner) {
|
|
8
10
|
const { name } = request;
|
|
9
11
|
// 1. Validate name
|
|
10
12
|
validateWorkspaceName(name);
|
|
@@ -27,6 +29,30 @@ export class WorkspaceService {
|
|
|
27
29
|
if (!(await filesystem.exists(workspaceJsonPath))) {
|
|
28
30
|
throw new Error('Failed to create workspace manifest (.launch77/workspace.json)');
|
|
29
31
|
}
|
|
32
|
+
// 7. Stop spinner before npm install
|
|
33
|
+
if (spinner) {
|
|
34
|
+
spinner.succeed('Workspace structure created');
|
|
35
|
+
}
|
|
36
|
+
// 8. Install dependencies
|
|
37
|
+
console.log('\nInstalling dependencies...');
|
|
38
|
+
try {
|
|
39
|
+
await npm.install(workspacePath);
|
|
40
|
+
console.log('✓ Dependencies installed');
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
console.warn('⚠ Warning: npm install failed:', error instanceof Error ? error.message : String(error));
|
|
44
|
+
console.warn('You may need to run npm install manually in the workspace directory');
|
|
45
|
+
}
|
|
46
|
+
// 9. Initialize changesets
|
|
47
|
+
console.log('\nInitializing changesets...');
|
|
48
|
+
try {
|
|
49
|
+
await execa('npx', ['changeset', 'init'], { cwd: workspacePath });
|
|
50
|
+
console.log('✓ Changesets initialized');
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
console.warn('⚠ Warning: changeset init failed:', error instanceof Error ? error.message : String(error));
|
|
54
|
+
console.warn('You may need to run npx changeset init manually in the workspace directory');
|
|
55
|
+
}
|
|
30
56
|
return {
|
|
31
57
|
workspacePath,
|
|
32
58
|
name,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-service.js","sourceRoot":"","sources":["../../../../src/modules/workspace/services/workspace-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAA;AAEnC,OAAO,KAAK,UAAU,MAAM,uCAAuC,CAAA;AACnE,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAA;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAA;
|
|
1
|
+
{"version":3,"file":"workspace-service.js","sourceRoot":"","sources":["../../../../src/modules/workspace/services/workspace-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# {{pluginNamePascal}} Plugin
|
|
2
|
+
|
|
3
|
+
{{description}}
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
launch77 plugin:install {{pluginName}}
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
After installation, the plugin will:
|
|
14
|
+
|
|
15
|
+
- TODO: Describe what the plugin does
|
|
16
|
+
- TODO: List any files created or modified
|
|
17
|
+
- TODO: Explain configuration options
|
|
18
|
+
|
|
19
|
+
## Development
|
|
20
|
+
|
|
21
|
+
### Building
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
npm run build
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### Testing
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
npm run typecheck
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Template Files
|
|
34
|
+
|
|
35
|
+
The `templates/` directory contains files that will be copied to the target application when this plugin is installed. Add any template files your plugin needs here.
|
|
36
|
+
|
|
37
|
+
## License
|
|
38
|
+
|
|
39
|
+
UNLICENSED
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
{
|
|
2
|
-
"name": "@
|
|
2
|
+
"name": "@{{workspaceName}}/plugin-{{pluginName}}",
|
|
3
3
|
"version": "1.0.0",
|
|
4
|
-
"description": "
|
|
4
|
+
"description": "{{description}}",
|
|
5
|
+
"license": "UNLICENSED",
|
|
6
|
+
"private": true,
|
|
5
7
|
"type": "module",
|
|
6
8
|
"main": "dist/generator.js",
|
|
7
9
|
"bin": {
|
|
@@ -18,7 +20,7 @@
|
|
|
18
20
|
"typecheck": "tsc --noEmit"
|
|
19
21
|
},
|
|
20
22
|
"dependencies": {
|
|
21
|
-
"@launch77/plugin-runtime": "
|
|
23
|
+
"@launch77/plugin-runtime": "^0.1.0",
|
|
22
24
|
"chalk": "^5.3.0"
|
|
23
25
|
},
|
|
24
26
|
"devDependencies": {
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
import chalk from 'chalk'
|
|
4
|
+
import { StandardGenerator } from '@launch77/plugin-runtime'
|
|
5
|
+
import type { GeneratorContext } from '@launch77/plugin-runtime'
|
|
6
|
+
|
|
7
|
+
export class {{pluginNamePascal}}Generator extends StandardGenerator {
|
|
8
|
+
constructor(context: GeneratorContext) {
|
|
9
|
+
super(context)
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
protected async injectCode(): Promise<void> {
|
|
13
|
+
console.log(chalk.cyan('🔧 Setting up {{pluginName}} plugin...\n'))
|
|
14
|
+
|
|
15
|
+
// TODO: Add your plugin's code injection logic here
|
|
16
|
+
// Examples:
|
|
17
|
+
// - Copy template files to the app
|
|
18
|
+
// - Modify package.json
|
|
19
|
+
// - Update configuration files
|
|
20
|
+
|
|
21
|
+
console.log(chalk.green(' ✓ Plugin setup complete\n'))
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
protected showNextSteps(): void {
|
|
25
|
+
console.log(chalk.white('\n' + '─'.repeat(60) + '\n'))
|
|
26
|
+
console.log(chalk.cyan('📋 {{pluginNamePascal}} Plugin Installed!\n'))
|
|
27
|
+
console.log(chalk.white('Next Steps:\n'))
|
|
28
|
+
|
|
29
|
+
console.log(chalk.gray('1. TODO: Add your first step'))
|
|
30
|
+
console.log(chalk.cyan(' npm run <command>\n'))
|
|
31
|
+
|
|
32
|
+
console.log(chalk.gray('2. TODO: Add your second step'))
|
|
33
|
+
console.log(chalk.cyan(' npm run <command>\n'))
|
|
34
|
+
|
|
35
|
+
console.log(chalk.white('Documentation:\n'))
|
|
36
|
+
console.log(chalk.gray('See README.md for detailed instructions.\n'))
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
// CLI entry point
|
|
41
|
+
async function main() {
|
|
42
|
+
const args = process.argv.slice(2)
|
|
43
|
+
const appPath = args.find((arg) => arg.startsWith('--appPath='))?.split('=')[1]
|
|
44
|
+
const appName = args.find((arg) => arg.startsWith('--appName='))?.split('=')[1]
|
|
45
|
+
const workspaceName = args.find((arg) => arg.startsWith('--workspaceName='))?.split('=')[1]
|
|
46
|
+
const pluginPath = args.find((arg) => arg.startsWith('--pluginPath='))?.split('=')[1]
|
|
47
|
+
|
|
48
|
+
if (!appPath || !appName || !workspaceName || !pluginPath) {
|
|
49
|
+
console.error(chalk.red('Error: Missing required arguments'))
|
|
50
|
+
console.error(chalk.gray('Usage: --appPath=<path> --appName=<name> --workspaceName=<name> --pluginPath=<path>'))
|
|
51
|
+
process.exit(1)
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
const generator = new {{pluginNamePascal}}Generator({ appPath, appName, workspaceName, pluginPath })
|
|
55
|
+
await generator.run()
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
if (import.meta.url === `file://${process.argv[1]}`) {
|
|
59
|
+
main().catch((error) => {
|
|
60
|
+
console.error(chalk.red('\n❌ Error during plugin setup:'))
|
|
61
|
+
console.error(error)
|
|
62
|
+
process.exit(1)
|
|
63
|
+
})
|
|
64
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
name: CI & Release
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
branches: [main, develop]
|
|
6
|
+
push:
|
|
7
|
+
branches: [main, develop]
|
|
8
|
+
|
|
9
|
+
permissions:
|
|
10
|
+
contents: write
|
|
11
|
+
pull-requests: write
|
|
12
|
+
id-token: write
|
|
13
|
+
|
|
14
|
+
concurrency: ${{ github.workflow }}-${{ github.ref }}
|
|
15
|
+
|
|
16
|
+
jobs:
|
|
17
|
+
build-and-test:
|
|
18
|
+
runs-on: ubuntu-latest
|
|
19
|
+
|
|
20
|
+
strategy:
|
|
21
|
+
matrix:
|
|
22
|
+
node-version: [20.x]
|
|
23
|
+
|
|
24
|
+
steps:
|
|
25
|
+
- uses: actions/checkout@v4
|
|
26
|
+
|
|
27
|
+
- name: Setup Node.js ${{ matrix.node-version }}
|
|
28
|
+
uses: actions/setup-node@v4
|
|
29
|
+
with:
|
|
30
|
+
node-version: ${{ matrix.node-version }}
|
|
31
|
+
cache: 'npm'
|
|
32
|
+
|
|
33
|
+
- name: Install dependencies
|
|
34
|
+
run: npm install
|
|
35
|
+
|
|
36
|
+
- name: Run linting
|
|
37
|
+
run: npm run lint
|
|
38
|
+
|
|
39
|
+
- name: Build packages
|
|
40
|
+
run: npm run build
|
|
41
|
+
|
|
42
|
+
- name: Run type checking
|
|
43
|
+
run: npm run typecheck
|
|
44
|
+
|
|
45
|
+
- name: Run tests
|
|
46
|
+
run: npm run test
|
|
47
|
+
|
|
48
|
+
- name: Run integration tests
|
|
49
|
+
run: npm run test:integration
|
|
50
|
+
|
|
51
|
+
quality-checks:
|
|
52
|
+
runs-on: ubuntu-latest
|
|
53
|
+
|
|
54
|
+
steps:
|
|
55
|
+
- uses: actions/checkout@v4
|
|
56
|
+
|
|
57
|
+
- name: Setup Node.js 20.x
|
|
58
|
+
uses: actions/setup-node@v4
|
|
59
|
+
with:
|
|
60
|
+
node-version: 20.x
|
|
61
|
+
cache: 'npm'
|
|
62
|
+
|
|
63
|
+
- name: Install dependencies
|
|
64
|
+
run: npm install
|
|
65
|
+
|
|
66
|
+
- name: Check for dependency vulnerabilities
|
|
67
|
+
run: npm audit --audit-level=high
|
|
68
|
+
|
|
69
|
+
- name: Check formatting
|
|
70
|
+
run: npx prettier --check "**/*.{js,jsx,ts,tsx,json,md}"
|
|
71
|
+
|
|
72
|
+
release:
|
|
73
|
+
name: Release
|
|
74
|
+
runs-on: ubuntu-latest
|
|
75
|
+
needs: [build-and-test, quality-checks]
|
|
76
|
+
if: github.ref == 'refs/heads/main' && github.event_name == 'push'
|
|
77
|
+
|
|
78
|
+
steps:
|
|
79
|
+
- name: Checkout Repo
|
|
80
|
+
uses: actions/checkout@v4
|
|
81
|
+
|
|
82
|
+
- name: Setup Node.js 20.x
|
|
83
|
+
uses: actions/setup-node@v4
|
|
84
|
+
with:
|
|
85
|
+
node-version: 20.x
|
|
86
|
+
cache: 'npm'
|
|
87
|
+
|
|
88
|
+
- name: Upgrade npm
|
|
89
|
+
run: npm i -g npm@latest
|
|
90
|
+
|
|
91
|
+
- name: Install Dependencies
|
|
92
|
+
run: npm install
|
|
93
|
+
|
|
94
|
+
- name: Create Release Pull Request or Publish to npm
|
|
95
|
+
id: changesets
|
|
96
|
+
uses: changesets/action@v1
|
|
97
|
+
with:
|
|
98
|
+
publish: npm run release
|
|
99
|
+
title: "chore: version packages"
|
|
100
|
+
commit: "chore: version packages"
|
|
101
|
+
env:
|
|
102
|
+
GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN }}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "workspace-name",
|
|
3
3
|
"private": true,
|
|
4
|
+
"license": "UNLICENSED",
|
|
4
5
|
"packageManager": "npm@9.0.0",
|
|
5
6
|
"workspaces": [
|
|
6
7
|
"apps/*",
|
|
@@ -12,10 +13,24 @@
|
|
|
12
13
|
"dev": "turbo run dev",
|
|
13
14
|
"build": "turbo run build",
|
|
14
15
|
"test": "turbo run test",
|
|
16
|
+
"test:integration": "turbo run test:integration",
|
|
15
17
|
"lint": "turbo run lint",
|
|
16
|
-
"typecheck": "turbo run typecheck"
|
|
18
|
+
"typecheck": "turbo run typecheck",
|
|
19
|
+
"changeset": "changeset",
|
|
20
|
+
"version-packages": "changeset version",
|
|
21
|
+
"release": "turbo run build lint typecheck test && changeset publish",
|
|
22
|
+
"prepare": "husky"
|
|
17
23
|
},
|
|
18
24
|
"devDependencies": {
|
|
25
|
+
"@changesets/cli": "^2.29.8",
|
|
26
|
+
"@typescript-eslint/eslint-plugin": "^6.0.0",
|
|
27
|
+
"@typescript-eslint/parser": "^6.0.0",
|
|
28
|
+
"eslint": "^8.56.0",
|
|
29
|
+
"eslint-config-prettier": "^9.0.0",
|
|
30
|
+
"eslint-plugin-import": "^2.29.0",
|
|
31
|
+
"husky": "^9.0.0",
|
|
32
|
+
"lint-staged": "^15.0.0",
|
|
33
|
+
"prettier": "^3.2.0",
|
|
19
34
|
"turbo": "^2.0.0"
|
|
20
35
|
}
|
|
21
36
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type Launch77LocationType = 'workspace-root' | 'workspace-app' | 'unknown';
|
|
1
|
+
export type Launch77LocationType = 'workspace-root' | 'workspace-app' | 'workspace-library' | 'workspace-plugin' | 'workspace-app-template' | 'unknown';
|
|
2
2
|
export interface Launch77Context {
|
|
3
3
|
isValid: boolean;
|
|
4
4
|
locationType: Launch77LocationType;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launch77-context.d.ts","sourceRoot":"","sources":["../../src/utils/launch77-context.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,oBAAoB,GAAG,gBAAgB,GAAG,eAAe,GAAG,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"launch77-context.d.ts","sourceRoot":"","sources":["../../src/utils/launch77-context.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,oBAAoB,GAAG,gBAAgB,GAAG,eAAe,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,wBAAwB,GAAG,SAAS,CAAA;AAEvJ,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAA;IAChB,YAAY,EAAE,oBAAoB,CAAA;IAClC,aAAa,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,gBAAgB,EAAE,MAAM,CAAA;IACxB,aAAa,EAAE,MAAM,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;CACpB;AAsGD;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAyDjF"}
|
|
@@ -34,6 +34,9 @@ async function findWorkspaceRoot(startDir) {
|
|
|
34
34
|
* Parse the directory structure to determine location context
|
|
35
35
|
* Based on patterns:
|
|
36
36
|
* - apps/[name] → workspace-app
|
|
37
|
+
* - libraries/[name] → workspace-library
|
|
38
|
+
* - plugins/[name] → workspace-plugin
|
|
39
|
+
* - app-templates/[name] → workspace-app-template
|
|
37
40
|
* - (empty or root) → workspace-root
|
|
38
41
|
*/
|
|
39
42
|
function parseLocationFromPath(cwdPath, workspaceRoot) {
|
|
@@ -50,8 +53,28 @@ function parseLocationFromPath(cwdPath, workspaceRoot) {
|
|
|
50
53
|
appName: parts[1],
|
|
51
54
|
};
|
|
52
55
|
}
|
|
53
|
-
//
|
|
54
|
-
|
|
56
|
+
// libraries/[lib-name]/...
|
|
57
|
+
if (parts[0] === 'libraries' && parts.length >= 2) {
|
|
58
|
+
return {
|
|
59
|
+
locationType: 'workspace-library',
|
|
60
|
+
appName: parts[1],
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
// plugins/[plugin-name]/...
|
|
64
|
+
if (parts[0] === 'plugins' && parts.length >= 2) {
|
|
65
|
+
return {
|
|
66
|
+
locationType: 'workspace-plugin',
|
|
67
|
+
appName: parts[1],
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
// app-templates/[template-name]/...
|
|
71
|
+
if (parts[0] === 'app-templates' && parts.length >= 2) {
|
|
72
|
+
return {
|
|
73
|
+
locationType: 'workspace-app-template',
|
|
74
|
+
appName: parts[1],
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
// Somewhere else in workspace
|
|
55
78
|
return { locationType: 'workspace-root' };
|
|
56
79
|
}
|
|
57
80
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launch77-context.js","sourceRoot":"","sources":["../../src/utils/launch77-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAE5B,OAAO,EAAE,MAAM,UAAU,CAAA;AAezB,MAAM,kBAAkB,GAAG,0BAA0B,CAAA;AAMrD;;GAEG;AACH,KAAK,UAAU,eAAe,CAAC,GAAW;IACxC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAA;IACvD,OAAO,MAAM,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAA;AAC1C,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,qBAAqB,CAAC,aAAqB;IACxD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAA;IACjE,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;AACxC,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,iBAAiB,CAAC,QAAgB;IAC/C,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IACvC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAA;IAE3C,OAAO,UAAU,KAAK,OAAO,EAAE,CAAC;QAC9B,IAAI,MAAM,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC;YACtC,OAAO,UAAU,CAAA;QACnB,CAAC;QACD,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;IACvC,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAOD
|
|
1
|
+
{"version":3,"file":"launch77-context.js","sourceRoot":"","sources":["../../src/utils/launch77-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launch77-validation.d.ts","sourceRoot":"","sources":["../../src/utils/launch77-validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"launch77-validation.d.ts","sourceRoot":"","sources":["../../src/utils/launch77-validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAE/D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,eAAe,GAAG,gBAAgB,CAgBnF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,eAAe,GAAG,gBAAgB,CAwB7E"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Convert a kebab-case or snake_case string to PascalCase
|
|
3
|
+
*
|
|
4
|
+
* @param str - The string to convert (e.g., "my-plugin" or "my_plugin")
|
|
5
|
+
* @returns PascalCase string (e.g., "MyPlugin")
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* toPascalCase('my-plugin') // 'MyPlugin'
|
|
9
|
+
* toPascalCase('release') // 'Release'
|
|
10
|
+
* toPascalCase('my-awesome-plugin') // 'MyAwesomePlugin'
|
|
11
|
+
*/
|
|
12
|
+
export declare function toPascalCase(str: string): string;
|
|
13
|
+
//# sourceMappingURL=string.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"string.d.ts","sourceRoot":"","sources":["../../src/utils/string.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKhD"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Convert a kebab-case or snake_case string to PascalCase
|
|
3
|
+
*
|
|
4
|
+
* @param str - The string to convert (e.g., "my-plugin" or "my_plugin")
|
|
5
|
+
* @returns PascalCase string (e.g., "MyPlugin")
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* toPascalCase('my-plugin') // 'MyPlugin'
|
|
9
|
+
* toPascalCase('release') // 'Release'
|
|
10
|
+
* toPascalCase('my-awesome-plugin') // 'MyAwesomePlugin'
|
|
11
|
+
*/
|
|
12
|
+
export function toPascalCase(str) {
|
|
13
|
+
return str
|
|
14
|
+
.split(/[-_]/)
|
|
15
|
+
.map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
|
|
16
|
+
.join('');
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=string.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"string.js","sourceRoot":"","sources":["../../src/utils/string.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,OAAO,GAAG;SACP,KAAK,CAAC,MAAM,CAAC;SACb,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;SACzE,IAAI,CAAC,EAAE,CAAC,CAAA;AACb,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@launch77/cli",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "Launch77 Platform CLI
|
|
3
|
+
"version": "1.4.0",
|
|
4
|
+
"description": "Launch77 Platform CLI",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"bin": {
|
|
@@ -15,9 +15,12 @@
|
|
|
15
15
|
"dev": "tsx src/cli.ts",
|
|
16
16
|
"typecheck": "tsc --noEmit",
|
|
17
17
|
"lint": "eslint src/**/*.ts",
|
|
18
|
-
"lint:fix": "eslint src/**/*.ts --fix"
|
|
18
|
+
"lint:fix": "eslint src/**/*.ts --fix",
|
|
19
|
+
"test": "vitest run",
|
|
20
|
+
"test:integration": "vitest run --config vitest.integration.config.ts"
|
|
19
21
|
},
|
|
20
22
|
"dependencies": {
|
|
23
|
+
"@launch77/plugin-runtime": "*",
|
|
21
24
|
"@types/inquirer": "^9.0.9",
|
|
22
25
|
"chalk": "^5.3.0",
|
|
23
26
|
"commander": "^11.1.0",
|
|
@@ -38,11 +41,5 @@
|
|
|
38
41
|
"tsx": "^4.7.0",
|
|
39
42
|
"typescript": "^5.3.3",
|
|
40
43
|
"vitest": "^4.0.16"
|
|
41
|
-
}
|
|
42
|
-
"workspaces": [
|
|
43
|
-
"apps/*",
|
|
44
|
-
"libraries/*",
|
|
45
|
-
"plugins/*",
|
|
46
|
-
"app-templates/*"
|
|
47
|
-
]
|
|
44
|
+
}
|
|
48
45
|
}
|
package/src/cli.ts
CHANGED
|
@@ -5,7 +5,9 @@ import { Command } from 'commander'
|
|
|
5
5
|
import { createAppCommand, deleteAppCommand, generateManifestCommand, validateManifestCommand } from './modules/app/index.js'
|
|
6
6
|
import { scanCommand, createGenerateCommand } from './modules/catalog/index.js'
|
|
7
7
|
import { deployInitCommand, deployLogsCommand, deployStatusCommand } from './modules/deploy/index.js'
|
|
8
|
-
import {
|
|
8
|
+
import { gitConnectCommand } from './modules/git/index.js'
|
|
9
|
+
import { pluginInstallCommand, pluginCreateCommand } from './modules/plugin/index.js'
|
|
10
|
+
import { releaseInitCommand } from './modules/release/index.js'
|
|
9
11
|
import { createStartupCommand } from './modules/startup/index.js'
|
|
10
12
|
import { getPackageVersion } from './utils/version.js'
|
|
11
13
|
import { initWorkspaceCommand } from './modules/workspace/index.js'
|
|
@@ -23,9 +25,16 @@ program.addCommand(deleteAppCommand())
|
|
|
23
25
|
program.addCommand(generateManifestCommand())
|
|
24
26
|
program.addCommand(validateManifestCommand())
|
|
25
27
|
program.addCommand(pluginInstallCommand())
|
|
28
|
+
program.addCommand(pluginCreateCommand())
|
|
26
29
|
program.addCommand(scanCommand())
|
|
27
30
|
program.addCommand(createGenerateCommand())
|
|
28
31
|
|
|
32
|
+
// Git commands
|
|
33
|
+
program.addCommand(gitConnectCommand())
|
|
34
|
+
|
|
35
|
+
// Release commands
|
|
36
|
+
program.addCommand(releaseInitCommand())
|
|
37
|
+
|
|
29
38
|
// Deploy commands
|
|
30
39
|
program.addCommand(deployInitCommand())
|
|
31
40
|
program.addCommand(deployStatusCommand())
|