@metaobjectsdev/cli 0.5.0-rc.3 → 0.5.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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,YAAY,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AA4CvE,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA6DzD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,YAAY,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAkEvE,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA6DzD"}
package/dist/src/index.js CHANGED
@@ -1,7 +1,33 @@
1
- import { resolve } from "node:path";
1
+ import { existsSync, readFileSync } from "node:fs";
2
+ import { dirname, join, resolve } from "node:path";
3
+ import { fileURLToPath } from "node:url";
2
4
  import { log } from "./lib/log.js";
3
5
  export { defineConfig } from "@metaobjectsdev/codegen-ts";
4
- const VERSION = "0.2.0";
6
+ // Derive the version from the CLI's own package.json so it never goes stale.
7
+ // The compiled entry is dist/src/index.js while package.json sits at the package
8
+ // root, so walk up from the module location until @metaobjectsdev/cli's manifest.
9
+ function readCliVersion() {
10
+ let dir = dirname(fileURLToPath(import.meta.url));
11
+ for (let i = 0; i < 6; i++) {
12
+ const candidate = join(dir, "package.json");
13
+ if (existsSync(candidate)) {
14
+ try {
15
+ const pkg = JSON.parse(readFileSync(candidate, "utf8"));
16
+ if (pkg.name === "@metaobjectsdev/cli" && pkg.version)
17
+ return pkg.version;
18
+ }
19
+ catch {
20
+ // not our manifest / unreadable — keep walking up
21
+ }
22
+ }
23
+ const parent = dirname(dir);
24
+ if (parent === dir)
25
+ break;
26
+ dir = parent;
27
+ }
28
+ return "0.0.0";
29
+ }
30
+ const VERSION = readCliVersion();
5
31
  const HELP_TEXT = `meta — MetaObjects CLI (v${VERSION})
6
32
 
7
33
  USAGE:
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"load-metaobjects-config.d.ts","sourceRoot":"","sources":["../../../src/lib/load-metaobjects-config.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAqDvE,wBAAsB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA8B9F"}
1
+ {"version":3,"file":"load-metaobjects-config.d.ts","sourceRoot":"","sources":["../../../src/lib/load-metaobjects-config.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AA4EvE,wBAAsB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA+B9F"}
@@ -16,13 +16,11 @@ const _thisFile = fileURLToPath(import.meta.url);
16
16
  const _isCompiled = _thisFile.includes("/dist/");
17
17
  const _cliDir = resolve(_thisFile, _isCompiled ? "../../../.." : "../../..");
18
18
  const _require = createRequire(import.meta.url);
19
- // Each aliased specifier maps to a compiled-output path and a TS-source path,
20
- // relative to _cliDir. When running from compiled output we resolve into the
21
- // package's dist/; when running TS source directly (bun test, `meta` run from
22
- // the workspace) we resolve into src/ so the CLI never depends on a stale,
23
- // unrebuilt dist/.
19
+ // Fallback layout for each codegen specifier (relative to _cliDir), used only
20
+ // when standard module resolution can't locate it. Compiled output lives in
21
+ // dist/; un-compiled runs (bun test, `meta` from the workspace) use src/ so the
22
+ // CLI never depends on a stale, unrebuilt dist/.
24
23
  //
25
- // The three workspace deps resolve through the CLI's own node_modules.
26
24
  // @metaobjectsdev/cli is this package itself, so it resolves directly from
27
25
  // _cliDir rather than through node_modules (which would be a non-existent
28
26
  // self-referential symlink).
@@ -35,6 +33,10 @@ const CLI_PKG_PATHS = {
35
33
  dist: "node_modules/@metaobjectsdev/codegen-ts/dist/generators/index.js",
36
34
  src: "node_modules/@metaobjectsdev/codegen-ts/src/generators/index.ts",
37
35
  },
36
+ "@metaobjectsdev/codegen-ts-react": {
37
+ dist: "node_modules/@metaobjectsdev/codegen-ts-react/dist/index.js",
38
+ src: "node_modules/@metaobjectsdev/codegen-ts-react/src/index.ts",
39
+ },
38
40
  "@metaobjectsdev/codegen-ts-tanstack": {
39
41
  dist: "node_modules/@metaobjectsdev/codegen-ts-tanstack/dist/index.js",
40
42
  src: "node_modules/@metaobjectsdev/codegen-ts-tanstack/src/index.ts",
@@ -44,12 +46,33 @@ const CLI_PKG_PATHS = {
44
46
  src: "src/index.ts",
45
47
  },
46
48
  };
49
+ // Resolve a codegen specifier to an absolute path for jiti's alias map, so a
50
+ // user's metaobjects.config.ts can import @metaobjectsdev/codegen-ts* without
51
+ // declaring it directly — the CLI's own copy is used.
52
+ //
53
+ // Standard module resolution is tried first: it follows whatever node_modules
54
+ // layout exists — npm (flat), pnpm (deps as siblings in the virtual store,
55
+ // NOT nested under the CLI dir), or bun — and honors the package's export
56
+ // conditions. The CLI_PKG_PATHS fallback only kicks in when a specifier isn't
57
+ // require-resolvable from the CLI module.
47
58
  function resolveCliPkg(specifier) {
48
59
  const paths = CLI_PKG_PATHS[specifier];
49
- if (paths !== undefined) {
60
+ // The cli self-reference always points at this package's own entry, never a
61
+ // (possibly absent) self-referential node_modules symlink.
62
+ if (specifier === "@metaobjectsdev/cli" && paths !== undefined) {
50
63
  return resolve(_cliDir, _isCompiled ? paths.dist : paths.src);
51
64
  }
52
- return _require.resolve(specifier);
65
+ try {
66
+ return _require.resolve(specifier);
67
+ }
68
+ catch {
69
+ if (paths !== undefined) {
70
+ const candidate = resolve(_cliDir, _isCompiled ? paths.dist : paths.src);
71
+ if (existsSync(candidate))
72
+ return candidate;
73
+ }
74
+ throw new Error(`metaobjects: could not resolve ${specifier} from the CLI — try reinstalling @metaobjectsdev/cli.`);
75
+ }
53
76
  }
54
77
  export async function loadMetaobjectsConfig(projectRoot) {
55
78
  const fullPath = resolve(projectRoot, CONFIG_FILE);
@@ -65,6 +88,7 @@ export async function loadMetaobjectsConfig(projectRoot) {
65
88
  alias: {
66
89
  "@metaobjectsdev/codegen-ts": resolveCliPkg("@metaobjectsdev/codegen-ts"),
67
90
  "@metaobjectsdev/codegen-ts/generators": resolveCliPkg("@metaobjectsdev/codegen-ts/generators"),
91
+ "@metaobjectsdev/codegen-ts-react": resolveCliPkg("@metaobjectsdev/codegen-ts-react"),
68
92
  "@metaobjectsdev/codegen-ts-tanstack": resolveCliPkg("@metaobjectsdev/codegen-ts-tanstack"),
69
93
  "@metaobjectsdev/cli": resolveCliPkg("@metaobjectsdev/cli"),
70
94
  },
@@ -1 +1 @@
1
- {"version":3,"file":"load-metaobjects-config.js","sourceRoot":"","sources":["../../../src/lib/load-metaobjects-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"load-metaobjects-config.js","sourceRoot":"","sources":["../../../src/lib/load-metaobjects-config.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metaobjectsdev/cli",
3
- "version": "0.5.0-rc.3",
3
+ "version": "0.5.1",
4
4
  "description": "CLI for MetaObjects: scaffold, codegen, migrate, and drift-detection commands.",
5
5
  "type": "module",
6
6
  "main": "./dist/src/index.js",
@@ -36,12 +36,12 @@
36
36
  },
37
37
  "keywords": ["metaobjects", "cli", "scaffold", "codegen", "drift-detection"],
38
38
  "dependencies": {
39
- "@metaobjectsdev/sdk": "0.5.0-rc.3",
40
- "@metaobjectsdev/metadata": "0.5.0-rc.3",
41
- "@metaobjectsdev/codegen-ts": "0.5.0-rc.3",
42
- "@metaobjectsdev/codegen-ts-react": "0.5.0-rc.3",
43
- "@metaobjectsdev/codegen-ts-tanstack": "0.5.0-rc.3",
44
- "@metaobjectsdev/migrate-ts": "0.5.0-rc.3",
39
+ "@metaobjectsdev/sdk": "0.5.0",
40
+ "@metaobjectsdev/metadata": "0.5.0",
41
+ "@metaobjectsdev/codegen-ts": "0.5.0",
42
+ "@metaobjectsdev/codegen-ts-react": "0.5.0",
43
+ "@metaobjectsdev/codegen-ts-tanstack": "0.5.0",
44
+ "@metaobjectsdev/migrate-ts": "0.5.0",
45
45
  "jiti": "^2.4.0"
46
46
  },
47
47
  "peerDependencies": {
package/src/index.ts CHANGED
@@ -1,9 +1,33 @@
1
- import { resolve } from "node:path";
1
+ import { existsSync, readFileSync } from "node:fs";
2
+ import { dirname, join, resolve } from "node:path";
3
+ import { fileURLToPath } from "node:url";
2
4
  import { log } from "./lib/log.js";
3
5
  export { defineConfig } from "@metaobjectsdev/codegen-ts";
4
6
  export type { MetaobjectsGenConfig } from "@metaobjectsdev/codegen-ts";
5
7
 
6
- const VERSION = "0.2.0";
8
+ // Derive the version from the CLI's own package.json so it never goes stale.
9
+ // The compiled entry is dist/src/index.js while package.json sits at the package
10
+ // root, so walk up from the module location until @metaobjectsdev/cli's manifest.
11
+ function readCliVersion(): string {
12
+ let dir = dirname(fileURLToPath(import.meta.url));
13
+ for (let i = 0; i < 6; i++) {
14
+ const candidate = join(dir, "package.json");
15
+ if (existsSync(candidate)) {
16
+ try {
17
+ const pkg = JSON.parse(readFileSync(candidate, "utf8")) as { name?: string; version?: string };
18
+ if (pkg.name === "@metaobjectsdev/cli" && pkg.version) return pkg.version;
19
+ } catch {
20
+ // not our manifest / unreadable — keep walking up
21
+ }
22
+ }
23
+ const parent = dirname(dir);
24
+ if (parent === dir) break;
25
+ dir = parent;
26
+ }
27
+ return "0.0.0";
28
+ }
29
+
30
+ const VERSION = readCliVersion();
7
31
 
8
32
  const HELP_TEXT = `meta — MetaObjects CLI (v${VERSION})
