@objectql/cli 1.8.4 → 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.
Files changed (80) hide show
  1. package/README.md +2 -2
  2. package/dist/commands/database-push.d.ts +5 -0
  3. package/dist/commands/database-push.js +15 -0
  4. package/dist/commands/database-push.js.map +1 -0
  5. package/dist/commands/dev.d.ts +2 -0
  6. package/dist/commands/dev.js +94 -6
  7. package/dist/commands/dev.js.map +1 -1
  8. package/dist/commands/doctor.d.ts +4 -0
  9. package/dist/commands/doctor.js +37 -0
  10. package/dist/commands/doctor.js.map +1 -0
  11. package/dist/commands/init.js +31 -30
  12. package/dist/commands/init.js.map +1 -1
  13. package/dist/commands/serve.d.ts +2 -0
  14. package/dist/commands/serve.js +122 -46
  15. package/dist/commands/serve.js.map +1 -1
  16. package/dist/commands/start.d.ts +1 -0
  17. package/dist/commands/start.js +15 -0
  18. package/dist/commands/start.js.map +1 -1
  19. package/dist/index.js +173 -210
  20. package/dist/index.js.map +1 -1
  21. package/package.json +13 -7
  22. package/templates/hello-world/.vscode/extensions.json +7 -0
  23. package/templates/hello-world/CHANGELOG.md +41 -0
  24. package/templates/hello-world/README.md +29 -0
  25. package/templates/hello-world/package.json +24 -0
  26. package/templates/hello-world/src/index.ts +58 -0
  27. package/templates/hello-world/tsconfig.json +10 -0
  28. package/templates/starter/.vscode/extensions.json +7 -0
  29. package/{CHANGELOG.md → templates/starter/CHANGELOG.md} +36 -42
  30. package/templates/starter/README.md +17 -0
  31. package/templates/starter/__tests__/projects-hooks-actions.test.ts +490 -0
  32. package/templates/starter/jest.config.js +16 -0
  33. package/templates/starter/package.json +52 -0
  34. package/templates/starter/src/README.pages.md +110 -0
  35. package/templates/starter/src/demo.app.yml +4 -0
  36. package/templates/starter/src/i18n/zh-CN/projects.json +22 -0
  37. package/templates/starter/src/modules/kitchen-sink/kitchen_sink.data.yml +18 -0
  38. package/templates/starter/src/modules/kitchen-sink/kitchen_sink.object.yml +156 -0
  39. package/templates/starter/src/modules/projects/project_approval.workflow.yml +51 -0
  40. package/templates/starter/src/modules/projects/projects.action.ts +472 -0
  41. package/templates/starter/src/modules/projects/projects.data.yml +13 -0
  42. package/templates/starter/src/modules/projects/projects.hook.ts +339 -0
  43. package/templates/starter/src/modules/projects/projects.object.yml +148 -0
  44. package/templates/starter/src/modules/projects/projects.permission.yml +141 -0
  45. package/templates/starter/src/modules/projects/projects.validation.yml +37 -0
  46. package/templates/starter/src/modules/tasks/tasks.data.yml +23 -0
  47. package/templates/starter/src/modules/tasks/tasks.object.yml +34 -0
  48. package/templates/starter/src/modules/tasks/tasks.permission.yml +167 -0
  49. package/templates/starter/src/seed.ts +55 -0
  50. package/templates/starter/src/types/index.ts +3 -0
  51. package/templates/starter/src/types/kitchen_sink.ts +101 -0
  52. package/templates/starter/src/types/projects.ts +49 -0
  53. package/templates/starter/src/types/tasks.ts +33 -0
  54. package/templates/starter/tsconfig.json +11 -0
  55. package/templates/starter/tsconfig.tsbuildinfo +1 -0
  56. package/AI_EXAMPLES.md +0 -154
  57. package/AI_IMPLEMENTATION_SUMMARY.md +0 -509
  58. package/AI_TUTORIAL.md +0 -144
  59. package/IMPLEMENTATION_SUMMARY.md +0 -437
  60. package/USAGE_EXAMPLES.md +0 -951
  61. package/__tests__/commands.test.ts +0 -426
  62. package/jest.config.js +0 -19
  63. package/src/commands/ai.ts +0 -509
  64. package/src/commands/build.ts +0 -98
  65. package/src/commands/dev.ts +0 -23
  66. package/src/commands/format.ts +0 -110
  67. package/src/commands/generate.ts +0 -135
  68. package/src/commands/i18n.ts +0 -303
  69. package/src/commands/init.ts +0 -191
  70. package/src/commands/lint.ts +0 -98
  71. package/src/commands/migrate.ts +0 -314
  72. package/src/commands/new.ts +0 -221
  73. package/src/commands/repl.ts +0 -120
  74. package/src/commands/serve.ts +0 -96
  75. package/src/commands/start.ts +0 -100
  76. package/src/commands/sync.ts +0 -328
  77. package/src/commands/test.ts +0 -98
  78. package/src/index.ts +0 -356
  79. package/tsconfig.json +0 -15
  80. package/tsconfig.tsbuildinfo +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@objectql/cli",
