@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.
Files changed (53) hide show
  1. package/README.md +47 -249
  2. package/dist/commands/build.js +3 -3
  3. package/dist/commands/build.js.map +1 -1
  4. package/dist/commands/database-push.d.ts +1 -1
  5. package/dist/commands/database-push.js +1 -1
  6. package/dist/commands/database-push.js.map +1 -1
  7. package/dist/commands/doctor.d.ts +6 -2
  8. package/dist/commands/doctor.js +16 -19
  9. package/dist/commands/doctor.js.map +1 -1
  10. package/dist/commands/format.js +2 -2
  11. package/dist/commands/format.js.map +1 -1
  12. package/dist/commands/lint.js +4 -4
  13. package/dist/commands/lint.js.map +1 -1
  14. package/dist/commands/migrate.js +12 -40
  15. package/dist/commands/migrate.js.map +1 -1
  16. package/dist/commands/new.js +3 -3
  17. package/dist/commands/repl.js +7 -22
  18. package/dist/commands/repl.js.map +1 -1
  19. package/dist/commands/sync.js +10 -26
  20. package/dist/commands/sync.js.map +1 -1
  21. package/dist/index.js +6 -2
  22. package/dist/index.js.map +1 -1
  23. package/dist/register/database.js +2 -2
  24. package/dist/register/database.js.map +1 -1
  25. package/dist/register/lifecycle.js +14 -26
  26. package/dist/register/lifecycle.js.map +1 -1
  27. package/dist/register/tools.js +4 -3
  28. package/dist/register/tools.js.map +1 -1
  29. package/dist/utils/config-loader.d.ts +22 -0
  30. package/dist/utils/config-loader.js +102 -0
  31. package/dist/utils/config-loader.js.map +1 -0
  32. package/dist/{commands/serve.d.ts → utils/objectstack-cli.d.ts} +2 -7
  33. package/dist/utils/objectstack-cli.js +42 -0
  34. package/dist/utils/objectstack-cli.js.map +1 -0
  35. package/package.json +9 -12
  36. package/templates/hello-world/CHANGELOG.md +16 -0
  37. package/templates/hello-world/package.json +1 -1
  38. package/templates/starter/CHANGELOG.md +20 -0
  39. package/templates/starter/package.json +2 -5
  40. package/templates/starter/src/modules/projects/projects.hook.ts +3 -2
  41. package/templates/starter/tsconfig.json +1 -1
  42. package/dist/commands/dev.d.ts +0 -18
  43. package/dist/commands/dev.js +0 -118
  44. package/dist/commands/dev.js.map +0 -1
  45. package/dist/commands/init.d.ts +0 -16
  46. package/dist/commands/init.js +0 -210
  47. package/dist/commands/init.js.map +0 -1
  48. package/dist/commands/serve.js +0 -218
  49. package/dist/commands/serve.js.map +0 -1
  50. package/dist/commands/start.d.ts +0 -19
  51. package/dist/commands/start.js +0 -144
  52. package/dist/commands/start.js.map +0 -1
  53. 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;;AASH,sDAgDC;AAtDD,+CAAoE;AACpE,2CAA6C;AAC7C,2CAAwC;AACxC,2CAAwC;AACxC,+CAA4C;AAE5C,SAAgB,qBAAqB,CAAC,OAAgB;IAClD,OAAO;SACF,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,4CAA4C,CAAC;SACzD,MAAM,CAAC,KAAK,IAAI,EAAE;QACf,MAAM,IAAA,sBAAa,GAAE,CAAC;IAC1B,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,4BAA4B,CAAC;SAC3D,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"}
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 serve(options: {
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.0",
4
- "description": "Command-line interface for ObjectQL - Code generation, migrations, REPL, and AI-powered development tools",
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.0",
37
- "@objectql/core": "4.1.0",
38
- "@objectql/plugin-validator": "4.1.0",
39
- "@objectql/protocol-rest": "4.1.0",
40
- "@objectql/driver-sql": "4.1.0",
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": "jest"
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,6 +1,6 @@
1
1
  {
2
2
  "name": "@objectql/example-hello-world",
3
- "version": "4.1.0",
3
+ "version": "4.2.1",
4
4
  "private": true,
5
5
  "repository": {
6
6
  "type": "git",
@@ -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.0",
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": "jest"
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
@@ -6,6 +6,6 @@
6
6
  "resolveJsonModule": true
7
7
  },
8
8
  "include": ["src/**/*"],
9
- "exclude": ["objectql.config.ts"]
9
+ "exclude": ["objectstack.config.ts"]
10
10
  }
11
11
 
@@ -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>;
@@ -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
@@ -1 +0,0 @@
1
- {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"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"}
@@ -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 {};