@rudderjs/orm 1.3.0 → 1.5.0

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 CHANGED
@@ -109,6 +109,120 @@ const user = await User.create({ name: 'Alice', email: 'alice@example.com' })
109
109
 
110
110
  ---
111
111
 
112
+ ## Relations
113
+
114
+ Eager loading is delegated to the adapter — Prisma's `include` / `select` and Drizzle's `with()` are already type-safe and support depth, ordering, and selective columns. The ORM ships a thin **lazy fluent fetch** API on top: declare the relation on `static relations` and call `instance.related(name)` to get a chainable QueryBuilder scoped to the parent record.
115
+
116
+ ```ts
117
+ class User extends Model {
118
+ static override relations = {
119
+ posts: { type: 'hasMany', model: () => Post, foreignKey: 'authorId' },
120
+ team: { type: 'belongsTo', model: () => Team, foreignKey: 'teamId' },
121
+ phone: { type: 'hasOne', model: () => Phone, foreignKey: 'userId' },
122
+ roles: { type: 'belongsToMany', model: () => Role, pivotTable: 'role_user' },
123
+ } as const
124
+ }
125
+
126
+ const user = await User.find(1)
127
+ const recentPosts = await user!.related('posts').orderBy('createdAt', 'desc').limit(5).get()
128
+ const team = await user!.related('team').first()
129
+
130
+ // Many-to-many: chainable read filtered through the pivot
131
+ const activeRoles = await user!.related('roles').where('active', true).get()
132
+
133
+ // Pivot mutations on the auto-generated per-relation accessor
134
+ await user!.roles().attach([1, 2, 3])
135
+ await user!.roles().attach([1], { addedBy: 'admin' })
136
+ await user!.roles().detach([2])
137
+ const result = await user!.roles().sync([1, 3, 5])
138
+ // → { attached: [3, 5], detached: [2] }
139
+ ```
140
+
141
+ Supported types: `hasOne`, `hasMany`, `belongsTo`, `belongsToMany`, `morphMany`, `morphOne`, `morphTo`. Defaults: `foreignKey` → `<parentClassName>Id` for `hasOne`/`hasMany`, `<relatedClassName>Id` for `belongsTo`. For `belongsToMany`, `pivotTable` is required; `foreignPivotKey` / `relatedPivotKey` default to camelCase of each side's class name + `Id`. The `model: () => Class` thunk avoids circular-import issues.
142
+
143
+ ### Polymorphic relations
144
+
145
+ `morphMany` / `morphOne` / `morphTo` let one related table belong to several parent types (Comments on Posts and Videos, Images on Users and Products, etc.). The polymorphic side carries two columns — `{morphName}Id` and `{morphName}Type` — written in **camelCase** for ORM consistency (a deliberate divergence from Laravel's snake_case).
146
+
147
+ ```prisma
148
+ model Comment {
149
+ id Int @id @default(autoincrement())
150
+ body String
151
+ commentableId Int
152
+ commentableType String
153
+ }
154
+
155
+ model Post { id Int @id @default(autoincrement()); title String }
156
+ model Video { id Int @id @default(autoincrement()); url String }
157
+ ```
158
+
159
+ ```ts
160
+ class Post extends Model { static override table = 'post'; id!: number; title!: string }
161
+ class Video extends Model { static override table = 'video'; id!: number; url!: string }
162
+
163
+ class Comment extends Model {
164
+ static override relations = {
165
+ commentable: {
166
+ type: 'morphTo' as const,
167
+ morphName: 'commentable',
168
+ types: () => [Post, Video], // closed list of allowed targets
169
+ },
170
+ }
171
+ id!: number
172
+ body!: string
173
+ commentableId!: number
174
+ commentableType!: string
175
+ }
176
+
177
+ class Post extends Model {
178
+ static override relations = {
179
+ comments: { type: 'morphMany' as const, model: () => Comment, morphName: 'commentable' },
180
+ }
181
+ }
182
+
183
+ // Reads
184
+ const post = await Post.find(1)
185
+ const comments = await post!.related('comments').get()
186
+ const comment = await Comment.find(1)
187
+ const owner = await comment!.related('commentable').first() // Post or Video
188
+
189
+ // Writes — Model.morph() builds the { id + type } payload
190
+ await Comment.create({
191
+ body: 'Nice post',
192
+ ...Model.morph('commentable', post!),
193
+ })
194
+ ```
195
+
196
+ The discriminator stored in `{morphName}Type` defaults to the parent's class name (`'Post'`, `'Video'`). Override per-class with `static morphAlias = 'post'` to decouple persisted values from JS class names — useful for rename-safe storage. Once set and data exists, treat it as immutable. In dev mode (`NODE_ENV !== 'production'`), `morphTo` resolution checks the `types` list for duplicate discriminators and throws if two classes resolve to the same value.
197
+
198
+ `belongsToMany` and polymorphic v1 limitations: pivot columns are not surfaced on read results (write side only), no `withTimestamps`, no `morphToMany` / `morphedByMany`, no fluent eager-load (`User.with('comments.commentable')`) — drop to the adapter (Prisma `include`) for those. Mutations on the deferred read query (`create`/`update`/`delete`/`insertMany`/`deleteAll`) throw — write through the related model directly.
199
+
200
+ ---
201
+
202
+ ## Route model binding
203
+
204
+ Models opt into route binding by exposing `static routeKey` (defaults to `'id'`) and `static findForRoute(value)`. The router's `router.bind(name, ModelClass)` API picks them up:
205
+
206
+ ```ts
207
+ // Model
208
+ class Post extends Model {
209
+ static override routeKey = 'slug'
210
+
211
+ // Optional override — apply additional constraints.
212
+ static override async findForRoute(value: string) {
213
+ return await this.where('slug', value).where('publishedAt', '!=', null).first()
214
+ }
215
+ }
216
+
217
+ // routes/web.ts
218
+ router.bind('post', Post)
219
+ router.get('/posts/:post', (req) => req.bound!['post'])
220
+ ```
221
+
222
+ Returns `null` when not found — the router translates that into a `RouteModelNotFoundError`. See the [routing guide](https://github.com/rudderjs/rudder/blob/main/docs/guide/routing.md#route-model-binding) for the full router-side contract.
223
+
224
+ ---
225
+
112
226
  ## Attribute Casts
113
227
 
114
228
  Casts automatically transform attribute values when reading from and writing to the database.
@@ -76,6 +76,87 @@ await Post.restore(id)
76
76
  await Post.forceDelete(id)
77
77
  ```
78
78
 
79
+ ### Hydrated instances
80
+
81
+ Every read path (`find`/`first`/`all`/`paginate`/`where(...).first()`/`where(...).get()`/`create`/`update`/`restore`/`firstOrCreate`/`updateOrCreate`) returns Model instances — not plain records. Instance methods you define on the class work directly:
82
+
83
+ ```ts
84
+ class User extends Model {
85
+ isAdmin() { return this.role === 'admin' }
86
+ }
87
+
88
+ const user = await User.find(id)
89
+ if (user?.isAdmin()) { /* ... */ }
90
+ ```
91
+
92
+ The base Model ships with persistence + identity instance methods:
93
+
94
+ ```ts
95
+ const user = await User.find(id)
96
+
97
+ user.fill({ name: 'New' }) // mass-assign without persisting (filtered by `fillable`)
98
+ user.forceFill({ role: 'admin' }) // mass-assign WITHOUT the filter (trusted source)
99
+ await user.save() // insert if no PK; otherwise update
100
+ await user.refresh() // re-read row + replace fields in place
101
+ await user.delete() // soft-delete or hard-delete based on softDeletes
102
+ const draft = user.replicate() // unsaved clone (drops PK + timestamps)
103
+ user.is(other) // identity by table + PK
104
+ user.trashed() // true if deletedAt is set
105
+ ```
106
+
107
+ `Model.hydrate(record)` wraps a plain record (cached JSON, fixture) into a Model instance.
108
+
109
+ ### Mass assignment
110
+
111
+ `static fillable` (allowlist) and `static guarded` (denylist; `['*']` locks all) are enforced on `Model.create()`, `Model.update()`, and `instance.fill()` — keys outside the policy are silently dropped. Both default to `[]` (no enforcement). `fillable` wins when both set.
112
+
113
+ ```ts
114
+ class User extends Model {
115
+ static fillable = ['name', 'email']
116
+ }
117
+
118
+ await User.create({ name: 'A', email: 'a@x.com', isAdmin: true }) // isAdmin dropped
119
+ ```
120
+
121
+ Bypass paths:
122
+ - `instance.forceFill(data)` — skip the filter (factories, internal sync, fixtures).
123
+ - `instance.save()` after direct property assignment — `user.role = 'admin'; await user.save()` works regardless of `fillable`.
124
+
125
+ **Heads-up for `firstOrCreate(attrs, values)`:** `attrs` go through `create()` so lookup keys must be in `fillable` too — otherwise the lookup column won't be set on the new row.
126
+
127
+ ### Counters: increment / decrement
128
+
129
+ For counter columns, use the atomic `increment`/`decrement` instead of read-modify-write:
130
+
131
+ ```ts
132
+ await Post.increment(postId, 'viewCount') // +1, atomic SQL
133
+ await Post.increment(postId, 'viewCount', 5) // +5
134
+ await User.decrement(userId, 'credits', 10, { lastSeen: new Date() }) // with extras
135
+
136
+ // Instance variant — merges new value back so post.viewCount reflects it
137
+ await post.increment('viewCount')
138
+ ```
139
+
140
+ **Caveat:** `increment`/`decrement` deliberately do NOT fire `updating`/`updated`/`saving`/`saved` observers. Counter updates are a pure data-plane operation. If you need observer hooks, read the row, compute the resolved value, and call `Model.update()` instead.
141
+
142
+ ### firstOrCreate / updateOrCreate
143
+
144
+ ```ts
145
+ // Find by email; if missing, create with attrs + values merged
146
+ const user = await User.firstOrCreate(
147
+ { email: 'a@x.com' },
148
+ { name: 'Alice', role: 'user' },
149
+ )
150
+
151
+ // Find by email; if found update with values, else create with merge
152
+ const user = await User.updateOrCreate(
153
+ { email: 'a@x.com' },
154
+ { name: 'Alice', role: 'admin' },
155
+ )
156
+ ```
157
+
158
+ `firstOrCreate` filters by all keys in the first argument; the second is only used on create. `updateOrCreate` always writes the second argument. Both go through `Model.create()`/`Model.update()`, so `fillable` applies (lookup attrs must be fillable).
159
+
79
160
  ### Scopes
80
161
 
81
162
  ```ts
package/dist/index.d.ts CHANGED
@@ -42,12 +42,14 @@ export declare class ModelRegistry {
42
42
  }
43
43
  /**
44
44
  * Thrown by `Model.findOrFail()` and `Model.firstOrFail()` when no record matches.
45
- * Apps can catch this to render a 404, or let it bubble — `@rudderjs/core` maps
46
- * it to an HTTP 404 by default.
45
+ * Apps can catch this to render a custom 404, or let it bubble — `@rudderjs/core`
46
+ * picks up the duck-typed `httpStatus` and renders an HTTP 404 by default.
47
47
  */
48
48
  export declare class ModelNotFoundError extends Error {
49
49
  readonly model: string;
50
50
  readonly id?: string | number;
51
+ /** Duck-typed signal to `@rudderjs/core`'s exception handler. */
52
+ readonly httpStatus = 404;
51
53
  constructor(model: string, id?: string | number);
52
54
  }
53
55
  export type ModelEvent = 'retrieved' | 'creating' | 'created' | 'updating' | 'updated' | 'saving' | 'saved' | 'deleting' | 'deleted' | 'restoring' | 'restored';
@@ -68,6 +70,88 @@ export interface ModelObserver {
68
70
  restored?(record: Record<string, unknown>): void | Promise<void>;
69
71
  }
70
72
  type ScopeFn = (query: QueryBuilder<any>, ...args: any[]) => QueryBuilder<any>;
73
+ /**
74
+ * Thin relation declaration consumed by {@link Model.related}.
75
+ *
76
+ * Lazy `model: () => SomeModel` avoids circular imports — relation declarations
77
+ * sit on each side of the relationship and would otherwise need to reference
78
+ * each other at module evaluation time.
79
+ *
80
+ * - `hasMany` / `hasOne`: parent owns the foreign key on the related table.
81
+ * `foreignKey` is the column on the *related* table pointing back to the
82
+ * parent's primary key. Defaults to `<parentClassName>Id` (camelCased), e.g.
83
+ * `userId` for a `User`.
84
+ * - `belongsTo`: this model carries the foreign key. `foreignKey` is the column
85
+ * on *this* model holding the related row's primary key. Defaults to
86
+ * `<relatedClassName>Id`, e.g. `teamId` for `team: belongsTo(Team)`.
87
+ *
88
+ * `localKey` lets you override the column resolved on the parent side (the
89
+ * primary key by default for has*, or the foreign key for belongsTo).
90
+ *
91
+ * `belongsToMany` declares a many-to-many relation through a pivot table.
92
+ * `pivotTable` is required; the two pivot keys default to camelCase of each
93
+ * side's class name + `Id` (`User` ⇄ `Role` → `userId` / `roleId`). Reads
94
+ * route through `Model.related(name)` returning a chainable QueryBuilder on
95
+ * the related model; pivot mutations (`attach` / `detach` / `sync`) live on
96
+ * the per-relation accessor (`user.roles().attach([1,2])`) — see
97
+ * {@link Model.belongsToMany}.
98
+ */
99
+ export type RelationDefinition = {
100
+ type: 'hasOne' | 'hasMany' | 'belongsTo';
101
+ /** Lazy reference to the related model class — avoids circular imports. */
102
+ model: () => typeof Model;
103
+ /** Foreign-key column. Defaults are described in the interface comment. */
104
+ foreignKey?: string;
105
+ /** Override the local column joined against `foreignKey`. */
106
+ localKey?: string;
107
+ } | {
108
+ type: 'belongsToMany';
109
+ /** Lazy reference to the related model class — avoids circular imports. */
110
+ model: () => typeof Model;
111
+ /** Pivot table name — required. Conventionally `<a>_<b>` alphabetical. */
112
+ pivotTable: string;
113
+ /** Pivot column pointing at the parent. Default: `${camelCase(thisClass)}Id`. */
114
+ foreignPivotKey?: string;
115
+ /** Pivot column pointing at the related row. Default: `${camelCase(relatedClass)}Id`. */
116
+ relatedPivotKey?: string;
117
+ /** Column on the parent model joined against `foreignPivotKey`. Default: `primaryKey`. */
118
+ parentKey?: string;
119
+ /** Column on the related model joined against `relatedPivotKey`. Default: `Related.primaryKey`. */
120
+ relatedKey?: string;
121
+ } | {
122
+ type: 'morphMany';
123
+ /** Lazy reference to the related (child) model class — avoids circular imports. */
124
+ model: () => typeof Model;
125
+ /** Polymorphic relation name — drives `{morphName}Id` + `{morphName}Type` columns.
126
+ * E.g. `morphName: 'commentable'` → columns `commentableId` / `commentableType`. */
127
+ morphName: string;
128
+ /** Override the discriminator value written to `{morphName}Type`.
129
+ * Defaults to `Parent.morphAlias ?? Parent.name`. */
130
+ morphType?: string;
131
+ /** Override the parent column joined against `{morphName}Id`. Default: `Parent.primaryKey`. */
132
+ localKey?: string;
133
+ } | {
134
+ type: 'morphOne';
135
+ /** Lazy reference to the related (child) model class — avoids circular imports. */
136
+ model: () => typeof Model;
137
+ /** Polymorphic relation name — drives `{morphName}Id` + `{morphName}Type` columns. */
138
+ morphName: string;
139
+ /** Override the discriminator value written to `{morphName}Type`.
140
+ * Defaults to `Parent.morphAlias ?? Parent.name`. */
141
+ morphType?: string;
142
+ /** Override the parent column joined against `{morphName}Id`. Default: `Parent.primaryKey`. */
143
+ localKey?: string;
144
+ } | {
145
+ type: 'morphTo';
146
+ /** Polymorphic relation name — drives `{morphName}Id` + `{morphName}Type` columns. */
147
+ morphName: string;
148
+ /** Closed list of allowed target classes. Lazy thunk dodges circular imports.
149
+ * Required: `morphTo` resolution looks up the class whose `morphAlias ?? name`
150
+ * matches the value stored in `{morphName}Type`. Listing the closed set keeps
151
+ * lookup deterministic without depending on `ModelRegistry.register` having
152
+ * been called eagerly for every target. */
153
+ types: () => Array<typeof Model>;
154
+ };
71
155
  /**
72
156
  * Mark an instance property as hidden from JSON output.
73
157
  * Equivalent to adding the field name to `static hidden`.
@@ -122,6 +206,101 @@ export declare abstract class Model {
122
206
  static table: string;
123
207
  /** Primary key column */
124
208
  static primaryKey: string;
209
+ /**
210
+ * Discriminator value written to `{morph}Type` columns by polymorphic
211
+ * relations (`morphTo` / `morphMany` / `morphOne`). Defaults to `Class.name`.
212
+ * Override to decouple the persisted discriminator from the JS class name —
213
+ * lets you rename the class without rewriting historical rows.
214
+ *
215
+ * Once set and data exists, treat as immutable storage — same posture as a
216
+ * column rename.
217
+ *
218
+ * @example
219
+ * class BlogPost extends Model {
220
+ * static override morphAlias = 'post' // stores 'post', not 'BlogPost'
221
+ * }
222
+ */
223
+ static morphAlias?: string;
224
+ /**
225
+ * Column used to resolve a route parameter into a Model instance via
226
+ * {@link Model.findForRoute}. Defaults to the primary key. Override to
227
+ * resolve by slug, uuid, or any other unique column:
228
+ *
229
+ * ```ts
230
+ * class Post extends Model {
231
+ * static override routeKey = 'slug'
232
+ * }
233
+ * ```
234
+ *
235
+ * Then in `routes/web.ts`:
236
+ *
237
+ * ```ts
238
+ * router.bind('post', Post)
239
+ * router.get('/posts/:post', (req) => req.bound['post'])
240
+ * ```
241
+ */
242
+ static routeKey: string;
243
+ /**
244
+ * Resolve a route parameter value into a Model instance.
245
+ *
246
+ * Default implementation runs `Model.where(routeKey, value).first()`. Override
247
+ * on a subclass to apply additional constraints (auth scope, soft-delete
248
+ * behavior, etc.):
249
+ *
250
+ * ```ts
251
+ * static override async findForRoute(value: string) {
252
+ * return await this.where('slug', value)
253
+ * .where('publishedAt', '!=', null)
254
+ * .first()
255
+ * }
256
+ * ```
257
+ *
258
+ * Returns `null` when no record matches; the router translates that into a
259
+ * `RouteModelNotFoundError` (HTTP 404) for required bindings.
260
+ *
261
+ * The return type is `Model | null` rather than the generic `InstanceType<T>`
262
+ * so subclass overrides can narrow it without violating variance under
263
+ * `exactOptionalPropertyTypes`.
264
+ */
265
+ static findForRoute(value: string): Promise<Model | null>;
266
+ /**
267
+ * Relation map — a thin declaration of how each named relation joins to the
268
+ * owner model. Used by {@link Model.related} (instance) and {@link Model.with}.
269
+ *
270
+ * **This is not a substitute for the adapter's relation engine.** Prisma's
271
+ * `include` and Drizzle's `with()` already handle eager loading, joins, and
272
+ * type inference. The relation map exists for the *fluent lazy-fetch* case —
273
+ * `await user.related('posts').where('published', true).get()` — where you
274
+ * want a chainable QueryBuilder scoped to the parent record.
275
+ *
276
+ * Supported types: `hasMany`, `hasOne`, `belongsTo`, `belongsToMany`,
277
+ * `morphMany`, `morphOne`, `morphTo`. Polymorphic columns use camelCase
278
+ * (`commentableId` / `commentableType`) for ORM consistency — a deliberate
279
+ * divergence from Laravel's snake_case. `morphToMany` / `morphedByMany` are
280
+ * deferred (drop to the adapter for now).
281
+ *
282
+ * For `belongsToMany`, pivot mutations (`attach` / `detach` / `sync`) live
283
+ * on a separate accessor — see {@link Model.belongsToMany}. `related()`
284
+ * returns the related rows already filtered through the pivot, so callers
285
+ * can chain `where`/`orderBy`/`paginate` without seeing the pivot.
286
+ *
287
+ * @example
288
+ * class User extends Model {
289
+ * static override relations = {
290
+ * posts: { type: 'hasMany', model: () => Post, foreignKey: 'authorId' },
291
+ * team: { type: 'belongsTo', model: () => Team, foreignKey: 'teamId' },
292
+ * phone: { type: 'hasOne', model: () => Phone, foreignKey: 'userId' },
293
+ * roles: { type: 'belongsToMany', model: () => Role, pivotTable: 'role_user' },
294
+ * image: { type: 'morphOne', model: () => Image, morphName: 'imageable' },
295
+ * } as const
296
+ * }
297
+ *
298
+ * const user = await User.find(1)
299
+ * await user!.related('posts').where('published', true).get()
300
+ * await user!.related('roles').orderBy('name').get()
301
+ * await user!.roles().attach([1, 2, 3])
302
+ */
303
+ static relations: Record<string, RelationDefinition>;
125
304
  /** Columns to hide from JSON output */
126
305
  static hidden: string[];
127
306
  /**
@@ -372,6 +551,60 @@ export declare abstract class Model {
372
551
  isNot(other: Model | null | undefined): boolean;
373
552
  /** True when this instance has been soft-deleted (its `deletedAt` is set). */
374
553
  trashed(): boolean;
554
+ /**
555
+ * Lazy-fetch a related record (or set of records) as a chainable query.
556
+ *
557
+ * Looks up the relation declared on `static relations`, builds a
558
+ * {@link QueryBuilder} on the related model already filtered to this
559
+ * instance, and returns it. Call any builder method (`where`, `orderBy`,
560
+ * `first`, `get`, `paginate`, ...) to finalize the query.
561
+ *
562
+ * For eager loading, prefer the adapter's native `with()` / `include` /
563
+ * `select` — this method is for the deferred, fluent case.
564
+ *
565
+ * @example
566
+ * const user = await User.find(1)
567
+ * const recent = await user!.related('posts').orderBy('createdAt', 'desc').limit(5).get()
568
+ *
569
+ * @throws Error when the relation is not declared on `static relations`.
570
+ * @throws Error when `belongsTo` is used and this instance has no value for
571
+ * the foreign-key column.
572
+ */
573
+ related(name: string): QueryBuilder<Model>;
574
+ /**
575
+ * Pivot-mutation accessor for a `belongsToMany` relation.
576
+ *
577
+ * Most callers use the auto-generated per-relation method
578
+ * (`user.roles().attach([1, 2])`) installed when the parent model is
579
+ * first queried. This static is the public-facing alias the
580
+ * auto-method dispatches to — call it directly when you want to define
581
+ * a typed wrapper on your Model subclass:
582
+ *
583
+ * ```ts
584
+ * class User extends Model {
585
+ * static override relations = {
586
+ * roles: { type: 'belongsToMany' as const, model: () => Role, pivotTable: 'role_user' },
587
+ * }
588
+ * // Override for typing — same behavior as the auto-generated method.
589
+ * roles() { return Model.belongsToMany(this, 'roles') }
590
+ * }
591
+ * ```
592
+ */
593
+ static belongsToMany(parent: Model, name: string): BelongsToManyAccessor;
594
+ /**
595
+ * Build the `{name}Id + {name}Type` payload for a polymorphic write.
596
+ *
597
+ * Spread into `Model.create()` (or any write) on the polymorphic side. The
598
+ * parent must already have a primary-key value — save it first if needed.
599
+ *
600
+ * @example
601
+ * await Comment.create({
602
+ * body: 'Nice post',
603
+ * ...Model.morph('commentable', post),
604
+ * })
605
+ * // → { body, commentableId: post.id, commentableType: 'Post' }
606
+ */
607
+ static morph(name: string, parent: Model): Record<string, unknown>;
375
608
  /** @internal — apply cast setters and attribute mutators to an incoming data payload */
376
609
  private static _applyMutators;
377
610
  /**
@@ -407,4 +640,47 @@ export declare abstract class Model {
407
640
  mergeHidden(keys: string[]): this;
408
641
  toJSON(): Record<string, unknown>;
409
642
  }
643
+ /**
644
+ * Helper for `Model.belongsToMany` — accepts both flat pivot data
645
+ * (same row written for every id) and a per-id map.
646
+ *
647
+ * Flat: `attach([1, 2, 3], { addedBy: 'admin' })`
648
+ * Per-id: `attach({ 1: { addedBy: 'admin' }, 2: { addedBy: 'system' } })`
649
+ */
650
+ type AttachInput = ReadonlyArray<number | string> | Record<string | number, Record<string, unknown>>;
651
+ /**
652
+ * Per-relation accessor for a `belongsToMany` relation. Returned from
653
+ * {@link Model.belongsToMany} and from the auto-generated prototype
654
+ * methods.
655
+ *
656
+ * `attach` writes new pivot rows. `detach` removes pivot rows. `sync`
657
+ * diffs the current pivot ids against the requested set and runs
658
+ * `attach`/`detach` for the difference.
659
+ */
660
+ export interface BelongsToManyAccessor {
661
+ /**
662
+ * Insert pivot rows. Accepts a list of ids (with optional flat pivot data
663
+ * applied to every row) or a per-id map keyed by related id with that
664
+ * row's pivot data.
665
+ *
666
+ * Empty input is a no-op — no INSERT, no error.
667
+ */
668
+ attach(input: AttachInput, flatPivot?: Record<string, unknown>): Promise<void>;
669
+ /**
670
+ * Delete pivot rows. With ids, deletes only the matching pivot rows.
671
+ * With no args, deletes all pivot rows for this parent.
672
+ */
673
+ detach(ids?: ReadonlyArray<number | string>): Promise<number>;
674
+ /**
675
+ * Diff the current pivot set against `desiredIds` — attach the missing,
676
+ * detach what's no longer present. Optional flat pivot data is written
677
+ * onto the *new* pivot rows only; existing rows are not modified.
678
+ *
679
+ * Returns counts of what changed.
680
+ */
681
+ sync(desiredIds: ReadonlyArray<number | string>, flatPivot?: Record<string, unknown>): Promise<{
682
+ attached: unknown[];
683
+ detached: unknown[];
684
+ }>;
685
+ }
410
686
  //# 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
@@ -37,6 +37,7 @@ export class ModelRegistry {
37
37
  if (!name || this.models.has(name))
38
38
  return;
39
39
  this.models.set(name, ModelClass);
40
+ _installBelongsToManyMethods(ModelClass);
40
41
  for (const listener of this.listeners)
41
42
  listener(name, ModelClass);
42
43
  }
@@ -64,12 +65,14 @@ export class ModelRegistry {
64
65
  // ─── Errors ────────────────────────────────────────────────
65
66
  /**
66
67
  * Thrown by `Model.findOrFail()` and `Model.firstOrFail()` when no record matches.
67
- * Apps can catch this to render a 404, or let it bubble — `@rudderjs/core` maps
68
- * it to an HTTP 404 by default.
68
+ * Apps can catch this to render a custom 404, or let it bubble — `@rudderjs/core`
69
+ * picks up the duck-typed `httpStatus` and renders an HTTP 404 by default.
69
70
  */
70
71
  export class ModelNotFoundError extends Error {
71
72
  model;
72
73
  id;
74
+ /** Duck-typed signal to `@rudderjs/core`'s exception handler. */
75
+ httpStatus = 404;
73
76
  constructor(model, id) {
74
77
  super(id !== undefined
75
78
  ? `[RudderJS ORM] No ${model} found for id ${String(id)}.`
@@ -161,6 +164,103 @@ export class Model {
161
164
  static table;
162
165
  /** Primary key column */
163
166
  static primaryKey = 'id';
167
+ /**
168
+ * Discriminator value written to `{morph}Type` columns by polymorphic
169
+ * relations (`morphTo` / `morphMany` / `morphOne`). Defaults to `Class.name`.
170
+ * Override to decouple the persisted discriminator from the JS class name —
171
+ * lets you rename the class without rewriting historical rows.
172
+ *
173
+ * Once set and data exists, treat as immutable storage — same posture as a
174
+ * column rename.
175
+ *
176
+ * @example
177
+ * class BlogPost extends Model {
178
+ * static override morphAlias = 'post' // stores 'post', not 'BlogPost'
179
+ * }
180
+ */
181
+ static morphAlias;
182
+ /**
183
+ * Column used to resolve a route parameter into a Model instance via
184
+ * {@link Model.findForRoute}. Defaults to the primary key. Override to
185
+ * resolve by slug, uuid, or any other unique column:
186
+ *
187
+ * ```ts
188
+ * class Post extends Model {
189
+ * static override routeKey = 'slug'
190
+ * }
191
+ * ```
192
+ *
193
+ * Then in `routes/web.ts`:
194
+ *
195
+ * ```ts
196
+ * router.bind('post', Post)
197
+ * router.get('/posts/:post', (req) => req.bound['post'])
198
+ * ```
199
+ */
200
+ static routeKey = 'id';
201
+ /**
202
+ * Resolve a route parameter value into a Model instance.
203
+ *
204
+ * Default implementation runs `Model.where(routeKey, value).first()`. Override
205
+ * on a subclass to apply additional constraints (auth scope, soft-delete
206
+ * behavior, etc.):
207
+ *
208
+ * ```ts
209
+ * static override async findForRoute(value: string) {
210
+ * return await this.where('slug', value)
211
+ * .where('publishedAt', '!=', null)
212
+ * .first()
213
+ * }
214
+ * ```
215
+ *
216
+ * Returns `null` when no record matches; the router translates that into a
217
+ * `RouteModelNotFoundError` (HTTP 404) for required bindings.
218
+ *
219
+ * The return type is `Model | null` rather than the generic `InstanceType<T>`
220
+ * so subclass overrides can narrow it without violating variance under
221
+ * `exactOptionalPropertyTypes`.
222
+ */
223
+ static async findForRoute(value) {
224
+ return Model._q(this).where(this.routeKey, value).first();
225
+ }
226
+ /**
227
+ * Relation map — a thin declaration of how each named relation joins to the
228
+ * owner model. Used by {@link Model.related} (instance) and {@link Model.with}.
229
+ *
230
+ * **This is not a substitute for the adapter's relation engine.** Prisma's
231
+ * `include` and Drizzle's `with()` already handle eager loading, joins, and
232
+ * type inference. The relation map exists for the *fluent lazy-fetch* case —
233
+ * `await user.related('posts').where('published', true).get()` — where you
234
+ * want a chainable QueryBuilder scoped to the parent record.
235
+ *
236
+ * Supported types: `hasMany`, `hasOne`, `belongsTo`, `belongsToMany`,
237
+ * `morphMany`, `morphOne`, `morphTo`. Polymorphic columns use camelCase
238
+ * (`commentableId` / `commentableType`) for ORM consistency — a deliberate
239
+ * divergence from Laravel's snake_case. `morphToMany` / `morphedByMany` are
240
+ * deferred (drop to the adapter for now).
241
+ *
242
+ * For `belongsToMany`, pivot mutations (`attach` / `detach` / `sync`) live
243
+ * on a separate accessor — see {@link Model.belongsToMany}. `related()`
244
+ * returns the related rows already filtered through the pivot, so callers
245
+ * can chain `where`/`orderBy`/`paginate` without seeing the pivot.
246
+ *
247
+ * @example
248
+ * class User extends Model {
249
+ * static override relations = {
250
+ * posts: { type: 'hasMany', model: () => Post, foreignKey: 'authorId' },
251
+ * team: { type: 'belongsTo', model: () => Team, foreignKey: 'teamId' },
252
+ * phone: { type: 'hasOne', model: () => Phone, foreignKey: 'userId' },
253
+ * roles: { type: 'belongsToMany', model: () => Role, pivotTable: 'role_user' },
254
+ * image: { type: 'morphOne', model: () => Image, morphName: 'imageable' },
255
+ * } as const
256
+ * }
257
+ *
258
+ * const user = await User.find(1)
259
+ * await user!.related('posts').where('published', true).get()
260
+ * await user!.related('roles').orderBy('name').get()
261
+ * await user!.roles().attach([1, 2, 3])
262
+ */
263
+ static relations = {};
164
264
  /** Columns to hide from JSON output */
165
265
  static hidden = [];
166
266
  /**
@@ -841,6 +941,162 @@ export class Model {
841
941
  const v = this['deletedAt'];
842
942
  return v !== null && v !== undefined;
843
943
  }
944
+ // ── Relations ──────────────────────────────────────────
945
+ /**
946
+ * Lazy-fetch a related record (or set of records) as a chainable query.
947
+ *
948
+ * Looks up the relation declared on `static relations`, builds a
949
+ * {@link QueryBuilder} on the related model already filtered to this
950
+ * instance, and returns it. Call any builder method (`where`, `orderBy`,
951
+ * `first`, `get`, `paginate`, ...) to finalize the query.
952
+ *
953
+ * For eager loading, prefer the adapter's native `with()` / `include` /
954
+ * `select` — this method is for the deferred, fluent case.
955
+ *
956
+ * @example
957
+ * const user = await User.find(1)
958
+ * const recent = await user!.related('posts').orderBy('createdAt', 'desc').limit(5).get()
959
+ *
960
+ * @throws Error when the relation is not declared on `static relations`.
961
+ * @throws Error when `belongsTo` is used and this instance has no value for
962
+ * the foreign-key column.
963
+ */
964
+ related(name) {
965
+ const ctor = this.constructor;
966
+ const def = ctor.relations[name];
967
+ if (!def) {
968
+ throw new Error(`[RudderJS ORM] Relation "${name}" is not defined on ${ctor.name}.`);
969
+ }
970
+ if (def.type === 'morphTo') {
971
+ const idCol = `${def.morphName}Id`;
972
+ const typeCol = `${def.morphName}Type`;
973
+ const idVal = this[idCol];
974
+ const typeVal = this[typeCol];
975
+ if (idVal === undefined || idVal === null || typeVal === undefined || typeVal === null) {
976
+ throw new Error(`[RudderJS ORM] Cannot resolve morphTo "${name}" on ${ctor.name} — ${idCol}/${typeCol} unset.`);
977
+ }
978
+ const targets = def.types();
979
+ if (targets.length === 0) {
980
+ throw new Error(`[RudderJS ORM] morphTo "${name}" on ${ctor.name}: \`types: () => [...]\` is empty — declare at least one allowed target class.`);
981
+ }
982
+ if (process.env['NODE_ENV'] !== 'production') {
983
+ const seen = new Map();
984
+ for (const C of targets) {
985
+ const key = C.morphAlias ?? C.name;
986
+ const prev = seen.get(key);
987
+ if (prev) {
988
+ throw new Error(`[RudderJS ORM] morphTo "${name}" on ${ctor.name}: duplicate discriminator "${key}" — both ${prev} and ${C.name} resolve to the same value. Set a distinct \`static morphAlias\` on one.`);
989
+ }
990
+ seen.set(key, C.name);
991
+ }
992
+ }
993
+ const Target = targets.find(C => (C.morphAlias ?? C.name) === String(typeVal));
994
+ if (!Target) {
995
+ throw new Error(`[RudderJS ORM] morphTo "${name}" on ${ctor.name}: unknown ${typeCol} = ${JSON.stringify(typeVal)}. Allowed: ${targets.map(C => C.morphAlias ?? C.name).join(', ')}`);
996
+ }
997
+ return Target.where(Target.primaryKey, idVal);
998
+ }
999
+ // morphOne and morphMany share the same query — the difference is consumer
1000
+ // expectation (`first()` vs `get()`). Split into two ifs so TS can narrow
1001
+ // each tag literal out of the union for the fall-through branches below.
1002
+ if (def.type === 'morphMany') {
1003
+ return _morphParentQuery(this, ctor, def, name);
1004
+ }
1005
+ if (def.type === 'morphOne') {
1006
+ return _morphParentQuery(this, ctor, def, name);
1007
+ }
1008
+ const Related = def.model();
1009
+ const fkCamel = (s) => s.charAt(0).toLowerCase() + s.slice(1);
1010
+ if (def.type === 'belongsToMany') {
1011
+ const meta = _resolveBelongsToManyMeta(ctor, Related, def);
1012
+ const parentVal = this[meta.parentKey];
1013
+ if (parentVal === undefined || parentVal === null) {
1014
+ throw new Error(`[RudderJS ORM] Cannot resolve "${name}" on ${ctor.name} — ${meta.parentKey} is unset.`);
1015
+ }
1016
+ return _belongsToManyDeferredQb(Related, def, meta, parentVal);
1017
+ }
1018
+ if (def.type === 'belongsTo') {
1019
+ // This model holds the FK; query the related model's PK.
1020
+ const fk = def.foreignKey ?? `${fkCamel(Related.name)}Id`;
1021
+ const localCol = def.localKey ?? fk;
1022
+ const localVal = this[localCol];
1023
+ if (localVal === undefined || localVal === null) {
1024
+ throw new Error(`[RudderJS ORM] Cannot resolve belongsTo "${name}" — ${ctor.name}.${localCol} is unset.`);
1025
+ }
1026
+ return Related.where(Related.primaryKey, localVal);
1027
+ }
1028
+ // hasOne / hasMany — related model holds the FK pointing back to us.
1029
+ const fk = def.foreignKey ?? `${fkCamel(ctor.name)}Id`;
1030
+ const localCol = def.localKey ?? ctor.primaryKey;
1031
+ const localVal = this[localCol];
1032
+ if (localVal === undefined || localVal === null) {
1033
+ throw new Error(`[RudderJS ORM] Cannot resolve "${name}" on ${ctor.name} — ${localCol} is unset.`);
1034
+ }
1035
+ return Related.where(fk, localVal);
1036
+ }
1037
+ /**
1038
+ * Pivot-mutation accessor for a `belongsToMany` relation.
1039
+ *
1040
+ * Most callers use the auto-generated per-relation method
1041
+ * (`user.roles().attach([1, 2])`) installed when the parent model is
1042
+ * first queried. This static is the public-facing alias the
1043
+ * auto-method dispatches to — call it directly when you want to define
1044
+ * a typed wrapper on your Model subclass:
1045
+ *
1046
+ * ```ts
1047
+ * class User extends Model {
1048
+ * static override relations = {
1049
+ * roles: { type: 'belongsToMany' as const, model: () => Role, pivotTable: 'role_user' },
1050
+ * }
1051
+ * // Override for typing — same behavior as the auto-generated method.
1052
+ * roles() { return Model.belongsToMany(this, 'roles') }
1053
+ * }
1054
+ * ```
1055
+ */
1056
+ static belongsToMany(parent, name) {
1057
+ const ctor = parent.constructor;
1058
+ const def = ctor.relations[name];
1059
+ if (!def) {
1060
+ throw new Error(`[RudderJS ORM] Relation "${name}" is not defined on ${ctor.name}.`);
1061
+ }
1062
+ if (def.type !== 'belongsToMany') {
1063
+ throw new Error(`[RudderJS ORM] Relation "${name}" on ${ctor.name} is "${def.type}", not "belongsToMany".`);
1064
+ }
1065
+ const Related = def.model();
1066
+ const meta = _resolveBelongsToManyMeta(ctor, Related, def);
1067
+ const parentVal = parent[meta.parentKey];
1068
+ if (parentVal === undefined || parentVal === null) {
1069
+ throw new Error(`[RudderJS ORM] Cannot use belongsToMany "${name}" on ${ctor.name} — ${meta.parentKey} is unset.`);
1070
+ }
1071
+ // Belt-and-suspenders: make sure the auto-method is installed even
1072
+ // for instances constructed before any query against this class.
1073
+ _installBelongsToManyMethods(ctor);
1074
+ return _makeBelongsToManyAccessor(ctor, Related, def, parentVal);
1075
+ }
1076
+ /**
1077
+ * Build the `{name}Id + {name}Type` payload for a polymorphic write.
1078
+ *
1079
+ * Spread into `Model.create()` (or any write) on the polymorphic side. The
1080
+ * parent must already have a primary-key value — save it first if needed.
1081
+ *
1082
+ * @example
1083
+ * await Comment.create({
1084
+ * body: 'Nice post',
1085
+ * ...Model.morph('commentable', post),
1086
+ * })
1087
+ * // → { body, commentableId: post.id, commentableType: 'Post' }
1088
+ */
1089
+ static morph(name, parent) {
1090
+ const ctor = parent.constructor;
1091
+ const pk = parent[ctor.primaryKey];
1092
+ if (pk === undefined || pk === null) {
1093
+ throw new Error(`[RudderJS ORM] Model.morph("${name}", parent): parent.${ctor.primaryKey} is unset — save the parent first.`);
1094
+ }
1095
+ return {
1096
+ [`${name}Id`]: pk,
1097
+ [`${name}Type`]: ctor.morphAlias ?? ctor.name,
1098
+ };
1099
+ }
844
1100
  // ── Cast / Mutator helpers ─────────────────────────────
845
1101
  /** @internal — apply cast setters and attribute mutators to an incoming data payload */
846
1102
  static _applyMutators(data) {
@@ -956,6 +1212,203 @@ export class Model {
956
1212
  return Object.fromEntries(Object.entries(result).filter(([k]) => !effectiveHidden.includes(k)));
957
1213
  }
958
1214
  }
1215
+ function _camelHead(s) {
1216
+ return s.charAt(0).toLowerCase() + s.slice(1);
1217
+ }
1218
+ function _morphParentQuery(self, ctor, def, name) {
1219
+ const Related = def.model();
1220
+ const idCol = `${def.morphName}Id`;
1221
+ const typeCol = `${def.morphName}Type`;
1222
+ const localCol = def.localKey ?? ctor.primaryKey;
1223
+ const localVal = self[localCol];
1224
+ const typeVal = def.morphType ?? ctor.morphAlias ?? ctor.name;
1225
+ if (localVal === undefined || localVal === null) {
1226
+ throw new Error(`[RudderJS ORM] Cannot resolve "${name}" on ${ctor.name} — ${localCol} is unset.`);
1227
+ }
1228
+ return Related.where(idCol, localVal).where(typeCol, typeVal);
1229
+ }
1230
+ function _resolveBelongsToManyMeta(Parent, Related, def) {
1231
+ return {
1232
+ pivotTable: def.pivotTable,
1233
+ foreignPivotKey: def.foreignPivotKey ?? `${_camelHead(Parent.name)}Id`,
1234
+ relatedPivotKey: def.relatedPivotKey ?? `${_camelHead(Related.name)}Id`,
1235
+ parentKey: def.parentKey ?? Parent.primaryKey,
1236
+ relatedKey: def.relatedKey ?? Related.primaryKey,
1237
+ };
1238
+ }
1239
+ const _CHAIN_METHODS = new Set([
1240
+ 'where', 'orWhere', 'orderBy', 'limit', 'offset', 'with', 'withTrashed', 'onlyTrashed',
1241
+ ]);
1242
+ const _TERMINAL_METHODS = new Set([
1243
+ 'first', 'find', 'get', 'all', 'count', 'paginate',
1244
+ ]);
1245
+ const _UNSUPPORTED_TERMINALS = new Set([
1246
+ 'create', 'update', 'delete', 'restore', 'forceDelete', 'increment', 'decrement', 'insertMany', 'deleteAll',
1247
+ ]);
1248
+ function _replayChain(q, recorded) {
1249
+ let cur = q;
1250
+ for (const [m, args] of recorded) {
1251
+ const fn = cur[m];
1252
+ if (fn)
1253
+ cur = fn.apply(cur, args);
1254
+ }
1255
+ return cur;
1256
+ }
1257
+ function _belongsToManyDeferredQb(Related, _def, meta, parentVal) {
1258
+ const recorded = [];
1259
+ const buildResolved = async () => {
1260
+ const adapter = ModelRegistry.getAdapter();
1261
+ const pivotRows = await adapter
1262
+ .query(meta.pivotTable)
1263
+ .where(meta.foreignPivotKey, parentVal)
1264
+ .get();
1265
+ const ids = pivotRows.map(r => r[meta.relatedPivotKey]);
1266
+ // Empty IN list — short-circuit with a guaranteed-empty query so
1267
+ // adapters don't have to handle the edge case.
1268
+ const q = Related.query()
1269
+ .where(meta.relatedKey, 'IN', ids.length === 0 ? [] : ids);
1270
+ return _replayChain(q, recorded);
1271
+ };
1272
+ const proxy = new Proxy({}, {
1273
+ get(_t, prop) {
1274
+ const name = String(prop);
1275
+ if (_CHAIN_METHODS.has(name)) {
1276
+ return (...args) => {
1277
+ recorded.push([name, args]);
1278
+ return proxy;
1279
+ };
1280
+ }
1281
+ if (_TERMINAL_METHODS.has(name)) {
1282
+ return async (...args) => {
1283
+ const q = await buildResolved();
1284
+ const fn = q[name];
1285
+ return fn ? fn.apply(q, args) : undefined;
1286
+ };
1287
+ }
1288
+ if (_UNSUPPORTED_TERMINALS.has(name)) {
1289
+ return () => {
1290
+ throw new Error(`[RudderJS ORM] "${name}" is not supported on a belongsToMany lazy-fetch query. ` +
1291
+ `Use Model.belongsToMany(parent, name) for pivot mutations or call methods on the related Model directly.`);
1292
+ };
1293
+ }
1294
+ return undefined;
1295
+ },
1296
+ });
1297
+ return proxy;
1298
+ }
1299
+ function _normalizeAttachInput(input, foreignPivotKey, parentVal, relatedPivotKey, flatPivot) {
1300
+ const rows = [];
1301
+ if (Array.isArray(input)) {
1302
+ for (const id of input) {
1303
+ rows.push({
1304
+ ...(flatPivot ?? {}),
1305
+ [foreignPivotKey]: parentVal,
1306
+ [relatedPivotKey]: id,
1307
+ });
1308
+ }
1309
+ }
1310
+ else {
1311
+ for (const [id, perIdPivot] of Object.entries(input)) {
1312
+ // Normalize numeric-string keys back to numbers when possible — JS
1313
+ // object keys are always strings; the pivot column may be int.
1314
+ const idVal = /^\d+$/.test(id) ? Number(id) : id;
1315
+ rows.push({
1316
+ ...perIdPivot,
1317
+ [foreignPivotKey]: parentVal,
1318
+ [relatedPivotKey]: idVal,
1319
+ });
1320
+ }
1321
+ }
1322
+ return rows;
1323
+ }
1324
+ function _idsFromAttachInput(input) {
1325
+ if (Array.isArray(input))
1326
+ return [...input];
1327
+ return Object.keys(input).map(k => /^\d+$/.test(k) ? Number(k) : k);
1328
+ }
1329
+ function _makeBelongsToManyAccessor(Parent, Related, def, parentVal) {
1330
+ const meta = _resolveBelongsToManyMeta(Parent, Related, def);
1331
+ return {
1332
+ async attach(input, flatPivot) {
1333
+ const ids = _idsFromAttachInput(input);
1334
+ if (ids.length === 0)
1335
+ return;
1336
+ const rows = _normalizeAttachInput(input, meta.foreignPivotKey, parentVal, meta.relatedPivotKey, flatPivot);
1337
+ await ModelRegistry.getAdapter()
1338
+ .query(meta.pivotTable)
1339
+ .insertMany(rows);
1340
+ },
1341
+ async detach(ids) {
1342
+ const adapter = ModelRegistry.getAdapter();
1343
+ let q = adapter
1344
+ .query(meta.pivotTable)
1345
+ .where(meta.foreignPivotKey, parentVal);
1346
+ if (ids !== undefined) {
1347
+ if (ids.length === 0)
1348
+ return 0;
1349
+ q = q.where(meta.relatedPivotKey, 'IN', [...ids]);
1350
+ }
1351
+ return q.deleteAll();
1352
+ },
1353
+ async sync(desiredIds, flatPivot) {
1354
+ const adapter = ModelRegistry.getAdapter();
1355
+ const currentRows = await adapter
1356
+ .query(meta.pivotTable)
1357
+ .where(meta.foreignPivotKey, parentVal)
1358
+ .get();
1359
+ const current = new Set(currentRows.map(r => r[meta.relatedPivotKey]));
1360
+ const desired = new Set(desiredIds);
1361
+ const attached = [];
1362
+ const detached = [];
1363
+ for (const id of desired)
1364
+ if (!current.has(id))
1365
+ attached.push(id);
1366
+ for (const id of current)
1367
+ if (!desired.has(id))
1368
+ detached.push(id);
1369
+ if (attached.length > 0) {
1370
+ const rows = attached.map(id => ({
1371
+ ...(flatPivot ?? {}),
1372
+ [meta.foreignPivotKey]: parentVal,
1373
+ [meta.relatedPivotKey]: id,
1374
+ }));
1375
+ await adapter.query(meta.pivotTable).insertMany(rows);
1376
+ }
1377
+ if (detached.length > 0) {
1378
+ await adapter
1379
+ .query(meta.pivotTable)
1380
+ .where(meta.foreignPivotKey, parentVal)
1381
+ .where(meta.relatedPivotKey, 'IN', detached)
1382
+ .deleteAll();
1383
+ }
1384
+ return { attached, detached };
1385
+ },
1386
+ };
1387
+ }
1388
+ /**
1389
+ * Install per-relation prototype methods for every `belongsToMany` entry
1390
+ * declared on `static relations`. Idempotent — won't overwrite a method
1391
+ * the author already defined (typing escape hatch).
1392
+ *
1393
+ * Called on first query (via `ModelRegistry.register`) and once more
1394
+ * defensively from `Model.belongsToMany` so apps that construct instances
1395
+ * without ever querying still get the auto-method.
1396
+ */
1397
+ function _installBelongsToManyMethods(ModelClass) {
1398
+ for (const [name, def] of Object.entries(ModelClass.relations)) {
1399
+ if (def.type !== 'belongsToMany')
1400
+ continue;
1401
+ if (Object.prototype.hasOwnProperty.call(ModelClass.prototype, name))
1402
+ continue;
1403
+ Object.defineProperty(ModelClass.prototype, name, {
1404
+ configurable: true,
1405
+ writable: true,
1406
+ value() {
1407
+ return Model.belongsToMany(this, name);
1408
+ },
1409
+ });
1410
+ }
1411
+ }
959
1412
  // ─── Compile-time contract check ───────────────────────────
960
1413
  // Asserts that `Model`'s static surface conforms to the `ModelLike`
961
1414
  // contract from `@rudderjs/contracts`. Downstream tools (admin panels
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rudderjs/orm",
3
- "version": "1.3.0",
3
+ "version": "1.5.0",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -25,7 +25,7 @@
25
25
  }
26
26
  },
27
27
  "dependencies": {
28
- "@rudderjs/contracts": "^1.1.0"
28
+ "@rudderjs/contracts": "^1.1.1"
29
29
  },
30
30
  "devDependencies": {
31
31
  "@types/node": "^20.0.0",
@@ -37,7 +37,7 @@
37
37
  "dev": "tsc -p tsconfig.build.json --watch",
38
38
  "typecheck": "tsc --noEmit",
39
39
  "lint": "eslint src",
40
- "test": "tsc -p tsconfig.test.json && node --test dist-test/index.test.js dist-test/seeder.test.js dist-test/commands/migrate.test.js; EXIT=$?; rm -rf dist-test; exit $EXIT",
40
+ "test": "tsc -p tsconfig.test.json && node --test dist-test/index.test.js dist-test/morph.test.js dist-test/seeder.test.js dist-test/commands/migrate.test.js; EXIT=$?; rm -rf dist-test; exit $EXIT",
41
41
  "clean": "rm -rf dist"
42
42
  }
43
43
  }