@rudderjs/orm 1.9.0 → 1.9.2

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.
Files changed (36) hide show
  1. package/README.md +53 -0
  2. package/boost/skills/orm-models/SKILL.md +24 -251
  3. package/boost/skills/orm-models/rules/crud-and-observers.md +130 -0
  4. package/boost/skills/orm-models/rules/defining-models.md +137 -0
  5. package/boost/skills/orm-models/rules/factories.md +73 -0
  6. package/boost/skills/orm-models/rules/querying.md +117 -0
  7. package/boost/skills/orm-models/rules/resources.md +111 -0
  8. package/dist/aggregate.d.ts +16 -7
  9. package/dist/aggregate.d.ts.map +1 -1
  10. package/dist/aggregate.js +27 -29
  11. package/dist/aggregate.js.map +1 -1
  12. package/dist/index.d.ts +41 -124
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +55 -892
  15. package/dist/index.js.map +1 -1
  16. package/dist/relations/pivot-accessors.d.ts +127 -0
  17. package/dist/relations/pivot-accessors.d.ts.map +1 -0
  18. package/dist/relations/pivot-accessors.js +211 -0
  19. package/dist/relations/pivot-accessors.js.map +1 -0
  20. package/dist/relations/pivot-deferred.d.ts +13 -0
  21. package/dist/relations/pivot-deferred.d.ts.map +1 -0
  22. package/dist/relations/pivot-deferred.js +210 -0
  23. package/dist/relations/pivot-deferred.js.map +1 -0
  24. package/dist/relations/pivot-meta.d.ts +50 -0
  25. package/dist/relations/pivot-meta.d.ts.map +1 -0
  26. package/dist/relations/pivot-meta.js +34 -0
  27. package/dist/relations/pivot-meta.js.map +1 -0
  28. package/dist/relations/where-has.d.ts +53 -0
  29. package/dist/relations/where-has.d.ts.map +1 -0
  30. package/dist/relations/where-has.js +239 -0
  31. package/dist/relations/where-has.js.map +1 -0
  32. package/dist/utils.d.ts +35 -0
  33. package/dist/utils.d.ts.map +1 -0
  34. package/dist/utils.js +63 -0
  35. package/dist/utils.js.map +1 -0
  36. package/package.json +5 -2
