@memberjunction/core 6.2.0-edge.2 → 6.2.0-edge.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.
Files changed (72) hide show
  1. package/dist/generic/InMemoryLocalStorageProvider.d.ts +5 -0
  2. package/dist/generic/InMemoryLocalStorageProvider.d.ts.map +1 -1
  3. package/dist/generic/InMemoryLocalStorageProvider.js +5 -0
  4. package/dist/generic/InMemoryLocalStorageProvider.js.map +1 -1
  5. package/dist/generic/JSONType-interfaces/IEntityConfiguration.d.ts +12 -0
  6. package/dist/generic/JSONType-interfaces/IEntityConfiguration.d.ts.map +1 -1
  7. package/dist/generic/JSONType-interfaces/IEntityRelationshipConfiguration.d.ts +19 -0
  8. package/dist/generic/JSONType-interfaces/IEntityRelationshipConfiguration.d.ts.map +1 -1
  9. package/dist/generic/baseEngine.d.ts +21 -1
  10. package/dist/generic/baseEngine.d.ts.map +1 -1
  11. package/dist/generic/baseEngine.js +15 -1
  12. package/dist/generic/baseEngine.js.map +1 -1
  13. package/dist/generic/baseEntity.d.ts +91 -7
  14. package/dist/generic/baseEntity.d.ts.map +1 -1
  15. package/dist/generic/baseEntity.js +161 -16
  16. package/dist/generic/baseEntity.js.map +1 -1
  17. package/dist/generic/databaseProviderBase.d.ts +34 -0
  18. package/dist/generic/databaseProviderBase.d.ts.map +1 -1
  19. package/dist/generic/databaseProviderBase.js +88 -20
  20. package/dist/generic/databaseProviderBase.js.map +1 -1
  21. package/dist/generic/entityConfiguration.d.ts +20 -0
  22. package/dist/generic/entityConfiguration.d.ts.map +1 -1
  23. package/dist/generic/entityConfiguration.js +34 -0
  24. package/dist/generic/entityConfiguration.js.map +1 -1
  25. package/dist/generic/entityInfo.d.ts +32 -1
  26. package/dist/generic/entityInfo.d.ts.map +1 -1
  27. package/dist/generic/entityInfo.js +44 -2
  28. package/dist/generic/entityInfo.js.map +1 -1
  29. package/dist/generic/entityRecordNameCache.d.ts +48 -0
  30. package/dist/generic/entityRecordNameCache.d.ts.map +1 -0
  31. package/dist/generic/entityRecordNameCache.js +92 -0
  32. package/dist/generic/entityRecordNameCache.js.map +1 -0
  33. package/dist/generic/interfaces.d.ts +33 -6
  34. package/dist/generic/interfaces.d.ts.map +1 -1
  35. package/dist/generic/interfaces.js.map +1 -1
  36. package/dist/generic/jsonFieldBinding.d.ts +196 -0
  37. package/dist/generic/jsonFieldBinding.d.ts.map +1 -0
  38. package/dist/generic/jsonFieldBinding.js +508 -0
  39. package/dist/generic/jsonFieldBinding.js.map +1 -0
  40. package/dist/generic/localCacheManager.d.ts +11 -0
  41. package/dist/generic/localCacheManager.d.ts.map +1 -1
  42. package/dist/generic/localCacheManager.js +9 -0
  43. package/dist/generic/localCacheManager.js.map +1 -1
  44. package/dist/generic/providerBase.d.ts +68 -32
  45. package/dist/generic/providerBase.d.ts.map +1 -1
  46. package/dist/generic/providerBase.js +150 -120
  47. package/dist/generic/providerBase.js.map +1 -1
  48. package/dist/generic/runQuery.d.ts +18 -1
  49. package/dist/generic/runQuery.d.ts.map +1 -1
  50. package/dist/generic/runQuery.js.map +1 -1
  51. package/dist/generic/runQuerySQLFilterImplementations.d.ts +7 -1
  52. package/dist/generic/runQuerySQLFilterImplementations.d.ts.map +1 -1
  53. package/dist/generic/runQuerySQLFilterImplementations.js +65 -140
  54. package/dist/generic/runQuerySQLFilterImplementations.js.map +1 -1
  55. package/dist/generic/telemetryManager.d.ts +11 -0
  56. package/dist/generic/telemetryManager.d.ts.map +1 -1
  57. package/dist/generic/telemetryManager.js +40 -0
  58. package/dist/generic/telemetryManager.js.map +1 -1
  59. package/dist/generic/util.d.ts +6 -0
  60. package/dist/generic/util.d.ts.map +1 -1
  61. package/dist/generic/util.js +20 -0
  62. package/dist/generic/util.js.map +1 -1
  63. package/dist/index.d.ts +2 -0
  64. package/dist/index.d.ts.map +1 -1
  65. package/dist/index.js +2 -0
  66. package/dist/index.js.map +1 -1
  67. package/dist/views/runView.d.ts +24 -0
  68. package/dist/views/runView.d.ts.map +1 -1
  69. package/dist/views/runView.js +4 -0
  70. package/dist/views/runView.js.map +1 -1
  71. package/package.json +3 -3
  72. package/readme.md +29 -2
