From bc0fc40831ccff092811a9c4363f307b3095ec51 Mon Sep 17 00:00:00 2001 From: RissRIce Date: Thu, 30 Jul 2026 16:35:29 -0600 Subject: [PATCH] fix(openontology): resolve manifest directories on Windows --- packages/openontology/src/package.ts | 4 ++-- packages/openontology/src/validate.test.ts | 7 +++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/packages/openontology/src/package.ts b/packages/openontology/src/package.ts index cbd4328..3de6260 100644 --- a/packages/openontology/src/package.ts +++ b/packages/openontology/src/package.ts @@ -1,5 +1,5 @@ import { existsSync, readFileSync } from "node:fs"; -import { isAbsolute, join, resolve } from "node:path"; +import { dirname, isAbsolute, join, resolve } from "node:path"; import { parse as parseYaml } from "yaml"; import { canonicalObject, digest, packageDigest } from "./canonical.js"; import { OPENONTOLOGY_VERSION } from "./types.js"; @@ -75,7 +75,7 @@ function loadFromDir(dirOrFile: string): LoadedPackage { ? base : findManifest(base); - const dir = manifestPath.slice(0, manifestPath.lastIndexOf("/")) || "."; + const dir = dirname(manifestPath); const manifest = canonicalObject(parseFile(manifestPath) as Manifest); if (manifest?.kind !== "OntologyPackage") { diff --git a/packages/openontology/src/validate.test.ts b/packages/openontology/src/validate.test.ts index 95b5d32..e3c3cbc 100644 --- a/packages/openontology/src/validate.test.ts +++ b/packages/openontology/src/validate.test.ts @@ -48,6 +48,13 @@ describe("init + validate", () => { expect(pkg.files.map((f) => f.path)).toContain("data/claims.ndjson"); }); + it("loads a package from an explicit manifest path", () => { + const { dir } = scaffold(); + const pkg = loadOntologyPackage(join(dir, "openontology.yaml")); + expect(pkg.dir).toBe(dir); + expect(pkg.manifest.id).toBe("test-ecosystem"); + }); + it("builds a deterministic digest that survives a rebuild", () => { const { pkg } = scaffold(); const first = buildOntologyPackage(pkg);