3
- "version": "1.8.4",
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.8.4",
33
- "@objectql/server": "1.8.4",
34
- "@objectql/core": "1.8.4",
35
- "@objectql/driver-sql": "1.8.4",
36
- "@objectql/platform-node": "1.8.4"
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,7 +46,8 @@
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
52
  "test": "jest"
47
53
  }
@@ -0,0 +1,7 @@
1
+ {
2
+ "recommendations": [
3
+ "objectstack-ai.vscode-objectql",
4
+ "redhat.vscode-yaml",
5
+ "dbaeumer.vscode-eslint"
6
+ ]
7
+ }
@@ -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.
@@ -0,0 +1,24 @@
1
+ {
2
+ "name": "@objectql/example-hello-world",
3
+ "version": "1.0.5",
4
+ "private": true,
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "https://github.com/objectql/objectql.git",
8
+ "directory": "examples/quickstart/hello-world"
9
+ },
10
+ "description": "Zero-config ObjectQL starter",
11
+ "scripts": {
12
+ "start": "ts-node src/index.ts"
13
+ },
14
+ "dependencies": {
15
+ "@objectql/core": "workspace:*",
16
+ "@objectql/driver-sql": "workspace:*",
17
+ "sqlite3": "^5.1.7"
18
+ },
19
+ "devDependencies": {
20
+ "ts-node": "^10.9.2",
21
+ "typescript": "^5.3.3",
22
+ "@types/node": "^20.11.24"
23
+ }
24
+ }
@@ -0,0 +1,58 @@
1
+ import { ObjectQL } from '@objectql/core';
2
+ import { SqlDriver } from '@objectql/driver-sql';
3
+
4
+ async function main() {
5
+ console.log("🚀 Starting ObjectQL Hello World...");
6
+
7
+ // 1. Initialize Driver
8
+ const driver = new SqlDriver({
9
+ client: 'sqlite3',
10
+ connection: { filename: ':memory:' },
11
+ useNullAsDefault: true
12
+ });
13
+
14
+ // 2. Initialize Engine (Pass driver in config)
15
+ const app = new ObjectQL({
16
+ datasources: {
17
+ default: driver
18
+ }
19
+ });
20
+
21
+ // 3. Define Metadata Inline
22
+ app.registerObject({
23
+ name: 'deal',
24
+ fields: {
25
+ title: { type: 'text', required: true },
26
+ amount: { type: 'currency' },
27
+ stage: {
28
+ type: 'select',
29
+ options: [
30
+ { label: 'New', value: 'new' },
31
+ { label: 'Negotiation', value: 'negotiation' },
32
+ { label: 'Closed', value: 'closed' }
33
+ ],
34
+ defaultValue: 'new'
35
+ }
36
+ }
37
+ });
38
+
39
+ await app.init(); // Boot the engine
40
+
41
+ // 4. Run Business Logic
42
+ const ctx = app.createContext({ isSystem: true });
43
+ const repo = ctx.object('deal');
44
+
45
+ console.log("Creating a new Deal...");
46
+ await repo.create({
47
+ title: 'Enterprise Contract',
48
+ amount: 50000,
49
+ stage: 'new'
50
+ });
51
+
52
+ const results = await repo.find({});
53
+ console.log('✅ Deals found in database:', results);
54
+ }
55
+
56
+ if (require.main === module) {
57
+ main().catch(console.error);
58
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "extends": "../../../tsconfig.base.json",
3
+ "compilerOptions": {
4
+ "outDir": "./dist",
5
+ "rootDir": "./src",
6
+ "module": "CommonJS",
7
+ "moduleResolution": "node"
8
+ },
9
+ "include": ["src/**/*"]
10
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "recommendations": [
3
+ "objectstack-ai.vscode-objectql",
4
+ "redhat.vscode-yaml",
5
+ "dbaeumer.vscode-eslint"
6
+ ]
7
+ }
@@ -1,4 +1,14 @@
1
- # @objectql/cli
1
+ # @objectql/starter-basic
2
+
3
+ ## 2.0.0
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies
8
+ - @objectql/core@1.9.0
9
+ - @objectql/driver-sql@1.9.0
10
+ - @objectql/types@1.9.0
11
+ - @objectql/platform-node@1.9.0
2
12
 
