@idealyst/cli 1.0.41 → 1.0.44
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/generators/api.js +1 -2
- package/dist/generators/api.js.map +1 -1
- package/dist/generators/database.js +1 -2
- package/dist/generators/database.js.map +1 -1
- package/dist/generators/fullstack.js +371 -0
- package/dist/generators/fullstack.js.map +1 -0
- package/dist/generators/index.js +5 -0
- package/dist/generators/index.js.map +1 -1
- package/dist/generators/native.js +2 -1
- package/dist/generators/native.js.map +1 -1
- package/dist/generators/shared.js +1 -2
- package/dist/generators/shared.js.map +1 -1
- package/dist/generators/utils.js +71 -7
- package/dist/generators/utils.js.map +1 -1
- package/dist/generators/web.js +1 -2
- package/dist/generators/web.js.map +1 -1
- package/dist/generators/workspace.js +56 -2
- package/dist/generators/workspace.js.map +1 -1
- package/dist/index.js +50 -2
- package/dist/index.js.map +1 -1
- package/dist/templates/database/.env.example +1 -8
- package/dist/templates/database/README.md +29 -74
- package/dist/templates/database/package.json +20 -34
- package/dist/templates/database/prisma/seed.ts +11 -11
- package/dist/templates/database/schema.prisma +97 -0
- package/dist/templates/database/src/index.ts +12 -8
- package/dist/templates/database/tsconfig.json +9 -23
- package/dist/templates/native/src/App-with-trpc-and-shared.tsx +266 -0
- package/dist/templates/shared/package.json +28 -3
- package/dist/templates/shared/src/components/index.ts +392 -0
- package/dist/templates/shared/src/index.ts +59 -1
- package/dist/templates/shared/src/types/index.ts +148 -0
- package/dist/templates/shared/src/utils/index.ts +278 -0
- package/dist/templates/web/package.json +2 -2
- package/dist/templates/web/src/App-with-trpc-and-shared.tsx +304 -0
- package/dist/templates/workspace/.devcontainer/Dockerfile +1 -1
- package/dist/templates/workspace/.devcontainer/devcontainer.json +7 -2
- package/dist/templates/workspace/.devcontainer/docker-compose.yml +14 -0
- package/dist/templates/workspace/.devcontainer/figma-mcp.sh +32 -0
- package/dist/templates/workspace/.devcontainer/setup.sh +3 -0
- package/dist/templates/workspace/setup.sh +22 -197
- package/dist/templates/workspace/tsconfig.json +32 -0
- package/dist/types/generators/fullstack.d.ts +2 -0
- package/dist/types/generators/index.d.ts +1 -0
- package/dist/types/generators/utils.d.ts +4 -1
- package/dist/types/types.d.ts +3 -1
- package/package.json +1 -1
- package/templates/database/.env.example +1 -0
- package/templates/database/README.md +48 -0
- package/templates/database/package.json +21 -2
- package/templates/database/prisma/seed.ts +28 -0
- package/templates/database/schema.prisma +85 -9
- package/templates/database/src/index.ts +7 -7
- package/templates/database/src/validators.ts +10 -0
- package/templates/native/src/App-with-trpc-and-shared.tsx +266 -0
- package/templates/shared/package.json +28 -3
- package/templates/shared/src/components/index.ts +392 -0
- package/templates/shared/src/index.ts +59 -1
- package/templates/shared/src/types/index.ts +148 -0
- package/templates/shared/src/utils/index.ts +278 -0
- package/templates/web/package.json +1 -1
- package/templates/web/src/App-with-trpc-and-shared.tsx +304 -0
- package/templates/workspace/.devcontainer/devcontainer.json +7 -2
- package/templates/workspace/.devcontainer/docker-compose.yml +14 -0
- package/templates/workspace/.devcontainer/figma-mcp.sh +32 -0
- package/templates/workspace/.devcontainer/setup.sh +3 -0
- package/templates/workspace/setup.sh +30 -0
- package/templates/workspace/tsconfig.json +32 -0
- package/dist/templates/database/__tests__/database.test.ts +0 -14
- package/dist/templates/database/jest.config.js +0 -19
- package/dist/templates/database/jest.setup.js +0 -11
- package/dist/templates/database/prisma/schema.prisma +0 -21
- package/dist/templates/database/src/client.ts +0 -18
- package/dist/templates/database/src/schemas.ts +0 -26
- package/dist/templates/workspace/scripts/docker/db-backup.sh +0 -230
- package/dist/templates/workspace/scripts/docker/deploy.sh +0 -212
- package/dist/templates/workspace/scripts/test-runner.js +0 -120
- /package/{templates/database/src/validatgors.ts → dist/templates/database/src/validators.ts} +0 -0
package/dist/generators/api.js
CHANGED
|
@@ -4,7 +4,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.generateApiProject = generateApiProject;
|
|
7
|
-
const path_1 = __importDefault(require("path"));
|
|
8
7
|
const chalk_1 = __importDefault(require("chalk"));
|
|
9
8
|
const utils_1 = require("./utils");
|
|
10
9
|
async function generateApiProject(options) {
|
|
@@ -14,7 +13,7 @@ async function generateApiProject(options) {
|
|
|
14
13
|
}
|
|
15
14
|
console.log(chalk_1.default.blue(`🚀 Creating API project: ${name}`));
|
|
16
15
|
const { projectPath, workspacePath, workspaceScope } = await (0, utils_1.resolveProjectPath)(name, directory);
|
|
17
|
-
const templatePath =
|
|
16
|
+
const templatePath = (0, utils_1.getTemplatePath)('api');
|
|
18
17
|
const templateData = (0, utils_1.getTemplateData)(name, `API server template with tRPC and Express`, undefined, workspaceScope || undefined);
|
|
19
18
|
await (0, utils_1.copyTemplate)(templatePath, projectPath, templateData);
|
|
20
19
|
await (0, utils_1.installDependencies)(projectPath, skipInstall);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/generators/api.ts"],"names":[],"mappings":";;;;;AAKA,gDA2BC;
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/generators/api.ts"],"names":[],"mappings":";;;;;AAKA,gDA2BC;AA/BD,kDAA0B;AAE1B,mCAAmK;AAE5J,KAAK,UAAU,kBAAkB,CAAC,OAA+B;IACtE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAEjD,IAAI,CAAC,IAAA,2BAAmB,EAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,4BAA4B,IAAI,EAAE,CAAC,CAAC,CAAC;IAE5D,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,MAAM,IAAA,0BAAkB,EAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACjG,MAAM,YAAY,GAAG,IAAA,uBAAe,EAAC,KAAK,CAAC,CAAC;IAE5C,MAAM,YAAY,GAAG,IAAA,uBAAe,EAAC,IAAI,EAAE,2CAA2C,EAAE,SAAS,EAAE,cAAc,IAAI,SAAS,CAAC,CAAC;IAEhI,MAAM,IAAA,oBAAY,EAAC,YAAY,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;IAC5D,MAAM,IAAA,2BAAmB,EAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACpD,MAAM,IAAA,kCAA0B,EAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IAE3D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC,CAAC;IAChE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC,CAAC;IACxE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC,CAAC;AAClE,CAAC"}
|
|
@@ -4,7 +4,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.generateDatabaseProject = generateDatabaseProject;
|
|
7
|
-
const path_1 = __importDefault(require("path"));
|
|
8
7
|
const chalk_1 = __importDefault(require("chalk"));
|
|
9
8
|
const utils_1 = require("./utils");
|
|
10
9
|
async function generateDatabaseProject(options) {
|
|
@@ -14,7 +13,7 @@ async function generateDatabaseProject(options) {
|
|
|
14
13
|
}
|
|
15
14
|
console.log(chalk_1.default.blue(`🗄️ Creating Database project: ${name}`));
|
|
16
15
|
const { projectPath, workspacePath, workspaceScope } = await (0, utils_1.resolveProjectPath)(name, directory);
|
|
17
|
-
const templatePath =
|
|
16
|
+
const templatePath = (0, utils_1.getTemplatePath)('database');
|
|
18
17
|
const templateData = (0, utils_1.getTemplateData)(name, `Database models and client library with Prisma`, undefined, workspaceScope || undefined);
|
|
19
18
|
await (0, utils_1.copyTemplate)(templatePath, projectPath, templateData);
|
|
20
19
|
await (0, utils_1.installDependencies)(projectPath, skipInstall);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/generators/database.ts"],"names":[],"mappings":";;;;;AAKA,0DA2BC;
|
|
1
|
+
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/generators/database.ts"],"names":[],"mappings":";;;;;AAKA,0DA2BC;AA/BD,kDAA0B;AAE1B,mCAAmK;AAE5J,KAAK,UAAU,uBAAuB,CAAC,OAA+B;IAC3E,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAEjD,IAAI,CAAC,IAAA,2BAAmB,EAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,kCAAkC,IAAI,EAAE,CAAC,CAAC,CAAC;IAElE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,MAAM,IAAA,0BAAkB,EAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACjG,MAAM,YAAY,GAAG,IAAA,uBAAe,EAAC,UAAU,CAAC,CAAC;IAEjD,MAAM,YAAY,GAAG,IAAA,uBAAe,EAAC,IAAI,EAAE,gDAAgD,EAAE,SAAS,EAAE,cAAc,IAAI,SAAS,CAAC,CAAC;IAErI,MAAM,IAAA,oBAAY,EAAC,YAAY,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;IAC5D,MAAM,IAAA,2BAAmB,EAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACpD,MAAM,IAAA,kCAA0B,EAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IAE3D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC,CAAC;IACrE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC,CAAC;IAC/D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC,CAAC;IACrE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC,CAAC;AAC/E,CAAC"}
|
|
@@ -0,0 +1,371 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.generateFullStackWorkspace = generateFullStackWorkspace;
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
8
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
9
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
10
|
+
const utils_1 = require("./utils");
|
|
11
|
+
const database_1 = require("./database");
|
|
12
|
+
const api_1 = require("./api");
|
|
13
|
+
const web_1 = require("./web");
|
|
14
|
+
const native_1 = require("./native");
|
|
15
|
+
const shared_1 = require("./shared");
|
|
16
|
+
async function generateFullStackWorkspace(options) {
|
|
17
|
+
const { name, directory, skipInstall, figmaToken } = options;
|
|
18
|
+
if (!(0, utils_1.validateProjectName)(name)) {
|
|
19
|
+
throw new Error(`Invalid project name: ${name}`);
|
|
20
|
+
}
|
|
21
|
+
console.log(chalk_1.default.blue(`🚀 Creating Full-Stack Idealyst workspace: ${name}`));
|
|
22
|
+
console.log(chalk_1.default.gray(' This will generate a comhttps://open.spotify.com/track/0jVTol3hCYkU8NVVtMQjUS?si=f76828854a174463plete workspace with all packages integrated'));
|
|
23
|
+
const projectPath = path_1.default.join(directory, name);
|
|
24
|
+
const templatePath = (0, utils_1.getTemplatePath)('workspace');
|
|
25
|
+
const templateData = (0, utils_1.getTemplateData)(name, `Full-stack Idealyst Framework workspace`, undefined, name);
|
|
26
|
+
// Step 1: Create base workspace
|
|
27
|
+
console.log(chalk_1.default.blue('📦 Setting up workspace structure...'));
|
|
28
|
+
await (0, utils_1.copyTemplate)(templatePath, projectPath, templateData);
|
|
29
|
+
// Handle devcontainer setup
|
|
30
|
+
const devcontainerDir = path_1.default.join(projectPath, '.devcontainer');
|
|
31
|
+
const envPath = path_1.default.join(devcontainerDir, '.env');
|
|
32
|
+
const envContent = figmaToken
|
|
33
|
+
? `# Figma Integration\nFIGMA_ACCESS_TOKEN=${figmaToken.trim()}\n`
|
|
34
|
+
: `# Figma Integration\nFIGMA_ACCESS_TOKEN=\n`;
|
|
35
|
+
await require('fs-extra').writeFile(envPath, envContent);
|
|
36
|
+
// Step 2: Generate all packages with integration
|
|
37
|
+
console.log(chalk_1.default.blue('🗄️ Creating database package...'));
|
|
38
|
+
await (0, database_1.generateDatabaseProject)({
|
|
39
|
+
name: 'database',
|
|
40
|
+
type: 'database',
|
|
41
|
+
directory: projectPath,
|
|
42
|
+
skipInstall: true
|
|
43
|
+
});
|
|
44
|
+
console.log(chalk_1.default.blue('🚀 Creating API server...'));
|
|
45
|
+
await (0, api_1.generateApiProject)({
|
|
46
|
+
name: 'api',
|
|
47
|
+
type: 'api',
|
|
48
|
+
directory: projectPath,
|
|
49
|
+
skipInstall: true,
|
|
50
|
+
withTrpc: true
|
|
51
|
+
});
|
|
52
|
+
console.log(chalk_1.default.blue('📦 Creating shared components...'));
|
|
53
|
+
await (0, shared_1.generateSharedLibrary)({
|
|
54
|
+
name: 'shared',
|
|
55
|
+
type: 'shared',
|
|
56
|
+
directory: projectPath,
|
|
57
|
+
skipInstall: true
|
|
58
|
+
});
|
|
59
|
+
console.log(chalk_1.default.blue('🌐 Creating web application...'));
|
|
60
|
+
await (0, web_1.generateWebProject)({
|
|
61
|
+
name: 'web',
|
|
62
|
+
type: 'web',
|
|
63
|
+
directory: projectPath,
|
|
64
|
+
skipInstall: true,
|
|
65
|
+
withTrpc: true
|
|
66
|
+
});
|
|
67
|
+
console.log(chalk_1.default.blue('📱 Creating mobile application...'));
|
|
68
|
+
await (0, native_1.generateNativeProject)({
|
|
69
|
+
name: 'mobile',
|
|
70
|
+
type: 'native',
|
|
71
|
+
directory: projectPath,
|
|
72
|
+
skipInstall: true,
|
|
73
|
+
appName: templateData.appName || name,
|
|
74
|
+
withTrpc: true
|
|
75
|
+
});
|
|
76
|
+
// Step 3: Create integration files and update app files
|
|
77
|
+
console.log(chalk_1.default.blue('🔗 Setting up package integration...'));
|
|
78
|
+
await setupPackageIntegration(projectPath, templateData);
|
|
79
|
+
await updateAppFilesWithSharedComponents(projectPath, templateData);
|
|
80
|
+
// Step 4: Install dependencies
|
|
81
|
+
await (0, utils_1.installDependencies)(projectPath, skipInstall);
|
|
82
|
+
console.log(chalk_1.default.green('✅ Full-stack workspace created successfully!'));
|
|
83
|
+
console.log(chalk_1.default.blue('📋 Your workspace includes:'));
|
|
84
|
+
console.log(chalk_1.default.white(' • 🗄️ Database package with Prisma'));
|
|
85
|
+
console.log(chalk_1.default.white(' • 🚀 API server with tRPC'));
|
|
86
|
+
console.log(chalk_1.default.white(' • 🌐 React web app'));
|
|
87
|
+
console.log(chalk_1.default.white(' • 📱 React Native mobile app'));
|
|
88
|
+
console.log(chalk_1.default.white(' • 📦 Shared component library'));
|
|
89
|
+
console.log(chalk_1.default.white(' • 🔗 All packages pre-integrated'));
|
|
90
|
+
console.log(chalk_1.default.white(' • 📊 Sample data and demo features'));
|
|
91
|
+
console.log('');
|
|
92
|
+
console.log(chalk_1.default.green('🚀 Quick start:'));
|
|
93
|
+
console.log(chalk_1.default.white(` cd ${name}`));
|
|
94
|
+
console.log(chalk_1.default.white(' yarn dev # Start all development servers'));
|
|
95
|
+
console.log(chalk_1.default.white(' yarn web # Start web app only'));
|
|
96
|
+
console.log(chalk_1.default.white(' yarn mobile # Start mobile app'));
|
|
97
|
+
console.log(chalk_1.default.white(' yarn api # Start API server only'));
|
|
98
|
+
console.log('');
|
|
99
|
+
console.log(chalk_1.default.gray('💡 Check README.md for detailed setup instructions'));
|
|
100
|
+
if (figmaToken) {
|
|
101
|
+
console.log(chalk_1.default.blue('🎨 Figma integration configured in .devcontainer/.env'));
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
console.log(chalk_1.default.gray('💡 Tip: Add Figma integration later by editing .devcontainer/.env'));
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Updates App files to use enhanced versions with shared components
|
|
109
|
+
*/
|
|
110
|
+
async function updateAppFilesWithSharedComponents(projectPath, templateData) {
|
|
111
|
+
const templateDir = (0, utils_1.getTemplatePath)('web');
|
|
112
|
+
// Update web App.tsx with enhanced version
|
|
113
|
+
const webAppSourcePath = path_1.default.join(templateDir, '..', 'web', 'src', 'App-with-trpc-and-shared.tsx');
|
|
114
|
+
const webAppTargetPath = path_1.default.join(projectPath, 'packages', 'web', 'src', 'App.tsx');
|
|
115
|
+
if (await fs_extra_1.default.pathExists(webAppSourcePath)) {
|
|
116
|
+
let webAppContent = await fs_extra_1.default.readFile(webAppSourcePath, 'utf8');
|
|
117
|
+
// Simple template variable replacement
|
|
118
|
+
webAppContent = webAppContent.replace(/\{\{workspaceScope\}\}/g, templateData.workspaceScope || templateData.projectName);
|
|
119
|
+
webAppContent = webAppContent.replace(/\{\{projectName\}\}/g, templateData.projectName);
|
|
120
|
+
webAppContent = webAppContent.replace(/\{\{appName\}\}/g, templateData.appName || templateData.projectName);
|
|
121
|
+
await fs_extra_1.default.writeFile(webAppTargetPath, webAppContent);
|
|
122
|
+
}
|
|
123
|
+
// Update native App.tsx with enhanced version
|
|
124
|
+
const nativeAppSourcePath = path_1.default.join(templateDir, '..', 'native', 'src', 'App-with-trpc-and-shared.tsx');
|
|
125
|
+
const nativeAppTargetPath = path_1.default.join(projectPath, 'packages', 'mobile', 'src', 'App.tsx');
|
|
126
|
+
if (await fs_extra_1.default.pathExists(nativeAppSourcePath)) {
|
|
127
|
+
let nativeAppContent = await fs_extra_1.default.readFile(nativeAppSourcePath, 'utf8');
|
|
128
|
+
// Simple template variable replacement
|
|
129
|
+
nativeAppContent = nativeAppContent.replace(/\{\{workspaceScope\}\}/g, templateData.workspaceScope || templateData.projectName);
|
|
130
|
+
nativeAppContent = nativeAppContent.replace(/\{\{projectName\}\}/g, templateData.projectName);
|
|
131
|
+
nativeAppContent = nativeAppContent.replace(/\{\{appName\}\}/g, templateData.appName || templateData.projectName);
|
|
132
|
+
await fs_extra_1.default.writeFile(nativeAppTargetPath, nativeAppContent);
|
|
133
|
+
}
|
|
134
|
+
// Update package.json files to include shared dependencies
|
|
135
|
+
await updatePackageJsonWithSharedDeps(projectPath, templateData.workspaceScope || templateData.projectName);
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Updates package.json files to include shared and database dependencies
|
|
139
|
+
*/
|
|
140
|
+
async function updatePackageJsonWithSharedDeps(projectPath, workspaceScope) {
|
|
141
|
+
// Update web package.json
|
|
142
|
+
const webPackageJsonPath = path_1.default.join(projectPath, 'packages', 'web', 'package.json');
|
|
143
|
+
if (await fs_extra_1.default.pathExists(webPackageJsonPath)) {
|
|
144
|
+
const webPackageJson = await fs_extra_1.default.readJSON(webPackageJsonPath);
|
|
145
|
+
webPackageJson.dependencies = {
|
|
146
|
+
...webPackageJson.dependencies,
|
|
147
|
+
[`@${workspaceScope}/shared`]: 'workspace:*',
|
|
148
|
+
[`@${workspaceScope}/database`]: 'workspace:*'
|
|
149
|
+
};
|
|
150
|
+
await fs_extra_1.default.writeJSON(webPackageJsonPath, webPackageJson, { spaces: 2 });
|
|
151
|
+
}
|
|
152
|
+
// Update native package.json
|
|
153
|
+
const nativePackageJsonPath = path_1.default.join(projectPath, 'packages', 'mobile', 'package.json');
|
|
154
|
+
if (await fs_extra_1.default.pathExists(nativePackageJsonPath)) {
|
|
155
|
+
const nativePackageJson = await fs_extra_1.default.readJSON(nativePackageJsonPath);
|
|
156
|
+
nativePackageJson.dependencies = {
|
|
157
|
+
...nativePackageJson.dependencies,
|
|
158
|
+
[`@${workspaceScope}/shared`]: 'workspace:*',
|
|
159
|
+
[`@${workspaceScope}/database`]: 'workspace:*'
|
|
160
|
+
};
|
|
161
|
+
await fs_extra_1.default.writeJSON(nativePackageJsonPath, nativePackageJson, { spaces: 2 });
|
|
162
|
+
}
|
|
163
|
+
// Update API package.json
|
|
164
|
+
const apiPackageJsonPath = path_1.default.join(projectPath, 'packages', 'api', 'package.json');
|
|
165
|
+
if (await fs_extra_1.default.pathExists(apiPackageJsonPath)) {
|
|
166
|
+
const apiPackageJson = await fs_extra_1.default.readJSON(apiPackageJsonPath);
|
|
167
|
+
apiPackageJson.dependencies = {
|
|
168
|
+
...apiPackageJson.dependencies,
|
|
169
|
+
[`@${workspaceScope}/database`]: 'workspace:*',
|
|
170
|
+
[`@${workspaceScope}/shared`]: 'workspace:*'
|
|
171
|
+
};
|
|
172
|
+
await fs_extra_1.default.writeJSON(apiPackageJsonPath, apiPackageJson, { spaces: 2 });
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
async function setupPackageIntegration(workspacePath, templateData) {
|
|
176
|
+
const fs = require('fs-extra');
|
|
177
|
+
// Update workspace package.json with integrated scripts
|
|
178
|
+
const workspacePackageJsonPath = path_1.default.join(workspacePath, 'package.json');
|
|
179
|
+
const workspacePackageJson = await fs.readJSON(workspacePackageJsonPath);
|
|
180
|
+
workspacePackageJson.scripts = {
|
|
181
|
+
...workspacePackageJson.scripts,
|
|
182
|
+
"dev": "concurrently \"yarn api:dev\" \"yarn web:dev\" \"yarn mobile:start\"",
|
|
183
|
+
"build": "yarn build:packages && yarn api:build && yarn web:build",
|
|
184
|
+
"build:packages": `yarn workspace @${templateData.workspaceScope}/database build && yarn workspace @${templateData.workspaceScope}/shared build`,
|
|
185
|
+
"api:dev": `yarn workspace @${templateData.workspaceScope}/api dev`,
|
|
186
|
+
"api:build": `yarn workspace @${templateData.workspaceScope}/api build`,
|
|
187
|
+
"web:dev": `yarn workspace @${templateData.workspaceScope}/web dev`,
|
|
188
|
+
"web:build": `yarn workspace @${templateData.workspaceScope}/web build`,
|
|
189
|
+
"mobile:start": `yarn workspace @${templateData.workspaceScope}/mobile start`,
|
|
190
|
+
"mobile:android": `yarn workspace @${templateData.workspaceScope}/mobile android`,
|
|
191
|
+
"mobile:ios": `yarn workspace @${templateData.workspaceScope}/mobile ios`,
|
|
192
|
+
"db:generate": `yarn workspace @${templateData.workspaceScope}/database db:generate`,
|
|
193
|
+
"db:push": `yarn workspace @${templateData.workspaceScope}/database db:push`,
|
|
194
|
+
"db:migrate": `yarn workspace @${templateData.workspaceScope}/database db:migrate`,
|
|
195
|
+
"db:studio": `yarn workspace @${templateData.workspaceScope}/database db:studio`,
|
|
196
|
+
"test": "yarn workspaces run test",
|
|
197
|
+
"type-check": "yarn workspaces run type-check"
|
|
198
|
+
};
|
|
199
|
+
// Add development dependencies for the workspace
|
|
200
|
+
workspacePackageJson.devDependencies = {
|
|
201
|
+
...workspacePackageJson.devDependencies,
|
|
202
|
+
"concurrently": "^8.2.2"
|
|
203
|
+
};
|
|
204
|
+
await fs.writeJSON(workspacePackageJsonPath, workspacePackageJson, { spaces: 2 });
|
|
205
|
+
// Create integrated README with quick start guide
|
|
206
|
+
await createIntegratedReadme(workspacePath, templateData);
|
|
207
|
+
}
|
|
208
|
+
async function createIntegratedReadme(workspacePath, templateData) {
|
|
209
|
+
const fs = require('fs-extra');
|
|
210
|
+
const readmePath = path_1.default.join(workspacePath, 'README.md');
|
|
211
|
+
const readmeContent = `# ${templateData.projectName}
|
|
212
|
+
|
|
213
|
+
A full-stack application built with the Idealyst Framework.
|
|
214
|
+
|
|
215
|
+
## 🏗️ Architecture
|
|
216
|
+
|
|
217
|
+
This workspace contains a complete full-stack application with:
|
|
218
|
+
|
|
219
|
+
- **📱 Mobile App** (\`packages/mobile\`) - React Native app with Idealyst components
|
|
220
|
+
- **🌐 Web App** (\`packages/web\`) - React web app with Idealyst components
|
|
221
|
+
- **🚀 API Server** (\`packages/api\`) - tRPC API server with Express
|
|
222
|
+
- **🗄️ Database** (\`packages/database\`) - Prisma database layer with PostgreSQL
|
|
223
|
+
- **📦 Shared** (\`packages/shared\`) - Cross-platform shared components and utilities
|
|
224
|
+
|
|
225
|
+
All packages are pre-integrated and work together seamlessly.
|
|
226
|
+
|
|
227
|
+
## 🚀 Quick Start
|
|
228
|
+
|
|
229
|
+
### Prerequisites
|
|
230
|
+
- Node.js 18+
|
|
231
|
+
- Yarn 3+
|
|
232
|
+
- PostgreSQL (or use Docker)
|
|
233
|
+
|
|
234
|
+
### Setup
|
|
235
|
+
\`\`\`bash
|
|
236
|
+
# Install dependencies
|
|
237
|
+
yarn install
|
|
238
|
+
|
|
239
|
+
# Set up environment variables
|
|
240
|
+
cp packages/api/.env.example packages/api/.env
|
|
241
|
+
cp packages/database/.env.example packages/database/.env
|
|
242
|
+
# Edit .env files with your database URL
|
|
243
|
+
|
|
244
|
+
# Generate database client
|
|
245
|
+
yarn db:generate
|
|
246
|
+
|
|
247
|
+
# Push database schema
|
|
248
|
+
yarn db:push
|
|
249
|
+
|
|
250
|
+
# Start all development servers
|
|
251
|
+
yarn dev
|
|
252
|
+
\`\`\`
|
|
253
|
+
|
|
254
|
+
This will start:
|
|
255
|
+
- 🌐 Web app at http://localhost:3000
|
|
256
|
+
- 🚀 API server at http://localhost:3001
|
|
257
|
+
- 📱 Mobile app (Metro bundler)
|
|
258
|
+
|
|
259
|
+
### Individual Commands
|
|
260
|
+
|
|
261
|
+
\`\`\`bash
|
|
262
|
+
# Web development
|
|
263
|
+
yarn web:dev # Start web app
|
|
264
|
+
yarn web:build # Build web app
|
|
265
|
+
|
|
266
|
+
# Mobile development
|
|
267
|
+
yarn mobile:start # Start Metro bundler
|
|
268
|
+
yarn mobile:android # Run on Android
|
|
269
|
+
yarn mobile:ios # Run on iOS
|
|
270
|
+
|
|
271
|
+
# API development
|
|
272
|
+
yarn api:dev # Start API server
|
|
273
|
+
yarn api:build # Build API server
|
|
274
|
+
|
|
275
|
+
# Database management
|
|
276
|
+
yarn db:generate # Generate Prisma client
|
|
277
|
+
yarn db:push # Push schema to database
|
|
278
|
+
yarn db:migrate # Create migrations
|
|
279
|
+
yarn db:studio # Open Prisma Studio
|
|
280
|
+
|
|
281
|
+
# Build all packages
|
|
282
|
+
yarn build # Build everything
|
|
283
|
+
yarn build:packages # Build shared packages only
|
|
284
|
+
|
|
285
|
+
# Testing
|
|
286
|
+
yarn test # Run all tests
|
|
287
|
+
yarn type-check # Type check all packages
|
|
288
|
+
\`\`\`
|
|
289
|
+
|
|
290
|
+
## 📱 Demo Features
|
|
291
|
+
|
|
292
|
+
The generated application includes working demo features:
|
|
293
|
+
|
|
294
|
+
### User Management
|
|
295
|
+
- User registration and authentication
|
|
296
|
+
- User profiles with avatars
|
|
297
|
+
- User listings and search
|
|
298
|
+
|
|
299
|
+
### Real-time Features
|
|
300
|
+
- Live chat/messaging
|
|
301
|
+
- Real-time notifications
|
|
302
|
+
- Live user presence
|
|
303
|
+
|
|
304
|
+
### Data Flow
|
|
305
|
+
- **Mobile/Web** → **API** → **Database**
|
|
306
|
+
- Shared types and validation across all layers
|
|
307
|
+
- Real-time updates via tRPC subscriptions
|
|
308
|
+
|
|
309
|
+
## 🔧 Development
|
|
310
|
+
|
|
311
|
+
### Adding New Features
|
|
312
|
+
|
|
313
|
+
1. **Database Changes**: Update \`packages/database/prisma/schema.prisma\`
|
|
314
|
+
2. **API Endpoints**: Add routes in \`packages/api/src/routers/\`
|
|
315
|
+
3. **Shared Types**: Add to \`packages/shared/src/\`
|
|
316
|
+
4. **UI Components**: Update \`packages/web/src/\` and \`packages/mobile/src/\`
|
|
317
|
+
|
|
318
|
+
### Package Structure
|
|
319
|
+
|
|
320
|
+
\`\`\`
|
|
321
|
+
${templateData.projectName}/
|
|
322
|
+
├── packages/
|
|
323
|
+
│ ├── api/ # tRPC API server
|
|
324
|
+
│ ├── database/ # Prisma database layer
|
|
325
|
+
│ ├── mobile/ # React Native app
|
|
326
|
+
│ ├── shared/ # Shared components/utils
|
|
327
|
+
│ └── web/ # React web app
|
|
328
|
+
├── package.json # Workspace configuration
|
|
329
|
+
├── docker-compose.yml # Database services
|
|
330
|
+
└── README.md # This file
|
|
331
|
+
\`\`\`
|
|
332
|
+
|
|
333
|
+
## 🔗 Package Integration
|
|
334
|
+
|
|
335
|
+
All packages are properly integrated:
|
|
336
|
+
|
|
337
|
+
- **Database**: Exports typed Prisma client and schemas
|
|
338
|
+
- **API**: Imports database client, exports tRPC router
|
|
339
|
+
- **Shared**: Cross-platform components used by web/mobile
|
|
340
|
+
- **Web/Mobile**: Import shared components and API client
|
|
341
|
+
|
|
342
|
+
### Type Safety
|
|
343
|
+
|
|
344
|
+
Full end-to-end type safety:
|
|
345
|
+
- Database schema → Generated Prisma types
|
|
346
|
+
- API routes → Generated tRPC types
|
|
347
|
+
- Frontend → Typed API client calls
|
|
348
|
+
- Shared components → Typed props
|
|
349
|
+
|
|
350
|
+
## 📚 Documentation
|
|
351
|
+
|
|
352
|
+
- [Idealyst Framework](https://github.com/IdealystIO/idealyst-framework)
|
|
353
|
+
- [Prisma Docs](https://www.prisma.io/docs)
|
|
354
|
+
- [tRPC Docs](https://trpc.io)
|
|
355
|
+
- [React Native Docs](https://reactnative.dev)
|
|
356
|
+
|
|
357
|
+
## 🤝 Contributing
|
|
358
|
+
|
|
359
|
+
1. Fork the repository
|
|
360
|
+
2. Create a feature branch
|
|
361
|
+
3. Make your changes
|
|
362
|
+
4. Add tests
|
|
363
|
+
5. Submit a pull request
|
|
364
|
+
|
|
365
|
+
## 📄 License
|
|
366
|
+
|
|
367
|
+
MIT License - see LICENSE file for details.
|
|
368
|
+
`;
|
|
369
|
+
await fs.writeFile(readmePath, readmeContent);
|
|
370
|
+
}
|
|
371
|
+
//# sourceMappingURL=fullstack.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fullstack.js","sourceRoot":"","sources":["../../src/generators/fullstack.ts"],"names":[],"mappings":"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"}
|
package/dist/generators/index.js
CHANGED
|
@@ -21,6 +21,7 @@ const shared_1 = require("./shared");
|
|
|
21
21
|
const workspace_1 = require("./workspace");
|
|
22
22
|
const api_1 = require("./api");
|
|
23
23
|
const database_1 = require("./database");
|
|
24
|
+
const fullstack_1 = require("./fullstack");
|
|
24
25
|
async function generateProject(options) {
|
|
25
26
|
const { type } = options;
|
|
26
27
|
switch (type) {
|
|
@@ -42,6 +43,9 @@ async function generateProject(options) {
|
|
|
42
43
|
case 'database':
|
|
43
44
|
await (0, database_1.generateDatabaseProject)(options);
|
|
44
45
|
break;
|
|
46
|
+
case 'fullstack':
|
|
47
|
+
await (0, fullstack_1.generateFullStackWorkspace)(options);
|
|
48
|
+
break;
|
|
45
49
|
default:
|
|
46
50
|
throw new Error(`Unknown project type: ${type}`);
|
|
47
51
|
}
|
|
@@ -52,4 +56,5 @@ __exportStar(require("./shared"), exports);
|
|
|
52
56
|
__exportStar(require("./workspace"), exports);
|
|
53
57
|
__exportStar(require("./api"), exports);
|
|
54
58
|
__exportStar(require("./database"), exports);
|
|
59
|
+
__exportStar(require("./fullstack"), exports);
|
|
55
60
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generators/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generators/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AASA,0CA4BC;AApCD,qCAAiD;AACjD,+BAA2C;AAC3C,qCAAiD;AACjD,2CAAgD;AAChD,+BAA2C;AAC3C,yCAAqD;AACrD,2CAAyD;AAElD,KAAK,UAAU,eAAe,CAAC,OAA+B;IACnE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IAEzB,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,QAAQ;YACX,MAAM,IAAA,8BAAqB,EAAC,OAAO,CAAC,CAAC;YACrC,MAAM;QACR,KAAK,KAAK;YACR,MAAM,IAAA,wBAAkB,EAAC,OAAO,CAAC,CAAC;YAClC,MAAM;QACR,KAAK,QAAQ;YACX,MAAM,IAAA,8BAAqB,EAAC,OAAO,CAAC,CAAC;YACrC,MAAM;QACR,KAAK,WAAW;YACd,MAAM,IAAA,6BAAiB,EAAC,OAAO,CAAC,CAAC;YACjC,MAAM;QACR,KAAK,KAAK;YACR,MAAM,IAAA,wBAAkB,EAAC,OAAO,CAAC,CAAC;YAClC,MAAM;QACR,KAAK,UAAU;YACb,MAAM,IAAA,kCAAuB,EAAC,OAAO,CAAC,CAAC;YACvC,MAAM;QACR,KAAK,WAAW;YACd,MAAM,IAAA,sCAA0B,EAAC,OAAO,CAAC,CAAC;YAC1C,MAAM;QACR;YACE,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC;IACrD,CAAC;AACH,CAAC;AAED,2CAAyB;AACzB,wCAAsB;AACtB,2CAAyB;AACzB,8CAA4B;AAC5B,wCAAsB;AACtB,6CAA2B;AAC3B,8CAA4B"}
|
|
@@ -17,7 +17,7 @@ async function generateNativeProject(options) {
|
|
|
17
17
|
console.log(chalk_1.default.blue(`📱 Creating React Native project: ${name}`));
|
|
18
18
|
console.log(chalk_1.default.gray(` App display name: ${displayName}`));
|
|
19
19
|
const { projectPath, workspacePath, workspaceScope } = await (0, utils_1.resolveProjectPath)(name, directory);
|
|
20
|
-
const templatePath =
|
|
20
|
+
const templatePath = (0, utils_1.getTemplatePath)('native');
|
|
21
21
|
const templateData = (0, utils_1.getTemplateData)(name, `React Native app built with Idealyst Framework`, displayName, workspaceScope || undefined);
|
|
22
22
|
try {
|
|
23
23
|
// Step 1: Update workspace configuration FIRST
|
|
@@ -50,6 +50,7 @@ async function generateNativeProject(options) {
|
|
|
50
50
|
if (withTrpc) {
|
|
51
51
|
await (0, utils_1.copyTrpcFiles)(templatePath, projectPath, templateData);
|
|
52
52
|
await (0, utils_1.copyTrpcAppComponent)(templatePath, projectPath, templateData);
|
|
53
|
+
await (0, utils_1.addTrpcDependencies)(projectPath);
|
|
53
54
|
}
|
|
54
55
|
// Step 5: Configure Android vector icons (only if we have Android directory)
|
|
55
56
|
const hasAndroid = await fs_extra_1.default.pathExists(path_1.default.join(projectPath, 'android'));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native.js","sourceRoot":"","sources":["../../src/generators/native.ts"],"names":[],"mappings":";;;;;AAMA,
|
|
1
|
+
{"version":3,"file":"native.js","sourceRoot":"","sources":["../../src/generators/native.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.generateSharedLibrary = generateSharedLibrary;
|
|
7
|
-
const path_1 = __importDefault(require("path"));
|
|
8
7
|
const chalk_1 = __importDefault(require("chalk"));
|
|
9
8
|
const utils_1 = require("./utils");
|
|
10
9
|
async function generateSharedLibrary(options) {
|
|
@@ -14,7 +13,7 @@ async function generateSharedLibrary(options) {
|
|
|
14
13
|
}
|
|
15
14
|
console.log(chalk_1.default.blue(`📦 Creating shared library: ${name}`));
|
|
16
15
|
const { projectPath, workspacePath, workspaceScope } = await (0, utils_1.resolveProjectPath)(name, directory);
|
|
17
|
-
const templatePath =
|
|
16
|
+
const templatePath = (0, utils_1.getTemplatePath)('shared');
|
|
18
17
|
const templateData = (0, utils_1.getTemplateData)(name, `Shared library built with Idealyst Framework`, undefined, workspaceScope || undefined);
|
|
19
18
|
await (0, utils_1.copyTemplate)(templatePath, projectPath, templateData);
|
|
20
19
|
await (0, utils_1.installDependencies)(projectPath, skipInstall);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/generators/shared.ts"],"names":[],"mappings":";;;;;AAKA,sDAyBC;
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/generators/shared.ts"],"names":[],"mappings":";;;;;AAKA,sDAyBC;AA7BD,kDAA0B;AAE1B,mCAAmK;AAE5J,KAAK,UAAU,qBAAqB,CAAC,OAA+B;IACzE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAEjD,IAAI,CAAC,IAAA,2BAAmB,EAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,+BAA+B,IAAI,EAAE,CAAC,CAAC,CAAC;IAE/D,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,MAAM,IAAA,0BAAkB,EAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACjG,MAAM,YAAY,GAAG,IAAA,uBAAe,EAAC,QAAQ,CAAC,CAAC;IAE/C,MAAM,YAAY,GAAG,IAAA,uBAAe,EAAC,IAAI,EAAE,8CAA8C,EAAE,SAAS,EAAE,cAAc,IAAI,SAAS,CAAC,CAAC;IAEnI,MAAM,IAAA,oBAAY,EAAC,YAAY,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;IAC5D,MAAM,IAAA,2BAAmB,EAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACpD,MAAM,IAAA,kCAA0B,EAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IAE3D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC,CAAC;AAC/D,CAAC"}
|