@slingr/cli 0.0.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/README.md +320 -0
- package/bin/dev.cmd +3 -0
- package/bin/dev.js +5 -0
- package/bin/run.cmd +3 -0
- package/bin/run.js +5 -0
- package/dist/commands/cli-build.d.ts +9 -0
- package/dist/commands/cli-build.d.ts.map +1 -0
- package/dist/commands/cli-build.js +36 -0
- package/dist/commands/cli-build.js.map +1 -0
- package/dist/commands/create-app.d.ts +20 -0
- package/dist/commands/create-app.d.ts.map +1 -0
- package/dist/commands/create-app.js +246 -0
- package/dist/commands/create-app.js.map +1 -0
- package/dist/commands/ds.d.ts +28 -0
- package/dist/commands/ds.d.ts.map +1 -0
- package/dist/commands/ds.js +529 -0
- package/dist/commands/ds.js.map +1 -0
- package/dist/commands/gql.d.ts +22 -0
- package/dist/commands/gql.d.ts.map +1 -0
- package/dist/commands/gql.js +340 -0
- package/dist/commands/gql.js.map +1 -0
- package/dist/commands/infra/down.d.ts +13 -0
- package/dist/commands/infra/down.d.ts.map +1 -0
- package/dist/commands/infra/down.js +80 -0
- package/dist/commands/infra/down.js.map +1 -0
- package/dist/commands/infra/up.d.ts +13 -0
- package/dist/commands/infra/up.d.ts.map +1 -0
- package/dist/commands/infra/up.js +69 -0
- package/dist/commands/infra/up.js.map +1 -0
- package/dist/commands/infra/update.d.ts +14 -0
- package/dist/commands/infra/update.d.ts.map +1 -0
- package/dist/commands/infra/update.js +321 -0
- package/dist/commands/infra/update.js.map +1 -0
- package/dist/commands/run.d.ts +19 -0
- package/dist/commands/run.d.ts.map +1 -0
- package/dist/commands/run.js +315 -0
- package/dist/commands/run.js.map +1 -0
- package/dist/commands/setup.d.ts +18 -0
- package/dist/commands/setup.d.ts.map +1 -0
- package/dist/commands/setup.js +189 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/projectStructure.d.ts +10 -0
- package/dist/projectStructure.d.ts.map +1 -0
- package/dist/projectStructure.js +153 -0
- package/dist/projectStructure.js.map +1 -0
- package/dist/scripts/generate-schema.d.ts +10 -0
- package/dist/scripts/generate-schema.d.ts.map +1 -0
- package/dist/scripts/generate-schema.js +130 -0
- package/dist/scripts/generate-schema.js.map +1 -0
- package/dist/scripts/generate-schema.ts +143 -0
- package/dist/templates/.github/copilot-instructions.md.template +17 -0
- package/dist/templates/config/datasource.ts.template +9 -0
- package/dist/templates/config/jest.config.ts +30 -0
- package/dist/templates/config/jest.setup.ts +1 -0
- package/dist/templates/config/tsconfig.json.template +30 -0
- package/dist/templates/dataSources/mysql.ts.template +13 -0
- package/dist/templates/dataSources/postgres.ts.template +13 -0
- package/dist/templates/dataset-generator-script.ts.template +140 -0
- package/dist/templates/datasets/mysql-default/Address.jsonl.template +4 -0
- package/dist/templates/datasets/mysql-default/App.jsonl.template +5 -0
- package/dist/templates/datasets/mysql-default/Company.jsonl.template +4 -0
- package/dist/templates/datasets/mysql-default/Person.jsonl.template +3 -0
- package/dist/templates/datasets/postgres-default/Address.jsonl.template +4 -0
- package/dist/templates/datasets/postgres-default/App.jsonl.template +5 -0
- package/dist/templates/datasets/postgres-default/Company.jsonl.template +4 -0
- package/dist/templates/datasets/postgres-default/Person.jsonl.template +3 -0
- package/dist/templates/docs/app-description.md.template +34 -0
- package/dist/templates/gql/codegen.yml.template +25 -0
- package/dist/templates/gql/index.ts.template +24 -0
- package/dist/templates/gql/operations.graphql.template +30 -0
- package/dist/templates/package.json.template +38 -0
- package/dist/templates/prompt-analysis.md.template +111 -0
- package/dist/templates/prompt-script-generation.md.template +259 -0
- package/dist/templates/src/Address.ts.template +31 -0
- package/dist/templates/src/App.ts.template +61 -0
- package/dist/templates/src/Company.ts.template +48 -0
- package/dist/templates/src/Models.test.ts.template +655 -0
- package/dist/templates/src/Person.test.ts.template +289 -0
- package/dist/templates/src/Person.ts.template +105 -0
- package/dist/templates/src/actions/index.ts.template +12 -0
- package/dist/templates/src/index.ts +66 -0
- package/dist/templates/src/types/gql.d.ts.template +18 -0
- package/dist/templates/vscode/extensions.json +3 -0
- package/dist/templates/vscode/settings.json +11 -0
- package/dist/utils/datasourceParser.d.ts +12 -0
- package/dist/utils/datasourceParser.d.ts.map +1 -0
- package/dist/utils/datasourceParser.js +91 -0
- package/dist/utils/datasourceParser.js.map +1 -0
- package/dist/utils/jsonlLoader.d.ts +140 -0
- package/dist/utils/jsonlLoader.d.ts.map +1 -0
- package/dist/utils/jsonlLoader.js +583 -0
- package/dist/utils/jsonlLoader.js.map +1 -0
- package/dist/utils/model-analyzer.d.ts +86 -0
- package/dist/utils/model-analyzer.d.ts.map +1 -0
- package/dist/utils/model-analyzer.js +458 -0
- package/dist/utils/model-analyzer.js.map +1 -0
- package/dist/utils/portChecker.d.ts +36 -0
- package/dist/utils/portChecker.d.ts.map +1 -0
- package/dist/utils/portChecker.js +308 -0
- package/dist/utils/portChecker.js.map +1 -0
- package/dist/utils/synthetic-data-generator.d.ts +74 -0
- package/dist/utils/synthetic-data-generator.d.ts.map +1 -0
- package/dist/utils/synthetic-data-generator.js +443 -0
- package/dist/utils/synthetic-data-generator.js.map +1 -0
- package/oclif.manifest.json +435 -0
- package/package.json +118 -0
- package/src/templates/.github/copilot-instructions.md.template +17 -0
- package/src/templates/config/datasource.ts.template +9 -0
- package/src/templates/config/jest.config.ts +30 -0
- package/src/templates/config/jest.setup.ts +1 -0
- package/src/templates/config/tsconfig.json.template +30 -0
- package/src/templates/dataSources/mysql.ts.template +13 -0
- package/src/templates/dataSources/postgres.ts.template +13 -0
- package/src/templates/dataset-generator-script.ts.template +140 -0
- package/src/templates/datasets/mysql-default/Address.jsonl.template +4 -0
- package/src/templates/datasets/mysql-default/App.jsonl.template +5 -0
- package/src/templates/datasets/mysql-default/Company.jsonl.template +4 -0
- package/src/templates/datasets/mysql-default/Person.jsonl.template +3 -0
- package/src/templates/datasets/postgres-default/Address.jsonl.template +4 -0
- package/src/templates/datasets/postgres-default/App.jsonl.template +5 -0
- package/src/templates/datasets/postgres-default/Company.jsonl.template +4 -0
- package/src/templates/datasets/postgres-default/Person.jsonl.template +3 -0
- package/src/templates/docs/app-description.md.template +34 -0
- package/src/templates/gql/codegen.yml.template +25 -0
- package/src/templates/gql/index.ts.template +24 -0
- package/src/templates/gql/operations.graphql.template +30 -0
- package/src/templates/package.json.template +38 -0
- package/src/templates/prompt-analysis.md.template +111 -0
- package/src/templates/prompt-script-generation.md.template +259 -0
- package/src/templates/src/Address.ts.template +31 -0
- package/src/templates/src/App.ts.template +61 -0
- package/src/templates/src/Company.ts.template +48 -0
- package/src/templates/src/Models.test.ts.template +655 -0
- package/src/templates/src/Person.test.ts.template +289 -0
- package/src/templates/src/Person.ts.template +105 -0
- package/src/templates/src/actions/index.ts.template +12 -0
- package/src/templates/src/index.ts +66 -0
- package/src/templates/src/types/gql.d.ts.template +18 -0
- package/src/templates/vscode/extensions.json +3 -0
- package/src/templates/vscode/settings.json +11 -0
|
@@ -0,0 +1,340 @@
|
|
|
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
|
+
const core_1 = require("@oclif/core");
|
|
7
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
8
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
9
|
+
const child_process_1 = require("child_process");
|
|
10
|
+
class Gql extends core_1.Command {
|
|
11
|
+
static description = 'Generate GraphQL schema and SDK for your Slingr application';
|
|
12
|
+
static examples = ['slingr gql generate-schema', 'slingr gql generate-schema --no-exit', 'slingr gql generate-sdk'];
|
|
13
|
+
static args = {
|
|
14
|
+
action: core_1.Args.string({
|
|
15
|
+
description: 'Action to perform (generate-schema or generate-sdk)',
|
|
16
|
+
options: ['generate-schema', 'generate-sdk'],
|
|
17
|
+
required: true,
|
|
18
|
+
}),
|
|
19
|
+
};
|
|
20
|
+
static flags = {
|
|
21
|
+
'no-exit': core_1.Flags.boolean({
|
|
22
|
+
description: 'Keep Apollo Server running after generating schema (for generate-schema only)',
|
|
23
|
+
default: false,
|
|
24
|
+
}),
|
|
25
|
+
};
|
|
26
|
+
async run() {
|
|
27
|
+
const { args, flags } = await this.parse(Gql);
|
|
28
|
+
const { action } = args;
|
|
29
|
+
// Verify we're in a Slingr app directory
|
|
30
|
+
const pkgPath = node_path_1.default.join(process.cwd(), 'package.json');
|
|
31
|
+
if (!(await fs_extra_1.default.pathExists(pkgPath))) {
|
|
32
|
+
this.error("Not in a Slingr application directory. Please run this command from your app's root directory.");
|
|
33
|
+
}
|
|
34
|
+
// Check if the app uses slingr-framework
|
|
35
|
+
const packageJson = await fs_extra_1.default.readJSON(pkgPath);
|
|
36
|
+
if (!packageJson.dependencies?.['slingr-framework']) {
|
|
37
|
+
this.error('This directory does not contain a Slingr application.');
|
|
38
|
+
}
|
|
39
|
+
try {
|
|
40
|
+
switch (action) {
|
|
41
|
+
case 'generate-schema':
|
|
42
|
+
await this.generateSchema(flags['no-exit']);
|
|
43
|
+
break;
|
|
44
|
+
case 'generate-sdk':
|
|
45
|
+
await this.generateSDK();
|
|
46
|
+
break;
|
|
47
|
+
default:
|
|
48
|
+
this.error(`Unknown action: ${action}`);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
this.error(`Failed to ${action}: ${error.message}`);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
async prepareEnvironment() {
|
|
56
|
+
// Check if node_modules exists
|
|
57
|
+
const nodeModulesPath = node_path_1.default.join(process.cwd(), 'node_modules');
|
|
58
|
+
if (!(await fs_extra_1.default.pathExists(nodeModulesPath))) {
|
|
59
|
+
this.error('Dependencies not found. Please run "npm install" first to install the required dependencies.');
|
|
60
|
+
}
|
|
61
|
+
// Check if slingr-framework is specifically installed (including symlinks)
|
|
62
|
+
const frameworkPath = node_path_1.default.join(nodeModulesPath, 'slingr-framework');
|
|
63
|
+
try {
|
|
64
|
+
// Use fs.lstat to handle symlinks properly
|
|
65
|
+
await fs_extra_1.default.lstat(frameworkPath);
|
|
66
|
+
}
|
|
67
|
+
catch (error) {
|
|
68
|
+
this.error('slingr-framework not found in node_modules. Please run "npm install" to install dependencies.');
|
|
69
|
+
}
|
|
70
|
+
// Compile only what's necessary for schema generation
|
|
71
|
+
await this.compileForSchemaGeneration();
|
|
72
|
+
}
|
|
73
|
+
async compileForSchemaGeneration() {
|
|
74
|
+
try {
|
|
75
|
+
this.log('Compiling application for schema generation...');
|
|
76
|
+
// Create dist directory if it doesn't exist
|
|
77
|
+
const distDir = node_path_1.default.join(process.cwd(), 'dist');
|
|
78
|
+
await fs_extra_1.default.ensureDir(distDir);
|
|
79
|
+
// Try to compile the entire application with skipLibCheck to avoid @gql errors
|
|
80
|
+
try {
|
|
81
|
+
(0, child_process_1.execSync)('npx tsc --skipLibCheck', {
|
|
82
|
+
stdio: 'inherit',
|
|
83
|
+
cwd: process.cwd(),
|
|
84
|
+
});
|
|
85
|
+
this.log('✅ Application compiled successfully');
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
catch (fullCompileError) {
|
|
89
|
+
this.log('Full compilation failed, trying targeted actions compilation...');
|
|
90
|
+
}
|
|
91
|
+
// Fallback: Compile only actions if they exist
|
|
92
|
+
const actionsPath = node_path_1.default.join(process.cwd(), 'src', 'actions');
|
|
93
|
+
if (await fs_extra_1.default.pathExists(actionsPath)) {
|
|
94
|
+
try {
|
|
95
|
+
// Ensure dist/actions directory exists
|
|
96
|
+
const distActionsDir = node_path_1.default.join(process.cwd(), 'dist', 'actions');
|
|
97
|
+
await fs_extra_1.default.ensureDir(distActionsDir);
|
|
98
|
+
// Compile actions directory specifically
|
|
99
|
+
(0, child_process_1.execSync)(`npx tsc src/actions/*.ts --outDir dist --target es2020 --module commonjs --skipLibCheck --experimentalDecorators --emitDecoratorMetadata --declaration`, {
|
|
100
|
+
stdio: 'pipe',
|
|
101
|
+
cwd: process.cwd(),
|
|
102
|
+
});
|
|
103
|
+
this.log('✅ Actions compiled successfully');
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
catch (actionsError) {
|
|
107
|
+
this.log('Individual actions compilation failed, creating minimal action file...');
|
|
108
|
+
// Create minimal dist/actions/index.js if compilation fails
|
|
109
|
+
const distActionsDir = node_path_1.default.join(process.cwd(), 'dist', 'actions');
|
|
110
|
+
await fs_extra_1.default.ensureDir(distActionsDir);
|
|
111
|
+
const minimalActionContent = `
|
|
112
|
+
// Auto-generated minimal actions index
|
|
113
|
+
module.exports = {};
|
|
114
|
+
`;
|
|
115
|
+
await fs_extra_1.default.writeFile(node_path_1.default.join(distActionsDir, 'index.js'), minimalActionContent);
|
|
116
|
+
this.log('✅ Created minimal actions file');
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
// If no actions directory exists, create minimal dist structure
|
|
121
|
+
const distActionsDir = node_path_1.default.join(process.cwd(), 'dist', 'actions');
|
|
122
|
+
await fs_extra_1.default.ensureDir(distActionsDir);
|
|
123
|
+
const minimalActionContent = `
|
|
124
|
+
// Auto-generated minimal actions index
|
|
125
|
+
module.exports = {};
|
|
126
|
+
`;
|
|
127
|
+
await fs_extra_1.default.writeFile(node_path_1.default.join(distActionsDir, 'index.js'), minimalActionContent);
|
|
128
|
+
this.log('✅ Created minimal dist structure for schema generation');
|
|
129
|
+
}
|
|
130
|
+
catch (error) {
|
|
131
|
+
this.warn('Compilation encountered issues, but continuing with schema generation...');
|
|
132
|
+
this.log('Schema generation will attempt to work with available files.');
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
async generateSchema(noExit = false) {
|
|
136
|
+
this.log('Generating GraphQL schema...');
|
|
137
|
+
await this.prepareEnvironment();
|
|
138
|
+
// Get the source script path
|
|
139
|
+
const sourceScriptPath = node_path_1.default.join(__dirname, '..', 'scripts', 'generate-schema.js');
|
|
140
|
+
// Copy script to user's project temporarily
|
|
141
|
+
const tempScriptPath = node_path_1.default.join(process.cwd(), 'temp-generate-schema.js');
|
|
142
|
+
try {
|
|
143
|
+
// Copy the script to the user's project
|
|
144
|
+
await fs_extra_1.default.copyFile(sourceScriptPath, tempScriptPath);
|
|
145
|
+
// Build the command with optional flags
|
|
146
|
+
const tsconfigPath = node_path_1.default.join(process.cwd(), 'tsconfig.json');
|
|
147
|
+
const baseCommand = (await fs_extra_1.default.pathExists(tsconfigPath))
|
|
148
|
+
? `npx tsx --tsconfig "${tsconfigPath}" "${tempScriptPath}"`
|
|
149
|
+
: `npx tsx "${tempScriptPath}"`;
|
|
150
|
+
const finalCommand = noExit ? `${baseCommand} --no-exit` : baseCommand;
|
|
151
|
+
(0, child_process_1.execSync)(finalCommand, {
|
|
152
|
+
stdio: 'inherit',
|
|
153
|
+
cwd: process.cwd(),
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
catch (error) {
|
|
157
|
+
this.error(`Failed to generate schema: ${error.message}`);
|
|
158
|
+
}
|
|
159
|
+
finally {
|
|
160
|
+
// Clean up the temporary script
|
|
161
|
+
if (await fs_extra_1.default.pathExists(tempScriptPath)) {
|
|
162
|
+
await fs_extra_1.default.remove(tempScriptPath);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
async generateSDK() {
|
|
167
|
+
this.log('Generating GraphQL SDK...');
|
|
168
|
+
// First ensure we have a schema
|
|
169
|
+
const schemaPath = node_path_1.default.join(process.cwd(), 'generated', 'gql', 'schema.graphql');
|
|
170
|
+
if (!(await fs_extra_1.default.pathExists(schemaPath))) {
|
|
171
|
+
this.log('GraphQL schema not found. Generating schema first...');
|
|
172
|
+
await this.generateSchema(); // Use default behavior (exit after generation)
|
|
173
|
+
}
|
|
174
|
+
// Check if graphql-codegen is installed
|
|
175
|
+
await this.ensureCodegenDependencies();
|
|
176
|
+
// Create codegen config if it doesn't exist
|
|
177
|
+
await this.createCodegenConfig();
|
|
178
|
+
// Run graphql-codegen
|
|
179
|
+
try {
|
|
180
|
+
this.log('Running GraphQL Code Generator...');
|
|
181
|
+
(0, child_process_1.execSync)('npx graphql-codegen --config codegen.yml', {
|
|
182
|
+
stdio: 'inherit',
|
|
183
|
+
cwd: process.cwd(),
|
|
184
|
+
});
|
|
185
|
+
const sdkPath = node_path_1.default.join(process.cwd(), 'generated', 'gql', 'sdk.ts');
|
|
186
|
+
this.log(`✅ GraphQL SDK generated successfully at: ${sdkPath}`);
|
|
187
|
+
// Create a barrel export for easier importing
|
|
188
|
+
await this.createBarrelExport();
|
|
189
|
+
// Set up module alias for @gql
|
|
190
|
+
await this.setupModuleAlias();
|
|
191
|
+
// Remove temporary type declaration file (if it exists)
|
|
192
|
+
await this.removeTemporaryTypeDeclaration();
|
|
193
|
+
this.log('\n🚀 Usage example:');
|
|
194
|
+
this.log('```typescript');
|
|
195
|
+
this.log("import gql from '@gql';");
|
|
196
|
+
this.log('');
|
|
197
|
+
this.log('const testResponse = await gql.test();');
|
|
198
|
+
this.log('console.log(testResponse); // "ok"');
|
|
199
|
+
this.log('```');
|
|
200
|
+
}
|
|
201
|
+
catch (error) {
|
|
202
|
+
this.error(`Failed to generate SDK: ${error.message}`);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
async ensureCodegenDependencies() {
|
|
206
|
+
const packageJsonPath = node_path_1.default.join(process.cwd(), 'package.json');
|
|
207
|
+
const packageJson = await fs_extra_1.default.readJSON(packageJsonPath);
|
|
208
|
+
const dependencies = {
|
|
209
|
+
...packageJson.dependencies,
|
|
210
|
+
...packageJson.devDependencies,
|
|
211
|
+
};
|
|
212
|
+
const requiredPackages = [
|
|
213
|
+
'@graphql-codegen/cli',
|
|
214
|
+
'@graphql-codegen/typescript',
|
|
215
|
+
'@graphql-codegen/typescript-operations',
|
|
216
|
+
'@graphql-codegen/typescript-graphql-request',
|
|
217
|
+
];
|
|
218
|
+
const missingPackages = requiredPackages.filter(pkg => !dependencies[pkg]);
|
|
219
|
+
if (missingPackages.length > 0) {
|
|
220
|
+
this.log(`Installing required GraphQL CodeGen dependencies: ${missingPackages.join(', ')}`);
|
|
221
|
+
try {
|
|
222
|
+
(0, child_process_1.execSync)(`npm install --save-dev ${missingPackages.join(' ')}`, {
|
|
223
|
+
stdio: 'inherit',
|
|
224
|
+
cwd: process.cwd(),
|
|
225
|
+
});
|
|
226
|
+
this.log('✅ Dependencies installed successfully');
|
|
227
|
+
}
|
|
228
|
+
catch (error) {
|
|
229
|
+
this.error(`Failed to install dependencies: ${error.message}`);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
async createCodegenConfig() {
|
|
234
|
+
const configPath = node_path_1.default.join(process.cwd(), 'codegen.yml');
|
|
235
|
+
if (await fs_extra_1.default.pathExists(configPath)) {
|
|
236
|
+
this.log('GraphQL CodeGen config already exists, skipping creation...');
|
|
237
|
+
return;
|
|
238
|
+
}
|
|
239
|
+
// Create default operations file if it doesn't exist
|
|
240
|
+
const operationsPath = node_path_1.default.join(process.cwd(), 'operations.graphql');
|
|
241
|
+
if (!(await fs_extra_1.default.pathExists(operationsPath))) {
|
|
242
|
+
const operationsTemplatePath = node_path_1.default.join(__dirname, '..', 'templates', 'gql', 'operations.graphql.template');
|
|
243
|
+
await fs_extra_1.default.copyFile(operationsTemplatePath, operationsPath);
|
|
244
|
+
this.log('✅ Created operations.graphql file');
|
|
245
|
+
this.log('ℹ️ Edit operations.graphql to add your custom GraphQL queries and mutations');
|
|
246
|
+
}
|
|
247
|
+
const configTemplatePath = node_path_1.default.join(__dirname, '..', 'templates', 'gql', 'codegen.yml.template');
|
|
248
|
+
await fs_extra_1.default.copyFile(configTemplatePath, configPath);
|
|
249
|
+
this.log('✅ Created GraphQL CodeGen configuration');
|
|
250
|
+
}
|
|
251
|
+
async createBarrelExport() {
|
|
252
|
+
const generatedDir = node_path_1.default.join(process.cwd(), 'generated', 'gql');
|
|
253
|
+
const indexPath = node_path_1.default.join(generatedDir, 'index.ts');
|
|
254
|
+
const barrelTemplatePath = node_path_1.default.join(__dirname, '..', 'templates', 'gql', 'index.ts.template');
|
|
255
|
+
await fs_extra_1.default.copyFile(barrelTemplatePath, indexPath);
|
|
256
|
+
this.log('✅ Created barrel export for easier imports');
|
|
257
|
+
// Also ensure graphql-request is installed
|
|
258
|
+
const packageJsonPath = node_path_1.default.join(process.cwd(), 'package.json');
|
|
259
|
+
const packageJson = await fs_extra_1.default.readJSON(packageJsonPath);
|
|
260
|
+
const dependencies = {
|
|
261
|
+
...packageJson.dependencies,
|
|
262
|
+
...packageJson.devDependencies,
|
|
263
|
+
};
|
|
264
|
+
if (!dependencies['graphql-request']) {
|
|
265
|
+
this.log('Installing graphql-request for the SDK...');
|
|
266
|
+
try {
|
|
267
|
+
(0, child_process_1.execSync)('npm install graphql-request', {
|
|
268
|
+
stdio: 'inherit',
|
|
269
|
+
cwd: process.cwd(),
|
|
270
|
+
});
|
|
271
|
+
this.log('✅ graphql-request installed successfully');
|
|
272
|
+
}
|
|
273
|
+
catch (error) {
|
|
274
|
+
this.warn(`Could not install graphql-request automatically: ${error.message}`);
|
|
275
|
+
this.log('Please install it manually: npm install graphql-request');
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
async setupModuleAlias() {
|
|
280
|
+
const tsconfigPath = node_path_1.default.join(process.cwd(), 'tsconfig.json');
|
|
281
|
+
if (!(await fs_extra_1.default.pathExists(tsconfigPath))) {
|
|
282
|
+
this.log('No tsconfig.json found, skipping module alias setup...');
|
|
283
|
+
return;
|
|
284
|
+
}
|
|
285
|
+
try {
|
|
286
|
+
const tsconfig = await fs_extra_1.default.readJSON(tsconfigPath);
|
|
287
|
+
// Ensure compilerOptions exists
|
|
288
|
+
if (!tsconfig.compilerOptions) {
|
|
289
|
+
tsconfig.compilerOptions = {};
|
|
290
|
+
}
|
|
291
|
+
// Ensure paths exists
|
|
292
|
+
if (!tsconfig.compilerOptions.paths) {
|
|
293
|
+
tsconfig.compilerOptions.paths = {};
|
|
294
|
+
}
|
|
295
|
+
// Set up the @gql alias using relative paths (no baseUrl needed)
|
|
296
|
+
tsconfig.compilerOptions.paths['@gql'] = ['./generated/gql/index.ts'];
|
|
297
|
+
tsconfig.compilerOptions.paths['@gql/*'] = ['./generated/gql/*'];
|
|
298
|
+
// Remove deprecated baseUrl if it was set to "."
|
|
299
|
+
if (tsconfig.compilerOptions.baseUrl === '.') {
|
|
300
|
+
delete tsconfig.compilerOptions.baseUrl;
|
|
301
|
+
this.log('ℹ️ Removed deprecated baseUrl: "." from tsconfig.json');
|
|
302
|
+
}
|
|
303
|
+
await fs_extra_1.default.writeJSON(tsconfigPath, tsconfig, { spaces: 2 });
|
|
304
|
+
this.log('✅ Set up @gql module alias in tsconfig.json');
|
|
305
|
+
}
|
|
306
|
+
catch (error) {
|
|
307
|
+
this.warn(`Could not update tsconfig.json for module alias: ${error.message}`);
|
|
308
|
+
this.log('You can manually add this to your tsconfig.json:');
|
|
309
|
+
this.log('```json');
|
|
310
|
+
this.log('"compilerOptions": {');
|
|
311
|
+
this.log(' "paths": {');
|
|
312
|
+
this.log(' "@gql": ["./generated/gql/index.ts"],');
|
|
313
|
+
this.log(' "@gql/*": ["./generated/gql/*"]');
|
|
314
|
+
this.log(' }');
|
|
315
|
+
this.log('}');
|
|
316
|
+
this.log('```');
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
async removeTemporaryTypeDeclaration() {
|
|
320
|
+
const tempTypePath = node_path_1.default.join(process.cwd(), 'src', 'types', 'gql.d.ts');
|
|
321
|
+
if (await fs_extra_1.default.pathExists(tempTypePath)) {
|
|
322
|
+
try {
|
|
323
|
+
await fs_extra_1.default.remove(tempTypePath);
|
|
324
|
+
this.log('✅ Removed temporary @gql type declaration');
|
|
325
|
+
// Check if types directory is empty and remove it if so
|
|
326
|
+
const typesDir = node_path_1.default.join(process.cwd(), 'src', 'types');
|
|
327
|
+
const files = await fs_extra_1.default.readdir(typesDir);
|
|
328
|
+
if (files.length === 0) {
|
|
329
|
+
await fs_extra_1.default.remove(typesDir);
|
|
330
|
+
this.log('✅ Removed empty types directory');
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
catch (error) {
|
|
334
|
+
this.warn(`Could not remove temporary type declaration: ${error.message}`);
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
exports.default = Gql;
|
|
340
|
+
//# sourceMappingURL=gql.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gql.js","sourceRoot":"","sources":["../../src/commands/gql.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Command } from '@oclif/core';
|
|
2
|
+
export default class InfraDown extends Command {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static flags: {
|
|
6
|
+
help: import("@oclif/core/interfaces").BooleanFlag<void>;
|
|
7
|
+
volumes: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
8
|
+
};
|
|
9
|
+
run(): Promise<void>;
|
|
10
|
+
private checkDockerComposeFile;
|
|
11
|
+
private checkDockerInstallation;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=down.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"down.d.ts","sourceRoot":"","sources":["../../../src/commands/infra/down.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAM7C,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,OAAO;IAC5C,MAAM,CAAC,WAAW,SAAsF;IACxG,MAAM,CAAC,QAAQ,WAGb;IACF,MAAM,CAAC,KAAK;;;MAOV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;YAiCZ,sBAAsB;YAUtB,uBAAuB;CAsBtC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
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
|
+
const core_1 = require("@oclif/core");
|
|
7
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
8
|
+
const node_child_process_1 = require("node:child_process");
|
|
9
|
+
const portChecker_js_1 = require("../../utils/portChecker.js");
|
|
10
|
+
class InfraDown extends core_1.Command {
|
|
11
|
+
static description = 'Stop infrastructure services using Docker Compose (data is preserved by default)';
|
|
12
|
+
static examples = [
|
|
13
|
+
'<%= config.bin %> <%= command.id %> # Stop services, preserve data',
|
|
14
|
+
'<%= config.bin %> <%= command.id %> --volumes # Stop services and delete all data',
|
|
15
|
+
];
|
|
16
|
+
static flags = {
|
|
17
|
+
help: core_1.Flags.help({ char: 'h' }),
|
|
18
|
+
volumes: core_1.Flags.boolean({
|
|
19
|
+
char: 'v',
|
|
20
|
+
default: false,
|
|
21
|
+
description: 'Remove volumes as well (WARNING: This will delete all data)',
|
|
22
|
+
}),
|
|
23
|
+
};
|
|
24
|
+
async run() {
|
|
25
|
+
const { flags } = await this.parse(InfraDown);
|
|
26
|
+
try {
|
|
27
|
+
// Check if docker-compose.yml exists
|
|
28
|
+
await this.checkDockerComposeFile();
|
|
29
|
+
// Check if Docker and Docker Compose are installed
|
|
30
|
+
await this.checkDockerInstallation();
|
|
31
|
+
// Stop infrastructure services
|
|
32
|
+
this.log('🔽 Stopping infrastructure services...');
|
|
33
|
+
const composeCommand = flags.volumes ? 'docker compose down -v' : 'docker compose down';
|
|
34
|
+
if (flags.volumes) {
|
|
35
|
+
this.log('⚠️ WARNING: This will remove all volumes and permanently delete all data!');
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
this.log('ℹ️ Data will be preserved. Use --volumes flag to remove all data.');
|
|
39
|
+
}
|
|
40
|
+
(0, node_child_process_1.execSync)(composeCommand, { stdio: 'inherit' });
|
|
41
|
+
if (flags.volumes) {
|
|
42
|
+
this.log('✅ Infrastructure services stopped and all data removed.');
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
this.log('✅ Infrastructure services stopped (data preserved).');
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
this.error(error.message);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
async checkDockerComposeFile() {
|
|
53
|
+
const dockerComposeFile = 'docker-compose.yml';
|
|
54
|
+
if (!(await fs_extra_1.default.pathExists(dockerComposeFile))) {
|
|
55
|
+
this.error('No docker-compose.yml file found. Please run "slingr infra update" first to generate the infrastructure configuration.');
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
async checkDockerInstallation() {
|
|
59
|
+
try {
|
|
60
|
+
(0, node_child_process_1.execSync)('docker --version', { stdio: 'pipe' });
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
this.error('Docker is not installed. Please install Docker to run infrastructure services.');
|
|
64
|
+
}
|
|
65
|
+
// Check if Docker daemon is running
|
|
66
|
+
if (!(0, portChecker_js_1.isDockerRunning)()) {
|
|
67
|
+
this.error('🐳 Docker is not running. Please start Docker and try again.\n\n' +
|
|
68
|
+
'On macOS/Windows: Start Docker Desktop\n' +
|
|
69
|
+
'On Linux: Run "sudo systemctl start docker" or "sudo service docker start"');
|
|
70
|
+
}
|
|
71
|
+
try {
|
|
72
|
+
(0, node_child_process_1.execSync)('docker compose version', { stdio: 'pipe' });
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
this.error('Docker Compose is not installed. Please install Docker Compose to run infrastructure services.');
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
exports.default = InfraDown;
|
|
80
|
+
//# sourceMappingURL=down.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"down.js","sourceRoot":"","sources":["../../../src/commands/infra/down.ts"],"names":[],"mappings":";;;;;AAAA,sCAA6C;AAC7C,wDAA0B;AAC1B,2DAA8C;AAE9C,+DAA6D;AAE7D,MAAqB,SAAU,SAAQ,cAAO;IAC5C,MAAM,CAAC,WAAW,GAAG,kFAAkF,CAAC;IACxG,MAAM,CAAC,QAAQ,GAAG;QAChB,oEAAoE;QACpE,mFAAmF;KACpF,CAAC;IACF,MAAM,CAAC,KAAK,GAAG;QACb,IAAI,EAAE,YAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;QAC/B,OAAO,EAAE,YAAK,CAAC,OAAO,CAAC;YACrB,IAAI,EAAE,GAAG;YACT,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,6DAA6D;SAC3E,CAAC;KACH,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAE9C,IAAI,CAAC;YACH,qCAAqC;YACrC,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAEpC,mDAAmD;YACnD,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAErC,+BAA+B;YAC/B,IAAI,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;YAEnD,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,qBAAqB,CAAC;YAExF,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBAClB,IAAI,CAAC,GAAG,CAAC,4EAA4E,CAAC,CAAC;YACzF,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,GAAG,CAAC,oEAAoE,CAAC,CAAC;YACjF,CAAC;YAED,IAAA,6BAAQ,EAAC,cAAc,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;YAE/C,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBAClB,IAAI,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;YACtE,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,sBAAsB;QAClC,MAAM,iBAAiB,GAAG,oBAAoB,CAAC;QAE/C,IAAI,CAAC,CAAC,MAAM,kBAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC;YAC9C,IAAI,CAAC,KAAK,CACR,wHAAwH,CACzH,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,uBAAuB;QACnC,IAAI,CAAC;YACH,IAAA,6BAAQ,EAAC,kBAAkB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAClD,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,KAAK,CAAC,gFAAgF,CAAC,CAAC;QAC/F,CAAC;QAED,oCAAoC;QACpC,IAAI,CAAC,IAAA,gCAAe,GAAE,EAAE,CAAC;YACvB,IAAI,CAAC,KAAK,CACR,kEAAkE;gBAChE,0CAA0C;gBAC1C,4EAA4E,CAC/E,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,IAAA,6BAAQ,EAAC,wBAAwB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,KAAK,CAAC,gGAAgG,CAAC,CAAC;QAC/G,CAAC;IACH,CAAC;;AA/EH,4BAgFC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Command } from '@oclif/core';
|
|
2
|
+
export default class InfraUp extends Command {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static flags: {
|
|
6
|
+
detach: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
7
|
+
help: import("@oclif/core/interfaces").BooleanFlag<void>;
|
|
8
|
+
};
|
|
9
|
+
run(): Promise<void>;
|
|
10
|
+
private checkDockerComposeFile;
|
|
11
|
+
private checkDockerInstallation;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=up.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"up.d.ts","sourceRoot":"","sources":["../../../src/commands/infra/up.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAM7C,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,OAAO;IAC1C,MAAM,CAAC,WAAW,SAAwD;IAC1E,MAAM,CAAC,QAAQ,WAA2F;IAC1G,MAAM,CAAC,KAAK;;;MAOV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;YA0BZ,sBAAsB;YAUtB,uBAAuB;CAsBtC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
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
|
+
const core_1 = require("@oclif/core");
|
|
7
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
8
|
+
const node_child_process_1 = require("node:child_process");
|
|
9
|
+
const portChecker_js_1 = require("../../utils/portChecker.js");
|
|
10
|
+
class InfraUp extends core_1.Command {
|
|
11
|
+
static description = 'Start infrastructure services using Docker Compose';
|
|
12
|
+
static examples = ['<%= config.bin %> <%= command.id %>', '<%= config.bin %> <%= command.id %> --detach'];
|
|
13
|
+
static flags = {
|
|
14
|
+
detach: core_1.Flags.boolean({
|
|
15
|
+
char: 'd',
|
|
16
|
+
default: true,
|
|
17
|
+
description: 'Run services in detached mode (background)',
|
|
18
|
+
}),
|
|
19
|
+
help: core_1.Flags.help({ char: 'h' }),
|
|
20
|
+
};
|
|
21
|
+
async run() {
|
|
22
|
+
const { flags } = await this.parse(InfraUp);
|
|
23
|
+
try {
|
|
24
|
+
// Check if docker-compose.yml exists
|
|
25
|
+
await this.checkDockerComposeFile();
|
|
26
|
+
// Check if Docker and Docker Compose are installed
|
|
27
|
+
await this.checkDockerInstallation();
|
|
28
|
+
// Start infrastructure services
|
|
29
|
+
this.log('Starting infrastructure services...');
|
|
30
|
+
const composeCommand = flags.detach ? 'docker compose up -d' : 'docker compose up';
|
|
31
|
+
(0, node_child_process_1.execSync)(composeCommand, { stdio: 'inherit' });
|
|
32
|
+
if (flags.detach) {
|
|
33
|
+
this.log('Infrastructure services started in detached mode.');
|
|
34
|
+
this.log('Use "docker compose ps" to check service status.');
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
this.error(error.message);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
async checkDockerComposeFile() {
|
|
42
|
+
const dockerComposeFile = 'docker-compose.yml';
|
|
43
|
+
if (!(await fs_extra_1.default.pathExists(dockerComposeFile))) {
|
|
44
|
+
this.error('No docker-compose.yml file found. Please run "slingr infra update" first to generate the infrastructure configuration.');
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
async checkDockerInstallation() {
|
|
48
|
+
try {
|
|
49
|
+
(0, node_child_process_1.execSync)('docker --version', { stdio: 'pipe' });
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
this.error('Docker is not installed. Please install Docker to run infrastructure services.');
|
|
53
|
+
}
|
|
54
|
+
// Check if Docker daemon is running
|
|
55
|
+
if (!(0, portChecker_js_1.isDockerRunning)()) {
|
|
56
|
+
this.error('🐳 Docker is not running. Please start Docker and try again.\n\n' +
|
|
57
|
+
'On macOS/Windows: Start Docker Desktop\n' +
|
|
58
|
+
'On Linux: Run "sudo systemctl start docker" or "sudo service docker start"');
|
|
59
|
+
}
|
|
60
|
+
try {
|
|
61
|
+
(0, node_child_process_1.execSync)('docker compose version', { stdio: 'pipe' });
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
this.error('Docker Compose is not installed. Please install Docker Compose to run infrastructure services.');
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
exports.default = InfraUp;
|
|
69
|
+
//# sourceMappingURL=up.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"up.js","sourceRoot":"","sources":["../../../src/commands/infra/up.ts"],"names":[],"mappings":";;;;;AAAA,sCAA6C;AAC7C,wDAA0B;AAC1B,2DAA8C;AAE9C,+DAA6D;AAE7D,MAAqB,OAAQ,SAAQ,cAAO;IAC1C,MAAM,CAAC,WAAW,GAAG,oDAAoD,CAAC;IAC1E,MAAM,CAAC,QAAQ,GAAG,CAAC,qCAAqC,EAAE,8CAA8C,CAAC,CAAC;IAC1G,MAAM,CAAC,KAAK,GAAG;QACb,MAAM,EAAE,YAAK,CAAC,OAAO,CAAC;YACpB,IAAI,EAAE,GAAG;YACT,OAAO,EAAE,IAAI;YACb,WAAW,EAAE,4CAA4C;SAC1D,CAAC;QACF,IAAI,EAAE,YAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;KAChC,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAE5C,IAAI,CAAC;YACH,qCAAqC;YACrC,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAEpC,mDAAmD;YACnD,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAErC,gCAAgC;YAChC,IAAI,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;YAEhD,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,mBAAmB,CAAC;YAEnF,IAAA,6BAAQ,EAAC,cAAc,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;YAE/C,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBACjB,IAAI,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;gBAC9D,IAAI,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,sBAAsB;QAClC,MAAM,iBAAiB,GAAG,oBAAoB,CAAC;QAE/C,IAAI,CAAC,CAAC,MAAM,kBAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC;YAC9C,IAAI,CAAC,KAAK,CACR,wHAAwH,CACzH,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,uBAAuB;QACnC,IAAI,CAAC;YACH,IAAA,6BAAQ,EAAC,kBAAkB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAClD,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,KAAK,CAAC,gFAAgF,CAAC,CAAC;QAC/F,CAAC;QAED,oCAAoC;QACpC,IAAI,CAAC,IAAA,gCAAe,GAAE,EAAE,CAAC;YACvB,IAAI,CAAC,KAAK,CACR,kEAAkE;gBAChE,0CAA0C;gBAC1C,4EAA4E,CAC/E,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,IAAA,6BAAQ,EAAC,wBAAwB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,KAAK,CAAC,gGAAgG,CAAC,CAAC;QAC/G,CAAC;IACH,CAAC;;AArEH,0BAsEC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Command } from '@oclif/core';
|
|
2
|
+
export default class InfraUpdate extends Command {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static flags: {
|
|
6
|
+
all: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
7
|
+
file: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
8
|
+
};
|
|
9
|
+
run(): Promise<void>;
|
|
10
|
+
private checkPortsBeforeGeneration;
|
|
11
|
+
private generateDockerCompose;
|
|
12
|
+
private readDataSources;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=update.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/commands/infra/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAuB7C,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,OAAO;IAC9C,MAAM,CAAC,WAAW,SAA2D;IAC7E,MAAM,CAAC,QAAQ,WAMb;IACF,MAAM,CAAC,KAAK;;;MAWV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;YA8DZ,0BAA0B;YA8C1B,qBAAqB;YAoGrB,eAAe;CAkF9B"}
|