@objectql/cli 4.0.3 → 4.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/dist/commands/serve.js +25 -17
- package/dist/commands/serve.js.map +1 -1
- package/dist/commands/start.js +12 -9
- package/dist/commands/start.js.map +1 -1
- package/package.json +8 -8
- package/templates/hello-world/CHANGELOG.md +8 -0
- package/templates/hello-world/package.json +1 -1
- package/templates/starter/CHANGELOG.md +10 -0
- package/templates/starter/package.json +1 -1
package/dist/commands/serve.js
CHANGED
|
@@ -47,8 +47,6 @@ exports.serve = serve;
|
|
|
47
47
|
const core_1 = require("@objectql/core");
|
|
48
48
|
const driver_sql_1 = require("@objectql/driver-sql");
|
|
49
49
|
const platform_node_1 = require("@objectql/platform-node");
|
|
50
|
-
const server_1 = require("@objectql/server");
|
|
51
|
-
const http_1 = require("http");
|
|
52
50
|
const path = __importStar(require("path"));
|
|
53
51
|
const fs = __importStar(require("fs"));
|
|
54
52
|
const chalk_1 = __importDefault(require("chalk"));
|
|
@@ -152,59 +150,69 @@ async function serve(options) {
|
|
|
152
150
|
process.exit(1);
|
|
153
151
|
}
|
|
154
152
|
// 3. Create Handler
|
|
155
|
-
const internalHandler =
|
|
156
|
-
const graphqlHandler =
|
|
153
|
+
// const internalHandler = createNodeHandler(app);
|
|
154
|
+
// const graphqlHandler = createGraphQLHandler(app);
|
|
155
|
+
throw new Error('This command is deprecated. Please use "objectstack serve" instead.');
|
|
157
156
|
// 4. Start Server
|
|
158
|
-
|
|
159
|
-
|
|
157
|
+
/*
|
|
158
|
+
const server = createServer(async (req, res) => {
|
|
160
159
|
// Serve API Docs at Root (Default)
|
|
161
160
|
if (req.method === 'GET' && (req.url === '/' || req.url === '/docs' || req.url === '/docs/')) {
|
|
162
161
|
res.writeHead(200, { 'Content-Type': 'text/html' });
|
|
163
162
|
res.end(SCALAR_HTML);
|
|
164
163
|
return;
|
|
165
164
|
}
|
|
165
|
+
|
|
166
166
|
// GraphQL Endpoint & Playground (Keep for compatibility)
|
|
167
167
|
if (req.url === '/graphql' || req.url === '/graphql/') {
|
|
168
168
|
await graphqlHandler(req, res);
|
|
169
169
|
return;
|
|
170
170
|
}
|
|
171
|
+
|
|
171
172
|
// Keep /api/graphql as alias for compatibility
|
|
172
|
-
if (
|
|
173
|
+
if (req.url?.startsWith('/api/graphql')) {
|
|
173
174
|
await graphqlHandler(req, res);
|
|
174
175
|
return;
|
|
175
176
|
}
|
|
177
|
+
|
|
176
178
|
// Delegate to API Handler
|
|
177
179
|
await internalHandler(req, res);
|
|
178
180
|
});
|
|
181
|
+
|
|
179
182
|
// Auto-port detection logic
|
|
180
183
|
const startPort = options.port;
|
|
181
|
-
const tryListen = (port, attempt = 0) => {
|
|
184
|
+
const tryListen = (port: number, attempt = 0) => {
|
|
182
185
|
if (attempt > 10) {
|
|
183
|
-
console.error(
|
|
186
|
+
console.error(chalk.red(`❌ Unable to find a free port after 10 attempts.`));
|
|
184
187
|
process.exit(1);
|
|
185
188
|
}
|
|
186
|
-
|
|
189
|
+
|
|
190
|
+
const onError = (e: any) => {
|
|
187
191
|
if (e.code === 'EADDRINUSE') {
|
|
188
|
-
console.log(
|
|
192
|
+
console.log(chalk.yellow(`⚠️ Port ${port} is in use, trying ${port + 1}...`));
|
|
189
193
|
// Wait a tick before retrying to let the socket cleanup if needed, though usually not needed for EADDRINUSE on listen
|
|
190
194
|
setTimeout(() => {
|
|
191
195
|
server.close(); // Ensure previous attempt is closed
|
|
192
196
|
tryListen(port + 1, attempt + 1);
|
|
193
197
|
}, 100);
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
console.error(chalk_1.default.red('❌ Server error:'), e);
|
|
198
|
+
} else {
|
|
199
|
+
console.error(chalk.red('❌ Server error:'), e);
|
|
197
200
|
}
|
|
198
201
|
};
|
|
202
|
+
|
|
199
203
|
server.once('error', onError);
|
|
204
|
+
|
|
200
205
|
server.listen(port, () => {
|
|
201
206
|
server.removeListener('error', onError);
|
|
202
|
-
console.log(
|
|
203
|
-
console.log(
|
|
204
|
-
|
|
207
|
+
console.log(chalk.green(`\n🚀 Server ready at http://localhost:${port}`));
|
|
208
|
+
console.log(chalk.blue(`📖 API Docs (Scalar): http://localhost:${port}/`));
|
|
209
|
+
|
|
210
|
+
console.log(chalk.gray('\nTry a curl command:'));
|
|
205
211
|
console.log(`curl -X POST http://localhost:${port} -H "Content-Type: application/json" -d '{"op": "find", "object": "tasks", "args": {}}'`);
|
|
206
212
|
});
|
|
207
213
|
};
|
|
214
|
+
|
|
208
215
|
tryListen(startPort);
|
|
216
|
+
*/
|
|
209
217
|
}
|
|
210
218
|
//# sourceMappingURL=serve.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serve.js","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCH,
|
|
1
|
+
{"version":3,"file":"serve.js","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCH,sBA4JC;AA5LD,yCAA0C;AAC1C,qDAAiD;AACjD,2DAAoE;AAGpE,2CAA6B;AAC7B,uCAAyB;AACzB,kDAA0B;AAE1B,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;CAqBnB,CAAC;AAEK,KAAK,UAAU,KAAK,CAAC,OAK3B;;IACG,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC,CAAC;IAE3D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,wBAAwB,OAAO,EAAE,CAAC,CAAC,CAAC;IAE3D,4BAA4B;IAC5B,IAAI,MAAM,GAAQ,IAAI,CAAC;IACvB,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,oBAAoB,CAAC,CAAC;IAEpF,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,IAAI,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,wBAAwB,UAAU,EAAE,CAAC,CAAC,CAAC;YAC9D,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC7B,OAAO,CAAC,kBAAkB,CAAC,CAAC;YAChC,CAAC;YACD,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;YACnC,MAAM,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC;QACtC,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YACd,OAAO,CAAC,IAAI,CAAC,eAAK,CAAC,MAAM,CAAC,6BAA6B,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACzE,CAAC;IACL,CAAC;SAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,4BAA4B,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,2BAA2B;IAC3B,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QAClB,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,MAAM;YAAE,MAAM,GAAG,EAAE,CAAC;QACzB,MAAM,CAAC,OAAO,GAAG,UAAU,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,0BAA0B,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IACjF,CAAC;IAED,MAAM,YAAY,GAAG,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,UAAU,0CAAE,OAAO,MAAI,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,WAAW,0CAAE,OAAO,CAAA,CAAC;IACjF,IAAI,eAAe,GAAG,YAAY,CAAC;IAEnC,iEAAiE;IACjE,IAAI,YAAY,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,YAAY,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACzE,eAAe,GAAG;YACd,MAAM,EAAE,SAAS;YACjB,UAAU,EAAE;gBACR,QAAQ,EAAE,YAAY,CAAC,QAAQ,IAAI,UAAU;aAChD;YACD,gBAAgB,EAAE,IAAI;SACzB,CAAC;IACN,CAAC;IAED,MAAM,UAAU,GAAG,eAAe,IAAI;QAClC,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE;YACR,QAAQ,EAAE,UAAU;SACvB;QACD,gBAAgB,EAAE,IAAI;KACzB,CAAC;IAEF,mBAAmB;IACnB,MAAM,GAAG,GAAG,IAAI,eAAQ,CAAC;QACrB,WAAW,EAAE;YACT,OAAO,EAAE,IAAI,sBAAS,CAAC,UAAU,CAAC;SACrC;QACD,GAAG,MAAM;KACZ,CAAC,CAAC;IAEH,iBAAiB;IACjB,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,4BAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE9C,8BAA8B;QAC9B,sCAAsC;QACtC,MAAM,aAAa,GAAG,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,MAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,CAAA,CAAC;QACzD,IAAI,aAAa,EAAE,CAAC;YAChB,MAAM,IAAA,2BAAW,EAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QAC7C,CAAC;QAED,sBAAsB;QACtB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAErB,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC;IAC9D,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;QAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,oBAAoB;IACpB,kDAAkD;IAClD,oDAAoD;IACpD,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;IAEvF,kBAAkB;IAClB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA2DE;AACN,CAAC"}
|
package/dist/commands/start.js
CHANGED
|
@@ -47,8 +47,6 @@ exports.start = start;
|
|
|
47
47
|
const core_1 = require("@objectql/core");
|
|
48
48
|
const driver_sql_1 = require("@objectql/driver-sql");
|
|
49
49
|
const platform_node_1 = require("@objectql/platform-node");
|
|
50
|
-
const server_1 = require("@objectql/server");
|
|
51
|
-
const http_1 = require("http");
|
|
52
50
|
const path = __importStar(require("path"));
|
|
53
51
|
const fs = __importStar(require("fs"));
|
|
54
52
|
const chalk_1 = __importDefault(require("chalk"));
|
|
@@ -119,23 +117,28 @@ async function start(options) {
|
|
|
119
117
|
process.exit(1);
|
|
120
118
|
}
|
|
121
119
|
// Create Handler
|
|
122
|
-
const handler =
|
|
120
|
+
// const handler = createNodeHandler(app);
|
|
121
|
+
throw new Error('This command is deprecated. Please use "objectstack serve" instead.');
|
|
122
|
+
/*
|
|
123
123
|
// Start Server
|
|
124
|
-
const server =
|
|
124
|
+
const server = createServer(async (req, res) => {
|
|
125
125
|
await handler(req, res);
|
|
126
126
|
});
|
|
127
|
+
|
|
127
128
|
server.listen(options.port, () => {
|
|
128
|
-
console.log(
|
|
129
|
-
console.log(
|
|
130
|
-
console.log(
|
|
129
|
+
console.log(chalk.green(`\n✅ Server started in production mode`));
|
|
130
|
+
console.log(chalk.green(`🚀 API endpoint: http://localhost:${options.port}`));
|
|
131
|
+
console.log(chalk.blue(`📖 OpenAPI Spec: http://localhost:${options.port}/openapi.json`));
|
|
132
|
+
|
|
131
133
|
// Handle graceful shutdown
|
|
132
134
|
process.on('SIGTERM', () => {
|
|
133
|
-
console.log(
|
|
135
|
+
console.log(chalk.yellow('\n⚠️ SIGTERM received, shutting down gracefully...'));
|
|
134
136
|
server.close(() => {
|
|
135
|
-
console.log(
|
|
137
|
+
console.log(chalk.green('✅ Server closed'));
|
|
136
138
|
process.exit(0);
|
|
137
139
|
});
|
|
138
140
|
});
|
|
139
141
|
});
|
|
142
|
+
*/
|
|
140
143
|
}
|
|
141
144
|
//# sourceMappingURL=start.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BH,
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@objectql/cli",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.4",
|
|
4
4
|
"description": "Command-line interface for ObjectQL - Code generation, migrations, REPL, and AI-powered development tools",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"objectql",
|
|
@@ -34,13 +34,13 @@
|
|
|
34
34
|
"ts-node": "^10.9.1",
|
|
35
35
|
"openai": "^4.28.0",
|
|
36
36
|
"dotenv": "^16.4.5",
|
|
37
|
-
"@objectql/types": "4.0.
|
|
38
|
-
"@objectql/
|
|
39
|
-
"@objectql/plugin-
|
|
40
|
-
"@objectql/
|
|
41
|
-
"@objectql/
|
|
42
|
-
"@objectql/driver-sql": "4.0.
|
|
43
|
-
"@objectql/platform-node": "4.0.
|
|
37
|
+
"@objectql/types": "4.0.4",
|
|
38
|
+
"@objectql/core": "4.0.4",
|
|
39
|
+
"@objectql/plugin-validator": "4.0.4",
|
|
40
|
+
"@objectql/plugin-ai-agent": "4.0.4",
|
|
41
|
+
"@objectql/protocol-rest": "4.0.5",
|
|
42
|
+
"@objectql/driver-sql": "4.0.4",
|
|
43
|
+
"@objectql/platform-node": "4.0.4"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
46
|
"typescript": "^5.0.0",
|