@c9up/atlas 0.1.8 → 0.1.9

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.
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -1 +1 @@
1
- {"version":3,"file":"BaseRepository.d.ts","sourceRoot":"","sources":["../src/BaseRepository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseRepository.d.ts","sourceRoot":"","sources":["../src/BaseRepository.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ import { getColumnMetadata, getDateColumnConfig, getEntityMetadata, getPrimaryKe
9
9
  import { fireHooks } from "./decorators/hooks.js";
10
10
  import { AtlasError, EntityNotFoundError } from "./errors.js";
11
11
  import { ModelQuery, runWithAtlasInternalBypass } from "./ModelQuery.js";
12
- import { compileStatementNative, getAtlasDialect, } from "./query/native.js";
12
+ import { compileStatementNative, getAtlasDialect, registerColumnCast, registerTableCasts, } from "./query/native.js";
13
13
  import { camelToSnake, snakeToCamel } from "./utils/casing.js";
14
14
  /**
15
15
  * Coerce a `lastInsertRowid` to a JS number when it fits, leaving large
@@ -179,6 +179,40 @@ export class BaseRepository {
179
179
  // Postgres cast hints: sqlx binds JS strings as `text`, which Postgres
180
180
  // won't coerce to timestamp/uuid/date. See `computeCastTypes`.
181
181
  this.#castTypes = computeCastTypes(entityClass);
182
+ // Publish this table's casts to the compile-time registry so EVERY
183
+ // statement on this table — including the fluent `ModelQuery` and relation
184
+ // loaders, which never receive `#castTypes` directly — gets `$N::uuid`
185
+ // casts on its params. Without this, `repo.query().where('id', uuid)` and
186
+ // relation WHEREs fail on Postgres with `operator does not exist: uuid = text`.
187
+ registerTableCasts(this.#tableName, this.#castTypes);
188
+ // Publish relation FK column casts to the (merging) registry so eager AND
189
+ // lazy relation WHEREs on a uuid FK get `::uuid` even when the FK column
190
+ // wasn't explicitly `@Column({ type })`-typed. A FK references a typed PK
191
+ // whose logical type we know. (m2m FKs live on the pivot table — handled
192
+ // separately via `pivotKeyCasts`.)
193
+ for (const rel of getRelationMetadata(entityClass)) {
194
+ if (rel.type === "manyToMany")
195
+ continue;
196
+ const related = rel.target();
197
+ if (rel.type === "belongsTo") {
198
+ // FK lives on THIS table, references the related (owner) PK.
199
+ const fk = rel.foreignKey ?? `${camelToSnake(related.name)}_id`;
200
+ const ownerKey = rel.ownerKey ?? getPrimaryKey(related) ?? "id";
201
+ const cast = computeCastTypes(related)[camelToSnake(ownerKey)];
202
+ if (cast)
203
+ registerColumnCast(this.#tableName, fk, cast);
204
+ }
205
+ else {
206
+ // hasOne / hasMany: FK lives on the RELATED table, references THIS PK.
207
+ const fk = rel.foreignKey ?? `${camelToSnake(entityClass.name)}_id`;
208
+ const localKey = rel.localKey ?? this.#primaryKey;
209
+ const cast = this.#castTypes[camelToSnake(localKey)];
210
+ const relatedMeta = getEntityMetadata(related);
211
+ if (cast && relatedMeta) {
212
+ registerColumnCast(relatedMeta.tableName, fk, cast);
213
+ }
214
+ }
215
+ }
182
216
  }
183
217
  // ─── Column validation ────────────────────────────────────
184
218
  /** Resolve a column name to snake_case. Throws on invalid column. */
@@ -547,17 +581,32 @@ export class BaseRepository {
547
581
  }
548
582
  #applyConsume(propertyKey, value) {
549
583
  const consume = this.#columnConsumes.get(propertyKey);
550
- if (!consume)
551
- return value;
552
- let result;
553
- try {
554
- result = consume(value);
584
+ if (consume) {
585
+ let result;
586
+ try {
587
+ result = consume(value);
588
+ }
589
+ catch (err) {
590
+ throw wrapAdapterError("consume", propertyKey, err);
591
+ }
592
+ assertNotPromise("consume", propertyKey, result);
593
+ return result;
555
594
  }
556
- catch (err) {
557
- throw wrapAdapterError("consume", propertyKey, err);
595
+ // No explicit `@Column({ consume })`: a `@column.date()` / `@column.dateTime()`
596
+ // column hydrates its DB value (an ISO string from the Rust decode) into a
597
+ // JS `Date`, so `.getTime()` / date arithmetic work on read. Mirrors Adonis
598
+ // Lucid hydrating date columns to a Luxon `DateTime` — atlas standardises on
599
+ // the native `Date` (no Luxon dependency). An unparseable string is left
600
+ // untouched rather than turned into `Invalid Date`.
601
+ if (this.#dateColumns[propertyKey] &&
602
+ value != null &&
603
+ !(value instanceof Date) &&
604
+ (typeof value === "string" || typeof value === "number")) {
605
+ const d = new Date(value);
606
+ if (!Number.isNaN(d.getTime()))
607
+ return d;
558
608
  }
559
- assertNotPromise("consume", propertyKey, result);
560
- return result;
609
+ return value;
561
610
  }
562
611
  #plainToRowPairs(obj) {
563
612
  const pairs = [];
@@ -1073,13 +1122,20 @@ export class BaseRepository {
1073
1122
  }
1074
1123
  return dialect === "mysql" ? `\`${name}\`` : `"${name}"`;
1075
1124
  };
1125
+ // The bound `?` carries the parent PK type (often uuid). A raw `?`
1126
+ // can't be cast by the structured `casts` mechanism, so emit the
1127
+ // `::uuid` inline — `whereRaw` rewrites `?`→`$N`, yielding `$N::uuid`.
1128
+ // Postgres-only; sqlite/mysql coerce. Without it: `pivotFk = $N` is
1129
+ // `uuid = text`.
1130
+ const parentPkCast = this.#castTypes[camelToSnake(this.#primaryKey)];
1131
+ const ph = dialect === "postgres" && parentPkCast ? `?::${parentPkCast}` : "?";
1076
1132
  // EXISTS (SELECT 1 FROM pivot WHERE pivot.pivotFk = ? AND pivot.pivotOther = related.pk)
1077
1133
  // Framework-internal raw fragment (identifiers already validated by
1078
1134
  // the `quote` helper above) — bypass strict mode so this path still
1079
1135
  // works when the user enables `setAtlasStrictMode(true)` on their app.
1080
1136
  runWithAtlasInternalBypass(() => {
1081
1137
  q.whereRaw(`EXISTS (SELECT 1 FROM ${quote(pivot.pivotTable)} ` +
1082
- `WHERE ${quote(pivot.pivotTable)}.${quote(pivotFk)} = ? ` +
1138
+ `WHERE ${quote(pivot.pivotTable)}.${quote(pivotFk)} = ${ph} ` +
1083
1139
  `AND ${quote(pivot.pivotTable)}.${quote(pivotOther)} = ${quote(relatedTable)}.${quote(relatedPk)})`, [parentIdValue]);
1084
1140
  });
1085
1141
  }
@@ -1132,6 +1188,18 @@ export class BaseRepository {
1132
1188
  const tsConfig = pivot.pivotTimestamps;
1133
1189
  const pivotAdapters = pivot.pivotColumnAdapters;
1134
1190
  const dialect = this.#dialect;
1191
+ // Postgres cast hints for the two pivot FK columns — they reference the
1192
+ // parent / related PK types (often uuid). The pivot table is NOT an
1193
+ // entity table, so the compile-time cast registry never covers it;
1194
+ // every pivot statement (sync's currentIds SELECT, detach DELETE, attach
1195
+ // INSERT) must carry these explicitly, else `pivotFk = $1` is `uuid = text`.
1196
+ const pivotKeyCasts = {};
1197
+ const parentPkCast = this.#castTypes[camelToSnake(this.#primaryKey)];
1198
+ if (parentPkCast)
1199
+ pivotKeyCasts[pivotFk] = parentPkCast;
1200
+ const relatedPkCast = computeCastTypes(relatedClass)[camelToSnake(getPrimaryKey(relatedClass) ?? "id")];
1201
+ if (relatedPkCast)
1202
+ pivotKeyCasts[pivotOther] = relatedPkCast;
1135
1203
  /**
1136
1204
  * Resolve pivot timestamp column names from the decorator config.
1137
1205
  *
@@ -1205,6 +1273,7 @@ export class BaseRepository {
1205
1273
  unions: [],
1206
1274
  joins: [],
1207
1275
  lockMode: null,
1276
+ casts: pivotKeyCasts,
1208
1277
  };
1209
1278
  const compiled = compileStatementNative(selectSpec, dialect);
1210
1279
  const rows = await db.query(compiled.statements[0], compiled.params);
@@ -1230,6 +1299,7 @@ export class BaseRepository {
1230
1299
  table: pivotTable,
1231
1300
  wheres,
1232
1301
  returning: [],
1302
+ casts: pivotKeyCasts,
1233
1303
  };
1234
1304
  const compiled = compileStatementNative(spec, dialect);
1235
1305
  await db.execute(compiled.statements[0], compiled.params);
@@ -1288,16 +1358,10 @@ export class BaseRepository {
1288
1358
  pairs.push([k, v]);
1289
1359
  return pairs;
1290
1360
  });
1291
- // Postgres casts for the pivot row: the two FK columns reference the
1292
- // parent / related PK types (often uuid), and pivot timestamps are
1293
- // bound strings — all need `$N::<type>` on Postgres.
1294
- const pivotCasts = {};
1295
- const parentPkCast = this.#castTypes[camelToSnake(this.#primaryKey)];
1296
- if (parentPkCast)
1297
- pivotCasts[pivotFk] = parentPkCast;
1298
- const relatedPkCast = computeCastTypes(relatedClass)[camelToSnake(getPrimaryKey(relatedClass) ?? "id")];
1299
- if (relatedPkCast)
1300
- pivotCasts[pivotOther] = relatedPkCast;
1361
+ // Postgres casts for the pivot row: the two FK columns (parent /
1362
+ // related PK types, often uuid) reuse `pivotKeyCasts`; pivot
1363
+ // timestamps are bound strings — all need `$N::<type>` on Postgres.
1364
+ const pivotCasts = { ...pivotKeyCasts };
1301
1365
  for (const k of Object.keys(ts))
1302
1366
  pivotCasts[k] = "timestamp";
1303
1367
  const spec = {
@@ -1 +1 @@
1
- {"version":3,"file":"BaseRepository.js","sourceRoot":"","sources":["../src/BaseRepository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseRepository.js","sourceRoot":"","sources":["../src/BaseRepository.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@
6
6
  import "reflect-metadata";
7
7
  /** Auto-generation strategy for `@PrimaryKey({ generated: ... })`. */
8
8
  export type PrimaryKeyGenerator = "uuid";
9
- export interface PrimaryKeyOptions {
9
+ export interface PrimaryKeyOptions extends ColumnOptions {
10
10
  /**
11
11
  * Auto-generate the primary-key value on INSERT when the entity has none
12
12
  * (undefined). `'uuid'` produces an RFC-4122 v4 string via `crypto.randomUUID()`.
@@ -1 +1 @@
1
- {"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../src/decorators/entity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../src/decorators/entity.ts"],"names":[],"mappings":"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"}
@@ -129,8 +129,16 @@ export function PrimaryKey(options) {
129
129
  if (options?.generated) {
130
130
  Reflect.defineMetadata(PRIMARY_KEY_GEN, options.generated, target.constructor);
131
131
  }
132
- // Also register as a column
133
- Column()(target, propertyKey);
132
+ // Register as a column, PROPAGATING the options so a typed PK records its
133
+ // SQL type — needed for the `::uuid` cast in WHERE/INSERT (otherwise a
134
+ // uuid PK compared to a bound string fails `operator does not exist:
135
+ // uuid = text`). A uuid generator implies a uuid column type unless the
136
+ // caller set one explicitly.
137
+ const columnOptions = { ...options };
138
+ if (columnOptions.type === undefined && options?.generated === "uuid") {
139
+ columnOptions.type = "uuid";
140
+ }
141
+ Column(columnOptions)(target, propertyKey);
134
142
  };
135
143
  }
136
144
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"entity.js","sourceRoot":"","sources":["../../src/decorators/entity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entity.js","sourceRoot":"","sources":["../../src/decorators/entity.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,18 @@ export interface CompiledStatement {
10
10
  statements: string[];
11
11
  params: unknown[];
12
12
  }
13
+ /**
14
+ * Register an entity table's cast map (MERGES — a FK cast another entity already
15
+ * published for this table via `registerColumnCast` survives, regardless of
16
+ * which repository is constructed first).
17
+ */
18
+ export declare function registerTableCasts(table: string, casts: Record<string, string>): void;
19
+ /**
20
+ * Register a single column's cast on a table. Used by `BaseRepository` to publish
21
+ * relation FK column types (a FK references a typed PK) onto the OTHER table, so
22
+ * eager/lazy relation WHEREs on an untyped uuid FK still get `::uuid`.
23
+ */
24
+ export declare function registerColumnCast(table: string, column: string, type: string): void;
13
25
  /**
14
26
  * Compile any statement (SELECT/INSERT/UPDATE/DELETE/DDL) via the Rust compiler.
15
27
  * `spec` is a tagged object: `{ kind: 'select' | 'insert' | ..., ... }`.
@@ -1 +1 @@
1
- {"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../src/query/native.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAoCH,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;AAK3D,wBAAgB,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAE3D;AAED,wBAAgB,eAAe,IAAI,YAAY,CAE9C;AAED,MAAM,WAAW,iBAAiB;IACjC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,EAAE,OAAO,EAAE,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACrC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,YAA6B,GACpC,iBAAiB,CAQnB"}
1
+ {"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../src/query/native.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAoCH,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;AAK3D,wBAAgB,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAE3D;AAED,wBAAgB,eAAe,IAAI,YAAY,CAE9C;AAED,MAAM,WAAW,iBAAiB;IACjC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,EAAE,OAAO,EAAE,CAAC;CAClB;AAaD;;;;GAIG;AACH,wBAAgB,kBAAkB,CACjC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC3B,IAAI,CAIN;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CACjC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GACV,IAAI,CAIN;AAuCD;;;GAGG;AACH,wBAAgB,sBAAsB,CACrC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,YAA6B,GACpC,iBAAiB,CAWnB"}
@@ -35,6 +35,72 @@ export function setAtlasDialect(dialect) {
35
35
  export function getAtlasDialect() {
36
36
  return defaultDialect;
37
37
  }
38
+ /**
39
+ * Per-table Postgres cast hints (snake column → logical type, e.g. `uuid`).
40
+ * Populated once per entity by `BaseRepository` and consulted at the single
41
+ * compile chokepoint below, so EVERY statement built anywhere (the fluent
42
+ * `ModelQuery`, relation loaders, direct repo methods) gets `$N::uuid` casts
43
+ * on its WHERE/SET/value params without threading the cast map through every
44
+ * call site. Postgres-only at the SQL level; the Rust compiler emits casts
45
+ * only on the postgres dialect.
46
+ */
47
+ const castRegistry = new Map();
48
+ /**
49
+ * Register an entity table's cast map (MERGES — a FK cast another entity already
50
+ * published for this table via `registerColumnCast` survives, regardless of
51
+ * which repository is constructed first).
52
+ */
53
+ export function registerTableCasts(table, casts) {
54
+ if (Object.keys(casts).length === 0)
55
+ return;
56
+ const existing = castRegistry.get(table);
57
+ castRegistry.set(table, existing ? { ...existing, ...casts } : { ...casts });
58
+ }
59
+ /**
60
+ * Register a single column's cast on a table. Used by `BaseRepository` to publish
61
+ * relation FK column types (a FK references a typed PK) onto the OTHER table, so
62
+ * eager/lazy relation WHEREs on an untyped uuid FK still get `::uuid`.
63
+ */
64
+ export function registerColumnCast(table, column, type) {
65
+ const existing = castRegistry.get(table);
66
+ if (existing)
67
+ existing[column] = type;
68
+ else
69
+ castRegistry.set(table, { [column]: type });
70
+ }
71
+ const CAST_BEARING_KINDS = new Set([
72
+ "select",
73
+ "insert",
74
+ "update",
75
+ "delete",
76
+ "upsert",
77
+ ]);
78
+ /**
79
+ * Inject the registered cast map for a statement's table. A spec that already
80
+ * carries explicit `casts` for a NON-registered table (e.g. an m2m pivot insert
81
+ * with bespoke `pivotCasts`) is left untouched — only entity tables are in the
82
+ * registry, and their explicit casts are identical to the registered map.
83
+ */
84
+ function isStringRecord(v) {
85
+ return v !== null && typeof v === "object" && !Array.isArray(v);
86
+ }
87
+ function withRegistryCasts(spec) {
88
+ if (!("table" in spec) || !("kind" in spec))
89
+ return spec;
90
+ const { table, kind } = spec;
91
+ if (typeof table !== "string" ||
92
+ typeof kind !== "string" ||
93
+ !CAST_BEARING_KINDS.has(kind)) {
94
+ return spec;
95
+ }
96
+ const registered = castRegistry.get(table);
97
+ if (!registered)
98
+ return spec;
99
+ // Registered casts are the base; any explicit per-statement casts (e.g. a
100
+ // relation loader hinting a FK column the related entity didn't type) win.
101
+ const explicit = "casts" in spec && isStringRecord(spec.casts) ? spec.casts : {};
102
+ return { ...spec, casts: { ...registered, ...explicit } };
103
+ }
38
104
  /**
39
105
  * Compile any statement (SELECT/INSERT/UPDATE/DELETE/DDL) via the Rust compiler.
40
106
  * `spec` is a tagged object: `{ kind: 'select' | 'insert' | ..., ... }`.
@@ -43,7 +109,7 @@ export function compileStatementNative(spec, dialect = defaultDialect) {
43
109
  if (!native) {
44
110
  throw new Error(`[ATLAS_NAPI_NOT_FOUND] Rust query compiler not available: ${loadError ?? "binary not found"}`);
45
111
  }
46
- const json = native.compileStatement(JSON.stringify(spec), dialect);
112
+ const json = native.compileStatement(JSON.stringify(withRegistryCasts(spec)), dialect);
47
113
  return JSON.parse(json);
48
114
  }
49
115
  //# sourceMappingURL=native.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"native.js","sourceRoot":"","sources":["../../src/query/native.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChD,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE3D,MAAM,WAAW,GAA2B;IAC3C,WAAW,EAAE,eAAe;IAC5B,YAAY,EAAE,YAAY;IAC1B,cAAc,EAAE,cAAc;IAC9B,WAAW,EAAE,gBAAgB;IAC7B,aAAa,EAAE,iBAAiB;CAChC,CAAC;AAOF,IAAI,MAAiC,CAAC;AAEtC,IAAI,SAAkB,CAAC;AAEvB,IAAI,CAAC;IACJ,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,QAAQ,IAAI,IAAI,EAAE,CAAC,CAAC;IAClD,IAAI,MAAM,EAAE,CAAC;QACZ,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,MAAM,OAAO,CAAC,CAAC,CAAC;IACnE,CAAC;AACF,CAAC;AAAC,OAAO,CAAC,EAAE,CAAC;IACZ,SAAS,GAAG,CAAC,CAAC;AACf,CAAC;AAID,kEAAkE;AAClE,IAAI,cAAc,GAAiB,QAAQ,CAAC;AAE5C,MAAM,UAAU,eAAe,CAAC,OAAqB;IACpD,cAAc,GAAG,OAAO,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,eAAe;IAC9B,OAAO,cAAc,CAAC;AACvB,CAAC;AAOD;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CACrC,IAAY,EACZ,UAAwB,cAAc;IAEtC,IAAI,CAAC,MAAM,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACd,6DAA6D,SAAS,IAAI,kBAAkB,EAAE,CAC9F,CAAC;IACH,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;IACpE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"native.js","sourceRoot":"","sources":["../../src/query/native.ts"],"names":[],"mappings":"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"}
Binary file
Binary file
Binary file
Binary file
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@c9up/atlas",
3
- "version": "0.1.8",
3
+ "version": "0.1.9",
4
4
  "description": "Atlas — Data Mapper ORM for the Ream framework",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -33,6 +33,8 @@ import {
33
33
  type AtlasDialect,
34
34
  compileStatementNative,
35
35
  getAtlasDialect,
36
+ registerColumnCast,
37
+ registerTableCasts,
36
38
  } from "./query/native.js";
37
39
  import { camelToSnake, snakeToCamel } from "./utils/casing.js";
38
40
 
@@ -265,6 +267,37 @@ export class BaseRepository<T extends BaseEntity> {
265
267
  // Postgres cast hints: sqlx binds JS strings as `text`, which Postgres
266
268
  // won't coerce to timestamp/uuid/date. See `computeCastTypes`.
267
269
  this.#castTypes = computeCastTypes(entityClass);
270
+ // Publish this table's casts to the compile-time registry so EVERY
271
+ // statement on this table — including the fluent `ModelQuery` and relation
272
+ // loaders, which never receive `#castTypes` directly — gets `$N::uuid`
273
+ // casts on its params. Without this, `repo.query().where('id', uuid)` and
274
+ // relation WHEREs fail on Postgres with `operator does not exist: uuid = text`.
275
+ registerTableCasts(this.#tableName, this.#castTypes);
276
+ // Publish relation FK column casts to the (merging) registry so eager AND
277
+ // lazy relation WHEREs on a uuid FK get `::uuid` even when the FK column
278
+ // wasn't explicitly `@Column({ type })`-typed. A FK references a typed PK
279
+ // whose logical type we know. (m2m FKs live on the pivot table — handled
280
+ // separately via `pivotKeyCasts`.)
281
+ for (const rel of getRelationMetadata(entityClass)) {
282
+ if (rel.type === "manyToMany") continue;
283
+ const related = rel.target();
284
+ if (rel.type === "belongsTo") {
285
+ // FK lives on THIS table, references the related (owner) PK.
286
+ const fk = rel.foreignKey ?? `${camelToSnake(related.name)}_id`;
287
+ const ownerKey = rel.ownerKey ?? getPrimaryKey(related) ?? "id";
288
+ const cast = computeCastTypes(related)[camelToSnake(ownerKey)];
289
+ if (cast) registerColumnCast(this.#tableName, fk, cast);
290
+ } else {
291
+ // hasOne / hasMany: FK lives on the RELATED table, references THIS PK.
292
+ const fk = rel.foreignKey ?? `${camelToSnake(entityClass.name)}_id`;
293
+ const localKey = rel.localKey ?? this.#primaryKey;
294
+ const cast = this.#castTypes[camelToSnake(localKey)];
295
+ const relatedMeta = getEntityMetadata(related);
296
+ if (cast && relatedMeta) {
297
+ registerColumnCast(relatedMeta.tableName, fk, cast);
298
+ }
299
+ }
300
+ }
268
301
  }
269
302
 
270
303
  // ─── Column validation ────────────────────────────────────
@@ -680,15 +713,32 @@ export class BaseRepository<T extends BaseEntity> {
680
713
 
681
714
  #applyConsume(propertyKey: string, value: unknown): unknown {
682
715
  const consume = this.#columnConsumes.get(propertyKey);
683
- if (!consume) return value;
684
- let result: unknown;
685
- try {
686
- result = consume(value);
687
- } catch (err) {
688
- throw wrapAdapterError("consume", propertyKey, err);
716
+ if (consume) {
717
+ let result: unknown;
718
+ try {
719
+ result = consume(value);
720
+ } catch (err) {
721
+ throw wrapAdapterError("consume", propertyKey, err);
722
+ }
723
+ assertNotPromise("consume", propertyKey, result);
724
+ return result;
689
725
  }
690
- assertNotPromise("consume", propertyKey, result);
691
- return result;
726
+ // No explicit `@Column({ consume })`: a `@column.date()` / `@column.dateTime()`
727
+ // column hydrates its DB value (an ISO string from the Rust decode) into a
728
+ // JS `Date`, so `.getTime()` / date arithmetic work on read. Mirrors Adonis
729
+ // Lucid hydrating date columns to a Luxon `DateTime` — atlas standardises on
730
+ // the native `Date` (no Luxon dependency). An unparseable string is left
731
+ // untouched rather than turned into `Invalid Date`.
732
+ if (
733
+ this.#dateColumns[propertyKey] &&
734
+ value != null &&
735
+ !(value instanceof Date) &&
736
+ (typeof value === "string" || typeof value === "number")
737
+ ) {
738
+ const d = new Date(value);
739
+ if (!Number.isNaN(d.getTime())) return d;
740
+ }
741
+ return value;
692
742
  }
693
743
 
694
744
  #plainToRowPairs(obj: Record<string, unknown>): Array<[string, unknown]> {
@@ -1326,6 +1376,14 @@ export class BaseRepository<T extends BaseEntity> {
1326
1376
  }
1327
1377
  return dialect === "mysql" ? `\`${name}\`` : `"${name}"`;
1328
1378
  };
1379
+ // The bound `?` carries the parent PK type (often uuid). A raw `?`
1380
+ // can't be cast by the structured `casts` mechanism, so emit the
1381
+ // `::uuid` inline — `whereRaw` rewrites `?`→`$N`, yielding `$N::uuid`.
1382
+ // Postgres-only; sqlite/mysql coerce. Without it: `pivotFk = $N` is
1383
+ // `uuid = text`.
1384
+ const parentPkCast = this.#castTypes[camelToSnake(this.#primaryKey)];
1385
+ const ph =
1386
+ dialect === "postgres" && parentPkCast ? `?::${parentPkCast}` : "?";
1329
1387
  // EXISTS (SELECT 1 FROM pivot WHERE pivot.pivotFk = ? AND pivot.pivotOther = related.pk)
1330
1388
  // Framework-internal raw fragment (identifiers already validated by
1331
1389
  // the `quote` helper above) — bypass strict mode so this path still
@@ -1333,7 +1391,7 @@ export class BaseRepository<T extends BaseEntity> {
1333
1391
  runWithAtlasInternalBypass(() => {
1334
1392
  q.whereRaw(
1335
1393
  `EXISTS (SELECT 1 FROM ${quote(pivot.pivotTable)} ` +
1336
- `WHERE ${quote(pivot.pivotTable)}.${quote(pivotFk)} = ? ` +
1394
+ `WHERE ${quote(pivot.pivotTable)}.${quote(pivotFk)} = ${ph} ` +
1337
1395
  `AND ${quote(pivot.pivotTable)}.${quote(pivotOther)} = ${quote(relatedTable)}.${quote(relatedPk)})`,
1338
1396
  [parentIdValue],
1339
1397
  );
@@ -1395,6 +1453,20 @@ export class BaseRepository<T extends BaseEntity> {
1395
1453
  const pivotAdapters = pivot.pivotColumnAdapters;
1396
1454
  const dialect = this.#dialect;
1397
1455
 
1456
+ // Postgres cast hints for the two pivot FK columns — they reference the
1457
+ // parent / related PK types (often uuid). The pivot table is NOT an
1458
+ // entity table, so the compile-time cast registry never covers it;
1459
+ // every pivot statement (sync's currentIds SELECT, detach DELETE, attach
1460
+ // INSERT) must carry these explicitly, else `pivotFk = $1` is `uuid = text`.
1461
+ const pivotKeyCasts: Record<string, string> = {};
1462
+ const parentPkCast = this.#castTypes[camelToSnake(this.#primaryKey)];
1463
+ if (parentPkCast) pivotKeyCasts[pivotFk] = parentPkCast;
1464
+ const relatedPkCast =
1465
+ computeCastTypes(relatedClass)[
1466
+ camelToSnake(getPrimaryKey(relatedClass) ?? "id")
1467
+ ];
1468
+ if (relatedPkCast) pivotKeyCasts[pivotOther] = relatedPkCast;
1469
+
1398
1470
  /**
1399
1471
  * Resolve pivot timestamp column names from the decorator config.
1400
1472
  *
@@ -1467,6 +1539,7 @@ export class BaseRepository<T extends BaseEntity> {
1467
1539
  unions: [],
1468
1540
  joins: [],
1469
1541
  lockMode: null,
1542
+ casts: pivotKeyCasts,
1470
1543
  };
1471
1544
  const compiled = compileStatementNative(selectSpec, dialect);
1472
1545
  const rows = await db.query<Record<string, unknown>>(
@@ -1496,6 +1569,7 @@ export class BaseRepository<T extends BaseEntity> {
1496
1569
  table: pivotTable,
1497
1570
  wheres,
1498
1571
  returning: [],
1572
+ casts: pivotKeyCasts,
1499
1573
  };
1500
1574
  const compiled = compileStatementNative(spec, dialect);
1501
1575
  await db.execute(compiled.statements[0], compiled.params);
@@ -1557,17 +1631,10 @@ export class BaseRepository<T extends BaseEntity> {
1557
1631
  for (const [k, v] of Object.entries(ts)) pairs.push([k, v]);
1558
1632
  return pairs;
1559
1633
  });
1560
- // Postgres casts for the pivot row: the two FK columns reference the
1561
- // parent / related PK types (often uuid), and pivot timestamps are
1562
- // bound strings — all need `$N::<type>` on Postgres.
1563
- const pivotCasts: Record<string, string> = {};
1564
- const parentPkCast = this.#castTypes[camelToSnake(this.#primaryKey)];
1565
- if (parentPkCast) pivotCasts[pivotFk] = parentPkCast;
1566
- const relatedPkCast =
1567
- computeCastTypes(relatedClass)[
1568
- camelToSnake(getPrimaryKey(relatedClass) ?? "id")
1569
- ];
1570
- if (relatedPkCast) pivotCasts[pivotOther] = relatedPkCast;
1634
+ // Postgres casts for the pivot row: the two FK columns (parent /
1635
+ // related PK types, often uuid) reuse `pivotKeyCasts`; pivot
1636
+ // timestamps are bound strings — all need `$N::<type>` on Postgres.
1637
+ const pivotCasts: Record<string, string> = { ...pivotKeyCasts };
1571
1638
  for (const k of Object.keys(ts)) pivotCasts[k] = "timestamp";
1572
1639
  const spec = {
1573
1640
  kind: "insert",
@@ -20,7 +20,7 @@ const RELATIONS_KEY = Symbol("atlas:relations");
20
20
  /** Auto-generation strategy for `@PrimaryKey({ generated: ... })`. */
21
21
  export type PrimaryKeyGenerator = "uuid";
22
22
 
23
- export interface PrimaryKeyOptions {
23
+ export interface PrimaryKeyOptions extends ColumnOptions {
24
24
  /**
25
25
  * Auto-generate the primary-key value on INSERT when the entity has none
26
26
  * (undefined). `'uuid'` produces an RFC-4122 v4 string via `crypto.randomUUID()`.
@@ -355,8 +355,16 @@ export function PrimaryKey(options?: PrimaryKeyOptions): PropertyDecorator {
355
355
  target.constructor,
356
356
  );
357
357
  }
358
- // Also register as a column
359
- Column()(target, propertyKey);
358
+ // Register as a column, PROPAGATING the options so a typed PK records its
359
+ // SQL type — needed for the `::uuid` cast in WHERE/INSERT (otherwise a
360
+ // uuid PK compared to a bound string fails `operator does not exist:
361
+ // uuid = text`). A uuid generator implies a uuid column type unless the
362
+ // caller set one explicitly.
363
+ const columnOptions: ColumnOptions = { ...options };
364
+ if (columnOptions.type === undefined && options?.generated === "uuid") {
365
+ columnOptions.type = "uuid";
366
+ }
367
+ Column(columnOptions)(target, propertyKey);
360
368
  };
361
369
  }
362
370
 
@@ -56,6 +56,83 @@ export interface CompiledStatement {
56
56
  params: unknown[];
57
57
  }
58
58
 
59
+ /**
60
+ * Per-table Postgres cast hints (snake column → logical type, e.g. `uuid`).
61
+ * Populated once per entity by `BaseRepository` and consulted at the single
62
+ * compile chokepoint below, so EVERY statement built anywhere (the fluent
63
+ * `ModelQuery`, relation loaders, direct repo methods) gets `$N::uuid` casts
64
+ * on its WHERE/SET/value params without threading the cast map through every
65
+ * call site. Postgres-only at the SQL level; the Rust compiler emits casts
66
+ * only on the postgres dialect.
67
+ */
68
+ const castRegistry = new Map<string, Record<string, string>>();
69
+
70
+ /**
71
+ * Register an entity table's cast map (MERGES — a FK cast another entity already
72
+ * published for this table via `registerColumnCast` survives, regardless of
73
+ * which repository is constructed first).
74
+ */
75
+ export function registerTableCasts(
76
+ table: string,
77
+ casts: Record<string, string>,
78
+ ): void {
79
+ if (Object.keys(casts).length === 0) return;
80
+ const existing = castRegistry.get(table);
81
+ castRegistry.set(table, existing ? { ...existing, ...casts } : { ...casts });
82
+ }
83
+
84
+ /**
85
+ * Register a single column's cast on a table. Used by `BaseRepository` to publish
86
+ * relation FK column types (a FK references a typed PK) onto the OTHER table, so
87
+ * eager/lazy relation WHEREs on an untyped uuid FK still get `::uuid`.
88
+ */
89
+ export function registerColumnCast(
90
+ table: string,
91
+ column: string,
92
+ type: string,
93
+ ): void {
94
+ const existing = castRegistry.get(table);
95
+ if (existing) existing[column] = type;
96
+ else castRegistry.set(table, { [column]: type });
97
+ }
98
+
99
+ const CAST_BEARING_KINDS = new Set([
100
+ "select",
101
+ "insert",
102
+ "update",
103
+ "delete",
104
+ "upsert",
105
+ ]);
106
+
107
+ /**
108
+ * Inject the registered cast map for a statement's table. A spec that already
109
+ * carries explicit `casts` for a NON-registered table (e.g. an m2m pivot insert
110
+ * with bespoke `pivotCasts`) is left untouched — only entity tables are in the
111
+ * registry, and their explicit casts are identical to the registered map.
112
+ */
113
+ function isStringRecord(v: unknown): v is Record<string, string> {
114
+ return v !== null && typeof v === "object" && !Array.isArray(v);
115
+ }
116
+
117
+ function withRegistryCasts(spec: object): object {
118
+ if (!("table" in spec) || !("kind" in spec)) return spec;
119
+ const { table, kind } = spec;
120
+ if (
121
+ typeof table !== "string" ||
122
+ typeof kind !== "string" ||
123
+ !CAST_BEARING_KINDS.has(kind)
124
+ ) {
125
+ return spec;
126
+ }
127
+ const registered = castRegistry.get(table);
128
+ if (!registered) return spec;
129
+ // Registered casts are the base; any explicit per-statement casts (e.g. a
130
+ // relation loader hinting a FK column the related entity didn't type) win.
131
+ const explicit =
132
+ "casts" in spec && isStringRecord(spec.casts) ? spec.casts : {};
133
+ return { ...spec, casts: { ...registered, ...explicit } };
134
+ }
135
+
59
136
  /**
60
137
  * Compile any statement (SELECT/INSERT/UPDATE/DELETE/DDL) via the Rust compiler.
61
138
  * `spec` is a tagged object: `{ kind: 'select' | 'insert' | ..., ... }`.
@@ -69,6 +146,9 @@ export function compileStatementNative(
69
146
  `[ATLAS_NAPI_NOT_FOUND] Rust query compiler not available: ${loadError ?? "binary not found"}`,
70
147
  );
71
148
  }
72
- const json = native.compileStatement(JSON.stringify(spec), dialect);
149
+ const json = native.compileStatement(
150
+ JSON.stringify(withRegistryCasts(spec)),
151
+ dialect,
152
+ );
73
153
  return JSON.parse(json);
74
154
  }