@happyvertical/smrt-core 0.51.39 → 0.53.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.
Files changed (122) hide show
  1. package/AGENTS.md +9 -0
  2. package/README.md +8 -2
  3. package/agents/model-moves.md +114 -0
  4. package/agents/object-runtime.md +3 -1
  5. package/agents/run-once.md +16 -7
  6. package/agents/schema-paths.md +79 -0
  7. package/dist/cascade.d.ts.map +1 -1
  8. package/dist/cascade.js +6 -3
  9. package/dist/cascade.js.map +1 -1
  10. package/dist/collection.d.ts +10 -1
  11. package/dist/collection.d.ts.map +1 -1
  12. package/dist/collection.js +14 -4
  13. package/dist/collection.js.map +1 -1
  14. package/dist/errors.d.ts +18 -0
  15. package/dist/errors.d.ts.map +1 -1
  16. package/dist/errors.js +21 -0
  17. package/dist/errors.js.map +1 -1
  18. package/dist/generators/preflight-route.d.ts.map +1 -1
  19. package/dist/generators/preflight-route.js +1 -1
  20. package/dist/generators/preflight-route.js.map +1 -1
  21. package/dist/index.d.ts +1 -0
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +2 -1
  24. package/dist/knowledge.d.ts.map +1 -1
  25. package/dist/knowledge.js +3 -0
  26. package/dist/knowledge.js.map +1 -1
  27. package/dist/manifest/static-manifest.d.ts.map +1 -1
  28. package/dist/manifest/static-manifest.js +9 -1
  29. package/dist/manifest/static-manifest.js.map +1 -1
  30. package/dist/manifest/store.js +1 -1
  31. package/dist/manifest/store.js.map +1 -1
  32. package/dist/manifest.json +9 -1
  33. package/dist/migrations/differ.d.ts +56 -0
  34. package/dist/migrations/differ.d.ts.map +1 -1
  35. package/dist/migrations/differ.js +152 -27
  36. package/dist/migrations/differ.js.map +1 -1
  37. package/dist/migrations/index.d.ts +1 -0
  38. package/dist/migrations/index.d.ts.map +1 -1
  39. package/dist/migrations/index.js +2 -1
  40. package/dist/migrations/null-equal-indexes.js +1 -1
  41. package/dist/migrations/orchestrate.d.ts +7 -0
  42. package/dist/migrations/orchestrate.d.ts.map +1 -1
  43. package/dist/migrations/orchestrate.js +4 -2
  44. package/dist/migrations/orchestrate.js.map +1 -1
  45. package/dist/migrations/qualified-name-aliases.d.ts +134 -0
  46. package/dist/migrations/qualified-name-aliases.d.ts.map +1 -0
  47. package/dist/migrations/qualified-name-aliases.js +294 -0
  48. package/dist/migrations/qualified-name-aliases.js.map +1 -0
  49. package/dist/migrations/tracker.d.ts +29 -1
  50. package/dist/migrations/tracker.d.ts.map +1 -1
  51. package/dist/migrations/tracker.js +92 -7
  52. package/dist/migrations/tracker.js.map +1 -1
  53. package/dist/migrations.js +2 -1
  54. package/dist/object.d.ts +128 -0
  55. package/dist/object.d.ts.map +1 -1
  56. package/dist/object.js +333 -44
  57. package/dist/object.js.map +1 -1
  58. package/dist/polymorphic-association.d.ts +18 -0
  59. package/dist/polymorphic-association.d.ts.map +1 -1
  60. package/dist/polymorphic-association.js +27 -2
  61. package/dist/polymorphic-association.js.map +1 -1
  62. package/dist/registry/class-registration.d.ts.map +1 -1
  63. package/dist/registry/class-registration.js +27 -4
  64. package/dist/registry/class-registration.js.map +1 -1
  65. package/dist/registry/name-resolver.d.ts +8 -2
  66. package/dist/registry/name-resolver.d.ts.map +1 -1
  67. package/dist/registry/name-resolver.js +17 -8
  68. package/dist/registry/name-resolver.js.map +1 -1
  69. package/dist/registry/qualified-name-aliases.d.ts +109 -0
  70. package/dist/registry/qualified-name-aliases.d.ts.map +1 -0
  71. package/dist/registry/qualified-name-aliases.js +286 -0
  72. package/dist/registry/qualified-name-aliases.js.map +1 -0
  73. package/dist/registry/relationship-graph.d.ts.map +1 -1
  74. package/dist/registry/relationship-graph.js +1 -1
  75. package/dist/registry/relationship-graph.js.map +1 -1
  76. package/dist/registry/schema-builder.d.ts.map +1 -1
  77. package/dist/registry/schema-builder.js +7 -5
  78. package/dist/registry/schema-builder.js.map +1 -1
  79. package/dist/registry/types.d.ts +26 -0
  80. package/dist/registry/types.d.ts.map +1 -1
  81. package/dist/registry.d.ts +127 -6
  82. package/dist/registry.d.ts.map +1 -1
  83. package/dist/registry.js +234 -14
  84. package/dist/registry.js.map +1 -1
  85. package/dist/scanner/index.d.ts +1 -1
  86. package/dist/scanner/index.d.ts.map +1 -1
  87. package/dist/scanner/manifest-generator.d.ts +14 -2
  88. package/dist/scanner/manifest-generator.d.ts.map +1 -1
  89. package/dist/scanner/manifest-generator.js +48 -9
  90. package/dist/scanner/manifest-generator.js.map +1 -1
  91. package/dist/scanner/types.d.ts +21 -0
  92. package/dist/scanner/types.d.ts.map +1 -1
  93. package/dist/scanner/types.js.map +1 -1
  94. package/dist/schema/conflict-target.d.ts +68 -11
  95. package/dist/schema/conflict-target.d.ts.map +1 -1
  96. package/dist/schema/conflict-target.js +75 -12
  97. package/dist/schema/conflict-target.js.map +1 -1
  98. package/dist/schema/foreign-key-ddl.d.ts +17 -1
  99. package/dist/schema/foreign-key-ddl.d.ts.map +1 -1
  100. package/dist/schema/foreign-key-ddl.js +29 -3
  101. package/dist/schema/foreign-key-ddl.js.map +1 -1
  102. package/dist/schema/foreign-key-policy.d.ts +8 -0
  103. package/dist/schema/foreign-key-policy.d.ts.map +1 -1
  104. package/dist/schema/foreign-key-policy.js +2 -1
  105. package/dist/schema/foreign-key-policy.js.map +1 -1
  106. package/dist/schema/generator.d.ts +7 -0
  107. package/dist/schema/generator.d.ts.map +1 -1
  108. package/dist/schema/generator.js +18 -10
  109. package/dist/schema/generator.js.map +1 -1
  110. package/dist/schema/text-cast-probe.d.ts +50 -1
  111. package/dist/schema/text-cast-probe.d.ts.map +1 -1
  112. package/dist/schema/text-cast-probe.js +46 -11
  113. package/dist/schema/text-cast-probe.js.map +1 -1
  114. package/dist/schema/types.d.ts +6 -0
  115. package/dist/schema/types.d.ts.map +1 -1
  116. package/dist/scripts/browser-plain-json-regression.mjs +4 -1
  117. package/dist/smrt-knowledge.json +22 -11
  118. package/dist/utils/qualified-names.d.ts +11 -0
  119. package/dist/utils/qualified-names.d.ts.map +1 -1
  120. package/dist/utils/qualified-names.js +21 -1
  121. package/dist/utils/qualified-names.js.map +1 -1
  122. package/package.json +11 -11
