@objectql/cli 1.8.2 → 1.8.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.
Files changed (48) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/README.md +229 -0
  3. package/USAGE_EXAMPLES.md +147 -0
  4. package/__tests__/commands.test.ts +274 -1
  5. package/dist/commands/ai.js +4 -3
  6. package/dist/commands/ai.js.map +1 -1
  7. package/dist/commands/build.d.ts +12 -0
  8. package/dist/commands/build.js +119 -0
  9. package/dist/commands/build.js.map +1 -0
  10. package/dist/commands/dev.d.ts +9 -0
  11. package/dist/commands/dev.js +23 -0
  12. package/dist/commands/dev.js.map +1 -0
  13. package/dist/commands/format.d.ts +9 -0
  14. package/dist/commands/format.js +137 -0
  15. package/dist/commands/format.js.map +1 -0
  16. package/dist/commands/lint.d.ts +9 -0
  17. package/dist/commands/lint.js +120 -0
  18. package/dist/commands/lint.js.map +1 -0
  19. package/dist/commands/new.js +5 -52
  20. package/dist/commands/new.js.map +1 -1
  21. package/dist/commands/start.d.ts +11 -0
  22. package/dist/commands/start.js +119 -0
  23. package/dist/commands/start.js.map +1 -0
  24. package/dist/commands/sync.d.ts +14 -0
  25. package/dist/commands/sync.js +314 -0
  26. package/dist/commands/sync.js.map +1 -0
  27. package/dist/commands/test.d.ts +10 -0
  28. package/dist/commands/test.js +120 -0
  29. package/dist/commands/test.js.map +1 -0
  30. package/dist/index.js +109 -14
  31. package/dist/index.js.map +1 -1
  32. package/jest.config.js +19 -0
  33. package/package.json +7 -7
  34. package/src/commands/ai.ts +4 -3
  35. package/src/commands/build.ts +98 -0
  36. package/src/commands/dev.ts +23 -0
  37. package/src/commands/format.ts +110 -0
  38. package/src/commands/lint.ts +98 -0
  39. package/src/commands/new.ts +5 -52
  40. package/src/commands/start.ts +100 -0
  41. package/src/commands/sync.ts +328 -0
  42. package/src/commands/test.ts +98 -0
  43. package/src/index.ts +114 -14
  44. package/tsconfig.tsbuildinfo +1 -1
  45. package/dist/commands/studio.d.ts +0 -5
  46. package/dist/commands/studio.js +0 -364
  47. package/dist/commands/studio.js.map +0 -1
  48. package/src/commands/studio.ts +0 -354
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.format = format;
40
+ const path = __importStar(require("path"));
41
+ const fs = __importStar(require("fs"));
42
+ const chalk_1 = __importDefault(require("chalk"));
43
+ const yaml = __importStar(require("js-yaml"));
44
+ const fast_glob_1 = __importDefault(require("fast-glob"));
45
+ // Naming convention regex
46
+ const VALID_NAME_REGEX = /^[a-z][a-z0-9_]*$/;
47
+ /**
48
+ * Format command - formats metadata files using Prettier
49
+ */
50
+ async function format(options) {
51
+ console.log(chalk_1.default.blue('šŸŽØ Formatting ObjectQL metadata files...\n'));
52
+ const rootDir = path.resolve(process.cwd(), options.dir || '.');
53
+ let formattedCount = 0;
54
+ let unchangedCount = 0;
55
+ let errorCount = 0;
56
+ // Load Prettier once at the start
57
+ let prettier;
58
+ try {
59
+ prettier = await Promise.resolve().then(() => __importStar(require('prettier')));
60
+ }
61
+ catch (e) {
62
+ console.error(chalk_1.default.red('āŒ Prettier is not installed. Install it with: npm install --save-dev prettier'));
63
+ process.exit(1);
64
+ }
65
+ try {
66
+ const files = await (0, fast_glob_1.default)(['**/*.yml', '**/*.yaml'], {
67
+ cwd: rootDir,
68
+ ignore: ['node_modules/**', 'dist/**', 'build/**']
69
+ });
70
+ console.log(chalk_1.default.cyan(`Found ${files.length} YAML file(s)\n`));
71
+ for (const file of files) {
72
+ const filePath = path.join(rootDir, file);
73
+ try {
74
+ const content = fs.readFileSync(filePath, 'utf-8');
75
+ // Parse to validate YAML
76
+ yaml.load(content);
77
+ // Format with Prettier
78
+ const formatted = await prettier.format(content, {
79
+ parser: 'yaml',
80
+ printWidth: 80,
81
+ tabWidth: 2,
82
+ singleQuote: true
83
+ });
84
+ if (content !== formatted) {
85
+ if (options.check) {
86
+ console.log(chalk_1.default.yellow(` āš ļø ${file} needs formatting`));
87
+ formattedCount++;
88
+ }
89
+ else {
90
+ fs.writeFileSync(filePath, formatted, 'utf-8');
91
+ console.log(chalk_1.default.green(` āœ… ${file}`));
92
+ formattedCount++;
93
+ }
94
+ }
95
+ else {
96
+ unchangedCount++;
97
+ if (!options.check) {
98
+ console.log(chalk_1.default.gray(` āœ“ ${file}`));
99
+ }
100
+ }
101
+ }
102
+ catch (e) {
103
+ console.error(chalk_1.default.red(` āŒ ${file}: ${e.message}`));
104
+ errorCount++;
105
+ }
106
+ }
107
+ console.log('');
108
+ // Summary
109
+ if (options.check) {
110
+ if (formattedCount > 0) {
111
+ console.log(chalk_1.default.yellow.bold(`āš ļø ${formattedCount} file(s) need formatting`));
112
+ console.log(chalk_1.default.gray('Run without --check to format files\n'));
113
+ process.exit(1);
114
+ }
115
+ else {
116
+ console.log(chalk_1.default.green.bold('āœ… All files are properly formatted!\n'));
117
+ }
118
+ }
119
+ else {
120
+ console.log(chalk_1.default.cyan('Summary:'));
121
+ console.log(chalk_1.default.green(` āœ… Formatted: ${formattedCount}`));
122
+ console.log(chalk_1.default.gray(` āœ“ Unchanged: ${unchangedCount}`));
123
+ if (errorCount > 0) {
124
+ console.log(chalk_1.default.red(` āŒ Errors: ${errorCount}`));
125
+ }
126
+ console.log('');
127
+ if (errorCount > 0) {
128
+ process.exit(1);
129
+ }
130
+ }
131
+ }
132
+ catch (e) {
133
+ console.error(chalk_1.default.red('āŒ Format failed:'), e.message);
134
+ process.exit(1);
135
+ }
136
+ }
137
+ //# sourceMappingURL=format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/commands/format.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ interface LintOptions {
2
+ dir?: string;
3
+ fix?: boolean;
4
+ }
5
+ /**
6
+ * Lint command - validates metadata files for correctness and best practices
7
+ */
8
+ export declare function lint(options: LintOptions): Promise<void>;
9
+ export {};
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.lint = lint;
40
+ const core_1 = require("@objectql/core");
41
+ const platform_node_1 = require("@objectql/platform-node");
42
+ const path = __importStar(require("path"));
43
+ const chalk_1 = __importDefault(require("chalk"));
44
+ // Naming convention regex
45
+ const VALID_NAME_REGEX = /^[a-z][a-z0-9_]*$/;
46
+ /**
47
+ * Lint command - validates metadata files for correctness and best practices
48
+ */
49
+ async function lint(options) {
50
+ console.log(chalk_1.default.blue('šŸ” Linting ObjectQL metadata files...\n'));
51
+ const rootDir = path.resolve(process.cwd(), options.dir || '.');
52
+ let hasErrors = false;
53
+ let hasWarnings = false;
54
+ try {
55
+ const app = new core_1.ObjectQL({ datasources: {} });
56
+ const loader = new platform_node_1.ObjectLoader(app.metadata);
57
+ console.log(chalk_1.default.cyan('Loading metadata files...'));
58
+ loader.load(rootDir);
59
+ const objects = app.metadata.list('object');
60
+ console.log(chalk_1.default.green(`āœ… Found ${objects.length} object(s)\n`));
61
+ // Validate each object
62
+ for (const obj of objects) {
63
+ const objectConfig = obj;
64
+ const name = objectConfig.name;
65
+ console.log(chalk_1.default.cyan(`Checking object: ${name}`));
66
+ // Check naming convention (lowercase with underscores)
67
+ if (!VALID_NAME_REGEX.test(name)) {
68
+ console.log(chalk_1.default.red(` āŒ Invalid name format: "${name}" should be lowercase with underscores`));
69
+ hasErrors = true;
70
+ }
71
+ // Check if label exists
72
+ if (!objectConfig.label) {
73
+ console.log(chalk_1.default.yellow(` āš ļø Missing label for object "${name}"`));
74
+ hasWarnings = true;
75
+ }
76
+ // Check fields
77
+ const fieldCount = Object.keys(objectConfig.fields || {}).length;
78
+ if (fieldCount === 0) {
79
+ console.log(chalk_1.default.yellow(` āš ļø Object "${name}" has no fields defined`));
80
+ hasWarnings = true;
81
+ }
82
+ else {
83
+ console.log(chalk_1.default.gray(` ā„¹ļø ${fieldCount} field(s) defined`));
84
+ }
85
+ // Validate field names
86
+ for (const [fieldName, field] of Object.entries(objectConfig.fields || {})) {
87
+ if (!VALID_NAME_REGEX.test(fieldName)) {
88
+ console.log(chalk_1.default.red(` āŒ Invalid field name: "${fieldName}" should be lowercase with underscores`));
89
+ hasErrors = true;
90
+ }
91
+ const fieldConfig = field;
92
+ // Check for required label on fields
93
+ if (!fieldConfig.label) {
94
+ console.log(chalk_1.default.yellow(` āš ļø Field "${fieldName}" missing label`));
95
+ hasWarnings = true;
96
+ }
97
+ }
98
+ console.log('');
99
+ }
100
+ // Summary
101
+ if (hasErrors) {
102
+ console.log(chalk_1.default.red.bold('āŒ Linting failed with errors\n'));
103
+ process.exit(1);
104
+ }
105
+ else if (hasWarnings) {
106
+ console.log(chalk_1.default.yellow.bold('āš ļø Linting completed with warnings\n'));
107
+ }
108
+ else {
109
+ console.log(chalk_1.default.green.bold('āœ… Linting passed - no issues found!\n'));
110
+ }
111
+ }
112
+ catch (e) {
113
+ console.error(chalk_1.default.red('āŒ Linting failed:'), e.message);
114
+ if (e.stack) {
115
+ console.error(chalk_1.default.gray(e.stack));
116
+ }
117
+ process.exit(1);
118
+ }
119
+ }
120
+ //# sourceMappingURL=lint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lint.js","sourceRoot":"","sources":["../../src/commands/lint.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiBA,oBAgFC;AAjGD,yCAA0C;AAC1C,2DAAuD;AAEvD,2CAA6B;AAC7B,kDAA0B;AAE1B,0BAA0B;AAC1B,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;AAO7C;;GAEG;AACI,KAAK,UAAU,IAAI,CAAC,OAAoB;IAC3C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC,CAAC;IAEnE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;IAChE,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,IAAI,WAAW,GAAG,KAAK,CAAC;IAExB,IAAI,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,eAAQ,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,IAAI,4BAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE9C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC;QACrD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAErB,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE5C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,WAAW,OAAO,CAAC,MAAM,cAAc,CAAC,CAAC,CAAC;QAElE,uBAAuB;QACvB,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YACxB,MAAM,YAAY,GAAG,GAAmB,CAAC;YACzC,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC,CAAC;YAEpD,uDAAuD;YACvD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,6BAA6B,IAAI,wCAAwC,CAAC,CAAC,CAAC;gBAClG,SAAS,GAAG,IAAI,CAAC;YACrB,CAAC;YAED,wBAAwB;YACxB,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;gBACtB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,mCAAmC,IAAI,GAAG,CAAC,CAAC,CAAC;gBACtE,WAAW,GAAG,IAAI,CAAC;YACvB,CAAC;YAED,eAAe;YACf,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;YACjE,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;gBACnB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,iBAAiB,IAAI,yBAAyB,CAAC,CAAC,CAAC;gBAC1E,WAAW,GAAG,IAAI,CAAC;YACvB,CAAC;iBAAM,CAAC;gBACJ,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,SAAS,UAAU,mBAAmB,CAAC,CAAC,CAAC;YACpE,CAAC;YAED,uBAAuB;YACvB,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;gBACzE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;oBACpC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,4BAA4B,SAAS,wCAAwC,CAAC,CAAC,CAAC;oBACtG,SAAS,GAAG,IAAI,CAAC;gBACrB,CAAC;gBAED,MAAM,WAAW,GAAG,KAAoB,CAAC;gBACzC,qCAAqC;gBACrC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;oBACrB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,gBAAgB,SAAS,iBAAiB,CAAC,CAAC,CAAC;oBACtE,WAAW,GAAG,IAAI,CAAC;gBACvB,CAAC;YACL,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpB,CAAC;QAED,UAAU;QACV,IAAI,SAAS,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC,CAAC;YAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;aAAM,IAAI,WAAW,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC,CAAC;QAC5E,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC,CAAC;QAC3E,CAAC;IAEL,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;QACzD,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC"}
@@ -43,16 +43,11 @@ const chalk_1 = __importDefault(require("chalk"));
43
43
  const yaml = __importStar(require("js-yaml"));
