@idealyst/cli 1.1.9 → 1.2.1
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/dist/commands/add.js +233 -0
- package/dist/commands/add.js.map +1 -0
- package/dist/commands/index.js +13 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/info.js +193 -0
- package/dist/commands/info.js.map +1 -0
- package/dist/commands/init.js +155 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/constants.js +119 -0
- package/dist/constants.js.map +1 -0
- package/dist/generators/core/index.js +23 -0
- package/dist/generators/core/index.js.map +1 -0
- package/dist/generators/core/mobile.js +286 -0
- package/dist/generators/core/mobile.js.map +1 -0
- package/dist/generators/core/shared.js +207 -0
- package/dist/generators/core/shared.js.map +1 -0
- package/dist/generators/core/web.js +377 -0
- package/dist/generators/core/web.js.map +1 -0
- package/dist/generators/extensions/api.js +223 -0
- package/dist/generators/extensions/api.js.map +1 -0
- package/dist/generators/extensions/devcontainer.js +510 -0
- package/dist/generators/extensions/devcontainer.js.map +1 -0
- package/dist/generators/extensions/graphql.js +202 -0
- package/dist/generators/extensions/graphql.js.map +1 -0
- package/dist/generators/extensions/index.js +17 -0
- package/dist/generators/extensions/index.js.map +1 -0
- package/dist/generators/extensions/prisma.js +249 -0
- package/dist/generators/extensions/prisma.js.map +1 -0
- package/dist/generators/extensions/trpc.js +258 -0
- package/dist/generators/extensions/trpc.js.map +1 -0
- package/dist/generators/index.js +106 -4
- package/dist/generators/index.js.map +1 -1
- package/dist/generators/reactNative.js +177 -0
- package/dist/generators/reactNative.js.map +1 -0
- package/dist/generators/workspace.js +272 -0
- package/dist/generators/workspace.js.map +1 -0
- package/dist/identifiers/android.js +75 -0
- package/dist/identifiers/android.js.map +1 -0
- package/dist/identifiers/index.js +35 -0
- package/dist/identifiers/index.js.map +1 -0
- package/dist/identifiers/ios.js +65 -0
- package/dist/identifiers/ios.js.map +1 -0
- package/dist/index.js +41 -319
- package/dist/index.js.map +1 -1
- package/dist/templates/copier.js +135 -0
- package/dist/templates/copier.js.map +1 -0
- package/dist/templates/index.js +23 -0
- package/dist/templates/index.js.map +1 -0
- package/dist/templates/merger.js +113 -0
- package/dist/templates/merger.js.map +1 -0
- package/dist/templates/processor.js +142 -0
- package/dist/templates/processor.js.map +1 -0
- package/dist/types/commands/add.d.ts +14 -0
- package/dist/types/commands/index.d.ts +6 -0
- package/dist/types/commands/info.d.ts +10 -0
- package/dist/types/commands/init.d.ts +19 -0
- package/dist/types/constants.d.ts +76 -0
- package/dist/types/generators/core/index.d.ts +6 -0
- package/dist/types/generators/core/mobile.d.ts +13 -0
- package/dist/types/generators/core/shared.d.ts +8 -0
- package/dist/types/generators/core/web.d.ts +8 -0
- package/dist/types/generators/extensions/api.d.ts +8 -0
- package/dist/types/generators/extensions/devcontainer.d.ts +15 -0
- package/dist/types/generators/extensions/graphql.d.ts +8 -0
- package/dist/types/generators/extensions/index.d.ts +8 -0
- package/dist/types/generators/extensions/prisma.d.ts +8 -0
- package/dist/types/generators/extensions/trpc.d.ts +9 -0
- package/dist/types/generators/index.d.ts +11 -3
- package/dist/types/generators/reactNative.d.ts +19 -0
- package/dist/types/generators/workspace.d.ts +8 -0
- package/dist/types/identifiers/android.d.ts +26 -0
- package/dist/types/identifiers/index.d.ts +26 -0
- package/dist/types/identifiers/ios.d.ts +21 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/templates/copier.d.ts +24 -0
- package/dist/types/templates/index.d.ts +6 -0
- package/dist/types/templates/merger.d.ts +43 -0
- package/dist/types/templates/processor.d.ts +39 -0
- package/dist/types/types.d.ts +153 -5
- package/dist/types/utils/filesystem.d.ts +56 -0
- package/dist/types/utils/index.d.ts +7 -0
- package/dist/types/utils/logger.d.ts +58 -0
- package/dist/types/utils/shell.d.ts +35 -0
- package/dist/types/utils/validation.d.ts +32 -0
- package/dist/types/wizard/index.d.ts +20 -0
- package/dist/types/wizard/steps/apiExtension.d.ts +5 -0
- package/dist/types/wizard/steps/appDisplayName.d.ts +5 -0
- package/dist/types/wizard/steps/devcontainerExtension.d.ts +5 -0
- package/dist/types/wizard/steps/graphqlExtension.d.ts +5 -0
- package/dist/types/wizard/steps/index.d.ts +12 -0
- package/dist/types/wizard/steps/orgDomain.d.ts +5 -0
- package/dist/types/wizard/steps/prismaExtension.d.ts +5 -0
- package/dist/types/wizard/steps/projectName.d.ts +5 -0
- package/dist/types/wizard/steps/summary.d.ts +5 -0
- package/dist/types/wizard/steps/trpcExtension.d.ts +5 -0
- package/dist/types/wizard/validators.d.ts +17 -0
- package/dist/types.js +41 -0
- package/dist/types.js.map +1 -1
- package/dist/utils/filesystem.js +173 -0
- package/dist/utils/filesystem.js.map +1 -0
- package/dist/utils/index.js +24 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/logger.js +95 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/shell.js +113 -0
- package/dist/utils/shell.js.map +1 -0
- package/dist/utils/validation.js +196 -0
- package/dist/utils/validation.js.map +1 -0
- package/dist/wizard/index.js +177 -0
- package/dist/wizard/index.js.map +1 -0
- package/dist/wizard/steps/apiExtension.js +33 -0
- package/dist/wizard/steps/apiExtension.js.map +1 -0
- package/dist/wizard/steps/appDisplayName.js +53 -0
- package/dist/wizard/steps/appDisplayName.js.map +1 -0
- package/dist/wizard/steps/devcontainerExtension.js +78 -0
- package/dist/wizard/steps/devcontainerExtension.js.map +1 -0
- package/dist/wizard/steps/graphqlExtension.js +37 -0
- package/dist/wizard/steps/graphqlExtension.js.map +1 -0
- package/dist/wizard/steps/index.js +25 -0
- package/dist/wizard/steps/index.js.map +1 -0
- package/dist/wizard/steps/orgDomain.js +40 -0
- package/dist/wizard/steps/orgDomain.js.map +1 -0
- package/dist/wizard/steps/prismaExtension.js +33 -0
- package/dist/wizard/steps/prismaExtension.js.map +1 -0
- package/dist/wizard/steps/projectName.js +40 -0
- package/dist/wizard/steps/projectName.js.map +1 -0
- package/dist/wizard/steps/summary.js +107 -0
- package/dist/wizard/steps/summary.js.map +1 -0
- package/dist/wizard/steps/trpcExtension.js +37 -0
- package/dist/wizard/steps/trpcExtension.js.map +1 -0
- package/dist/wizard/validators.js +35 -0
- package/dist/wizard/validators.js.map +1 -0
- package/package.json +6 -19
- package/README.md +0 -110
- package/dist/generators/init.js +0 -268
- package/dist/generators/init.js.map +0 -1
- package/dist/generators/utils.js +0 -682
- package/dist/generators/utils.js.map +0 -1
- package/dist/scripts/configure-react-native-monorepo.js +0 -144
- package/dist/scripts/configure-react-native-monorepo.js.map +0 -1
- package/dist/template/.devcontainer/Dockerfile +0 -26
- package/dist/template/.devcontainer/devcontainer.json +0 -113
- package/dist/template/.devcontainer/docker-compose.yml +0 -59
- package/dist/template/.devcontainer/figma-mcp.sh +0 -32
- package/dist/template/.devcontainer/gitignore.template +0 -2
- package/dist/template/.devcontainer/setup.sh +0 -45
- package/dist/template/DOCKER.md +0 -0
- package/dist/template/Dockerfile +0 -111
- package/dist/template/README.md +0 -233
- package/dist/template/docker/nginx/prod.conf +0 -238
- package/dist/template/docker/nginx.conf +0 -131
- package/dist/template/docker/postgres/init.sql +0 -41
- package/dist/template/docker/prometheus/prometheus.yml +0 -52
- package/dist/template/docker-compose.prod.yml +0 -146
- package/dist/template/docker-compose.yml +0 -143
- package/dist/template/dockerignore.template +0 -151
- package/dist/template/env.example.template +0 -36
- package/dist/template/gitignore.template +0 -56
- package/dist/template/jest.config.js +0 -20
- package/dist/template/mcp.json.template +0 -8
- package/dist/template/package.json +0 -45
- package/dist/template/packages/api/README.md +0 -510
- package/dist/template/packages/api/__tests__/api.test.ts +0 -26
- package/dist/template/packages/api/env.example.template +0 -6
- package/dist/template/packages/api/gitignore.template +0 -35
- package/dist/template/packages/api/jest.config.js +0 -23
- package/dist/template/packages/api/jest.setup.js +0 -9
- package/dist/template/packages/api/package.json +0 -66
- package/dist/template/packages/api/src/context.ts +0 -52
- package/dist/template/packages/api/src/controllers/TestController.ts +0 -0
- package/dist/template/packages/api/src/graphql/builder.ts +0 -75
- package/dist/template/packages/api/src/graphql/generated.ts +0 -64
- package/dist/template/packages/api/src/graphql/index.ts +0 -75
- package/dist/template/packages/api/src/graphql/types/index.ts +0 -44
- package/dist/template/packages/api/src/graphql/types/test.ts +0 -245
- package/dist/template/packages/api/src/index.ts +0 -26
- package/dist/template/packages/api/src/lib/database.ts +0 -23
- package/dist/template/packages/api/src/router/index.ts +0 -163
- package/dist/template/packages/api/src/routers/test.ts +0 -161
- package/dist/template/packages/api/src/server.ts +0 -68
- package/dist/template/packages/api/src/trpc.ts +0 -28
- package/dist/template/packages/api/tsconfig.json +0 -44
- package/dist/template/packages/database/README.md +0 -162
- package/dist/template/packages/database/gitignore.template +0 -41
- package/dist/template/packages/database/package.json +0 -49
- package/dist/template/packages/database/prisma/seed.ts +0 -64
- package/dist/template/packages/database/schema.prisma +0 -107
- package/dist/template/packages/database/src/index.ts +0 -15
- package/dist/template/packages/database/src/validators.ts +0 -10
- package/dist/template/packages/database/tsconfig.json +0 -18
- package/dist/template/packages/mobile/README.md +0 -86
- package/dist/template/packages/mobile/__tests__/App.test.tsx +0 -156
- package/dist/template/packages/mobile/__tests__/components.test.tsx +0 -300
- package/dist/template/packages/mobile/app.json +0 -5
- package/dist/template/packages/mobile/babel.config.js +0 -10
- package/dist/template/packages/mobile/gitignore.template +0 -73
- package/dist/template/packages/mobile/index.js +0 -6
- package/dist/template/packages/mobile/jest.config.js +0 -21
- package/dist/template/packages/mobile/jest.setup.js +0 -12
- package/dist/template/packages/mobile/metro.config.js +0 -36
- package/dist/template/packages/mobile/package.json +0 -60
- package/dist/template/packages/mobile/src/App.tsx +0 -8
- package/dist/template/packages/mobile/src/utils/trpc.ts +0 -7
- package/dist/template/packages/mobile/tsconfig.json +0 -28
- package/dist/template/packages/shared/README.md +0 -135
- package/dist/template/packages/shared/__tests__/shared.test.ts +0 -51
- package/dist/template/packages/shared/gitignore.template +0 -35
- package/dist/template/packages/shared/jest.config.js +0 -22
- package/dist/template/packages/shared/package.json +0 -68
- package/dist/template/packages/shared/src/components/App.tsx +0 -57
- package/dist/template/packages/shared/src/components/HelloWorld.tsx +0 -531
- package/dist/template/packages/shared/src/components/index.ts +0 -1
- package/dist/template/packages/shared/src/graphql/client.ts +0 -34
- package/dist/template/packages/shared/src/index.ts +0 -22
- package/dist/template/packages/shared/src/navigation/AppRouter.tsx +0 -565
- package/dist/template/packages/shared/src/trpc/client.ts +0 -44
- package/dist/template/packages/shared/tsconfig.json +0 -22
- package/dist/template/packages/web/README.md +0 -131
- package/dist/template/packages/web/__tests__/App.test.tsx +0 -342
- package/dist/template/packages/web/__tests__/components.test.tsx +0 -564
- package/dist/template/packages/web/gitignore.template +0 -35
- package/dist/template/packages/web/index.html +0 -13
- package/dist/template/packages/web/jest.config.js +0 -27
- package/dist/template/packages/web/jest.setup.js +0 -24
- package/dist/template/packages/web/package.json +0 -69
- package/dist/template/packages/web/src/App.tsx +0 -14
- package/dist/template/packages/web/src/components/TestDemo.tsx +0 -164
- package/dist/template/packages/web/src/main.tsx +0 -25
- package/dist/template/packages/web/src/utils/trpc.ts +0 -7
- package/dist/template/packages/web/tsconfig.json +0 -26
- package/dist/template/packages/web/vite.config.ts +0 -98
- package/dist/template/setup.sh +0 -30
- package/dist/template/tsconfig.json +0 -22
- package/dist/template/yarnrc.yml.template +0 -4
- package/dist/types/generators/init.d.ts +0 -5
- package/dist/types/generators/utils.d.ts +0 -45
- package/dist/types/scripts/configure-react-native-monorepo.d.ts +0 -23
- package/template/.devcontainer/Dockerfile +0 -26
- package/template/.devcontainer/devcontainer.json +0 -113
- package/template/.devcontainer/docker-compose.yml +0 -59
- package/template/.devcontainer/figma-mcp.sh +0 -32
- package/template/.devcontainer/setup.sh +0 -45
- package/template/.dockerignore +0 -151
- package/template/.env.example +0 -36
- package/template/.env.production +0 -56
- package/template/DOCKER.md +0 -0
- package/template/Dockerfile +0 -111
- package/template/README.md +0 -233
- package/template/docker/nginx/prod.conf +0 -238
- package/template/docker/nginx.conf +0 -131
- package/template/docker/postgres/init.sql +0 -41
- package/template/docker/prometheus/prometheus.yml +0 -52
- package/template/docker-compose.prod.yml +0 -146
- package/template/docker-compose.yml +0 -143
- package/template/jest.config.js +0 -20
- package/template/package.json +0 -45
- package/template/packages/api/.env.example +0 -6
- package/template/packages/api/README.md +0 -510
- package/template/packages/api/__tests__/api.test.ts +0 -26
- package/template/packages/api/jest.config.js +0 -23
- package/template/packages/api/jest.setup.js +0 -9
- package/template/packages/api/package.json +0 -66
- package/template/packages/api/src/context.ts +0 -52
- package/template/packages/api/src/controllers/TestController.ts +0 -0
- package/template/packages/api/src/graphql/builder.ts +0 -75
- package/template/packages/api/src/graphql/generated.ts +0 -64
- package/template/packages/api/src/graphql/index.ts +0 -75
- package/template/packages/api/src/graphql/types/index.ts +0 -44
- package/template/packages/api/src/graphql/types/test.ts +0 -245
- package/template/packages/api/src/index.ts +0 -26
- package/template/packages/api/src/lib/database.ts +0 -23
- package/template/packages/api/src/router/index.ts +0 -163
- package/template/packages/api/src/routers/test.ts +0 -161
- package/template/packages/api/src/server.ts +0 -68
- package/template/packages/api/src/trpc.ts +0 -28
- package/template/packages/api/tsconfig.json +0 -44
- package/template/packages/database/README.md +0 -162
- package/template/packages/database/package.json +0 -49
- package/template/packages/database/prisma/seed.ts +0 -64
- package/template/packages/database/schema.prisma +0 -107
- package/template/packages/database/src/index.ts +0 -15
- package/template/packages/database/src/validators.ts +0 -10
- package/template/packages/database/tsconfig.json +0 -18
- package/template/packages/mobile/README.md +0 -86
- package/template/packages/mobile/__tests__/App.test.tsx +0 -156
- package/template/packages/mobile/__tests__/components.test.tsx +0 -300
- package/template/packages/mobile/app.json +0 -5
- package/template/packages/mobile/babel.config.js +0 -26
- package/template/packages/mobile/index.js +0 -8
- package/template/packages/mobile/jest.config.js +0 -21
- package/template/packages/mobile/jest.setup.js +0 -12
- package/template/packages/mobile/metro.config.js +0 -36
- package/template/packages/mobile/package.json +0 -60
- package/template/packages/mobile/src/App.tsx +0 -8
- package/template/packages/mobile/src/utils/trpc.ts +0 -7
- package/template/packages/mobile/tsconfig.json +0 -28
- package/template/packages/shared/README.md +0 -135
- package/template/packages/shared/__tests__/shared.test.ts +0 -51
- package/template/packages/shared/jest.config.js +0 -22
- package/template/packages/shared/package.json +0 -68
- package/template/packages/shared/src/components/App.tsx +0 -57
- package/template/packages/shared/src/components/HelloWorld.tsx +0 -531
- package/template/packages/shared/src/components/index.ts +0 -1
- package/template/packages/shared/src/graphql/client.ts +0 -34
- package/template/packages/shared/src/index.ts +0 -25
- package/template/packages/shared/src/navigation/AppRouter.tsx +0 -565
- package/template/packages/shared/src/trpc/client.ts +0 -44
- package/template/packages/shared/src/unistyles.ts +0 -50
- package/template/packages/shared/tsconfig.json +0 -22
- package/template/packages/web/README.md +0 -131
- package/template/packages/web/__tests__/App.test.tsx +0 -342
- package/template/packages/web/__tests__/components.test.tsx +0 -564
- package/template/packages/web/index.html +0 -13
- package/template/packages/web/jest.config.js +0 -27
- package/template/packages/web/jest.setup.js +0 -24
- package/template/packages/web/package.json +0 -69
- package/template/packages/web/src/App.tsx +0 -14
- package/template/packages/web/src/components/TestDemo.tsx +0 -164
- package/template/packages/web/src/main.tsx +0 -27
- package/template/packages/web/src/utils/trpc.ts +0 -7
- package/template/packages/web/tsconfig.json +0 -26
- package/template/packages/web/vite.config.ts +0 -114
- package/template/setup.sh +0 -30
- package/template/tsconfig.json +0 -22
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Add command - adds a new project to an existing workspace
|
|
4
|
+
*/
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
17
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
18
|
+
}) : function(o, v) {
|
|
19
|
+
o["default"] = v;
|
|
20
|
+
});
|
|
21
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
22
|
+
var ownKeys = function(o) {
|
|
23
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
24
|
+
var ar = [];
|
|
25
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
26
|
+
return ar;
|
|
27
|
+
};
|
|
28
|
+
return ownKeys(o);
|
|
29
|
+
};
|
|
30
|
+
return function (mod) {
|
|
31
|
+
if (mod && mod.__esModule) return mod;
|
|
32
|
+
var result = {};
|
|
33
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
34
|
+
__setModuleDefault(result, mod);
|
|
35
|
+
return result;
|
|
36
|
+
};
|
|
37
|
+
})();
|
|
38
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
|
+
};
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
exports.addCommand = addCommand;
|
|
43
|
+
const path_1 = __importDefault(require("path"));
|
|
44
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
45
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
46
|
+
const types_1 = require("../types");
|
|
47
|
+
const logger_1 = require("../utils/logger");
|
|
48
|
+
const core_1 = require("../generators/core");
|
|
49
|
+
const api_1 = require("../generators/extensions/api");
|
|
50
|
+
const merger_1 = require("../templates/merger");
|
|
51
|
+
const processor_1 = require("../templates/processor");
|
|
52
|
+
const constants_1 = require("../constants");
|
|
53
|
+
/**
|
|
54
|
+
* Handle the `idealyst-beta add` command
|
|
55
|
+
*/
|
|
56
|
+
async function addCommand(name, options) {
|
|
57
|
+
try {
|
|
58
|
+
// Validate project type
|
|
59
|
+
const validTypes = ['web', 'mobile', 'api', 'shared'];
|
|
60
|
+
if (!validTypes.includes(options.type)) {
|
|
61
|
+
logger_1.logger.error(`Invalid project type: ${options.type}`);
|
|
62
|
+
logger_1.logger.dim(`Valid types: ${validTypes.join(', ')}`);
|
|
63
|
+
process.exit(1);
|
|
64
|
+
}
|
|
65
|
+
// Find workspace root
|
|
66
|
+
const workspaceRoot = await findWorkspaceRoot(process.cwd());
|
|
67
|
+
if (!workspaceRoot) {
|
|
68
|
+
throw new types_1.NotInWorkspaceError('add');
|
|
69
|
+
}
|
|
70
|
+
// Get workspace info from root package.json
|
|
71
|
+
const rootPackageJson = await fs_extra_1.default.readJson(path_1.default.join(workspaceRoot, 'package.json'));
|
|
72
|
+
const workspaceScope = extractWorkspaceScope(rootPackageJson.name);
|
|
73
|
+
logger_1.logger.header(`Adding ${options.type} project: ${name}`);
|
|
74
|
+
// Build template data
|
|
75
|
+
const templateData = (0, processor_1.buildTemplateData)({
|
|
76
|
+
projectName: name,
|
|
77
|
+
appDisplayName: options.appName || toTitleCase(name.replace(/-/g, ' ')),
|
|
78
|
+
iosBundleId: '', // Will be set for mobile
|
|
79
|
+
androidPackageName: '', // Will be set for mobile
|
|
80
|
+
extensions: {
|
|
81
|
+
api: false,
|
|
82
|
+
prisma: false,
|
|
83
|
+
trpc: options.withTrpc ?? false,
|
|
84
|
+
graphql: options.withGraphql ?? false,
|
|
85
|
+
devcontainer: false,
|
|
86
|
+
},
|
|
87
|
+
}, constants_1.IDEALYST_VERSION);
|
|
88
|
+
// Override workspace scope
|
|
89
|
+
templateData.workspaceScope = workspaceScope;
|
|
90
|
+
templateData.packageName = `@${workspaceScope}/${name}`;
|
|
91
|
+
// Generate the project based on type
|
|
92
|
+
const type = options.type;
|
|
93
|
+
const projectPath = path_1.default.join(workspaceRoot, 'packages', name);
|
|
94
|
+
// Check if project already exists
|
|
95
|
+
if (await fs_extra_1.default.pathExists(projectPath)) {
|
|
96
|
+
logger_1.logger.error(`Project already exists: packages/${name}`);
|
|
97
|
+
process.exit(1);
|
|
98
|
+
}
|
|
99
|
+
switch (type) {
|
|
100
|
+
case 'web':
|
|
101
|
+
await (0, core_1.generateWebPackage)(workspaceRoot, {
|
|
102
|
+
...templateData,
|
|
103
|
+
projectName: name,
|
|
104
|
+
});
|
|
105
|
+
break;
|
|
106
|
+
case 'mobile':
|
|
107
|
+
if (!options.appName) {
|
|
108
|
+
logger_1.logger.error('Mobile projects require --app-name');
|
|
109
|
+
logger_1.logger.dim('Example: idealyst-beta add admin --type mobile --app-name "Admin App"');
|
|
110
|
+
process.exit(1);
|
|
111
|
+
}
|
|
112
|
+
// For mobile, we need bundle IDs
|
|
113
|
+
const { generateIdentifiers } = await Promise.resolve().then(() => __importStar(require('../identifiers')));
|
|
114
|
+
const identifiers = generateIdentifiers(extractOrgDomain(rootPackageJson.name), name);
|
|
115
|
+
await (0, core_1.generateMobilePackage)(workspaceRoot, {
|
|
116
|
+
...templateData,
|
|
117
|
+
projectName: name,
|
|
118
|
+
appDisplayName: options.appName,
|
|
119
|
+
bundleId: identifiers.iosBundleId,
|
|
120
|
+
packageName: identifiers.androidPackageName,
|
|
121
|
+
skipInstall: options.skipInstall,
|
|
122
|
+
});
|
|
123
|
+
break;
|
|
124
|
+
case 'api':
|
|
125
|
+
await (0, api_1.applyApiExtension)(workspaceRoot, {
|
|
126
|
+
...templateData,
|
|
127
|
+
projectName: name,
|
|
128
|
+
});
|
|
129
|
+
break;
|
|
130
|
+
case 'shared':
|
|
131
|
+
await (0, core_1.generateSharedPackage)(workspaceRoot, {
|
|
132
|
+
...templateData,
|
|
133
|
+
projectName: name,
|
|
134
|
+
});
|
|
135
|
+
break;
|
|
136
|
+
}
|
|
137
|
+
// Update root package.json workspaces (if not already using packages/*)
|
|
138
|
+
if (!rootPackageJson.workspaces?.includes('packages/*')) {
|
|
139
|
+
await (0, merger_1.addToWorkspaces)(path_1.default.join(workspaceRoot, 'package.json'), `packages/${name}`);
|
|
140
|
+
}
|
|
141
|
+
// Print success
|
|
142
|
+
printAddSuccess(name, type, workspaceRoot);
|
|
143
|
+
}
|
|
144
|
+
catch (error) {
|
|
145
|
+
if (error instanceof types_1.NotInWorkspaceError) {
|
|
146
|
+
logger_1.logger.error(error.message);
|
|
147
|
+
logger_1.logger.dim('Run this command from within an Idealyst workspace directory.');
|
|
148
|
+
process.exit(1);
|
|
149
|
+
}
|
|
150
|
+
if (error instanceof Error) {
|
|
151
|
+
logger_1.logger.error(error.message);
|
|
152
|
+
if (process.env.DEBUG) {
|
|
153
|
+
console.error(error.stack);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
process.exit(1);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Find workspace root by looking for package.json with workspaces
|
|
161
|
+
*/
|
|
162
|
+
async function findWorkspaceRoot(startDir) {
|
|
163
|
+
let currentDir = startDir;
|
|
164
|
+
while (currentDir !== path_1.default.dirname(currentDir)) {
|
|
165
|
+
const packageJsonPath = path_1.default.join(currentDir, 'package.json');
|
|
166
|
+
if (await fs_extra_1.default.pathExists(packageJsonPath)) {
|
|
167
|
+
const packageJson = await fs_extra_1.default.readJson(packageJsonPath);
|
|
168
|
+
if (packageJson.workspaces) {
|
|
169
|
+
return currentDir;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
currentDir = path_1.default.dirname(currentDir);
|
|
173
|
+
}
|
|
174
|
+
return null;
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Extract workspace scope from package name
|
|
178
|
+
*/
|
|
179
|
+
function extractWorkspaceScope(packageName) {
|
|
180
|
+
// Handle @scope/name format
|
|
181
|
+
if (packageName.startsWith('@')) {
|
|
182
|
+
const match = packageName.match(/@([^/]+)/);
|
|
183
|
+
return match ? match[1] : packageName;
|
|
184
|
+
}
|
|
185
|
+
return packageName;
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Extract org domain from workspace name (best effort)
|
|
189
|
+
*/
|
|
190
|
+
function extractOrgDomain(packageName) {
|
|
191
|
+
const scope = extractWorkspaceScope(packageName);
|
|
192
|
+
// Convert scope to reverse domain notation
|
|
193
|
+
return `com.${scope.replace(/-/g, '')}`;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Convert string to title case
|
|
197
|
+
*/
|
|
198
|
+
function toTitleCase(str) {
|
|
199
|
+
return str
|
|
200
|
+
.split(' ')
|
|
201
|
+
.map(word => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
|
|
202
|
+
.join(' ');
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Print success message for add command
|
|
206
|
+
*/
|
|
207
|
+
function printAddSuccess(name, type, workspaceRoot) {
|
|
208
|
+
console.log(chalk_1.default.green.bold('\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━'));
|
|
209
|
+
console.log(chalk_1.default.green.bold(` ✓ Added ${type} project: ${name}`));
|
|
210
|
+
console.log(chalk_1.default.green.bold('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n'));
|
|
211
|
+
console.log(chalk_1.default.cyan(' Location:'));
|
|
212
|
+
console.log(` ${path_1.default.join(workspaceRoot, 'packages', name)}\n`);
|
|
213
|
+
console.log(chalk_1.default.cyan(' Next steps:'));
|
|
214
|
+
console.log(chalk_1.default.dim(' yarn install'));
|
|
215
|
+
switch (type) {
|
|
216
|
+
case 'web':
|
|
217
|
+
console.log(chalk_1.default.dim(` yarn workspace @*/${name} dev`));
|
|
218
|
+
break;
|
|
219
|
+
case 'mobile':
|
|
220
|
+
console.log(chalk_1.default.dim(` yarn workspace @*/${name} start`));
|
|
221
|
+
break;
|
|
222
|
+
case 'api':
|
|
223
|
+
console.log(chalk_1.default.dim(` yarn workspace @*/${name} dev`));
|
|
224
|
+
break;
|
|
225
|
+
}
|
|
226
|
+
console.log('');
|
|
227
|
+
// Additional instructions for connecting to existing packages
|
|
228
|
+
console.log(chalk_1.default.cyan(' To connect to existing packages:'));
|
|
229
|
+
console.log(chalk_1.default.dim(' 1. Add the dependency in package.json'));
|
|
230
|
+
console.log(chalk_1.default.dim(' 2. Import and use components/utilities'));
|
|
231
|
+
console.log('');
|
|
232
|
+
}
|
|
233
|
+
//# sourceMappingURL=add.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Commands exports
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.infoCommand = exports.addCommand = exports.initCommand = void 0;
|
|
7
|
+
var init_1 = require("./init");
|
|
8
|
+
Object.defineProperty(exports, "initCommand", { enumerable: true, get: function () { return init_1.initCommand; } });
|
|
9
|
+
var add_1 = require("./add");
|
|
10
|
+
Object.defineProperty(exports, "addCommand", { enumerable: true, get: function () { return add_1.addCommand; } });
|
|
11
|
+
var info_1 = require("./info");
|
|
12
|
+
Object.defineProperty(exports, "infoCommand", { enumerable: true, get: function () { return info_1.infoCommand; } });
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,+BAAqC;AAA5B,mGAAA,WAAW,OAAA;AACpB,6BAAmC;AAA1B,iGAAA,UAAU,OAAA;AACnB,+BAAqC;AAA5B,mGAAA,WAAW,OAAA"}
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Info command - display CLI information
|
|
4
|
+
*/
|
|
5
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
6
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.infoCommand = infoCommand;
|
|
10
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
11
|
+
const constants_1 = require("../constants");
|
|
12
|
+
/**
|
|
13
|
+
* Handle the `idealyst-beta info` command
|
|
14
|
+
*/
|
|
15
|
+
async function infoCommand(options = {}) {
|
|
16
|
+
const format = options.format || 'text';
|
|
17
|
+
switch (format) {
|
|
18
|
+
case 'json':
|
|
19
|
+
printJsonInfo();
|
|
20
|
+
break;
|
|
21
|
+
case 'markdown':
|
|
22
|
+
printMarkdownInfo();
|
|
23
|
+
break;
|
|
24
|
+
case 'llm':
|
|
25
|
+
printLlmInfo();
|
|
26
|
+
break;
|
|
27
|
+
default:
|
|
28
|
+
printTextInfo();
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Print text format info
|
|
33
|
+
*/
|
|
34
|
+
function printTextInfo() {
|
|
35
|
+
console.log(chalk_1.default.blue.bold('\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━'));
|
|
36
|
+
console.log(chalk_1.default.blue.bold(' Idealyst CLI (Beta)'));
|
|
37
|
+
console.log(chalk_1.default.blue.bold('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n'));
|
|
38
|
+
console.log(chalk_1.default.cyan(' Version:'), constants_1.VERSION);
|
|
39
|
+
console.log('');
|
|
40
|
+
console.log(chalk_1.default.cyan(' Commands:'));
|
|
41
|
+
console.log('');
|
|
42
|
+
console.log(chalk_1.default.white(' idealyst-beta init [project-name]'));
|
|
43
|
+
console.log(chalk_1.default.dim(' Initialize a new Idealyst workspace'));
|
|
44
|
+
console.log('');
|
|
45
|
+
console.log(chalk_1.default.white(' idealyst-beta add <name> --type <type>'));
|
|
46
|
+
console.log(chalk_1.default.dim(' Add a project to existing workspace'));
|
|
47
|
+
console.log(chalk_1.default.dim(' Types: web, mobile, api, shared'));
|
|
48
|
+
console.log('');
|
|
49
|
+
console.log(chalk_1.default.white(' idealyst-beta info'));
|
|
50
|
+
console.log(chalk_1.default.dim(' Display this help information'));
|
|
51
|
+
console.log('');
|
|
52
|
+
console.log(chalk_1.default.cyan(' Options (init):'));
|
|
53
|
+
console.log(chalk_1.default.dim(' --org-domain <domain> Organization domain (e.g., com.company)'));
|
|
54
|
+
console.log(chalk_1.default.dim(' --app-name <name> Mobile app display name'));
|
|
55
|
+
console.log(chalk_1.default.dim(' --with-api Enable API server'));
|
|
56
|
+
console.log(chalk_1.default.dim(' --with-prisma Enable Prisma database'));
|
|
57
|
+
console.log(chalk_1.default.dim(' --with-trpc Enable tRPC (requires --with-api)'));
|
|
58
|
+
console.log(chalk_1.default.dim(' --with-graphql Enable GraphQL (requires --with-api)'));
|
|
59
|
+
console.log(chalk_1.default.dim(' --no-interactive Disable interactive wizard'));
|
|
60
|
+
console.log(chalk_1.default.dim(' --skip-install Skip dependency installation'));
|
|
61
|
+
console.log('');
|
|
62
|
+
console.log(chalk_1.default.cyan(' Examples:'));
|
|
63
|
+
console.log('');
|
|
64
|
+
console.log(chalk_1.default.dim(' # Interactive wizard'));
|
|
65
|
+
console.log(chalk_1.default.white(' idealyst-beta init my-app'));
|
|
66
|
+
console.log('');
|
|
67
|
+
console.log(chalk_1.default.dim(' # Non-interactive with all options'));
|
|
68
|
+
console.log(chalk_1.default.white(' idealyst-beta init my-app --no-interactive \\'));
|
|
69
|
+
console.log(chalk_1.default.white(' --org-domain com.company \\'));
|
|
70
|
+
console.log(chalk_1.default.white(' --app-name "My App" \\'));
|
|
71
|
+
console.log(chalk_1.default.white(' --with-api --with-trpc --with-prisma'));
|
|
72
|
+
console.log('');
|
|
73
|
+
console.log(chalk_1.default.dim(' # Add a new web app to workspace'));
|
|
74
|
+
console.log(chalk_1.default.white(' idealyst-beta add admin --type web'));
|
|
75
|
+
console.log('');
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Print JSON format info
|
|
79
|
+
*/
|
|
80
|
+
function printJsonInfo() {
|
|
81
|
+
const info = {
|
|
82
|
+
name: '@idealyst/cli-beta',
|
|
83
|
+
version: constants_1.VERSION,
|
|
84
|
+
commands: {
|
|
85
|
+
init: {
|
|
86
|
+
description: 'Initialize a new Idealyst workspace',
|
|
87
|
+
usage: 'idealyst-beta init [project-name]',
|
|
88
|
+
options: [
|
|
89
|
+
{ flag: '--org-domain', description: 'Organization domain' },
|
|
90
|
+
{ flag: '--app-name', description: 'Mobile app display name' },
|
|
91
|
+
{ flag: '--with-api', description: 'Enable API server' },
|
|
92
|
+
{ flag: '--with-prisma', description: 'Enable Prisma database' },
|
|
93
|
+
{ flag: '--with-trpc', description: 'Enable tRPC' },
|
|
94
|
+
{ flag: '--with-graphql', description: 'Enable GraphQL' },
|
|
95
|
+
{ flag: '--no-interactive', description: 'Disable wizard' },
|
|
96
|
+
{ flag: '--skip-install', description: 'Skip installation' },
|
|
97
|
+
],
|
|
98
|
+
},
|
|
99
|
+
add: {
|
|
100
|
+
description: 'Add a project to existing workspace',
|
|
101
|
+
usage: 'idealyst-beta add <name> --type <type>',
|
|
102
|
+
types: ['web', 'mobile', 'api', 'shared'],
|
|
103
|
+
},
|
|
104
|
+
},
|
|
105
|
+
};
|
|
106
|
+
console.log(JSON.stringify(info, null, 2));
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Print markdown format info
|
|
110
|
+
*/
|
|
111
|
+
function printMarkdownInfo() {
|
|
112
|
+
console.log(`# Idealyst CLI (Beta)
|
|
113
|
+
|
|
114
|
+
Version: ${constants_1.VERSION}
|
|
115
|
+
|
|
116
|
+
## Commands
|
|
117
|
+
|
|
118
|
+
### \`idealyst-beta init [project-name]\`
|
|
119
|
+
|
|
120
|
+
Initialize a new Idealyst workspace.
|
|
121
|
+
|
|
122
|
+
**Options:**
|
|
123
|
+
- \`--org-domain <domain>\` - Organization domain (e.g., com.company)
|
|
124
|
+
- \`--app-name <name>\` - Mobile app display name
|
|
125
|
+
- \`--with-api\` - Enable API server
|
|
126
|
+
- \`--with-prisma\` - Enable Prisma database
|
|
127
|
+
- \`--with-trpc\` - Enable tRPC (requires --with-api)
|
|
128
|
+
- \`--with-graphql\` - Enable GraphQL (requires --with-api)
|
|
129
|
+
- \`--no-interactive\` - Disable interactive wizard
|
|
130
|
+
- \`--skip-install\` - Skip dependency installation
|
|
131
|
+
|
|
132
|
+
### \`idealyst-beta add <name> --type <type>\`
|
|
133
|
+
|
|
134
|
+
Add a project to an existing workspace.
|
|
135
|
+
|
|
136
|
+
**Types:** web, mobile, api, shared
|
|
137
|
+
|
|
138
|
+
## Examples
|
|
139
|
+
|
|
140
|
+
\`\`\`bash
|
|
141
|
+
# Interactive wizard
|
|
142
|
+
idealyst-beta init my-app
|
|
143
|
+
|
|
144
|
+
# Non-interactive
|
|
145
|
+
idealyst-beta init my-app --no-interactive \\
|
|
146
|
+
--org-domain com.company \\
|
|
147
|
+
--app-name "My App" \\
|
|
148
|
+
--with-api --with-trpc
|
|
149
|
+
|
|
150
|
+
# Add project to workspace
|
|
151
|
+
idealyst-beta add admin --type web
|
|
152
|
+
\`\`\`
|
|
153
|
+
`);
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Print LLM-friendly info
|
|
157
|
+
*/
|
|
158
|
+
function printLlmInfo() {
|
|
159
|
+
console.log(`IDEALYST CLI BETA - SAFE COMMANDS FOR LLM USAGE
|
|
160
|
+
|
|
161
|
+
IMPORTANT: Always use --no-interactive flag to avoid hanging on prompts.
|
|
162
|
+
|
|
163
|
+
SAFE COMMANDS (non-interactive):
|
|
164
|
+
|
|
165
|
+
1. Initialize workspace with all options:
|
|
166
|
+
idealyst-beta init <name> --no-interactive --org-domain <domain> --app-name "<name>"
|
|
167
|
+
|
|
168
|
+
2. Initialize with extensions:
|
|
169
|
+
idealyst-beta init <name> --no-interactive --org-domain <domain> --app-name "<name>" --with-api --with-trpc --with-prisma
|
|
170
|
+
|
|
171
|
+
3. Add project to workspace:
|
|
172
|
+
idealyst-beta add <name> --type web
|
|
173
|
+
idealyst-beta add <name> --type mobile --app-name "<name>"
|
|
174
|
+
idealyst-beta add <name> --type api
|
|
175
|
+
idealyst-beta add <name> --type shared
|
|
176
|
+
|
|
177
|
+
REQUIRED ARGUMENTS (non-interactive):
|
|
178
|
+
- project-name: Positional argument, kebab-case
|
|
179
|
+
- --org-domain: Reverse domain notation (com.company)
|
|
180
|
+
- --app-name: Human-readable app name
|
|
181
|
+
|
|
182
|
+
OPTIONAL ARGUMENTS:
|
|
183
|
+
- --with-api: Enable API server
|
|
184
|
+
- --with-prisma: Enable database
|
|
185
|
+
- --with-trpc: Enable tRPC (requires --with-api)
|
|
186
|
+
- --with-graphql: Enable GraphQL (requires --with-api)
|
|
187
|
+
- --skip-install: Skip yarn install
|
|
188
|
+
|
|
189
|
+
EXAMPLE:
|
|
190
|
+
idealyst-beta init my-app --no-interactive --org-domain com.mycompany --app-name "My App" --with-api --with-trpc --with-prisma --skip-install
|
|
191
|
+
`);
|
|
192
|
+
}
|
|
193
|
+
//# sourceMappingURL=info.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"info.js","sourceRoot":"","sources":["../../src/commands/info.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Init command - creates a new Idealyst workspace
|
|
4
|
+
*/
|
|
5
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
6
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.initCommand = initCommand;
|
|
10
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
11
|
+
const types_1 = require("../types");
|
|
12
|
+
const wizard_1 = require("../wizard");
|
|
13
|
+
const generators_1 = require("../generators");
|
|
14
|
+
const identifiers_1 = require("../identifiers");
|
|
15
|
+
const logger_1 = require("../utils/logger");
|
|
16
|
+
const validation_1 = require("../utils/validation");
|
|
17
|
+
/**
|
|
18
|
+
* Handle the `idealyst-beta init` command
|
|
19
|
+
*/
|
|
20
|
+
async function initCommand(projectName, options) {
|
|
21
|
+
try {
|
|
22
|
+
const args = {
|
|
23
|
+
projectName,
|
|
24
|
+
orgDomain: options.orgDomain,
|
|
25
|
+
appDisplayName: options.appName,
|
|
26
|
+
withApi: options.withApi,
|
|
27
|
+
withPrisma: options.withPrisma,
|
|
28
|
+
withTrpc: options.withTrpc,
|
|
29
|
+
withGraphql: options.withGraphql,
|
|
30
|
+
withDevcontainer: options.withDevcontainer,
|
|
31
|
+
noInteractive: options.interactive === false,
|
|
32
|
+
skipInstall: options.skipInstall,
|
|
33
|
+
directory: options.directory,
|
|
34
|
+
};
|
|
35
|
+
// Validate extension dependencies
|
|
36
|
+
const extValidation = (0, validation_1.validateExtensions)({
|
|
37
|
+
withApi: args.withApi,
|
|
38
|
+
withTrpc: args.withTrpc,
|
|
39
|
+
withGraphql: args.withGraphql,
|
|
40
|
+
});
|
|
41
|
+
if (!extValidation.valid) {
|
|
42
|
+
throw new types_1.InvalidExtensionError(args.withTrpc ? 'trpc' : 'graphql', 'api');
|
|
43
|
+
}
|
|
44
|
+
let config;
|
|
45
|
+
if (args.noInteractive) {
|
|
46
|
+
// Non-interactive mode - validate all required args present
|
|
47
|
+
const validation = (0, wizard_1.validateNonInteractiveArgs)(args);
|
|
48
|
+
if (!validation.valid) {
|
|
49
|
+
printMissingArgsError(validation.missing);
|
|
50
|
+
process.exit(1);
|
|
51
|
+
}
|
|
52
|
+
// Build config directly from args
|
|
53
|
+
const identifiers = (0, identifiers_1.generateIdentifiers)(args.orgDomain, args.projectName);
|
|
54
|
+
config = {
|
|
55
|
+
projectName: args.projectName,
|
|
56
|
+
orgDomain: args.orgDomain,
|
|
57
|
+
appDisplayName: args.appDisplayName,
|
|
58
|
+
iosBundleId: identifiers.iosBundleId,
|
|
59
|
+
androidPackageName: identifiers.androidPackageName,
|
|
60
|
+
extensions: {
|
|
61
|
+
api: args.withApi ?? false,
|
|
62
|
+
prisma: args.withPrisma ?? false,
|
|
63
|
+
trpc: args.withTrpc ?? false,
|
|
64
|
+
graphql: args.withGraphql ?? false,
|
|
65
|
+
devcontainer: args.withDevcontainer ?? false,
|
|
66
|
+
},
|
|
67
|
+
directory: args.directory ?? '.',
|
|
68
|
+
skipInstall: args.skipInstall ?? false,
|
|
69
|
+
isInteractive: false,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
// Interactive wizard mode
|
|
74
|
+
config = await (0, wizard_1.runWizard)(args);
|
|
75
|
+
if (!config) {
|
|
76
|
+
// User cancelled
|
|
77
|
+
process.exit(0);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
// Generate the project
|
|
81
|
+
const result = await (0, generators_1.generateProject)(config);
|
|
82
|
+
// Display results
|
|
83
|
+
printResults(result, config);
|
|
84
|
+
}
|
|
85
|
+
catch (error) {
|
|
86
|
+
if (error instanceof types_1.InvalidExtensionError) {
|
|
87
|
+
logger_1.logger.error(error.message);
|
|
88
|
+
logger_1.logger.dim('Add --with-api to enable the API server first.');
|
|
89
|
+
process.exit(1);
|
|
90
|
+
}
|
|
91
|
+
if (error instanceof Error) {
|
|
92
|
+
logger_1.logger.error(error.message);
|
|
93
|
+
if (process.env.DEBUG) {
|
|
94
|
+
console.error(error.stack);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
logger_1.logger.error('An unexpected error occurred');
|
|
99
|
+
}
|
|
100
|
+
process.exit(1);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Print missing arguments error for non-interactive mode
|
|
105
|
+
*/
|
|
106
|
+
function printMissingArgsError(missing) {
|
|
107
|
+
console.log(chalk_1.default.red.bold('\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━'));
|
|
108
|
+
console.log(chalk_1.default.red.bold(' Error: Missing required arguments'));
|
|
109
|
+
console.log(chalk_1.default.red.bold('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n'));
|
|
110
|
+
console.log(chalk_1.default.yellow('The following arguments are required in non-interactive mode:\n'));
|
|
111
|
+
for (const arg of missing) {
|
|
112
|
+
console.log(chalk_1.default.red(` ✗ ${arg}`));
|
|
113
|
+
}
|
|
114
|
+
console.log(chalk_1.default.dim('\nExample usage:'));
|
|
115
|
+
console.log(chalk_1.default.cyan(` idealyst-beta init my-app --no-interactive \\
|
|
116
|
+
--org-domain com.mycompany \\
|
|
117
|
+
--app-name "My Awesome App"\n`));
|
|
118
|
+
console.log(chalk_1.default.dim('Or run without --no-interactive to use the interactive wizard.'));
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Print generation results
|
|
122
|
+
*/
|
|
123
|
+
function printResults(result, config) {
|
|
124
|
+
console.log(chalk_1.default.green.bold('\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━'));
|
|
125
|
+
console.log(chalk_1.default.green.bold(' ✓ Project created successfully!'));
|
|
126
|
+
console.log(chalk_1.default.green.bold('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n'));
|
|
127
|
+
console.log(chalk_1.default.cyan(' Location:'));
|
|
128
|
+
console.log(` ${result.projectPath}\n`);
|
|
129
|
+
console.log(chalk_1.default.cyan(' Packages created:'));
|
|
130
|
+
for (const pkg of result.packagesCreated) {
|
|
131
|
+
console.log(chalk_1.default.green(` ✓ ${pkg}`));
|
|
132
|
+
}
|
|
133
|
+
console.log('');
|
|
134
|
+
if (result.extensionsEnabled.length > 0) {
|
|
135
|
+
console.log(chalk_1.default.cyan(' Extensions enabled:'));
|
|
136
|
+
for (const ext of result.extensionsEnabled) {
|
|
137
|
+
console.log(chalk_1.default.green(` ✓ ${ext}`));
|
|
138
|
+
}
|
|
139
|
+
console.log('');
|
|
140
|
+
}
|
|
141
|
+
if (result.warnings.length > 0) {
|
|
142
|
+
console.log(chalk_1.default.yellow(' Warnings:'));
|
|
143
|
+
for (const warning of result.warnings) {
|
|
144
|
+
console.log(chalk_1.default.yellow(` ⚠ ${warning}`));
|
|
145
|
+
}
|
|
146
|
+
console.log('');
|
|
147
|
+
}
|
|
148
|
+
console.log(chalk_1.default.cyan(' Next steps:'));
|
|
149
|
+
console.log(chalk_1.default.dim(` cd ${config.projectName}`));
|
|
150
|
+
for (const step of result.nextSteps) {
|
|
151
|
+
console.log(chalk_1.default.dim(` ${step}`));
|
|
152
|
+
}
|
|
153
|
+
console.log('');
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|