3
13
  ## 1.8.4
4
14
 
@@ -10,7 +20,6 @@
10
20
  - @objectql/core@1.8.4
11
21
  - @objectql/platform-node@1.8.4
12
22
  - @objectql/driver-sql@1.8.4
13
- - @objectql/server@1.8.4
14
23
 
15
24
  ## 1.8.3
16
25
 
@@ -23,7 +32,6 @@
23
32
  - Updated dependencies
24
33
  - @objectql/core@1.8.3
25
34
  - @objectql/driver-sql@1.8.3
26
- - @objectql/server@1.8.3
27
35
  - @objectql/types@1.8.3
28
36
  - @objectql/platform-node@1.8.3
29
37
 
@@ -35,7 +43,6 @@
35
43
  - Updated dependencies
36
44
  - @objectql/core@1.8.2
37
45
  - @objectql/driver-sql@1.8.2
38
- - @objectql/server@1.8.2
39
46
  - @objectql/types@1.8.2
40
47
  - @objectql/platform-node@1.8.2
41
48
 
@@ -47,7 +54,6 @@
47
54
  - Updated dependencies
48
55
  - @objectql/core@1.8.1
49
56
  - @objectql/driver-sql@1.8.1
50
- - @objectql/server@1.8.1
51
57
  - @objectql/types@1.8.1
52
58
  - @objectql/platform-node@1.8.1
53
59
 
@@ -62,9 +68,8 @@
62
68
  - Updated dependencies
63
69
  - @objectql/core@1.8.0
64
70
  - @objectql/driver-sql@2.0.0
65
- - @objectql/server@2.0.0
66
71
  - @objectql/types@1.8.0
67
- - @objectql/platform-node@1.8.0
72
+ - @objectql/platform-node@2.0.0
68
73
 
69
74
  ## 1.7.3
70
75
 
@@ -74,7 +79,6 @@
74
79
  - Updated dependencies
75
80
  - @objectql/core@1.7.3
76
81
  - @objectql/driver-sql@1.7.3
77
- - @objectql/server@1.7.3
78
82
  - @objectql/types@1.7.3
79
83
  - @objectql/platform-node@1.7.3
80
84
 
@@ -88,7 +92,6 @@
88
92
  - @objectql/core@1.7.2
89
93
  - @objectql/platform-node@1.7.2
90
94
  - @objectql/types@1.7.2
91
- - @objectql/server@1.7.2
92
95
 
93
96
  ## 1.7.1
94
97
 
@@ -98,7 +101,6 @@
98
101
  - Updated dependencies
99
102
  - @objectql/core@1.7.1
100
103
  - @objectql/driver-sql@1.7.1
101
- - @objectql/server@1.7.1
102
104
  - @objectql/types@1.7.1
103
105
  - @objectql/platform-node@1.7.1
104
106
 
@@ -118,81 +120,56 @@
118
120
  - Updated dependencies
119
121
  - @objectql/core@1.6.1
120
122
  - @objectql/platform-node@1.6.1
121
- - @objectql/server@1.6.1
122
123
  - @objectql/driver-sql@1.6.1
