@slingr/cli 0.0.3 → 0.0.4
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/LICENSE.txt +202 -0
- package/README.md +490 -319
- package/bin/dev.cmd +2 -2
- package/bin/dev.js +5 -5
- package/bin/run.cmd +2 -2
- package/bin/run.js +4 -4
- package/bin/slingr +1 -0
- package/dist/commands/build.d.ts +20 -0
- package/dist/commands/build.d.ts.map +1 -0
- package/dist/commands/build.js +206 -0
- package/dist/commands/build.js.map +1 -0
- package/dist/commands/create-app.d.ts +0 -1
- package/dist/commands/create-app.d.ts.map +1 -1
- package/dist/commands/create-app.js +38 -57
- package/dist/commands/create-app.js.map +1 -1
- package/dist/commands/debug.d.ts +28 -0
- package/dist/commands/debug.d.ts.map +1 -0
- package/dist/commands/debug.js +474 -0
- package/dist/commands/debug.js.map +1 -0
- package/dist/commands/ds.d.ts +14 -1
- package/dist/commands/ds.d.ts.map +1 -1
- package/dist/commands/ds.js +450 -121
- package/dist/commands/ds.js.map +1 -1
- package/dist/commands/gql.d.ts +1 -1
- package/dist/commands/gql.d.ts.map +1 -1
- package/dist/commands/gql.js +190 -184
- package/dist/commands/gql.js.map +1 -1
- package/dist/commands/infra/down.d.ts.map +1 -1
- package/dist/commands/infra/down.js +8 -7
- package/dist/commands/infra/down.js.map +1 -1
- package/dist/commands/infra/up.d.ts.map +1 -1
- package/dist/commands/infra/up.js +8 -7
- package/dist/commands/infra/up.js.map +1 -1
- package/dist/commands/infra/update.d.ts +1 -0
- package/dist/commands/infra/update.d.ts.map +1 -1
- package/dist/commands/infra/update.js +33 -69
- package/dist/commands/infra/update.js.map +1 -1
- package/dist/commands/run.d.ts +29 -2
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +628 -130
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/setup.d.ts +1 -1
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +34 -71
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/sync-metadata.d.ts +15 -0
- package/dist/commands/sync-metadata.d.ts.map +1 -0
- package/dist/commands/sync-metadata.js +225 -0
- package/dist/commands/sync-metadata.js.map +1 -0
- package/dist/commands/users.d.ts +30 -0
- package/dist/commands/users.d.ts.map +1 -0
- package/dist/commands/users.js +472 -0
- package/dist/commands/users.js.map +1 -0
- package/dist/commands/views.d.ts +11 -0
- package/dist/commands/views.d.ts.map +1 -0
- package/dist/commands/views.js +73 -0
- package/dist/commands/views.js.map +1 -0
- package/dist/projectStructure.d.ts +2 -2
- package/dist/projectStructure.d.ts.map +1 -1
- package/dist/projectStructure.js +281 -69
- package/dist/projectStructure.js.map +1 -1
- package/dist/scripts/generate-metadata.d.ts +13 -0
- package/dist/scripts/generate-metadata.d.ts.map +1 -0
- package/dist/scripts/generate-metadata.js +412 -0
- package/dist/scripts/generate-metadata.js.map +1 -0
- package/dist/scripts/generate-metadata.ts +498 -0
- package/dist/scripts/generate-schema.d.ts +1 -1
- package/dist/scripts/generate-schema.js +168 -74
- package/dist/scripts/generate-schema.js.map +1 -1
- package/dist/scripts/generate-schema.ts +258 -143
- package/dist/templates/.env.template +23 -0
- package/dist/templates/.firebaserc.template +5 -0
- package/dist/templates/.github/copilot-instructions.md.template +652 -17
- package/dist/templates/backend/Dockerfile.template +30 -0
- package/dist/templates/config/datasource.ts.template +12 -9
- package/dist/templates/config/jest.config.ts +30 -30
- package/dist/templates/config/jest.setup.ts +1 -1
- package/dist/templates/config/tsconfig.json.template +50 -29
- package/dist/templates/dataSources/mysql.ts.template +16 -13
- package/dist/templates/dataSources/postgres.ts.template +15 -13
- package/dist/templates/dataset-generator-script.ts.template +139 -139
- package/dist/templates/datasets/mysql-default/.slingr-schema.json.template +5 -0
- package/dist/templates/datasets/mysql-default/Address.jsonl.template +3 -3
- package/dist/templates/datasets/mysql-default/App.jsonl.template +4 -4
- package/dist/templates/datasets/mysql-default/Company.jsonl.template +3 -3
- package/dist/templates/datasets/mysql-default/Person.jsonl.template +2 -2
- package/dist/templates/datasets/mysql-default/User.jsonl.template +1 -0
- package/dist/templates/datasets/mysql-default/instructions.md.template +1 -0
- package/dist/templates/datasets/postgres-default/.slingr-schema.json.template +5 -0
- package/dist/templates/datasets/postgres-default/Address.jsonl.template +3 -3
- package/dist/templates/datasets/postgres-default/App.jsonl.template +4 -4
- package/dist/templates/datasets/postgres-default/Company.jsonl.template +3 -3
- package/dist/templates/datasets/postgres-default/Person.jsonl.template +2 -2
- package/dist/templates/datasets/postgres-default/User.jsonl.template +1 -0
- package/dist/templates/datasets/postgres-default/instructions.md.template +1 -0
- package/dist/templates/docker-compose.prod-test.yml.template +32 -0
- package/dist/templates/docker-compose.yml.template +24 -0
- package/dist/templates/docs/app-description.md.template +33 -33
- package/dist/templates/firebase.json.template +68 -0
- package/dist/templates/frontend/.umirc.ts.template +23 -0
- package/dist/templates/frontend/package.json.template +45 -0
- package/dist/templates/frontend/public/config.json +6 -0
- package/dist/templates/frontend/public/logo.svg +6 -0
- package/dist/templates/frontend/src/app.tsx.template +44 -0
- package/dist/templates/frontend/src/global.less.template +117 -0
- package/dist/templates/frontend/src/layouts/MainLayout.tsx.template +75 -0
- package/dist/templates/frontend/src/types/graphql-augmentation.d.ts.template +44 -0
- package/dist/templates/frontend/src/views/customViews/user/UserCreateView.tsx.template +18 -0
- package/dist/templates/frontend/src/views/customViews/user/UserEditView.tsx.template +29 -0
- package/dist/templates/frontend/src/views/customViews/user/UserReadView.tsx.template +24 -0
- package/dist/templates/frontend/src/views/customViews/user/UserTableView.tsx.template +38 -0
- package/dist/templates/frontend/src/views/customViews/welcome.tsx.template +34 -0
- package/dist/templates/frontend/tsconfig.json.template +50 -0
- package/dist/templates/gql/codegen.yml.template +25 -25
- package/dist/templates/gql/index.ts.template +17 -24
- package/dist/templates/gql/operations.graphql.template +30 -30
- package/dist/templates/ops/README.md.template +1045 -0
- package/dist/templates/ops/cloudbuild.yaml.template +161 -0
- package/dist/templates/ops/scripts/_utils.js.template +217 -0
- package/dist/templates/ops/scripts/deploy.js.template +145 -0
- package/dist/templates/ops/scripts/setup-gcp.js.template +330 -0
- package/dist/templates/ops/scripts/setup-secrets.js.template +76 -0
- package/dist/templates/ops/scripts/test-prod-local.js.template +49 -0
- package/dist/templates/package.json.template +50 -38
- package/dist/templates/pnpm-workspace.yaml.template +3 -0
- package/dist/templates/prompt-analysis.md.template +110 -110
- package/dist/templates/prompt-script-generation.md.template +258 -258
- package/dist/templates/src/Address.ts.template +28 -31
- package/dist/templates/src/App.ts.template +17 -61
- package/dist/templates/src/Company.ts.template +41 -47
- package/dist/templates/src/Models.test.ts.template +654 -654
- package/dist/templates/src/Person.test.ts.template +289 -289
- package/dist/templates/src/Person.ts.template +90 -105
- package/dist/templates/src/actions/index.ts.template +11 -11
- package/dist/templates/src/auth/permissions.ts.template +34 -0
- package/dist/templates/src/data/App.ts.template +48 -0
- package/dist/templates/src/data/User.ts.template +35 -0
- package/dist/templates/src/types/gql.d.ts.template +17 -17
- package/dist/templates/vscode/extensions.json +4 -3
- package/dist/templates/vscode/settings.json +17 -11
- package/dist/templates/workspace-package.json.template +21 -0
- package/dist/utils/buildCache.d.ts +12 -0
- package/dist/utils/buildCache.d.ts.map +1 -0
- package/dist/utils/buildCache.js +102 -0
- package/dist/utils/buildCache.js.map +1 -0
- package/dist/utils/checkFramework.d.ts +27 -0
- package/dist/utils/checkFramework.d.ts.map +1 -0
- package/dist/utils/checkFramework.js +104 -0
- package/dist/utils/checkFramework.js.map +1 -0
- package/dist/utils/datasourceParser.d.ts +11 -0
- package/dist/utils/datasourceParser.d.ts.map +1 -1
- package/dist/utils/datasourceParser.js +154 -56
- package/dist/utils/datasourceParser.js.map +1 -1
- package/dist/utils/dockerManager.d.ts +25 -0
- package/dist/utils/dockerManager.d.ts.map +1 -0
- package/dist/utils/dockerManager.js +281 -0
- package/dist/utils/dockerManager.js.map +1 -0
- package/dist/utils/infraFileParser.d.ts +26 -0
- package/dist/utils/infraFileParser.d.ts.map +1 -0
- package/dist/utils/infraFileParser.js +75 -0
- package/dist/utils/infraFileParser.js.map +1 -0
- package/dist/utils/jsonlLoader.d.ts +91 -12
- package/dist/utils/jsonlLoader.d.ts.map +1 -1
- package/dist/utils/jsonlLoader.js +674 -63
- package/dist/utils/jsonlLoader.js.map +1 -1
- package/dist/utils/model-analyzer.d.ts.map +1 -1
- package/dist/utils/model-analyzer.js +67 -13
- package/dist/utils/model-analyzer.js.map +1 -1
- package/dist/utils/userManagement.d.ts +57 -0
- package/dist/utils/userManagement.d.ts.map +1 -0
- package/dist/utils/userManagement.js +288 -0
- package/dist/utils/userManagement.js.map +1 -0
- package/dist/utils/viewsGenerator.d.ts +15 -0
- package/dist/utils/viewsGenerator.d.ts.map +1 -0
- package/dist/utils/viewsGenerator.js +311 -0
- package/dist/utils/viewsGenerator.js.map +1 -0
- package/oclif.manifest.json +445 -20
- package/package.json +29 -26
- package/src/templates/.env.template +23 -0
- package/src/templates/.firebaserc.template +5 -0
- package/src/templates/.github/copilot-instructions.md.template +652 -17
- package/src/templates/backend/Dockerfile.template +30 -0
- package/src/templates/config/datasource.ts.template +12 -9
- package/src/templates/config/jest.config.ts +30 -30
- package/src/templates/config/jest.setup.ts +1 -1
- package/src/templates/config/tsconfig.json.template +50 -29
- package/src/templates/dataSources/mysql.ts.template +16 -13
- package/src/templates/dataSources/postgres.ts.template +15 -13
- package/src/templates/dataset-generator-script.ts.template +139 -139
- package/src/templates/datasets/mysql-default/.slingr-schema.json.template +5 -0
- package/src/templates/datasets/mysql-default/Address.jsonl.template +3 -3
- package/src/templates/datasets/mysql-default/App.jsonl.template +4 -4
- package/src/templates/datasets/mysql-default/Company.jsonl.template +3 -3
- package/src/templates/datasets/mysql-default/Person.jsonl.template +2 -2
- package/src/templates/datasets/mysql-default/User.jsonl.template +1 -0
- package/src/templates/datasets/mysql-default/instructions.md.template +1 -0
- package/src/templates/datasets/postgres-default/.slingr-schema.json.template +5 -0
- package/src/templates/datasets/postgres-default/Address.jsonl.template +3 -3
- package/src/templates/datasets/postgres-default/App.jsonl.template +4 -4
- package/src/templates/datasets/postgres-default/Company.jsonl.template +3 -3
- package/src/templates/datasets/postgres-default/Person.jsonl.template +2 -2
- package/src/templates/datasets/postgres-default/User.jsonl.template +1 -0
- package/src/templates/datasets/postgres-default/instructions.md.template +1 -0
- package/src/templates/docker-compose.prod-test.yml.template +32 -0
- package/src/templates/docker-compose.yml.template +24 -0
- package/src/templates/docs/app-description.md.template +33 -33
- package/src/templates/firebase.json.template +68 -0
- package/src/templates/frontend/.umirc.ts.template +23 -0
- package/src/templates/frontend/package.json.template +45 -0
- package/src/templates/frontend/public/config.json +6 -0
- package/src/templates/frontend/public/logo.svg +6 -0
- package/src/templates/frontend/src/app.tsx.template +44 -0
- package/src/templates/frontend/src/global.less.template +117 -0
- package/src/templates/frontend/src/layouts/MainLayout.tsx.template +75 -0
- package/src/templates/frontend/src/types/graphql-augmentation.d.ts.template +44 -0
- package/src/templates/frontend/src/views/customViews/user/UserCreateView.tsx.template +18 -0
- package/src/templates/frontend/src/views/customViews/user/UserEditView.tsx.template +29 -0
- package/src/templates/frontend/src/views/customViews/user/UserReadView.tsx.template +24 -0
- package/src/templates/frontend/src/views/customViews/user/UserTableView.tsx.template +38 -0
- package/src/templates/frontend/src/views/customViews/welcome.tsx.template +34 -0
- package/src/templates/frontend/tsconfig.json.template +50 -0
- package/src/templates/gql/codegen.yml.template +25 -25
- package/src/templates/gql/index.ts.template +17 -24
- package/src/templates/gql/operations.graphql.template +30 -30
- package/src/templates/ops/README.md.template +1045 -0
- package/src/templates/ops/cloudbuild.yaml.template +161 -0
- package/src/templates/ops/scripts/_utils.js.template +217 -0
- package/src/templates/ops/scripts/deploy.js.template +145 -0
- package/src/templates/ops/scripts/setup-gcp.js.template +330 -0
- package/src/templates/ops/scripts/setup-secrets.js.template +76 -0
- package/src/templates/ops/scripts/test-prod-local.js.template +49 -0
- package/src/templates/package.json.template +50 -38
- package/src/templates/pnpm-workspace.yaml.template +3 -0
- package/src/templates/prompt-analysis.md.template +110 -110
- package/src/templates/prompt-script-generation.md.template +258 -258
- package/src/templates/src/Address.ts.template +28 -31
- package/src/templates/src/App.ts.template +17 -61
- package/src/templates/src/Company.ts.template +41 -47
- package/src/templates/src/Models.test.ts.template +654 -654
- package/src/templates/src/Person.test.ts.template +289 -289
- package/src/templates/src/Person.ts.template +90 -105
- package/src/templates/src/actions/index.ts.template +11 -11
- package/src/templates/src/auth/permissions.ts.template +34 -0
- package/src/templates/src/data/App.ts.template +48 -0
- package/src/templates/src/data/User.ts.template +35 -0
- package/src/templates/src/types/gql.d.ts.template +17 -17
- package/src/templates/vscode/extensions.json +4 -3
- package/src/templates/vscode/settings.json +17 -11
- package/src/templates/workspace-package.json.template +21 -0
- package/dist/templates/src/index.ts +0 -66
- package/src/templates/src/index.ts +0 -66
package/bin/dev.cmd
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
@echo off
|
|
2
|
-
|
|
1
|
+
@echo off
|
|
2
|
+
|
|
3
3
|
node --loader ts-node/esm --no-warnings=ExperimentalWarning "%~dp0\dev" %*
|
package/bin/dev.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
const { execute } = require('@oclif/core');
|
|
4
|
-
|
|
5
|
-
execute({ development: true, dir: __dirname });
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
const { execute } = require('@oclif/core');
|
|
4
|
+
|
|
5
|
+
execute({ development: true, dir: __dirname });
|
package/bin/run.cmd
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
@echo off
|
|
2
|
-
|
|
1
|
+
@echo off
|
|
2
|
+
|
|
3
3
|
node "%~dp0\run" %*
|
package/bin/run.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
const { execute } = require('@oclif/core');
|
|
4
|
-
|
|
5
|
-
execute({ dir: __dirname });
|
|
2
|
+
|
|
3
|
+
const { execute } = require('@oclif/core');
|
|
4
|
+
|
|
5
|
+
execute({ dir: __dirname });
|
package/bin/slingr
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
../lib/node_modules/@slingr/cli/bin/run.js
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Command } from '@oclif/core';
|
|
2
|
+
export default class Build extends Command {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static flags: {
|
|
6
|
+
help: import("@oclif/core/interfaces").BooleanFlag<void>;
|
|
7
|
+
'skip-metadata': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
8
|
+
'skip-backend': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
9
|
+
'skip-frontend': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
10
|
+
verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
11
|
+
};
|
|
12
|
+
private verbose;
|
|
13
|
+
private stepResults;
|
|
14
|
+
private summarized;
|
|
15
|
+
private recordStep;
|
|
16
|
+
private extractBuildOutput;
|
|
17
|
+
private printSummary;
|
|
18
|
+
run(): Promise<void>;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=build.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAa7C,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,OAAO;IACxC,OAAgB,WAAW,SAI+D;IAE1F,OAAgB,QAAQ,WAKtB;IAEF,OAAgB,KAAK;;;;;;MAsBnB;IAEF,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,UAAU,CAAkB;IAEpC,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,kBAAkB;IAa1B,OAAO,CAAC,YAAY;IAkCP,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA+GlC"}
|
|
@@ -0,0 +1,206 @@
|
|
|
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 node_path_1 = __importDefault(require("node:path"));
|
|
10
|
+
const checkFramework_js_1 = require("../utils/checkFramework.js");
|
|
11
|
+
class Build extends core_1.Command {
|
|
12
|
+
static description = 'Build a Slingr application: sync metadata, compile backend TypeScript, and build frontend.\n\n' +
|
|
13
|
+
'Use this command instead of running `npm run build` directly. It ensures all generated files\n' +
|
|
14
|
+
'(view registries, GraphQL schema and SDK) are up-to-date before TypeScript compilation,\n' +
|
|
15
|
+
'preventing errors like "Cannot find module \'../src/views/...\'" in generated/ files.';
|
|
16
|
+
static examples = [
|
|
17
|
+
'<%= config.bin %> <%= command.id %>',
|
|
18
|
+
'<%= config.bin %> <%= command.id %> --skip-frontend',
|
|
19
|
+
'<%= config.bin %> <%= command.id %> --skip-metadata',
|
|
20
|
+
'<%= config.bin %> <%= command.id %> --verbose',
|
|
21
|
+
];
|
|
22
|
+
static flags = {
|
|
23
|
+
help: core_1.Flags.help({ char: 'h' }),
|
|
24
|
+
'skip-metadata': core_1.Flags.boolean({
|
|
25
|
+
char: 'm',
|
|
26
|
+
description: 'Skip sync-metadata step (view registries, schema, SDK generation)',
|
|
27
|
+
required: false,
|
|
28
|
+
}),
|
|
29
|
+
'skip-backend': core_1.Flags.boolean({
|
|
30
|
+
char: 'b',
|
|
31
|
+
description: 'Skip backend TypeScript compilation',
|
|
32
|
+
required: false,
|
|
33
|
+
}),
|
|
34
|
+
'skip-frontend': core_1.Flags.boolean({
|
|
35
|
+
char: 'f',
|
|
36
|
+
description: 'Skip frontend build',
|
|
37
|
+
required: false,
|
|
38
|
+
}),
|
|
39
|
+
verbose: core_1.Flags.boolean({
|
|
40
|
+
char: 'v',
|
|
41
|
+
description: 'Show detailed build and compilation output',
|
|
42
|
+
required: false,
|
|
43
|
+
}),
|
|
44
|
+
};
|
|
45
|
+
verbose = false;
|
|
46
|
+
stepResults = [];
|
|
47
|
+
summarized = false;
|
|
48
|
+
recordStep(name, status, message) {
|
|
49
|
+
const step = { name, status };
|
|
50
|
+
if (message !== undefined)
|
|
51
|
+
step.message = message;
|
|
52
|
+
this.stepResults.push(step);
|
|
53
|
+
}
|
|
54
|
+
extractBuildOutput(error) {
|
|
55
|
+
const parts = [];
|
|
56
|
+
if (error?.stdout) {
|
|
57
|
+
const stdout = error.stdout.toString().trim();
|
|
58
|
+
if (stdout)
|
|
59
|
+
parts.push(stdout);
|
|
60
|
+
}
|
|
61
|
+
if (error?.stderr) {
|
|
62
|
+
const stderr = error.stderr.toString().trim();
|
|
63
|
+
if (stderr)
|
|
64
|
+
parts.push(stderr);
|
|
65
|
+
}
|
|
66
|
+
return parts.length > 0 ? '\n' + parts.join('\n') : '';
|
|
67
|
+
}
|
|
68
|
+
printSummary() {
|
|
69
|
+
if (this.stepResults.length === 0 || this.summarized)
|
|
70
|
+
return;
|
|
71
|
+
this.summarized = true;
|
|
72
|
+
const hasErrors = this.stepResults.some(s => s.status === 'error');
|
|
73
|
+
const hasWarnings = this.stepResults.some(s => s.status === 'warning');
|
|
74
|
+
this.log('');
|
|
75
|
+
this.log('━'.repeat(60));
|
|
76
|
+
if (hasErrors) {
|
|
77
|
+
this.log('❌ Build completed with errors');
|
|
78
|
+
}
|
|
79
|
+
else if (hasWarnings) {
|
|
80
|
+
this.log('⚠️ Build completed with warnings');
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
this.log('✅ Build completed successfully');
|
|
84
|
+
}
|
|
85
|
+
this.log('━'.repeat(60));
|
|
86
|
+
for (const step of this.stepResults) {
|
|
87
|
+
const icon = step.status === 'success' ? '✅' : step.status === 'warning' ? '⚠️ ' : step.status === 'skipped' ? '⏭️ ' : '❌';
|
|
88
|
+
const msg = step.status === 'skipped'
|
|
89
|
+
? ` — skipped${step.message ? ` (${step.message})` : ''}`
|
|
90
|
+
: step.message
|
|
91
|
+
? ` — ${step.message}`
|
|
92
|
+
: '';
|
|
93
|
+
this.log(` ${icon} ${step.name}${msg}`);
|
|
94
|
+
}
|
|
95
|
+
this.log('━'.repeat(60));
|
|
96
|
+
this.log('');
|
|
97
|
+
}
|
|
98
|
+
async run() {
|
|
99
|
+
const { flags } = await this.parse(Build);
|
|
100
|
+
this.verbose = flags.verbose ?? false;
|
|
101
|
+
try {
|
|
102
|
+
// Validate environment
|
|
103
|
+
const packageJsonPath = node_path_1.default.join(process.cwd(), 'package.json');
|
|
104
|
+
if (!(await fs_extra_1.default.pathExists(packageJsonPath))) {
|
|
105
|
+
this.error("Not in a Slingr application directory. Please run this command from your app's root directory.");
|
|
106
|
+
}
|
|
107
|
+
if (!(await (0, checkFramework_js_1.hasSlingrFramework)())) {
|
|
108
|
+
this.error('This directory does not contain a Slingr application.');
|
|
109
|
+
}
|
|
110
|
+
const backendPath = (0, checkFramework_js_1.getBackendPath)();
|
|
111
|
+
const srcAppPath = node_path_1.default.join(backendPath, 'src', 'App.ts');
|
|
112
|
+
if (!(await fs_extra_1.default.pathExists(srcAppPath))) {
|
|
113
|
+
this.error('backend/src/App.ts not found. This does not appear to be a valid Slingr application.');
|
|
114
|
+
}
|
|
115
|
+
this.log('🔨 Building Slingr application...');
|
|
116
|
+
this.log('');
|
|
117
|
+
// Step 1: Sync metadata (view registries, GraphQL schema, SDK)
|
|
118
|
+
if (flags['skip-metadata']) {
|
|
119
|
+
this.recordStep('Sync metadata', 'skipped', '--skip-metadata');
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
this.log('🔄 Step 1/3: Syncing metadata (view registries, schema, SDK)...');
|
|
123
|
+
try {
|
|
124
|
+
await this.config.runCommand('sync-metadata');
|
|
125
|
+
this.recordStep('Sync metadata', 'success');
|
|
126
|
+
}
|
|
127
|
+
catch (error) {
|
|
128
|
+
this.recordStep('Sync metadata', 'warning', error.message);
|
|
129
|
+
this.warn(`Metadata sync encountered issues: ${error.message}`);
|
|
130
|
+
this.warn('Proceeding with compilation using any generated stubs...');
|
|
131
|
+
}
|
|
132
|
+
this.log('');
|
|
133
|
+
}
|
|
134
|
+
// Step 2: Backend TypeScript compilation
|
|
135
|
+
if (flags['skip-backend']) {
|
|
136
|
+
this.recordStep('Backend compilation', 'skipped', '--skip-backend');
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
this.log('⚙️ Step 2/3: Compiling backend TypeScript...');
|
|
140
|
+
try {
|
|
141
|
+
// Remove stale compiled output before recompiling.
|
|
142
|
+
// Only remove src/ and generated/ (not dist/ui/ which holds the frontend build).
|
|
143
|
+
await fs_extra_1.default.remove(node_path_1.default.join(backendPath, 'dist', 'src'));
|
|
144
|
+
await fs_extra_1.default.remove(node_path_1.default.join(backendPath, 'dist', 'generated'));
|
|
145
|
+
if (this.verbose) {
|
|
146
|
+
(0, node_child_process_1.execSync)('npm run build', { stdio: 'inherit', cwd: backendPath });
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
(0, node_child_process_1.execSync)('npm run build', { stdio: 'pipe', cwd: backendPath });
|
|
150
|
+
}
|
|
151
|
+
this.log('✅ Backend compiled successfully');
|
|
152
|
+
this.recordStep('Backend compilation', 'success');
|
|
153
|
+
}
|
|
154
|
+
catch (error) {
|
|
155
|
+
const detail = this.extractBuildOutput(error);
|
|
156
|
+
this.recordStep('Backend compilation', 'error', 'Compilation failed');
|
|
157
|
+
this.printSummary();
|
|
158
|
+
this.error(`Backend TypeScript compilation failed:${detail || ` ${error.message}`}`);
|
|
159
|
+
}
|
|
160
|
+
this.log('');
|
|
161
|
+
}
|
|
162
|
+
// Step 3: Frontend build
|
|
163
|
+
const frontendPath = node_path_1.default.join(process.cwd(), 'frontend');
|
|
164
|
+
const frontendDirExists = await fs_extra_1.default.pathExists(frontendPath);
|
|
165
|
+
const frontendPkgExists = frontendDirExists && (await fs_extra_1.default.pathExists(node_path_1.default.join(frontendPath, 'package.json')));
|
|
166
|
+
if (frontendDirExists && !frontendPkgExists) {
|
|
167
|
+
this.recordStep('Frontend build', 'error', 'frontend/ directory exists but package.json is missing');
|
|
168
|
+
this.printSummary();
|
|
169
|
+
this.error('frontend/package.json not found. The frontend directory exists but appears to be incomplete.');
|
|
170
|
+
}
|
|
171
|
+
if (flags['skip-frontend'] || !frontendDirExists) {
|
|
172
|
+
this.recordStep('Frontend build', 'skipped', flags['skip-frontend'] ? '--skip-frontend' : 'No frontend directory found');
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
this.log('📦 Step 3/3: Building frontend...');
|
|
176
|
+
try {
|
|
177
|
+
if (this.verbose) {
|
|
178
|
+
(0, node_child_process_1.execSync)('npm run build', { stdio: 'inherit', cwd: frontendPath });
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
(0, node_child_process_1.execSync)('npm run build', { stdio: 'pipe', cwd: frontendPath });
|
|
182
|
+
}
|
|
183
|
+
this.log('✅ Frontend built successfully');
|
|
184
|
+
this.recordStep('Frontend build', 'success');
|
|
185
|
+
}
|
|
186
|
+
catch (error) {
|
|
187
|
+
const detail = this.extractBuildOutput(error);
|
|
188
|
+
this.recordStep('Frontend build', 'error', 'Build failed');
|
|
189
|
+
this.printSummary();
|
|
190
|
+
this.error(`Frontend build failed:${detail || ` ${error.message}`}`);
|
|
191
|
+
}
|
|
192
|
+
this.log('');
|
|
193
|
+
}
|
|
194
|
+
this.printSummary();
|
|
195
|
+
}
|
|
196
|
+
catch (error) {
|
|
197
|
+
if (!error.oclif) {
|
|
198
|
+
this.printSummary();
|
|
199
|
+
this.error(error.message);
|
|
200
|
+
}
|
|
201
|
+
throw error;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
exports.default = Build;
|
|
206
|
+
//# sourceMappingURL=build.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,6 @@ export default class CreateApp extends Command {
|
|
|
13
13
|
help: import("@oclif/core/interfaces").BooleanFlag<void>;
|
|
14
14
|
'skip-setup': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
15
15
|
templates: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
16
|
-
type: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
17
16
|
};
|
|
18
17
|
run(): Promise<void>;
|
|
19
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-app.d.ts","sourceRoot":"","sources":["../../src/commands/create-app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"create-app.d.ts","sourceRoot":"","sources":["../../src/commands/create-app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAC;AASnD,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,OAAO;IAC5C,OAAgB,IAAI;;MAKlB;IACF,OAAgB,WAAW,SAA6B;IACxD,OAAgB,QAAQ,WAMtB;IACF,OAAgB,KAAK;;;;;;;;MAkCnB;IAEW,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAkLlC"}
|
|
@@ -9,6 +9,7 @@ const inquirer_1 = __importDefault(require("inquirer"));
|
|
|
9
9
|
const node_path_1 = __importDefault(require("node:path"));
|
|
10
10
|
const child_process_1 = require("child_process");
|
|
11
11
|
const projectStructure_js_1 = require("../projectStructure.js");
|
|
12
|
+
const viewsGenerator_js_1 = require("../utils/viewsGenerator.js");
|
|
12
13
|
class CreateApp extends core_1.Command {
|
|
13
14
|
static args = {
|
|
14
15
|
name: core_1.Args.string({
|
|
@@ -21,8 +22,8 @@ class CreateApp extends core_1.Command {
|
|
|
21
22
|
'<%= config.bin %> <%= command.id %>',
|
|
22
23
|
'<%= config.bin %> <%= command.id %> my-app',
|
|
23
24
|
'<%= config.bin %> <%= command.id %> task-manager',
|
|
24
|
-
'<%= config.bin %> <%= command.id %> my-crm --
|
|
25
|
-
'<%= config.bin %> <%= command.id %> my-crm --
|
|
25
|
+
'<%= config.bin %> <%= command.id %> my-crm --database=postgres --description="A CRM system for managing customers"',
|
|
26
|
+
'<%= config.bin %> <%= command.id %> my-crm --database=postgres --description="A CRM system for managing customers" -T',
|
|
26
27
|
];
|
|
27
28
|
static flags = {
|
|
28
29
|
backend: core_1.Flags.boolean({
|
|
@@ -58,10 +59,6 @@ class CreateApp extends core_1.Command {
|
|
|
58
59
|
default: false,
|
|
59
60
|
description: 'Include template models and tests in the project',
|
|
60
61
|
}),
|
|
61
|
-
type: core_1.Flags.string({
|
|
62
|
-
char: 't',
|
|
63
|
-
description: 'Type of app (e.g., CRM, task manager, ERP)',
|
|
64
|
-
}),
|
|
65
62
|
};
|
|
66
63
|
async run() {
|
|
67
64
|
const { args, flags } = await this.parse(CreateApp);
|
|
@@ -107,72 +104,49 @@ class CreateApp extends core_1.Command {
|
|
|
107
104
|
this.log(`\u001B[32m✓\u001B[0m What is the name of your app? ${appName}`);
|
|
108
105
|
}
|
|
109
106
|
let answers;
|
|
110
|
-
//
|
|
111
|
-
//
|
|
112
|
-
const
|
|
113
|
-
if (
|
|
107
|
+
// Skip prompts if description flag is provided (for non-interactive usage)
|
|
108
|
+
// We make description check sufficient for non-interactive mode since it's the only prompt now
|
|
109
|
+
const isNonInteractive = flags.description !== undefined;
|
|
110
|
+
if (isNonInteractive) {
|
|
114
111
|
// Use provided flags, backend and frontend default to true, database defaults to postgres
|
|
115
112
|
answers = {
|
|
116
|
-
appType: flags.type,
|
|
117
113
|
database: flags.database || 'postgres',
|
|
118
|
-
description: flags.description,
|
|
119
114
|
hasBackend: flags.backend ?? true,
|
|
120
115
|
hasFrontend: flags.frontend ?? true,
|
|
121
116
|
includeTemplates: flags.templates ?? false,
|
|
122
117
|
};
|
|
118
|
+
if (flags.description) {
|
|
119
|
+
answers.description = flags.description;
|
|
120
|
+
}
|
|
123
121
|
}
|
|
124
122
|
else {
|
|
125
|
-
// Ask
|
|
126
|
-
const appTypeAnswer = await inquirer_1.default.prompt([
|
|
127
|
-
{
|
|
128
|
-
default: flags.type,
|
|
129
|
-
message: 'What type of app are you creating?',
|
|
130
|
-
name: 'appType',
|
|
131
|
-
prefix: '\u001B[36m›\u001B[0m',
|
|
132
|
-
suffix: ' (e.g., CRM, task manager, ERP)',
|
|
133
|
-
type: 'input',
|
|
134
|
-
validate: (input) => input.length > 0 || 'Please provide an app type',
|
|
135
|
-
},
|
|
136
|
-
]);
|
|
137
|
-
// Clear the question line and show with checkmark
|
|
138
|
-
process.stdout.write('\u001B[1A\u001B[2K');
|
|
139
|
-
this.log(`\u001B[32m✓\u001B[0m What type of app are you creating? ${appTypeAnswer.appType}`);
|
|
123
|
+
// Ask for description (optional) with improved prompt text
|
|
140
124
|
const descriptionAnswer = await inquirer_1.default.prompt([
|
|
141
125
|
{
|
|
142
|
-
default: flags.description,
|
|
143
|
-
message: '
|
|
126
|
+
default: flags.description || '',
|
|
127
|
+
message: 'Describe what your app should do',
|
|
144
128
|
name: 'description',
|
|
145
129
|
prefix: '\u001B[36m›\u001B[0m',
|
|
130
|
+
suffix: ' (optional)',
|
|
146
131
|
type: 'input',
|
|
147
|
-
validate: (input) => input.length > 0 || 'Please provide a description',
|
|
148
132
|
},
|
|
149
133
|
]);
|
|
150
134
|
// Clear the question line and show with checkmark
|
|
151
135
|
process.stdout.write('\u001B[1A\u001B[2K');
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
{
|
|
155
|
-
default: flags.templates ?? false,
|
|
156
|
-
message: 'Include template models and tests?',
|
|
157
|
-
name: 'includeTemplates',
|
|
158
|
-
prefix: '\u001B[36m›\u001B[0m',
|
|
159
|
-
type: 'confirm',
|
|
160
|
-
},
|
|
161
|
-
]);
|
|
162
|
-
// Clear the question line and show with checkmark
|
|
163
|
-
process.stdout.write('\u001B[1A\u001B[2K');
|
|
164
|
-
this.log(`\u001B[32m✓\u001B[0m Include template models and tests? ${templatesAnswer.includeTemplates ? 'Yes' : 'No'}`);
|
|
136
|
+
const descDisplay = descriptionAnswer.description || '(skipped)';
|
|
137
|
+
this.log(`\u001B[32m✓\u001B[0m Describe what your app should do: ${descDisplay}`);
|
|
165
138
|
// Show database default
|
|
166
139
|
this.log(`\u001B[32m✓\u001B[0m Database: PostgreSQL (default)`);
|
|
167
|
-
// Set backend, frontend to true
|
|
140
|
+
// Set backend, frontend to true, database to postgres, and templates to false as defaults
|
|
168
141
|
answers = {
|
|
169
|
-
appType: appTypeAnswer.appType,
|
|
170
142
|
database: flags.database || 'postgres',
|
|
171
|
-
description: descriptionAnswer.description,
|
|
172
143
|
hasBackend: true,
|
|
173
144
|
hasFrontend: true,
|
|
174
|
-
includeTemplates:
|
|
145
|
+
includeTemplates: flags.templates ?? false,
|
|
175
146
|
};
|
|
147
|
+
if (descriptionAnswer.description) {
|
|
148
|
+
answers.description = descriptionAnswer.description;
|
|
149
|
+
}
|
|
176
150
|
}
|
|
177
151
|
this.log('');
|
|
178
152
|
this.log(`✨ Creating the app ${appName}...`);
|
|
@@ -180,6 +154,10 @@ class CreateApp extends core_1.Command {
|
|
|
180
154
|
// Create the project structure
|
|
181
155
|
const targetDir = node_path_1.default.resolve(process.cwd(), appName);
|
|
182
156
|
await (0, projectStructure_js_1.createProjectStructure)(appName, answers);
|
|
157
|
+
// Generate the views context.ts file if frontend was created
|
|
158
|
+
if (answers.hasFrontend) {
|
|
159
|
+
await (0, viewsGenerator_js_1.generateViewsContext)(targetDir);
|
|
160
|
+
}
|
|
183
161
|
this.log('✅ Project created successfully!');
|
|
184
162
|
this.log('');
|
|
185
163
|
this.log(`📁 Location: ${targetDir}`);
|
|
@@ -188,12 +166,8 @@ class CreateApp extends core_1.Command {
|
|
|
188
166
|
this.log('');
|
|
189
167
|
this.log('To get started:');
|
|
190
168
|
this.log(` cd ${appName}`);
|
|
191
|
-
this.log(`
|
|
192
|
-
this.log(`
|
|
193
|
-
this.log(` npx slingr gql generate-sdk`);
|
|
194
|
-
this.log('');
|
|
195
|
-
this.log('Or run the complete setup automatically:');
|
|
196
|
-
this.log(` cd ${appName} && npx slingr setup`);
|
|
169
|
+
this.log(` slingr setup`);
|
|
170
|
+
this.log(` slingr run`);
|
|
197
171
|
// Ask if user wants to run setup automatically (unless skip-setup flag is used)
|
|
198
172
|
if (!flags['skip-setup']) {
|
|
199
173
|
const { runSetup } = await inquirer_1.default.prompt([
|
|
@@ -221,10 +195,17 @@ class CreateApp extends core_1.Command {
|
|
|
221
195
|
this.log('🎉 Your Slingr application is ready!');
|
|
222
196
|
this.log('');
|
|
223
197
|
this.log('To start developing:');
|
|
224
|
-
this.log(
|
|
225
|
-
this.log(
|
|
198
|
+
this.log(' Backend:');
|
|
199
|
+
this.log(` cd ${appName}`);
|
|
200
|
+
this.log(' pnpm run dev');
|
|
201
|
+
this.log('');
|
|
202
|
+
this.log(' Frontend (in another terminal):');
|
|
203
|
+
this.log(` cd ${appName}`);
|
|
204
|
+
this.log(' pnpm run dev:frontend');
|
|
205
|
+
this.log('');
|
|
206
|
+
this.log(' Then visit http://localhost:8000 to see your app!');
|
|
226
207
|
this.log('');
|
|
227
|
-
this.log('Or to run with infrastructure:');
|
|
208
|
+
this.log('Or to run with infrastructure (includes database):');
|
|
228
209
|
this.log(` cd ${appName}`);
|
|
229
210
|
this.log(' npx slingr run');
|
|
230
211
|
}
|
|
@@ -233,7 +214,7 @@ class CreateApp extends core_1.Command {
|
|
|
233
214
|
this.warn('Setup encountered an issue, but your application was created successfully.');
|
|
234
215
|
this.log('You can run the setup manually:');
|
|
235
216
|
this.log(` cd ${appName}`);
|
|
236
|
-
this.log('
|
|
217
|
+
this.log(' pnpm run setup');
|
|
237
218
|
}
|
|
238
219
|
}
|
|
239
220
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-app.js","sourceRoot":"","sources":["../../src/commands/create-app.ts"],"names":[],"mappings":";;;;;AAAA,sCAAmD;AACnD,wDAA2B;AAC3B,wDAAgC;AAChC,0DAA6B;AAC7B,iDAAyC;AAEzC,gEAA4E;
|
|
1
|
+
{"version":3,"file":"create-app.js","sourceRoot":"","sources":["../../src/commands/create-app.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Command } from '@oclif/core';
|
|
2
|
+
export default class Debug extends Command {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static flags: {
|
|
6
|
+
help: import("@oclif/core/interfaces").BooleanFlag<void>;
|
|
7
|
+
dev: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
8
|
+
'inspect-brk': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
9
|
+
'inspect-port': import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
|
|
10
|
+
'skip-infra': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
11
|
+
port: import("@oclif/core/interfaces").OptionFlag<number | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
|
+
verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
13
|
+
};
|
|
14
|
+
private verbose;
|
|
15
|
+
private vlog;
|
|
16
|
+
run(): Promise<void>;
|
|
17
|
+
private resolveUiPath;
|
|
18
|
+
private buildFramework;
|
|
19
|
+
private buildUI;
|
|
20
|
+
private copyUIToBackend;
|
|
21
|
+
private generateCode;
|
|
22
|
+
private checkInfrastructure;
|
|
23
|
+
private checkPortAvailability;
|
|
24
|
+
private runDevMode;
|
|
25
|
+
private executeApp;
|
|
26
|
+
private loadDataSources;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=debug.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../../src/commands/debug.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAW7C,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,OAAO;IACxC,OAAgB,WAAW,SAI4D;IACvF,OAAgB,QAAQ,WAOtB;IACF,OAAgB,KAAK;;;;;;;;MAmCnB;IAEF,OAAO,CAAC,OAAO,CAAkB;IAEjC,OAAO,CAAC,IAAI;IAMC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;YA4CnB,aAAa;YAQb,cAAc;YAYd,OAAO;YAgCP,eAAe;YAoBf,YAAY;YA6DZ,mBAAmB;YAwDnB,qBAAqB;YA8CrB,UAAU;YA8GV,UAAU;YAyCV,eAAe;CAwB9B"}
|