From fb914de83c6ff6eb4bdbe0a692c8aa2b4513e815 Mon Sep 17 00:00:00 2001 From: Shuhei Tanaka Date: Fri, 13 Mar 2026 13:29:42 +0900 Subject: [PATCH] fix: add .js extensions to relative imports for ESM compatibility TypeScript compiler preserves bare module specifiers in compiled output, which breaks ESM resolution in Node.js environments (Next.js, Mastra). Add explicit .js extensions to all relative imports so the compiled dist/ output works correctly as an ES module package. Co-Authored-By: Claude Opus 4.6 --- .changeset/fix-esm-extensions.md | 5 +++++ scripts/bundle-content.ts | 4 ++-- src/content/index.ts | 6 +++--- src/index.ts | 4 ++-- 4 files changed, 12 insertions(+), 7 deletions(-) create mode 100644 .changeset/fix-esm-extensions.md diff --git a/.changeset/fix-esm-extensions.md b/.changeset/fix-esm-extensions.md new file mode 100644 index 0000000..32694db --- /dev/null +++ b/.changeset/fix-esm-extensions.md @@ -0,0 +1,5 @@ +--- +"@beaconlabs-io/evidence": patch +--- + +Add .js file extensions to relative imports for proper ESM module resolution diff --git a/scripts/bundle-content.ts b/scripts/bundle-content.ts index a9731ca..05fc4b4 100644 --- a/scripts/bundle-content.ts +++ b/scripts/bundle-content.ts @@ -98,7 +98,7 @@ function bundleEvidence(): ValidationError[] { }); const output = `// Auto-generated by bundle-content.ts - DO NOT EDIT -import type { BundledEvidence } from "../types"; +import type { BundledEvidence } from "../types.js"; export const evidence: Record = ${JSON.stringify(evidence, null, 2)}; @@ -181,7 +181,7 @@ function bundleDeployments(): ValidationError[] { }); const output = `// Auto-generated by bundle-content.ts - DO NOT EDIT -import type { EvidenceDeployment } from "../types"; +import type { EvidenceDeployment } from "../types.js"; export const deployments: Record = ${JSON.stringify(deployments, null, 2)}; diff --git a/src/content/index.ts b/src/content/index.ts index 146592f..e048fc0 100644 --- a/src/content/index.ts +++ b/src/content/index.ts @@ -3,15 +3,15 @@ import type { EvidenceFrontmatter, EvidenceDeployment, BundledEvidence, -} from "../types"; +} from "../types.js"; // These will be generated by the build script // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore - Generated at build time -import { evidence, evidenceSlugs } from "./evidence"; +import { evidence, evidenceSlugs } from "./evidence.js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore - Generated at build time -import { deployments, deploymentSlugs } from "./deployments"; +import { deployments, deploymentSlugs } from "./deployments.js"; export { evidence, evidenceSlugs, deployments, deploymentSlugs }; diff --git a/src/index.ts b/src/index.ts index 05d781c..3a08cb1 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,5 +1,5 @@ // Re-export all types -export * from "./types"; +export * from "./types.js"; // Re-export content accessors -export * from "./content"; +export * from "./content/index.js";