@@ -511,7 +511,56 @@ export declare class ObjectRegistry {
511
511
  * }
512
512
  * ```
513
513
  */
514
- static getClassByQualifiedName(qualifiedName: string): RegisteredClass | undefined;
514
+ static getClassByQualifiedName(qualifiedName: string, options?: {
515
+ source?: string;
516
+ }): RegisteredClass | undefined;
517
+ /**
518
+ * Every deprecated qualified name declared through
519
+ * `@smrt({ previousQualifiedNames })`, mapped to its class's CURRENT
520
+ * qualified name and sorted by old name (#3338). Aliases are lookup bridges
521
+ * only: they never appear in {@link getAllClasses} or any other iteration.
522
+ */
523
+ static getQualifiedNameAliases(): Map<string, string>;
524
+ /**
525
+ * The current qualified name for `name` — itself when it is a live
526
+ * qualified name, the class's current name when it is a deprecated alias
527
+ * (logging the one-time deprecation warning), `undefined` otherwise —
528
+ * including for every simple (unqualified) name (#3338).
529
+ * Use it to normalize a stored or declared name before writing it.
530
+ */
531
+ static resolveQualifiedName(name: string, options?: {
532
+ source?: string;
533
+ }): string | undefined;
534
+ /**
535
+ * {@link resolveQualifiedName}, also covering a class that is not
536
+ * registered yet: on a qualified miss it lazily loads the name from its
537
+ * package's manifest — or, for a deprecated name, from the manifest of the
538
+ * class that now declares it — before resolving (#3338). A genuinely
539
+ * unknown name still returns `undefined`.
540
+ */
541
+ static resolveQualifiedNameAsync(name: string, options?: {
542
+ source?: string;
543
+ }): Promise<string | undefined>;
544
+ /**
545
+ * {@link getEquivalentQualifiedNames}, lazily loading a qualified name's
546
+ * class from its manifest first when it is not registered yet (#3338), so
547
+ * stored-name filters see a moved class's old names before anything else
548
+ * has registered it.
549
+ */
550
+ static getEquivalentQualifiedNamesAsync(name: string, options?: {
551
+ source?: string;
552
+ }): Promise<string[]>;
553
+ /**
554
+ * Every qualified name stored data may use for the class `name` resolves
555
+ * to: its current qualified name first, then its declared
556
+ * `previousQualifiedNames` (#3338). Readers that match persisted names
557
+ * (e.g. a polymorphic `metaType` filter) use this so rows written before
558
+ * and after a model move both match. A simple (unqualified) or
559
+ * unresolvable `name` is returned alone.
560
+ */
561
+ static getEquivalentQualifiedNames(name: string, options?: {
562
+ source?: string;
563
+ }): string[];
515
564
  /**
516
565
  * Get a registered class by package name and class name.
517
566
  * This is a convenience method for looking up classes by their namespace components.
@@ -635,6 +684,14 @@ export declare class ObjectRegistry {
635
684
  * collisions by preferring qualified class names where available.
636
685
  */
637
686
  static getQualifiedClassNames(): string[];
687
+ /**
688
+ * Old-name claims and defined class names across every manifest this
689
+ * process can see: loaded caches AND every discoverable package's manifest, which this
690
+ * also loads into the cache so registration-time checks see it (#3338).
691
+ * Rebuilt only when the registry generation moves, so repeated lookups of
692
+ * a stale or unknown old name do not rescan every installed manifest.
693
+ */
694
+ private static loadManifestAliasInventory;
638
695
  /**
639
696
  * Try to load and register a class from external SMRT packages
640
697
  *
@@ -889,7 +946,7 @@ export declare class ObjectRegistry {
889
946
  * const fields = ObjectRegistry.getFields('Place'); // Now has fields
890
947
  * ```
