@memberjunction/core 6.2.0-edge.2 → 6.2.0-edge.4
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/dist/generic/InMemoryLocalStorageProvider.d.ts +5 -0
- package/dist/generic/InMemoryLocalStorageProvider.d.ts.map +1 -1
- package/dist/generic/InMemoryLocalStorageProvider.js +5 -0
- package/dist/generic/InMemoryLocalStorageProvider.js.map +1 -1
- package/dist/generic/JSONType-interfaces/IEntityConfiguration.d.ts +27 -0
- package/dist/generic/JSONType-interfaces/IEntityConfiguration.d.ts.map +1 -1
- package/dist/generic/JSONType-interfaces/IEntityRelationshipConfiguration.d.ts +19 -0
- package/dist/generic/JSONType-interfaces/IEntityRelationshipConfiguration.d.ts.map +1 -1
- package/dist/generic/RegisterForStartup.d.ts +44 -0
- package/dist/generic/RegisterForStartup.d.ts.map +1 -1
- package/dist/generic/RegisterForStartup.js +124 -48
- package/dist/generic/RegisterForStartup.js.map +1 -1
- package/dist/generic/baseEngine.d.ts +214 -3
- package/dist/generic/baseEngine.d.ts.map +1 -1
- package/dist/generic/baseEngine.js +460 -34
- package/dist/generic/baseEngine.js.map +1 -1
- package/dist/generic/baseEngineSweeper.d.ts +35 -0
- package/dist/generic/baseEngineSweeper.d.ts.map +1 -0
- package/dist/generic/baseEngineSweeper.js +97 -0
- package/dist/generic/baseEngineSweeper.js.map +1 -0
- package/dist/generic/baseEntity.d.ts +91 -7
- package/dist/generic/baseEntity.d.ts.map +1 -1
- package/dist/generic/baseEntity.js +161 -16
- package/dist/generic/baseEntity.js.map +1 -1
- package/dist/generic/databaseProviderBase.d.ts +54 -11
- package/dist/generic/databaseProviderBase.d.ts.map +1 -1
- package/dist/generic/databaseProviderBase.js +129 -35
- package/dist/generic/databaseProviderBase.js.map +1 -1
- package/dist/generic/entityConfiguration.d.ts +20 -0
- package/dist/generic/entityConfiguration.d.ts.map +1 -1
- package/dist/generic/entityConfiguration.js +34 -0
- package/dist/generic/entityConfiguration.js.map +1 -1
- package/dist/generic/entityEventBatch.d.ts +124 -0
- package/dist/generic/entityEventBatch.d.ts.map +1 -0
- package/dist/generic/entityEventBatch.js +194 -0
- package/dist/generic/entityEventBatch.js.map +1 -0
- package/dist/generic/entityInfo.d.ts +57 -6
- package/dist/generic/entityInfo.d.ts.map +1 -1
- package/dist/generic/entityInfo.js +72 -7
- package/dist/generic/entityInfo.js.map +1 -1
- package/dist/generic/entityRecordNameCache.d.ts +48 -0
- package/dist/generic/entityRecordNameCache.d.ts.map +1 -0
- package/dist/generic/entityRecordNameCache.js +92 -0
- package/dist/generic/entityRecordNameCache.js.map +1 -0
- package/dist/generic/interfaces.d.ts +151 -8
- package/dist/generic/interfaces.d.ts.map +1 -1
- package/dist/generic/interfaces.js.map +1 -1
- package/dist/generic/jsonFieldBinding.d.ts +196 -0
- package/dist/generic/jsonFieldBinding.d.ts.map +1 -0
- package/dist/generic/jsonFieldBinding.js +508 -0
- package/dist/generic/jsonFieldBinding.js.map +1 -0
- package/dist/generic/localCacheManager.d.ts +278 -16
- package/dist/generic/localCacheManager.d.ts.map +1 -1
- package/dist/generic/localCacheManager.js +737 -113
- package/dist/generic/localCacheManager.js.map +1 -1
- package/dist/generic/logging.d.ts +15 -0
- package/dist/generic/logging.d.ts.map +1 -1
- package/dist/generic/logging.js +17 -0
- package/dist/generic/logging.js.map +1 -1
- package/dist/generic/metadata.d.ts +1 -1
- package/dist/generic/metadata.d.ts.map +1 -1
- package/dist/generic/metadata.js.map +1 -1
- package/dist/generic/providerBase.d.ts +252 -35
- package/dist/generic/providerBase.d.ts.map +1 -1
- package/dist/generic/providerBase.js +503 -189
- package/dist/generic/providerBase.js.map +1 -1
- package/dist/generic/runQuery.d.ts +18 -1
- package/dist/generic/runQuery.d.ts.map +1 -1
- package/dist/generic/runQuery.js.map +1 -1
- package/dist/generic/runQuerySQLFilterImplementations.d.ts +7 -1
- package/dist/generic/runQuerySQLFilterImplementations.d.ts.map +1 -1
- package/dist/generic/runQuerySQLFilterImplementations.js +65 -140
- package/dist/generic/runQuerySQLFilterImplementations.js.map +1 -1
- package/dist/generic/securityInfo.d.ts +5 -0
- package/dist/generic/securityInfo.d.ts.map +1 -1
- package/dist/generic/securityInfo.js +5 -0
- package/dist/generic/securityInfo.js.map +1 -1
- package/dist/generic/telemetryManager.d.ts +11 -0
- package/dist/generic/telemetryManager.d.ts.map +1 -1
- package/dist/generic/telemetryManager.js +43 -0
- package/dist/generic/telemetryManager.js.map +1 -1
- package/dist/generic/transactionGroup.d.ts +27 -0
- package/dist/generic/transactionGroup.d.ts.map +1 -1
- package/dist/generic/transactionGroup.js +58 -5
- package/dist/generic/transactionGroup.js.map +1 -1
- package/dist/generic/util.d.ts +6 -0
- package/dist/generic/util.d.ts.map +1 -1
- package/dist/generic/util.js +20 -0
- package/dist/generic/util.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/views/runView.d.ts +24 -0
- package/dist/views/runView.d.ts.map +1 -1
- package/dist/views/runView.js +4 -0
- package/dist/views/runView.js.map +1 -1
- package/package.json +3 -3
- package/readme.md +29 -2
|
@@ -164,10 +164,13 @@ export declare abstract class DatabaseProviderBase extends ProviderBase {
|
|
|
164
164
|
*/
|
|
165
165
|
protected get CurrentTransactionDepth(): number;
|
|
166
166
|
/**
|
|
167
|
-
* Public nesting depth
|
|
168
|
-
*
|
|
169
|
-
*
|
|
170
|
-
*
|
|
167
|
+
* Public nesting depth of the transaction open on this instance; 0 = none. Read this, not
|
|
168
|
+
* `IsInTransaction` (SQL Server leaves that false), when you need to know whether a transaction
|
|
169
|
+
* is open at all. The depth is instance-wide: on a shared provider `TransactionDepth > 0` does
|
|
170
|
+
* NOT mean the caller's statements run in that transaction — only the async scope that began it
|
|
171
|
+
* is part of it (#4786). Code that needs to be inside a transaction should simply call
|
|
172
|
+
* {@link BeginTransaction} / {@link BeginEntityTransaction}: joining one the caller is already in
|
|
173
|
+
* is automatic. Deprecated camelCase `transactionDepth` alias ships for one release.
|
|
171
174
|
*/
|
|
172
175
|
get TransactionDepth(): number;
|
|
173
176
|
/**
|
|
@@ -193,15 +196,15 @@ export declare abstract class DatabaseProviderBase extends ProviderBase {
|
|
|
193
196
|
*/
|
|
194
197
|
ResetTransactionState(): Promise<void>;
|
|
195
198
|
/**
|
|
196
|
-
* Run `task` once the
|
|
197
|
-
* no
|
|
199
|
+
* Run `task` once the caller's transaction on this provider (the one its async scope belongs
|
|
200
|
+
* to) has committed, or now if the caller is in no transaction on this provider.
|
|
198
201
|
*
|
|
199
202
|
* Use it for side effects that must only happen for work that is actually durable — queueing
|
|
200
203
|
* background jobs, firing deferred entity actions — and must not run *inside* the caller's
|
|
201
204
|
* transaction. Providers that track transactions (see `GenericDatabaseProvider`) queue the task
|
|
202
|
-
* while
|
|
203
|
-
* commit succeeds (once the transaction lock is released, so a task may open its
|
|
204
|
-
* transaction), and discard them — without running them — when the transaction rolls back,
|
|
205
|
+
* while the caller's transaction is open, run queued tasks in registration order after the
|
|
206
|
+
* **outermost** commit succeeds (once the transaction lock is released, so a task may open its
|
|
207
|
+
* own transaction), and discard them — without running them — when the transaction rolls back,
|
|
205
208
|
* fails to commit, or is abandoned.
|
|
206
209
|
*
|
|
207
210
|
* This default is for providers that do not track transactions: the task starts immediately.
|
|
@@ -226,8 +229,9 @@ export declare abstract class DatabaseProviderBase extends ProviderBase {
|
|
|
226
229
|
*/
|
|
227
230
|
RunAfterCommit(task: PostCommitTask, description?: string, _token?: PostCommitToken): void;
|
|
228
231
|
/**
|
|
229
|
-
* Snapshot of the transaction frames
|
|
230
|
-
* Synchronous by contract — call it before the
|
|
232
|
+
* Snapshot of the caller's transaction frames on this provider (the transaction its async scope
|
|
233
|
+
* belongs to), for a later {@link RunAfterCommit}. Synchronous by contract — call it before the
|
|
234
|
+
* first `await` of the code that causes the work.
|
|
231
235
|
*
|
|
232
236
|
* @returns `undefined` when no transaction is open. This default never tracks transactions, so
|
|
233
237
|
* it always returns `undefined`.
|
|
@@ -259,6 +263,11 @@ export declare abstract class DatabaseProviderBase extends ProviderBase {
|
|
|
259
263
|
* physical transaction on the same pool, blind to any transaction the caller had already
|
|
260
264
|
* started.
|
|
261
265
|
*
|
|
266
|
+
* The transaction belongs to the async scope that calls this: that code and everything it starts
|
|
267
|
+
* run on the transaction; unrelated callers on the same provider instance run on the pool
|
|
268
|
+
* (GenericDatabaseProvider, #4786). Call it from the function that performs the writes — a begin
|
|
269
|
+
* reached only after an `await` inside a helper does not include the helper's caller.
|
|
270
|
+
*
|
|
262
271
|
* The returned scope is **settle-once**: the first `Commit()` or `Rollback()` wins and later
|
|
263
272
|
* calls are no-ops, so `try { ...; Commit() } catch { Rollback() }` is safe even when the work
|
|
264
273
|
* already unwound its own scope.
|
|
@@ -429,6 +438,8 @@ export declare abstract class DatabaseProviderBase extends ProviderBase {
|
|
|
429
438
|
* Only includes fields that have actually changed and are not read-only.
|
|
430
439
|
*/
|
|
431
440
|
DiffObjects(oldData: Record<string, unknown>, newData: Record<string, unknown>, entityInfo: EntityInfo, quoteToEscape: string): Record<string, FieldChange> | null;
|
|
441
|
+
/** The diff entry for a binary field: its size, never its base64 (null and undefined pass through). */
|
|
442
|
+
private describeBinaryForDiff;
|
|
432
443
|
/**
|
|
433
444
|
* Determines whether a specific field value has changed between old and new data.
|
|
434
445
|
*/
|
|
@@ -735,9 +746,25 @@ export declare abstract class DatabaseProviderBase extends ProviderBase {
|
|
|
735
746
|
* @returns The SQL query string, or null if the entity has no name field
|
|
736
747
|
*/
|
|
737
748
|
protected BuildEntityRecordNameSQL(entityName: string, compositeKey: CompositeKey): string | null;
|
|
749
|
+
/**
|
|
750
|
+
* The fields a record's display name is built from, in order: every `IsNameField` field by
|
|
751
|
+
* `Sequence` (so FirstName + LastName gives "Elizabeth Rodriguez"), else the entity's single
|
|
752
|
+
* `NameField`. Empty when the entity has neither.
|
|
753
|
+
*/
|
|
754
|
+
protected RecordNameFieldsOf(entity: EntityInfo): EntityFieldInfo[];
|
|
755
|
+
/**
|
|
756
|
+
* Whether a user may see this entity's record names: every field the name is built from must
|
|
757
|
+
* be readable to them. On an entity with field-level security on, a missing user may not,
|
|
758
|
+
* because there is nobody to check against.
|
|
759
|
+
*/
|
|
760
|
+
protected CanUserReadRecordName(entity: EntityInfo, contextUser?: UserInfo): boolean;
|
|
738
761
|
/**
|
|
739
762
|
* Retrieves the display name for a single entity record.
|
|
740
763
|
* Uses BuildEntityRecordNameSQL for dialect-neutral SQL generation.
|
|
764
|
+
*
|
|
765
|
+
* Answers with an empty string, without querying, when field-level security withholds any of
|
|
766
|
+
* the name fields from the acting user — the same answer as a record that does not exist, so
|
|
767
|
+
* the lookup cannot be used to tell the two apart.
|
|
741
768
|
*/
|
|
742
769
|
protected InternalGetEntityRecordName(entityName: string, compositeKey: CompositeKey, contextUser?: UserInfo): Promise<string>;
|
|
743
770
|
/**
|
|
@@ -1031,5 +1058,21 @@ export interface ExecuteSQLOptions {
|
|
|
1031
1058
|
* pool read sees committed data only (#4514).
|
|
1032
1059
|
*/
|
|
1033
1060
|
ignoreAmbientTransaction?: boolean;
|
|
1061
|
+
/**
|
|
1062
|
+
* Run the statement inside a read-only transaction that is always rolled back, for SQL a
|
|
1063
|
+
* caller supplied. Writes fail, and any session setting the statement changes (`SET`,
|
|
1064
|
+
* `set_config`) is undone before the connection goes back to the pool, so it cannot reach a
|
|
1065
|
+
* later request. Inside an ambient transaction the statement runs in that transaction as usual.
|
|
1066
|
+
* PostgreSQL honours it; SQL Server, whose read queries cannot change session settings, ignores it.
|
|
1067
|
+
*/
|
|
1068
|
+
readOnlyTransaction?: boolean;
|
|
1069
|
+
/**
|
|
1070
|
+
* The longest this statement may run, in milliseconds. When it is exceeded the database cancels
|
|
1071
|
+
* the statement and the call rejects with a timeout error, so the work stops rather than only
|
|
1072
|
+
* the wait. Omitted or 0 means the connection's usual limit applies. It can only shorten that
|
|
1073
|
+
* limit, never lengthen it. Ignored inside an ambient transaction, whose statements follow the
|
|
1074
|
+
* transaction's own limits.
|
|
1075
|
+
*/
|
|
1076
|
+
timeoutMs?: number;
|
|
1034
1077
|
}
|
|
1035
1078
|
//# sourceMappingURL=databaseProviderBase.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"databaseProviderBase.d.ts","sourceRoot":"","sources":["../../src/generic/databaseProviderBase.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"databaseProviderBase.d.ts","sourceRoot":"","sources":["../../src/generic/databaseProviderBase.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,8 @@ import { DispatchRemoteOperationInProcess } from "./remoteOperationDispatch.js";
|
|
|
6
6
|
import { TransactionItem } from "./transactionGroup.js";
|
|
7
7
|
import { CompositeKey } from "./compositeKey.js";
|
|
8
8
|
import { LogError } from "./logging.js";
|
|
9
|
-
import {
|
|
9
|
+
import { LocalCacheManager } from "./localCacheManager.js";
|
|
10
|
+
import { EscapeSQLString, FormatBinaryChangeValue, SQLExpressionValidator, StripSQLStringLiterals, uuidv4 } from "@memberjunction/global";
|
|
10
11
|
import { GetDialect } from "@memberjunction/sql-dialect";
|
|
11
12
|
// Re-export PlatformSQL types from their canonical location for backward compatibility
|
|
12
13
|
export { IsPlatformSQL } from "./platformSQL.js";
|
|
@@ -82,10 +83,13 @@ export class DatabaseProviderBase extends ProviderBase {
|
|
|
82
83
|
return 0;
|
|
83
84
|
}
|
|
84
85
|
/**
|
|
85
|
-
* Public nesting depth
|
|
86
|
-
*
|
|
87
|
-
*
|
|
88
|
-
*
|
|
86
|
+
* Public nesting depth of the transaction open on this instance; 0 = none. Read this, not
|
|
87
|
+
* `IsInTransaction` (SQL Server leaves that false), when you need to know whether a transaction
|
|
88
|
+
* is open at all. The depth is instance-wide: on a shared provider `TransactionDepth > 0` does
|
|
89
|
+
* NOT mean the caller's statements run in that transaction — only the async scope that began it
|
|
90
|
+
* is part of it (#4786). Code that needs to be inside a transaction should simply call
|
|
91
|
+
* {@link BeginTransaction} / {@link BeginEntityTransaction}: joining one the caller is already in
|
|
92
|
+
* is automatic. Deprecated camelCase `transactionDepth` alias ships for one release.
|
|
89
93
|
*/
|
|
90
94
|
get TransactionDepth() {
|
|
91
95
|
return this.CurrentTransactionDepth;
|
|
@@ -114,6 +118,11 @@ export class DatabaseProviderBase extends ProviderBase {
|
|
|
114
118
|
await this.ResetTransactionState();
|
|
115
119
|
}
|
|
116
120
|
}
|
|
121
|
+
// Belt and braces: whatever route the rollback took, this instance is going away, so it
|
|
122
|
+
// must not leave an entity-event batch behind. A batch whose owner is collected is
|
|
123
|
+
// unreachable while its entities keep counting as pending, which makes every cached read
|
|
124
|
+
// of them miss for the life of the process.
|
|
125
|
+
await LocalCacheManager.Instance.AbandonEntityEventBatch(this);
|
|
117
126
|
}
|
|
118
127
|
/** @deprecated Use {@link TransactionDepth}. */
|
|
119
128
|
get transactionDepth() {
|
|
@@ -128,15 +137,15 @@ export class DatabaseProviderBase extends ProviderBase {
|
|
|
128
137
|
/* no-op */
|
|
129
138
|
}
|
|
130
139
|
/**
|
|
131
|
-
* Run `task` once the
|
|
132
|
-
* no
|
|
140
|
+
* Run `task` once the caller's transaction on this provider (the one its async scope belongs
|
|
141
|
+
* to) has committed, or now if the caller is in no transaction on this provider.
|
|
133
142
|
*
|
|
134
143
|
* Use it for side effects that must only happen for work that is actually durable — queueing
|
|
135
144
|
* background jobs, firing deferred entity actions — and must not run *inside* the caller's
|
|
136
145
|
* transaction. Providers that track transactions (see `GenericDatabaseProvider`) queue the task
|
|
137
|
-
* while
|
|
138
|
-
* commit succeeds (once the transaction lock is released, so a task may open its
|
|
139
|
-
* transaction), and discard them — without running them — when the transaction rolls back,
|
|
146
|
+
* while the caller's transaction is open, run queued tasks in registration order after the
|
|
147
|
+
* **outermost** commit succeeds (once the transaction lock is released, so a task may open its
|
|
148
|
+
* own transaction), and discard them — without running them — when the transaction rolls back,
|
|
140
149
|
* fails to commit, or is abandoned.
|
|
141
150
|
*
|
|
142
151
|
* This default is for providers that do not track transactions: the task starts immediately.
|
|
@@ -163,8 +172,9 @@ export class DatabaseProviderBase extends ProviderBase {
|
|
|
163
172
|
void this.RunPostCommitTaskSafely(task, description);
|
|
164
173
|
}
|
|
165
174
|
/**
|
|
166
|
-
* Snapshot of the transaction frames
|
|
167
|
-
* Synchronous by contract — call it before the
|
|
175
|
+
* Snapshot of the caller's transaction frames on this provider (the transaction its async scope
|
|
176
|
+
* belongs to), for a later {@link RunAfterCommit}. Synchronous by contract — call it before the
|
|
177
|
+
* first `await` of the code that causes the work.
|
|
168
178
|
*
|
|
169
179
|
* @returns `undefined` when no transaction is open. This default never tracks transactions, so
|
|
170
180
|
* it always returns `undefined`.
|
|
@@ -207,6 +217,11 @@ export class DatabaseProviderBase extends ProviderBase {
|
|
|
207
217
|
* physical transaction on the same pool, blind to any transaction the caller had already
|
|
208
218
|
* started.
|
|
209
219
|
*
|
|
220
|
+
* The transaction belongs to the async scope that calls this: that code and everything it starts
|
|
221
|
+
* run on the transaction; unrelated callers on the same provider instance run on the pool
|
|
222
|
+
* (GenericDatabaseProvider, #4786). Call it from the function that performs the writes — a begin
|
|
223
|
+
* reached only after an `await` inside a helper does not include the helper's caller.
|
|
224
|
+
*
|
|
210
225
|
* The returned scope is **settle-once**: the first `Commit()` or `Rollback()` wins and later
|
|
211
226
|
* calls are no-ops, so `try { ...; Commit() } catch { Rollback() }` is safe even when the work
|
|
212
227
|
* already unwound its own scope.
|
|
@@ -222,6 +237,10 @@ export class DatabaseProviderBase extends ProviderBase {
|
|
|
222
237
|
const isNested = this.IsInTransaction || this.CurrentTransactionDepth > 0;
|
|
223
238
|
await this.BeginTransaction();
|
|
224
239
|
const depthAtBegin = this.CurrentTransactionDepth;
|
|
240
|
+
// Cache maintenance for the saves in this scope waits for the outermost settle: one rewrite
|
|
241
|
+
// per cached slot on commit instead of one per save, and nothing written for work that is
|
|
242
|
+
// rolled back. Nested scopes join the same batch.
|
|
243
|
+
LocalCacheManager.Instance.BeginEntityEventBatch(this);
|
|
225
244
|
let settled = false;
|
|
226
245
|
const settle = async (commit) => {
|
|
227
246
|
if (settled) {
|
|
@@ -244,11 +263,18 @@ export class DatabaseProviderBase extends ProviderBase {
|
|
|
244
263
|
`work. Do not run concurrent transactional saves on a shared provider instance — use ` +
|
|
245
264
|
`per-request providers (as MJServer does) or serialize the units of work.`);
|
|
246
265
|
}
|
|
247
|
-
|
|
248
|
-
|
|
266
|
+
let settledAsCommit = false;
|
|
267
|
+
try {
|
|
268
|
+
if (commit) {
|
|
269
|
+
await this.CommitTransaction();
|
|
270
|
+
settledAsCommit = true;
|
|
271
|
+
}
|
|
272
|
+
else {
|
|
273
|
+
await this.RollbackTransaction();
|
|
274
|
+
}
|
|
249
275
|
}
|
|
250
|
-
|
|
251
|
-
await
|
|
276
|
+
finally {
|
|
277
|
+
await LocalCacheManager.Instance.EndEntityEventBatch(this, settledAsCommit);
|
|
252
278
|
}
|
|
253
279
|
};
|
|
254
280
|
return {
|
|
@@ -374,6 +400,13 @@ export class DatabaseProviderBase extends ProviderBase {
|
|
|
374
400
|
continue; // skip if field not found in entity info
|
|
375
401
|
const bDiff = this.isFieldDifferent(f, oldData[key], newData[key]);
|
|
376
402
|
if (bDiff) {
|
|
403
|
+
if (f.IsBinaryFieldType) {
|
|
404
|
+
// A binary value (base64, possibly megabytes) is recorded by size, not content:
|
|
405
|
+
// the record snapshot (FullRecordJSON) keeps the bytes for restore, so the diff
|
|
406
|
+
// does not need to carry them twice more. Readers get a readable change either way.
|
|
407
|
+
changes[key] = { field: key, oldValue: this.describeBinaryForDiff(oldData[key]), newValue: this.describeBinaryForDiff(newData[key]) };
|
|
408
|
+
continue;
|
|
409
|
+
}
|
|
377
410
|
const o = this.escapeValueForDiff(oldData[key], quoteToEscape);
|
|
378
411
|
const n = this.escapeValueForDiff(newData[key], quoteToEscape);
|
|
379
412
|
changes[key] = { field: key, oldValue: o, newValue: n };
|
|
@@ -381,6 +414,12 @@ export class DatabaseProviderBase extends ProviderBase {
|
|
|
381
414
|
}
|
|
382
415
|
return changes;
|
|
383
416
|
}
|
|
417
|
+
/** The diff entry for a binary field: its size, never its base64 (null and undefined pass through). */
|
|
418
|
+
describeBinaryForDiff(value) {
|
|
419
|
+
if (value === null || value === undefined)
|
|
420
|
+
return value;
|
|
421
|
+
return FormatBinaryChangeValue(typeof value === 'string' ? value : String(value));
|
|
422
|
+
}
|
|
384
423
|
/**
|
|
385
424
|
* Determines whether a specific field value has changed between old and new data.
|
|
386
425
|
*/
|
|
@@ -1110,38 +1149,79 @@ export class DatabaseProviderBase extends ProviderBase {
|
|
|
1110
1149
|
const e = this.EntityByName(entityName);
|
|
1111
1150
|
if (!e)
|
|
1112
1151
|
throw new Error('Entity ' + entityName + ' not found');
|
|
1113
|
-
|
|
1114
|
-
// (e.g., FirstName + LastName → "Elizabeth Rodriguez")
|
|
1115
|
-
const nameFields = e.Fields
|
|
1116
|
-
.filter(f => f.IsNameField)
|
|
1117
|
-
.sort((a, b) => (a.Sequence ?? 9999) - (b.Sequence ?? 9999));
|
|
1118
|
-
// Fall back to the single NameField if no IsNameField flags are set
|
|
1152
|
+
const nameFields = this.RecordNameFieldsOf(e);
|
|
1119
1153
|
if (nameFields.length === 0) {
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
LogError('Entity ' + entityName + ' does not have a NameField, returning null');
|
|
1123
|
-
return null;
|
|
1124
|
-
}
|
|
1125
|
-
nameFields.push(f);
|
|
1154
|
+
LogError('Entity ' + entityName + ' does not have a NameField, returning null');
|
|
1155
|
+
return null;
|
|
1126
1156
|
}
|
|
1127
1157
|
let where = '';
|
|
1128
1158
|
for (const pkv of compositeKey.KeyValuePairs) {
|
|
1129
1159
|
const pk = e.PrimaryKeys.find((pk) => pk.Name === pkv.FieldName);
|
|
1130
|
-
const quotes = pk && pk.NeedsQuotes ? "'" : '';
|
|
1131
1160
|
if (where.length > 0)
|
|
1132
1161
|
where += ' AND ';
|
|
1133
|
-
|
|
1162
|
+
if (pk && pk.NeedsQuotes) {
|
|
1163
|
+
// Key values arrive from remote callers — escape so a quote in the value cannot
|
|
1164
|
+
// break out of the literal (same discipline as CompositeKey.ToWhereClause).
|
|
1165
|
+
where += this.QuoteIdentifier(pkv.FieldName) + "='" + EscapeSQLString(String(pkv.Value)) + "'";
|
|
1166
|
+
}
|
|
1167
|
+
else {
|
|
1168
|
+
// Unquoted (numeric) key column: the value is spliced in bare, so refuse anything
|
|
1169
|
+
// that is not a plain number rather than letting it reach the SQL text.
|
|
1170
|
+
const raw = String(pkv.Value);
|
|
1171
|
+
if (!/^-?\d+(\.\d+)?$/.test(raw)) {
|
|
1172
|
+
LogError(`BuildEntityRecordNameSQL: non-numeric value provided for numeric key field ${pkv.FieldName} on entity ${entityName}`);
|
|
1173
|
+
return null;
|
|
1174
|
+
}
|
|
1175
|
+
where += this.QuoteIdentifier(pkv.FieldName) + '=' + raw;
|
|
1176
|
+
}
|
|
1134
1177
|
}
|
|
1135
1178
|
// SELECT all name fields so InternalGetEntityRecordName can concatenate them
|
|
1136
1179
|
const selectFields = nameFields.map(f => this.QuoteIdentifier(f.Name)).join(', ');
|
|
1137
1180
|
return 'SELECT ' + selectFields + ' FROM ' + this.QuoteSchemaAndView(e.SchemaName, e.BaseView) + ' WHERE ' + where;
|
|
1138
1181
|
}
|
|
1182
|
+
/**
|
|
1183
|
+
* The fields a record's display name is built from, in order: every `IsNameField` field by
|
|
1184
|
+
* `Sequence` (so FirstName + LastName gives "Elizabeth Rodriguez"), else the entity's single
|
|
1185
|
+
* `NameField`. Empty when the entity has neither.
|
|
1186
|
+
*/
|
|
1187
|
+
RecordNameFieldsOf(entity) {
|
|
1188
|
+
const nameFields = entity.Fields
|
|
1189
|
+
.filter(f => f.IsNameField)
|
|
1190
|
+
.sort((a, b) => (a.Sequence ?? 9999) - (b.Sequence ?? 9999));
|
|
1191
|
+
if (nameFields.length === 0 && entity.NameField) {
|
|
1192
|
+
nameFields.push(entity.NameField);
|
|
1193
|
+
}
|
|
1194
|
+
return nameFields;
|
|
1195
|
+
}
|
|
1196
|
+
/**
|
|
1197
|
+
* Whether a user may see this entity's record names: every field the name is built from must
|
|
1198
|
+
* be readable to them. On an entity with field-level security on, a missing user may not,
|
|
1199
|
+
* because there is nobody to check against.
|
|
1200
|
+
*/
|
|
1201
|
+
CanUserReadRecordName(entity, contextUser) {
|
|
1202
|
+
if (!entity.EnableFieldLevelSecurity) {
|
|
1203
|
+
return true;
|
|
1204
|
+
}
|
|
1205
|
+
if (!contextUser) {
|
|
1206
|
+
return false;
|
|
1207
|
+
}
|
|
1208
|
+
const denied = entity.GetDeniedReadFields(contextUser);
|
|
1209
|
+
return this.RecordNameFieldsOf(entity).every(f => !denied.has(f.Name.trim().toLowerCase()));
|
|
1210
|
+
}
|
|
1139
1211
|
/**
|
|
1140
1212
|
* Retrieves the display name for a single entity record.
|
|
1141
1213
|
* Uses BuildEntityRecordNameSQL for dialect-neutral SQL generation.
|
|
1214
|
+
*
|
|
1215
|
+
* Answers with an empty string, without querying, when field-level security withholds any of
|
|
1216
|
+
* the name fields from the acting user — the same answer as a record that does not exist, so
|
|
1217
|
+
* the lookup cannot be used to tell the two apart.
|
|
1142
1218
|
*/
|
|
1143
1219
|
async InternalGetEntityRecordName(entityName, compositeKey, contextUser) {
|
|
1144
1220
|
try {
|
|
1221
|
+
const entity = this.EntityByName(entityName);
|
|
1222
|
+
if (entity && !this.CanUserReadRecordName(entity, contextUser)) {
|
|
1223
|
+
return '';
|
|
1224
|
+
}
|
|
1145
1225
|
const sql = this.BuildEntityRecordNameSQL(entityName, compositeKey);
|
|
1146
1226
|
if (sql) {
|
|
1147
1227
|
const data = await this.ExecuteSQL(sql, undefined, undefined, contextUser);
|
|
@@ -1202,6 +1282,20 @@ export class DatabaseProviderBase extends ProviderBase {
|
|
|
1202
1282
|
*/
|
|
1203
1283
|
async Save(entity, user, options) {
|
|
1204
1284
|
const entityResult = new BaseEntityResult();
|
|
1285
|
+
// Each suspend is matched by exactly one resume, whichever path (success, transaction
|
|
1286
|
+
// callback, or catch) gets there first: providers count suspensions, so a stray resume
|
|
1287
|
+
// would re-enable refresh while another save is still running.
|
|
1288
|
+
let refreshSuspended = false;
|
|
1289
|
+
const suspendRefresh = () => {
|
|
1290
|
+
refreshSuspended = true;
|
|
1291
|
+
this.OnSuspendRefresh();
|
|
1292
|
+
};
|
|
1293
|
+
const resumeRefresh = () => {
|
|
1294
|
+
if (refreshSuspended) {
|
|
1295
|
+
refreshSuspended = false;
|
|
1296
|
+
this.OnResumeRefresh();
|
|
1297
|
+
}
|
|
1298
|
+
};
|
|
1205
1299
|
try {
|
|
1206
1300
|
entity.RegisterTransactionPreprocessing();
|
|
1207
1301
|
// External-data-source entities are read-only — MJ is never the system of record for
|
|
@@ -1316,14 +1410,14 @@ export class DatabaseProviderBase extends ProviderBase {
|
|
|
1316
1410
|
if (entity.TransactionGroup && !bReplay) {
|
|
1317
1411
|
// ---- Transaction Group path ----
|
|
1318
1412
|
entity.RaiseReadyForTransaction();
|
|
1319
|
-
|
|
1413
|
+
suspendRefresh();
|
|
1320
1414
|
const extraData = this.GetTransactionExtraData(entity);
|
|
1321
1415
|
if (sqlDetails.simpleSQL) {
|
|
1322
1416
|
extraData.simpleSQLFallback = sqlDetails.simpleSQL;
|
|
1323
1417
|
}
|
|
1324
1418
|
extraData.entityName = entity.EntityInfo.Name;
|
|
1325
1419
|
entity.TransactionGroup.AddTransaction(new TransactionItem(entity, entityResult.Type === 'create' ? 'Create' : 'Update', sqlDetails.fullSQL, sqlDetails.parameters ?? null, extraData, (transactionResult, success) => {
|
|
1326
|
-
|
|
1420
|
+
resumeRefresh();
|
|
1327
1421
|
entityResult.EndedAt = new Date();
|
|
1328
1422
|
if (success && transactionResult) {
|
|
1329
1423
|
this.OnAfterSaveExecute(entity, user, options, saveContext);
|
|
@@ -1339,7 +1433,7 @@ export class DatabaseProviderBase extends ProviderBase {
|
|
|
1339
1433
|
}
|
|
1340
1434
|
else {
|
|
1341
1435
|
// ---- Direct execution path ----
|
|
1342
|
-
|
|
1436
|
+
suspendRefresh();
|
|
1343
1437
|
let result;
|
|
1344
1438
|
if (bReplay) {
|
|
1345
1439
|
result = [entity.GetAll()];
|
|
@@ -1349,7 +1443,7 @@ export class DatabaseProviderBase extends ProviderBase {
|
|
|
1349
1443
|
const rawResult = await this.ExecuteSQL(sqlDetails.fullSQL, sqlDetails.parameters ?? undefined, execOptions, user);
|
|
1350
1444
|
result = await this.PostProcessRows(rawResult, entity.EntityInfo, user);
|
|
1351
1445
|
}
|
|
1352
|
-
|
|
1446
|
+
resumeRefresh();
|
|
1353
1447
|
entityResult.EndedAt = new Date();
|
|
1354
1448
|
if (result && result.length > 0) {
|
|
1355
1449
|
this.OnAfterSaveExecute(entity, user, options, saveContext);
|
|
@@ -1376,7 +1470,7 @@ export class DatabaseProviderBase extends ProviderBase {
|
|
|
1376
1470
|
}
|
|
1377
1471
|
}
|
|
1378
1472
|
catch (e) {
|
|
1379
|
-
|
|
1473
|
+
resumeRefresh();
|
|
1380
1474
|
entityResult.EndedAt = new Date();
|
|
1381
1475
|
entityResult.Message = e.message;
|
|
1382
1476
|
LogError(e);
|