@@ -0,0 +1,73 @@
1
+ # Model Factories
2
+
3
+ ## Basic shape
4
+
5
+ ```ts
6
+ import { ModelFactory, sequence } from '@rudderjs/orm'
7
+ import { User } from '../app/Models/User.js'
8
+
9
+ class UserFactory extends ModelFactory<{ name: string; email: string; role: string }> {
10
+ protected modelClass = User
11
+
12
+ definition() {
13
+ return {
14
+ name: 'Alice',
15
+ email: sequence(i => `user${i}@example.com`),
16
+ role: 'user',
17
+ }
18
+ }
19
+
20
+ protected states() {
21
+ return {
22
+ admin: () => ({ role: 'admin' }),
23
+ }
24
+ }
25
+ }
26
+ ```
27
+
28
+ ## Usage
29
+
30
+ ```ts
31
+ const one = await UserFactory.new().create() // 1 row, persisted
32
+ const five = await UserFactory.new().create(5) // 5 rows
33
+ const dtos = await UserFactory.new().make(3) // 3 in-memory only
34
+ const admin = await UserFactory.new().state('admin').create()
35
+ const custom = await UserFactory.new().with(() => ({ name: 'Bob' })).create()
36
+ ```
37
+
38
+ `.make()` does not write to the DB — useful for testing serialization, validation, or non-persisting code paths.
39
+ `.create()` writes via `Model.create()`, so observers / mutators / mass assignment all apply.
40
+
41
+ ## sequence()
42
+
43
+ ```ts
44
+ email: sequence(i => `user${i}@example.com`)
45
+ ```
46
+
47
+ Inside `definition()`, return the call directly — the factory resolves callables for you. Each generated row gets the next index.
48
+
49
+ ## Pitfalls
50
+
51
+ ❌ **Don't** call `sequence(...)` outside `definition()`:
52
+
53
+ ```ts
54
+ const s = sequence(i => i)
55
+ class UserFactory extends ModelFactory<{ n: number }> {
56
+ definition() { return { n: s() } } // shared sequence across factory instances
57
+ }
58
+ ```
59
+
60
+ ✅ **Do** return the sequence callable from `definition()`:
61
+
62
+ ```ts
63
+ definition() { return { n: sequence(i => i) } } // fresh per factory instance
64
+ ```
65
+
66
+ ❌ **Don't** assume `.make()` ran mutators:
67
+
68
+ ```ts
69
+ const draft = await UserFactory.new().make()
70
+ // password mutator did NOT run because there's no save() — but accessors DID run on serialization
71
+ ```
72
+
73
+ ✅ **Do** call `.create()` when you need mutator side effects (password hashing, slug generation, etc.).
@@ -0,0 +1,117 @@
1
+ # Querying
2
+
3
+ ## Single-row reads
4
+
5
+ ```ts
6
+ const user = await User.find(1) // by primary key
7
+ const first = await User.first() // first row
8
+ const total = await User.count() // SELECT count(*)
9
+ ```
10
+
11
+ ## Filtered reads
12
+
13
+ ```ts
14
+ const admins = await User.where('role', 'admin').all()
15
+ const recent = await User.where('createdAt', '>', oneWeekAgo).orderBy('createdAt', 'desc').limit(10).all()
16
+ const page = await User.paginate(1, 15)
17
+ // { data, total, page, perPage, lastPage }
18
+ ```
19
+
20
+ `where` accepts `(column, value)` (defaults to `=`), `(column, op, value)`, or a callback for grouped predicates.
21
+
22
+ ## Eager loading
23
+
24
+ ```ts
25
+ const posts = await Post.with('author', 'comments').all()
26
+ const user = await User.with({ posts: q => q.where('isPublished', true) }).find(1)
27
+ ```
28
+
29
+ Whole-row eager loading is handled natively by the adapter (Prisma `include`, Drizzle `with`).
30
+
31
+ ## Aggregate eager loading
32
+
33
+ Stays portable across adapters:
34
+
35
+ ```ts
36
+ const users = await User.withCount('posts').all() // posts_count column
37
+ const authors = await Post.withSum('viewCount', 'views').all() // posts_sum_views
38
+ const post = await Post.find(1).then(p => p.loadCount('comments')) // per-instance
39
+ ```
40
+
41
+ `withCount` on `belongsTo` and `morphTo` throws — you can't count something there's exactly one of (or whose target table is dynamic).
42
+
43
+ ## Scopes
44
+
45
+ ```ts
46
+ export class Post extends Model {
47
+ static globalScopes = {
48
+ published: (q) => q.where('isPublished', true), // ALWAYS applied
49
+ }
50
+
51
+ static scopes = {
52
+ byAuthor: (q, authorId: number) => q.where('authorId', authorId),
53
+ recent: (q) => q.orderBy('createdAt', 'desc').limit(10),
54
+ }
55
+ }
56
+
57
+ const posts = await Post.query().scope('byAuthor', 1).scope('recent').all()
58
+ const allPosts = await Post.query().withoutGlobalScope('published').all()
59
+ ```
60
+
61
+ ## Relation predicates (`whereHas`)
62
+
63
+ ```ts
64
+ // Users who have at least one published post
65
+ const authors = await User.query()
66
+ .whereHas('posts', q => q.where('isPublished', true))
67
+ .all()
68
+
69
+ // Users who have no comments
70
+ const lurkers = await User.query().whereDoesntHave('comments').all()
71
+
72
+ // Eager-load with the same constraint
73
+ const data = await User.query()
74
+ .withWhereHas('posts', q => q.where('isPublished', true))
75
+ .all()
76
+ ```
77
+
78
+ ## Pitfalls
79
+
80
+ ❌ **Don't** use `eq(col, null)` for null checks:
81
+
82
+ ```ts
83
+ // drizzle-orm
84
+ qb.where(eq(users.deletedAt, null)) // never matches anything
85
+ ```
86
+
87
+ ✅ **Do** use `isNull` / `isNotNull`:
88
+
89
+ ```ts
90
+ qb.where(isNull(users.deletedAt))
91
+ qb.where(isNotNull(users.deletedAt))
92
+ ```
93
+
94
+ ❌ **Don't** assume `assert.deepStrictEqual(result, plainObject)` holds since hydration shipped:
95
+
96
+ ```ts
97
+ const user = await User.find(1)
98
+ assert.deepStrictEqual(user, { id: 1, name: 'Alice' }) // ❌ prototype mismatch
99
+ ```
100
+
101
+ ✅ **Do** compare via spread or assert `instanceof`:
102
+
103
+ ```ts
104
+ assert.deepStrictEqual({ ...user }, { id: 1, name: 'Alice' })
105
+ assert.ok(user instanceof User)
106
+ ```
107
+
108
+ ❌ **Don't** use `morphTo` with `whereHas` — the related table is dynamic.
109
+
110
+ ✅ **Do** filter on the morph columns directly:
111
+
112
+ ```ts
113
+ await Comment.query()
114
+ .where('commentableType', 'Post')
115
+ .where('commentableId', 1)
116
+ .all()
117
+ ```
@@ -0,0 +1,111 @@
1
+ # API Resources
2
+
3
+ `JsonResource` is the controller-friendly way to shape model output for an HTTP response — without leaking columns that shouldn't reach the client.
4
+
5
+ ## Single resource
6
+
7
+ ```ts
8
+ import { JsonResource } from '@rudderjs/orm'
9
+
10
+ class UserResource extends JsonResource<User> {
11
+ toArray() {
12
+ return {
13
+ id: this.resource.id,
14
+ name: this.resource.name,
15
+ email: this.resource.email,
16
+ }
17
+ }
18
+ }
19
+
20
+ // In a route handler
21
+ res.json(new UserResource(user).toArray())
22
+ ```
23
+
24
+ ## Conditional fields
25
+
26
+ ```ts
27
+ class UserResource extends JsonResource<User> {
28
+ toArray() {
29
+ return {
30
+ id: this.resource.id,
31
+ name: this.resource.name,
32
+
33
+ // Include only when condition is true
34
+ admin: this.when(this.resource.role === 'admin', true),
35
+
36
+ // Include only when the relation was eager-loaded
37
+ posts: this.whenLoaded('posts', PostResource.collection(this.resource.posts)),
38
+
39
+ // Merge multiple fields conditionally
40
+ ...this.mergeWhen(this.resource.isAdmin, {
41
+ permissions: this.resource.permissions,
42
+ lastLogin: this.resource.lastLoginAt,
43
+ }),
44
+ }
45
+ }
46
+ }
47
+ ```
48
+
49
+ `whenLoaded` is the canonical guard against N+1 — the field stays absent if the caller didn't `.with('posts')`.
50
+
51
+ ## Collections
52
+
53
+ ```ts
54
+ const users = await User.with('posts').all()
55
+
56
+ const collection = UserResource.collection(users, {
57
+ total: 100,
58
+ page: 1,
59
+ perPage: 15,
60
+ })
61
+
62
+ res.json(await collection.toResponse())
63
+ // {
64
+ // data: [...],
65
+ // meta: { total: 100, page: 1, perPage: 15 }
66
+ // }
67
+ ```
68
+
69
+ For a paginated query:
70
+
71
+ ```ts
72
+ const page = await User.paginate(1, 15)
73
+ const collection = UserResource.collection(page.data, {
74
+ total: page.total,
75
+ page: page.page,
76
+ perPage: page.perPage,
77
+ lastPage: page.lastPage,
78
+ })
79
+ ```
80
+
81
+ ## Pitfalls
82
+
83
+ ❌ **Don't** assume `whenLoaded` works without `.with()`:
84
+
85
+ ```ts
86
+ const user = await User.find(1) // posts NOT loaded
87
+ const res = new UserResource(user).toArray()
88
+ // res.posts is omitted — that's correct, but the caller may have expected it
89
+ ```
90
+
91
+ ✅ **Do** eager-load when the resource needs the relation:
92
+
93
+ ```ts
94
+ const user = await User.with('posts').find(1)
95
+ const res = new UserResource(user).toArray()
96
+ // res.posts is present
97
+ ```
98
+
99
+ ❌ **Don't** use `when` for relations:
100
+
101
+ ```ts
102
+ posts: this.when(this.resource.posts !== undefined, PostResource.collection(this.resource.posts))
103
+ ```
104
+
105
+ ✅ **Do** use `whenLoaded` — it's the relation-aware variant:
106
+
107
+ ```ts
108
+ posts: this.whenLoaded('posts', PostResource.collection(this.resource.posts))
109
+ ```
110
+
111
+ ❌ **Don't** mutate `this.resource` inside `toArray()` — observers / mutators won't fire and you risk a stale state on the next access. Compute derived values and return them; don't write to the model.
@@ -2,15 +2,19 @@ import type { AggregateFn, AggregateRequest, AggregateJoinShape, WhereClause } f
2
2
  import type { Model, RelationDefinition } from './index.js';
