@happyvertical/smrt-core 0.43.1 → 0.43.3

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.
@@ -12,6 +12,36 @@ returns plain rows without hydrating objects. It composes with `where`,
12
12
  `orderBy`, `limit`, and `offset`, runs normal `beforeList`/tenant interceptors,
13
13
  and is limited to column-backed fields; it cannot combine with `include`.
14
14
 
15
+ ## Bounded STI discriminator scopes
16
+
17
+ An STI child collection remains scoped to its own qualified `_meta_type` by
18
+ default. A migration that must read registered sibling types may opt into an
19
+ explicit allowlist:
20
+
21
+ ```typescript
22
+ await impressionEvents.list({
23
+ stiScope: {
24
+ types: [
25
+ '@anytown/advertising:AdImpression',
26
+ '@anytown/advertising:LegacyAdImpression',
27
+ ],
28
+ },
29
+ orderBy: 'created_at ASC',
30
+ limit: 100,
31
+ });
32
+ ```
33
+
34
+ `stiScope.types` accepts 1–50 unique, qualified, registered types, all sharing
35
+ the child collection's STI root. Empty, simple-name, unknown, duplicate,
36
+ unrelated, and non-child scopes fail at the collection boundary. The option is
37
+ supported by `list()`, `count()`, `counts()`, `facets()`, and
38
+ `listWithLatestRelated()`. These methods retain their normal field validation,
39
+ projection or polymorphic hydration, pagination and cache-key construction;
40
+ normal read and tenant interceptors still run and are ANDed with the allowlist.
41
+ Point reads through `get()` remain child-only; use a bounded
42
+ `list({ where, limit: 1, stiScope })` migration read when sibling hydration is
43
+ required.
44
+
15
45
  For one child per parent, use
16
46
  [`latest-related.md`](latest-related.md). It uses a portable ranked CTE,
17
47
  declared primary keys, adapter-specific offset-only syntax, explicit aliases,
