@metaobjectsdev/sdk 0.6.0 → 0.7.0-rc.2

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":"memory.d.ts","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"AAGA,OAAO,EAGL,KAAK,QAAQ,EACd,MAAM,0BAA0B,CAAC;AAIlC;;;GAGG;AACH,eAAO,MAAM,oBAAoB,gBAAgB,CAAC;AAElD;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,iBAAiB,CAAC;AAEtD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAmBpE"}
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,KAAK,QAAQ,EACd,MAAM,0BAA0B,CAAC;AAKlC;;;GAGG;AACH,eAAO,MAAM,oBAAoB,gBAAgB,CAAC;AAElD;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,iBAAiB,CAAC;AAEtD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAmBpE"}
package/dist/memory.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { join } from "node:path";
2
2
  import { readdir, stat } from "node:fs/promises";
3
- import { FileMetaDataLoader } from "@metaobjectsdev/metadata/core";
4
- import { TypeRegistry, registerCoreTypes, } from "@metaobjectsdev/metadata";
3
+ import { MetaDataLoader, TypeRegistry, registerCoreTypes, } from "@metaobjectsdev/metadata";
4
+ import { FileSource } from "@metaobjectsdev/metadata/core";
5
5
  import { registerForgeTypes } from "./forge-types.js";
6
6
  import { discoverWorkspace, resolveExtendsOrder } from "./workspace.js";
7
7
  /**
@@ -39,8 +39,8 @@ export async function loadMemory(repoRoot) {
39
39
  // deferred-resolution pass (it parses in array order, then resolves supers
40
40
  // against the merged tree afterwards) — dep packages first, current last.
41
41
  const paths = await collectMetadataPaths(repoRoot);
42
- const loader = new FileMetaDataLoader({ registry });
43
- const result = await loader.loadFiles(paths);
42
+ const loader = new MetaDataLoader({ registry });
43
+ const result = await loader.load(paths.map((p) => new FileSource(p)));
44
44
  if (result.errors.length > 0) {
45
45
  const first = result.errors[0];
46
46
  throw first;
@@ -60,21 +60,25 @@ async function collectMetadataPaths(repoRoot) {
60
60
  for (const pkg of ordered) {
61
61
  // Each workspace package's metadata lives alongside its .meta/ dir
62
62
  const pkgRoot = join(pkg.metaDir, "..");
63
- paths.push(...(await listJsonFiles(join(pkgRoot, DEFAULT_METADATA_DIR))));
63
+ paths.push(...(await listMetadataFiles(join(pkgRoot, DEFAULT_METADATA_DIR))));
64
64
  }
65
65
  return paths;
66
66
  }
67
67
  }
68
68
  // Single-package path: scan metaobjects/ at the project root
69
- return listJsonFiles(join(repoRoot, DEFAULT_METADATA_DIR));
69
+ return listMetadataFiles(join(repoRoot, DEFAULT_METADATA_DIR));
70
70
  }
71
71
  /**
72
- * Recursively list *.json files under a directory, excluding _pending/ at
73
- * any level. Subdirectories (e.g. projections/) are walked depth-first.
74
- * Files within a directory are sorted alphabetically for deterministic load
75
- * order; subdirectories are visited after files at the same level.
72
+ * Recursively list metadata files (*.json, *.yaml, *.yml) under a directory,
73
+ * excluding _pending/ at any level. Subdirectories (e.g. projections/) are
74
+ * walked depth-first. Files within a directory are sorted alphabetically for
75
+ * deterministic load order; subdirectories are visited after files at the
76
+ * same level.
77
+ *
78
+ * Format selection (parsing) happens downstream in `FileSource` from
79
+ * `@metaobjectsdev/metadata`, which infers the parser from file extension.
76
80
  */
