@c9up/atlas 0.1.19 → 0.2.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.
- package/README.md +63 -14
- package/db.darwin-arm64.node +0 -0
- package/db.darwin-x64.node +0 -0
- package/db.linux-arm64-gnu.node +0 -0
- package/db.linux-x64-gnu.node +0 -0
- package/db.win32-x64-msvc.node +0 -0
- package/dist/AtlasProvider.d.ts +66 -7
- package/dist/AtlasProvider.d.ts.map +1 -1
- package/dist/AtlasProvider.js +205 -39
- package/dist/AtlasProvider.js.map +1 -1
- package/dist/BaseEntity.d.ts +181 -5
- package/dist/BaseEntity.d.ts.map +1 -1
- package/dist/BaseEntity.js +339 -33
- package/dist/BaseEntity.js.map +1 -1
- package/dist/BaseModel.d.ts +127 -0
- package/dist/BaseModel.d.ts.map +1 -0
- package/dist/BaseModel.js +250 -0
- package/dist/BaseModel.js.map +1 -0
- package/dist/BaseRepository.d.ts +81 -15
- package/dist/BaseRepository.d.ts.map +1 -1
- package/dist/BaseRepository.js +1433 -387
- package/dist/BaseRepository.js.map +1 -1
- package/dist/ConnectionManager.d.ts +106 -0
- package/dist/ConnectionManager.d.ts.map +1 -0
- package/dist/ConnectionManager.js +228 -0
- package/dist/ConnectionManager.js.map +1 -0
- package/dist/ModelQuery.d.ts +577 -41
- package/dist/ModelQuery.d.ts.map +1 -1
- package/dist/ModelQuery.js +2188 -291
- package/dist/ModelQuery.js.map +1 -1
- package/dist/Transaction.d.ts +71 -1
- package/dist/Transaction.d.ts.map +1 -1
- package/dist/Transaction.js +138 -24
- package/dist/Transaction.js.map +1 -1
- package/dist/adapters/NapiDbAdapter.d.ts +44 -4
- package/dist/adapters/NapiDbAdapter.d.ts.map +1 -1
- package/dist/adapters/NapiDbAdapter.js +131 -13
- package/dist/adapters/NapiDbAdapter.js.map +1 -1
- package/dist/console/contract.d.ts +62 -0
- package/dist/console/contract.d.ts.map +1 -0
- package/dist/console/contract.js +38 -0
- package/dist/console/contract.js.map +1 -0
- package/dist/console/factoryCommands.d.ts +23 -0
- package/dist/console/factoryCommands.d.ts.map +1 -0
- package/dist/console/factoryCommands.js +62 -0
- package/dist/console/factoryCommands.js.map +1 -0
- package/dist/console/migrationCommands.d.ts +78 -0
- package/dist/console/migrationCommands.d.ts.map +1 -0
- package/dist/console/migrationCommands.js +327 -0
- package/dist/console/migrationCommands.js.map +1 -0
- package/dist/console/schemaCheckCommand.d.ts +11 -17
- package/dist/console/schemaCheckCommand.d.ts.map +1 -1
- package/dist/console/schemaCheckCommand.js +21 -15
- package/dist/console/schemaCheckCommand.js.map +1 -1
- package/dist/console/schemaDumpCommand.d.ts +30 -0
- package/dist/console/schemaDumpCommand.d.ts.map +1 -0
- package/dist/console/schemaDumpCommand.js +69 -0
- package/dist/console/schemaDumpCommand.js.map +1 -0
- package/dist/console/schemaGenerateCommand.d.ts +100 -0
- package/dist/console/schemaGenerateCommand.d.ts.map +1 -0
- package/dist/console/schemaGenerateCommand.js +246 -0
- package/dist/console/schemaGenerateCommand.js.map +1 -0
- package/dist/console/seederCommands.d.ts +46 -0
- package/dist/console/seederCommands.d.ts.map +1 -0
- package/dist/console/seederCommands.js +136 -0
- package/dist/console/seederCommands.js.map +1 -0
- package/dist/decorators/entity.d.ts +50 -8
- package/dist/decorators/entity.d.ts.map +1 -1
- package/dist/decorators/entity.js +42 -2
- package/dist/decorators/entity.js.map +1 -1
- package/dist/decorators/hooks.d.ts +3 -3
- package/dist/decorators/hooks.d.ts.map +1 -1
- package/dist/decorators/hooks.js.map +1 -1
- package/dist/events.d.ts +69 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +82 -0
- package/dist/events.js.map +1 -0
- package/dist/factories.d.ts +8 -0
- package/dist/factories.d.ts.map +1 -0
- package/dist/factories.js +8 -0
- package/dist/factories.js.map +1 -0
- package/dist/index.d.ts +15 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -3
- package/dist/index.js.map +1 -1
- package/dist/lucid-schema.d.ts +15 -0
- package/dist/lucid-schema.d.ts.map +1 -0
- package/dist/lucid-schema.js +16 -0
- package/dist/lucid-schema.js.map +1 -0
- package/dist/metadata-keys.d.ts +3 -2
- package/dist/metadata-keys.d.ts.map +1 -1
- package/dist/naming/NamingStrategy.d.ts +7 -0
- package/dist/naming/NamingStrategy.d.ts.map +1 -1
- package/dist/naming/NamingStrategy.js +16 -0
- package/dist/naming/NamingStrategy.js.map +1 -1
- package/dist/orm.d.ts +14 -0
- package/dist/orm.d.ts.map +1 -0
- package/dist/orm.js +14 -0
- package/dist/orm.js.map +1 -0
- package/dist/query/DatabaseQueryBuilder.d.ts +557 -0
- package/dist/query/DatabaseQueryBuilder.d.ts.map +1 -0
- package/dist/query/DatabaseQueryBuilder.js +1798 -0
- package/dist/query/DatabaseQueryBuilder.js.map +1 -0
- package/dist/query/DmlBuilder.d.ts +62 -0
- package/dist/query/DmlBuilder.d.ts.map +1 -0
- package/dist/query/DmlBuilder.js +84 -0
- package/dist/query/DmlBuilder.js.map +1 -0
- package/dist/query/QueryBuilder.d.ts +5 -0
- package/dist/query/QueryBuilder.d.ts.map +1 -1
- package/dist/query/QueryBuilder.js +7 -0
- package/dist/query/QueryBuilder.js.map +1 -1
- package/dist/query/RawQueryBuilder.d.ts +47 -0
- package/dist/query/RawQueryBuilder.d.ts.map +1 -0
- package/dist/query/RawQueryBuilder.js +138 -0
- package/dist/query/RawQueryBuilder.js.map +1 -0
- package/dist/query/interpolate.d.ts +45 -0
- package/dist/query/interpolate.d.ts.map +1 -0
- package/dist/query/interpolate.js +51 -0
- package/dist/query/interpolate.js.map +1 -0
- package/dist/query/native.d.ts +8 -0
- package/dist/query/native.d.ts.map +1 -1
- package/dist/query/native.js +14 -0
- package/dist/query/native.js.map +1 -1
- package/dist/query/operators.d.ts +4 -0
- package/dist/query/operators.d.ts.map +1 -0
- package/dist/query/operators.js +27 -0
- package/dist/query/operators.js.map +1 -0
- package/dist/schema/Migration.d.ts +50 -3
- package/dist/schema/Migration.d.ts.map +1 -1
- package/dist/schema/Migration.js +60 -24
- package/dist/schema/Migration.js.map +1 -1
- package/dist/schema/MigrationRunner.d.ts +95 -34
- package/dist/schema/MigrationRunner.d.ts.map +1 -1
- package/dist/schema/MigrationRunner.js +523 -68
- package/dist/schema/MigrationRunner.js.map +1 -1
- package/dist/schema/Schema.d.ts +114 -0
- package/dist/schema/Schema.d.ts.map +1 -1
- package/dist/schema/Schema.js +272 -3
- package/dist/schema/Schema.js.map +1 -1
- package/dist/schema/SchemaDumper.d.ts +121 -0
- package/dist/schema/SchemaDumper.d.ts.map +1 -0
- package/dist/schema/SchemaDumper.js +365 -0
- package/dist/schema/SchemaDumper.js.map +1 -0
- package/dist/schema/Seeder.d.ts +13 -0
- package/dist/schema/Seeder.d.ts.map +1 -1
- package/dist/schema/Seeder.js +28 -5
- package/dist/schema/Seeder.js.map +1 -1
- package/dist/schema/TableBuilder.d.ts +274 -16
- package/dist/schema/TableBuilder.d.ts.map +1 -1
- package/dist/schema/TableBuilder.js +656 -52
- package/dist/schema/TableBuilder.js.map +1 -1
- package/dist/schema/catalog.d.ts +71 -0
- package/dist/schema/catalog.d.ts.map +1 -0
- package/dist/schema/catalog.js +158 -0
- package/dist/schema/catalog.js.map +1 -0
- package/dist/schema/introspect.d.ts +1 -1
- package/dist/schema/introspect.d.ts.map +1 -1
- package/dist/schema/introspect.js +26 -11
- package/dist/schema/introspect.js.map +1 -1
- package/dist/schema/types.d.ts +150 -1
- package/dist/schema/types.d.ts.map +1 -1
- package/dist/schema/types.js +11 -0
- package/dist/schema/types.js.map +1 -1
- package/dist/seeders.d.ts +7 -0
- package/dist/seeders.d.ts.map +1 -0
- package/dist/seeders.js +7 -0
- package/dist/seeders.js.map +1 -0
- package/dist/services/db.d.ts +122 -5
- package/dist/services/db.d.ts.map +1 -1
- package/dist/services/db.js +187 -14
- package/dist/services/db.js.map +1 -1
- package/dist/testing/DatabaseCleanup.d.ts +33 -7
- package/dist/testing/DatabaseCleanup.d.ts.map +1 -1
- package/dist/testing/DatabaseCleanup.js +54 -24
- package/dist/testing/DatabaseCleanup.js.map +1 -1
- package/dist/testing/DbAssertions.d.ts +48 -0
- package/dist/testing/DbAssertions.d.ts.map +1 -0
- package/dist/testing/DbAssertions.js +80 -0
- package/dist/testing/DbAssertions.js.map +1 -0
- package/dist/testing/Factory.d.ts +166 -15
- package/dist/testing/Factory.d.ts.map +1 -1
- package/dist/testing/Factory.js +497 -23
- package/dist/testing/Factory.js.map +1 -1
- package/dist/testing/TestUtils.d.ts +49 -0
- package/dist/testing/TestUtils.d.ts.map +1 -0
- package/dist/testing/TestUtils.js +79 -0
- package/dist/testing/TestUtils.js.map +1 -0
- package/dist/testing/index.d.ts +3 -1
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +3 -1
- package/dist/testing/index.js.map +1 -1
- package/dist/types/relations.d.ts +31 -0
- package/dist/types/relations.d.ts.map +1 -0
- package/dist/types/relations.js +20 -0
- package/dist/types/relations.js.map +1 -0
- package/index.darwin-arm64.node +0 -0
- package/index.darwin-x64.node +0 -0
- package/index.linux-arm64-gnu.node +0 -0
- package/index.linux-x64-gnu.node +0 -0
- package/index.win32-x64-msvc.node +0 -0
- package/package.json +32 -2
- package/scripts/guard-publish.mjs +15 -0
- package/src/AtlasProvider.ts +305 -52
- package/src/BaseEntity.ts +460 -41
- package/src/BaseModel.ts +461 -0
- package/src/BaseRepository.ts +1710 -421
- package/src/ConnectionManager.ts +298 -0
- package/src/ModelQuery.ts +2998 -335
- package/src/Transaction.ts +227 -30
- package/src/adapters/NapiDbAdapter.ts +224 -17
- package/src/console/contract.ts +96 -0
- package/src/console/factoryCommands.ts +73 -0
- package/src/console/migrationCommands.ts +448 -0
- package/src/console/schemaCheckCommand.ts +26 -22
- package/src/console/schemaDumpCommand.ts +96 -0
- package/src/console/schemaGenerateCommand.ts +380 -0
- package/src/console/seederCommands.ts +174 -0
- package/src/decorators/entity.ts +71 -8
- package/src/decorators/hooks.ts +5 -3
- package/src/events.ts +117 -0
- package/src/factories.ts +10 -0
- package/src/index.ts +69 -3
- package/src/lucid-schema.ts +22 -0
- package/src/metadata-keys.ts +3 -2
- package/src/naming/NamingStrategy.ts +23 -0
- package/src/orm.ts +13 -0
- package/src/query/DatabaseQueryBuilder.ts +2724 -0
- package/src/query/DmlBuilder.ts +131 -0
- package/src/query/QueryBuilder.ts +8 -0
- package/src/query/RawQueryBuilder.ts +173 -0
- package/src/query/interpolate.ts +73 -0
- package/src/query/native.ts +29 -0
- package/src/query/operators.ts +27 -0
- package/src/schema/Migration.ts +71 -3
- package/src/schema/MigrationRunner.ts +676 -69
- package/src/schema/Schema.ts +359 -3
- package/src/schema/SchemaDumper.ts +518 -0
- package/src/schema/Seeder.ts +47 -10
- package/src/schema/TableBuilder.ts +783 -52
- package/src/schema/catalog.ts +236 -0
- package/src/schema/introspect.ts +26 -9
- package/src/schema/types.ts +137 -2
- package/src/seeders.ts +16 -0
- package/src/services/db.ts +361 -21
- package/src/testing/DatabaseCleanup.ts +78 -25
- package/src/testing/DbAssertions.ts +127 -0
- package/src/testing/Factory.ts +837 -40
- package/src/testing/TestUtils.ts +123 -0
- package/src/testing/index.ts +12 -1
- package/src/types/relations.ts +43 -0
package/dist/BaseEntity.js
CHANGED
|
@@ -10,8 +10,9 @@
|
|
|
10
10
|
*
|
|
11
11
|
* @implements FR29, FR35, stories 32.1 through 32.5
|
|
12
12
|
*/
|
|
13
|
-
|
|
14
|
-
import {
|
|
13
|
+
var _a;
|
|
14
|
+
import { getColumnMetadata, getDateColumnConfig, getPrimaryKey, getRelationMetadata, } from "./decorators/entity.js";
|
|
15
|
+
import { AtlasError, MassAssignmentError } from "./errors.js";
|
|
15
16
|
import { COLUMN_SERIALIZE_KEY, COMPUTED_KEY, } from "./metadata-keys.js";
|
|
16
17
|
// COMPUTED_KEY / COLUMN_SERIALIZE_KEY / ColumnSerializeConfig moved to
|
|
17
18
|
// ./metadata-keys.js to break the BaseEntity ↔ entity-decorator runtime cycle
|
|
@@ -23,7 +24,18 @@ export const REPO_REF = Symbol.for("atlas:repoRef");
|
|
|
23
24
|
* Internal reserved keys on BaseEntity that must never be treated as database
|
|
24
25
|
* columns or serialized as data. Used by dirty tracking and by `toJSON`.
|
|
25
26
|
*/
|
|
26
|
-
const INTERNAL_KEYS = new Set(["$extras", "$original"]);
|
|
27
|
+
const INTERNAL_KEYS = new Set(["$extras", "$original", "$sideloaded"]);
|
|
28
|
+
/**
|
|
29
|
+
* Structural (cross-realm-safe) check for a date value exposing `toISO()` — a
|
|
30
|
+
* Chronos `DateTime` and any compatible instance from a duplicated package copy.
|
|
31
|
+
* Used by dirty-tracking to compare date columns by instant, not by reference.
|
|
32
|
+
*/
|
|
33
|
+
function hasToISO(v) {
|
|
34
|
+
return (typeof v === "object" &&
|
|
35
|
+
v !== null &&
|
|
36
|
+
"toISO" in v &&
|
|
37
|
+
typeof v.toISO === "function");
|
|
38
|
+
}
|
|
27
39
|
export class BaseEntity {
|
|
28
40
|
/** Accumulated domain events — dispatched on the event bus after DB commit. */
|
|
29
41
|
#domainEvents = [];
|
|
@@ -35,6 +47,13 @@ export class BaseEntity {
|
|
|
35
47
|
* @implements Story 32.5
|
|
36
48
|
*/
|
|
37
49
|
$extras = {};
|
|
50
|
+
/**
|
|
51
|
+
* Sideloaded data — arbitrary context attached to the instance (AdonisJS Lucid
|
|
52
|
+
* `$sideloaded`), e.g. the current tenant/user threaded through from a query.
|
|
53
|
+
* Never a column, never dirty-tracked, never serialized. Set it manually;
|
|
54
|
+
* query-level `.sideload()` auto-propagation to hydrated results is not wired.
|
|
55
|
+
*/
|
|
56
|
+
$sideloaded = {};
|
|
38
57
|
/**
|
|
39
58
|
* Snapshot of the column values at the moment this entity was hydrated from
|
|
40
59
|
* the database. Used by dirty tracking (`isDirty`, `$dirty`). Populated by
|
|
@@ -44,6 +63,78 @@ export class BaseEntity {
|
|
|
44
63
|
* @implements Story 32.2
|
|
45
64
|
*/
|
|
46
65
|
$original = {};
|
|
66
|
+
// — Lifecycle state (AdonisJS Lucid parity). Kept in `#`-private fields so they
|
|
67
|
+
// never leak into `Object.keys(this)` / `$dirty` / `$original` / `toJSON`.
|
|
68
|
+
#persisted = false;
|
|
69
|
+
#deleted = false;
|
|
70
|
+
#local = true;
|
|
71
|
+
#forceUpdate = false;
|
|
72
|
+
/**
|
|
73
|
+
* Force the next `save()` to run an UPDATE even when nothing is dirty — e.g. to
|
|
74
|
+
* fire DB triggers or re-persist the current state (AdonisJS Lucid
|
|
75
|
+
* `enableForceUpdate`). The flag is consumed by that save. Chainable.
|
|
76
|
+
*/
|
|
77
|
+
enableForceUpdate() {
|
|
78
|
+
this.#forceUpdate = true;
|
|
79
|
+
return this;
|
|
80
|
+
}
|
|
81
|
+
/** @internal Read-and-clear the force-update flag — called by `BaseRepository`. */
|
|
82
|
+
$consumeForceUpdate() {
|
|
83
|
+
const forced = this.#forceUpdate;
|
|
84
|
+
this.#forceUpdate = false;
|
|
85
|
+
return forced;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* `true` once the row exists in the database — after `save()`/`create()`
|
|
89
|
+
* inserts it or a fetch hydrates it. AdonisJS Lucid `$isPersisted`.
|
|
90
|
+
*/
|
|
91
|
+
get $isPersisted() {
|
|
92
|
+
return this.#persisted;
|
|
93
|
+
}
|
|
94
|
+
/** Inverse of {@link $isPersisted} — a never-persisted instance. Lucid `$isNew`. */
|
|
95
|
+
get $isNew() {
|
|
96
|
+
return !this.#persisted;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* `true` when the instance originated in memory (`new Model()` / `create()`),
|
|
100
|
+
* `false` when it was fetched from the database. Lucid `$isLocal`.
|
|
101
|
+
*/
|
|
102
|
+
get $isLocal() {
|
|
103
|
+
return this.#local;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* `true` once `delete()` has removed the row; the instance must not be saved
|
|
107
|
+
* again. Lucid `$isDeleted`.
|
|
108
|
+
*/
|
|
109
|
+
get $isDeleted() {
|
|
110
|
+
return this.#deleted;
|
|
111
|
+
}
|
|
112
|
+
/** The primary-key column's current value. Lucid `$primaryKeyValue`. */
|
|
113
|
+
get $primaryKeyValue() {
|
|
114
|
+
const pk = getPrimaryKey(this.constructor);
|
|
115
|
+
return pk === undefined ? undefined : this[pk];
|
|
116
|
+
}
|
|
117
|
+
/** @internal Repository marks the instance deleted after DELETE. */
|
|
118
|
+
markAsDeleted() {
|
|
119
|
+
this.#deleted = true;
|
|
120
|
+
}
|
|
121
|
+
/** @internal Repository flags a DB-originated instance (`$isLocal = false`). */
|
|
122
|
+
markAsFromDatabase() {
|
|
123
|
+
this.#local = false;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* @internal Revert a fresh INSERT that was rolled back — the row never
|
|
127
|
+
* persisted, so the instance must report `$isNew` again. Named safety
|
|
128
|
+
* deviation from Lucid (which keeps `$isPersisted` after rollback): without
|
|
129
|
+
* this, a later `parent.related('x').create(...)` reads `$isPersisted === true`,
|
|
130
|
+
* skips re-saving the parent, and writes a child with a foreign key pointing at
|
|
131
|
+
* a phantom row. Only used for instances that were provably not persisted
|
|
132
|
+
* before the failed batch.
|
|
133
|
+
*/
|
|
134
|
+
markAsNotPersisted() {
|
|
135
|
+
this.#persisted = false;
|
|
136
|
+
this.$original = {};
|
|
137
|
+
}
|
|
47
138
|
/** Set a property dynamically (used by hydrate/create). */
|
|
48
139
|
setProp(key, value) {
|
|
49
140
|
this[key] = value;
|
|
@@ -92,6 +183,7 @@ export class BaseEntity {
|
|
|
92
183
|
snapshot[key] = this[key];
|
|
93
184
|
}
|
|
94
185
|
this.$original = snapshot;
|
|
186
|
+
this.#persisted = true;
|
|
95
187
|
}
|
|
96
188
|
/**
|
|
97
189
|
* Compute the set of columns whose current value differs from `$original`.
|
|
@@ -126,6 +218,12 @@ export class BaseEntity {
|
|
|
126
218
|
if (current instanceof Date && original instanceof Date) {
|
|
127
219
|
return current.getTime() === original.getTime();
|
|
128
220
|
}
|
|
221
|
+
// Chronos DateTime (or any `toISO()`-bearing value): compare by instant, not
|
|
222
|
+
// reference, so re-wrapping the same moment (x = DateTime.from(x), toUTC(), a
|
|
223
|
+
// driver rebuilding it) doesn't spuriously flag the column dirty.
|
|
224
|
+
if (hasToISO(current) && hasToISO(original)) {
|
|
225
|
+
return current.toISO() === original.toISO();
|
|
226
|
+
}
|
|
129
227
|
return Object.is(current, original);
|
|
130
228
|
}
|
|
131
229
|
/**
|
|
@@ -137,6 +235,13 @@ export class BaseEntity {
|
|
|
137
235
|
return Object.keys(this.$dirty).length > 0;
|
|
138
236
|
return !this.#columnEqualsOriginal(field);
|
|
139
237
|
}
|
|
238
|
+
/**
|
|
239
|
+
* `true` when the instance has unsaved changes since it was hydrated/persisted
|
|
240
|
+
* (AdonisJS Lucid `$isDirty` getter). Equivalent to `isDirty()` with no args.
|
|
241
|
+
*/
|
|
242
|
+
get $isDirty() {
|
|
243
|
+
return Object.keys(this.$dirty).length > 0;
|
|
244
|
+
}
|
|
140
245
|
/**
|
|
141
246
|
* Revert all dirty columns back to their `$original` values.
|
|
142
247
|
*
|
|
@@ -221,6 +326,15 @@ export class BaseEntity {
|
|
|
221
326
|
await repo.loadRelation(this, relationName, callback);
|
|
222
327
|
return this;
|
|
223
328
|
}
|
|
329
|
+
/**
|
|
330
|
+
* Like {@link load} but a no-op when the relation is already populated on this
|
|
331
|
+
* instance (AdonisJS Lucid `loadOnce`). Chainable.
|
|
332
|
+
*/
|
|
333
|
+
async loadOnce(relationName, callback) {
|
|
334
|
+
if (this[relationName] !== undefined)
|
|
335
|
+
return this;
|
|
336
|
+
return this.load(relationName, callback);
|
|
337
|
+
}
|
|
224
338
|
/**
|
|
225
339
|
* Return a relation proxy bound to this instance. The proxy exposes
|
|
226
340
|
* `create` / `createMany` / `save` / `saveMany` that auto-set the FK.
|
|
@@ -241,11 +355,12 @@ export class BaseEntity {
|
|
|
241
355
|
*
|
|
242
356
|
* @implements Story 30.7
|
|
243
357
|
*/
|
|
244
|
-
fill(payload) {
|
|
358
|
+
fill(payload, allowExtraProperties = false) {
|
|
245
359
|
const ctor = this.constructor;
|
|
246
360
|
if (ctor.fillable && ctor.guarded) {
|
|
247
361
|
throw new Error(`${ctor.name}: cannot declare both 'fillable' and 'guarded'`);
|
|
248
362
|
}
|
|
363
|
+
const known = this.#knownColumnKeys();
|
|
249
364
|
const allowed = (key) => {
|
|
250
365
|
if (ctor.fillable)
|
|
251
366
|
return ctor.fillable.includes(key);
|
|
@@ -272,22 +387,72 @@ export class BaseEntity {
|
|
|
272
387
|
}
|
|
273
388
|
}
|
|
274
389
|
for (const [k, v] of Object.entries(payload)) {
|
|
390
|
+
// Mass-assignment (fillable/guarded) is the more specific gate — it wins.
|
|
275
391
|
if (!allowed(k))
|
|
276
392
|
throw new MassAssignmentError(ctor.name, k);
|
|
393
|
+
// Otherwise reject keys that aren't declared columns at all (Lucid
|
|
394
|
+
// strict), unless the caller opts into dropping extras.
|
|
395
|
+
if (!known.has(k)) {
|
|
396
|
+
if (allowExtraProperties)
|
|
397
|
+
continue;
|
|
398
|
+
throw new AtlasError("E_EXTRA_PROPERTIES", `Cannot fill '${k}' on ${ctor.name}: it is not a declared column.`, {
|
|
399
|
+
hint: "Declare it with @Column, or pass allowExtraProperties=true to ignore extra keys.",
|
|
400
|
+
});
|
|
401
|
+
}
|
|
277
402
|
this[k] = v;
|
|
278
403
|
}
|
|
279
404
|
return this;
|
|
280
405
|
}
|
|
406
|
+
/**
|
|
407
|
+
* The set of keys `fill`/`merge` treat as declared attributes: `@Column`
|
|
408
|
+
* property keys, the primary key, and any names the user listed in
|
|
409
|
+
* `static fillable` / `static guarded` (which reference real columns).
|
|
410
|
+
* Anything outside this set is an "extra property" rejected unless
|
|
411
|
+
* `allowExtraProperties` is passed.
|
|
412
|
+
*/
|
|
413
|
+
#knownColumnKeys() {
|
|
414
|
+
const ctor = this.constructor;
|
|
415
|
+
const keys = new Set(getColumnMetadata(ctor).map((c) => c.propertyKey));
|
|
416
|
+
const pk = getPrimaryKey(ctor);
|
|
417
|
+
if (pk)
|
|
418
|
+
keys.add(pk);
|
|
419
|
+
for (const k of ctor.fillable ?? [])
|
|
420
|
+
keys.add(k);
|
|
421
|
+
for (const k of ctor.guarded ?? [])
|
|
422
|
+
keys.add(k);
|
|
423
|
+
return keys;
|
|
424
|
+
}
|
|
425
|
+
/**
|
|
426
|
+
* Throw `MassAssignmentError` if `key` is blocked by the class's static
|
|
427
|
+
* `fillable` allowlist / `guarded` denylist — the SAME rule `fill()`/`merge()`
|
|
428
|
+
* enforce. Repositories call this in `create`/`createMany`/`updateOrCreate` so
|
|
429
|
+
* those paths cannot bypass mass-assignment protection (a `guarded` column
|
|
430
|
+
* like `role`/`isAdmin` must not be settable from a plain payload).
|
|
431
|
+
*/
|
|
432
|
+
assertMassAssignable(key) {
|
|
433
|
+
const ctor = this.constructor;
|
|
434
|
+
if (ctor.fillable && ctor.guarded) {
|
|
435
|
+
throw new Error(`${ctor.name}: cannot declare both 'fillable' and 'guarded'`);
|
|
436
|
+
}
|
|
437
|
+
const allowed = ctor.fillable
|
|
438
|
+
? ctor.fillable.includes(key)
|
|
439
|
+
: ctor.guarded
|
|
440
|
+
? !ctor.guarded.includes(key)
|
|
441
|
+
: true;
|
|
442
|
+
if (!allowed)
|
|
443
|
+
throw new MassAssignmentError(ctor.name, key);
|
|
444
|
+
}
|
|
281
445
|
/**
|
|
282
446
|
* Patch the entity with a payload, only touching the provided keys. Same
|
|
283
447
|
* allowlist/blocklist rules as `fill` but preserves fields not present in
|
|
284
448
|
* the payload.
|
|
285
449
|
*/
|
|
286
|
-
merge(payload) {
|
|
450
|
+
merge(payload, allowExtraProperties = false) {
|
|
287
451
|
const ctor = this.constructor;
|
|
288
452
|
if (ctor.fillable && ctor.guarded) {
|
|
289
453
|
throw new Error(`${ctor.name}: cannot declare both 'fillable' and 'guarded'`);
|
|
290
454
|
}
|
|
455
|
+
const known = this.#knownColumnKeys();
|
|
291
456
|
const allowed = (key) => {
|
|
292
457
|
if (ctor.fillable)
|
|
293
458
|
return ctor.fillable.includes(key);
|
|
@@ -299,6 +464,13 @@ export class BaseEntity {
|
|
|
299
464
|
if (!allowed(k)) {
|
|
300
465
|
throw new MassAssignmentError(ctor.name, k);
|
|
301
466
|
}
|
|
467
|
+
if (!known.has(k)) {
|
|
468
|
+
if (allowExtraProperties)
|
|
469
|
+
continue;
|
|
470
|
+
throw new AtlasError("E_EXTRA_PROPERTIES", `Cannot merge '${k}' on ${ctor.name}: it is not a declared column.`, {
|
|
471
|
+
hint: "Declare it with @Column, or pass allowExtraProperties=true to ignore extra keys.",
|
|
472
|
+
});
|
|
473
|
+
}
|
|
302
474
|
this[k] = v;
|
|
303
475
|
}
|
|
304
476
|
return this;
|
|
@@ -315,6 +487,25 @@ export class BaseEntity {
|
|
|
315
487
|
clearDomainEvents() {
|
|
316
488
|
this.#domainEvents = [];
|
|
317
489
|
}
|
|
490
|
+
/**
|
|
491
|
+
* Number of queued domain events — snapshot this BEFORE a transactional write
|
|
492
|
+
* so a rollback can drop only the events that write added (see
|
|
493
|
+
* {@link restoreDomainEventsTo}), preserving any the caller queued earlier.
|
|
494
|
+
*/
|
|
495
|
+
domainEventCount() {
|
|
496
|
+
return this.#domainEvents.length;
|
|
497
|
+
}
|
|
498
|
+
/**
|
|
499
|
+
* Truncate the queued domain events back to a floor captured before a
|
|
500
|
+
* transactional write. On rollback this drops the tx-added events while
|
|
501
|
+
* KEEPING pre-existing ones (which describe work outside the rolled-back
|
|
502
|
+
* transaction). Events are append-only (`push`), so the first `n` are the
|
|
503
|
+
* pre-existing ones. A floor past the current length is a no-op.
|
|
504
|
+
*/
|
|
505
|
+
restoreDomainEventsTo(n) {
|
|
506
|
+
if (n < this.#domainEvents.length)
|
|
507
|
+
this.#domainEvents.length = Math.max(0, n);
|
|
508
|
+
}
|
|
318
509
|
/** Get and clear accumulated domain events atomically. */
|
|
319
510
|
flushDomainEvents() {
|
|
320
511
|
const events = [...this.#domainEvents];
|
|
@@ -334,53 +525,167 @@ export class BaseEntity {
|
|
|
334
525
|
* @implements Story 32.4
|
|
335
526
|
*/
|
|
336
527
|
toJSON() {
|
|
528
|
+
const ctor = this.constructor;
|
|
529
|
+
const result = {
|
|
530
|
+
...this.serializeAttributes(),
|
|
531
|
+
...this.serializeRelations(),
|
|
532
|
+
...this.serializeComputed(),
|
|
533
|
+
};
|
|
534
|
+
// $extras (aggregates / pivot values) are serialized only when the model
|
|
535
|
+
// opts in via `static serializeExtras = true` — AdonisJS Lucid parity
|
|
536
|
+
// (default OFF), so internal aggregates never leak into API JSON by default.
|
|
537
|
+
if (!ctor.serializeExtras)
|
|
538
|
+
return result;
|
|
539
|
+
const extras = typeof ctor.serializeExtras === "function"
|
|
540
|
+
? ctor.serializeExtras(this.$extras)
|
|
541
|
+
: this.$extras;
|
|
542
|
+
return { ...result, ...extras };
|
|
543
|
+
}
|
|
544
|
+
/**
|
|
545
|
+
* Effective hidden/visible sets — class-level `static hidden`/`static visible`
|
|
546
|
+
* allowlists layered with per-instance `makeHidden`/`makeVisible` overrides.
|
|
547
|
+
*/
|
|
548
|
+
#visibility() {
|
|
337
549
|
const ctor = this.constructor;
|
|
338
550
|
const hidden = new Set(ctor.hidden ?? []);
|
|
551
|
+
// makeHidden adds, makeVisible force-shows.
|
|
552
|
+
for (const f of this.#hiddenOverride ?? [])
|
|
553
|
+
hidden.add(f);
|
|
554
|
+
for (const f of this.#visibleOverride ?? [])
|
|
555
|
+
hidden.delete(f);
|
|
339
556
|
const visible = ctor.visible && ctor.visible.length > 0 ? new Set(ctor.visible) : null;
|
|
557
|
+
return { hidden, visible };
|
|
558
|
+
}
|
|
559
|
+
#isVisible(key, hidden, visible) {
|
|
560
|
+
if (visible && !visible.has(key) && !this.#visibleOverride?.has(key))
|
|
561
|
+
return false;
|
|
562
|
+
return !hidden.has(key);
|
|
563
|
+
}
|
|
564
|
+
/**
|
|
565
|
+
* Serialize the regular `@column` attributes only — respecting hidden/visible
|
|
566
|
+
* allowlists and per-column `serializeAs`/`serialize` overrides. Override this
|
|
567
|
+
* to customize attribute serialization (AdonisJS Lucid `serializeAttributes`).
|
|
568
|
+
*/
|
|
569
|
+
serializeAttributes() {
|
|
570
|
+
const ctor = this.constructor;
|
|
340
571
|
const serializeConfig = getColumnSerializeConfig(ctor);
|
|
341
|
-
|
|
342
|
-
//
|
|
343
|
-
//
|
|
344
|
-
|
|
345
|
-
const
|
|
572
|
+
const relKeys = new Set(getRelationMetadata(ctor).map((r) => r.propertyKey));
|
|
573
|
+
// Only DECLARED @column.date/dateTime columns get ISO'd — a business value
|
|
574
|
+
// object that happens to expose toISO() on a non-date column is left intact.
|
|
575
|
+
const dateCols = getDateColumnConfig(ctor);
|
|
576
|
+
const { hidden, visible } = this.#visibility();
|
|
346
577
|
const result = {};
|
|
347
|
-
// Regular columns (respecting hidden/visible + serialize overrides)
|
|
348
578
|
for (const key of Object.keys(this)) {
|
|
349
579
|
if (INTERNAL_KEYS.has(key))
|
|
350
580
|
continue;
|
|
351
|
-
if (
|
|
352
|
-
continue;
|
|
353
|
-
if (
|
|
581
|
+
if (relKeys.has(key))
|
|
582
|
+
continue; // handled by serializeRelations
|
|
583
|
+
if (!this.#isVisible(key, hidden, visible))
|
|
354
584
|
continue;
|
|
355
|
-
// Preloaded relation: honour its `serializeAs` (rename, or `null` hides
|
|
356
|
-
// it from the JSON). The nested entity serializes via its own toJSON.
|
|
357
|
-
const rel = relByKey.get(key);
|
|
358
|
-
if (rel) {
|
|
359
|
-
if (rel.serializeAs === null)
|
|
360
|
-
continue;
|
|
361
|
-
result[rel.serializeAs ?? key] = this[key];
|
|
362
|
-
continue;
|
|
363
|
-
}
|
|
364
585
|
const cfg = serializeConfig[key];
|
|
365
586
|
if (cfg?.serializeAs === null)
|
|
366
587
|
continue; // explicit hide
|
|
367
588
|
const outKey = cfg?.serializeAs ?? key;
|
|
368
589
|
const rawValue = this[key];
|
|
369
|
-
|
|
590
|
+
// A @column.dateTime value is a Chronos DateTime; serialize it to an ISO
|
|
591
|
+
// string (AdonisJS Lucid serializes date columns to ISO), unless an
|
|
592
|
+
// explicit @Column({ serialize }) override takes over.
|
|
593
|
+
result[outKey] = cfg?.serialize
|
|
594
|
+
? // Adonis Lucid signature: (value, attribute, model).
|
|
595
|
+
cfg.serialize(rawValue, key, this)
|
|
596
|
+
: dateCols[key] && hasToISO(rawValue)
|
|
597
|
+
? rawValue.toISO()
|
|
598
|
+
: rawValue;
|
|
370
599
|
}
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
600
|
+
return result;
|
|
601
|
+
}
|
|
602
|
+
/**
|
|
603
|
+
* Serialize preloaded relations only — honouring each relation's `serializeAs`
|
|
604
|
+
* (rename, or `null` to hide). Nested entities serialize via their own
|
|
605
|
+
* `toJSON`. Override to customize (AdonisJS Lucid `serializeRelations`).
|
|
606
|
+
*/
|
|
607
|
+
serializeRelations() {
|
|
608
|
+
const ctor = this.constructor;
|
|
609
|
+
const relByKey = new Map(getRelationMetadata(ctor).map((r) => [r.propertyKey, r]));
|
|
610
|
+
const { hidden, visible } = this.#visibility();
|
|
611
|
+
const result = {};
|
|
612
|
+
for (const key of Object.keys(this)) {
|
|
613
|
+
if (!this.#isVisible(key, hidden, visible))
|
|
614
|
+
continue;
|
|
615
|
+
const rel = relByKey.get(key);
|
|
616
|
+
if (!rel)
|
|
375
617
|
continue;
|
|
376
|
-
if (
|
|
618
|
+
if (rel.serializeAs === null)
|
|
619
|
+
continue;
|
|
620
|
+
result[rel.serializeAs ?? key] = this[key];
|
|
621
|
+
}
|
|
622
|
+
return result;
|
|
623
|
+
}
|
|
624
|
+
/**
|
|
625
|
+
* Serialize `@computed` getters only. Override to customize
|
|
626
|
+
* (AdonisJS Lucid `serializeComputed`).
|
|
627
|
+
*/
|
|
628
|
+
serializeComputed() {
|
|
629
|
+
const ctor = this.constructor;
|
|
630
|
+
const { hidden, visible } = this.#visibility();
|
|
631
|
+
const result = {};
|
|
632
|
+
for (const prop of getComputedProperties(ctor)) {
|
|
633
|
+
if (!this.#isVisible(prop, hidden, visible))
|
|
377
634
|
continue;
|
|
378
635
|
result[prop] = this[prop];
|
|
379
636
|
}
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
637
|
+
return result;
|
|
638
|
+
}
|
|
639
|
+
// Per-instance serialization visibility.
|
|
640
|
+
//
|
|
641
|
+
// NOT Lucid parity, despite what these used to claim: `makeHidden` /
|
|
642
|
+
// `makeVisible` and the `static hidden` / `static visible` allowlists do not
|
|
643
|
+
// exist in Lucid (checked against adonisjs/lucid `develop` — LucidRow and
|
|
644
|
+
// LucidModel declare neither). Lucid hides a column with
|
|
645
|
+
// `@column({ serializeAs: null })`, which atlas also supports. This is an
|
|
646
|
+
// atlas addition of Eloquent lineage, kept because per-instance visibility
|
|
647
|
+
// is genuinely useful; it is a named deviation, not a Lucid feature.
|
|
648
|
+
#hiddenOverride;
|
|
649
|
+
#visibleOverride;
|
|
650
|
+
/**
|
|
651
|
+
* Hide these fields when serializing THIS instance, on top of the class-level
|
|
652
|
+
* `static hidden`. Chainable.
|
|
653
|
+
*
|
|
654
|
+
* An atlas addition, not Lucid — see the `#hiddenOverride` note. Lucid's
|
|
655
|
+
* equivalent is the static `@column({ serializeAs: null })`, which atlas
|
|
656
|
+
* supports too; this is the per-instance form Lucid has no answer for.
|
|
657
|
+
*/
|
|
658
|
+
makeHidden(...fields) {
|
|
659
|
+
this.#hiddenOverride ??= new Set();
|
|
660
|
+
for (const f of fields)
|
|
661
|
+
this.#hiddenOverride.add(f);
|
|
662
|
+
return this;
|
|
663
|
+
}
|
|
664
|
+
/**
|
|
665
|
+
* Force these fields visible when serializing THIS instance, overriding the
|
|
666
|
+
* class-level `static hidden`/`visible`. Chainable.
|
|
667
|
+
*
|
|
668
|
+
* An atlas addition, not Lucid — see {@link makeHidden}.
|
|
669
|
+
*/
|
|
670
|
+
makeVisible(...fields) {
|
|
671
|
+
this.#visibleOverride ??= new Set();
|
|
672
|
+
for (const f of fields)
|
|
673
|
+
this.#visibleOverride.add(f);
|
|
674
|
+
return this;
|
|
675
|
+
}
|
|
676
|
+
/**
|
|
677
|
+
* Plain object of the raw columns + preloaded relations + `$extras`, WITHOUT
|
|
678
|
+
* any serialization transform (no `hidden`/`visible`, no `serializeAs`, no
|
|
679
|
+
* per-column `serialize`) — AdonisJS Lucid `toObject()`.
|
|
680
|
+
*/
|
|
681
|
+
toObject() {
|
|
682
|
+
const out = {};
|
|
683
|
+
for (const key of Object.keys(this)) {
|
|
684
|
+
if (INTERNAL_KEYS.has(key))
|
|
685
|
+
continue;
|
|
686
|
+
out[key] = this[key];
|
|
687
|
+
}
|
|
688
|
+
return { ...out, ...this.$extras };
|
|
384
689
|
}
|
|
385
690
|
/**
|
|
386
691
|
* Pick / limit the fields returned by `toJSON()` for a single call.
|
|
@@ -399,6 +704,7 @@ export class BaseEntity {
|
|
|
399
704
|
return picked;
|
|
400
705
|
}
|
|
401
706
|
}
|
|
707
|
+
_a = BaseEntity;
|
|
402
708
|
// ─── Computed / serialize metadata accessors ────────────────────
|
|
403
709
|
/** Collect the names of all `@computed` getters declared on the prototype chain. */
|
|
404
710
|
function getComputedProperties(ctor) {
|
package/dist/BaseEntity.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseEntity.js","sourceRoot":"","sources":["../src/BaseEntity.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BaseEntity.js","sourceRoot":"","sources":["../src/BaseEntity.ts"],"names":[],"mappings":"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"}
|