package/dist/browser.js CHANGED
@@ -16,7 +16,7 @@ import { executeToolCall, executeToolCalls, formatToolResults, validateToolCall
16
16
  import { SmrtObject } from "./object.js";
17
17
  import { SMRT_COLLECTION_BASE_NAMES, isSmrtCollectionExtendsName } from "./registry/collection-resolution.js";
18
18
  import { ObjectRegistry, smrt } from "./registry.js";
19
- import { DEFAULT_FACET_LIMIT, MAX_FACET_FIELDS, MAX_FACET_LIMIT, SmrtCollection } from "./collection.js";
19
+ import { DEFAULT_FACET_LIMIT, MAX_FACET_FIELDS, MAX_FACET_LIMIT, MAX_STI_READ_SCOPE_TYPES, SmrtCollection } from "./collection.js";
20
20
  import { SmrtHierarchical } from "./hierarchical.js";
21
21
  import { SmrtJunction } from "./junction.js";
22
22
  import { SmrtPolymorphicAssociation } from "./polymorphic-association.js";
@@ -24,4 +24,4 @@ import "./signals/index.js";
24
24
  import { DEFAULT_RETENTION_POLICY, clearRetentionTasks, getRetentionTasks, pruneAiUsage, pruneExpiredContexts, registerRetentionTask, runRetentionSweep, unregisterRetentionTask } from "./system/retention.js";
25
25
  import "./system/index.js";
26
26
  import "./tools/index.js";
27
- export { AIError, AiUsageCollector, AiUsagePersistenceHandler, ConfigurationError, DEFAULT_AI_COST_RATES, DEFAULT_FACET_LIMIT, DEFAULT_RETENTION_POLICY, DatabaseError, ErrorUtils, FilesystemError, MAX_FACET_FIELDS, MAX_FACET_LIMIT, MetricsAdapter, NetworkError, ObjectRegistry, PubSubAdapter, RuntimeError, SMRT_COLLECTION_BASE_NAMES, SignalBus, SignalSanitizer, SmrtClass, SmrtCollection, SmrtError, SmrtHierarchical, SmrtJunction, SmrtObject, SmrtPolymorphicAssociation, TenantIsolationError, ValidationError, ValidationReport, ValidationUtils, assertPostgresSystemTimestampsCurrent, classifyDatabaseError, classifyDialectMessage, clearRetentionTasks, config, convertTypeToJsonSchema, ensureBootstrapSystemTableCompatibility, ensureDeferredSystemTableCompatibility, ensureDispatchSubscriptionsSystemTableCompatibility, ensureDispatchSystemTableCompatibility, ensureJobEventsSystemTableCompatibility, ensureJobsSystemTableCompatibility, ensureLegacySystemTableCompatibility, ensureSystemTables, estimateAiUsageCost, executeToolCall, executeToolCalls, formatToolResults, generateToolFromMethod, generateToolManifest, getDatabaseEngine, getRetentionTasks, isAbortedTransactionError, isDeterministicDatabaseError, isNotNullViolationError, isSmrtCollectionExtendsName, isTransientDatabaseError, isUniqueViolationError, migratePostgresSystemTimestamps, planPostgresSystemTimestampMigrations, pruneAiUsage, pruneExpiredContexts, registerRetentionTask, runRetentionSweep, shouldIncludeMethod, smrt, smrt as smrtRegistry, tableExists, unregisterRetentionTask, validateToolCall };
27
+ export { AIError, AiUsageCollector, AiUsagePersistenceHandler, ConfigurationError, DEFAULT_AI_COST_RATES, DEFAULT_FACET_LIMIT, DEFAULT_RETENTION_POLICY, DatabaseError, ErrorUtils, FilesystemError, MAX_FACET_FIELDS, MAX_FACET_LIMIT, MAX_STI_READ_SCOPE_TYPES, MetricsAdapter, NetworkError, ObjectRegistry, PubSubAdapter, RuntimeError, SMRT_COLLECTION_BASE_NAMES, SignalBus, SignalSanitizer, SmrtClass, SmrtCollection, SmrtError, SmrtHierarchical, SmrtJunction, SmrtObject, SmrtPolymorphicAssociation, TenantIsolationError, ValidationError, ValidationReport, ValidationUtils, assertPostgresSystemTimestampsCurrent, classifyDatabaseError, classifyDialectMessage, clearRetentionTasks, config, convertTypeToJsonSchema, ensureBootstrapSystemTableCompatibility, ensureDeferredSystemTableCompatibility, ensureDispatchSubscriptionsSystemTableCompatibility, ensureDispatchSystemTableCompatibility, ensureJobEventsSystemTableCompatibility, ensureJobsSystemTableCompatibility, ensureLegacySystemTableCompatibility, ensureSystemTables, estimateAiUsageCost, executeToolCall, executeToolCalls, formatToolResults, generateToolFromMethod, generateToolManifest, getDatabaseEngine, getRetentionTasks, isAbortedTransactionError, isDeterministicDatabaseError, isNotNullViolationError, isSmrtCollectionExtendsName, isTransientDatabaseError, isUniqueViolationError, migratePostgresSystemTimestamps, planPostgresSystemTimestampMigrations, pruneAiUsage, pruneExpiredContexts, registerRetentionTask, runRetentionSweep, shouldIncludeMethod, smrt, smrt as smrtRegistry, tableExists, unregisterRetentionTask, validateToolCall };
@@ -7,6 +7,8 @@ export declare const MAX_FACET_FIELDS = 20;
7
7
  export declare const DEFAULT_FACET_LIMIT = 50;
8
8
  /** Hard ceiling for distinct values returned for one facet field. */
9
9
  export declare const MAX_FACET_LIMIT = 1000;
10
+ /** Maximum number of qualified STI discriminators accepted by one read. */
11
+ export declare const MAX_STI_READ_SCOPE_TYPES = 50;
10
12
  /**
11
13
  * Keys from SmrtObject and SmrtClass that should not appear as user-facing
12
14
  * create/update input fields. These are framework-internal properties.
@@ -120,12 +122,22 @@ export interface SmrtFacetOptions<T extends SmrtObject> {
120
122
  fields: readonly (SmrtSelectField<T> | SmrtFacetRequest<T>)[];
121
123
  /** The same SMRT WHERE syntax accepted by {@link SmrtCollection.list}. */
122
124
  where?: SmrtListWhereClause<T>;
125
+ /** Explicit sibling discriminator scope for an STI child collection. */
126
+ stiScope?: SmrtStiReadScope;
123
127
  }