3
3
  /**
4
4
  * Constraint callback for the map form of `withCount` / `withExists`. Receives
5
- * an {@link AggregateConstraintBuilder} for narrow `where`/`orWhere`/`as`
6
- * recording. Larger surface (`orderBy`, `limit`, terminals) is intentionally
7
- * out of scope — the only ambiguous semantics in an aggregate context.
5
+ * an {@link AggregateConstraintBuilder} for narrow `where`/`as` recording.
6
+ * Larger surface (`orWhere`, `orderBy`, `limit`, terminals) is intentionally
7
+ * out of scope — those have ambiguous semantics in an aggregate context.
8
8
  */
9
9
  export type AggregateConstraint = (q: AggregateConstraintBuilder) => AggregateConstraintBuilder;
10
10
  /**
11
- * `where`/`orWhere`/`as` recorder passed to {@link AggregateConstraint}
12
- * callbacks. Captures clauses for the adapter to AND into the aggregate
13
- * subquery, plus an optional alias prefix override (`.as('publishedPosts')`).
11
+ * `where`/`as` recorder passed to {@link AggregateConstraint} callbacks.
12
+ * Captures clauses for the adapter to AND into the aggregate subquery, plus
13
+ * an optional alias prefix override (`.as('publishedPosts')`).
14
+ *
15
+ * **OR semantics are not supported.** Multiple `.where(...)` calls compose
16
+ * with AND. To branch, split the aggregate into separate `withCount` calls
17
+ * with distinct `.as(...)` aliases and combine in app code.
14
18
  */