@@ -0,0 +1,508 @@
1
+ /**
2
+ * @fileoverview Live object <-> string binding for JSON text columns, plus the runtime half of
3
+ * JSONType validation (structural Zod + `@CHECK` rules).
4
+ *
5
+ * A JSONType field (`EntityField.JSONType`) is a text column holding JSON. CodeGen emits a typed
6
+ * `<Field>Object` accessor on the entity subclass; that accessor delegates to a
7
+ * {@link JSONFieldBinding} owned by the `BaseEntity` instance, so the object <-> string logic lives
8
+ * exactly once, here, instead of being copied into every generated accessor.
9
+ *
10
+ * @module @memberjunction/core
11
+ */
12
+ import { ValidationErrorInfo, ValidationErrorType } from './entityInfo.js';
13
+ import { TryParseJsonText } from './extendedTypeValue.js';
14
+ import { LogError } from './logging.js';
15
+ /* ------------------------------------------------------------------------------------------------
16
+ * ToPlainJSON
17
+ * ---------------------------------------------------------------------------------------------- */
18
+ /**
19
+ * Returns a deep, plain (un-proxied) copy of a JSON-compatible value.
20
+ *
21
+ * THE way to clone, `structuredClone`, `postMessage`, store in IndexedDB, or freeze a value obtained
22
+ * from a generated `<Field>Object` JSONType accessor. Those accessors return a live `Proxy`; a Proxy
23
+ * cannot be structured-cloned (`DataCloneError`), and a clone of it made any other way may still
24
+ * hold live references back into the entity.
25
+ *
26
+ * Works identically on ordinary, non-proxied values, so callers never have to know which they hold.
27
+ * The result has JSON semantics — it is equal to `JSON.parse(JSON.stringify(value))`: `undefined`
28
+ * members and functions are dropped, `Date`s become ISO strings. Primitives, `null` and `undefined`
29
+ * are returned as they are.
30
+ *
31
+ * @param value - any JSON-compatible value, proxied or not
32
+ * @returns an independent plain copy; mutating it never touches the source or the entity
33
+ */
34
+ export function ToPlainJSON(value) {
35
+ if (value === null || value === undefined || typeof value !== 'object') {
36
+ return value;
37
+ }
38
+ return JSON.parse(JSON.stringify(value));
39
+ }
40
+ /* ------------------------------------------------------------------------------------------------
41
+ * Live binding
42
+ * ---------------------------------------------------------------------------------------------- */
43
+ /** True for the only values the binding wraps: plain objects (incl. null-prototype) and arrays. */
44
+ function isWrappable(value) {
45
+ if (typeof value !== 'object' || value === null) {
46
+ return false;
47
+ }
48
+ if (Array.isArray(value)) {
49
+ return true;
50
+ }
51
+ const proto = Object.getPrototypeOf(value);
52
+ return proto === Object.prototype || proto === null;
53
+ }
54
+ /** Serializes to the canonical stored form; `null`/`undefined` (and unserializable values) → `null`. */
55
+ function serializeJSON(value) {
56
+ if (value === null || value === undefined) {
57
+ return null;
58
+ }
59
+ const text = JSON.stringify(value);
60
+ return text === undefined ? null : text;
61
+ }
62
+ /** Proxy → owning tree/target, so assignments can tell a proxy from a plain value. */
63
+ const proxyOwners = new WeakMap();
64
+ /**
65
+ * Binds one JSON text field of one entity instance to a live, typed object view.
66
+ *
67
+ * - **Object → string.** {@link GetValue} returns a `Proxy` over the parsed document. Nested plain
68
+ * objects/arrays are wrapped lazily on read (WeakMap-cached, so `o.a === o.a`), so *every*
69
+ * reference obtained from the root — however deep, or kept in a local variable — is tracked. Each
70
+ * mutation re-serializes the root and writes it through the entity's normal `Set`, so dirty
71
+ * tracking and change events work unchanged. Writes that do not change the canonical JSON do not
72
+ * call `Set`.
73
+ * - **String → object.** The binding remembers the raw text it last saw. When the field's raw value
74
+ * differs on the next read (Load, LoadFromData, `Set`, revert, …) the document is re-parsed;
75
+ * proxies handed out earlier are then detached (reads still work; WRITES through them throw, so a
76
+ * stale reference can never silently lose an edit or alter the entity behind its dirty tracking). A change that only re-formats identical JSON keeps
77
+ * the current tree so live references survive a `Save()` round trip.
78
+ * - **Safety net.** A value assigned into the tree and then mutated through the caller's *original*
79
+ * reference is invisible to the proxy; {@link Flush} (called by `BaseEntity` before validation and
80
+ * save) re-serializes the tree and writes any difference.
81
+ *
82
+ * Only plain objects and arrays are wrapped. `Date`, `Map`, class instances etc. are left alone —
83
+ * wrapping them would break their internal slots.
84
+ */
85
+ export class JSONFieldBinding {
86
+ /**
87
+ * @param FieldName - the JSON text field this binding is for (used in error messages)
88
+ * @param readRaw - reads the field's raw text from the entity
89
+ * @param writeRaw - writes raw text to the entity through its normal `Set` path
90
+ */
91
+ constructor(FieldName, readRaw, writeRaw) {
92
+ this.FieldName = FieldName;
93
+ this.readRaw = readRaw;
94
+ this.writeRaw = writeRaw;
95
+ this._materialized = false;
96
+ this._tree = null;
97
+ this._root = null;
98
+ /** Raw text the current tree corresponds to (as last read from, or written to, the entity). */
99
+ this._rawSeen = null;
100
+ /** Canonical serialization of the tree at the last sync point; the no-op-write comparator. */
101
+ this._snapshot = null;
102
+ }
103
+ /** True once the object has been read or assigned at least once. */
104
+ get IsMaterialized() {
105
+ return this._materialized;
106
+ }
107
+ /**
108
+ * Returns the live view of the field: a `Proxy` over the parsed document for objects/arrays, the
109
+ * bare value for a primitive JSON root, and `null` for a null/empty field.
110
+ *
111
+ * @throws Error when the field holds text that is not valid JSON
112
+ */
113
+ GetValue() {
114
+ this.refresh();
115
+ return this.wrap(this._tree, this._root);
116
+ }
117
+ /**
118
+ * Assigns a whole new value. `null`/`undefined` clears the field. A plain object/array is
119
+ * *adopted* as the new tree, so later mutation through the caller's own reference is picked up by
120
+ * {@link Flush}. Proxies from other records (or from a detached earlier tree) are deep-copied
121
+ * rather than shared.
122
+ */
123
+ SetValue(value) {
124
+ const owner = typeof value === 'object' && value !== null ? proxyOwners.get(value) : undefined;
125
+ if (owner && owner.Tree === this._tree && this._materialized) {
126
+ if (owner.Target === this._root && this.currentRaw() === this._rawSeen) {
127
+ // Re-assigning the live root (`rec.X = rec.X`, or a root that was read, edited and
128
+ // handed back): nothing new to adopt. Keep the generation so every proxy already
129
+ // handed out stays attached; just push any pending difference.
130
+ this.sync(owner.Tree);
131
+ return;
132
+ }
133
+ if (owner.Target !== this._root) {
134
+ // A NESTED node of the current tree becoming the root (`rec.X = rec.X.Child`) is
135
+ // stored as an independent COPY: the node still lives inside the old document, and
136
+ // sharing it would let two documents alias one object.
137
+ this.assignPlain(ToPlainJSON(value));
138
+ return;
139
+ }
140
+ }
141
+ this.assignPlain(this.normalize(this._tree, value));
142
+ }
143
+ assignPlain(plain) {
144
+ const raw = serializeJSON(plain);
145
+ const alreadyCurrent = this._materialized && this.currentRaw() === this._rawSeen && raw === this._snapshot;
146
+ if (!alreadyCurrent) {
147
+ this.writeRaw(raw);
148
+ }
149
+ this.adopt(plain ?? null, raw, raw);
150
+ }
151
+ /**
152
+ * Safety net: pushes the tree's current serialization to the entity if it differs from the last
153
+ * sync point. A no-op for a binding that was never read/assigned, and for a tree whose raw text
154
+ * was replaced from outside (the next read re-parses; there is nothing of ours to push).
155
+ */
156
+ Flush() {
157
+ if (!this._materialized || this._tree === null) {
158
+ return;
159
+ }
160
+ if (this.currentRaw() !== this._rawSeen) {
161
+ return;
162
+ }
163
+ this.sync(this._tree);
164
+ }
165
+ /**
166
+ * Forgets the parsed tree: the next read re-parses from the entity's raw text and every proxy
167
+ * handed out so far is detached. Used when the record's data is replaced wholesale (Revert,
168
+ * reload, NewRecord) — including the case where the replacement text is identical to the text
169
+ * this tree started from, which the raw-text comparison alone cannot distinguish from "nothing
170
+ * happened" when the tree carries un-flushed edits.
171
+ */
172
+ Invalidate() {
173
+ this._materialized = false;
174
+ this._tree = null;
175
+ this._root = null;
176
+ this._rawSeen = null;
177
+ this._snapshot = null;
178
+ }
179
+ currentRaw() {
180
+ const raw = this.readRaw();
181
+ return typeof raw === 'string' ? raw : null;
182
+ }
183
+ /** Re-parses when the entity's raw text is not the text this tree corresponds to. */
184
+ refresh() {
185
+ const raw = this.currentRaw();
186
+ if (this._materialized && raw === this._rawSeen) {
187
+ return;
188
+ }
189
+ const parsed = this.parseRaw(raw);
190
+ const canonical = serializeJSON(parsed);
191
+ if (this._materialized && canonical === this._snapshot) {
192
+ // Formatting-only change (whitespace/key order after a save round trip): the document is
193
+ // the same, so keep the tree and the references already handed out.
194
+ this._rawSeen = raw;
195
+ return;
196
+ }
197
+ this.adopt(parsed, raw, canonical);
198
+ }
199
+ parseRaw(raw) {
200
+ if (raw === null || raw === '') {
201
+ return null;
202
+ }
203
+ const parsed = TryParseJsonText(raw);
204
+ if (parsed.ok === false) {
205
+ throw new Error(`JSON field '${this.FieldName}' does not contain valid JSON: ${parsed.message}`);
206
+ }
207
+ return parsed.value;
208
+ }
209
+ /** Makes `root` the current tree and starts a new proxy generation (detaching the old one). */
210
+ adopt(root, raw, canonical) {
211
+ this._root = root;
212
+ this._rawSeen = raw;
213
+ this._snapshot = canonical;
214
+ this._materialized = true;
215
+ this._tree = this.createTree();
216
+ }
217
+ /** Re-serializes the tree and writes it through the entity when the canonical JSON changed. */
218
+ sync(tree) {
219
+ if (tree !== this._tree) {
220
+ return; // detached generation: the entity no longer reflects this tree
221
+ }
222
+ const canonical = serializeJSON(this._root);
223
+ if (canonical === this._snapshot) {
224
+ return;
225
+ }
226
+ const previousSeen = this._rawSeen;
227
+ const previousSnapshot = this._snapshot;
228
+ // Recorded BEFORE the write so a listener that reads the accessor mid-Set does not re-parse.
229
+ this._snapshot = canonical;
230
+ this._rawSeen = canonical;
231
+ try {
232
+ this.writeRaw(canonical);
233
+ }
234
+ catch (error) {
235
+ this._snapshot = previousSnapshot;
236
+ this._rawSeen = previousSeen;
237
+ throw error;
238
+ }
239
+ }
240
+ wrap(tree, value) {
241
+ if (!isWrappable(value)) {
242
+ return value;
243
+ }
244
+ let proxy = tree.Proxies.get(value);
245
+ if (!proxy) {
246
+ proxy = new Proxy(value, tree.Handler);
247
+ tree.Proxies.set(value, proxy);
248
+ proxyOwners.set(proxy, { Tree: tree, Target: value });
249
+ }
250
+ return proxy;
251
+ }
252
+ createTree() {
253
+ const tree = { Proxies: new WeakMap(), Handler: {} };
254
+ tree.Handler = this.createHandler(tree);
255
+ return tree;
256
+ }
257
+ createHandler(tree) {
258
+ const hasOwn = (target, prop) => Object.prototype.hasOwnProperty.call(target, prop);
259
+ return {
260
+ get: (target, prop, receiver) => {
261
+ const value = Reflect.get(target, prop, receiver);
262
+ if (typeof prop === 'symbol' || !isWrappable(value) || !hasOwn(target, prop)) {
263
+ return value;
264
+ }
265
+ // Proxy invariant: a non-configurable, non-writable own data property must report its
266
+ // true value, so a frozen node hands back its raw children instead of proxies.
267
+ const descriptor = Reflect.getOwnPropertyDescriptor(target, prop);
268
+ if (descriptor && !descriptor.configurable && !descriptor.writable) {
269
+ return value;
270
+ }
271
+ return this.wrap(tree, value);
272
+ },
273
+ set: (target, prop, value) => {
274
+ this.assertAttached(tree);
275
+ const stored = this.normalize(tree, value);
276
+ const had = hasOwn(target, prop);
277
+ const previous = had ? Reflect.get(target, prop) : undefined;
278
+ const ok = Reflect.set(target, prop, stored);
279
+ // An array `push` fires an index set and then a `length` set; the second changes
280
+ // nothing, so it costs no second serialization.
281
+ if (ok && (!had || !Object.is(previous, stored))) {
282
+ this.sync(tree);
283
+ }
284
+ return ok;
285
+ },
286
+ deleteProperty: (target, prop) => {
287
+ this.assertAttached(tree);
288
+ const had = hasOwn(target, prop);
289
+ const ok = Reflect.deleteProperty(target, prop);
290
+ if (ok && had) {
291
+ this.sync(tree);
292
+ }
293
+ return ok;
294
+ },
295
+ defineProperty: (target, prop, descriptor) => {
296
+ this.assertAttached(tree);
297
+ const next = 'value' in descriptor
298
+ ? { ...descriptor, value: this.normalize(tree, descriptor.value) }
299
+ : descriptor;
300
+ const ok = Reflect.defineProperty(target, prop, next);
301
+ if (ok) {
302
+ this.sync(tree);
303
+ }
304
+ return ok;
305
+ },
306
+ };
307
+ }
308
+ /**
309
+ * A proxy handed out before the record's data was replaced (reload, revert, assignment of a
310
+ * whole new value, …) is DETACHED: its document no longer belongs to the entity. Reads still work,
311
+ * but a write would either vanish or — worse, when the new document reuses nodes of the old one —
312
+ * alter the entity behind its dirty tracking. Both are silent data loss, so a write through a
313
+ * stale reference fails loudly instead.
314
+ */
315
+ assertAttached(tree) {
316
+ // The raw text may have been replaced (`rec.Field = '...'`, `SetMany`) since the last read.
317
+ // Re-sync first: a formatting-only change keeps this tree; a real change starts a new tree,
318
+ // so this write is refused instead of overwriting the newer text.
319
+ if (tree === this._tree) {
320
+ this.refresh();
321
+ }
322
+ if (tree !== this._tree) {
323
+ throw new Error(`JSON field '${this.FieldName}' was reloaded, reverted or replaced after this object was obtained; ` +
324
+ `edits to the stale reference cannot reach the record. Re-read the object from the entity before editing it.`);
325
+ }
326
+ }
327
+ /**
328
+ * Prepares a value for storage in `tree`: a proxy of that tree becomes its raw target; a proxy of
329
+ * any other tree (another record, or a detached earlier generation) becomes an independent copy;
330
+ * and proxies nested inside a plain object/array being assigned (the `{ ...rec.XObject, a: 1 }`
331
+ * pattern hands over a plain object whose members ARE proxies) are replaced the same way, so the
332
+ * stored document never contains proxy-of-proxy chains or references into a detached tree.
333
+ */
334
+ normalize(tree, value) {
335
+ const top = this.resolveProxy(tree, value);
336
+ if (top === value && isWrappable(value)) {
337
+ this.replaceNestedProxies(tree, value, new WeakSet());
338
+ }
339
+ return top;
340
+ }
341
+ resolveProxy(tree, value) {
342
+ if (typeof value !== 'object' || value === null) {
343
+ return value;
344
+ }
345
+ const owner = proxyOwners.get(value);
346
+ if (!owner) {
347
+ return value;
348
+ }
349
+ return tree !== null && owner.Tree === tree ? owner.Target : ToPlainJSON(value);
350
+ }
351
+ replaceNestedProxies(tree, node, seen) {
352
+ if (seen.has(node)) {
353
+ return;
354
+ }
355
+ seen.add(node);
356
+ const record = node;
357
+ for (const key of Object.keys(node)) {
358
+ const child = record[key];
359
+ const replacement = this.resolveProxy(tree, child);
360
+ if (replacement !== child && !Object.isFrozen(node)) {
361
+ record[key] = replacement;
362
+ }
363
+ if (replacement === child && isWrappable(child)) {
364
+ this.replaceNestedProxies(tree, child, seen);
365
+ }
366
+ }
367
+ }
368
+ }
369
+ /** Renders a Zod/JSON path as `Field.Items[2].EndHour`. */
370
+ export function FormatJSONPath(fieldName, path) {
371
+ let text = fieldName;
372
+ for (const segment of path) {
373
+ text += typeof segment === 'number' ? `[${segment}]` : `.${segment}`;
374
+ }
375
+ return text;
376
+ }
377
+ /** Reads the value a Zod issue path points at; `undefined` when the path does not resolve. */
378
+ function valueAtPath(root, path) {
379
+ let current = root;
380
+ for (const segment of path) {
381
+ if (typeof current !== 'object' || current === null) {
382
+ return undefined;
383
+ }
384
+ current = current[segment];
385
+ }
386
+ return current;
387
+ }
388
+ /**
389
+ * Maps Zod issues to {@link ValidationErrorInfo}s whose `Source` is the dotted/indexed path of the
390
+ * offending member (`Configuration.Items[2].EndHour`).
391
+ */
392
+ export function ZodIssuesToValidationErrors(fieldName, issues, parsed, severity) {
393
+ return issues.map((issue) => new ValidationErrorInfo(FormatJSONPath(fieldName, issue.path), issue.message, valueAtPath(parsed, issue.path), ValidationErrorType[severity]));
394
+ }
395
+ function joinPath(base, property) {
396
+ return base === '' ? property : `${base}.${property}`;
397
+ }
398
+ /** Runs one rule's `Test`; a rule that throws is reported, never swallowed. */
399
+ function runRule(ctx, rule, value, path) {
400
+ const source = path === '' ? ctx.FieldName : path.startsWith('[') ? `${ctx.FieldName}${path}` : `${ctx.FieldName}.${path}`;
401
+ let valid;
402
+ try {
403
+ valid = rule.Test(value, ctx.Row);
404
+ }
405
+ catch (error) {
406
+ const detail = error instanceof Error ? error.message : String(error);
407
+ LogError(`JSON field rule '${rule.Description}' on ${source} threw: ${detail}`);
408
+ ctx.Result.Errors.push(new ValidationErrorInfo(source, `Rule could not be evaluated: ${rule.Description} (${detail})`, value, ValidationErrorType[ctx.Severity]));
409
+ return;
410
+ }
411
+ if (!valid) {
412
+ ctx.Result.Errors.push(new ValidationErrorInfo(source, rule.Description, value, ValidationErrorType[ctx.Severity]));
413
+ }
414
+ }
415
+ /** Applies every rule scoped to `typeName` to one instance, then descends into child types. */
416
+ function walkInstance(ctx, value, typeName, path) {
417
+ if (typeof value !== 'object' || value === null) {
418
+ return;
419
+ }
420
+ const record = value;
421
+ for (const rule of ctx.RuleSet.Rules) {
422
+ if (rule.Type !== typeName) {
423
+ continue;
424
+ }
425
+ if (rule.Property === undefined) {
426
+ runRule(ctx, rule, value, path);
427
+ }
428
+ else if (rule.PerElement) {
429
+ const elements = record[rule.Property];
430
+ if (Array.isArray(elements)) {
431
+ elements.forEach((element, index) => runRule(ctx, rule, element, `${joinPath(path, rule.Property)}[${index}]`));
432
+ }
433
+ }
434
+ else {
435
+ runRule(ctx, rule, value, joinPath(path, rule.Property));
436
+ }
437
+ }
438
+ for (const edge of ctx.RuleSet.Graph[typeName] ?? []) {
439
+ walkEdge(ctx, record[edge.Property], edge, joinPath(path, edge.Property));
440
+ }
441
+ }
442
+ function walkEdge(ctx, child, edge, path) {
443
+ if (child === null || child === undefined) {
444
+ return;
445
+ }
446
+ if (edge.Shape === 'object') {
447
+ walkInstance(ctx, child, edge.Type, path);
448
+ }
449
+ else if (edge.Shape === 'array' && Array.isArray(child)) {
450
+ child.forEach((element, index) => walkInstance(ctx, element, edge.Type, `${path}[${index}]`));
451
+ }
452
+ else if (edge.Shape === 'record' && typeof child === 'object') {
453
+ for (const [key, element] of Object.entries(child)) {
454
+ walkInstance(ctx, element, edge.Type, `${path}.${key}`);
455
+ }
456
+ }
457
+ }
458
+ /**
459
+ * Runs the `@CHECK` rules of a rule set over a parsed document.
460
+ *
461
+ * @param fieldName - the JSON field, used as the first segment of every error source
462
+ * @param parsed - the parsed document (already known to satisfy the structural schema)
463
+ */
464
+ export function RunJSONFieldRules(fieldName, parsed, ruleSet, row, severity, result) {
465
+ const ctx = { FieldName: fieldName, RuleSet: ruleSet, Row: row, Severity: severity, Result: result };
466
+ if (ruleSet.RootIsArray) {
467
+ if (Array.isArray(parsed)) {
468
+ parsed.forEach((element, index) => walkInstance(ctx, element, ruleSet.RootType, `[${index}]`));
469
+ }
470
+ }
471
+ else {
472
+ walkInstance(ctx, parsed, ruleSet.RootType, '');
473
+ }
474
+ }
475
+ /**
476
+ * Validates the raw text of one JSONType field against its structural schema and `@CHECK` rules and
477
+ * appends any problems to `result`. The engine behind `BaseEntity.ValidateJSONField`.
478
+ *
479
+ * Empty/`null` text is skipped (the column's nullability governs that). Text that is not valid JSON
480
+ * yields one error and skips the shape/rule checks. Rules run only when the structure is valid.
481
+ * A `Warning` severity adds errors of type Warning, which do not fail the save.
482
+ */
483
+ export function ValidateJSONFieldValue(fieldName, raw, schema, ruleSet, severity, row, result) {
484
+ if (raw === null || raw === undefined || raw === '') {
485
+ return;
486
+ }
487
+ let parsed = raw;
488
+ if (typeof raw === 'string') {
489
+ const attempt = TryParseJsonText(raw);
490
+ if (attempt.ok === false) {
491
+ const alreadyReported = result.Errors.some((e) => e.Source === fieldName && /valid JSON/i.test(e.Message));
492
+ if (!alreadyReported) {
493
+ result.Errors.push(new ValidationErrorInfo(fieldName, `${fieldName} must be valid JSON. ${attempt.message}`, raw, ValidationErrorType[severity]));
494
+ }
495
+ return;
496
+ }
497
+ parsed = attempt.value;
498
+ }
499
+ const outcome = schema.safeParse(parsed);
500
+ if (!outcome.success) {
501
+ result.Errors.push(...ZodIssuesToValidationErrors(fieldName, outcome.error.issues, parsed, severity));
502
+ return;
503
+ }
504
+ if (ruleSet && ruleSet.Rules.length > 0) {
505
+ RunJSONFieldRules(fieldName, parsed, ruleSet, row, severity, result);
506
+ }
507
+ }
508
+ //# sourceMappingURL=jsonFieldBinding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsonFieldBinding.js","sourceRoot":"","sources":["../../src/generic/jsonFieldBinding.ts"],"names":[],"mappings":"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"}
@@ -252,6 +252,17 @@ export interface CacheChangedEvent {
252
252
  * For `'removed'` and `'category_cleared'` actions, this is `undefined`.
253
253
  */
254
254
  Data?: string;
255
+ /**
256
+ * Monotonic counter shared by every server, incremented once per shared-cache mutation.
257
+ *
258
+ * For recovery rather than ordering: a subscriber that was disconnected cannot see what pub/sub
259
+ * did not replay, so it records the highest epoch it has seen and compares that with the current
260
+ * value on reconnect to learn whether anything was invalidated meanwhile.
261
+ *
262
+ * Optional — transports without the counter omit it, and consumers that do not reconcile can
263
+ * ignore it.
264
+ */
265
+ Epoch?: number;
255
266
  }