891
948
  */
892
- static ensureManifestLoaded(className: string): Promise<void>;
949
+ static ensureManifestLoaded(requestedName: string): Promise<void>;
893
950
  /**
894
951
  * Get configuration for a registered class
895
952
  */
@@ -1275,10 +1332,11 @@ export declare class ObjectRegistry {
1275
1332
  * primary-key column(s) — the only unique key such a table has;
1276
1333
  * 4. the strategy default — CTI `['slug', 'context']`, STI
1277
1334
  * `['slug', 'context', '_meta_type']` — led by the tenant column when
1278
- * the schema owner is tenant-scoped (#2360): tenant-scoped rows are
1279
- * unique per tenant, and without the tenant column a second tenant's
1280
- * `save()` of the same natural key updated the first tenant's row
1281
- * through `DO UPDATE SET`.
1335
+ * the schema owner is tenant-scoped (#2360) or carries an undeclared
1336
+ * `tenantId` field ({@link ObjectRegistry.getOwnershipTenantColumn}):
1337
+ * tenant-owned rows are unique per tenant, and without the tenant column
1338
+ * a second tenant's `save()` of the same natural key updated the first
1339
+ * tenant's row through `DO UPDATE SET`.
1282
1340
  *
1283
1341
  * STI subclasses share a table, so the discriminator participates in
1284
1342
  * identity — two subtypes can coexist with the same (slug, context). The
@@ -1307,6 +1365,69 @@ export declare class ObjectRegistry {
1307
1365
  * ```
1308
1366
  */
1309
1367
  static getConflictColumns(className: string): string[];
1368
+ /**
1369
+ * The column that owns a table's rows for natural-key identity: the
1370
+ * declared tenant column ({@link ObjectRegistry.getTenantColumn}), else
1371
+ * `tenant_id` when the schema owner has a `tenantId` field but declares no
1372
+ * tenancy — the shape a consumer registers with the tenancy interceptor at
1373
+ * runtime. The default conflict target and unique index lead with it, so a
1374
+ * second tenant's same-slug row is a second row rather than an upsert onto
1375
+ * the first tenant's. See `resolveOwnershipTenantColumn()`.
1376
+ *
1377
+ * @param className - Name of the class (simple or qualified)
1378
+ * @returns The snake_case ownership column, or `undefined`
1379
+ */
1380
+ static getOwnershipTenantColumn(className: string): string | undefined;
1381
+ /**
1382
+ * Every typed reference (`@foreignKey` / `@crossPackageRef`) that points at
1383
+ * `className`, resolved the same way `SmrtObject.delete()` resolves them for
1384
+ * cascades: the referencing class, its table and column, and the resolved
1385
+ * `onDelete` action. Use it to re-point references before replacing one row
1386
+ * with another (a tag merge) instead of letting a delete cascade them away.
1387
+ *
1388
+ * @param className - Name of the referenced class (simple or qualified)
1389
+ */
1390
+ static getIncomingReferences(className: string): Array<{
1391
+ className: string;
1392
+ tableName: string;
1393
+ column: string;
1394
+ onDelete: string;
1395
+ }>;
1396
+ /**
1397
+ * Runtime ownership-column sources (see
1398
+ * {@link ObjectRegistry.registerOwnershipColumnSource}).
1399
+ */
1400
+ private static ownershipColumnSources;
1401
+ /**
1402
+ * Register a source of RUNTIME ownership columns: columns that record a
1403
+ * row's owner for a class whose manifest does not say so — the tenancy
1404
+ * package's `registerTenantScopedClass('Team', { field: 'organizationId' })`
1405
+ * is the canonical producer.
1406
+ *
1407
+ * Core reads these only to protect ownership on save
1408
+ * ({@link ObjectRegistry.getOwnershipColumns}); they never change the
1409
+ * conflict target or the schema, which are build-time contracts a runtime
1410
+ * registration cannot alter without breaking `ON CONFLICT` binding. The
1411
+ * source is consulted on every lookup, so registrations that bind later (a
1412
+ * selector registered before its class) or are removed take effect
1413
+ * immediately.
1414
+ *
1415
+ * @param source - maps a qualified class name to its runtime ownership
1416
+ * columns (snake_case), or `undefined` when it has none
1417
+ * @returns a disposer that removes the source
1418
+ */
1419
+ static registerOwnershipColumnSource(source: (qualifiedName: string) => readonly string[] | undefined): () => void;
1420
+ /**
1421
+ * Every column that records a row's owner for natural-key save protection:
1422
+ * `tenant_id`, the declared tenant column, each `@tenantId`-marked field's
1423
+ * column, and every runtime ownership column a registered source reports
1424
+ * ({@link ObjectRegistry.registerOwnershipColumnSource}) — so a runtime
1425
+ * tenancy registration on a custom field (`organizationId`) is compared like
1426
+ * `tenant_id`.
1427
+ *
1428
+ * @param className - Name of the class (simple or qualified)
1429
+ */
1430
+ static getOwnershipColumns(className: string): Set<string>;
1310
1431
  /**
1311
1432
  * The tenant column of the table a class writes to, or `undefined` when its
1312
1433
  * schema owner (the STI root for a single-table hierarchy, the class itself
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
package/dist/registry.js CHANGED
@@ -1,17 +1,19 @@
1
1
  import { ConfigurationError } from "./errors.js";
2
+ import { defaultConflictColumns, resolveOwnershipTenantColumn, resolveTenantColumn } from "./schema/conflict-target.js";
2
3
  import { classnameToTablename, toSnakeCase } from "./utils/naming.js";
4
+ import { buildCascadePlan } from "./cascade.js";
3
5
  import { applyOneToManyChildAccessors } from "./child-accessors.js";
4
6
  import { applyPendingDecoratorRegistrations } from "./decorators/compatibility.js";
5
7
  import { bumpRegistryGeneration, getRegistryGeneration } from "./registry/generation.js";
6
- import { createQualifiedName, isQualifiedName, parseQualifiedName } from "./utils/qualified-names.js";
8
+ import { createQualifiedName, isQualifiedName, parseQualifiedName, readPreviousQualifiedNames } from "./utils/qualified-names.js";
7
9
  import { LRUCache } from "./utils/lru-cache.js";
8
10
  import { getClasses, getCollectionCache, getCollectionTableNames, getCollections, getConstructorFieldDecorators, getConstructorTenantScopedDeclarations, getDbInstanceIds, getDiscoveryAttemptCache, getFieldDecorators, getInheritanceCache, getLegacyFieldDecorators, getMethodDecorators, getNextDbId, getSourceFileFromStack, getStiSiblingsLoaded, setNextDbId, verboseLog } from "./registry/shared-state.js";
9
- import { defaultConflictColumns, resolveTenantColumn } from "./schema/conflict-target.js";
10
11
  import { clearRegistryDiagnostics, flushRegistryDiagnostics, getRegistryDiagnostics, recordRegistryDiagnostic } from "./registry/diagnostics.js";
11
- import { cloneManifestSchemaColumns, discoverCachedManifestSync, getManifestCache, getNodeBuiltins, loadExternalManifestSyncWithNode } from "./manifest/store.js";
12
+ import { cloneManifestSchemaColumns, discoverCachedManifestSync, getLocalTestManifestCache, getManifestCache, getNodeBuiltins, getStaticManifestCache, getTestManifestCache, loadExternalManifestSyncWithNode } from "./manifest/store.js";
12
13
  import { getDefaultCompositeSource } from "./manifest/sources/composite.js";
13
14
  import { getPackageName } from "./manifest/manifest-loader.js";
14
15
  import { ExplicitPathsManifestSource } from "./manifest/sources/explicit-paths.js";
16
+ import { collectManifestAliasInventory, getQualifiedNameAliasMap, lookupQualifiedNameAlias, resetQualifiedNameAliasWarnings, resolveManifestQualifiedNameAlias, warnDeprecatedQualifiedName } from "./registry/qualified-name-aliases.js";
15
17
  import { findClass, findClassesByName, getAllClasses, getCanonicalClassName, getClass, getClassByConstructor, getClassByQualifiedName, getClassInPackage, getClassNames, getClassesByPackage, getClassesByVisibility, getPublicClasses, getQualifiedClassNames, hasClass, hasClassCaseInsensitive, resolveType } from "./registry/name-resolver.js";
16
18
  import { getAllFields, getAllMethods, getInheritanceChain, mergeFieldConfigs } from "./registry/inheritance-resolver.js";
17
19
  import { resolveCollectionCacheConfig } from "./registry/cache-config.js";
@@ -71,13 +73,18 @@ var manifestLoaderModule;
71
73
  * not cached, so a transient failure is retried on the next call.
72
74
  */
73
75
  function importManifestLoader() {
74
- if (!manifestLoaderModule) manifestLoaderModule = import(getManifestLoaderSpecifier()).catch((error) => {
76
+ if (!manifestLoaderModule) manifestLoaderModule = (import.meta.url.endsWith(".ts") ? import(getManifestLoaderSpecifier()) : import("./manifest/index.js")).catch((error) => {
75
77
  manifestLoaderModule = void 0;
76
78
  throw error;
77
79
  });
78
80
  return manifestLoaderModule;
79
81
  }
80
82
  /**
83
+ * Lazy alias claim inventory (#3338), keyed to the registry generation it
84
+ * was built at. See `ObjectRegistry.loadManifestAliasInventory()`.
85
+ */
86
+ var manifestAliasInventory;
87
+ /**
81
88
  * Registered classes whose manifest has been reconciled, keyed to the registry
82
89
  * generation it was reconciled at (#3047). `ensureManifestLoaded()` sits on
83
90
  * every hydration path; once a class agrees with its manifest there is nothing
@@ -99,11 +106,17 @@ function applyManifestFieldColumnMetadata(columns, fieldEntries) {
99
106
  const columnName = toSnakeCase(fieldName);
100
107
  const existingColumn = columns[columnName];
101
108
  if (!existingColumn) continue;
102
- columns[columnName] = {
109
+ const column = {
103
110
  ...existingColumn,
104
111
  ...sqlType ? { type: String(sqlType).toUpperCase() } : {},
105
112
  ...referenceKind ? { referenceKind } : {}
106
113
  };
114
+ if (String(column.type).toUpperCase() === "UUID") {
115
+ const loose = column;
116
+ if (loose.default === "") delete loose.default;
117
+ if (loose.defaultValue === "") delete loose.defaultValue;
118
+ }
119
+ columns[columnName] = column;
107
120
  }
108
121
  }
109
122
  async function discoverInstalledSmrtPackages() {
@@ -143,6 +156,22 @@ function resolveManifestByUpwardSearch(builtins, missingPath) {
143
156
  return null;
144
157
  }
145
158
  /**
159
+ * The absolute filesystem path behind a Vite dev-server URL
160
+ * (`http(s)://host/@fs/<absolute path>`), or `null` for any other string.
161
+ */
162
+ function viteFsUrlToPath(urlString) {
163
+ if (!/^https?:\/\//i.test(urlString)) return null;
164
+ let pathname;
165
+ try {
166
+ pathname = new URL(urlString).pathname;
167
+ } catch {
168
+ return null;
169
+ }
170
+ if (!pathname.startsWith("/@fs/")) return null;
171
+ const decoded = decodeURIComponent(pathname.slice(4));
172
+ return /^\/[A-Za-z]:\//.test(decoded) ? decoded.slice(1) : decoded;
173
+ }
174
+ /**
146
175
  * Central registry for all SMRT objects
147
176
  *
148
177
  * Uses globalThis for cross-module state sharing, ensuring all module instances
@@ -725,8 +754,69 @@ var ObjectRegistry = class ObjectRegistry {
725
754
  * }
726
755
  * ```
727
756
  */
728
- static getClassByQualifiedName(qualifiedName) {
729
- return getClassByQualifiedName(qualifiedName);
757
+ static getClassByQualifiedName(qualifiedName, options = {}) {
758
+ return getClassByQualifiedName(qualifiedName, options.source);
759
+ }
760
+ /**
761
+ * Every deprecated qualified name declared through
762
+ * `@smrt({ previousQualifiedNames })`, mapped to its class's CURRENT
763
+ * qualified name and sorted by old name (#3338). Aliases are lookup bridges
764
+ * only: they never appear in {@link getAllClasses} or any other iteration.
765
+ */
766
+ static getQualifiedNameAliases() {
767
+ return getQualifiedNameAliasMap();
768
+ }
769
+ /**
770
+ * The current qualified name for `name` — itself when it is a live
771
+ * qualified name, the class's current name when it is a deprecated alias
772
+ * (logging the one-time deprecation warning), `undefined` otherwise —
773
+ * including for every simple (unqualified) name (#3338).
774
+ * Use it to normalize a stored or declared name before writing it.
775
+ */
776
+ static resolveQualifiedName(name, options = {}) {
777
+ if (!name.includes(":")) return void 0;
778
+ const registered = getClassByQualifiedName(name, options.source);
779
+ if (!registered) return void 0;
780
+ return registered.qualifiedName ?? name;
781
+ }
782
+ /**
783
+ * {@link resolveQualifiedName}, also covering a class that is not
784
+ * registered yet: on a qualified miss it lazily loads the name from its
785
+ * package's manifest — or, for a deprecated name, from the manifest of the
786
+ * class that now declares it — before resolving (#3338). A genuinely
787
+ * unknown name still returns `undefined`.
788
+ */
789
+ static async resolveQualifiedNameAsync(name, options = {}) {
790
+ if (!name.includes(":")) return void 0;
791
+ const resolved = ObjectRegistry.resolveQualifiedName(name, options);
792
+ if (resolved) return resolved;
793
+ if (!await ObjectRegistry.tryLoadFromExternalPackage(name)) return;
794
+ return ObjectRegistry.resolveQualifiedName(name, options);
795
+ }
796
+ /**
797
+ * {@link getEquivalentQualifiedNames}, lazily loading a qualified name's
798
+ * class from its manifest first when it is not registered yet (#3338), so
799
+ * stored-name filters see a moved class's old names before anything else
800
+ * has registered it.
801
+ */
802
+ static async getEquivalentQualifiedNamesAsync(name, options = {}) {
803
+ if (!name.includes(":")) return [name];
804
+ await ObjectRegistry.resolveQualifiedNameAsync(name, options);
805
+ return ObjectRegistry.getEquivalentQualifiedNames(name, options);
806
+ }
807
+ /**
808
+ * Every qualified name stored data may use for the class `name` resolves
809
+ * to: its current qualified name first, then its declared
810
+ * `previousQualifiedNames` (#3338). Readers that match persisted names
811
+ * (e.g. a polymorphic `metaType` filter) use this so rows written before
812
+ * and after a model move both match. A simple (unqualified) or
813
+ * unresolvable `name` is returned alone.
814
+ */
815
+ static getEquivalentQualifiedNames(name, options = {}) {
816
+ if (!name.includes(":")) return [name];
817
+ const registered = getClassByQualifiedName(name, options.source);
818
+ if (!registered?.qualifiedName) return [name];
819
+ return [registered.qualifiedName, ...readPreviousQualifiedNames(registered.config).filter((alias) => alias !== registered.qualifiedName)];
730
820
  }
731
821
  /**
732
822
  * Get a registered class by package name and class name.
@@ -870,6 +960,34 @@ var ObjectRegistry = class ObjectRegistry {
870
960
  return getQualifiedClassNames();
871
961
  }
872
962
  /**
963
+ * Old-name claims and defined class names across every manifest this
964
+ * process can see: loaded caches AND every discoverable package's manifest, which this
965
+ * also loads into the cache so registration-time checks see it (#3338).
966
+ * Rebuilt only when the registry generation moves, so repeated lookups of
967
+ * a stale or unknown old name do not rescan every installed manifest.
968
+ */
969
+ static async loadManifestAliasInventory(loadExternalManifest) {
970
+ if (manifestAliasInventory?.generation === getRegistryGeneration()) return manifestAliasInventory.inventory;
971
+ let packages = [];
972
+ try {
973
+ packages = await discoverInstalledSmrtPackages();
974
+ } catch (error) {
975
+ verboseLog(`[ObjectRegistry] Package discovery failed while indexing qualified-name aliases: ${error instanceof Error ? error.message : String(error)}`);
976
+ }
977
+ for (const packageName of packages) await loadExternalManifest(packageName);
978
+ const inventory = collectManifestAliasInventory([
979
+ ...getManifestCache().values(),
980
+ getStaticManifestCache(),
981
+ getTestManifestCache(),
982
+ getLocalTestManifestCache()
983
+ ]);
984
+ manifestAliasInventory = {
985
+ generation: getRegistryGeneration(),
986
+ inventory
987
+ };
988
+ return inventory;
989
+ }
990
+ /**
873
991
  * Try to load and register a class from external SMRT packages
874
992
  *
875
993
  * This method attempts to auto-discover classes from @happyvertical/smrt-* packages
@@ -907,6 +1025,16 @@ var ObjectRegistry = class ObjectRegistry {
907
1025
  });
908
1026
  }
909
1027
  if (matches.length === 0) {
1028
+ if (requestedPackageName) {
1029
+ const current = resolveManifestQualifiedNameAlias(await ObjectRegistry.loadManifestAliasInventory(loadExternalManifest), className);
1030
+ if (current && current !== className) {
1031
+ if (await ObjectRegistry.tryLoadFromExternalPackage(current)) {
1032
+ const registered = lookupQualifiedNameAlias(className);
1033
+ if (registered) warnDeprecatedQualifiedName(className, registered.qualifiedName ?? current, "manifest alias index (lazy load)");
1034
+ return true;
1035
+ }
1036
+ }
1037
+ }
910
1038
  verboseLog(`[ObjectRegistry] ❌ Could not find ${className} in any SMRT package`);
911
1039
  return false;
912
1040
  }
@@ -916,6 +1044,7 @@ var ObjectRegistry = class ObjectRegistry {
916
1044
  });
917
1045
  const { manifest, packageName, objectDef } = matches[0];
918
1046
  verboseLog(`[ObjectRegistry] ✅ Found ${className} in ${packageName} manifest`);
1047
+ if (Object.values(manifest.objects).some((def) => readPreviousQualifiedNames(def?.decoratorConfig).length > 0)) await ObjectRegistry.loadManifestAliasInventory(loadExternalManifest);
919
1048
  ObjectRegistry.registerFromManifest(objectDef.className || requestedClassName, objectDef, manifest.packageName);
920
1049
  const childClassName = objectDef.className || requestedClassName;
921
1050
  if (objectDef.extends && objectDef.extends !== childClassName) {
@@ -1069,8 +1198,10 @@ var ObjectRegistry = class ObjectRegistry {
1069
1198
  let manifest = null;
1070
1199
  try {
1071
1200
  const urlString = manifestUrl instanceof URL ? manifestUrl.href : manifestUrl;
1201
+ const devServerPath = viteFsUrlToPath(urlString);
1072
1202
  let filePath;
1073
- if (manifestUrl instanceof URL) filePath = builtins.url.fileURLToPath(manifestUrl);
1203
+ if (devServerPath) filePath = devServerPath;
1204
+ else if (manifestUrl instanceof URL) filePath = builtins.url.fileURLToPath(manifestUrl);
1074
1205
  else if (urlString.startsWith("file:")) filePath = builtins.url.fileURLToPath(urlString);
1075
1206
  else filePath = urlString;
1076
1207
  if (!builtins.fs.existsSync(filePath)) {
@@ -1186,6 +1317,7 @@ var ObjectRegistry = class ObjectRegistry {
1186
1317
  ObjectRegistry.constructorTenantScopedDeclarations.clear();
1187
1318
  getLegacyFieldDecorators().clear();
1188
1319
  ObjectRegistry.stiSiblingsLoaded.clear();
1320
+ resetQualifiedNameAliasWarnings();
1189
1321
  ObjectRegistry.nextDbId = 1;
1190
1322
  }
1191
1323
  /**
@@ -1383,7 +1515,8 @@ var ObjectRegistry = class ObjectRegistry {
1383
1515
  * const fields = ObjectRegistry.getFields('Place'); // Now has fields
1384
1516
  * ```
1385
1517
  */
1386
- static async ensureManifestLoaded(className) {
1518
+ static async ensureManifestLoaded(requestedName) {
1519
+ let className = requestedName;
1387
1520
  const startGeneration = getRegistryGeneration();
1388
1521
  let registered = ObjectRegistry.findClass(className);
1389
1522
  if (registered && manifestEnsuredAtGeneration.get(registered) === startGeneration) return;
@@ -1398,6 +1531,7 @@ var ObjectRegistry = class ObjectRegistry {
1398
1531
  const testHint = process.env.NODE_ENV === "test" || process.env.VITEST === "true" || typeof testGlobals.describe !== "undefined" || typeof testGlobals.it !== "undefined" ? "\n\n⚠️ Are you using 'smrt test'? Tests require manifest generation.\n ✅ Use: smrt test\n ❌ NOT: npx vitest\n" : "";
1399
1532
  throw new Error(`Class '${className}' is not registered. Ensure the class is decorated with @smrt() before using it.` + testHint);
1400
1533
  }
1534
+ if (registered.qualifiedName && registered.qualifiedName !== className && lookupQualifiedNameAlias(className) === registered) className = registered.qualifiedName;
1401
1535
  const existingFieldCount = registered.fields.size;
1402
1536
  const { discoverManifestEntry } = await importManifestLoader();
1403
1537
  const manifestEntry = await discoverManifestEntry(registered.constructor, className);
@@ -2004,10 +2138,11 @@ var ObjectRegistry = class ObjectRegistry {
2004
2138
  * primary-key column(s) — the only unique key such a table has;
2005
2139
  * 4. the strategy default — CTI `['slug', 'context']`, STI
2006
2140
  * `['slug', 'context', '_meta_type']` — led by the tenant column when
2007
- * the schema owner is tenant-scoped (#2360): tenant-scoped rows are
2008
- * unique per tenant, and without the tenant column a second tenant's
2009
- * `save()` of the same natural key updated the first tenant's row
2010
- * through `DO UPDATE SET`.
2141
+ * the schema owner is tenant-scoped (#2360) or carries an undeclared
2142
+ * `tenantId` field ({@link ObjectRegistry.getOwnershipTenantColumn}):
2143
+ * tenant-owned rows are unique per tenant, and without the tenant column
2144
+ * a second tenant's `save()` of the same natural key updated the first
2145
+ * tenant's row through `DO UPDATE SET`.
2011
2146
  *
2012
2147
  * STI subclasses share a table, so the discriminator participates in
2013
2148
  * identity — two subtypes can coexist with the same (slug, context). The
@@ -2053,7 +2188,92 @@ var ObjectRegistry = class ObjectRegistry {
2053
2188
  }
2054
2189
  const primaryKeyColumns = Array.from(owner.fields.entries()).filter(([, field]) => field?._meta?.primaryKey === true).map(([fieldName]) => toSnakeCase(fieldName));
2055
2190
  if (primaryKeyColumns.length > 0) return primaryKeyColumns;
2056
- return defaultConflictColumns(tableStrategy, ObjectRegistry.getTenantColumn(className));
2191
+ return defaultConflictColumns(tableStrategy, ObjectRegistry.getOwnershipTenantColumn(className));
2192
+ }
2193
+ /**
2194
+ * The column that owns a table's rows for natural-key identity: the
2195
+ * declared tenant column ({@link ObjectRegistry.getTenantColumn}), else
2196
+ * `tenant_id` when the schema owner has a `tenantId` field but declares no
2197
+ * tenancy — the shape a consumer registers with the tenancy interceptor at
2198
+ * runtime. The default conflict target and unique index lead with it, so a
2199
+ * second tenant's same-slug row is a second row rather than an upsert onto
2200
+ * the first tenant's. See `resolveOwnershipTenantColumn()`.
2201
+ *
2202
+ * @param className - Name of the class (simple or qualified)
2203
+ * @returns The snake_case ownership column, or `undefined`
2204
+ */
2205
+ static getOwnershipTenantColumn(className) {
2206
+ const declared = ObjectRegistry.getTenantColumn(className);
2207
+ const registered = ObjectRegistry.findClass(className);
2208
+ if (!registered) return declared;
2209
+ const ownerName = ObjectRegistry.getTableStrategy(className) === "sti" ? ObjectRegistry.getSTIBase(className) : null;
2210
+ const owner = ownerName && ownerName !== className ? ObjectRegistry.findClass(ownerName) ?? registered : registered;
2211
+ return resolveOwnershipTenantColumn(declared, (columnName) => [...owner.fields.entries()].some(([fieldName, field]) => field?.type !== "oneToMany" && field?.type !== "manyToMany" && toSnakeCase(fieldName) === columnName));
2212
+ }
2213
+ /**
2214
+ * Every typed reference (`@foreignKey` / `@crossPackageRef`) that points at
2215
+ * `className`, resolved the same way `SmrtObject.delete()` resolves them for
2216
+ * cascades: the referencing class, its table and column, and the resolved
2217
+ * `onDelete` action. Use it to re-point references before replacing one row
2218
+ * with another (a tag merge) instead of letting a delete cascade them away.
2219
+ *
2220
+ * @param className - Name of the referenced class (simple or qualified)
2221
+ */
2222
+ static getIncomingReferences(className) {
2223
+ return buildCascadePlan(ObjectRegistry, className).references.map((reference) => ({
2224
+ className: reference.className,
2225
+ tableName: reference.tableName,
2226
+ column: reference.column,
2227
+ onDelete: reference.action
2228
+ }));
2229
+ }
2230
+ /**
2231
+ * Runtime ownership-column sources (see
2232
+ * {@link ObjectRegistry.registerOwnershipColumnSource}).
2233
+ */
2234
+ static ownershipColumnSources = /* @__PURE__ */ new Set();
2235
+ /**
2236
+ * Register a source of RUNTIME ownership columns: columns that record a
2237
+ * row's owner for a class whose manifest does not say so — the tenancy
2238
+ * package's `registerTenantScopedClass('Team', { field: 'organizationId' })`
2239
+ * is the canonical producer.
2240
+ *
2241
+ * Core reads these only to protect ownership on save
2242
+ * ({@link ObjectRegistry.getOwnershipColumns}); they never change the
2243
+ * conflict target or the schema, which are build-time contracts a runtime
2244
+ * registration cannot alter without breaking `ON CONFLICT` binding. The
2245
+ * source is consulted on every lookup, so registrations that bind later (a
2246
+ * selector registered before its class) or are removed take effect
2247
+ * immediately.
2248
+ *
2249
+ * @param source - maps a qualified class name to its runtime ownership
2250
+ * columns (snake_case), or `undefined` when it has none
2251
+ * @returns a disposer that removes the source
2252
+ */
2253
+ static registerOwnershipColumnSource(source) {
2254
+ ObjectRegistry.ownershipColumnSources.add(source);
2255
+ return () => {
2256
+ ObjectRegistry.ownershipColumnSources.delete(source);
2257
+ };
2258
+ }
2259
+ /**
2260
+ * Every column that records a row's owner for natural-key save protection:
2261
+ * `tenant_id`, the declared tenant column, each `@tenantId`-marked field's
2262
+ * column, and every runtime ownership column a registered source reports
2263
+ * ({@link ObjectRegistry.registerOwnershipColumnSource}) — so a runtime
2264
+ * tenancy registration on a custom field (`organizationId`) is compared like
2265
+ * `tenant_id`.
2266
+ *
2267
+ * @param className - Name of the class (simple or qualified)
2268
+ */
2269
+ static getOwnershipColumns(className) {
2270
+ const columns = /* @__PURE__ */ new Set(["tenant_id"]);
2271
+ const declared = ObjectRegistry.getTenantColumn(className);
2272
+ if (declared) columns.add(declared);
2273
+ for (const [name, field] of ObjectRegistry.getFields(className)) if (field.__tenancy?.isTenantIdField || field._meta?.__tenancy?.isTenantIdField) columns.add(toSnakeCase(name));
2274
+ const qualifiedName = ObjectRegistry.findClass(className)?.qualifiedName ?? className;
2275
+ for (const source of ObjectRegistry.ownershipColumnSources) for (const column of source(qualifiedName) ?? []) if (column) columns.add(column);
2276
+ return columns;
2057
2277
  }
2058
2278
  /**
2059
2279
  * The tenant column of the table a class writes to, or `undefined` when its