15
19
  export declare class AggregateConstraintBuilder {
16
20
  /** @internal */
@@ -18,7 +22,12 @@ export declare class AggregateConstraintBuilder {
18
22
  /** @internal — alias prefix override; falls back to the relation name. */
19
23
  _aliasPrefix?: string;
20
24
  where(column: string, valueOrOperator: unknown, maybeValue?: unknown): this;
21
- orWhere(column: string, valueOrOperator: unknown, maybeValue?: unknown): this;
25
+ /**
26
+ * Not supported — aggregate constraints AND together. Documented as a
27
+ * throw rather than silently dropping the OR semantics (which the
28
+ * underlying {@link WhereClause} can't carry).
29
+ */
30
+ orWhere(_column: string, _valueOrOperator: unknown, _maybeValue?: unknown): this;
22
31
  /**
23
32
  * Override the alias prefix used to stamp the aggregate column onto the
24
33
  * result row. Default = relation name. The verb suffix (`Count`/`SumX`/etc.)
@@ -1 +1 @@
1
- {"version":3,"file":"aggregate.d.ts","sourceRoot":"","sources":["../src/aggregate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aggregate.d.ts","sourceRoot":"","sources":["../src/aggregate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAClB,WAAW,EAGZ,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAK3D;;;;;GAKG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,EAAE,0BAA0B,KAAK,0BAA0B,CAAA;AAE/F;;;;;;;;GAQG;AACH,qBAAa,0BAA0B;IACrC,gBAAgB;IAChB,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,CAAK;IACpC,0EAA0E;IAC1E,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,IAAI;IAS3E;;;;OAIG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,IAAI;IAQhF;;;;;;;;OAQG;IACH,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;CAIxB;AAED,uEAAuE;AACvE,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAO,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,mBAAmB,CAAA;CACjC;AAID;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,eAAwC,CAAA;AAEtE,gFAAgF;AAChF,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAa7D;AAID;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CASxE;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAE1F;AAID;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAI,OAAO,KAAK,EACtB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAO,OAAO,CAAC,kBAAkB,EAAE;IAAE,IAAI,EAAE,SAAS,GAAG,WAAW,CAAA;CAAE,CAAC,GACvE,kBAAkB,CAuFpB;AAID,KAAK,iBAAiB,GAAG,mBAAmB,CAAA;AAC5C,KAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;AA8ErD,mEAAmE;AACnE,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,OAAO,KAAK,EACpB,GAAG,EAAK,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,YAAY,GAChD,gBAAgB,EAAE,CAIpB;AAED,oEAAoE;AACpE,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,OAAO,KAAK,EACpB,GAAG,EAAK,MAAM,GAAG,SAAS,MAAM,EAAE,GACjC,gBAAgB,EAAE,CAGpB;AAED,yFAAyF;AACzF,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,OAAO,KAAK,EACpB,EAAE,EAAM,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,EACrC,IAAI,EAAI,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,EACjD,IAAI,CAAC,EAAG,MAAM,GACb,gBAAgB,EAAE,CAUpB;AA4GD;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,KAAK,EACf,EAAE,EAAQ,OAAO,GAAG,QAAQ,EAC5B,GAAG,EAAO,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,YAAY,GAClD,OAAO,CAAC,IAAI,CAAC,CAIf;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,KAAK,EACf,EAAE,EAAQ,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,EACvC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,EACnD,MAAM,CAAC,EAAG,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAIf;AAED;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAOnG"}
package/dist/aggregate.js CHANGED
@@ -1,7 +1,12 @@
1
+ import { camelHead, capitalize } from './utils.js';
1
2
  /**
2
- * `where`/`orWhere`/`as` recorder passed to {@link AggregateConstraint}
3
- * callbacks. Captures clauses for the adapter to AND into the aggregate
4
- * subquery, plus an optional alias prefix override (`.as('publishedPosts')`).
3
+ * `where`/`as` recorder passed to {@link AggregateConstraint} callbacks.
4
+ * Captures clauses for the adapter to AND into the aggregate subquery, plus
5
+ * an optional alias prefix override (`.as('publishedPosts')`).
6
+ *
7
+ * **OR semantics are not supported.** Multiple `.where(...)` calls compose
8
+ * with AND. To branch, split the aggregate into separate `withCount` calls
9
+ * with distinct `.as(...)` aliases and combine in app code.
5
10
  */
6
11
  export class AggregateConstraintBuilder {
7
12
  /** @internal */
@@ -17,14 +22,15 @@ export class AggregateConstraintBuilder {
17
22
  }
18
23
  return this;
19
24
  }
20
- orWhere(column, valueOrOperator, maybeValue) {
21
- if (maybeValue === undefined) {
22
- this._wheres.push({ column, operator: '=', value: valueOrOperator });
23
- }
24
- else {
25
- this._wheres.push({ column, operator: valueOrOperator, value: maybeValue });
26
- }
27
- return this;
25
+ /**
26
+ * Not supported aggregate constraints AND together. Documented as a
27
+ * throw rather than silently dropping the OR semantics (which the
28
+ * underlying {@link WhereClause} can't carry).
29
+ */
30
+ orWhere(_column, _valueOrOperator, _maybeValue) {
31
+ throw new Error('[RudderJS ORM] orWhere is not supported inside a withCount/withSum/withExists constraint — ' +
32
+ 'aggregate predicates compose with AND. Split into separate aggregates with distinct .as(...) ' +
33
+ 'aliases and combine in app code.');
28
34
  }
29
35
  /**
30
36
  * Override the alias prefix used to stamp the aggregate column onto the
@@ -66,11 +72,6 @@ export function aggregateKeysOf(instance) {
66
72
  return set;
67
73
  }
68
74
  // ─── Alias suffix ──────────────────────────────────────────
69
- function _capitalize(s) {
70
- if (s.length === 0)
71
- return s;
72
- return s.charAt(0).toUpperCase() + s.slice(1);
73
- }
74
75
  /**
75
76
  * The verb suffix that distinguishes which aggregate is stamped on the parent.
76
77
  * Combined with the relation name (or `.as(...)` override) to produce the
@@ -81,19 +82,16 @@ export function aggregateSuffix(fn, column) {
81
82
  switch (fn) {
82
83
  case 'count': return 'Count';
83
84
  case 'exists': return 'Exists';
84
- case 'sum': return 'Sum' + _capitalize(column ?? '');
85
- case 'min': return 'Min' + _capitalize(column ?? '');
86
- case 'max': return 'Max' + _capitalize(column ?? '');
87
- case 'avg': return 'Avg' + _capitalize(column ?? '');
85
+ case 'sum': return 'Sum' + capitalize(column ?? '');
86
+ case 'min': return 'Min' + capitalize(column ?? '');
87
+ case 'max': return 'Max' + capitalize(column ?? '');
88
+ case 'avg': return 'Avg' + capitalize(column ?? '');
88
89
  }
89
90
  }
90
91
  export function aggregateAlias(fn, baseAlias, column) {
91
92
  return baseAlias + aggregateSuffix(fn, column);
92
93
  }
93
94
  // ─── Join-shape resolution ─────────────────────────────────
94
- function _camelHead(s) {
95
- return s.charAt(0).toLowerCase() + s.slice(1);
96
- }
97
95
  /**
98
96
  * Build the {@link AggregateJoinShape} for a relation declared on `Parent`.
99
97
  * Mirrors `_buildRelationPredicate` but emits the join-shape subset rather
@@ -107,8 +105,8 @@ export function buildAggregateJoinShape(Parent, relation, def) {
107
105
  if (def.type === 'belongsToMany') {
108
106
  const parentKey = def.parentKey ?? Parent.primaryKey;
109
107
  const relatedKey = def.relatedKey ?? Related.primaryKey;
110
- const foreignPivotKey = def.foreignPivotKey ?? `${_camelHead(Parent.name)}Id`;
111
- const relatedPivotKey = def.relatedPivotKey ?? `${_camelHead(Related.name)}Id`;
108
+ const foreignPivotKey = def.foreignPivotKey ?? `${camelHead(Parent.name)}Id`;
109
+ const relatedPivotKey = def.relatedPivotKey ?? `${camelHead(Related.name)}Id`;
112
110
  return {
113
111
  relatedTable: Related.getTable(),
114
112
  parentColumn: parentKey,
@@ -127,7 +125,7 @@ export function buildAggregateJoinShape(Parent, relation, def) {
127
125
  const foreignPivotKey = `${def.morphName}Id`;
128
126
  const morphTypeKey = `${def.morphName}Type`;
129
127
  const morphTypeValue = def.morphType ?? Parent.morphAlias ?? Parent.name;
130
- const relatedPivotKey = def.relatedPivotKey ?? `${_camelHead(Related.name)}Id`;
128
+ const relatedPivotKey = def.relatedPivotKey ?? `${camelHead(Related.name)}Id`;
131
129
  return {
132
130
  relatedTable: Related.getTable(),
133
131
  parentColumn: parentKey,
@@ -144,7 +142,7 @@ export function buildAggregateJoinShape(Parent, relation, def) {
144
142
  if (def.type === 'morphedByMany') {
145
143
  const parentKey = def.parentKey ?? Parent.primaryKey;
146
144
  const relatedKey = def.relatedKey ?? Related.primaryKey;
147
- const foreignPivotKey = def.foreignPivotKey ?? `${_camelHead(Parent.name)}Id`;
145
+ const foreignPivotKey = def.foreignPivotKey ?? `${camelHead(Parent.name)}Id`;
148
146
  const morphTypeKey = `${def.morphName}Type`;
149
147
  const morphTypeValue = def.morphType ?? Related.morphAlias ?? Related.name;
150
148
  const relatedPivotKey = `${def.morphName}Id`;
@@ -175,7 +173,7 @@ export function buildAggregateJoinShape(Parent, relation, def) {
175
173
  };
176
174
  }
177
175
  // hasOne / hasMany — related table holds the FK pointing back to Parent.
178
- const fk = def.foreignKey ?? `${_camelHead(Parent.name)}Id`;
176
+ const fk = def.foreignKey ?? `${camelHead(Parent.name)}Id`;
179
177
  const localCol = def.localKey ?? Parent.primaryKey;
180
178
  return {
181
179
  relatedTable: Related.getTable(),
@@ -252,7 +250,7 @@ export function normalizeWithExists(Parent, arg) {
252
250
  export function normalizeWithNumericAggregate(Parent, fn, arg1, arg2) {
253
251
  if (typeof arg1 === 'string') {
254
252
  if (arg2 === undefined) {
255
- throw new Error(`[RudderJS ORM] with${_capitalize(fn)}("${arg1}") requires a column argument.`);
253
+ throw new Error(`[RudderJS ORM] with${capitalize(fn)}("${arg1}") requires a column argument.`);
256
254
  }
257
255
  return [_buildRequest(Parent, arg1, fn, arg2, undefined)];
258
256
  }
@@ -1 +1 @@
1
- {"version":3,"file":"aggregate.js","sourceRoot":"","sources":["../src/aggregate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aggregate.js","sourceRoot":"","sources":["../src/aggregate.ts"],"names":[],"mappings":"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"}