@memberjunction/version-history 6.2.0-edge.0 → 6.2.0-edge.2
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/README.md +3 -0
- package/dist/DependencyGraphWalker.d.ts +3 -166
- package/dist/DependencyGraphWalker.d.ts.map +1 -1
- package/dist/DependencyGraphWalker.js +3 -503
- package/dist/DependencyGraphWalker.js.map +1 -1
- package/dist/DiffEngine.js +17 -17
- package/dist/LabelManager.js +8 -8
- package/dist/RestoreEngine.d.ts +3 -2
- package/dist/RestoreEngine.d.ts.map +1 -1
- package/dist/RestoreEngine.js +16 -52
- package/dist/RestoreEngine.js.map +1 -1
- package/dist/SnapshotBuilder.d.ts +1 -1
- package/dist/SnapshotBuilder.js +7 -7
- package/dist/VersionHistoryEngine.d.ts +7 -6
- package/dist/VersionHistoryEngine.d.ts.map +1 -1
- package/dist/VersionHistoryEngine.js +18 -18
- package/dist/VersionHistoryEngine.js.map +1 -1
- package/dist/constants.d.ts +5 -48
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +16 -73
- package/dist/constants.js.map +1 -1
- package/dist/types.d.ts +2 -35
- package/dist/types.d.ts.map +1 -1
- package/package.json +5 -4
package/dist/LabelManager.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Metadata, RunView, LogError, LogStatus } from '@memberjunction/core';
|
|
2
|
-
import { ENTITY_VERSION_LABELS,
|
|
2
|
+
import { ENTITY_VERSION_LABELS, SqlEquals, SqlContains, LoadEntityById, } from './constants.js';
|
|
3
3
|
/**
|
|
4
4
|
* Manages the lifecycle of version labels: creation, querying, archiving,
|
|
5
5
|
* and status updates. Does NOT handle snapshot capture — that is delegated
|
|
@@ -38,7 +38,7 @@ export class LabelManager {
|
|
|
38
38
|
* Load a single version label by ID.
|
|
39
39
|
*/
|
|
40
40
|
async GetLabel(labelId, contextUser) {
|
|
41
|
-
const label = await
|
|
41
|
+
const label = await LoadEntityById(ENTITY_VERSION_LABELS, labelId, contextUser);
|
|
42
42
|
if (!label) {
|
|
43
43
|
throw new Error(`Version label '${labelId}' not found`);
|
|
44
44
|
}
|
|
@@ -127,26 +127,26 @@ export class LabelManager {
|
|
|
127
127
|
buildFilterClauses(filter) {
|
|
128
128
|
const clauses = [];
|
|
129
129
|
if (filter.Scope) {
|
|
130
|
-
clauses.push(
|
|
130
|
+
clauses.push(SqlEquals('Scope', filter.Scope));
|
|
131
131
|
}
|
|
132
132
|
if (filter.Status) {
|
|
133
|
-
clauses.push(
|
|
133
|
+
clauses.push(SqlEquals('Status', filter.Status));
|
|
134
134
|
}
|
|
135
135
|
if (filter.EntityName) {
|
|
136
136
|
const md = this.ProviderToUse;
|
|
137
137
|
const entityInfo = md.EntityByName(filter.EntityName);
|
|
138
138
|
if (entityInfo) {
|
|
139
|
-
clauses.push(
|
|
139
|
+
clauses.push(SqlEquals('EntityID', entityInfo.ID));
|
|
140
140
|
}
|
|
141
141
|
}
|
|
142
142
|
if (filter.RecordID) {
|
|
143
|
-
clauses.push(
|
|
143
|
+
clauses.push(SqlEquals('RecordID', filter.RecordID));
|
|
144
144
|
}
|
|
145
145
|
if (filter.CreatedByUserID) {
|
|
146
|
-
clauses.push(
|
|
146
|
+
clauses.push(SqlEquals('CreatedByUserID', filter.CreatedByUserID));
|
|
147
147
|
}
|
|
148
148
|
if (filter.NameContains) {
|
|
149
|
-
clauses.push(
|
|
149
|
+
clauses.push(SqlContains('Name', filter.NameContains));
|
|
150
150
|
}
|
|
151
151
|
return clauses;
|
|
152
152
|
}
|
package/dist/RestoreEngine.d.ts
CHANGED
|
@@ -11,8 +11,8 @@ import { RestoreOptions, RestoreResult } from './types.js';
|
|
|
11
11
|
* - Supports dry-run mode for previewing changes without applying them
|
|
12
12
|
*/
|
|
13
13
|
export declare class RestoreEngine {
|
|
14
|
-
private
|
|
15
|
-
private
|
|
14
|
+
private labelMgr;
|
|
15
|
+
private snapshotBldr;
|
|
16
16
|
/** Optional provider override; falls back to Metadata.Provider when not set. */
|
|
17
17
|
private _provider?;
|
|
18
18
|
/** Returns the active provider — explicit override if set, otherwise the global default. */
|
|
@@ -37,6 +37,7 @@ export declare class RestoreEngine {
|
|
|
37
37
|
/**
|
|
38
38
|
* Sort label items by entity dependency order so parents are restored
|
|
39
39
|
* before their children.
|
|
40
|
+
* Delegates to SortByEntityDependencyOrder in @memberjunction/record-graph.
|
|
40
41
|
*/
|
|
41
42
|
private sortByDependencyOrder;
|
|
42
43
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RestoreEngine.d.ts","sourceRoot":"","sources":["../src/RestoreEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAIH,iBAAiB,EAGjB,QAAQ,EAGX,MAAM,sBAAsB,CAAC;AAO9B,OAAO,EAEH,cAAc,EACd,aAAa,EAGhB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"RestoreEngine.d.ts","sourceRoot":"","sources":["../src/RestoreEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAIH,iBAAiB,EAGjB,QAAQ,EAGX,MAAM,sBAAsB,CAAC;AAO9B,OAAO,EAEH,cAAc,EACd,aAAa,EAGhB,MAAM,SAAS,CAAC;AAkBjB;;;;;;;;;GASG;AACH,qBAAa,aAAa;IACtB,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,YAAY,CAAyB;IAE7C,gFAAgF;IAChF,OAAO,CAAC,SAAS,CAAC,CAAoB;IAEtC,4FAA4F;IAC5F,SAAS,KAAK,aAAa,IAAI,iBAAiB,CAE/C;IAED;;OAEG;IACU,cAAc,CACvB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,cAAc,EACvB,WAAW,EAAE,QAAQ,EACrB,QAAQ,CAAC,EAAE,iBAAiB,GAC7B,OAAO,CAAC,aAAa,CAAC;IAqEzB;;;OAGG;YACW,mBAAmB;IAsCjC;;OAEG;YACW,cAAc;IAyC5B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAe/B;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAI7B;;OAEG;YACW,iBAAiB;IA8B/B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAKzB;;OAEG;YACW,YAAY;IAwB1B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;OAEG;YACW,kBAAkB;IAqBhC;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IA0B7B;;OAEG;IACH,OAAO,CAAC,YAAY;IAMpB;;;OAGG;YACW,qBAAqB;IAuCnC;;OAEG;YACW,wBAAwB;IA2BtC;;OAEG;YACW,qBAAqB;IAoBnC;;OAEG;YACW,oBAAoB;IA6BlC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAU5B;;OAEG;IACH,OAAO,CAAC,eAAe;IAUvB;;OAEG;IACH,OAAO,CAAC,WAAW;CAWtB"}
|
package/dist/RestoreEngine.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { CompositeKey, Metadata, RunView, LogError, LogStatus, } from '@memberjunction/core';
|
|
2
|
-
import {
|
|
2
|
+
import { SortByEntityDependencyOrder } from '@memberjunction/record-graph';
|
|
3
3
|
import { LabelManager } from './LabelManager.js';
|
|
4
4
|
import { SnapshotBuilder } from './SnapshotBuilder.js';
|
|
5
|
-
import { ENTITY_VERSION_LABEL_ITEMS, ENTITY_VERSION_LABEL_RESTORES, ENTITY_VERSION_LABELS,
|
|
5
|
+
import { ENTITY_VERSION_LABEL_ITEMS, ENTITY_VERSION_LABEL_RESTORES, ENTITY_VERSION_LABELS, SqlEquals, SqlNotIn, LoadRecordChangeSnapshot, LoadEntityById, BuildPrimaryKeyForLoad, } from './constants.js';
|
|
6
6
|
/** Batch size for progress update writes — only persist every N items. */
|
|
7
7
|
const PROGRESS_UPDATE_INTERVAL = 10;
|
|
8
8
|
/**
|
|
@@ -17,8 +17,8 @@ const PROGRESS_UPDATE_INTERVAL = 10;
|
|
|
17
17
|
*/
|
|
18
18
|
export class RestoreEngine {
|
|
19
19
|
constructor() {
|
|
20
|
-
this.
|
|
21
|
-
this.
|
|
20
|
+
this.labelMgr = new LabelManager();
|
|
21
|
+
this.snapshotBldr = new SnapshotBuilder();
|
|
22
22
|
}
|
|
23
23
|
/** Returns the active provider — explicit override if set, otherwise the global default. */
|
|
24
24
|
get ProviderToUse() {
|
|
@@ -32,7 +32,7 @@ export class RestoreEngine {
|
|
|
32
32
|
this._provider = provider;
|
|
33
33
|
const resolvedOptions = this.resolveDefaults(options);
|
|
34
34
|
// Load the target label
|
|
35
|
-
const label = await
|
|
35
|
+
const label = await LoadEntityById(ENTITY_VERSION_LABELS, labelId, contextUser);
|
|
36
36
|
if (!label)
|
|
37
37
|
throw new Error(`Version label '${labelId}' not found`);
|
|
38
38
|
const labelName = label.Name;
|
|
@@ -64,7 +64,7 @@ export class RestoreEngine {
|
|
|
64
64
|
}
|
|
65
65
|
// Mark the label as restored
|
|
66
66
|
if (!resolvedOptions.DryRun && finalStatus !== 'Error') {
|
|
67
|
-
await this.
|
|
67
|
+
await this.labelMgr.MarkLabelRestored(labelId, contextUser);
|
|
68
68
|
}
|
|
69
69
|
LogStatus(`VersionHistory: Restore complete. ${restoredCount} restored, ${failedCount} failed, ${skippedCount} skipped.`);
|
|
70
70
|
return {
|
|
@@ -117,7 +117,7 @@ export class RestoreEngine {
|
|
|
117
117
|
*/
|
|
118
118
|
async loadLabelItems(labelId, options, contextUser) {
|
|
119
119
|
const rv = new RunView();
|
|
120
|
-
let extraFilter =
|
|
120
|
+
let extraFilter = SqlEquals('VersionLabelID', labelId);
|
|
121
121
|
// Apply entity exclusion
|
|
122
122
|
if (options.SkipEntities && options.SkipEntities.length > 0) {
|
|
123
123
|
const md = this.ProviderToUse;
|
|
@@ -125,7 +125,7 @@ export class RestoreEngine {
|
|
|
125
125
|
.map(name => md.EntityByName(name)?.ID)
|
|
126
126
|
.filter((id) => id != null);
|
|
127
127
|
if (excludeIds.length > 0) {
|
|
128
|
-
extraFilter += ` AND ${
|
|
128
|
+
extraFilter += ` AND ${SqlNotIn('EntityID', excludeIds)}`;
|
|
129
129
|
}
|
|
130
130
|
}
|
|
131
131
|
const result = await rv.RunView({
|
|
@@ -159,46 +159,10 @@ export class RestoreEngine {
|
|
|
159
159
|
/**
|
|
160
160
|
* Sort label items by entity dependency order so parents are restored
|
|
161
161
|
* before their children.
|
|
162
|
+
* Delegates to SortByEntityDependencyOrder in @memberjunction/record-graph.
|
|
162
163
|
*/
|
|
163
164
|
sortByDependencyOrder(items) {
|
|
164
|
-
|
|
165
|
-
// Build a map of entityId -> dependency level
|
|
166
|
-
const levelMap = new Map();
|
|
167
|
-
const visited = new Set();
|
|
168
|
-
const computeLevel = (entityId) => {
|
|
169
|
-
if (levelMap.has(entityId))
|
|
170
|
-
return levelMap.get(entityId);
|
|
171
|
-
if (visited.has(entityId))
|
|
172
|
-
return 0; // Cycle — break it
|
|
173
|
-
visited.add(entityId);
|
|
174
|
-
const entityInfo = md.EntityByID(entityId);
|
|
175
|
-
if (!entityInfo) {
|
|
176
|
-
levelMap.set(entityId, 0);
|
|
177
|
-
return 0;
|
|
178
|
-
}
|
|
179
|
-
// Find all FK fields pointing to other entities
|
|
180
|
-
let maxParentLevel = -1;
|
|
181
|
-
for (const field of entityInfo.Fields) {
|
|
182
|
-
if (field.RelatedEntityID && !UUIDsEqual(field.RelatedEntityID, entityId)) {
|
|
183
|
-
const parentLevel = computeLevel(field.RelatedEntityID);
|
|
184
|
-
maxParentLevel = Math.max(maxParentLevel, parentLevel);
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
const level = maxParentLevel + 1;
|
|
188
|
-
levelMap.set(entityId, level);
|
|
189
|
-
return level;
|
|
190
|
-
};
|
|
191
|
-
// Compute levels for all entities in the item set
|
|
192
|
-
const entityIds = new Set(items.map(i => i.EntityID));
|
|
193
|
-
for (const entityId of entityIds) {
|
|
194
|
-
computeLevel(entityId);
|
|
195
|
-
}
|
|
196
|
-
// Sort: lower level (parents) first
|
|
197
|
-
return [...items].sort((a, b) => {
|
|
198
|
-
const levelA = levelMap.get(a.EntityID) ?? 0;
|
|
199
|
-
const levelB = levelMap.get(b.EntityID) ?? 0;
|
|
200
|
-
return levelA - levelB;
|
|
201
|
-
});
|
|
165
|
+
return SortByEntityDependencyOrder(items, i => i.EntityID, this.ProviderToUse);
|
|
202
166
|
}
|
|
203
167
|
/**
|
|
204
168
|
* Restore a single record to its labeled state.
|
|
@@ -209,7 +173,7 @@ export class RestoreEngine {
|
|
|
209
173
|
return this.failedItemResult(`Unknown(${item.EntityID})`, item.RecordID, `Entity with ID '${item.EntityID}' not found in metadata`);
|
|
210
174
|
}
|
|
211
175
|
try {
|
|
212
|
-
const snapshotData = await
|
|
176
|
+
const snapshotData = await LoadRecordChangeSnapshot(item.RecordChangeID, contextUser);
|
|
213
177
|
if (!snapshotData) {
|
|
214
178
|
return this.failedItemResult(entityInfo.Name, item.RecordID, 'Could not load snapshot from RecordChange');
|
|
215
179
|
}
|
|
@@ -263,7 +227,7 @@ export class RestoreEngine {
|
|
|
263
227
|
const entity = await md.GetEntityObject(entityInfo.Name, contextUser);
|
|
264
228
|
// Try to load existing record using the entity's actual primary key
|
|
265
229
|
try {
|
|
266
|
-
const key =
|
|
230
|
+
const key = BuildPrimaryKeyForLoad(entityInfo, recordId);
|
|
267
231
|
const loaded = await entity.InnerLoad(key);
|
|
268
232
|
if (loaded)
|
|
269
233
|
return entity;
|
|
@@ -314,7 +278,7 @@ export class RestoreEngine {
|
|
|
314
278
|
* records that will be affected by the restore.
|
|
315
279
|
*/
|
|
316
280
|
async createPreRestoreLabel(targetLabelName, targetLabelScope, items, contextUser) {
|
|
317
|
-
const label = await this.
|
|
281
|
+
const label = await this.labelMgr.CreateLabel({
|
|
318
282
|
Name: `Pre-Restore: ${targetLabelName} (${new Date().toISOString()})`,
|
|
319
283
|
Description: `Automatic safety snapshot created before restoring to label '${targetLabelName}'`,
|
|
320
284
|
Scope: targetLabelScope,
|
|
@@ -330,7 +294,7 @@ export class RestoreEngine {
|
|
|
330
294
|
// ToConcatenatedString). Parse it — wrapping it as the first PK's value would have made
|
|
331
295
|
// the key `ID='ID|abc'`, and a composite key can't be a single value at all.
|
|
332
296
|
const key = CompositeKey.FromURLSegment(entityInfo, item.RecordID);
|
|
333
|
-
await this.
|
|
297
|
+
await this.snapshotBldr.CaptureRecord(preRestoreLabelId, entityInfo.Name, key, false, // Don't walk dependencies — we already have the full item list
|
|
334
298
|
{}, contextUser);
|
|
335
299
|
}
|
|
336
300
|
LogStatus(`VersionHistory: Created pre-restore safety label (${preRestoreLabelId})`);
|
|
@@ -362,7 +326,7 @@ export class RestoreEngine {
|
|
|
362
326
|
*/
|
|
363
327
|
async updateRestoreProgress(restoreId, completedItems, failedItems, contextUser) {
|
|
364
328
|
try {
|
|
365
|
-
const restore = await
|
|
329
|
+
const restore = await LoadEntityById(ENTITY_VERSION_LABEL_RESTORES, restoreId, contextUser);
|
|
366
330
|
if (!restore)
|
|
367
331
|
return;
|
|
368
332
|
restore.CompletedItems = completedItems;
|
|
@@ -380,7 +344,7 @@ export class RestoreEngine {
|
|
|
380
344
|
*/
|
|
381
345
|
async finalizeRestoreAudit(restoreId, status, failedCount, details, contextUser) {
|
|
382
346
|
try {
|
|
383
|
-
const restore = await
|
|
347
|
+
const restore = await LoadEntityById(ENTITY_VERSION_LABEL_RESTORES, restoreId, contextUser);
|
|
384
348
|
if (!restore)
|
|
385
349
|
return;
|
|
386
350
|
restore.Status = status;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RestoreEngine.js","sourceRoot":"","sources":["../src/RestoreEngine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RestoreEngine.js","sourceRoot":"","sources":["../src/RestoreEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,7 +17,7 @@ import { CaptureResult, CreateLabelProgressCallback, WalkOptions } from './types
|
|
|
17
17
|
* a handful of batched queries (one per unique entity type).
|
|
18
18
|
*/
|
|
19
19
|
export declare class SnapshotBuilder {
|
|
20
|
-
private
|
|
20
|
+
private walker;
|
|
21
21
|
/** Optional provider override; falls back to Metadata.Provider when not set. */
|
|
22
22
|
private _provider?;
|
|
23
23
|
/** Returns the active provider — explicit override if set, otherwise the global default. */
|
package/dist/SnapshotBuilder.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Metadata, RunView, LogError, LogStatus, } from '@memberjunction/core';
|
|
2
2
|
import { DependencyGraphWalker } from './DependencyGraphWalker.js';
|
|
3
|
-
import { ENTITY_VERSION_LABEL_ITEMS, ENTITY_RECORD_CHANGES,
|
|
3
|
+
import { ENTITY_VERSION_LABEL_ITEMS, ENTITY_RECORD_CHANGES, BuildCompositeKeyFromRecord, SqlEquals, escapeSqlString, } from './constants.js';
|
|
4
4
|
// =============================================================================
|
|
5
5
|
// SnapshotBuilder
|
|
6
6
|
// =============================================================================
|
|
@@ -22,7 +22,7 @@ import { ENTITY_VERSION_LABEL_ITEMS, ENTITY_RECORD_CHANGES, buildCompositeKeyFro
|
|
|
22
22
|
*/
|
|
23
23
|
export class SnapshotBuilder {
|
|
24
24
|
constructor() {
|
|
25
|
-
this.
|
|
25
|
+
this.walker = new DependencyGraphWalker();
|
|
26
26
|
}
|
|
27
27
|
/** Returns the active provider — explicit override if set, otherwise the global default. */
|
|
28
28
|
get ProviderToUse() {
|
|
@@ -62,7 +62,7 @@ export class SnapshotBuilder {
|
|
|
62
62
|
let itemsCaptured = 0;
|
|
63
63
|
let syntheticCount = 0;
|
|
64
64
|
for (const record of result.Results) {
|
|
65
|
-
const key =
|
|
65
|
+
const key = BuildCompositeKeyFromRecord(entityInfo, record);
|
|
66
66
|
const captureItemResult = await this.captureSingleRecord(labelId, entityName, key, contextUser, record);
|
|
67
67
|
if (captureItemResult.Success) {
|
|
68
68
|
itemsCaptured++;
|
|
@@ -130,8 +130,8 @@ export class SnapshotBuilder {
|
|
|
130
130
|
Message: `Walking dependency graph for ${entityName}...`,
|
|
131
131
|
Percentage: 10,
|
|
132
132
|
});
|
|
133
|
-
const root = await this.
|
|
134
|
-
const flatNodes = this.
|
|
133
|
+
const root = await this.walker.WalkDependents(entityName, recordKey, walkOptions, contextUser);
|
|
134
|
+
const flatNodes = this.walker.FlattenTopological(root);
|
|
135
135
|
// Step 2: Batch-lookup RecordChanges for all nodes
|
|
136
136
|
this.emitProgress(onProgress, {
|
|
137
137
|
Step: 'capturing_snapshots',
|
|
@@ -274,7 +274,7 @@ export class SnapshotBuilder {
|
|
|
274
274
|
async lookupChangesChunk(entityId, recordIds, contextUser) {
|
|
275
275
|
const results = new Map();
|
|
276
276
|
const escapedIds = recordIds.map(id => `'${escapeSqlString(id)}'`).join(', ');
|
|
277
|
-
const filter = `${
|
|
277
|
+
const filter = `${SqlEquals('EntityID', entityId)} AND RecordID IN (${escapedIds})`;
|
|
278
278
|
try {
|
|
279
279
|
const rv = new RunView();
|
|
280
280
|
const result = await rv.RunView({
|
|
@@ -414,7 +414,7 @@ export class SnapshotBuilder {
|
|
|
414
414
|
*/
|
|
415
415
|
async findLatestRecordChange(entityId, recordId, contextUser) {
|
|
416
416
|
const rv = new RunView();
|
|
417
|
-
const filter = `${
|
|
417
|
+
const filter = `${SqlEquals('EntityID', entityId)} AND ${SqlEquals('RecordID', recordId)}`;
|
|
418
418
|
const result = await rv.RunView({
|
|
419
419
|
EntityName: ENTITY_RECORD_CHANGES,
|
|
420
420
|
ExtraFilter: filter,
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { CompositeKey, UserInfo } from '@memberjunction/core';
|
|
2
2
|
import { MJVersionLabelEntity } from '@memberjunction/core-entities';
|
|
3
|
-
import { CaptureResult, CreateLabelParams,
|
|
3
|
+
import { CaptureResult, CreateLabelParams, DiffResult, LabelFilter, RecordSnapshot, RestoreOptions, RestoreResult } from './types.js';
|
|
4
|
+
import { DependencyNode, WalkOptions } from '@memberjunction/record-graph';
|
|
4
5
|
/**
|
|
5
6
|
* Main facade for the MemberJunction Version History system.
|
|
6
7
|
*
|
|
@@ -39,11 +40,11 @@ import { CaptureResult, CreateLabelParams, DependencyNode, DiffResult, LabelFilt
|
|
|
39
40
|
* ```
|
|
40
41
|
*/
|
|
41
42
|
export declare class VersionHistoryEngine {
|
|
42
|
-
private
|
|
43
|
-
private
|
|
44
|
-
private
|
|
45
|
-
private
|
|
46
|
-
private
|
|
43
|
+
private labelMgr;
|
|
44
|
+
private snapshotBldr;
|
|
45
|
+
private graphWalker;
|
|
46
|
+
private differ;
|
|
47
|
+
private restorer;
|
|
47
48
|
/**
|
|
48
49
|
* Create a new version label and capture the appropriate snapshot based
|
|
49
50
|
* on the label's scope.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VersionHistoryEngine.d.ts","sourceRoot":"","sources":["../src/VersionHistoryEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,YAAY,EACZ,QAAQ,EAGX,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EACH,aAAa,EACb,iBAAiB,EAEjB,
|
|
1
|
+
{"version":3,"file":"VersionHistoryEngine.d.ts","sourceRoot":"","sources":["../src/VersionHistoryEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,YAAY,EACZ,QAAQ,EAGX,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EACH,aAAa,EACb,iBAAiB,EAEjB,UAAU,EACV,WAAW,EACX,cAAc,EACd,cAAc,EACd,aAAa,EAChB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAyB,cAAc,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAMlG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,qBAAa,oBAAoB;IAC7B,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,YAAY,CAAyB;IAC7C,OAAO,CAAC,WAAW,CAA+B;IAClD,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,QAAQ,CAAuB;IAMvC;;;;;;;OAOG;IACU,WAAW,CACpB,MAAM,EAAE,iBAAiB,EACzB,WAAW,EAAE,QAAQ,GACtB,OAAO,CAAC;QAAE,KAAK,EAAE,oBAAoB,CAAC;QAAC,aAAa,EAAE,aAAa,CAAA;KAAE,CAAC;IAoFzE,uDAAuD;IACvD,OAAO,CAAC,YAAY;IAcpB;;OAEG;IACU,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAInF;;OAEG;IACU,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAI5F;;OAEG;IACU,SAAS,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAQnG;;;OAGG;IACU,UAAU,CACnB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,QAAQ,GACtB,OAAO,CAAC,UAAU,CAAC;IAItB;;;OAGG;IACU,uBAAuB,CAChC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,QAAQ,GACtB,OAAO,CAAC,UAAU,CAAC;IAItB;;OAEG;IACU,eAAe,CACxB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,QAAQ,GACtB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAQjC;;;;;OAKG;IACU,cAAc,CACvB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,cAAc,EACvB,WAAW,EAAE,QAAQ,GACtB,OAAO,CAAC,aAAa,CAAC;IAQzB;;;OAGG;IACU,wBAAwB,CACjC,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,YAAY,EACvB,OAAO,EAAE,WAAW,EACpB,WAAW,EAAE,QAAQ,GACtB,OAAO,CAAC,cAAc,CAAC;CAG7B"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { LogError, LogStatus, } from '@memberjunction/core';
|
|
2
|
+
import { DependencyGraphWalker } from '@memberjunction/record-graph';
|
|
2
3
|
import { LabelManager } from './LabelManager.js';
|
|
3
4
|
import { SnapshotBuilder } from './SnapshotBuilder.js';
|
|
4
|
-
import { DependencyGraphWalker } from './DependencyGraphWalker.js';
|
|
5
5
|
import { DiffEngine } from './DiffEngine.js';
|
|
6
6
|
import { RestoreEngine } from './RestoreEngine.js';
|
|
7
7
|
/**
|
|
@@ -43,11 +43,11 @@ import { RestoreEngine } from './RestoreEngine.js';
|
|
|
43
43
|
*/
|
|
44
44
|
export class VersionHistoryEngine {
|
|
45
45
|
constructor() {
|
|
46
|
-
this.
|
|
47
|
-
this.
|
|
48
|
-
this.
|
|
49
|
-
this.
|
|
50
|
-
this.
|
|
46
|
+
this.labelMgr = new LabelManager();
|
|
47
|
+
this.snapshotBldr = new SnapshotBuilder();
|
|
48
|
+
this.graphWalker = new DependencyGraphWalker();
|
|
49
|
+
this.differ = new DiffEngine();
|
|
50
|
+
this.restorer = new RestoreEngine();
|
|
51
51
|
}
|
|
52
52
|
// =======================================================================
|
|
53
53
|
// Label operations
|
|
@@ -69,7 +69,7 @@ export class VersionHistoryEngine {
|
|
|
69
69
|
Percentage: 5,
|
|
70
70
|
});
|
|
71
71
|
// Create the label record
|
|
72
|
-
const label = await this.
|
|
72
|
+
const label = await this.labelMgr.CreateLabel(params, contextUser);
|
|
73
73
|
const labelId = label.ID;
|
|
74
74
|
const scope = params.Scope ?? 'Record';
|
|
75
75
|
// Track creation timing
|
|
@@ -84,15 +84,15 @@ export class VersionHistoryEngine {
|
|
|
84
84
|
MaxDepth: params.MaxDepth ?? 10,
|
|
85
85
|
ExcludeEntities: params.ExcludeEntities ?? [],
|
|
86
86
|
};
|
|
87
|
-
captureResult = await this.
|
|
87
|
+
captureResult = await this.snapshotBldr.CaptureRecord(labelId, params.EntityName, params.RecordKey, params.IncludeDependencies ?? true, walkOptions, contextUser, onProgress);
|
|
88
88
|
break;
|
|
89
89
|
}
|
|
90
90
|
case 'Entity': {
|
|
91
|
-
captureResult = await this.
|
|
91
|
+
captureResult = await this.snapshotBldr.CaptureEntity(labelId, params.EntityName, contextUser);
|
|
92
92
|
break;
|
|
93
93
|
}
|
|
94
94
|
case 'System': {
|
|
95
|
-
captureResult = await this.
|
|
95
|
+
captureResult = await this.snapshotBldr.CaptureSystem(labelId, contextUser);
|
|
96
96
|
break;
|
|
97
97
|
}
|
|
98
98
|
default:
|
|
@@ -135,19 +135,19 @@ export class VersionHistoryEngine {
|
|
|
135
135
|
* Archive a label, marking it as no longer active.
|
|
136
136
|
*/
|
|
137
137
|
async ArchiveLabel(labelId, contextUser) {
|
|
138
|
-
return this.
|
|
138
|
+
return this.labelMgr.ArchiveLabel(labelId, contextUser);
|
|
139
139
|
}
|
|
140
140
|
/**
|
|
141
141
|
* Load a single version label by ID.
|
|
142
142
|
*/
|
|
143
143
|
async GetLabel(labelId, contextUser) {
|
|
144
|
-
return this.
|
|
144
|
+
return this.labelMgr.GetLabel(labelId, contextUser);
|
|
145
145
|
}
|
|
146
146
|
/**
|
|
147
147
|
* Query version labels with optional filters.
|
|
148
148
|
*/
|
|
149
149
|
async GetLabels(filter, contextUser) {
|
|
150
|
-
return this.
|
|
150
|
+
return this.labelMgr.GetLabels(filter, contextUser);
|
|
151
151
|
}
|
|
152
152
|
// =======================================================================
|
|
153
153
|
// Diff operations
|
|
@@ -157,20 +157,20 @@ export class VersionHistoryEngine {
|
|
|
157
157
|
* Returns a structured diff grouped by entity with field-level changes.
|
|
158
158
|
*/
|
|
159
159
|
async DiffLabels(fromLabelId, toLabelId, contextUser) {
|
|
160
|
-
return this.
|
|
160
|
+
return this.differ.DiffLabels(fromLabelId, toLabelId, contextUser);
|
|
161
161
|
}
|
|
162
162
|
/**
|
|
163
163
|
* Compare a version label's state to the current live state.
|
|
164
164
|
* Useful for seeing "what has changed since this label was created?"
|
|
165
165
|
*/
|
|
166
166
|
async DiffLabelToCurrentState(labelId, contextUser) {
|
|
167
|
-
return this.
|
|
167
|
+
return this.differ.DiffLabelToCurrentState(labelId, contextUser);
|
|
168
168
|
}
|
|
169
169
|
/**
|
|
170
170
|
* Get the snapshot of a specific record at a specific label.
|
|
171
171
|
*/
|
|
172
172
|
async GetStateAtLabel(entityName, recordId, labelId, contextUser) {
|
|
173
|
-
return this.
|
|
173
|
+
return this.differ.GetRecordSnapshotAtLabel(entityName, recordId, labelId, contextUser);
|
|
174
174
|
}
|
|
175
175
|
// =======================================================================
|
|
176
176
|
// Restore operations
|
|
@@ -182,7 +182,7 @@ export class VersionHistoryEngine {
|
|
|
182
182
|
* changes in dependency order. Supports dry-run mode for previewing.
|
|
183
183
|
*/
|
|
184
184
|
async RestoreToLabel(labelId, options, contextUser) {
|
|
185
|
-
return this.
|
|
185
|
+
return this.restorer.RestoreToLabel(labelId, options, contextUser);
|
|
186
186
|
}
|
|
187
187
|
// =======================================================================
|
|
188
188
|
// Dependency graph operations
|
|
@@ -192,7 +192,7 @@ export class VersionHistoryEngine {
|
|
|
192
192
|
* dependent (child) records through One-To-Many relationships.
|
|
193
193
|
*/
|
|
194
194
|
async GetRecordDependencyGraph(entityName, recordKey, options, contextUser) {
|
|
195
|
-
return this.
|
|
195
|
+
return this.graphWalker.WalkDependents(entityName, recordKey, options, contextUser);
|
|
196
196
|
}
|
|
197
197
|
}
|
|
198
198
|
//# sourceMappingURL=VersionHistoryEngine.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VersionHistoryEngine.js","sourceRoot":"","sources":["../src/VersionHistoryEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,QAAQ,EACR,SAAS,GACZ,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"VersionHistoryEngine.js","sourceRoot":"","sources":["../src/VersionHistoryEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,QAAQ,EACR,SAAS,GACZ,MAAM,sBAAsB,CAAC;AAY9B,OAAO,EAAE,qBAAqB,EAA+B,MAAM,8BAA8B,CAAC;AAClG,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,OAAO,oBAAoB;IAAjC;QACY,aAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;QAC9B,iBAAY,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,gBAAW,GAAG,IAAI,qBAAqB,EAAE,CAAC;QAC1C,WAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC1B,aAAQ,GAAG,IAAI,aAAa,EAAE,CAAC;IAkN3C,CAAC;IAhNG,0EAA0E;IAC1E,mBAAmB;IACnB,0EAA0E;IAE1E;;;;;;;OAOG;IACI,KAAK,CAAC,WAAW,CACpB,MAAyB,EACzB,WAAqB;QAErB,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QAErC,qBAAqB;QACrB,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE;YAC1B,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,2BAA2B;YACpC,UAAU,EAAE,CAAC;SAChB,CAAC,CAAC;QAEH,0BAA0B;QAC1B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACnE,MAAM,OAAO,GAAG,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,QAAQ,CAAC;QAEvC,wBAAwB;QACxB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,sCAAsC;QACtC,IAAI,aAA4B,CAAC;QAEjC,uEAAuE;QACvE,4CAA4C;QAC5C,QAAQ,KAAK,EAAE,CAAC;YACZ,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACZ,MAAM,WAAW,GAAgB;oBAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,EAAE;oBAC/B,eAAe,EAAE,MAAM,CAAC,eAAe,IAAI,EAAE;iBAChD,CAAC;gBACF,aAAa,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,CACjD,OAAO,EACP,MAAM,CAAC,UAAW,EAClB,MAAM,CAAC,SAAU,EACjB,MAAM,CAAC,mBAAmB,IAAI,IAAI,EAClC,WAAW,EACX,WAAW,EACX,UAAU,CACb,CAAC;gBACF,MAAM;YACV,CAAC;YACD,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACZ,aAAa,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,CACjD,OAAO,EACP,MAAM,CAAC,UAAW,EAClB,WAAW,CACd,CAAC;gBACF,MAAM;YACV,CAAC;YACD,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACZ,aAAa,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;gBAC5E,MAAM;YACV,CAAC;YACD;gBACI,MAAM,IAAI,KAAK,CAAC,kBAAkB,KAAK,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,mBAAmB;QACnB,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE;YAC1B,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,yBAAyB,aAAa,CAAC,aAAa,YAAY;YACzE,UAAU,EAAE,EAAE;SACjB,CAAC,CAAC;QAEH,4BAA4B;QAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAC1C,KAAK,CAAC,SAAS,GAAG,aAAa,CAAC,aAAa,CAAC;QAC9C,KAAK,CAAC,kBAAkB,GAAG,UAAU,CAAC;QACtC,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QAEnB,iBAAiB;QACjB,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE;YAC1B,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,sBAAsB,aAAa,CAAC,aAAa,aAAa,UAAU,IAAI;YACrF,UAAU,EAAE,GAAG;SAClB,CAAC,CAAC;QAEH,SAAS,CACL,0BAA0B,MAAM,CAAC,IAAI,kBAAkB,aAAa,CAAC,aAAa,SAAS;YAC3F,MAAM,UAAU,OAAO,aAAa,CAAC,yBAAyB,uBAAuB,CACxF,CAAC;QAEF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC;IAC1D,CAAC;IAED,uDAAuD;IAC/C,YAAY,CAChB,QAAiD,EACjD,MAAkK;QAElK,IAAI,QAAQ,EAAE,CAAC;YACX,IAAI,CAAC;gBACD,QAAQ,CAAC,MAAM,CAAC,CAAC;YACrB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,8CAA8C;gBAC9C,QAAQ,CAAC,4CAA4C,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACvG,CAAC;QACL,CAAC;IACL,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,YAAY,CAAC,OAAe,EAAE,WAAqB;QAC5D,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,QAAQ,CAAC,OAAe,EAAE,WAAqB;QACxD,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,SAAS,CAAC,MAAmB,EAAE,WAAqB;QAC7D,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACxD,CAAC;IAED,0EAA0E;IAC1E,kBAAkB;IAClB,0EAA0E;IAE1E;;;OAGG;IACI,KAAK,CAAC,UAAU,CACnB,WAAmB,EACnB,SAAiB,EACjB,WAAqB;QAErB,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IACvE,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,uBAAuB,CAChC,OAAe,EACf,WAAqB;QAErB,OAAO,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACrE,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,eAAe,CACxB,UAAkB,EAClB,QAAgB,EAChB,OAAe,EACf,WAAqB;QAErB,OAAO,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IAC5F,CAAC;IAED,0EAA0E;IAC1E,qBAAqB;IACrB,0EAA0E;IAE1E;;;;;OAKG;IACI,KAAK,CAAC,cAAc,CACvB,OAAe,EACf,OAAuB,EACvB,WAAqB;QAErB,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IACvE,CAAC;IAED,0EAA0E;IAC1E,8BAA8B;IAC9B,0EAA0E;IAE1E;;;OAGG;IACI,KAAK,CAAC,wBAAwB,CACjC,UAAkB,EAClB,SAAuB,EACvB,OAAoB,EACpB,WAAqB;QAErB,OAAO,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IACxF,CAAC;CACJ"}
|
package/dist/constants.d.ts
CHANGED
|
@@ -9,64 +9,21 @@ export declare const ENTITY_VERSION_LABEL_ITEMS = "MJ: Version Label Items";
|
|
|
9
9
|
export declare const ENTITY_VERSION_LABEL_RESTORES = "MJ: Version Label Restores";
|
|
10
10
|
/** Entity name for Record Changes */
|
|
11
11
|
export declare const ENTITY_RECORD_CHANGES = "MJ: Record Changes";
|
|
12
|
-
|
|
13
|
-
* Escape a string value for safe inclusion in a SQL filter.
|
|
14
|
-
*
|
|
15
|
-
* @deprecated Import `EscapeSQLString` from `@memberjunction/global` instead — it is the one
|
|
16
|
-
* canonical escaper. This alias remains only so external callers do not break; it will be
|
|
17
|
-
* removed in the next major.
|
|
18
|
-
*/
|
|
19
|
-
export declare const escapeSqlString: (value: string | null | undefined) => string;
|
|
20
|
-
/**
|
|
21
|
-
* Build a safe SQL equality filter: FieldName = 'escapedValue'
|
|
22
|
-
*/
|
|
23
|
-
export declare function sqlEquals(fieldName: string, value: string): string;
|
|
24
|
-
/**
|
|
25
|
-
* Build a safe SQL LIKE filter: FieldName LIKE '%escapedValue%'
|
|
26
|
-
*
|
|
27
|
-
* NOTE: `EscapeSQLString` neutralises quotes but NOT LIKE metacharacters — a `value` containing
|
|
28
|
-
* `%`, `_` or `[` is still interpreted as a wildcard pattern rather than as literal text. That is
|
|
29
|
-
* the long-standing behaviour of this helper and callers depend on it. If you need a literal
|
|
30
|
-
* match, escape the metacharacters and add `ESCAPE '\'` (see `escapeLikeValue()` in
|
|
31
|
-
* `@memberjunction/core`, `generic/runQuerySQLFilterImplementations.ts`).
|
|
32
|
-
*/
|
|
33
|
-
export declare function sqlContains(fieldName: string, value: string): string;
|
|
34
|
-
/**
|
|
35
|
-
* Build a safe SQL IN filter: FieldName IN ('a','b','c')
|
|
36
|
-
*/
|
|
37
|
-
export declare function sqlIn(fieldName: string, values: string[]): string;
|
|
38
|
-
/**
|
|
39
|
-
* Build a safe SQL NOT IN filter: FieldName NOT IN ('a','b','c')
|
|
40
|
-
*/
|
|
41
|
-
export declare function sqlNotIn(fieldName: string, values: string[]): string;
|
|
42
|
-
import { CompositeKey, EntityInfo } from '@memberjunction/core';
|
|
43
|
-
/**
|
|
44
|
-
* Build a CompositeKey from entity metadata and a record data object.
|
|
45
|
-
* Shared utility to avoid duplication across Walker and SnapshotBuilder.
|
|
46
|
-
*/
|
|
47
|
-
export declare function buildCompositeKeyFromRecord(entityInfo: EntityInfo, record: Record<string, unknown>): CompositeKey;
|
|
48
|
-
/**
|
|
49
|
-
* Build a CompositeKey for loading from a stored record id. Accepts the bare value of a
|
|
50
|
-
* single-column key (any column name) or the `Field1|Value1||Field2|Value2` segment Record
|
|
51
|
-
* Changes / Version Label Items persist, so composite keys load too.
|
|
52
|
-
*/
|
|
53
|
-
export declare function buildPrimaryKeyForLoad(entityInfo: EntityInfo, value: string): CompositeKey;
|
|
54
|
-
/**
|
|
55
|
-
* Build a CompositeKey for an entity that we know uses 'ID' as PK.
|
|
56
|
-
* Only for MJ system entities (VersionLabel, VersionLabelItem, etc.)
|
|
57
|
-
* where we control the schema and know the PK is always 'ID'.
|
|
58
|
-
*/
|
|
59
|
-
export declare function buildIdKey(id: string): CompositeKey;
|
|
12
|
+
export { escapeSqlString, SqlEquals, sqlEquals, SqlContains, sqlContains, SqlIn, sqlIn, SqlNotIn, sqlNotIn, BuildCompositeKeyFromRecord, buildCompositeKeyFromRecord, BuildPrimaryKeyForLoad, buildPrimaryKeyForLoad, BuildIdKey, buildIdKey, } from '@memberjunction/record-graph';
|
|
60
13
|
import { BaseEntity, IMetadataProvider, UserInfo } from '@memberjunction/core';
|
|
61
14
|
/**
|
|
62
15
|
* Load a FullRecordJSON snapshot from a RecordChange entry.
|
|
63
16
|
* Returns parsed JSON or null on failure.
|
|
64
17
|
* Shared by DiffEngine and RestoreEngine.
|
|
65
18
|
*/
|
|
19
|
+
export declare function LoadRecordChangeSnapshot(recordChangeId: string, contextUser: UserInfo): Promise<Record<string, unknown> | null>;
|
|
20
|
+
/** @deprecated Use {@link LoadRecordChangeSnapshot}. */
|
|
66
21
|
export declare function loadRecordChangeSnapshot(recordChangeId: string, contextUser: UserInfo): Promise<Record<string, unknown> | null>;
|
|
67
22
|
/**
|
|
68
23
|
* Load a strongly-typed entity by its ID using InnerLoad with the entity's actual PK name.
|
|
69
24
|
* Returns null if not found or on error.
|
|
70
25
|
*/
|
|
26
|
+
export declare function LoadEntityById<T extends BaseEntity = BaseEntity>(entityName: string, id: string, contextUser: UserInfo, provider?: IMetadataProvider): Promise<T | null>;
|
|
27
|
+
/** @deprecated Use {@link LoadEntityById}. */
|
|
71
28
|
export declare function loadEntityById<T extends BaseEntity = BaseEntity>(entityName: string, id: string, contextUser: UserInfo, provider?: IMetadataProvider): Promise<T | null>;
|
|
72
29
|
//# sourceMappingURL=constants.d.ts.map
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,qCAAqC;AACrC,eAAO,MAAM,qBAAqB,uBAAuB,CAAC;AAE1D,0CAA0C;AAC1C,eAAO,MAAM,0BAA0B,4BAA4B,CAAC;AAEpE,6CAA6C;AAC7C,eAAO,MAAM,6BAA6B,+BAA+B,CAAC;AAE1E,qCAAqC;AACrC,eAAO,MAAM,qBAAqB,uBAAuB,CAAC;AAO1D,OAAO,EACH,eAAe,EACf,SAAS,EACT,SAAS,EACT,WAAW,EACX,WAAW,EACX,KAAK,EACL,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,2BAA2B,EAC3B,2BAA2B,EAC3B,sBAAsB,EACtB,sBAAsB,EACtB,UAAU,EACV,UAAU,GACb,MAAM,8BAA8B,CAAC;AAOtC,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAqB,QAAQ,EAAY,MAAM,sBAAsB,CAAC;AAE5G;;;;GAIG;AACH,wBAAsB,wBAAwB,CAC1C,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,QAAQ,GACtB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAmCzC;AAED,wDAAwD;AACxD,wBAAsB,wBAAwB,CAC1C,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,QAAQ,GACtB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAEzC;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,EAClE,UAAU,EAAE,MAAM,EAClB,EAAE,EAAE,MAAM,EACV,WAAW,EAAE,QAAQ,EACrB,QAAQ,CAAC,EAAE,iBAAiB,GAC7B,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAanB;AAED,8CAA8C;AAC9C,wBAAsB,cAAc,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,EAClE,UAAU,EAAE,MAAM,EAClB,EAAE,EAAE,MAAM,EACV,WAAW,EAAE,QAAQ,EACrB,QAAQ,CAAC,EAAE,iBAAiB,GAC7B,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAEnB"}
|