44
44
  const METADATA_TYPES = [
45
45
  'object',
46
- 'view',
47
- 'form',
48
- 'page',
49
46
  'action',
50
47
  'hook',
51
48
  'permission',
52
49
  'validation',
53
50
  'workflow',
54
- 'report',
55
- 'menu',
56
51
  'data'
57
52
  ];
58
53
  const TEMPLATES = {
@@ -66,41 +61,17 @@ const TEMPLATES = {
66
61
  }
67
62
  }
68
63
  },
69
- view: {
70
- label: '{{label}} View',
71
- object: '{{objectName}}',
72
- columns: [
73
- { field: 'name', label: 'Name' }
74
- ]
75
- },
76
- form: {
77
- label: '{{label}} Form',
78
- object: '{{objectName}}',
79
- layout: {
80
- sections: [
81
- {
82
- label: 'Basic Information',
83
- fields: ['name']
84
- }
85
- ]
86
- }
87
- },
88
- page: {
89
- label: '{{label}} Page',
90
- type: 'standard',
91
- components: [
92
- {
93
- type: 'title',
94
- text: '{{label}}'
95
- }
96
- ]
97
- },
98
64
  action: {
99
65
  label: '{{label}} Action',
100
66
  object: '{{objectName}}',
101
67
  type: 'record',
102
68
  handler: 'action_{{name}}'
103
69
  },