77
- async function listJsonFiles(dir) {
81
+ async function listMetadataFiles(dir) {
78
82
  let entries;
79
83
  try {
80
84
  entries = await readdir(dir);
@@ -92,14 +96,17 @@ async function listJsonFiles(dir) {
92
96
  if (s.isDirectory()) {
93
97
  subdirs.push(full);
94
98
  }
95
- else if (s.isFile() && entry.endsWith(".json")) {
99
+ else if (s.isFile() && isMetadataFile(entry)) {
96
100
  paths.push(full);
97
101
  }
98
102
  }
99
103
  // Recurse into subdirectories after collecting files at this level
100
104
  for (const sub of subdirs.sort()) {
101
- paths.push(...(await listJsonFiles(sub)));
105
+ paths.push(...(await listMetadataFiles(sub)));
102
106
  }
103
107
  return paths;
104
108
  }
109
+ function isMetadataFile(name) {
110
+ return name.endsWith(".json") || name.endsWith(".yaml") || name.endsWith(".yml");
111
+ }
105
112
  //# sourceMappingURL=memory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"memory.js","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metaobjectsdev/sdk",
3
- "version": "0.6.0",
3
+ "version": "0.7.0-rc.2",
4
4
  "description": "Workspace helpers and agent-docs utilities for MetaObjects projects.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -38,7 +38,7 @@
38
38
  "access": "public"
39
39
  },
40
40
  "dependencies": {
41
- "@metaobjectsdev/metadata": "0.6.0",
41
+ "@metaobjectsdev/metadata": "0.7.0-rc.2",
42
42
  "zod": "^3.23.0"
43
43
  },
44
44
  "devDependencies": {
package/src/memory.ts CHANGED
@@ -1,11 +1,12 @@
1
1
  import { join } from "node:path";
2
2
  import { readdir, stat } from "node:fs/promises";
3
- import { FileMetaDataLoader } from "@metaobjectsdev/metadata/core";
4
3
  import {
4
+ MetaDataLoader,
5
5
  TypeRegistry,
6
6
  registerCoreTypes,
7
7
  type MetaRoot,
8
8
  } from "@metaobjectsdev/metadata";
9
+ import { FileSource } from "@metaobjectsdev/metadata/core";
9
10
  import { registerForgeTypes } from "./forge-types.js";
10
11
  import { discoverWorkspace, resolveExtendsOrder } from "./workspace.js";
11
12
 
@@ -48,8 +49,8 @@ export async function loadMemory(repoRoot: string): Promise<MetaRoot> {
48
49
  // against the merged tree afterwards) — dep packages first, current last.
49
50
  const paths = await collectMetadataPaths(repoRoot);
50
51
 
51
- const loader = new FileMetaDataLoader({ registry });
52
- const result = await loader.loadFiles(paths);
52
+ const loader = new MetaDataLoader({ registry });
53
+ const result = await loader.load(paths.map((p) => new FileSource(p)));
53
54
 
54
55
  if (result.errors.length > 0) {
55
56
  const first = result.errors[0]!;
@@ -73,23 +74,27 @@ async function collectMetadataPaths(repoRoot: string): Promise<string[]> {
73
74
  for (const pkg of ordered) {
74
75
  // Each workspace package's metadata lives alongside its .meta/ dir
75
76
  const pkgRoot = join(pkg.metaDir, "..");
76
- paths.push(...(await listJsonFiles(join(pkgRoot, DEFAULT_METADATA_DIR))));
77
+ paths.push(...(await listMetadataFiles(join(pkgRoot, DEFAULT_METADATA_DIR))));
77
78
  }
78
79
  return paths;
79
80
  }
80
81
  }
81
82
 
82
83
  // Single-package path: scan metaobjects/ at the project root
83
- return listJsonFiles(join(repoRoot, DEFAULT_METADATA_DIR));
84
+ return listMetadataFiles(join(repoRoot, DEFAULT_METADATA_DIR));
84
85
  }
85
86
 
86
87
  /**
87
- * Recursively list *.json files under a directory, excluding _pending/ at
88
- * any level. Subdirectories (e.g. projections/) are walked depth-first.
89
- * Files within a directory are sorted alphabetically for deterministic load
90
- * order; subdirectories are visited after files at the same level.
88
+ * Recursively list metadata files (*.json, *.yaml, *.yml) under a directory,
89
+ * excluding _pending/ at any level. Subdirectories (e.g. projections/) are
90
+ * walked depth-first. Files within a directory are sorted alphabetically for
91
+ * deterministic load order; subdirectories are visited after files at the
92
+ * same level.
93
+ *
94
+ * Format selection (parsing) happens downstream in `FileSource` from
95
+ * `@metaobjectsdev/metadata`, which infers the parser from file extension.
91
96
  */
92
- async function listJsonFiles(dir: string): Promise<string[]> {
97
+ async function listMetadataFiles(dir: string): Promise<string[]> {
93
98
  let entries: string[];
94
99
  try {
95
100
  entries = await readdir(dir);
@@ -104,13 +109,17 @@ async function listJsonFiles(dir: string): Promise<string[]> {
104
109
  const s = await stat(full);
105
110
  if (s.isDirectory()) {
106
111
  subdirs.push(full);
107
- } else if (s.isFile() && entry.endsWith(".json")) {
112
+ } else if (s.isFile() && isMetadataFile(entry)) {
108
113
  paths.push(full);
109
114
  }
110
115
  }
111
116
  // Recurse into subdirectories after collecting files at this level
112
117
  for (const sub of subdirs.sort()) {
113
- paths.push(...(await listJsonFiles(sub)));
118
+ paths.push(...(await listMetadataFiles(sub)));
114
119
  }
115
120
  return paths;
116
121
  }
122
+
123
+ function isMetadataFile(name: string): boolean {
124
+ return name.endsWith(".json") || name.endsWith(".yaml") || name.endsWith(".yml");
125
+ }