123
124
  - @objectql/types@1.6.1
124
125
 
125
- ## 1.6.0
126
-
127
- ### Minor Changes
128
-
129
- - Minor version release - 1.6.0
126
+ ## 7.0.0
130
127
 
131
128
  ### Patch Changes
132
129
 
133
130
  - Updated dependencies
134
131
  - @objectql/core@1.6.0
135
132
  - @objectql/driver-sql@1.6.0
136
- - @objectql/server@1.6.0
137
133
  - @objectql/types@1.6.0
138
134
  - @objectql/platform-node@1.6.0
139
135
 
140
- ## 1.5.0
141
-
142
- ### Minor Changes
143
-
144
- - Minor version release - 1.5.0
136
+ ## 6.0.0
145
137
 
146
138
  ### Patch Changes
147
139
 
148
140
  - Updated dependencies
149
141
  - @objectql/core@1.5.0
150
142
  - @objectql/driver-sql@1.5.0
151
- - @objectql/server@1.5.0
152
143
  - @objectql/types@1.5.0
153
144
 
154
- ## 1.4.0
155
-
156
- ### Minor Changes
157
-
158
- - Release version 1.4.0 with new features and enhancements:
159
- - Added complete REST API implementation with CRUD operations
160
- - Enhanced error handling with standardized error codes and HTTP status mapping
161
- - Added AI context support for tracking intent and use cases
162
- - Enhanced metadata API with detailed field information and action listing
163
- - Improved JSON-RPC API with better error categorization
164
- - Added hooks and actions validation and implementation
165
- - Updated documentation and examples
145
+ ## 5.0.0
166
146
 
167
147
  ### Patch Changes
168
148
 
169
149
  - Updated dependencies
170
150
  - @objectql/core@1.4.0
171
151
  - @objectql/driver-sql@1.4.0
172
- - @objectql/server@1.4.0
173
152
  - @objectql/types@1.4.0
174
153
 
175
- ## 1.3.1
154
+ ## 4.0.1
176
155
 
177
156
  ### Patch Changes
178
157
 
179
158
  - Updated dependencies
180
159
  - @objectql/core@1.3.1
181
- - @objectql/server@1.3.1
182
160
  - @objectql/driver-sql@1.3.1
183
161
  - @objectql/types@1.3.1
184
162
 
185
- ## 0.2.1
163
+ ## 4.0.0
186
164
 
187
165
  ### Patch Changes
188
166
 
189
167
  - Updated dependencies
190
168
  - @objectql/core@1.3.0
191
169
  - @objectql/types@1.3.0
192
- - @objectql/server@0.2.1
193
170
  - @objectql/driver-sql@1.2.1
194
171
 
195
- ## 0.2.0
172
+ ## 3.0.0
196
173
 
197
174
  ### Minor Changes
198
175
 
@@ -203,5 +180,22 @@
203
180
  - Updated dependencies [7df2977]
204
181
  - @objectql/core@1.2.0
205
182
  - @objectql/driver-sql@1.2.0
206
- - @objectql/server@0.2.0
207
183
  - @objectql/types@1.2.0
184
+
185
+ ## 1.8.0
186
+
187
+ ### Minor Changes
188
+
189
+ - add metadata loader
190
+
191
+ ### Patch Changes
192
+
193
+ - Updated dependencies
194
+ - @objectql/core@1.1.0
195
+
196
+ ## 1.0.0
197
+
198
+ ### Patch Changes
199
+
200
+ - Updated dependencies
201
+ - @objectql/core@1.0.0
@@ -0,0 +1,17 @@
1
+ # Basic Script Example
2
+
3
+ This is a minimal example demonstrating how to use ObjectQL as a library in a simple Node.js/TypeScript script.
4
+
5
+ It demonstrates:
6
+ 1. How to initialize ObjectQL (`new ObjectQL(...)`)
7
+ 2. How to connect to a SQLite database
8
+ 3. How to define objects (`projects.object.yml`)
9
+ 4. How to perform CRUD operations in a script
10
+
11
+ ## Run
12
+
13
+ ```bash
14
+ pnpm install
15
+ pnpm run build
16
+ node dist/index.js
17
+ ```