@c9up/atlas 0.2.7 → 0.3.1

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.
@@ -317,6 +317,19 @@ export function getPrimaryKey(target) {
317
317
  return staticPk;
318
318
  return Reflect.getMetadata(PRIMARY_KEY, target);
319
319
  }
320
+ /**
321
+ * The foreign key a relation falls back to when none is declared.
322
+ *
323
+ * Goes through the entity's naming strategy rather than hardcoding `_id`, so a
324
+ * model whose primary key is not `id` gets `user_uuid` instead of a `user_id`
325
+ * column that does not exist. Lucid derives it the same way
326
+ * (`relationForeignKey` / `relationPivotForeignKey`), and for the usual `id`
327
+ * the result is unchanged.
328
+ */
329
+ export function defaultRelationForeignKey(kind, entityClass) {
330
+ const pk = getPrimaryKey(entityClass) ?? "id";
331
+ return getNamingStrategy(entityClass).relationForeignKey(kind, entityClass.name, pk);
332
+ }
320
333
  /** Get relation metadata for a class (returns a copy). */
321
334
  export function getRelationMetadata(target) {
322
335
  return [...(Reflect.getMetadata(RELATIONS_KEY, target) ?? [])];
@@ -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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"}
package/dist/index.d.ts CHANGED
@@ -5,12 +5,12 @@
5
5
  */
6
6
  import "reflect-metadata";
7
7
  export { SQLITE_PROD_PRAGMAS } from "./AtlasProvider.js";
8
- export type { AsyncDatabaseConnection, ConnectRetryOptions, ObservabilityOptions, QueryMeta, } from "./adapters/NapiDbAdapter.js";
8
+ export type { AsyncDatabaseConnection, ConnectRetryOptions, IsolationLevel, ObservabilityOptions, QueryMeta, TransactionOptions, } from "./adapters/NapiDbAdapter.js";
9
9
  export { createNapiConnection } from "./adapters/NapiDbAdapter.js";
10
10
  export type { DomainEvent } from "./BaseEntity.js";
11
11
  export { BaseEntity } from "./BaseEntity.js";
12
12
  export { BaseModel } from "./BaseModel.js";
13
- export type { DatabaseConnection } from "./BaseRepository.js";
13
+ export type { CreateOptions, DatabaseConnection } from "./BaseRepository.js";
14
14
  export { BaseRepository } from "./BaseRepository.js";
15
15
  export { defineConfig } from "./config.js";
16
16
  export { configure } from "./configure.js";
@@ -29,7 +29,7 @@ export { scope } from "./decorators/scope.js";
29
29
  export { AtlasError, EntityNotFoundError, MassAssignmentError, OptimisticLockError, RelationNotLoadedError, } from "./errors.js";
30
30
  export type { DbQueryEvent, DbQueryListener } from "./events.js";
31
31
  export { clearDbQueryListeners, onDbQuery, prettyPrintQuery, } from "./events.js";
32
- export { isAtlasStrictMode, ModelQuery, setAtlasStrictMode, } from "./ModelQuery.js";
32
+ export { isAtlasStrictMode, ModelQuery, Paginator, setAtlasStrictMode, } from "./ModelQuery.js";
33
33
  export type { NamingStrategy } from "./naming/NamingStrategy.js";
34
34
  export { CamelCaseNamingStrategy, defaultNamingStrategy, getNamingStrategy, } from "./naming/NamingStrategy.js";
35
35
  export type { AtlasDialect } from "./query/native.js";
@@ -46,8 +46,18 @@ export { ColumnBuilder, Schema, TableBuilder } from "./schema/SchemaBuilder.js";
46
46
  export { checkSchema, formatSchemaFindings, runSchemaCheck, type SchemaFinding, type SchemaFindingKind, suggestColumn, typesCompatible, verifySchema, } from "./schema/SchemaCheck.js";
47
47
  export { type PgForeignKey, readSchemaDumpManifest, renderPgCreateTable, renderPgForeignKeyDdl, SchemaDumper, type SchemaDumperOptions, type SchemaDumpManifest, type SchemaDumpResult, schemaDumpManifestPath, } from "./schema/SchemaDumper.js";
48
48
  export { BaseSeeder, runSeederDirectory, runSeeders, Seeder, } from "./schema/Seeder.js";
49
+ /**
50
+ * The vocabulary of a migration callback.
51
+ *
52
+ * `onDelete(action)`, `foreign(...)` and the alter operations all take these,
53
+ * so a migration that pulls one into a named constant — or a helper that wraps
54
+ * a column definition — needs to be able to spell the type.
55
+ */
56
+ export type { AlterOperation, CheckExpression, CheckOperator, CheckValue, ColumnPosition, ForeignKeyReference, IndexDefinition, ReferentialAction, TableConstraintSpec, TableOptionsSpec, TextVariant, } from "./schema/types.js";
49
57
  export type { TransactionClient } from "./Transaction.js";
50
58
  export { transaction } from "./Transaction.js";
59
+ export type { TestTransaction } from "./testing/DatabaseCleanup.js";
51
60
  export { truncateAll, useTransaction } from "./testing/DatabaseCleanup.js";
61
+ export type { FactoryContext } from "./testing/Factory.js";
52
62
  export { Factory, factory } from "./testing/Factory.js";
53
63
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -25,7 +25,10 @@ export { addHook, afterCreate, afterDelete, afterFetch, afterFind, afterPaginate
25
25
  export { scope } from "./decorators/scope.js";
26
26
  export { AtlasError, EntityNotFoundError, MassAssignmentError, OptimisticLockError, RelationNotLoadedError, } from "./errors.js";
27
27
  export { clearDbQueryListeners, onDbQuery, prettyPrintQuery, } from "./events.js";
28
- export { isAtlasStrictMode, ModelQuery, setAtlasStrictMode, } from "./ModelQuery.js";
28
+ export { isAtlasStrictMode, ModelQuery,
29
+ // What `paginate()` hands back. Unexported, an app could not name the value
30
+ // it had just been given.
31
+ Paginator, setAtlasStrictMode, } from "./ModelQuery.js";
29
32
  export { CamelCaseNamingStrategy, defaultNamingStrategy, getNamingStrategy, } from "./naming/NamingStrategy.js";
30
33
  export { getAtlasDialect, registerColumnCast, registerTableCasts, setAtlasDialect, } from "./query/native.js";
31
34
  export { QueryBuilder, RawSql } from "./query/QueryBuilder.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAOzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAEN,QAAQ,EAGR,IAAI,GACJ,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAEN,kBAAkB,GAClB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACN,aAAa,EAEb,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EACrB,wBAAwB,EACxB,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,GACtB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAEN,kBAAkB,GAClB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAEN,iBAAiB,GACjB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACN,kBAAkB,EAClB,gBAAgB,EAEhB,qBAAqB,GACrB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACN,aAAa,EACb,iBAAiB,GAEjB,MAAM,6BAA6B,CAAC;AAWrC,OAAO,EACN,SAAS,EACT,SAAS,EACT,MAAM,EACN,MAAM,EACN,QAAQ,EACR,MAAM,EACN,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,mBAAmB,EACnB,OAAO,EACP,cAAc,EACd,MAAM,EACN,aAAa,EACb,OAAO,EACP,cAAc,EACd,MAAM,EACN,aAAa,EACb,cAAc,EACd,UAAU,EACV,UAAU,EACV,UAAU,EACV,WAAW,GACX,MAAM,wBAAwB,CAAC;AAChC,gFAAgF;AAChF,6DAA6D;AAC7D,OAAO,EACN,OAAO,EACP,WAAW,EACX,WAAW,EACX,UAAU,EACV,SAAS,EACT,aAAa,EACb,SAAS,EACT,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,UAAU,EACV,cAAc,EACd,UAAU,EACV,YAAY,EAIZ,UAAU,GACV,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EACN,UAAU,EACV,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,GACtB,MAAM,aAAa,CAAC;AAErB,OAAO,EACN,qBAAqB,EACrB,SAAS,EACT,gBAAgB,GAChB,MAAM,aAAa,CAAC;AACrB,OAAO,EACN,iBAAiB,EACjB,UAAU,EACV,kBAAkB,GAClB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACN,uBAAuB,EACvB,qBAAqB,EACrB,iBAAiB,GACjB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACN,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,GACf,MAAM,mBAAmB,CAAC;AAS3B,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAEN,eAAe,GACf,MAAM,wBAAwB,CAAC;AAChC,gFAAgF;AAChF,mFAAmF;AACnF,OAAO,EAAE,SAAS,EAAE,SAAS,IAAI,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAO3E,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAG9D,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAChF,OAAO,EACN,WAAW,EACX,oBAAoB,EACpB,cAAc,EAGd,aAAa,EACb,eAAe,EACf,YAAY,GACZ,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAEN,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,YAAY,EAIZ,sBAAsB,GACtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACN,UAAU,EACV,kBAAkB,EAClB,UAAU,EACV,MAAM,GACN,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -24,7 +24,15 @@ export interface NamingStrategy {
24
24
  serializedName(propertyName: string): string;
25
25
  /** Local key for a belongsTo/hasMany relation (usually the parent PK). */
26
26
  relationLocalKey(kind: "belongsTo" | "hasMany" | "hasOne" | "manyToMany", parentPk: string): string;
27
- /** Foreign key column name on the owning side of a relation. */
27
+ /**
28
+ * Foreign key COLUMN name on the owning side of a relation.
29
+ *
30
+ * NAMED DEVIATION — Lucid's method of the same name returns the model
31
+ * ATTRIBUTE (camelCase), which it then runs through `columnName()`; the one
32
+ * that returns a column upstream is `relationPivotForeignKey`. Atlas
33
+ * resolves relations by column throughout, so one method answers for both
34
+ * and it answers in snake_case. An override must return a column name.
35
+ */
28
36
  relationForeignKey(kind: "belongsTo" | "hasMany" | "hasOne" | "manyToMany", parentClass: string, parentPk: string): string;
29
37
  /** Default pivot table name for a manyToMany relation. */
30
38
  relationPivotTable(aClass: string, bClass: string): string;
@@ -1 +1 @@
1
- {"version":3,"file":"NamingStrategy.d.ts","sourceRoot":"","sources":["../../src/naming/NamingStrategy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,wFAAwF;AACxF,MAAM,WAAW,cAAc;IAC9B,kEAAkE;IAClE,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IACrC,0EAA0E;IAC1E,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC;IACzC,4EAA4E;IAC5E,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;IACzC,0EAA0E;IAC1E,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7C,0EAA0E;IAC1E,gBAAgB,CACf,IAAI,EAAE,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,YAAY,EACvD,QAAQ,EAAE,MAAM,GACd,MAAM,CAAC;IACV,gEAAgE;IAChE,kBAAkB,CACjB,IAAI,EAAE,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,YAAY,EACvD,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GACd,MAAM,CAAC;IACV,0DAA0D;IAC1D,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3D;;;;OAIG;IACH,kBAAkB,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9C;AAED;;;GAGG;AACH,qBAAa,uBAAwB,YAAW,cAAc;IAC7D,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAOpC,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAIxC,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAIxC,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAI5C,gBAAgB,CACf,KAAK,EAAE,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,YAAY,EACxD,QAAQ,EAAE,MAAM,GACd,MAAM;IAIT,kBAAkB,CACjB,KAAK,EAAE,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,YAAY,EACxD,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GACd,MAAM;IAIT,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAM1D,kBAAkB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAgB5C;AAED,4FAA4F;AAC5F,eAAO,MAAM,qBAAqB,EAAE,cACN,CAAC;AAE/B;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,CASrE"}
1
+ {"version":3,"file":"NamingStrategy.d.ts","sourceRoot":"","sources":["../../src/naming/NamingStrategy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,wFAAwF;AACxF,MAAM,WAAW,cAAc;IAC9B,kEAAkE;IAClE,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IACrC,0EAA0E;IAC1E,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC;IACzC,4EAA4E;IAC5E,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;IACzC,0EAA0E;IAC1E,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7C,0EAA0E;IAC1E,gBAAgB,CACf,IAAI,EAAE,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,YAAY,EACvD,QAAQ,EAAE,MAAM,GACd,MAAM,CAAC;IACV;;;;;;;;OAQG;IACH,kBAAkB,CACjB,IAAI,EAAE,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,YAAY,EACvD,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GACd,MAAM,CAAC;IACV,0DAA0D;IAC1D,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3D;;;;OAIG;IACH,kBAAkB,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9C;AAED;;;GAGG;AACH,qBAAa,uBAAwB,YAAW,cAAc;IAC7D,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAOpC,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAIxC,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAIxC,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAI5C,gBAAgB,CACf,KAAK,EAAE,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,YAAY,EACxD,QAAQ,EAAE,MAAM,GACd,MAAM;IAIT,kBAAkB,CACjB,KAAK,EAAE,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,YAAY,EACxD,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GACd,MAAM;IAST,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAM1D,kBAAkB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAgB5C;AAED,4FAA4F;AAC5F,eAAO,MAAM,qBAAqB,EAAE,cACN,CAAC;AAE/B;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,CASrE"}
@@ -37,7 +37,12 @@ export class CamelCaseNamingStrategy {
37
37
  return parentPk;
38
38
  }
39
39
  relationForeignKey(_kind, parentClass, parentPk) {
40
- return `${camelToSnake(parentClass)}_${parentPk}`;
40
+ // The PK is snake_cased too, as Lucid does
41
+ // (`snakeCase(`${model.name}_${model.primaryKey}`)`). Identical to the
42
+ // old output for the usual `id`; a multi-word PK now yields a column
43
+ // name a migration would actually have created (`user_user_id`, not
44
+ // `user_userId`).
45
+ return `${camelToSnake(parentClass)}_${camelToSnake(parentPk)}`;
41
46
  }
42
47
  relationPivotTable(aClass, bClass) {
43
48
  // Sort alphabetically so `UserSkill` and `SkillUser` collapse to the same name.
@@ -1 +1 @@
1
- {"version":3,"file":"NamingStrategy.js","sourceRoot":"","sources":["../../src/naming/NamingStrategy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAiChE;;;GAGG;AACH,MAAM,OAAO,uBAAuB;IACnC,SAAS,CAAC,SAAiB;QAC1B,+EAA+E;QAC/E,sEAAsE;QACtE,MAAM,KAAK,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;QACtC,OAAO,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC;IAClD,CAAC;IAED,UAAU,CAAC,YAAoB;QAC9B,OAAO,YAAY,CAAC,YAAY,CAAC,CAAC;IACnC,CAAC;IAED,YAAY,CAAC,UAAkB;QAC9B,OAAO,YAAY,CAAC,UAAU,CAAC,CAAC;IACjC,CAAC;IAED,cAAc,CAAC,YAAoB;QAClC,OAAO,YAAY,CAAC;IACrB,CAAC;IAED,gBAAgB,CACf,KAAwD,EACxD,QAAgB;QAEhB,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED,kBAAkB,CACjB,KAAwD,EACxD,WAAmB,EACnB,QAAgB;QAEhB,OAAO,GAAG,YAAY,CAAC,WAAW,CAAC,IAAI,QAAQ,EAAE,CAAC;IACnD,CAAC;IAED,kBAAkB,CAAC,MAAc,EAAE,MAAc;QAChD,gFAAgF;QAChF,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACnE,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;IACpB,CAAC;IAED,kBAAkB;QACjB,0EAA0E;QAC1E,yEAAyE;QACzE,yDAAyD;QACzD,OAAO;YACN,KAAK,EAAE,OAAO;YACd,OAAO,EAAE,UAAU;YACnB,WAAW,EAAE,cAAc;YAC3B,QAAQ,EAAE,WAAW;YACrB,SAAS,EAAE,YAAY;YACvB,YAAY,EAAE,gBAAgB;YAC9B,WAAW,EAAE,eAAe;YAC5B,WAAW,EAAE,eAAe;YAC5B,eAAe,EAAE,mBAAmB;SACpC,CAAC;IACH,CAAC;CACD;AAED,4FAA4F;AAC5F,MAAM,CAAC,MAAM,qBAAqB,GACjC,IAAI,uBAAuB,EAAE,CAAC;AAE/B;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,WAAmB;IACpD,IAAI,OAAO,GAAkB,WAAW,CAAC;IACzC,OAAO,OAAO,IAAI,OAAO,KAAK,QAAQ,CAAC,SAAS,EAAE,CAAC;QAClD,MAAM,QAAQ,GAAI,OAA+C;aAC/D,cAAc,CAAC;QACjB,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAC9B,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,qBAAqB,CAAC;AAC9B,CAAC"}
1
+ {"version":3,"file":"NamingStrategy.js","sourceRoot":"","sources":["../../src/naming/NamingStrategy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAyChE;;;GAGG;AACH,MAAM,OAAO,uBAAuB;IACnC,SAAS,CAAC,SAAiB;QAC1B,+EAA+E;QAC/E,sEAAsE;QACtE,MAAM,KAAK,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;QACtC,OAAO,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC;IAClD,CAAC;IAED,UAAU,CAAC,YAAoB;QAC9B,OAAO,YAAY,CAAC,YAAY,CAAC,CAAC;IACnC,CAAC;IAED,YAAY,CAAC,UAAkB;QAC9B,OAAO,YAAY,CAAC,UAAU,CAAC,CAAC;IACjC,CAAC;IAED,cAAc,CAAC,YAAoB;QAClC,OAAO,YAAY,CAAC;IACrB,CAAC;IAED,gBAAgB,CACf,KAAwD,EACxD,QAAgB;QAEhB,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED,kBAAkB,CACjB,KAAwD,EACxD,WAAmB,EACnB,QAAgB;QAEhB,2CAA2C;QAC3C,uEAAuE;QACvE,qEAAqE;QACrE,oEAAoE;QACpE,kBAAkB;QAClB,OAAO,GAAG,YAAY,CAAC,WAAW,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;IACjE,CAAC;IAED,kBAAkB,CAAC,MAAc,EAAE,MAAc;QAChD,gFAAgF;QAChF,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACnE,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;IACpB,CAAC;IAED,kBAAkB;QACjB,0EAA0E;QAC1E,yEAAyE;QACzE,yDAAyD;QACzD,OAAO;YACN,KAAK,EAAE,OAAO;YACd,OAAO,EAAE,UAAU;YACnB,WAAW,EAAE,cAAc;YAC3B,QAAQ,EAAE,WAAW;YACrB,SAAS,EAAE,YAAY;YACvB,YAAY,EAAE,gBAAgB;YAC9B,WAAW,EAAE,eAAe;YAC5B,WAAW,EAAE,eAAe;YAC5B,eAAe,EAAE,mBAAmB;SACpC,CAAC;IACH,CAAC;CACD;AAED,4FAA4F;AAC5F,MAAM,CAAC,MAAM,qBAAqB,GACjC,IAAI,uBAAuB,EAAE,CAAC;AAE/B;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,WAAmB;IACpD,IAAI,OAAO,GAAkB,WAAW,CAAC;IACzC,OAAO,OAAO,IAAI,OAAO,KAAK,QAAQ,CAAC,SAAS,EAAE,CAAC;QAClD,MAAM,QAAQ,GAAI,OAA+C;aAC/D,cAAc,CAAC;QACjB,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAC9B,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,qBAAqB,CAAC;AAC9B,CAAC"}
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@c9up/atlas",
3
- "version": "0.2.7",
3
+ "version": "0.3.1",
4
4
  "description": "Atlas — Data Mapper ORM for the Ream framework",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -436,6 +436,22 @@ export default class AtlasProvider {
436
436
  "[atlas] Migrations are configured but were NOT run: boot auto-migrate is disabled in production. Run `migration:run` before serving traffic, or set migrations.autoRunInProduction = true to opt in.",
437
437
  );
438
438
  }
439
+ // Register with the framework's migration registry, so `ream migrate`
440
+ // can drive atlas without naming it. Independent of auto-migrate: the
441
+ // CLI sets REAM_SKIP_BOOT_MIGRATE precisely so boot does NOT migrate,
442
+ // and that is exactly the run that needs the registration.
443
+ if (migrationsPath) {
444
+ await this.#registerMigrationSource(
445
+ migrationsPath,
446
+ connections[defaultName]?.url,
447
+ defaultConn,
448
+ config.migrations?.table,
449
+ {
450
+ naturalSort: config.migrations?.naturalSort,
451
+ disableTransactions: config.migrations?.disableTransactions,
452
+ },
453
+ );
454
+ }
439
455
  if (migrationsPath && !cliDrivesMigrations && autoMigrateAllowed) {
440
456
  await this.#runMigrations(
441
457
  migrationsPath,
@@ -589,7 +605,71 @@ export default class AtlasProvider {
589
605
  ): Promise<void> {
590
606
  const { existsSync } = await import("node:fs");
591
607
  if (!existsSync(migrationsPath)) return;
608
+ await this.#buildRunner(
609
+ migrationsPath,
610
+ url,
611
+ db,
612
+ tableName,
613
+ options,
614
+ ).migrate();
615
+ }
616
+
617
+ /**
618
+ * Hand atlas's runner to the framework's `migrations` registry.
619
+ *
620
+ * Best-effort by design: a host with no registry (an older ream, or another
621
+ * framework entirely) must still boot. atlas does not import `@c9up/ream`,
622
+ * so the registry is duck-typed here like every other host binding.
623
+ */
624
+ async #registerMigrationSource(
625
+ migrationsPath: string,
626
+ url: string,
627
+ db: AsyncDatabaseConnection,
628
+ tableName: string | undefined,
629
+ options?: { naturalSort?: boolean; disableTransactions?: boolean },
630
+ ): Promise<void> {
631
+ const resolve = this.app.container.resolve;
632
+ if (typeof resolve !== "function") return;
592
633
 
634
+ let registry: unknown;
635
+ try {
636
+ registry = await resolve.call(this.app.container, "migrations");
637
+ } catch {
638
+ // No registry bound — an older ream. Booting still has to work; the
639
+ // CLI is the one that reports it, where the user can act on it.
640
+ return;
641
+ }
642
+ if (
643
+ typeof registry !== "object" ||
644
+ registry === null ||
645
+ !("register" in registry) ||
646
+ typeof registry.register !== "function"
647
+ ) {
648
+ return;
649
+ }
650
+
651
+ (registry.register as (source: unknown) => unknown)({
652
+ name: "atlas",
653
+ directory: migrationsPath,
654
+ runner: this.#buildRunner(migrationsPath, url, db, tableName, options),
655
+ });
656
+ }
657
+
658
+ /**
659
+ * Build the runner without running it.
660
+ *
661
+ * Split out of `#runMigrations` so the same runner can be handed to the
662
+ * `migrations` registry, where `ream migrate` drives it. Two constructions
663
+ * would be two chances for boot-time and CLI-time migrations to disagree
664
+ * about the table, the dialect or the sort.
665
+ */
666
+ #buildRunner(
667
+ migrationsPath: string,
668
+ url: string,
669
+ db: AsyncDatabaseConnection,
670
+ tableName: string | undefined,
671
+ options?: { naturalSort?: boolean; disableTransactions?: boolean },
672
+ ): MigrationRunner {
593
673
  const adapter: DatabaseAdapter = {
594
674
  execute: async (sql, params) => {
595
675
  await db.execute(sql, params);
@@ -606,13 +686,12 @@ export default class AtlasProvider {
606
686
  // atomically (schema + deferred + tracking committed together).
607
687
  transaction: db.transaction?.bind(db),
608
688
  };
609
- const runner = new MigrationRunner(adapter, {
689
+ return new MigrationRunner(adapter, {
610
690
  migrationsDir: migrationsPath,
611
691
  dialect: dialectFromUrl(url),
612
692
  tableName,
613
693
  naturalSort: options?.naturalSort,
614
694
  disableTransactions: options?.disableTransactions,
615
695
  });
616
- await runner.migrate();
617
696
  }
618
697
  }
package/src/BaseEntity.ts CHANGED
@@ -30,6 +30,7 @@ import {
30
30
  COMPUTED_KEY,
31
31
  type ColumnSerializeConfig,
32
32
  } from "./metadata-keys.js";
33
+ import { getNamingStrategy } from "./naming/NamingStrategy.js";
33
34
 
34
35
  export interface DomainEvent {
35
36
  name: string;
@@ -225,7 +226,26 @@ export type { ColumnSerializeConfig };
225
226
  * Internal reserved keys on BaseEntity that must never be treated as database
226
227
  * columns or serialized as data. Used by dirty tracking and by `toJSON`.
227
228
  */
228
- const INTERNAL_KEYS = new Set<string>(["$extras", "$original", "$sideloaded"]);
229
+ const INTERNAL_KEYS = new Set<string>([
230
+ "$extras",
231
+ "$original",
232
+ "$sideloaded",
233
+ // Serialization config, not a column. It only needs listing because Lucid
234
+ // serializes from `$attributes` while atlas walks the instance's own
235
+ // properties, so an instance-level `serializeExtras = true` would otherwise
236
+ // come out in the JSON it is configuring.
237
+ "serializeExtras",
238
+ ]);
239
+
240
+ /**
241
+ * How a model opts into serializing `$extras` (Lucid `serializeExtras`).
242
+ *
243
+ * `true` nests the bag under `meta`; a function returns the shape to merge
244
+ * verbatim and receives the bag.
245
+ */
246
+ export type SerializeExtras =
247
+ | boolean
248
+ | ((extras: Record<string, unknown>) => Record<string, unknown>);
229
249
 
230
250
  /**
231
251
  * Structural (cross-realm-safe) check for a date value exposing `toISO()` — a
@@ -652,7 +672,6 @@ export class BaseEntity {
652
672
  `${ctor.name}: cannot declare both 'fillable' and 'guarded'`,
653
673
  );
654
674
  }
655
- const known = this.#knownColumnKeys();
656
675
  const allowed = (key: string): boolean => {
657
676
  if (ctor.fillable) return ctor.fillable.includes(key);
658
677
  if (ctor.guarded) return !ctor.guarded.includes(key);
@@ -676,25 +695,109 @@ export class BaseEntity {
676
695
  }
677
696
  }
678
697
  for (const [k, v] of Object.entries(payload)) {
679
- // Mass-assignment (fillable/guarded) is the more specific gate — it wins.
680
- if (!allowed(k)) throw new MassAssignmentError(ctor.name, k);
681
- // Otherwise reject keys that aren't declared columns at all (Lucid
682
- // strict), unless the caller opts into dropping extras.
683
- if (!known.has(k)) {
684
- if (allowExtraProperties) continue;
685
- throw new AtlasError(
686
- "E_EXTRA_PROPERTIES",
687
- `Cannot fill '${k}' on ${ctor.name}: it is not a declared column.`,
688
- {
689
- hint: "Declare it with @Column, or pass allowExtraProperties=true to ignore extra keys.",
690
- },
691
- );
692
- }
693
- this[k] = v;
698
+ this.#assign(ctor, "fill", allowed, k, v, allowExtraProperties);
694
699
  }
695
700
  return this;
696
701
  }
697
702
 
703
+ /**
704
+ * Apply one payload entry, shared by `fill` and `merge`.
705
+ *
706
+ * The key is resolved to its property BEFORE the mass-assignment gate runs:
707
+ * gating the raw key would let `{ is_admin: true }` past a
708
+ * `guarded = ['isAdmin']` on its way to being resolved.
709
+ */
710
+ #assign(
711
+ ctor: typeof BaseEntity,
712
+ operation: "fill" | "merge",
713
+ allowed: (key: string) => boolean,
714
+ key: string,
715
+ value: unknown,
716
+ allowExtraProperties: boolean,
717
+ ): void {
718
+ // Mass assignment is the more specific gate and it wins: a key a
719
+ // `fillable` list does not cover is a blocked assignment, not an
720
+ // undeclared column.
721
+ if (!allowed(key)) throw new MassAssignmentError(ctor.name, key);
722
+
723
+ const target = this.#resolveAssignment(key);
724
+
725
+ if (target.kind === "ignore") return;
726
+
727
+ if (target.kind === "extra") {
728
+ // Lucid keeps an unknown key in `$extras` rather than dropping it:
729
+ // an aggregate or a pivot value travelling with the row is exactly
730
+ // what the bag is for. It is never a column, so it cannot reach an
731
+ // INSERT.
732
+ if (allowExtraProperties) {
733
+ this.$extras[key] = value;
734
+ return;
735
+ }
736
+ throw new AtlasError(
737
+ "E_EXTRA_PROPERTIES",
738
+ `Cannot ${operation} '${key}' on ${ctor.name}: it is not a declared column.`,
739
+ {
740
+ hint: `Declare it with @Column, or pass allowExtraProperties=true to keep extra keys in $extras.`,
741
+ },
742
+ );
743
+ }
744
+
745
+ // Checked again under the resolved name: the gate above saw the DB column
746
+ // name, so `{ is_admin: true }` would otherwise walk past a
747
+ // `guarded = ['isAdmin']` on its way to resolving.
748
+ if (target.property !== key && !allowed(target.property)) {
749
+ throw new MassAssignmentError(ctor.name, target.property);
750
+ }
751
+ this[target.property] = value;
752
+ }
753
+
754
+ /**
755
+ * Where a payload key should land: the property to assign, or why it cannot
756
+ * be assigned. Lucid's `merge` resolution order, in one place so `fill` and
757
+ * `merge` cannot drift apart.
758
+ *
759
+ * The DB column name resolves to its property (Lucid's
760
+ * `$keys.columnsToAttributes`): a payload coming straight off an API or a
761
+ * raw row keys by `created_at`, and refusing it while the model declares
762
+ * `createdAt` is a false rejection.
763
+ */
764
+ #resolveAssignment(
765
+ key: string,
766
+ ):
767
+ | { kind: "property"; property: string }
768
+ | { kind: "ignore" }
769
+ | { kind: "extra" } {
770
+ const ctor = this.constructor as typeof BaseEntity & {
771
+ fillable?: string[];
772
+ guarded?: string[];
773
+ };
774
+
775
+ if (this.#knownColumnKeys().has(key))
776
+ return { kind: "property", property: key };
777
+
778
+ const columns = getColumnMetadata(ctor);
779
+ const naming = getNamingStrategy(ctor);
780
+ for (const column of columns) {
781
+ const dbName = column.columnName ?? naming.columnName(column.propertyKey);
782
+ if (dbName === key)
783
+ return { kind: "property", property: column.propertyKey };
784
+ }
785
+
786
+ // A relation is set through its own API, never by mass assignment —
787
+ // Lucid ignores the key rather than treating it as an extra.
788
+ for (const relation of getRelationMetadata(ctor)) {
789
+ if (relation.propertyKey === key) return { kind: "ignore" };
790
+ }
791
+
792
+ // `$extras`, `$original`, `$sideloaded`: framework state that leaks in
793
+ // when an entity instance is passed as a payload. Not a column, not a
794
+ // typo, and certainly not something to overwrite.
795
+ if (INTERNAL_KEYS.has(key) || key.startsWith("$"))
796
+ return { kind: "ignore" };
797
+
798
+ return { kind: "extra" };
799
+ }
800
+
698
801
  /**
699
802
  * The set of keys `fill`/`merge` treat as declared attributes: `@Column`
700
803
  * property keys, the primary key, and any names the user listed in
@@ -755,27 +858,13 @@ export class BaseEntity {
755
858
  `${ctor.name}: cannot declare both 'fillable' and 'guarded'`,
756
859
  );
757
860
  }
758
- const known = this.#knownColumnKeys();
759
861
  const allowed = (key: string): boolean => {
760
862
  if (ctor.fillable) return ctor.fillable.includes(key);
761
863
  if (ctor.guarded) return !ctor.guarded.includes(key);
762
864
  return true;
763
865
  };
764
866
  for (const [k, v] of Object.entries(payload)) {
765
- if (!allowed(k)) {
766
- throw new MassAssignmentError(ctor.name, k);
767
- }
768
- if (!known.has(k)) {
769
- if (allowExtraProperties) continue;
770
- throw new AtlasError(
771
- "E_EXTRA_PROPERTIES",
772
- `Cannot merge '${k}' on ${ctor.name}: it is not a declared column.`,
773
- {
774
- hint: "Declare it with @Column, or pass allowExtraProperties=true to ignore extra keys.",
775
- },
776
- );
777
- }
778
- this[k] = v;
867
+ this.#assign(ctor, "merge", allowed, k, v, allowExtraProperties);
779
868
  }
780
869
  return this;
781
870
  }
@@ -838,9 +927,7 @@ export class BaseEntity {
838
927
  */
839
928
  toJSON(): Record<string, unknown> {
840
929
  const ctor = this.constructor as typeof BaseEntity & {
841
- serializeExtras?:
842
- | boolean
843
- | ((extras: Record<string, unknown>) => Record<string, unknown>);
930
+ serializeExtras?: SerializeExtras;
844
931
  };
845
932
  const result: Record<string, unknown> = {
846
933
  ...this.serializeAttributes(),
@@ -849,14 +936,24 @@ export class BaseEntity {
849
936
  };
850
937
 
851
938
  // $extras (aggregates / pivot values) are serialized only when the model
852
- // opts in via `static serializeExtras = true` AdonisJS Lucid parity
853
- // (default OFF), so internal aggregates never leak into API JSON by default.
854
- if (!ctor.serializeExtras) return result;
855
- const extras =
856
- typeof ctor.serializeExtras === "function"
857
- ? ctor.serializeExtras(this.$extras)
858
- : this.$extras;
859
- return { ...result, ...extras };
939
+ // opts in Lucid parity (default OFF), so internal aggregates never leak
940
+ // into API JSON by default.
941
+ //
942
+ // Lucid reads `serializeExtras` off the INSTANCE. The static form is what
943
+ // atlas shipped, so both are honoured and the instance wins; a model
944
+ // written for either works unchanged.
945
+ const optIn =
946
+ (this as { serializeExtras?: SerializeExtras }).serializeExtras ??
947
+ ctor.serializeExtras;
948
+ if (!optIn) return result;
949
+
950
+ // `true` nests the bag under `meta`, as Lucid does — spreading it at the
951
+ // top level let an aggregate collide with a real column of the same name.
952
+ // A function returns the shape verbatim, so it can choose otherwise.
953
+ if (typeof optIn === "function") {
954
+ return { ...result, ...optIn.call(this, this.$extras) };
955
+ }
956
+ return { ...result, meta: this.$extras };
860
957
  }
861
958
 
862
959
  /**