124
128
  /** Exact unfiltered and filtered row counts for a list scope. */
125
129
  export interface SmrtCollectionCounts {
126
130
  total: number;
127
131
  filtered: number;
128
132
  }
133
+ /**
134
+ * Explicit, bounded discriminator scope for reads through an STI child
135
+ * collection. Every entry must be a registered qualified type in the same STI
136
+ * hierarchy as the collection item.
137
+ */
138
+ export interface SmrtStiReadScope {
139
+ types: readonly string[];
140
+ }
129
141
  export interface SmrtListOptions<ModelType extends SmrtObject> {
130
142
  where?: SmrtListWhereClause<ModelType>;
131
143
  offset?: number;
@@ -144,6 +156,11 @@ export interface SmrtListOptions<ModelType extends SmrtObject> {
144
156
  * Opt-in read-through cache for this call (issue #1498).
145
157
  */
146
158
  cache?: CollectionCacheConfig | false;
159
+ /**
160
+ * Opt in to reading an allowlist of sibling types through an STI child
161
+ * collection. Omit to retain the child-only discriminator scope.
162
+ */
163
+ stiScope?: SmrtStiReadScope;
147
164
  }
148
165
  /**
149
166
  * Declarative latest-row configuration for a declared `@oneToMany` relation.
@@ -275,6 +292,8 @@ export declare class SmrtCollection<ModelType extends SmrtObject> extends SmrtCl
275
292
  private getRegisteredItemClass;
276
293
  private getResolvedItemClassName;
277
294
  private getResolvedItemQualifiedName;
295
+ /** Apply and validate this collection's owned STI discriminator predicate. */
296
+ private applyStiReadScope;
278
297
  /**
279
298
  * Resolve the identifier whitelist and the sensitive-column blocklist that
280
299
  * every caller-supplied identifier on this collection is checked against.
@@ -405,7 +424,13 @@ export declare class SmrtCollection<ModelType extends SmrtObject> extends SmrtCl
405
424
  * console.log(page[0].parent, page[0].latestRelated?.score);
406
425
  * ```
407
426
  */
408
- listWithLatestRelated(options: SmrtLatestRelatedListOptions<ModelType>): Promise<SmrtLatestRelatedRow<ModelType>[]>;
427
+ listWithLatestRelated(options: Omit<SmrtLatestRelatedListOptions<ModelType>, 'stiScope'> & {
428
+ stiScope: SmrtStiReadScope;
429
+ }): Promise<SmrtLatestRelatedRow<SmrtObject>[]>;
430
+ listWithLatestRelated(options: Omit<SmrtLatestRelatedListOptions<ModelType>, 'stiScope'> & {
431
+ stiScope?: undefined;
432
+ }): Promise<SmrtLatestRelatedRow<ModelType>[]>;
433
+ listWithLatestRelated(options: SmrtLatestRelatedListOptions<ModelType>): Promise<SmrtLatestRelatedRow<SmrtObject>[]>;
409
434
  private formatProjectionRow;
410
435
  /**
411
436
  * Gets the class constructor for items in this collection
@@ -668,12 +693,32 @@ export declare class SmrtCollection<ModelType extends SmrtObject> extends SmrtCl
668
693
  *
669
694
  * @returns Promise resolving to an array of model instances, or plain selected rows when `select` is present
670
695
  */
671
- list<const Select extends readonly SmrtSelectField<ModelType>[]>(options: SmrtListOptions<ModelType> & {
696
+ list<const Select extends readonly SmrtSelectField<ModelType>[]>(options: Omit<SmrtListOptions<ModelType>, 'select' | 'stiScope'> & {
697
+ select: Select;
698
+ include?: never;
699
+ stiScope: SmrtStiReadScope;
700
+ }): Promise<Record<string, unknown>[]>;
701
+ list<const Select extends readonly SmrtSelectField<ModelType>[]>(options: Omit<SmrtListOptions<ModelType>, 'select' | 'stiScope'> & {
672
702
  select: Select;
673
703
  include?: never;
704
+ stiScope?: undefined;
674
705
  }): Promise<SmrtSelectedRow<ModelType, Select>[]>;
675
- list(options?: Omit<SmrtListOptions<ModelType>, 'select'> & {
706
+ list(options: Omit<SmrtListOptions<ModelType>, 'select' | 'stiScope'> & {
676
707
  select?: undefined;
708
+ stiScope: SmrtStiReadScope;
709
+ }): Promise<SmrtObject[]>;
710
+ list(options?: undefined): Promise<ModelType[]>;
711
+ list(options: Omit<SmrtListOptions<ModelType>, 'select' | 'stiScope'> & {
712
+ select?: undefined;
713
+ stiScope?: undefined;
714
+ }): Promise<ModelType[]>;
715
+ list(options: (Omit<SmrtListOptions<ModelType>, 'select'> & {
716
+ select?: undefined;
717
+ }) | undefined): Promise<SmrtObject[]>;
718
+ list(options: SmrtListOptions<ModelType> | undefined): Promise<SmrtObject[] | Record<string, unknown>[]>;
719
+ list(options: Omit<SmrtListOptions<ModelType>, 'select' | 'stiScope'> & {
720
+ select?: undefined;
721
+ stiScope?: undefined;
677
722
  }): Promise<ModelType[]>;
678
723
  /**
679
724
  * Eagerly load relationships for a collection of instances
@@ -895,6 +940,7 @@ export declare class SmrtCollection<ModelType extends SmrtObject> extends SmrtCl
895
940
  */
896
941
  count(options?: {
897
942
  where?: SmrtListWhereClause<ModelType>;
943
+ stiScope?: SmrtStiReadScope;
898
944
  }): Promise<number>;
899
945
  /**
900
946
  * Return database-backed distinct values and row counts for one or more
@@ -939,6 +985,7 @@ export declare class SmrtCollection<ModelType extends SmrtObject> extends SmrtCl
939
985
  */
940
986
  counts(options?: {
941
987
  where?: SmrtListWhereClause<ModelType>;
988
+ stiScope?: SmrtStiReadScope;
942
989
  }): Promise<SmrtCollectionCounts>;
943
990
  /**
944
991
  * Resolve this collection's STI child discriminator — the qualified item
@@ -997,6 +1044,12 @@ export declare class SmrtCollection<ModelType extends SmrtObject> extends SmrtCl
997
1044
  allowRawOnTenantScoped?: boolean;
998
1045
  }): Promise<ModelType[]>;
999
1046
  private hydrateResultRow;
1047
+ /**
1048
+ * Resolve inherited field metadata for an STI row's concrete discriminator.
1049
+ * The caller-provided collection fields remain the safe fallback for
1050
+ * non-polymorphic, malformed, or not-yet-registered rows.
1051
+ */
1052
+ private resolveHydrationFields;
1000
1053
  /**
1001
1054
  * Hydrate rows in result order.
1002
1055
  *
@@ -1 +1 @@
1
- {"version":3,"file":"collection.d.ts","sourceRoot":"","sources":["../src/collection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"collection.d.ts","sourceRoot":"","sources":["../src/collection.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,8 @@ var MAX_FACET_FIELDS = 20;
29
29
  var DEFAULT_FACET_LIMIT = 50;
30
30
  /** Hard ceiling for distinct values returned for one facet field. */
31
31
  var MAX_FACET_LIMIT = MAX_LIST_LIMIT;
32
+ /** Maximum number of qualified STI discriminators accepted by one read. */
33
+ var MAX_STI_READ_SCOPE_TYPES = 50;
32
34
  /**
33
35
  * Validate an optional collection-level list bound (#2367).
34
36
  *
@@ -168,6 +170,28 @@ var SmrtCollection = class SmrtCollection extends SmrtClass {
168
170
  const registered = this.getRegisteredItemClass();
169
171
  return registered?.qualifiedName || registered?.name || this._itemClass.name;
170
172
  }
173
+ /** Apply and validate this collection's owned STI discriminator predicate. */
174
+ applyStiReadScope(where, stiScope) {
175
+ const itemQualifiedName = this.getResolvedItemQualifiedName();
176
+ const stiBase = ObjectRegistry.getTableStrategy(itemQualifiedName) === "sti" ? ObjectRegistry.getSTIBase(itemQualifiedName) : null;
177
+ const isChild = stiBase !== null && stiBase !== itemQualifiedName;
178
+ if (stiScope === void 0) return isChild ? andWhereCondition(where, { _meta_type: itemQualifiedName }) : where;
179
+ if (!stiScope || typeof stiScope !== "object" || Array.isArray(stiScope) || Object.keys(stiScope).some((key) => key !== "types") || !Array.isArray(stiScope.types)) throw new Error("Invalid stiScope: expected { types: readonly qualified STI type[] }.");
180
+ if (!isChild) throw new Error("Invalid stiScope: explicit discriminator scopes require an STI child collection.");
181
+ if (stiScope.types.length === 0) throw new Error("Invalid stiScope: types must not be empty.");
182
+ if (stiScope.types.length > 50) throw new Error(`Invalid stiScope: at most 50 types are allowed.`);
183
+ const seen = /* @__PURE__ */ new Set();
184
+ for (const type of stiScope.types) {
185
+ if (typeof type !== "string" || !/^@[a-z0-9][a-z0-9._-]*(?:\/[a-z0-9][a-z0-9._-]*)?:[A-Za-z_$][A-Za-z0-9_$]*$/.test(type)) throw new Error(`Invalid stiScope type: '${String(type)}' must be a qualified SMRT type.`);
186
+ if (seen.has(type)) throw new Error(`Invalid stiScope: duplicate type '${type}'.`);
187
+ seen.add(type);
188
+ const registered = ObjectRegistry.getClass(type);
189
+ if (!registered || registered.qualifiedName !== type) throw new Error(`Invalid stiScope: unknown type '${type}'.`);
190
+ const typeBase = ObjectRegistry.getSTIBase(type);
191
+ if (ObjectRegistry.getTableStrategy(type) !== "sti" || typeBase !== stiBase) throw new Error(`Invalid stiScope: type '${type}' does not share STI root '${stiBase}'.`);
192
+ }
193
+ return andWhereCondition(where, { "_meta_type in": [...stiScope.types] });
194
+ }
171
195
  /**
172
196
  * Resolve the identifier whitelist and the sensitive-column blocklist that
173
197
  * every caller-supplied identifier on this collection is checked against.
@@ -517,48 +541,16 @@ var SmrtCollection = class SmrtCollection extends SmrtClass {
517
541
  if (!inverseForeignKey) throw new Error(`Could not find inverse foreignKey on ${relationship.targetClass} for oneToMany relationship ${relationship.fieldName}`);
518
542
  return inverseForeignKey;
519
543
  }
520
- /**
521
- * Load a page of hydrated parents with one selected latest row from a
522
- * declared `@oneToMany` relation. The parent page is sliced only after the
523
- * latest-row join and optional related sort are applied, so unrelated rows
524
- * are never hydrated in application code.
525
- *
526
- * Missing related rows return `latestRelated: null`. Related order and sort
527
- * fields place null values after non-null values consistently on all
528
- * supported adapters. The related row is a plain projection and is never a
529
- * full `SmrtObject` hydration.
530
- *
531
- * @example
532
- * ```typescript
533
- * const page = await opportunities.listWithLatestRelated({
534
- * latestRelated: {
535
- * relation: 'evaluations',
536
- * orderBy: 'evaluatedAt DESC',
537
- * select: ['score', 'evaluatedAt'],
538
- * sortBy: 'score DESC',
539
- * },
540
- * limit: 25,
541
- * offset: 0,
542
- * });
543
- * console.log(page[0].parent, page[0].latestRelated?.score);
544
- * ```
545
- */
546
544
  async listWithLatestRelated(options) {
547
545
  await this.ensureStorageReady();
548
546
  const itemClassName = this.getResolvedItemClassName();
549
547
  const itemQualifiedName = this.getResolvedItemQualifiedName();
550
548
  const interceptorContext = createInterceptorContext(itemClassName, "list", this.constructor.name);
551
549
  const interceptedOptions = await GlobalInterceptors.executeBeforeList(itemClassName, options, interceptorContext) ?? options;
552
- let { where, offset, limit, orderBy } = interceptedOptions;
550
+ let { where, offset, limit, orderBy, stiScope } = interceptedOptions;
553
551
  const latestOptions = interceptedOptions.latestRelated ?? options.latestRelated;
554
552
  const isSTI = ObjectRegistry.getTableStrategy(itemQualifiedName) === "sti";
555
- if (isSTI) {
556
- const stiBase = ObjectRegistry.getSTIBase(itemQualifiedName);
557
- if (stiBase && stiBase !== itemQualifiedName) where = {
558
- _meta_type: itemQualifiedName,
559
- ...where || {}
560
- };
561
- }
553
+ where = this.applyStiReadScope(where, stiScope);
562
554
  where = resolveMetaTypeInWhere(where);
563
555
  const relationship = ObjectRegistry.getRelationships(this._itemClass.name).find((candidate) => candidate.fieldName === latestOptions.relation && candidate.type === "oneToMany");
564
556
  if (!relationship) throw new Error(`latestRelated.relation '${latestOptions.relation}' is not a declared oneToMany relationship on ${itemClassName}.`);
@@ -658,9 +650,10 @@ var SmrtCollection = class SmrtCollection extends SmrtClass {
658
650
  const rows = await this.db.query(sql, ...relatedWhereValues, ...parentWhereValues, ...limitOffsetValues);
659
651
  const instances = [];
660
652
  const relatedAliasNames = new Set(relatedFieldAliases.values());
653
+ const polymorphicFields = /* @__PURE__ */ new Map();
661
654
  for (const row of rows.rows) {
662
655
  const parentRow = Object.fromEntries(Object.entries(row).filter(([key]) => !relatedAliasNames.has(key)));
663
- instances.push(await this.hydrateResultRow(parentRow, parentFields, isSTI));
656
+ instances.push(await this.hydrateResultRow(parentRow, parentFields, isSTI, polymorphicFields));
664
657
  }
665
658
  const relatedByParentId = /* @__PURE__ */ new Map();
666
659
  for (const row of rows.rows) {
@@ -1025,12 +1018,9 @@ var SmrtCollection = class SmrtCollection extends SmrtClass {
1025
1018
  const itemQualifiedName = this.getResolvedItemQualifiedName();
1026
1019
  const interceptorContext = createInterceptorContext(itemClassName, "list", this.constructor.name);
1027
1020
  const interceptedOptions = await GlobalInterceptors.executeBeforeList(itemClassName, options, interceptorContext) ?? options ?? {};
1028
- let { where, offset, limit, orderBy, select } = interceptedOptions;
1021
+ let { where, offset, limit, orderBy, select, stiScope } = interceptedOptions;
1029
1022
  const isSTI = ObjectRegistry.getTableStrategy(itemQualifiedName) === "sti";
1030
- if (isSTI) {
1031
- const stiBase = ObjectRegistry.getSTIBase(itemQualifiedName);
1032
- if (stiBase && stiBase !== itemQualifiedName) where = andWhereCondition(where, { _meta_type: itemQualifiedName });
1033
- }
1023
+ where = this.applyStiReadScope(where, stiScope);
1034
1024
  where = resolveMetaTypeInWhere(where);
1035
1025
  const { sql: whereSql, values: whereValues } = buildWhere(this.convertWhereKeys(where || {}));
1036
1026
  const fields = this.getFieldsSync();
@@ -1592,14 +1582,10 @@ var SmrtCollection = class SmrtCollection extends SmrtClass {
1592
1582
  */
1593
1583
  async count(options = {}) {
1594
1584
  await this.ensureStorageReady();
1595
- const itemQualifiedName = this.getResolvedItemQualifiedName();
1596
1585
  const itemClassName = this.getResolvedItemClassName();
1597
1586
  const interceptorContext = createInterceptorContext(itemClassName, "list", this.constructor.name);
1598
- let { where } = await GlobalInterceptors.executeBeforeList(itemClassName, options, interceptorContext) ?? options ?? {};
1599
- if (ObjectRegistry.getTableStrategy(itemQualifiedName) === "sti") {
1600
- const stiBase = ObjectRegistry.getSTIBase(itemQualifiedName);
1601
- if (stiBase && stiBase !== itemQualifiedName) where = andWhereCondition(where, { _meta_type: itemQualifiedName });
1602
- }
1587
+ let { where, stiScope } = await GlobalInterceptors.executeBeforeList(itemClassName, options, interceptorContext) ?? options ?? {};
1588
+ where = this.applyStiReadScope(where, stiScope);
1603
1589
  where = resolveMetaTypeInWhere(where);
1604
1590
  const { sql: whereSql, values: whereValues } = buildWhere(this.convertWhereKeys(where || {}));
1605
1591
  return toSafeInteger((await this.db.query(`SELECT COUNT(*) as count FROM ${this.tableName} ${whereSql}`, ...whereValues)).rows[0].count, "Collection count");
@@ -1645,12 +1631,9 @@ var SmrtCollection = class SmrtCollection extends SmrtClass {
1645
1631
  const itemQualifiedName = this.getResolvedItemQualifiedName();
1646
1632
  const interceptorContext = createInterceptorContext(itemClassName, "list", this.constructor.name);
1647
1633
  const interceptedOptions = await GlobalInterceptors.executeBeforeList(itemClassName, options, interceptorContext) ?? options ?? {};
1648
- let { where } = interceptedOptions;
1634
+ let { where, stiScope } = interceptedOptions;
1649
1635
  const isSTI = ObjectRegistry.getTableStrategy(itemQualifiedName) === "sti";
1650
- if (isSTI) {
1651
- const stiBase = ObjectRegistry.getSTIBase(itemQualifiedName);
1652
- if (stiBase && stiBase !== itemQualifiedName) where = andWhereCondition(where, { _meta_type: itemQualifiedName });
1653
- }
1636
+ where = this.applyStiReadScope(where, stiScope);
1654
1637
  where = resolveMetaTypeInWhere(where);
1655
1638
  const { sql: whereSql, values: whereValues } = buildWhere(this.convertWhereKeys(where || {}));
1656
1639
  const fields = this.getFieldsSync();
@@ -1700,7 +1683,7 @@ var SmrtCollection = class SmrtCollection extends SmrtClass {
1700
1683
  */
1701
1684
  async counts(options = {}) {
1702
1685
  return {
1703
- total: await this.count(),
1686
+ total: await this.count({ stiScope: options.stiScope }),
1704
1687
  filtered: await this.count(options)
1705
1688
  };
1706
1689
  }
@@ -1777,8 +1760,9 @@ var SmrtCollection = class SmrtCollection extends SmrtClass {
1777
1760
  const instances = await this.hydrateResultRows(result.rows, fields, isSTI);
1778
1761
  return await GlobalInterceptors.executeAfterQuery(this._itemClass.name, instances, interceptorContext);
1779
1762
  }
1780
- async hydrateResultRow(row, fields, isSTI) {
1781
- const formattedData = this.withHydratedCoreFields(formatDataJs(row, fields));
1763
+ async hydrateResultRow(row, fields, isSTI, polymorphicFields = /* @__PURE__ */ new Map()) {
1764
+ const hydrationFields = await this.resolveHydrationFields(row, fields, isSTI, polymorphicFields);
1765
+ const formattedData = this.withHydratedCoreFields(formatDataJs(row, hydrationFields));
1782
1766
  const metaType = formattedData._meta_type;
1783
1767
  if (isSTI && metaType) return await this.createPolymorphic(typeof metaType === "string" ? metaType : String(metaType), formattedData, { hydrateOnly: true });
1784
1768
  const instanceParams = {
@@ -1796,6 +1780,26 @@ var SmrtCollection = class SmrtCollection extends SmrtClass {
1796
1780
  return instance;
1797
1781
  }
1798
1782
  /**
1783
+ * Resolve inherited field metadata for an STI row's concrete discriminator.
1784
+ * The caller-provided collection fields remain the safe fallback for
1785
+ * non-polymorphic, malformed, or not-yet-registered rows.
1786
+ */
1787
+ async resolveHydrationFields(row, fallbackFields, isSTI, polymorphicFields) {
1788
+ if (!isSTI) return fallbackFields;
1789
+ const rawMetaType = row._meta_type ?? row._metaType;
1790
+ if (rawMetaType === null || rawMetaType === void 0) return fallbackFields;
1791
+ const metaType = String(rawMetaType);
1792
+ const cached = polymorphicFields.get(metaType);
1793
+ if (cached) return cached;
1794
+ if (!ObjectRegistry.getClass(metaType)) await ObjectRegistry.ensureManifestLoaded(metaType);
1795
+ const registeredFields = await ObjectRegistry.getAllFields(metaType);
1796
+ if (registeredFields.size === 0) return fallbackFields;
1797
+ const concreteFields = {};
1798
+ for (const [fieldName, field] of registeredFields) concreteFields[fieldName] = { type: field.type };
1799
+ polymorphicFields.set(metaType, concreteFields);
1800
+ return concreteFields;
1801
+ }
1802
+ /**
1799
1803
  * Hydrate rows in result order.
1800
1804
  *
1801
1805
  * A model's initialize() hook may query through the collection database.
@@ -1806,7 +1810,8 @@ var SmrtCollection = class SmrtCollection extends SmrtClass {
1806
1810
  */
1807
1811
  async hydrateResultRows(rows, fields, isSTI) {
1808
1812
  const instances = [];
1809
- for (const row of rows) instances.push(await this.hydrateResultRow(row, fields, isSTI));
1813
+ const polymorphicFields = /* @__PURE__ */ new Map();
1814
+ for (const row of rows) instances.push(await this.hydrateResultRow(row, fields, isSTI, polymorphicFields));
1810
1815
  return instances;
1811
1816
  }
1812
1817
  /**
@@ -2306,6 +2311,6 @@ var SmrtCollection = class SmrtCollection extends SmrtClass {
2306
2311
  }
2307
2312
  };
2308
2313
  //#endregion
2309
- export { DEFAULT_FACET_LIMIT, MAX_FACET_FIELDS, MAX_FACET_LIMIT, SmrtCollection };
2314
+ export { DEFAULT_FACET_LIMIT, MAX_FACET_FIELDS, MAX_FACET_LIMIT, MAX_STI_READ_SCOPE_TYPES, SmrtCollection };
2310
2315
 
2311
2316
  //# sourceMappingURL=collection.js.map