70
+ hook: {
71
+ label: '{{label}} Hook',
72
+ object: '{{objectName}}',
73
+ triggers: ['before_insert', 'after_insert']
74
+ },
104
75
  permission: {
105
76
  label: '{{label}} Permissions',
106
77
  object: '{{objectName}}',
@@ -144,24 +115,6 @@ const TEMPLATES = {
144
115
  }
145
116
  ]
146
117
  },
147
- report: {
148
- label: '{{label}} Report',
149
- type: 'tabular',
150
- object: '{{objectName}}',
151
- columns: [
152
- { field: 'name', label: 'Name' }
153
- ]
154
- },
155
- menu: {
156
- label: '{{label}} Menu',
157
- items: [
158
- {
159
- label: 'Home',
160
- page: 'home',
161
- icon: 'home'
162
- }
163
- ]
164
- },
165
118
  data: {
166
119
  label: '{{label}} Data',
167
120
  object: '{{objectName}}',
@@ -1 +1 @@
1
- {"version":3,"file":"new.js","sourceRoot":"","sources":["../../src/commands/new.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"new.js","sourceRoot":"","sources":["../../src/commands/new.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6FA,kCA4DC;AAzJD,uCAAyB;AACzB,2CAA6B;AAC7B,kDAA0B;AAC1B,8CAAgC;AAQhC,MAAM,cAAc,GAAG;IACnB,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,YAAY;IACZ,YAAY;IACZ,UAAU;IACV,MAAM;CACT,CAAC;AAEF,MAAM,SAAS,GAAwB;IACnC,MAAM,EAAE;QACJ,KAAK,EAAE,WAAW;QAClB,MAAM,EAAE;YACJ,IAAI,EAAE;gBACF,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,MAAM;gBACb,QAAQ,EAAE,IAAI;aACjB;SACJ;KACJ;IACD,MAAM,EAAE;QACJ,KAAK,EAAE,kBAAkB;QACzB,MAAM,EAAE,gBAAgB;QACxB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,iBAAiB;KAC7B;IACD,IAAI,EAAE;QACF,KAAK,EAAE,gBAAgB;QACvB,MAAM,EAAE,gBAAgB;QACxB,QAAQ,EAAE,CAAC,eAAe,EAAE,cAAc,CAAC;KAC9C;IACD,UAAU,EAAE;QACR,KAAK,EAAE,uBAAuB;QAC9B,MAAM,EAAE,gBAAgB;QACxB,QAAQ,EAAE;YACN,KAAK,EAAE;gBACH,UAAU,EAAE,IAAI;gBAChB,YAAY,EAAE,IAAI;gBAClB,UAAU,EAAE,IAAI;gBAChB,YAAY,EAAE,IAAI;aACrB;YACD,IAAI,EAAE;gBACF,UAAU,EAAE,IAAI;gBAChB,YAAY,EAAE,KAAK;gBACnB,UAAU,EAAE,KAAK;gBACjB,YAAY,EAAE,KAAK;aACtB;SACJ;KACJ;IACD,UAAU,EAAE;QACR,KAAK,EAAE,sBAAsB;QAC7B,MAAM,EAAE,gBAAgB;QACxB,KAAK,EAAE;YACH;gBACI,IAAI,EAAE,eAAe;gBACrB,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,MAAM;gBACb,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,kBAAkB;aAC9B;SACJ;KACJ;IACD,QAAQ,EAAE;QACN,KAAK,EAAE,oBAAoB;QAC3B,MAAM,EAAE,gBAAgB;QACxB,OAAO,EAAE,WAAW;QACpB,OAAO,EAAE;YACL;gBACI,IAAI,EAAE,cAAc;gBACpB,KAAK,EAAE,QAAQ;gBACf,KAAK,EAAE,OAAO;aACjB;SACJ;KACJ;IACD,IAAI,EAAE;QACF,KAAK,EAAE,gBAAgB;QACvB,MAAM,EAAE,gBAAgB;QACxB,OAAO,EAAE,EAAE;KACd;CACJ,CAAC;AAEK,KAAK,UAAU,WAAW,CAAC,OAAmB;IACjD,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC;IAE1C,gBAAgB;IAChB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,4BAA4B,IAAI,EAAE,CAAC,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,oBAAoB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,gBAAgB;IAChB,IAAI,CAAC,IAAI,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3C,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,sEAAsE,CAAC,CAAC,CAAC;QACjG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;IAEnD,uCAAuC;IACvC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5B,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,QAAQ,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,CAAC;IACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAEhD,+BAA+B;IAC/B,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,0BAA0B,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,wCAAwC;IACxC,IAAI,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,UAAU,GAAG,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAEtE,QAAQ,GAAG,IAAI,CAAC,KAAK,CACjB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;SACnB,OAAO,CAAC,gBAAgB,EAAE,KAAK,CAAC;SAChC,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC;SAC9B,OAAO,CAAC,qBAAqB,EAAE,UAAU,CAAC,CAClD,CAAC;IAEF,kBAAkB;IAClB,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;QACpC,MAAM,EAAE,CAAC;QACT,SAAS,EAAE,GAAG;QACd,MAAM,EAAE,IAAI;KACf,CAAC,CAAC;IAEH,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;IAEjD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,aAAa,QAAQ,EAAE,CAAC,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,YAAY,QAAQ,EAAE,CAAC,CAAC,CAAC;IAEhD,4EAA4E;IAC5E,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACvC,MAAM,sBAAsB,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;IACxD,CAAC;AACL,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAC,IAAuB,EAAE,IAAY,EAAE,GAAW;IACpF,MAAM,QAAQ,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,CAAC;IACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAE1C,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,qCAAqC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC3E,OAAO;IACX,CAAC;IAED,IAAI,QAAQ,GAAG,EAAE,CAAC;IAElB,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACpB,QAAQ,GAAG;;+BAEY,IAAI;;;;0BAIT,IAAI;;;;;;;CAO7B,CAAC;IACE,CAAC;SAAM,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACzB,QAAQ,GAAG;;;;;;0CAMuB,IAAI;;;;;;;;;;yCAUL,IAAI;;CAE5C,CAAC;IACE,CAAC;IAED,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,aAAa,QAAQ,EAAE,CAAC,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,YAAY,QAAQ,EAAE,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,WAAW,CAAC,IAAY;IAC7B,OAAO,IAAI;SACN,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACzD,IAAI,CAAC,GAAG,CAAC,CAAC;AACnB,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY;IACnC,0EAA0E;IAC1E,sDAAsD;IACtD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC"}
@@ -0,0 +1,11 @@
1
+ interface StartOptions {
2
+ port: number;
3
+ dir: string;
4
+ config?: string;
5
+ }
6
+ /**
7
+ * Start production server
8
+ * Loads configuration from objectql.config.ts/js if available
9
+ */
10
+ export declare function start(options: StartOptions): Promise<void>;
11
+ export {};
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.start = start;
40
+ const core_1 = require("@objectql/core");
41
+ const driver_sql_1 = require("@objectql/driver-sql");
42
+ const platform_node_1 = require("@objectql/platform-node");
43
+ const server_1 = require("@objectql/server");
44
+ const http_1 = require("http");
45
+ const path = __importStar(require("path"));
46
+ const fs = __importStar(require("fs"));
47
+ const chalk_1 = __importDefault(require("chalk"));
48
+ /**
49
+ * Start production server
50
+ * Loads configuration from objectql.config.ts/js if available
51
+ */
52
+ async function start(options) {
53
+ var _a, _b;
54
+ console.log(chalk_1.default.blue('Starting ObjectQL Production Server...'));
55
+ const rootDir = path.resolve(process.cwd(), options.dir);
56
+ console.log(chalk_1.default.gray(`Loading schema from: ${rootDir}`));
57
+ // Try to load configuration
58
+ let config = null;
59
+ const configPath = options.config || path.join(process.cwd(), 'objectql.config.ts');
60
+ if (fs.existsSync(configPath)) {
61
+ try {
62
+ console.log(chalk_1.default.gray(`Loading config from: ${configPath}`));
63
+ // Use require for .js files or ts-node for .ts files
64
+ if (configPath.endsWith('.ts')) {
65
+ require('ts-node/register');
66
+ }
67
+ const loadedModule = require(configPath);
68
+ // Handle both default export and direct export
69
+ config = loadedModule.default || loadedModule;
70
+ }
71
+ catch (e) {
72
+ console.warn(chalk_1.default.yellow(`āš ļø Failed to load config: ${e.message}`));
73
+ }
74
+ }
75
+ // Initialize datasource from config or use default SQLite
76
+ // Note: Config files may use 'datasource' (singular) while ObjectQLConfig uses 'datasources' (plural)
77
+ const datasourceConfig = ((_a = config === null || config === void 0 ? void 0 : config.datasources) === null || _a === void 0 ? void 0 : _a.default) || ((_b = config === null || config === void 0 ? void 0 : config.datasource) === null || _b === void 0 ? void 0 : _b.default) || {
78
+ client: 'sqlite3',
79
+ connection: {
80
+ filename: process.env.DATABASE_FILE || './objectql.db'
81
+ },
82
+ useNullAsDefault: true
83
+ };
84
+ const driver = new driver_sql_1.SqlDriver(datasourceConfig);
85
+ const app = new core_1.ObjectQL({
86
+ datasources: { default: driver }
87
+ });
88
+ // Load Schema
89
+ try {
90
+ const loader = new platform_node_1.ObjectLoader(app.metadata);
91
+ loader.load(rootDir);
92
+ await app.init();
93
+ console.log(chalk_1.default.green('āœ… Schema loaded successfully.'));
94
+ }
95
+ catch (e) {
96
+ console.error(chalk_1.default.red('āŒ Failed to load schema:'), e.message);
97
+ process.exit(1);
98
+ }
99
+ // Create Handler
100
+ const handler = (0, server_1.createNodeHandler)(app);
101
+ // Start Server
102
+ const server = (0, http_1.createServer)(async (req, res) => {
103
+ await handler(req, res);
104
+ });
105
+ server.listen(options.port, () => {
106
+ console.log(chalk_1.default.green(`\nāœ… Server started in production mode`));
107
+ console.log(chalk_1.default.green(`šŸš€ API endpoint: http://localhost:${options.port}`));
108
+ console.log(chalk_1.default.blue(`šŸ“– OpenAPI Spec: http://localhost:${options.port}/openapi.json`));
109
+ // Handle graceful shutdown
110
+ process.on('SIGTERM', () => {
111
+ console.log(chalk_1.default.yellow('\nāš ļø SIGTERM received, shutting down gracefully...'));
112
+ server.close(() => {
113
+ console.log(chalk_1.default.green('āœ… Server closed'));
114
+ process.exit(0);
115
+ });
116
+ });
117
+ });
118
+ }
119
+ //# sourceMappingURL=start.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { IObjectQL } from '@objectql/types';
2
+ interface SyncOptions {
3
+ config?: string;
4
+ output?: string;
5
+ tables?: string[];
6
+ force?: boolean;
7
+ app?: IObjectQL;
8
+ }
9
+ /**
10
+ * Sync database schema to ObjectQL .object.yml files
11
+ * Introspects existing SQL database and generates object definitions
12
+ */
13
+ export declare function syncDatabase(options: SyncOptions): Promise<void>;
14
+ export {};