diff --git a/.changeset/fix-mjs-and-schema-ordering.md b/.changeset/fix-mjs-and-schema-ordering.md new file mode 100644 index 0000000..1c735ff --- /dev/null +++ b/.changeset/fix-mjs-and-schema-ordering.md @@ -0,0 +1,10 @@ +--- +"@emisso/accounting-api": patch +"@emisso/accounting": patch +--- + +Fix package `exports` and resolve circular dependency in Drizzle schema. + +- `@emisso/accounting-api`: `exports` field referenced `./dist/index.mjs` and `./dist/adapters/next.mjs` which tsup never emits (it produces `.js` for ESM and `.cjs` for CJS). Fixed to point to the actual emitted files. Also swapped `main` to `./dist/index.cjs` for CommonJS consumers. +- `@emisso/accounting-api`: moved `accountingSchema` (the `pgSchema("accounting")` instance) to a dedicated `_schema.ts` file. Previously it was defined in `index.ts`, which re-exported all tables; the tables in turn imported `accountingSchema` from `./index.js`, creating a circular ESM dependency that left `accountingSchema` undefined at table-evaluation time. +- `@emisso/accounting`: patch re-publish to ship the correct `exports` field that was already fixed in the working tree but never published. diff --git a/packages/api/package.json b/packages/api/package.json index c40d327..ba3b693 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -3,19 +3,19 @@ "version": "0.2.0", "description": "Full API layer — routes, services, and database for @emisso/accounting", "type": "module", - "main": "./dist/index.js", - "module": "./dist/index.mjs", + "main": "./dist/index.cjs", + "module": "./dist/index.js", "types": "./dist/index.d.ts", "exports": { ".": { "types": "./dist/index.d.ts", - "import": "./dist/index.mjs", - "require": "./dist/index.js" + "import": "./dist/index.js", + "require": "./dist/index.cjs" }, "./next": { "types": "./dist/adapters/next.d.ts", - "import": "./dist/adapters/next.mjs", - "require": "./dist/adapters/next.js" + "import": "./dist/adapters/next.js", + "require": "./dist/adapters/next.cjs" } }, "files": [ diff --git a/packages/api/src/db/schema/_schema.ts b/packages/api/src/db/schema/_schema.ts new file mode 100644 index 0000000..8381d9f --- /dev/null +++ b/packages/api/src/db/schema/_schema.ts @@ -0,0 +1,3 @@ +import { pgSchema } from "drizzle-orm/pg-core"; + +export const accountingSchema = pgSchema("accounting"); diff --git a/packages/api/src/db/schema/accounts.ts b/packages/api/src/db/schema/accounts.ts index 51fda29..f2b797f 100644 --- a/packages/api/src/db/schema/accounts.ts +++ b/packages/api/src/db/schema/accounts.ts @@ -1,4 +1,4 @@ -import { accountingSchema } from "./index.js"; +import { accountingSchema } from "./_schema.js"; import { uuid, text, timestamp, unique } from "drizzle-orm/pg-core"; export const accounts = accountingSchema.table("accounts", { diff --git a/packages/api/src/db/schema/entry-lines.ts b/packages/api/src/db/schema/entry-lines.ts index f8e2515..8c28fd9 100644 --- a/packages/api/src/db/schema/entry-lines.ts +++ b/packages/api/src/db/schema/entry-lines.ts @@ -1,4 +1,4 @@ -import { accountingSchema } from "./index.js"; +import { accountingSchema } from "./_schema.js"; import { uuid, text, numeric } from "drizzle-orm/pg-core"; import { journalEntries } from "./journal-entries.js"; diff --git a/packages/api/src/db/schema/index.ts b/packages/api/src/db/schema/index.ts index 473f9be..0117322 100644 --- a/packages/api/src/db/schema/index.ts +++ b/packages/api/src/db/schema/index.ts @@ -3,9 +3,7 @@ * All tables live in the PostgreSQL `accounting` schema. */ -import { pgSchema } from "drizzle-orm/pg-core"; - -export const accountingSchema = pgSchema("accounting"); +export { accountingSchema } from "./_schema.js"; export { accounts } from "./accounts.js"; export type { AccountRow, NewAccountRow } from "./accounts.js"; diff --git a/packages/api/src/db/schema/journal-entries.ts b/packages/api/src/db/schema/journal-entries.ts index 2225dbc..1ffee24 100644 --- a/packages/api/src/db/schema/journal-entries.ts +++ b/packages/api/src/db/schema/journal-entries.ts @@ -1,4 +1,4 @@ -import { accountingSchema } from "./index.js"; +import { accountingSchema } from "./_schema.js"; import { uuid, text, date, integer, timestamp, jsonb } from "drizzle-orm/pg-core"; export const journalEntries = accountingSchema.table("journal_entries", { diff --git a/packages/api/src/db/schema/periods.ts b/packages/api/src/db/schema/periods.ts index 6435e00..7563301 100644 --- a/packages/api/src/db/schema/periods.ts +++ b/packages/api/src/db/schema/periods.ts @@ -1,4 +1,4 @@ -import { accountingSchema } from "./index.js"; +import { accountingSchema } from "./_schema.js"; import { uuid, integer, text, timestamp, unique } from "drizzle-orm/pg-core"; export const periods = accountingSchema.table("periods", {