@happyvertical/smrt-core 0.51.16 → 0.51.18
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/AGENTS.md +7 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/manifest/manifest-loader.d.ts.map +1 -1
- package/dist/manifest/manifest-loader.js +4 -0
- package/dist/manifest/manifest-loader.js.map +1 -1
- package/dist/manifest/static-manifest.js +1 -1
- package/dist/manifest/static-manifest.js.map +1 -1
- package/dist/manifest/store.d.ts.map +1 -1
- package/dist/manifest/store.js +10 -3
- package/dist/manifest/store.js.map +1 -1
- package/dist/manifest.json +1 -1
- package/dist/migrations/differ.d.ts.map +1 -1
- package/dist/migrations/differ.js +33 -18
- package/dist/migrations/differ.js.map +1 -1
- package/dist/registry/class-registration.d.ts +5 -0
- package/dist/registry/class-registration.d.ts.map +1 -1
- package/dist/registry/class-registration.js +25 -0
- package/dist/registry/class-registration.js.map +1 -1
- package/dist/registry/generation.d.ts +47 -0
- package/dist/registry/generation.d.ts.map +1 -0
- package/dist/registry/generation.js +56 -0
- package/dist/registry/generation.js.map +1 -0
- package/dist/registry/name-resolver.d.ts.map +1 -1
- package/dist/registry/name-resolver.js +48 -11
- package/dist/registry/name-resolver.js.map +1 -1
- package/dist/registry/shared-state.d.ts.map +1 -1
- package/dist/registry/shared-state.js +6 -2
- package/dist/registry/shared-state.js.map +1 -1
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +39 -7
- package/dist/registry.js.map +1 -1
- package/dist/schema/live-parity.d.ts.map +1 -1
- package/dist/schema/live-parity.js +13 -0
- package/dist/schema/live-parity.js.map +1 -1
- package/dist/schema/text-cast-probe.d.ts +25 -9
- package/dist/schema/text-cast-probe.d.ts.map +1 -1
- package/dist/schema/text-cast-probe.js +84 -9
- package/dist/schema/text-cast-probe.js.map +1 -1
- package/dist/smrt-knowledge.json +5 -5
- package/dist/utils/chunk.js +23 -1
- package/dist/utils/chunk.js.map +1 -1
- package/package.json +4 -4
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { SmrtObject } from '../object';
|
|
2
2
|
import { SmartObjectDefinition } from '../scanner/types.js';
|
|
3
3
|
import { RegisteredClass, RegisteredField, SmartObjectConfig } from './types.js';
|
|
4
|
+
/**
|
|
5
|
+
* Register (or re-register) a class. Every registration can add, replace or
|
|
6
|
+
* mutate a registered class in place, so it invalidates the generation-keyed
|
|
7
|
+
* registry memos before and after (#3047) — including when it throws partway.
|
|
8
|
+
*/
|
|
4
9
|
export declare function register(ctor: typeof SmrtObject, config?: SmartObjectConfig): void;
|
|
5
10
|
export declare function registerCollection(objectName: string, collectionConstructor: NonNullable<RegisteredClass['collectionConstructor']>): void;
|
|
6
11
|
export declare function ensureTenantScopedField(fields: Map<string, RegisteredField>, tenantScopedConfig: RegisteredClass['tenantScopedConfig'] | undefined): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"class-registration.d.ts","sourceRoot":"","sources":["../../src/registry/class-registration.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAcH,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,KAAK,EAKV,qBAAqB,EAGtB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"class-registration.d.ts","sourceRoot":"","sources":["../../src/registry/class-registration.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAcH,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,KAAK,EAKV,qBAAqB,EAGtB,MAAM,qBAAqB,CAAC;AAyC7B,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,iBAAiB,EAElB,MAAM,YAAY,CAAC;AA2gBpB;;;;GAIG;AACH,wBAAgB,QAAQ,CACtB,IAAI,EAAE,OAAO,UAAU,EACvB,MAAM,GAAE,iBAAsB,GAC7B,IAAI,CAON;AA+4BD,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,MAAM,EAMlB,qBAAqB,EAAE,WAAW,CAAC,eAAe,CAAC,uBAAuB,CAAC,CAAC,GAC3E,IAAI,CAeN;AA+BD,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,EACpC,kBAAkB,EAAE,eAAe,CAAC,oBAAoB,CAAC,GAAG,SAAS,GACpE,IAAI,CAyCN;AAoHD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,eAAe,EACzB,gBAAgB,CAAC,EAAE;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GACA,IAAI,CA4CN;AA2KD,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,qBAAqB,EAChC,mBAAmB,CAAC,EAAE,MAAM,GAC3B,IAAI,CAQN"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ConfigurationError } from "../errors.js";
|
|
2
2
|
import { toSnakeCase } from "../utils/naming.js";
|
|
3
3
|
import { declareChangeFeedSensitiveTable, setChangeFeedSensitiveClassResolver } from "../change-feed-sensitivity.js";
|
|
4
|
+
import { bumpRegistryGeneration } from "./generation.js";
|
|
4
5
|
import { createQualifiedName, isQualifiedName } from "../utils/qualified-names.js";
|
|
5
6
|
import { cloneManifestSchemaColumns } from "../manifest/store.js";
|
|
6
7
|
import { getClasses, getCollections, getConstructorFieldDecorators, getConstructorIndex, getConstructorTenantScopedDeclarations, getInheritanceCache, getLegacyFieldDecorators, getSourceFileFromStack, getStiSiblingsLoaded, verboseLog } from "./shared-state.js";
|
|
@@ -282,7 +283,20 @@ function setSmrtQualifiedName(ctor, qualifiedName) {
|
|
|
282
283
|
configurable: true
|
|
283
284
|
});
|
|
284
285
|
}
|
|
286
|
+
/**
|
|
287
|
+
* Register (or re-register) a class. Every registration can add, replace or
|
|
288
|
+
* mutate a registered class in place, so it invalidates the generation-keyed
|
|
289
|
+
* registry memos before and after (#3047) — including when it throws partway.
|
|
290
|
+
*/
|
|
285
291
|
function register(ctor, config = {}) {
|
|
292
|
+
bumpRegistryGeneration();
|
|
293
|
+
try {
|
|
294
|
+
registerUntracked(ctor, config);
|
|
295
|
+
} finally {
|
|
296
|
+
bumpRegistryGeneration();
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
function registerUntracked(ctor, config = {}) {
|
|
286
300
|
const name = config.name || ctor.name;
|
|
287
301
|
const explicitPackageName = config.packageName;
|
|
288
302
|
let promotedCollectionConstructor;
|
|
@@ -302,6 +316,7 @@ function register(ctor, config = {}) {
|
|
|
302
316
|
};
|
|
303
317
|
existing.name = name;
|
|
304
318
|
existing.packageName = nextPackageName;
|
|
319
|
+
bumpRegistryGeneration();
|
|
305
320
|
existing.qualifiedName = nextPackageName ? createQualifiedName(nextPackageName, name) : void 0;
|
|
306
321
|
const nextTableName = resolveTableName(ctor, name, {
|
|
307
322
|
...existing.config,
|
|
@@ -673,6 +688,7 @@ function normalizeTenantScopedConfig(tenantScoped) {
|
|
|
673
688
|
}
|
|
674
689
|
function ensureTenantScopedField(fields, tenantScopedConfig) {
|
|
675
690
|
if (!tenantScopedConfig) return;
|
|
691
|
+
bumpRegistryGeneration();
|
|
676
692
|
const fieldName = tenantScopedConfig.field;
|
|
677
693
|
const existingField = fields.get(fieldName);
|
|
678
694
|
if (existingField) {
|
|
@@ -758,6 +774,7 @@ function applySqlTypeOverrides(columns, fieldEntries) {
|
|
|
758
774
|
* shim in registry.ts.
|
|
759
775
|
*/
|
|
760
776
|
function invalidateInheritanceEntries(existing, previousIdentity) {
|
|
777
|
+
bumpRegistryGeneration();
|
|
761
778
|
const cache = getInheritanceCache();
|
|
762
779
|
const affectedNames = /* @__PURE__ */ new Set();
|
|
763
780
|
const remember = (name) => {
|
|
@@ -876,6 +893,14 @@ function mergeManifestIntoExistingRegistration(existing, objectDef, packageName)
|
|
|
876
893
|
invalidateInheritanceEntries(existing);
|
|
877
894
|
}
|
|
878
895
|
function registerFromManifest(name, objectDef, manifestPackageName) {
|
|
896
|
+
bumpRegistryGeneration();
|
|
897
|
+
try {
|
|
898
|
+
registerFromManifestUntracked(name, objectDef, manifestPackageName);
|
|
899
|
+
} finally {
|
|
900
|
+
bumpRegistryGeneration();
|
|
901
|
+
}
|
|
902
|
+
}
|
|
903
|
+
function registerFromManifestUntracked(name, objectDef, manifestPackageName) {
|
|
879
904
|
const packageName = objectDef.packageName || manifestPackageName;
|
|
880
905
|
const simpleClassName = objectDef.className || name;
|
|
881
906
|
const qualifiedNameEarly = packageName ? createQualifiedName(packageName, simpleClassName) : objectDef.qualifiedName;
|