256
267
  /**
257
268
  * Storage categories for organizing cache data.
@@ -1 +1 @@
1
- {"version":3,"file":"localCacheManager.d.ts","sourceRoot":"","sources":["../../src/generic/localCacheManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"localCacheManager.d.ts","sourceRoot":"","sources":["../../src/generic/localCacheManager.ts"],"names":[],"mappings":"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"}
@@ -1282,6 +1282,15 @@ export class LocalCacheManager extends BaseSingleton {
1282
1282
  if (params.IgnoreMaxRows === true) {
1283
1283
  parts.push('imr:1');
1284
1284
  }
1285
+ // Binary-width segment. Cached slots are fetched at full width, but "full width" leaves
1286
+ // binary columns out unless the caller asks for them (RunViewParams.IncludeBinaryFields,
1287
+ // set automatically by ProviderBase when a caller names a binary field in Fields). A slot
1288
+ // without binary columns must never answer a request that needs them, so the two widths
1289
+ // get separate slots. Appended only when true, so every existing fingerprint stays
1290
+ // byte-for-byte identical.
1291
+ if (params.IncludeBinaryFields === true) {
1292
+ parts.push('bin:1');
1293
+ }
1285
1294
  // DataSource segment. RunViewParams.DataSource:'Materialized' routes the read to the entity's
1286
1295
  // materialized snapshot view (GetEffectiveBaseView), a DIFFERENT physical source than the default
1287
1296
  // live base view — so a Live read and a Materialized read of the same entity/filter/orderBy MUST