9
33
 
@@ -19,13 +19,11 @@ const _thisFile = fileURLToPath(import.meta.url);
19
19
  const _isCompiled = _thisFile.includes("/dist/");
20
20
  const _cliDir = resolve(_thisFile, _isCompiled ? "../../../.." : "../../..");
21
21
  const _require = createRequire(import.meta.url);
22
- // Each aliased specifier maps to a compiled-output path and a TS-source path,
23
- // relative to _cliDir. When running from compiled output we resolve into the
24
- // package's dist/; when running TS source directly (bun test, `meta` run from
25
- // the workspace) we resolve into src/ so the CLI never depends on a stale,
26
- // unrebuilt dist/.
22
+ // Fallback layout for each codegen specifier (relative to _cliDir), used only
23
+ // when standard module resolution can't locate it. Compiled output lives in
24
+ // dist/; un-compiled runs (bun test, `meta` from the workspace) use src/ so the
25
+ // CLI never depends on a stale, unrebuilt dist/.
27
26
  //
28
- // The three workspace deps resolve through the CLI's own node_modules.
29
27
  // @metaobjectsdev/cli is this package itself, so it resolves directly from
30
28
  // _cliDir rather than through node_modules (which would be a non-existent
31
29
  // self-referential symlink).
@@ -38,6 +36,10 @@ const CLI_PKG_PATHS: Record<string, { dist: string; src: string }> = {
38
36
  dist: "node_modules/@metaobjectsdev/codegen-ts/dist/generators/index.js",
39
37
  src: "node_modules/@metaobjectsdev/codegen-ts/src/generators/index.ts",
40
38
  },
