@objectql/cli 4.1.0 ā 4.2.1
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 +47 -249
- package/dist/commands/build.js +3 -3
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/database-push.d.ts +1 -1
- package/dist/commands/database-push.js +1 -1
- package/dist/commands/database-push.js.map +1 -1
- package/dist/commands/doctor.d.ts +6 -2
- package/dist/commands/doctor.js +16 -19
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/format.js +2 -2
- package/dist/commands/format.js.map +1 -1
- package/dist/commands/lint.js +4 -4
- package/dist/commands/lint.js.map +1 -1
- package/dist/commands/migrate.js +12 -40
- package/dist/commands/migrate.js.map +1 -1
- package/dist/commands/new.js +3 -3
- package/dist/commands/repl.js +7 -22
- package/dist/commands/repl.js.map +1 -1
- package/dist/commands/sync.js +10 -26
- package/dist/commands/sync.js.map +1 -1
- package/dist/index.js +6 -2
- package/dist/index.js.map +1 -1
- package/dist/register/database.js +2 -2
- package/dist/register/database.js.map +1 -1
- package/dist/register/lifecycle.js +14 -26
- package/dist/register/lifecycle.js.map +1 -1
- package/dist/register/tools.js +4 -3
- package/dist/register/tools.js.map +1 -1
- package/dist/utils/config-loader.d.ts +22 -0
- package/dist/utils/config-loader.js +102 -0
- package/dist/utils/config-loader.js.map +1 -0
- package/dist/{commands/serve.d.ts ā utils/objectstack-cli.d.ts} +2 -7
- package/dist/utils/objectstack-cli.js +42 -0
- package/dist/utils/objectstack-cli.js.map +1 -0
- package/package.json +9 -12
- package/templates/hello-world/CHANGELOG.md +16 -0
- package/templates/hello-world/package.json +1 -1
- package/templates/starter/CHANGELOG.md +20 -0
- package/templates/starter/package.json +2 -5
- package/templates/starter/src/modules/projects/projects.hook.ts +3 -2
- package/templates/starter/tsconfig.json +1 -1
- package/dist/commands/dev.d.ts +0 -18
- package/dist/commands/dev.js +0 -118
- package/dist/commands/dev.js.map +0 -1
- package/dist/commands/init.d.ts +0 -16
- package/dist/commands/init.js +0 -210
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/serve.js +0 -218
- package/dist/commands/serve.js.map +0 -1
- package/dist/commands/start.d.ts +0 -19
- package/dist/commands/start.js +0 -144
- package/dist/commands/start.js.map +0 -1
- package/templates/starter/jest.config.js +0 -33
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/register/tools.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/register/tools.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAUH,sDAgDC;AAvDD,+CAAqD;AACrD,8DAAgE;AAChE,2CAA6C;AAC7C,2CAAwC;AACxC,2CAAwC;AACxC,+CAA4C;AAE5C,SAAgB,qBAAqB,CAAC,OAAgB;IAClD,OAAO;SACF,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,4EAA4E,CAAC;SACzF,MAAM,CAAC,KAAK,IAAI,EAAE;QACf,IAAA,sCAAoB,EAAC,QAAQ,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEP,OAAO;SACF,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,6BAA6B,CAAC;SAC1C,MAAM,CAAC,kBAAkB,EAAE,uBAAuB,EAAE,GAAG,CAAC;SACxD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACtB,MAAM,IAAA,wBAAe,EAAC,OAAO,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEP,OAAO;SACF,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,wBAAwB,CAAC;SACrC,MAAM,CAAC,qBAAqB,EAAE,+BAA+B,CAAC;SAC9D,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACtB,MAAM,IAAA,gBAAS,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEP,OAAO;SACF,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,WAAW,CAAC;SACxB,MAAM,CAAC,aAAa,EAAE,yBAAyB,CAAC;SAChD,MAAM,CAAC,gBAAgB,EAAE,0BAA0B,CAAC;SACpD,MAAM,CAAC,uBAAuB,EAAE,qCAAqC,CAAC;SACtE,MAAM,CAAC,kBAAkB,EAAE,6BAA6B,EAAE,GAAG,CAAC;SAC9D,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACtB,MAAM,IAAA,WAAI,EAAC,OAAO,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;IAEP,OAAO;SACF,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,qBAAqB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACtB,MAAM,IAAA,WAAI,EAAC,OAAO,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;IAEP,OAAO;SACF,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,uBAAuB,CAAC;SACpC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACtB,MAAM,IAAA,eAAM,EAAC,OAAO,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ObjectQL
|
|
3
|
+
* Copyright (c) 2026-present ObjectStack Inc.
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the MIT license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Resolve the absolute path to the project configuration file.
|
|
10
|
+
*
|
|
11
|
+
* - When `configPath` is provided, it is resolved relative to `cwd` (or used as-is if already absolute).
|
|
12
|
+
* - When omitted, the function searches the `cwd` for known config file names in priority order.
|
|
13
|
+
*
|
|
14
|
+
* @returns The absolute path to the config file.
|
|
15
|
+
* @throws If no config file can be located.
|
|
16
|
+
*/
|
|
17
|
+
export declare function resolveConfigFile(configPath?: string, cwd?: string): string;
|
|
18
|
+
/**
|
|
19
|
+
* Config file names used for doctor/validation checks.
|
|
20
|
+
* Includes sub-directory variants (src/).
|
|
21
|
+
*/
|
|
22
|
+
export declare const CONFIG_SEARCH_PATHS: readonly ["objectstack.config.ts", "objectstack.config.js", "objectql.config.ts", "objectql.config.js", "src/objectstack.config.ts", "src/objectstack.config.js", "src/objectql.config.ts", "src/objectql.config.js"];
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* ObjectQL
|
|
4
|
+
* Copyright (c) 2026-present ObjectStack Inc.
|
|
5
|
+
*
|
|
6
|
+
* This source code is licensed under the MIT license found in the
|
|
7
|
+
* LICENSE file in the root directory of this source tree.
|
|
8
|
+
*/
|
|
9
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
12
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
13
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
14
|
+
}
|
|
15
|
+
Object.defineProperty(o, k2, desc);
|
|
16
|
+
}) : (function(o, m, k, k2) {
|
|
17
|
+
if (k2 === undefined) k2 = k;
|
|
18
|
+
o[k2] = m[k];
|
|
19
|
+
}));
|
|
20
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
21
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
22
|
+
}) : function(o, v) {
|
|
23
|
+
o["default"] = v;
|
|
24
|
+
});
|
|
25
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
26
|
+
var ownKeys = function(o) {
|
|
27
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
28
|
+
var ar = [];
|
|
29
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
30
|
+
return ar;
|
|
31
|
+
};
|
|
32
|
+
return ownKeys(o);
|
|
33
|
+
};
|
|
34
|
+
return function (mod) {
|
|
35
|
+
if (mod && mod.__esModule) return mod;
|
|
36
|
+
var result = {};
|
|
37
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
38
|
+
__setModuleDefault(result, mod);
|
|
39
|
+
return result;
|
|
40
|
+
};
|
|
41
|
+
})();
|
|
42
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
43
|
+
exports.CONFIG_SEARCH_PATHS = void 0;
|
|
44
|
+
exports.resolveConfigFile = resolveConfigFile;
|
|
45
|
+
const path = __importStar(require("path"));
|
|
46
|
+
const fs = __importStar(require("fs"));
|
|
47
|
+
const types_1 = require("@objectql/types");
|
|
48
|
+
/**
|
|
49
|
+
* Config file search order:
|
|
50
|
+
* 1. objectstack.config.ts (canonical ā matches @objectstack/cli)
|
|
51
|
+
* 2. objectstack.config.js
|
|
52
|
+
* 3. objectql.config.ts (legacy compat)
|
|
53
|
+
* 4. objectql.config.js
|
|
54
|
+
*/
|
|
55
|
+
const CONFIG_FILE_NAMES = [
|
|
56
|
+
'objectstack.config.ts',
|
|
57
|
+
'objectstack.config.js',
|
|
58
|
+
'objectql.config.ts',
|
|
59
|
+
'objectql.config.js',
|
|
60
|
+
];
|
|
61
|
+
/**
|
|
62
|
+
* Resolve the absolute path to the project configuration file.
|
|
63
|
+
*
|
|
64
|
+
* - When `configPath` is provided, it is resolved relative to `cwd` (or used as-is if already absolute).
|
|
65
|
+
* - When omitted, the function searches the `cwd` for known config file names in priority order.
|
|
66
|
+
*
|
|
67
|
+
* @returns The absolute path to the config file.
|
|
68
|
+
* @throws If no config file can be located.
|
|
69
|
+
*/
|
|
70
|
+
function resolveConfigFile(configPath, cwd = process.cwd()) {
|
|
71
|
+
if (configPath) {
|
|
72
|
+
const resolved = path.isAbsolute(configPath) ? configPath : path.join(cwd, configPath);
|
|
73
|
+
if (!fs.existsSync(resolved)) {
|
|
74
|
+
throw new types_1.ObjectQLError({ code: 'CONFIG_ERROR', message: `Configuration file not found: ${resolved}` });
|
|
75
|
+
}
|
|
76
|
+
return resolved;
|
|
77
|
+
}
|
|
78
|
+
for (const fileName of CONFIG_FILE_NAMES) {
|
|
79
|
+
const candidate = path.join(cwd, fileName);
|
|
80
|
+
if (fs.existsSync(candidate)) {
|
|
81
|
+
return candidate;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
throw new types_1.ObjectQLError({
|
|
85
|
+
code: 'CONFIG_ERROR',
|
|
86
|
+
message: 'No configuration file found. Expected one of:\n' +
|
|
87
|
+
CONFIG_FILE_NAMES.map(f => ` - ${f}`).join('\n') +
|
|
88
|
+
'\n\nRun `objectstack create` to scaffold a new project.',
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Config file names used for doctor/validation checks.
|
|
93
|
+
* Includes sub-directory variants (src/).
|
|
94
|
+
*/
|
|
95
|
+
exports.CONFIG_SEARCH_PATHS = [
|
|
96
|
+
...CONFIG_FILE_NAMES,
|
|
97
|
+
'src/objectstack.config.ts',
|
|
98
|
+
'src/objectstack.config.js',
|
|
99
|
+
'src/objectql.config.ts',
|
|
100
|
+
'src/objectql.config.js',
|
|
101
|
+
];
|
|
102
|
+
//# sourceMappingURL=config-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../src/utils/config-loader.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BH,8CAsBC;AAjDD,2CAA6B;AAC7B,uCAAyB;AACzB,2CAAgD;AAEhD;;;;;;GAMG;AACH,MAAM,iBAAiB,GAAG;IACtB,uBAAuB;IACvB,uBAAuB;IACvB,oBAAoB;IACpB,oBAAoB;CACd,CAAC;AAEX;;;;;;;;GAQG;AACH,SAAgB,iBAAiB,CAAC,UAAmB,EAAE,MAAc,OAAO,CAAC,GAAG,EAAE;IAC9E,IAAI,UAAU,EAAE,CAAC;QACb,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QACvF,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,qBAAa,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,iCAAiC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC5G,CAAC;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,KAAK,MAAM,QAAQ,IAAI,iBAAiB,EAAE,CAAC;QACvC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC3C,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,OAAO,SAAS,CAAC;QACrB,CAAC;IACL,CAAC;IAED,MAAM,IAAI,qBAAa,CAAC;QACpB,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,iDAAiD;YACtD,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YACjD,yDAAyD;KAChE,CAAC,CAAC;AACP,CAAC;AAED;;;GAGG;AACU,QAAA,mBAAmB,GAAG;IAC/B,GAAG,iBAAiB;IACpB,2BAA2B;IAC3B,2BAA2B;IAC3B,wBAAwB;IACxB,wBAAwB;CAClB,CAAC"}
|
|
@@ -1,13 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* ObjectQL
|
|
2
|
+
* ObjectQL CLI - ObjectStack CLI Delegation
|
|
3
3
|
* Copyright (c) 2026-present ObjectStack Inc.
|
|
4
4
|
*
|
|
5
5
|
* This source code is licensed under the MIT license found in the
|
|
6
6
|
* LICENSE file in the root directory of this source tree.
|
|
7
7
|
*/
|
|
8
|
-
export declare function
|
|
9
|
-
port: number;
|
|
10
|
-
dir: string;
|
|
11
|
-
config?: string;
|
|
12
|
-
modules?: string;
|
|
13
|
-
}): Promise<void>;
|
|
8
|
+
export declare function forwardToObjectStack(command: string, args?: string[]): never;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* ObjectQL CLI - ObjectStack CLI Delegation
|
|
4
|
+
* Copyright (c) 2026-present ObjectStack Inc.
|
|
5
|
+
*
|
|
6
|
+
* This source code is licensed under the MIT license found in the
|
|
7
|
+
* LICENSE file in the root directory of this source tree.
|
|
8
|
+
*/
|
|
9
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
10
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
11
|
+
};
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.forwardToObjectStack = forwardToObjectStack;
|
|
14
|
+
const node_child_process_1 = require("node:child_process");
|
|
15
|
+
const node_fs_1 = require("node:fs");
|
|
16
|
+
const node_path_1 = require("node:path");
|
|
17
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
18
|
+
const isWindows = process.platform === 'win32';
|
|
19
|
+
const getLocalObjectStackBin = () => {
|
|
20
|
+
const binName = isWindows ? 'objectstack.cmd' : 'objectstack';
|
|
21
|
+
return (0, node_path_1.resolve)(process.cwd(), 'node_modules', '.bin', binName);
|
|
22
|
+
};
|
|
23
|
+
function forwardToObjectStack(command, args = []) {
|
|
24
|
+
var _a;
|
|
25
|
+
const localBin = getLocalObjectStackBin();
|
|
26
|
+
const finalArgs = [command, ...args];
|
|
27
|
+
console.log(chalk_1.default.yellow(`\nāŖ Delegating to @objectstack/cli: objectstack ${finalArgs.join(' ')}`));
|
|
28
|
+
let result;
|
|
29
|
+
if ((0, node_fs_1.existsSync)(localBin)) {
|
|
30
|
+
result = (0, node_child_process_1.spawnSync)(localBin, finalArgs, { stdio: 'inherit' });
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
const npxCmd = isWindows ? 'npx.cmd' : 'npx';
|
|
34
|
+
result = (0, node_child_process_1.spawnSync)(npxCmd, ['-y', '@objectstack/cli', ...finalArgs], { stdio: 'inherit' });
|
|
35
|
+
}
|
|
36
|
+
if (result.error) {
|
|
37
|
+
console.error(chalk_1.default.red(`Failed to run @objectstack/cli: ${result.error.message}`));
|
|
38
|
+
process.exit(1);
|
|
39
|
+
}
|
|
40
|
+
process.exit((_a = result.status) !== null && _a !== void 0 ? _a : 0);
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=objectstack-cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"objectstack-cli.js","sourceRoot":"","sources":["../../src/utils/objectstack-cli.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;AAcH,oDAqBC;AAjCD,2DAA+C;AAC/C,qCAAqC;AACrC,yCAAoC;AACpC,kDAA0B;AAE1B,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC;AAE/C,MAAM,sBAAsB,GAAG,GAAG,EAAE;IAClC,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,aAAa,CAAC;IAC9D,OAAO,IAAA,mBAAO,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AACjE,CAAC,CAAC;AAEF,SAAgB,oBAAoB,CAAC,OAAe,EAAE,OAAiB,EAAE;;IACvE,MAAM,QAAQ,GAAG,sBAAsB,EAAE,CAAC;IAC1C,MAAM,SAAS,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IAErC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,mDAAmD,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAEpG,IAAI,MAAoC,CAAC;IAEzC,IAAI,IAAA,oBAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,MAAM,GAAG,IAAA,8BAAS,EAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAChE,CAAC;SAAM,CAAC;QACN,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;QAC7C,MAAM,GAAG,IAAA,8BAAS,EAAC,MAAM,EAAE,CAAC,IAAI,EAAE,kBAAkB,EAAE,GAAG,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAC7F,CAAC;IAED,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,mCAAmC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACpF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,MAAA,MAAM,CAAC,MAAM,mCAAI,CAAC,CAAC,CAAC;AACnC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@objectql/cli",
|
|
3
|
-
"version": "4.1
|
|
4
|
-
"description": "Command-line interface for ObjectQL -
|
|
3
|
+
"version": "4.2.1",
|
|
4
|
+
"description": "Command-line interface for ObjectQL - metadata scaffolding, type generation, DB workflows, and local tooling",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"objectql",
|
|
7
7
|
"cli",
|
|
@@ -9,10 +9,8 @@
|
|
|
9
9
|
"codegen",
|
|
10
10
|
"migration",
|
|
11
11
|
"repl",
|
|
12
|
-
"ai",
|
|
13
12
|
"tools",
|
|
14
|
-
"development"
|
|
15
|
-
"studio"
|
|
13
|
+
"development"
|
|
16
14
|
],
|
|
17
15
|
"license": "MIT",
|
|
18
16
|
"main": "dist/index.js",
|
|
@@ -33,12 +31,11 @@
|
|
|
33
31
|
"prettier": "^3.0.0",
|
|
34
32
|
"ts-node": "^10.9.1",
|
|
35
33
|
"dotenv": "^16.4.5",
|
|
36
|
-
"@objectql/types": "4.1
|
|
37
|
-
"@objectql/core": "4.1
|
|
38
|
-
"@objectql/plugin-validator": "4.1
|
|
39
|
-
"@objectql/
|
|
40
|
-
"@objectql/
|
|
41
|
-
"@objectql/platform-node": "4.1.0"
|
|
34
|
+
"@objectql/types": "4.2.1",
|
|
35
|
+
"@objectql/core": "4.2.1",
|
|
36
|
+
"@objectql/plugin-validator": "4.2.1",
|
|
37
|
+
"@objectql/driver-sql": "4.2.1",
|
|
38
|
+
"@objectql/platform-node": "4.2.1"
|
|
42
39
|
},
|
|
43
40
|
"devDependencies": {
|
|
44
41
|
"typescript": "^5.0.0",
|
|
@@ -49,6 +46,6 @@
|
|
|
49
46
|
"build": "tsc && pnpm run copy-templates",
|
|
50
47
|
"copy-templates": "rm -rf templates && mkdir -p templates && rsync -av --exclude='node_modules' --exclude='dist' --exclude='__tests__' ../../../examples/quickstart/hello-world templates/ && rsync -av --exclude='node_modules' --exclude='dist' --exclude='__tests__' ../../../examples/showcase/project-tracker/ templates/starter",
|
|
51
48
|
"watch": "tsc -w",
|
|
52
|
-
"test": "
|
|
49
|
+
"test": "vitest run"
|
|
53
50
|
}
|
|
54
51
|
}
|
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# @example/hello-world
|
|
2
2
|
|
|
3
|
+
## 4.2.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [a0aa26a]
|
|
8
|
+
- @objectql/core@4.2.1
|
|
9
|
+
- @objectql/driver-sql@4.2.1
|
|
10
|
+
|
|
11
|
+
## 4.1.1
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- Updated dependencies
|
|
16
|
+
- @objectql/core@4.2.0
|
|
17
|
+
- @objectql/driver-sql@4.2.0
|
|
18
|
+
|
|
3
19
|
## 4.0.6
|
|
4
20
|
|
|
5
21
|
### Patch Changes
|
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
# @objectql/starter-basic
|
|
2
2
|
|
|
3
|
+
## 4.2.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [a0aa26a]
|
|
8
|
+
- @objectql/types@4.2.1
|
|
9
|
+
- @objectql/core@4.2.1
|
|
10
|
+
- @objectql/platform-node@4.2.1
|
|
11
|
+
- @objectql/driver-sql@4.2.1
|
|
12
|
+
|
|
13
|
+
## 5.0.0
|
|
14
|
+
|
|
15
|
+
### Patch Changes
|
|
16
|
+
|
|
17
|
+
- Updated dependencies
|
|
18
|
+
- @objectql/types@4.2.0
|
|
19
|
+
- @objectql/core@4.2.0
|
|
20
|
+
- @objectql/platform-node@4.2.0
|
|
21
|
+
- @objectql/driver-sql@4.2.0
|
|
22
|
+
|
|
3
23
|
## 4.0.6
|
|
4
24
|
|
|
5
25
|
### Patch Changes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@objectql/example-project-tracker",
|
|
3
|
-
"version": "4.1
|
|
3
|
+
"version": "4.2.1",
|
|
4
4
|
"description": "ObjectQL Basic Example Project",
|
|
5
5
|
"private": true,
|
|
6
6
|
"keywords": [
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"codegen": "objectql types -s src -o src/types",
|
|
31
31
|
"build": "tsc && rsync -a --include '*/' --include '*.yml' --exclude '*' src/ dist/",
|
|
32
32
|
"repl": "objectql repl",
|
|
33
|
-
"test": "
|
|
33
|
+
"test": "vitest run"
|
|
34
34
|
},
|
|
35
35
|
"peerDependencies": {
|
|
36
36
|
"@objectql/core": "workspace:*",
|
|
@@ -45,10 +45,7 @@
|
|
|
45
45
|
"@objectql/driver-sql": "workspace:*",
|
|
46
46
|
"@objectql/platform-node": "workspace:*",
|
|
47
47
|
"@objectql/types": "workspace:*",
|
|
48
|
-
"@types/jest": "^30.0.0",
|
|
49
48
|
"@types/node": "^20.0.0",
|
|
50
|
-
"jest": "^30.2.0",
|
|
51
|
-
"ts-jest": "^29.4.6",
|
|
52
49
|
"typescript": "^5.3.0"
|
|
53
50
|
}
|
|
54
51
|
}
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
import { ObjectHookDefinition } from '@objectql/types';
|
|
10
|
+
import { Projects } from '../../types/projects';
|
|
10
11
|
|
|
11
12
|
/**
|
|
12
13
|
* Project Hooks - Business Logic Implementation
|
|
@@ -14,7 +15,7 @@ import { ObjectHookDefinition } from '@objectql/types';
|
|
|
14
15
|
* This file implements all lifecycle hooks for the Project object.
|
|
15
16
|
* Hooks are automatically triggered during CRUD operations.
|
|
16
17
|
*/
|
|
17
|
-
const hooks: ObjectHookDefinition = {
|
|
18
|
+
const hooks: ObjectHookDefinition<Projects> = {
|
|
18
19
|
/**
|
|
19
20
|
* beforeCreate Hook
|
|
20
21
|
*
|
|
@@ -42,7 +43,7 @@ const hooks: ObjectHookDefinition = {
|
|
|
42
43
|
// Auto-assign owner from user context
|
|
43
44
|
// Note: Framework automatically sets created_by, but we also need owner field
|
|
44
45
|
if (user?.id) {
|
|
45
|
-
data.owner = user.id;
|
|
46
|
+
data.owner = String(user.id);
|
|
46
47
|
}
|
|
47
48
|
|
|
48
49
|
// Set default status to planned if not provided
|
package/dist/commands/dev.d.ts
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ObjectQL
|
|
3
|
-
* Copyright (c) 2026-present ObjectStack Inc.
|
|
4
|
-
*
|
|
5
|
-
* This source code is licensed under the MIT license found in the
|
|
6
|
-
* LICENSE file in the root directory of this source tree.
|
|
7
|
-
*/
|
|
8
|
-
/**
|
|
9
|
-
* Start development server with hot reload
|
|
10
|
-
* This is an enhanced version of the serve command for development workflow
|
|
11
|
-
*/
|
|
12
|
-
export declare function dev(options: {
|
|
13
|
-
port: number;
|
|
14
|
-
dir: string;
|
|
15
|
-
config?: string;
|
|
16
|
-
modules?: string;
|
|
17
|
-
watch?: boolean;
|
|
18
|
-
}): Promise<void>;
|
package/dist/commands/dev.js
DELETED
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* ObjectQL
|
|
4
|
-
* Copyright (c) 2026-present ObjectStack Inc.
|
|
5
|
-
*
|
|
6
|
-
* This source code is licensed under the MIT license found in the
|
|
7
|
-
* LICENSE file in the root directory of this source tree.
|
|
8
|
-
*/
|
|
9
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
12
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
13
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
14
|
-
}
|
|
15
|
-
Object.defineProperty(o, k2, desc);
|
|
16
|
-
}) : (function(o, m, k, k2) {
|
|
17
|
-
if (k2 === undefined) k2 = k;
|
|
18
|
-
o[k2] = m[k];
|
|
19
|
-
}));
|
|
20
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
21
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
22
|
-
}) : function(o, v) {
|
|
23
|
-
o["default"] = v;
|
|
24
|
-
});
|
|
25
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
26
|
-
var ownKeys = function(o) {
|
|
27
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
28
|
-
var ar = [];
|
|
29
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
30
|
-
return ar;
|
|
31
|
-
};
|
|
32
|
-
return ownKeys(o);
|
|
33
|
-
};
|
|
34
|
-
return function (mod) {
|
|
35
|
-
if (mod && mod.__esModule) return mod;
|
|
36
|
-
var result = {};
|
|
37
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
38
|
-
__setModuleDefault(result, mod);
|
|
39
|
-
return result;
|
|
40
|
-
};
|
|
41
|
-
})();
|
|
42
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
43
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
44
|
-
};
|
|
45
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
46
|
-
exports.dev = dev;
|
|
47
|
-
const serve_1 = require("./serve");
|
|
48
|
-
const generate_1 = require("./generate");
|
|
49
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
50
|
-
const fs = __importStar(require("fs"));
|
|
51
|
-
const path = __importStar(require("path"));
|
|
52
|
-
/**
|
|
53
|
-
* Start development server with hot reload
|
|
54
|
-
* This is an enhanced version of the serve command for development workflow
|
|
55
|
-
*/
|
|
56
|
-
async function dev(options) {
|
|
57
|
-
console.log(chalk_1.default.cyan('š Starting ObjectQL Development Server...'));
|
|
58
|
-
const sourceDir = path.resolve(process.cwd(), options.dir || '.');
|
|
59
|
-
// Output types to the source directory under 'generated' folder
|
|
60
|
-
const typeOutputDir = path.join(sourceDir, 'generated');
|
|
61
|
-
// 1. Initial Type Generation
|
|
62
|
-
try {
|
|
63
|
-
await (0, generate_1.generateTypes)(sourceDir, typeOutputDir);
|
|
64
|
-
}
|
|
65
|
-
catch (e) {
|
|
66
|
-
console.error(chalk_1.default.red('Initial type generation failed:'), e);
|
|
67
|
-
// Continue anyway, maybe it's just a starting project
|
|
68
|
-
}
|
|
69
|
-
// 2. Setup Watcher (Before serve, in case serve blocks)
|
|
70
|
-
if (options.watch !== false) {
|
|
71
|
-
startWatcher(sourceDir, typeOutputDir);
|
|
72
|
-
}
|
|
73
|
-
console.log(chalk_1.default.blue(`\nš Server context: ${sourceDir}`));
|
|
74
|
-
console.log(chalk_1.default.blue(`š Type output: ${typeOutputDir}`));
|
|
75
|
-
// 3. Start Server
|
|
76
|
-
await (0, serve_1.serve)({
|
|
77
|
-
port: options.port,
|
|
78
|
-
dir: options.dir,
|
|
79
|
-
config: options.config,
|
|
80
|
-
modules: options.modules
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
let debounceTimer = null;
|
|
84
|
-
function startWatcher(sourceDir, outputDir) {
|
|
85
|
-
console.log(chalk_1.default.yellow('š Watching for metadata changes...'));
|
|
86
|
-
try {
|
|
87
|
-
// Recursive watch
|
|
88
|
-
const watcher = fs.watch(sourceDir, { recursive: true }, (eventType, filename) => {
|
|
89
|
-
if (!filename)
|
|
90
|
-
return;
|
|
91
|
-
// Ignore generated directory to prevent loops if output is inside source
|
|
92
|
-
if (filename.includes('generated') || filename.includes('node_modules') || filename.includes('.git')) {
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
95
|
-
// Only care about YAML
|
|
96
|
-
if (filename.endsWith('.yml') || filename.endsWith('.yaml')) {
|
|
97
|
-
// Debounce
|
|
98
|
-
if (debounceTimer)
|
|
99
|
-
clearTimeout(debounceTimer);
|
|
100
|
-
debounceTimer = setTimeout(async () => {
|
|
101
|
-
console.log(chalk_1.default.gray(`\nš Change detected: ${filename}`));
|
|
102
|
-
try {
|
|
103
|
-
console.log(chalk_1.default.blue('ā”ļø Regenerating types...'));
|
|
104
|
-
await (0, generate_1.generateTypes)(sourceDir, outputDir);
|
|
105
|
-
}
|
|
106
|
-
catch (e) {
|
|
107
|
-
console.error(chalk_1.default.red('Type generation failed:'), e);
|
|
108
|
-
}
|
|
109
|
-
}, 500);
|
|
110
|
-
}
|
|
111
|
-
});
|
|
112
|
-
watcher.on('error', (e) => console.error(chalk_1.default.red('Watcher error:'), e));
|
|
113
|
-
}
|
|
114
|
-
catch (e) {
|
|
115
|
-
console.warn(chalk_1.default.yellow('Native recursive watch not supported or failed. Watching root only.'));
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
//# sourceMappingURL=dev.js.map
|
package/dist/commands/dev.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/init.d.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ObjectQL
|
|
3
|
-
* Copyright (c) 2026-present ObjectStack Inc.
|
|
4
|
-
*
|
|
5
|
-
* This source code is licensed under the MIT license found in the
|
|
6
|
-
* LICENSE file in the root directory of this source tree.
|
|
7
|
-
*/
|
|
8
|
-
interface InitOptions {
|
|
9
|
-
template?: string;
|
|
10
|
-
name?: string;
|
|
11
|
-
dir?: string;
|
|
12
|
-
skipInstall?: boolean;
|
|
13
|
-
skipGit?: boolean;
|
|
14
|
-
}
|
|
15
|
-
export declare function initProject(options: InitOptions): Promise<void>;
|
|
16
|
-
export {};
|