@objectql/cli 1.8.3 → 1.9.0
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 +157 -1
- package/dist/commands/ai.js +4 -3
- package/dist/commands/ai.js.map +1 -1
- package/dist/commands/build.d.ts +12 -0
- package/dist/commands/build.js +119 -0
- package/dist/commands/build.js.map +1 -0
- package/dist/commands/database-push.d.ts +5 -0
- package/dist/commands/database-push.js +15 -0
- package/dist/commands/database-push.js.map +1 -0
- package/dist/commands/dev.d.ts +11 -0
- package/dist/commands/dev.js +111 -0
- package/dist/commands/dev.js.map +1 -0
- package/dist/commands/doctor.d.ts +4 -0
- package/dist/commands/doctor.js +37 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/format.d.ts +9 -0
- package/dist/commands/format.js +137 -0
- package/dist/commands/format.js.map +1 -0
- package/dist/commands/init.js +31 -30
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/lint.d.ts +9 -0
- package/dist/commands/lint.js +120 -0
- package/dist/commands/lint.js.map +1 -0
- package/dist/commands/new.js +0 -52
- package/dist/commands/new.js.map +1 -1
- package/dist/commands/serve.d.ts +2 -0
- package/dist/commands/serve.js +122 -46
- package/dist/commands/serve.js.map +1 -1
- package/dist/commands/start.d.ts +12 -0
- package/dist/commands/start.js +134 -0
- package/dist/commands/start.js.map +1 -0
- package/dist/commands/test.d.ts +10 -0
- package/dist/commands/test.js +120 -0
- package/dist/commands/test.js.map +1 -0
- package/dist/index.js +189 -149
- package/dist/index.js.map +1 -1
- package/package.json +13 -8
- package/templates/hello-world/.vscode/extensions.json +7 -0
- package/templates/hello-world/CHANGELOG.md +41 -0
- package/templates/hello-world/README.md +29 -0
- package/templates/hello-world/package.json +24 -0
- package/templates/hello-world/src/index.ts +58 -0
- package/templates/hello-world/tsconfig.json +10 -0
- package/templates/starter/.vscode/extensions.json +7 -0
- package/{CHANGELOG.md → templates/starter/CHANGELOG.md} +47 -41
- package/templates/starter/README.md +17 -0
- package/templates/starter/__tests__/projects-hooks-actions.test.ts +490 -0
- package/templates/starter/jest.config.js +16 -0
- package/templates/starter/package.json +52 -0
- package/templates/starter/src/README.pages.md +110 -0
- package/templates/starter/src/demo.app.yml +4 -0
- package/templates/starter/src/i18n/zh-CN/projects.json +22 -0
- package/templates/starter/src/modules/kitchen-sink/kitchen_sink.data.yml +18 -0
- package/templates/starter/src/modules/kitchen-sink/kitchen_sink.object.yml +156 -0
- package/templates/starter/src/modules/projects/project_approval.workflow.yml +51 -0
- package/templates/starter/src/modules/projects/projects.action.ts +472 -0
- package/templates/starter/src/modules/projects/projects.data.yml +13 -0
- package/templates/starter/src/modules/projects/projects.hook.ts +339 -0
- package/templates/starter/src/modules/projects/projects.object.yml +148 -0
- package/templates/starter/src/modules/projects/projects.permission.yml +141 -0
- package/templates/starter/src/modules/projects/projects.validation.yml +37 -0
- package/templates/starter/src/modules/tasks/tasks.data.yml +23 -0
- package/templates/starter/src/modules/tasks/tasks.object.yml +34 -0
- package/templates/starter/src/modules/tasks/tasks.permission.yml +167 -0
- package/templates/starter/src/seed.ts +55 -0
- package/templates/starter/src/types/index.ts +3 -0
- package/templates/starter/src/types/kitchen_sink.ts +101 -0
- package/templates/starter/src/types/projects.ts +49 -0
- package/templates/starter/src/types/tasks.ts +33 -0
- package/templates/starter/tsconfig.json +11 -0
- package/templates/starter/tsconfig.tsbuildinfo +1 -0
- package/AI_EXAMPLES.md +0 -154
- package/AI_IMPLEMENTATION_SUMMARY.md +0 -509
- package/AI_TUTORIAL.md +0 -144
- package/IMPLEMENTATION_SUMMARY.md +0 -437
- package/USAGE_EXAMPLES.md +0 -951
- package/__tests__/commands.test.ts +0 -316
- package/dist/commands/studio.d.ts +0 -5
- package/dist/commands/studio.js +0 -364
- package/dist/commands/studio.js.map +0 -1
- package/jest.config.js +0 -19
- package/src/commands/ai.ts +0 -508
- package/src/commands/generate.ts +0 -135
- package/src/commands/i18n.ts +0 -303
- package/src/commands/init.ts +0 -191
- package/src/commands/migrate.ts +0 -314
- package/src/commands/new.ts +0 -273
- package/src/commands/repl.ts +0 -120
- package/src/commands/serve.ts +0 -96
- package/src/commands/studio.ts +0 -354
- package/src/commands/sync.ts +0 -328
- package/src/index.ts +0 -274
- package/tsconfig.json +0 -15
- package/tsconfig.tsbuildinfo +0 -1
package/dist/index.js
CHANGED
|
@@ -1,25 +1,37 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
const commander_1 = require("commander");
|
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
4
8
|
const generate_1 = require("./commands/generate");
|
|
5
9
|
const repl_1 = require("./commands/repl");
|
|
6
|
-
const
|
|
7
|
-
const
|
|
10
|
+
const dev_1 = require("./commands/dev");
|
|
11
|
+
const start_1 = require("./commands/start");
|
|
12
|
+
const build_1 = require("./commands/build");
|
|
13
|
+
const test_1 = require("./commands/test");
|
|
14
|
+
const lint_1 = require("./commands/lint");
|
|
15
|
+
const format_1 = require("./commands/format");
|
|
8
16
|
const init_1 = require("./commands/init");
|
|
9
17
|
const new_1 = require("./commands/new");
|
|
10
18
|
const i18n_1 = require("./commands/i18n");
|
|
11
19
|
const migrate_1 = require("./commands/migrate");
|
|
12
20
|
const ai_1 = require("./commands/ai");
|
|
13
21
|
const sync_1 = require("./commands/sync");
|
|
22
|
+
const doctor_1 = require("./commands/doctor");
|
|
23
|
+
const database_push_1 = require("./commands/database-push");
|
|
14
24
|
const program = new commander_1.Command();
|
|
15
25
|
program
|
|
16
26
|
.name('objectql')
|
|
17
|
-
.description('ObjectQL CLI tool')
|
|
27
|
+
.description('ObjectQL CLI tool - The ObjectStack AI Protocol Interface')
|
|
18
28
|
.version('1.5.0');
|
|
19
|
-
//
|
|
29
|
+
// ==========================================
|
|
30
|
+
// 1. Lifecycle Commands
|
|
31
|
+
// ==========================================
|
|
20
32
|
program
|
|
21
33
|
.command('init')
|
|
22
|
-
.description('Create a new ObjectQL project
|
|
34
|
+
.description('Create a new ObjectQL project')
|
|
23
35
|
.option('-t, --template <template>', 'Template to use (basic, express-api, enterprise)', 'basic')
|
|
24
36
|
.option('-n, --name <name>', 'Project name')
|
|
25
37
|
.option('-d, --dir <path>', 'Target directory')
|
|
@@ -34,236 +46,264 @@ program
|
|
|
34
46
|
process.exit(1);
|
|
35
47
|
}
|
|
36
48
|
});
|
|
37
|
-
// New command - Generate metadata files
|
|
38
49
|
program
|
|
39
|
-
.command('
|
|
40
|
-
.description('
|
|
41
|
-
.option('-
|
|
42
|
-
.
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
+
.command('dev')
|
|
51
|
+
.description('Start development server with hot reload and type generation')
|
|
52
|
+
.option('-p, --port <number>', 'Port to listen on', '3000')
|
|
53
|
+
.option('-d, --dir <path>', 'Directory containing schema', '.')
|
|
54
|
+
.option('-c, --config <path>', 'Path to objectql.config.ts/js')
|
|
55
|
+
.option('--modules <items>', 'Comma-separated list of modules to load')
|
|
56
|
+
.option('--no-watch', 'Disable file watching')
|
|
57
|
+
.action(async (options) => {
|
|
58
|
+
await (0, dev_1.dev)({
|
|
59
|
+
port: parseInt(options.port),
|
|
60
|
+
dir: options.dir,
|
|
61
|
+
config: options.config,
|
|
62
|
+
modules: options.modules,
|
|
63
|
+
watch: options.watch
|
|
64
|
+
});
|
|
50
65
|
});
|
|
51
|
-
// Generate command - Generate TypeScript types
|
|
52
66
|
program
|
|
53
|
-
.command('
|
|
54
|
-
.
|
|
55
|
-
.
|
|
56
|
-
.option('-
|
|
57
|
-
.option('-
|
|
67
|
+
.command('build')
|
|
68
|
+
.description('Build project for production')
|
|
69
|
+
.option('-d, --dir <path>', 'Source directory', '.')
|
|
70
|
+
.option('-o, --output <path>', 'Output directory', './dist')
|
|
71
|
+
.option('--no-types', 'Skip TypeScript type generation')
|
|
72
|
+
.option('--no-validate', 'Skip metadata validation')
|
|
58
73
|
.action(async (options) => {
|
|
74
|
+
await (0, build_1.build)({
|
|
75
|
+
dir: options.dir,
|
|
76
|
+
output: options.output,
|
|
77
|
+
types: options.types,
|
|
78
|
+
validate: options.validate
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
program
|
|
82
|
+
.command('start')
|
|
83
|
+
.description('Start production server')
|
|
84
|
+
.option('-p, --port <number>', 'Port to listen on', '3000')
|
|
85
|
+
.option('-d, --dir <path>', 'Directory containing schema', '.')
|
|
86
|
+
.option('-c, --config <path>', 'Path to objectql.config.ts/js')
|
|
87
|
+
.action(async (options) => {
|
|
88
|
+
await (0, start_1.start)({
|
|
89
|
+
port: parseInt(options.port),
|
|
90
|
+
dir: options.dir,
|
|
91
|
+
config: options.config
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
// ==========================================
|
|
95
|
+
// 2. Scaffolding & Generators
|
|
96
|
+
// ==========================================
|
|
97
|
+
program
|
|
98
|
+
.command('generate <schematic> <name>')
|
|
99
|
+
.alias('g')
|
|
100
|
+
.description('Generate a new metadata element (object, action, etc.)')
|
|
101
|
+
.option('-d, --dir <path>', 'Output directory', '.')
|
|
102
|
+
.action(async (schematic, name, options) => {
|
|
59
103
|
try {
|
|
60
|
-
|
|
104
|
+
// Maps to existing newMetadata which accepts (type, name, dir)
|
|
105
|
+
await (0, new_1.newMetadata)({ type: schematic, name, dir: options.dir });
|
|
61
106
|
}
|
|
62
107
|
catch (error) {
|
|
63
108
|
console.error(error);
|
|
64
109
|
process.exit(1);
|
|
65
110
|
}
|
|
66
111
|
});
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
.
|
|
70
|
-
.description('Internationalization commands');
|
|
71
|
-
i18nCmd
|
|
72
|
-
.command('extract')
|
|
73
|
-
.description('Extract translatable strings from metadata files')
|
|
112
|
+
program
|
|
113
|
+
.command('types')
|
|
114
|
+
.description('Force regenerate TypeScript definitions')
|
|
74
115
|
.option('-s, --source <path>', 'Source directory', '.')
|
|
75
|
-
.option('-o, --output <path>', 'Output directory', './src/
|
|
76
|
-
.option('-l, --lang <lang>', 'Language code', 'en')
|
|
116
|
+
.option('-o, --output <path>', 'Output directory', './src/generated')
|
|
77
117
|
.action(async (options) => {
|
|
78
118
|
try {
|
|
79
|
-
await (0,
|
|
119
|
+
await (0, generate_1.generateTypes)(options.source, options.output);
|
|
80
120
|
}
|
|
81
121
|
catch (error) {
|
|
82
122
|
console.error(error);
|
|
83
123
|
process.exit(1);
|
|
84
124
|
}
|
|
85
125
|
});
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
126
|
+
// ==========================================
|
|
127
|
+
// 3. Database Operations
|
|
128
|
+
// ==========================================
|
|
129
|
+
const dbCmd = program.command('db').description('Database operations');
|
|
130
|
+
dbCmd
|
|
131
|
+
.command('push')
|
|
132
|
+
.description('Push metadata schema changes to the database')
|
|
133
|
+
.option('--force', 'Bypass safety checks')
|
|
134
|
+
.action(async (options) => {
|
|
91
135
|
try {
|
|
92
|
-
await (0,
|
|
136
|
+
await (0, database_push_1.dbPushCommand)(options);
|
|
93
137
|
}
|
|
94
138
|
catch (error) {
|
|
95
139
|
console.error(error);
|
|
96
140
|
process.exit(1);
|
|
97
141
|
}
|
|
98
142
|
});
|
|
99
|
-
|
|
100
|
-
.command('
|
|
101
|
-
.description('
|
|
102
|
-
.option('-
|
|
103
|
-
.option('
|
|
104
|
-
.
|
|
143
|
+
dbCmd
|
|
144
|
+
.command('pull')
|
|
145
|
+
.description('Introspect database and generate metadata (Reverse Engineering)')
|
|
146
|
+
.option('-c, --config <path>', 'Path to objectql.config.ts/js')
|
|
147
|
+
.option('-o, --output <path>', 'Output directory', './src/objects')
|
|
148
|
+
.option('-t, --tables <tables...>', 'Specific tables to sync')
|
|
149
|
+
.option('-f, --force', 'Overwrite existing files')
|
|
150
|
+
.action(async (options) => {
|
|
105
151
|
try {
|
|
106
|
-
|
|
152
|
+
// Maps to existing syncDatabase
|
|
153
|
+
await (0, sync_1.syncDatabase)(options);
|
|
107
154
|
}
|
|
108
155
|
catch (error) {
|
|
109
156
|
console.error(error);
|
|
110
157
|
process.exit(1);
|
|
111
158
|
}
|
|
112
159
|
});
|
|
113
|
-
// Migration commands
|
|
160
|
+
// Migration commands - kept as top level or move to db:migrate?
|
|
161
|
+
// Staying top level or db:migrate is fine. Let's keep `migrate` top level for familiarity with typeorm/prisma users or move to db?
|
|
162
|
+
// User request: "Declarative > Imperative".
|
|
163
|
+
// Let's alias db:migrate to migrate for now, or just keep migrate.
|
|
164
|
+
// Standard in many tools is `migrate` or `db migrate`.
|
|
165
|
+
// Let's keep `migrate` as top level group for explicit control.
|
|
114
166
|
const migrateCmd = program
|
|
115
167
|
.command('migrate')
|
|
116
|
-
.description('
|
|
168
|
+
.description('Manage database migrations');
|
|
169
|
+
migrateCmd
|
|
170
|
+
.command('up') // Changed from default action to explicit 'up'
|
|
171
|
+
.description('Run pending migrations')
|
|
117
172
|
.option('-c, --config <path>', 'Path to objectql.config.ts/js')
|
|
118
173
|
.option('-d, --dir <path>', 'Migrations directory', './migrations')
|
|
119
174
|
.action(async (options) => {
|
|
120
|
-
|
|
121
|
-
await (0, migrate_1.migrate)(options);
|
|
122
|
-
}
|
|
123
|
-
catch (error) {
|
|
124
|
-
console.error(error);
|
|
125
|
-
process.exit(1);
|
|
126
|
-
}
|
|
175
|
+
await (0, migrate_1.migrate)(options);
|
|
127
176
|
});
|
|
128
177
|
migrateCmd
|
|
129
178
|
.command('create <name>')
|
|
130
179
|
.description('Create a new migration file')
|
|
131
180
|
.option('-d, --dir <path>', 'Migrations directory', './migrations')
|
|
132
181
|
.action(async (name, options) => {
|
|
133
|
-
|
|
134
|
-
await (0, migrate_1.migrateCreate)({ name, dir: options.dir });
|
|
135
|
-
}
|
|
136
|
-
catch (error) {
|
|
137
|
-
console.error(error);
|
|
138
|
-
process.exit(1);
|
|
139
|
-
}
|
|
182
|
+
await (0, migrate_1.migrateCreate)({ name, dir: options.dir });
|
|
140
183
|
});
|
|
141
184
|
migrateCmd
|
|
142
185
|
.command('status')
|
|
143
186
|
.description('Show migration status')
|
|
144
|
-
.option('-c, --config <path>', 'Path to objectql.config.ts/js')
|
|
145
|
-
.option('-d, --dir <path>', 'Migrations directory', './migrations')
|
|
146
187
|
.action(async (options) => {
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
188
|
+
await (0, migrate_1.migrateStatus)(options);
|
|
189
|
+
});
|
|
190
|
+
// ==========================================
|
|
191
|
+
// 4. AI Architect
|
|
192
|
+
// ==========================================
|
|
193
|
+
const aiCmd = program
|
|
194
|
+
.command('ai')
|
|
195
|
+
.description('AI Architect capabilities');
|
|
196
|
+
aiCmd
|
|
197
|
+
.command('chat')
|
|
198
|
+
.description('Interactive architecture chat')
|
|
199
|
+
.option('-p, --prompt <text>', 'Initial prompt')
|
|
200
|
+
.action(async (options) => {
|
|
201
|
+
await (0, ai_1.aiChat)({ initialPrompt: options.prompt });
|
|
154
202
|
});
|
|
155
|
-
|
|
203
|
+
aiCmd
|
|
204
|
+
.command('run <prompt>') // Changed from generate to run/exec for simple "Do this"
|
|
205
|
+
.description('Execute an AI modification on the project (e.g. "Add a blog module")')
|
|
206
|
+
.option('-o, --output <path>', 'Output directory', './src')
|
|
207
|
+
.action(async (prompt, options) => {
|
|
208
|
+
// Maps to simple conversational or generate
|
|
209
|
+
// Let's map to aiGenerate but pass description
|
|
210
|
+
await (0, ai_1.aiGenerate)({ description: prompt, output: options.output, type: 'custom' });
|
|
211
|
+
});
|
|
212
|
+
// ==========================================
|
|
213
|
+
// 5. Diagnostics & Tools
|
|
214
|
+
// ==========================================
|
|
156
215
|
program
|
|
157
|
-
.command('
|
|
158
|
-
.description('
|
|
159
|
-
.
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
216
|
+
.command('doctor')
|
|
217
|
+
.description('Check environment and configuration health')
|
|
218
|
+
.action(async () => {
|
|
219
|
+
await (0, doctor_1.doctorCommand)();
|
|
220
|
+
});
|
|
221
|
+
program
|
|
222
|
+
.command('validate')
|
|
223
|
+
.description('Validate all metadata files')
|
|
224
|
+
.option('-d, --dir <path>', 'Directory to validate', '.')
|
|
163
225
|
.action(async (options) => {
|
|
164
|
-
|
|
165
|
-
await (0, sync_1.syncDatabase)(options);
|
|
166
|
-
}
|
|
167
|
-
catch (error) {
|
|
168
|
-
console.error(error);
|
|
169
|
-
process.exit(1);
|
|
170
|
-
}
|
|
226
|
+
await (0, doctor_1.validateCommand)(options);
|
|
171
227
|
});
|
|
172
|
-
// REPL command
|
|
173
228
|
program
|
|
174
229
|
.command('repl')
|
|
175
|
-
.
|
|
176
|
-
.
|
|
177
|
-
.option('-c, --config <path>', 'Path to objectql.config.ts/js')
|
|
230
|
+
.description('Start interactive REPL')
|
|
231
|
+
.option('-c, --config <path>', 'Path to objectql.config.ts')
|
|
178
232
|
.action(async (options) => {
|
|
179
233
|
await (0, repl_1.startRepl)(options.config);
|
|
180
234
|
});
|
|
181
|
-
// Serve command
|
|
182
235
|
program
|
|
183
|
-
.command('
|
|
184
|
-
.
|
|
185
|
-
.description('Start a development server')
|
|
186
|
-
.option('-p, --port <number>', 'Port to listen on', '3000')
|
|
187
|
-
.option('-d, --dir <path>', 'Directory containing schema', '.')
|
|
236
|
+
.command('test')
|
|
237
|
+
.description('Run tests')
|
|
188
238
|
.action(async (options) => {
|
|
189
|
-
await (0,
|
|
239
|
+
await (0, test_1.test)(options);
|
|
190
240
|
});
|
|
191
|
-
// Studio command
|
|
192
241
|
program
|
|
193
|
-
.command('
|
|
194
|
-
.
|
|
195
|
-
.description('Start the ObjectQL Studio')
|
|
196
|
-
.option('-p, --port <number>', 'Port to listen on', '5555')
|
|
197
|
-
.option('-d, --dir <path>', 'Directory containing schema', '.')
|
|
198
|
-
.option('--no-open', 'Do not open browser automatically')
|
|
242
|
+
.command('lint')
|
|
243
|
+
.description('Lint metadata files')
|
|
199
244
|
.action(async (options) => {
|
|
200
|
-
await (0,
|
|
201
|
-
port: parseInt(options.port),
|
|
202
|
-
dir: options.dir,
|
|
203
|
-
open: options.open
|
|
204
|
-
});
|
|
245
|
+
await (0, lint_1.lint)(options);
|
|
205
246
|
});
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
.
|
|
209
|
-
.
|
|
210
|
-
|
|
211
|
-
aiCmd
|
|
212
|
-
.argument('[output-dir]', 'Output directory for generated files', './src')
|
|
213
|
-
.action(async (outputDir) => {
|
|
214
|
-
try {
|
|
215
|
-
await (0, ai_1.aiConversational)({ output: outputDir });
|
|
216
|
-
}
|
|
217
|
-
catch (error) {
|
|
218
|
-
console.error(error);
|
|
219
|
-
process.exit(1);
|
|
220
|
-
}
|
|
247
|
+
program
|
|
248
|
+
.command('format')
|
|
249
|
+
.description('Format metadata files')
|
|
250
|
+
.action(async (options) => {
|
|
251
|
+
await (0, format_1.format)(options);
|
|
221
252
|
});
|
|
222
|
-
//
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
.
|
|
227
|
-
.
|
|
228
|
-
|
|
253
|
+
// ==========================================
|
|
254
|
+
// 6. I18n
|
|
255
|
+
// ==========================================
|
|
256
|
+
const i18nCmd = program
|
|
257
|
+
.command('i18n')
|
|
258
|
+
.description('Internationalization commands');
|
|
259
|
+
i18nCmd
|
|
260
|
+
.command('extract')
|
|
261
|
+
.description('Extract translatable strings from metadata files')
|
|
262
|
+
.option('-s, --source <path>', 'Source directory', '.')
|
|
263
|
+
.option('-o, --output <path>', 'Output directory', './src/i18n')
|
|
264
|
+
.option('-l, --lang <lang>', 'Language code', 'en')
|
|
229
265
|
.action(async (options) => {
|
|
230
266
|
try {
|
|
231
|
-
await (0,
|
|
267
|
+
await (0, i18n_1.i18nExtract)(options);
|
|
232
268
|
}
|
|
233
269
|
catch (error) {
|
|
234
270
|
console.error(error);
|
|
235
271
|
process.exit(1);
|
|
236
272
|
}
|
|
237
273
|
});
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
.
|
|
241
|
-
.
|
|
242
|
-
.
|
|
243
|
-
.option('--fix', 'Automatically fix issues')
|
|
244
|
-
.option('-v, --verbose', 'Detailed output')
|
|
245
|
-
.action(async (pathArg, options) => {
|
|
274
|
+
i18nCmd
|
|
275
|
+
.command('init <lang>')
|
|
276
|
+
.description('Initialize i18n for a new language')
|
|
277
|
+
.option('-b, --base-dir <path>', 'Base i18n directory', './src/i18n')
|
|
278
|
+
.action(async (lang, options) => {
|
|
246
279
|
try {
|
|
247
|
-
await (0,
|
|
280
|
+
await (0, i18n_1.i18nInit)({ lang, baseDir: options.baseDir });
|
|
248
281
|
}
|
|
249
282
|
catch (error) {
|
|
250
283
|
console.error(error);
|
|
251
284
|
process.exit(1);
|
|
252
285
|
}
|
|
253
286
|
});
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
.
|
|
257
|
-
.
|
|
258
|
-
.option('-
|
|
259
|
-
.action(async (options) => {
|
|
287
|
+
i18nCmd
|
|
288
|
+
.command('validate <lang>')
|
|
289
|
+
.description('Validate translation completeness')
|
|
290
|
+
.option('-b, --base-dir <path>', 'Base i18n directory', './src/i18n')
|
|
291
|
+
.option('--base-lang <lang>', 'Base language to compare against', 'en')
|
|
292
|
+
.action(async (lang, options) => {
|
|
260
293
|
try {
|
|
261
|
-
await (0,
|
|
294
|
+
await (0, i18n_1.i18nValidate)({ lang, baseDir: options.baseDir, baseLang: options.baseLang });
|
|
262
295
|
}
|
|
263
296
|
catch (error) {
|
|
264
297
|
console.error(error);
|
|
265
298
|
process.exit(1);
|
|
266
299
|
}
|
|
267
300
|
});
|
|
268
|
-
|
|
301
|
+
// Backward compatibility (Hidden or Deprecated)
|
|
302
|
+
program
|
|
303
|
+
.command('new <type> <name>', { hidden: true })
|
|
304
|
+
.action(async (type, name, options) => {
|
|
305
|
+
console.warn(chalk_1.default.yellow('Deprecated: Use "objectql generate" instead.'));
|
|
306
|
+
await (0, new_1.newMetadata)({ type, name, dir: options.dir });
|
|
307
|
+
});
|
|
308
|
+
program.parse(process.argv);
|
|
269
309
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;AAAA,yCAAoC;AACpC,kDAA0B;AAC1B,kDAAoD;AACpD,0CAA4C;AAE5C,wCAAqC;AACrC,4CAAyC;AACzC,4CAAyC;AACzC,0CAAuC;AACvC,0CAAuC;AACvC,8CAA2C;AAC3C,0CAA8C;AAC9C,wCAA6C;AAC7C,0CAAsE;AACtE,gDAA2E;AAC3E,sCAAiF;AACjF,0CAA+C;AAC/C,8CAAmE;AACnE,4DAAyD;AAEzD,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CAAC,2DAA2D,CAAC;KACxE,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,6CAA6C;AAC7C,wBAAwB;AACxB,6CAA6C;AAE7C,OAAO;KACF,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,+BAA+B,CAAC;KAC5C,MAAM,CAAC,2BAA2B,EAAE,kDAAkD,EAAE,OAAO,CAAC;KAChG,MAAM,CAAC,mBAAmB,EAAE,cAAc,CAAC;KAC3C,MAAM,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;KAC9C,MAAM,CAAC,gBAAgB,EAAE,8BAA8B,CAAC;KACxD,MAAM,CAAC,YAAY,EAAE,yBAAyB,CAAC;KAC/C,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACtB,IAAI,CAAC;QACD,MAAM,IAAA,kBAAW,EAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC,CAAC,CAAC;AAEP,OAAO;KACF,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,8DAA8D,CAAC;KAC3E,MAAM,CAAC,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,CAAC;KAC1D,MAAM,CAAC,kBAAkB,EAAE,6BAA6B,EAAE,GAAG,CAAC;KAC9D,MAAM,CAAC,qBAAqB,EAAE,+BAA+B,CAAC;KAC9D,MAAM,CAAC,mBAAmB,EAAE,yCAAyC,CAAC;KACtE,MAAM,CAAC,YAAY,EAAE,uBAAuB,CAAC;KAC7C,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACtB,MAAM,IAAA,SAAG,EAAC;QACN,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;QAC5B,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,KAAK,EAAE,OAAO,CAAC,KAAK;KACvB,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEP,OAAO;KACF,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,8BAA8B,CAAC;KAC3C,MAAM,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,GAAG,CAAC;KACnD,MAAM,CAAC,qBAAqB,EAAE,kBAAkB,EAAE,QAAQ,CAAC;KAC3D,MAAM,CAAC,YAAY,EAAE,iCAAiC,CAAC;KACvD,MAAM,CAAC,eAAe,EAAE,0BAA0B,CAAC;KACnD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACtB,MAAM,IAAA,aAAK,EAAC;QACR,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC7B,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEP,OAAO;KACF,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,yBAAyB,CAAC;KACtC,MAAM,CAAC,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,CAAC;KAC1D,MAAM,CAAC,kBAAkB,EAAE,6BAA6B,EAAE,GAAG,CAAC;KAC9D,MAAM,CAAC,qBAAqB,EAAE,+BAA+B,CAAC;KAC9D,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACtB,MAAM,IAAA,aAAK,EAAC;QACR,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;QAC5B,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,MAAM,EAAE,OAAO,CAAC,MAAM;KACzB,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEP,6CAA6C;AAC7C,8BAA8B;AAC9B,6CAA6C;AAE7C,OAAO;KACF,OAAO,CAAC,6BAA6B,CAAC;KACtC,KAAK,CAAC,GAAG,CAAC;KACV,WAAW,CAAC,wDAAwD,CAAC;KACrE,MAAM,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,GAAG,CAAC;KACnD,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;IACvC,IAAI,CAAC;QACD,+DAA+D;QAC/D,MAAM,IAAA,iBAAW,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACnE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC,CAAC,CAAC;AAEP,OAAO;KACF,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,yCAAyC,CAAC;KACtD,MAAM,CAAC,qBAAqB,EAAE,kBAAkB,EAAE,GAAG,CAAC;KACtD,MAAM,CAAC,qBAAqB,EAAE,kBAAkB,EAAE,iBAAiB,CAAC;KACpE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACtB,IAAI,CAAC;QACD,MAAM,IAAA,wBAAa,EAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACxD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC,CAAC,CAAC;AAEP,6CAA6C;AAC7C,yBAAyB;AACzB,6CAA6C;AAE7C,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC;AAEvE,KAAK;KACA,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,8CAA8C,CAAC;KAC3D,MAAM,CAAC,SAAS,EAAE,sBAAsB,CAAC;KACzC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACtB,IAAI,CAAC;QACD,MAAM,IAAA,6BAAa,EAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC,CAAC,CAAC;AAEP,KAAK;KACA,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,iEAAiE,CAAC;KAC9E,MAAM,CAAC,qBAAqB,EAAE,+BAA+B,CAAC;KAC9D,MAAM,CAAC,qBAAqB,EAAE,kBAAkB,EAAE,eAAe,CAAC;KAClE,MAAM,CAAC,0BAA0B,EAAE,yBAAyB,CAAC;KAC7D,MAAM,CAAC,aAAa,EAAE,0BAA0B,CAAC;KACjD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACtB,IAAI,CAAC;QACD,gCAAgC;QAChC,MAAM,IAAA,mBAAY,EAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC,CAAC,CAAC;AAEP,gEAAgE;AAChE,mIAAmI;AACnI,4CAA4C;AAC5C,oEAAoE;AACpE,uDAAuD;AACvD,gEAAgE;AAEhE,MAAM,UAAU,GAAG,OAAO;KACrB,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,4BAA4B,CAAC,CAAC;AAE/C,UAAU;KACL,OAAO,CAAC,IAAI,CAAC,CAAC,+CAA+C;KAC7D,WAAW,CAAC,wBAAwB,CAAC;KACrC,MAAM,CAAC,qBAAqB,EAAE,+BAA+B,CAAC;KAC9D,MAAM,CAAC,kBAAkB,EAAE,sBAAsB,EAAE,cAAc,CAAC;KAClE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACtB,MAAM,IAAA,iBAAO,EAAC,OAAO,CAAC,CAAC;AAC3B,CAAC,CAAC,CAAC;AAEP,UAAU;KACL,OAAO,CAAC,eAAe,CAAC;KACxB,WAAW,CAAC,6BAA6B,CAAC;KAC1C,MAAM,CAAC,kBAAkB,EAAE,sBAAsB,EAAE,cAAc,CAAC;KAClE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;IAC5B,MAAM,IAAA,uBAAa,EAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;AACpD,CAAC,CAAC,CAAC;AAEP,UAAU;KACL,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,uBAAuB,CAAC;KACpC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACtB,MAAM,IAAA,uBAAa,EAAC,OAAO,CAAC,CAAC;AACjC,CAAC,CAAC,CAAC;AAGP,6CAA6C;AAC7C,kBAAkB;AAClB,6CAA6C;AAE7C,MAAM,KAAK,GAAG,OAAO;KAChB,OAAO,CAAC,IAAI,CAAC;KACb,WAAW,CAAC,2BAA2B,CAAC,CAAC;AAE9C,KAAK;KACA,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,+BAA+B,CAAC;KAC5C,MAAM,CAAC,qBAAqB,EAAE,gBAAgB,CAAC;KAC/C,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACtB,MAAM,IAAA,WAAM,EAAC,EAAE,aAAa,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;AACpD,CAAC,CAAC,CAAC;AAEP,KAAK;KACA,OAAO,CAAC,cAAc,CAAC,CAAC,yDAAyD;KACjF,WAAW,CAAC,sEAAsE,CAAC;KACnF,MAAM,CAAC,qBAAqB,EAAE,kBAAkB,EAAE,OAAO,CAAC;KAC1D,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;IAC9B,4CAA4C;IAC5C,+CAA+C;IAC/C,MAAM,IAAA,eAAU,EAAC,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;AACtF,CAAC,CAAC,CAAC;AAEP,6CAA6C;AAC7C,yBAAyB;AACzB,6CAA6C;AAE7C,OAAO;KACF,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,4CAA4C,CAAC;KACzD,MAAM,CAAC,KAAK,IAAI,EAAE;IACf,MAAM,IAAA,sBAAa,GAAE,CAAC;AAC1B,CAAC,CAAC,CAAC;AAEP,OAAO;KACF,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,6BAA6B,CAAC;KAC1C,MAAM,CAAC,kBAAkB,EAAE,uBAAuB,EAAE,GAAG,CAAC;KACxD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACtB,MAAM,IAAA,wBAAe,EAAC,OAAO,CAAC,CAAC;AACnC,CAAC,CAAC,CAAC;AAEP,OAAO;KACF,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,wBAAwB,CAAC;KACrC,MAAM,CAAC,qBAAqB,EAAE,4BAA4B,CAAC;KAC3D,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACtB,MAAM,IAAA,gBAAS,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AACpC,CAAC,CAAC,CAAC;AAEP,OAAO;KACF,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,WAAW,CAAC;KACxB,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACtB,MAAM,IAAA,WAAI,EAAC,OAAO,CAAC,CAAC;AACxB,CAAC,CAAC,CAAC;AAEP,OAAO;KACF,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,qBAAqB,CAAC;KAClC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACtB,MAAM,IAAA,WAAI,EAAC,OAAO,CAAC,CAAC;AACxB,CAAC,CAAC,CAAC;AAEP,OAAO;KACF,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,uBAAuB,CAAC;KACpC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACtB,MAAM,IAAA,eAAM,EAAC,OAAO,CAAC,CAAC;AAC1B,CAAC,CAAC,CAAC;AAEP,6CAA6C;AAC7C,UAAU;AACV,6CAA6C;AAE7C,MAAM,OAAO,GAAG,OAAO;KAClB,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,+BAA+B,CAAC,CAAC;AAElD,OAAO;KACF,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,kDAAkD,CAAC;KAC/D,MAAM,CAAC,qBAAqB,EAAE,kBAAkB,EAAE,GAAG,CAAC;KACtD,MAAM,CAAC,qBAAqB,EAAE,kBAAkB,EAAE,YAAY,CAAC;KAC/D,MAAM,CAAC,mBAAmB,EAAE,eAAe,EAAE,IAAI,CAAC;KAClD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACtB,IAAI,CAAC;QACD,MAAM,IAAA,kBAAW,EAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC,CAAC,CAAC;AAEP,OAAO;KACF,OAAO,CAAC,aAAa,CAAC;KACtB,WAAW,CAAC,oCAAoC,CAAC;KACjD,MAAM,CAAC,uBAAuB,EAAE,qBAAqB,EAAE,YAAY,CAAC;KACpE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;IAC5B,IAAI,CAAC;QACD,MAAM,IAAA,eAAQ,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACvD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC,CAAC,CAAC;AAEP,OAAO;KACF,OAAO,CAAC,iBAAiB,CAAC;KAC1B,WAAW,CAAC,mCAAmC,CAAC;KAChD,MAAM,CAAC,uBAAuB,EAAE,qBAAqB,EAAE,YAAY,CAAC;KACpE,MAAM,CAAC,oBAAoB,EAAE,kCAAkC,EAAE,IAAI,CAAC;KACtE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;IAC5B,IAAI,CAAC;QACD,MAAM,IAAA,mBAAY,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IACvF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC,CAAC,CAAC;AAEP,gDAAgD;AAChD,OAAO;KACF,OAAO,CAAC,mBAAmB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;KAC9C,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;IACjC,OAAO,CAAC,IAAI,CAAC,eAAK,CAAC,MAAM,CAAC,8CAA8C,CAAC,CAAC,CAAC;IAC3E,MAAM,IAAA,iBAAW,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;AACzD,CAAC,CAAC,CAAC;AAEP,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@objectql/cli",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.9.0",
|
|
4
4
|
"description": "Command-line interface for ObjectQL - Code generation, migrations, REPL, and AI-powered development tools",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"objectql",
|
|
@@ -16,6 +16,11 @@
|
|
|
16
16
|
],
|
|
17
17
|
"license": "MIT",
|
|
18
18
|
"main": "dist/index.js",
|
|
19
|
+
"files": [
|
|
20
|
+
"dist",
|
|
21
|
+
"bin",
|
|
22
|
+
"templates"
|
|
23
|
+
],
|
|
19
24
|
"bin": {
|
|
20
25
|
"objectql": "./bin/objectql"
|
|
21
26
|
},
|
|
@@ -29,11 +34,11 @@
|
|
|
29
34
|
"ts-node": "^10.9.1",
|
|
30
35
|
"openai": "^4.28.0",
|
|
31
36
|
"dotenv": "^16.4.5",
|
|
32
|
-
"@objectql/types": "1.
|
|
33
|
-
"@objectql/
|
|
34
|
-
"@objectql/
|
|
35
|
-
"@objectql/
|
|
36
|
-
"@objectql/
|
|
37
|
+
"@objectql/types": "1.9.0",
|
|
38
|
+
"@objectql/server": "1.9.0",
|
|
39
|
+
"@objectql/driver-sql": "1.9.0",
|
|
40
|
+
"@objectql/core": "1.9.0",
|
|
41
|
+
"@objectql/platform-node": "1.9.0"
|
|
37
42
|
},
|
|
38
43
|
"devDependencies": {
|
|
39
44
|
"typescript": "^5.0.0",
|
|
@@ -41,9 +46,9 @@
|
|
|
41
46
|
"@types/js-yaml": "^4.0.5"
|
|
42
47
|
},
|
|
43
48
|
"scripts": {
|
|
44
|
-
"build": "tsc",
|
|
49
|
+
"build": "tsc && pnpm run copy-templates",
|
|
50
|
+
"copy-templates": "rm -rf templates && mkdir -p templates && cp -r ../../../examples/quickstart/hello-world templates/ && cp -r ../../../examples/showcase/project-tracker templates/starter && rm -rf templates/*/node_modules templates/*/dist",
|
|
45
51
|
"watch": "tsc -w",
|
|
46
|
-
"studio": "node dist/index.js studio",
|
|
47
52
|
"test": "jest"
|
|
48
53
|
}
|
|
49
54
|
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# @example/hello-world
|
|
2
|
+
|
|
3
|
+
## 1.0.5
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies
|
|
8
|
+
- @objectql/core@1.9.0
|
|
9
|
+
- @objectql/driver-sql@1.9.0
|
|
10
|
+
|
|
11
|
+
## 1.0.4
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- Updated dependencies
|
|
16
|
+
- @objectql/core@1.8.4
|
|
17
|
+
- @objectql/driver-sql@1.8.4
|
|
18
|
+
|
|
19
|
+
## 1.0.3
|
|
20
|
+
|
|
21
|
+
### Patch Changes
|
|
22
|
+
|
|
23
|
+
- Updated dependencies
|
|
24
|
+
- @objectql/core@1.8.3
|
|
25
|
+
- @objectql/driver-sql@1.8.3
|
|
26
|
+
|
|
27
|
+
## 1.0.2
|
|
28
|
+
|
|
29
|
+
### Patch Changes
|
|
30
|
+
|
|
31
|
+
- Updated dependencies
|
|
32
|
+
- @objectql/core@1.8.2
|
|
33
|
+
- @objectql/driver-sql@1.8.2
|
|
34
|
+
|
|
35
|
+
## 1.0.1
|
|
36
|
+
|
|
37
|
+
### Patch Changes
|
|
38
|
+
|
|
39
|
+
- Updated dependencies
|
|
40
|
+
- @objectql/core@1.8.1
|
|
41
|
+
- @objectql/driver-sql@1.8.1
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Hello ObjectQL
|
|
2
|
+
|
|
3
|
+
This is the simplest possible example of **ObjectQL**.
|
|
4
|
+
|
|
5
|
+
It demonstrates:
|
|
6
|
+
1. **Zero Config:** No YAML files or server setup required.
|
|
7
|
+
2. **In-Memory SQL:** Uses SQLite in memory, so no database installation is needed.
|
|
8
|
+
3. **Inline Schema:** Defines the data model directly in code.
|
|
9
|
+
|
|
10
|
+
## How to Run
|
|
11
|
+
|
|
12
|
+
Since you are in the monorepo, simply run:
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
# Install dependencies (if not already done at root)
|
|
16
|
+
pnpm install
|
|
17
|
+
|
|
18
|
+
# Run the script
|
|
19
|
+
cd examples/starters/hello-world
|
|
20
|
+
pnpm start
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## What you see
|
|
24
|
+
|
|
25
|
+
The script will:
|
|
26
|
+
1. Initialize the ObjectQL engine.
|
|
27
|
+
2. Create a `deal` object definition on the fly.
|
|
28
|
+
3. Insert a record into the in-memory SQLite database.
|
|
29
|
+
4. Query it back and print the result.
|