39
+ "@metaobjectsdev/codegen-ts-react": {
40
+ dist: "node_modules/@metaobjectsdev/codegen-ts-react/dist/index.js",
41
+ src: "node_modules/@metaobjectsdev/codegen-ts-react/src/index.ts",
42
+ },
41
43
  "@metaobjectsdev/codegen-ts-tanstack": {
42
44
  dist: "node_modules/@metaobjectsdev/codegen-ts-tanstack/dist/index.js",
43
45
  src: "node_modules/@metaobjectsdev/codegen-ts-tanstack/src/index.ts",
@@ -48,12 +50,33 @@ const CLI_PKG_PATHS: Record<string, { dist: string; src: string }> = {
48
50
  },
49
51
  };
50
52
 
53
+ // Resolve a codegen specifier to an absolute path for jiti's alias map, so a
54
+ // user's metaobjects.config.ts can import @metaobjectsdev/codegen-ts* without
55
+ // declaring it directly — the CLI's own copy is used.
56
+ //
57
+ // Standard module resolution is tried first: it follows whatever node_modules
58
+ // layout exists — npm (flat), pnpm (deps as siblings in the virtual store,
59
+ // NOT nested under the CLI dir), or bun — and honors the package's export
60
+ // conditions. The CLI_PKG_PATHS fallback only kicks in when a specifier isn't
61
+ // require-resolvable from the CLI module.
51
62
  function resolveCliPkg(specifier: string): string {
52
63
  const paths = CLI_PKG_PATHS[specifier];
53
- if (paths !== undefined) {
64
+ // The cli self-reference always points at this package's own entry, never a
65
+ // (possibly absent) self-referential node_modules symlink.
66
+ if (specifier === "@metaobjectsdev/cli" && paths !== undefined) {
54
67
  return resolve(_cliDir, _isCompiled ? paths.dist : paths.src);
55
68
  }
56
- return _require.resolve(specifier);
69
+ try {
70
+ return _require.resolve(specifier);
71
+ } catch {
72
+ if (paths !== undefined) {
73
+ const candidate = resolve(_cliDir, _isCompiled ? paths.dist : paths.src);
74
+ if (existsSync(candidate)) return candidate;
75
+ }
76
+ throw new Error(
77
+ `metaobjects: could not resolve ${specifier} from the CLI — try reinstalling @metaobjectsdev/cli.`,
78
+ );
79
+ }
57
80
  }
58
81
 
59
82
  export async function loadMetaobjectsConfig(projectRoot: string): Promise<MetaobjectsGenConfig> {
@@ -72,6 +95,7 @@ export async function loadMetaobjectsConfig(projectRoot: string): Promise<Metaob
72
95
  alias: {
73
96
  "@metaobjectsdev/codegen-ts": resolveCliPkg("@metaobjectsdev/codegen-ts"),
74
97
  "@metaobjectsdev/codegen-ts/generators": resolveCliPkg("@metaobjectsdev/codegen-ts/generators"),
98
+ "@metaobjectsdev/codegen-ts-react": resolveCliPkg("@metaobjectsdev/codegen-ts-react"),
75
99
  "@metaobjectsdev/codegen-ts-tanstack": resolveCliPkg("@metaobjectsdev/codegen-ts-tanstack"),
76
100
  "@metaobjectsdev/cli": resolveCliPkg("@metaobjectsdev/cli"),
77
101
  },