@memberjunction/record-graph 0.0.1-seed.1 → 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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DependencyGraphWalker.js","sourceRoot":"","sources":["../src/DependencyGraphWalker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { EntityInfo, EntityRelationshipInfo } from '@memberjunction/core';
2
+ export interface ResolvedCollectionInfo {
3
+ relatedEntity: string;
4
+ joinField: string;
5
+ collectionName: string;
6
+ load?: string;
7
+ onRemove?: string;
8
+ orderBy?: string;
9
+ relationship: EntityRelationshipInfo;
10
+ }
11
+ /**
12
+ * Resolves a collection name to its matching relationship on the entity.
13
+ * Uses strict rule strength to ensure unambiguous, deterministic resolution:
14
+ * 1. Explicit collection name in RelatedRecordCollection JSON ("Name": "...")
15
+ * 2. Relationship DisplayName
16
+ * 3. RelatedEntity full name
17
+ * 4. Stripped RelatedEntity name (singular / plural variations)
18
+ *
19
+ * Guaranteed contract: Returns non-null ONLY when a relationship exists AND
20
+ * has a valid RelatedEntityJoinField.
21
+ */
22
+ export declare function ResolveCollectionRelationship(entityInfo: EntityInfo | null | undefined, colName: string): ResolvedCollectionInfo | null;
23
+ /** @deprecated Use {@link ResolveCollectionRelationship}. */
24
+ export declare function resolveCollectionRelationship(entityInfo: EntityInfo | null | undefined, colName: string): ResolvedCollectionInfo | null;
25
+ //# sourceMappingURL=collection-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collection-resolver.d.ts","sourceRoot":"","sources":["../src/collection-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAE/E,MAAM,WAAW,sBAAsB;IACrC,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,sBAAsB,CAAC;CACtC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,6BAA6B,CAC3C,UAAU,EAAE,UAAU,GAAG,IAAI,GAAG,SAAS,EACzC,OAAO,EAAE,MAAM,GACd,sBAAsB,GAAG,IAAI,CAoH/B;AAED,6DAA6D;AAC7D,wBAAgB,6BAA6B,CAC3C,UAAU,EAAE,UAAU,GAAG,IAAI,GAAG,SAAS,EACzC,OAAO,EAAE,MAAM,GACd,sBAAsB,GAAG,IAAI,CAE/B"}
@@ -0,0 +1,120 @@
1
+ /**
2
+ * Resolves a collection name to its matching relationship on the entity.
3
+ * Uses strict rule strength to ensure unambiguous, deterministic resolution:
4
+ * 1. Explicit collection name in RelatedRecordCollection JSON ("Name": "...")
5
+ * 2. Relationship DisplayName
6
+ * 3. RelatedEntity full name
7
+ * 4. Stripped RelatedEntity name (singular / plural variations)
8
+ *
9
+ * Guaranteed contract: Returns non-null ONLY when a relationship exists AND
10
+ * has a valid RelatedEntityJoinField.
11
+ */
12
+ export function ResolveCollectionRelationship(entityInfo, colName) {
13
+ if (!entityInfo?.RelatedEntities || !colName)
14
+ return null;
15
+ const target = colName.trim().toLowerCase();
16
+ const rels = entityInfo.RelatedEntities;
17
+ let matchedRel = null;
18
+ let parsedConfig = null;
19
+ // Tier 1: Explicit Name in RelatedRecordCollection JSON
20
+ const tier1Matches = [];
21
+ for (const rel of rels) {
22
+ if (rel.RelatedRecordCollection) {
23
+ try {
24
+ const parsed = typeof rel.RelatedRecordCollection === "string"
25
+ ? JSON.parse(rel.RelatedRecordCollection)
26
+ : rel.RelatedRecordCollection;
27
+ if (parsed && typeof parsed["Name"] === "string" && parsed["Name"].trim().toLowerCase() === target) {
28
+ tier1Matches.push({ rel, config: parsed });
29
+ }
30
+ }
31
+ catch (err) {
32
+ console.warn(`collection-resolver: malformed RelatedRecordCollection JSON on entity '${entityInfo.Name}' relationship to '${rel.RelatedEntity}': ${err instanceof Error ? err.message : String(err)}`);
33
+ }
34
+ }
35
+ }
36
+ if (tier1Matches.length > 1) {
37
+ throw new Error(`Ambiguous collection resolution for '${colName}' on entity '${entityInfo.Name}': matches multiple relationships (${tier1Matches.map((m) => m.rel.RelatedEntity).join(', ')}) at Tier 1 (explicit Name).`);
38
+ }
39
+ else if (tier1Matches.length === 1 && tier1Matches[0]) {
40
+ matchedRel = tier1Matches[0].rel;
41
+ parsedConfig = tier1Matches[0].config;
42
+ }
43
+ // Tier 2: DisplayName
44
+ if (!matchedRel) {
45
+ const tier2Matches = [];
46
+ for (const rel of rels) {
47
+ if (rel.DisplayName && rel.DisplayName.trim().toLowerCase() === target) {
48
+ tier2Matches.push(rel);
49
+ }
50
+ }
51
+ if (tier2Matches.length > 1) {
52
+ throw new Error(`Ambiguous collection resolution for '${colName}' on entity '${entityInfo.Name}': matches multiple relationships (${tier2Matches.map((m) => m.RelatedEntity).join(', ')}) at Tier 2 (DisplayName).`);
53
+ }
54
+ else if (tier2Matches.length === 1 && tier2Matches[0]) {
55
+ matchedRel = tier2Matches[0];
56
+ }
57
+ }
58
+ // Tier 3: Full RelatedEntity Name
59
+ if (!matchedRel) {
60
+ const tier3Matches = [];
61
+ for (const rel of rels) {
62
+ if (rel.RelatedEntity && rel.RelatedEntity.trim().toLowerCase() === target) {
63
+ tier3Matches.push(rel);
64
+ }
65
+ }
66
+ if (tier3Matches.length > 1) {
67
+ throw new Error(`Ambiguous collection resolution for '${colName}' on entity '${entityInfo.Name}': matches multiple relationships (${tier3Matches.map((m) => m.RelatedEntity).join(', ')}) at Tier 3 (Full RelatedEntity Name).`);
68
+ }
69
+ else if (tier3Matches.length === 1 && tier3Matches[0]) {
70
+ matchedRel = tier3Matches[0];
71
+ }
72
+ }
73
+ // Tier 4: Stripped RelatedEntity Name (with plural/singular tolerance)
74
+ if (!matchedRel) {
75
+ const tier4Matches = [];
76
+ for (const rel of rels) {
77
+ const stripped = rel.RelatedEntity?.replace(/^.*:\s*/, "").replace(/\s+/g, "");
78
+ if (stripped) {
79
+ const s = stripped.toLowerCase();
80
+ if (s === target || s + "s" === target || target + "s" === s) {
81
+ tier4Matches.push(rel);
82
+ }
83
+ }
84
+ }
85
+ if (tier4Matches.length > 1) {
86
+ throw new Error(`Ambiguous collection resolution for '${colName}' on entity '${entityInfo.Name}': matches multiple relationships (${tier4Matches.map((m) => m.RelatedEntity).join(', ')}) at Tier 4 (Stripped Name).`);
87
+ }
88
+ else if (tier4Matches.length === 1 && tier4Matches[0]) {
89
+ matchedRel = tier4Matches[0];
90
+ }
91
+ }
92
+ if (!matchedRel || !matchedRel.RelatedEntity || !matchedRel.RelatedEntityJoinField) {
93
+ return null;
94
+ }
95
+ // Parse options if not parsed yet
96
+ if (!parsedConfig && matchedRel.RelatedRecordCollection) {
97
+ try {
98
+ parsedConfig = typeof matchedRel.RelatedRecordCollection === "string"
99
+ ? JSON.parse(matchedRel.RelatedRecordCollection)
100
+ : matchedRel.RelatedRecordCollection;
101
+ }
102
+ catch {
103
+ parsedConfig = null;
104
+ }
105
+ }
106
+ return {
107
+ relatedEntity: matchedRel.RelatedEntity,
108
+ joinField: matchedRel.RelatedEntityJoinField,
109
+ collectionName: colName,
110
+ load: typeof parsedConfig?.["Load"] === "string" ? parsedConfig["Load"] : "explicit",
111
+ onRemove: typeof parsedConfig?.["OnRemove"] === "string" ? parsedConfig["OnRemove"] : "delete",
112
+ orderBy: typeof parsedConfig?.["OrderBy"] === "string" ? parsedConfig["OrderBy"] : undefined,
113
+ relationship: matchedRel,
114
+ };
115
+ }
116
+ /** @deprecated Use {@link ResolveCollectionRelationship}. */
117
+ export function resolveCollectionRelationship(entityInfo, colName) {
118
+ return ResolveCollectionRelationship(entityInfo, colName);
119
+ }
120
+ //# sourceMappingURL=collection-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collection-resolver.js","sourceRoot":"","sources":["../src/collection-resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Patterns matching system / infrastructure foreign key fields that should not be followed
3
+ * as standard entity dependencies during forward traversal (e.g., audit fields, context user).
4
+ */
5
+ export declare const SYSTEM_FK_SKIP_PATTERNS: readonly RegExp[];
6
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,uBAAuB,EAAE,SAAS,MAAM,EAWpD,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Patterns matching system / infrastructure foreign key fields that should not be followed
3
+ * as standard entity dependencies during forward traversal (e.g., audit fields, context user).
4
+ */
5
+ export const SYSTEM_FK_SKIP_PATTERNS = [
6
+ /^CreatedByUserID$/i,
7
+ /^UpdatedByUserID$/i,
8
+ /^UserID$/i,
9
+ /^ContextUser(ID)?$/i,
10
+ /^ModifiedBy(UserID)?$/i,
11
+ /^CreatedBy$/i,
12
+ /^UpdatedBy$/i,
13
+ /^Owner(ID|UserID)?$/i,
14
+ /^AssignedTo(ID|UserID)?$/i,
15
+ /^EntityID$/i, // polymorphic entity reference, not a real FK to follow
16
+ ];
17
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAsB;IACtD,oBAAoB;IACpB,oBAAoB;IACpB,WAAW;IACX,qBAAqB;IACrB,wBAAwB;IACxB,cAAc;IACd,cAAc;IACd,sBAAsB;IACtB,2BAA2B;IAC3B,aAAa,EAAG,wDAAwD;CAC3E,CAAC"}
@@ -0,0 +1,9 @@
1
+ export * from './types.js';
2
+ export * from './constants.js';
3
+ export * from './sql.js';
4
+ export * from './keys.js';
5
+ export * from './links.js';
6
+ export * from './sort.js';
7
+ export * from './collection-resolver.js';
8
+ export * from './DependencyGraphWalker.js';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,9 @@
1
+ export * from './types.js';
2
+ export * from './constants.js';
3
+ export * from './sql.js';
4
+ export * from './keys.js';
5
+ export * from './links.js';
6
+ export * from './sort.js';
7
+ export * from './collection-resolver.js';
8
+ export * from './DependencyGraphWalker.js';
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC"}
package/dist/keys.d.ts ADDED
@@ -0,0 +1,23 @@
1
+ import { CompositeKey, EntityInfo } from '@memberjunction/core';
2
+ /**
3
+ * Build a CompositeKey from entity metadata and a record data object.
4
+ */
5
+ export declare function BuildCompositeKeyFromRecord(entityInfo: EntityInfo, record: Record<string, unknown>): CompositeKey;
6
+ /**
7
+ * Build a CompositeKey for loading from a stored record id. Accepts the bare value of a
8
+ * single-column key (any column name) or the `Field1|Value1||Field2|Value2` segment Record
9
+ * Changes / Version Label Items persist, so composite keys load too.
10
+ */
11
+ export declare function BuildPrimaryKeyForLoad(entityInfo: EntityInfo, value: string): CompositeKey;
12
+ /**
13
+ * Build a CompositeKey for an entity that we know uses 'ID' as PK.
14
+ * Documented for MJ system entities only where the key is ID.
15
+ */
16
+ export declare function BuildIdKey(id: string): CompositeKey;
17
+ /** @deprecated Use {@link BuildCompositeKeyFromRecord}. */
18
+ export declare function buildCompositeKeyFromRecord(entityInfo: EntityInfo, record: Record<string, unknown>): CompositeKey;
19
+ /** @deprecated Use {@link BuildPrimaryKeyForLoad}. */
20
+ export declare function buildPrimaryKeyForLoad(entityInfo: EntityInfo, value: string): CompositeKey;
21
+ /** @deprecated Use {@link BuildIdKey}. */
22
+ export declare function buildIdKey(id: string): CompositeKey;
23
+ //# sourceMappingURL=keys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../src/keys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE;;GAEG;AACH,wBAAgB,2BAA2B,CACvC,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,YAAY,CAEd;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAClC,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,MAAM,GACd,YAAY,CAEd;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,CAEnD;AAED,2DAA2D;AAC3D,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,YAAY,CAEjH;AAED,sDAAsD;AACtD,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,YAAY,CAE1F;AAED,0CAA0C;AAC1C,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,CAEnD"}
package/dist/keys.js ADDED
@@ -0,0 +1,35 @@
1
+ import { CompositeKey } from '@memberjunction/core';
2
+ /**
3
+ * Build a CompositeKey from entity metadata and a record data object.
4
+ */
5
+ export function BuildCompositeKeyFromRecord(entityInfo, record) {
6
+ return CompositeKey.FromEntityRecord(entityInfo, record);
7
+ }
8
+ /**
9
+ * Build a CompositeKey for loading from a stored record id. Accepts the bare value of a
10
+ * single-column key (any column name) or the `Field1|Value1||Field2|Value2` segment Record
11
+ * Changes / Version Label Items persist, so composite keys load too.
12
+ */
13
+ export function BuildPrimaryKeyForLoad(entityInfo, value) {
14
+ return CompositeKey.FromURLSegment(entityInfo, value);
15
+ }
16
+ /**
17
+ * Build a CompositeKey for an entity that we know uses 'ID' as PK.
18
+ * Documented for MJ system entities only where the key is ID.
19
+ */
20
+ export function BuildIdKey(id) {
21
+ return CompositeKey.FromID(id); // first-pk-ok: caller asserts entity uses single ID column
22
+ }
23
+ /** @deprecated Use {@link BuildCompositeKeyFromRecord}. */
24
+ export function buildCompositeKeyFromRecord(entityInfo, record) {
25
+ return BuildCompositeKeyFromRecord(entityInfo, record);
26
+ }
27
+ /** @deprecated Use {@link BuildPrimaryKeyForLoad}. */
28
+ export function buildPrimaryKeyForLoad(entityInfo, value) {
29
+ return BuildPrimaryKeyForLoad(entityInfo, value);
30
+ }
31
+ /** @deprecated Use {@link BuildIdKey}. */
32
+ export function buildIdKey(id) {
33
+ return BuildIdKey(id);
34
+ }
35
+ //# sourceMappingURL=keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keys.js","sourceRoot":"","sources":["../src/keys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAc,MAAM,sBAAsB,CAAC;AAEhE;;GAEG;AACH,MAAM,UAAU,2BAA2B,CACvC,UAAsB,EACtB,MAA+B;IAE/B,OAAO,YAAY,CAAC,gBAAgB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAC7D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAClC,UAAsB,EACtB,KAAa;IAEb,OAAO,YAAY,CAAC,cAAc,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;AAC1D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,EAAU;IACjC,OAAO,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,2DAA2D;AAC/F,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,2BAA2B,CAAC,UAAsB,EAAE,MAA+B;IAC/F,OAAO,2BAA2B,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAC3D,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,sBAAsB,CAAC,UAAsB,EAAE,KAAa;IACxE,OAAO,sBAAsB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;AACrD,CAAC;AAED,0CAA0C;AAC1C,MAAM,UAAU,UAAU,CAAC,EAAU;IACjC,OAAO,UAAU,CAAC,EAAE,CAAC,CAAC;AAC1B,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { CompositeKey } from '@memberjunction/core';
2
+ export type LinkKind = 'hard' | 'soft';
3
+ /**
4
+ * Resolves the value to write into a foreign key / pointer column when linking to a target record.
5
+ *
6
+ * - 'hard' (or isSoftLink=false): returns the target record's primary key value (for single-column PKs, GetValueByIndex(0)).
7
+ * - 'soft' (or isSoftLink=true): returns the canonical prefixed polymorphic encoding produced by `CompositeKey.ToRecordID()`.
8
+ *
9
+ * @param kindOrIsSoft 'hard' | 'soft' string or boolean (true = soft, false = hard)
10
+ * @param targetKey The target record's CompositeKey
11
+ */
12
+ export declare function ResolveLinkValue(kindOrIsSoft: LinkKind | boolean, targetKey: CompositeKey): unknown;
13
+ //# sourceMappingURL=links.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"links.d.ts","sourceRoot":"","sources":["../src/links.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAEvC;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,QAAQ,GAAG,OAAO,EAAE,SAAS,EAAE,YAAY,GAAG,OAAO,CAGnG"}
package/dist/links.js ADDED
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Resolves the value to write into a foreign key / pointer column when linking to a target record.
3
+ *
4
+ * - 'hard' (or isSoftLink=false): returns the target record's primary key value (for single-column PKs, GetValueByIndex(0)).
5
+ * - 'soft' (or isSoftLink=true): returns the canonical prefixed polymorphic encoding produced by `CompositeKey.ToRecordID()`.
6
+ *
7
+ * @param kindOrIsSoft 'hard' | 'soft' string or boolean (true = soft, false = hard)
8
+ * @param targetKey The target record's CompositeKey
9
+ */
10
+ export function ResolveLinkValue(kindOrIsSoft, targetKey) {
11
+ const isSoft = typeof kindOrIsSoft === 'boolean' ? kindOrIsSoft : kindOrIsSoft === 'soft';
12
+ return isSoft ? targetKey.ToRecordID() : targetKey.GetValueByIndex(0);
13
+ }
14
+ //# sourceMappingURL=links.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"links.js","sourceRoot":"","sources":["../src/links.ts"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAAC,YAAgC,EAAE,SAAuB;IACtF,MAAM,MAAM,GAAG,OAAO,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,KAAK,MAAM,CAAC;IAC1F,OAAO,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;AAC1E,CAAC"}
package/dist/sort.d.ts ADDED
@@ -0,0 +1,23 @@
1
+ import { type IMetadataProvider } from '@memberjunction/core';
2
+ import type { DependencyNode } from './types.js';
3
+ /**
4
+ * Sort items by entity dependency order so parent entities appear before child entities
5
+ * that reference them via foreign keys.
6
+ *
7
+ * Lifted and generalized from VersionHistory's RestoreEngine.
8
+ *
9
+ * @param items Array of items to sort
10
+ * @param getEntityID Function mapping an item to its Entity ID
11
+ * @param provider Optional metadata provider override (defaults to Metadata.Provider)
12
+ */
13
+ export declare function SortByEntityDependencyOrder<T>(items: T[], getEntityID: (item: T) => string, provider?: IMetadataProvider): T[];
14
+ /**
15
+ * Backward-compatibility alias for SortByEntityDependencyOrder.
16
+ */
17
+ export declare const SortEntitiesByDependency: typeof SortByEntityDependencyOrder;
18
+ /**
19
+ * Flatten a dependency tree into a topologically sorted list (breadth-first traversal).
20
+ * Parents appear before their children, ensuring safe restore or clone execution ordering.
21
+ */
22
+ export declare function SortNodesTopologically(root: DependencyNode): DependencyNode[];
23
+ //# sourceMappingURL=sort.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sort.d.ts","sourceRoot":"","sources":["../src/sort.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAExE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CAAC,CAAC,EACzC,KAAK,EAAE,CAAC,EAAE,EACV,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,EAChC,QAAQ,CAAC,EAAE,iBAAiB,GAC7B,CAAC,EAAE,CA4CL;AAED;;GAEG;AACH,eAAO,MAAM,wBAAwB,oCAA8B,CAAC;AAEpE;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,cAAc,GAAG,cAAc,EAAE,CAW7E"}
package/dist/sort.js ADDED
@@ -0,0 +1,73 @@
1
+ import { Metadata } from '@memberjunction/core';
2
+ import { UUIDsEqual } from '@memberjunction/global';
3
+ /**
4
+ * Sort items by entity dependency order so parent entities appear before child entities
5
+ * that reference them via foreign keys.
6
+ *
7
+ * Lifted and generalized from VersionHistory's RestoreEngine.
8
+ *
9
+ * @param items Array of items to sort
10
+ * @param getEntityID Function mapping an item to its Entity ID
11
+ * @param provider Optional metadata provider override (defaults to Metadata.Provider)
12
+ */
13
+ export function SortByEntityDependencyOrder(items, getEntityID, provider) {
14
+ const md = provider ?? Metadata.Provider;
15
+ // Build a map of entityId -> dependency level
16
+ const levelMap = new Map();
17
+ const visited = new Set();
18
+ const computeLevel = (entityId) => {
19
+ if (levelMap.has(entityId))
20
+ return levelMap.get(entityId);
21
+ if (visited.has(entityId))
22
+ return 0; // Cycle — break it
23
+ visited.add(entityId);
24
+ const entityInfo = md.EntityByID(entityId);
25
+ if (!entityInfo) {
26
+ levelMap.set(entityId, 0);
27
+ return 0;
28
+ }
29
+ // Find all FK fields pointing to other entities
30
+ let maxParentLevel = -1;
31
+ for (const field of entityInfo.Fields) {
32
+ if (field.RelatedEntityID && !UUIDsEqual(field.RelatedEntityID, entityId)) {
33
+ const parentLevel = computeLevel(field.RelatedEntityID);
34
+ maxParentLevel = Math.max(maxParentLevel, parentLevel);
35
+ }
36
+ }
37
+ const level = maxParentLevel + 1;
38
+ levelMap.set(entityId, level);
39
+ return level;
40
+ };
41
+ // Compute levels for all entities in the item set
42
+ const entityIds = new Set(items.map(getEntityID));
43
+ for (const entityId of entityIds) {
44
+ computeLevel(entityId);
45
+ }
46
+ // Sort: lower level (parents) first
47
+ return [...items].sort((a, b) => {
48
+ const levelA = levelMap.get(getEntityID(a)) ?? 0;
49
+ const levelB = levelMap.get(getEntityID(b)) ?? 0;
50
+ return levelA - levelB;
51
+ });
52
+ }
53
+ /**
54
+ * Backward-compatibility alias for SortByEntityDependencyOrder.
55
+ */
56
+ export const SortEntitiesByDependency = SortByEntityDependencyOrder;
57
+ /**
58
+ * Flatten a dependency tree into a topologically sorted list (breadth-first traversal).
59
+ * Parents appear before their children, ensuring safe restore or clone execution ordering.
60
+ */
61
+ export function SortNodesTopologically(root) {
62
+ const result = [];
63
+ const queue = [root];
64
+ while (queue.length > 0) {
65
+ const node = queue.shift();
66
+ result.push(node);
67
+ for (const child of node.Children) {
68
+ queue.push(child);
69
+ }
70
+ }
71
+ return result;
72
+ }
73
+ //# sourceMappingURL=sort.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sort.js","sourceRoot":"","sources":["../src/sort.ts"],"names":[],"mappings":"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"}
package/dist/sql.d.ts ADDED
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Escape a string value for safe inclusion in a SQL filter.
3
+ *
4
+ * @deprecated Import `EscapeSQLString` from `@memberjunction/global` instead — it is the one
5
+ * canonical escaper. Kept so callers of the version-history alias do not break.
6
+ */
7
+ export declare const escapeSqlString: (value: string | null | undefined) => string;
8
+ /** Build a safe SQL equality filter: FieldName = 'escapedValue' */
9
+ export declare function SqlEquals(fieldName: string, value: string): string;
10
+ /** @deprecated Use {@link SqlEquals}. */
11
+ export declare function sqlEquals(fieldName: string, value: string): string;
12
+ /** Build a safe SQL LIKE filter: FieldName LIKE '%escapedValue%' */
13
+ export declare function SqlContains(fieldName: string, value: string): string;
14
+ /** @deprecated Use {@link SqlContains}. */
15
+ export declare function sqlContains(fieldName: string, value: string): string;
16
+ /** Build a safe SQL IN filter: FieldName IN ('a','b','c') */
17
+ export declare function SqlIn(fieldName: string, values: string[]): string;
18
+ /** @deprecated Use {@link SqlIn}. */
19
+ export declare function sqlIn(fieldName: string, values: string[]): string;
20
+ /** Build a safe SQL NOT IN filter: FieldName NOT IN ('a','b','c') */
21
+ export declare function SqlNotIn(fieldName: string, values: string[]): string;
22
+ /** @deprecated Use {@link SqlNotIn}. */
23
+ export declare function sqlNotIn(fieldName: string, values: string[]): string;
24
+ //# sourceMappingURL=sql.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sql.d.ts","sourceRoot":"","sources":["../src/sql.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,GAAG,IAAI,GAAG,SAAS,KAAG,MAAgC,CAAC;AAEpG,mEAAmE;AACnE,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAElE;AACD,yCAAyC;AACzC,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAElE;AAED,oEAAoE;AACpE,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEpE;AACD,2CAA2C;AAC3C,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEpE;AAED,6DAA6D;AAC7D,wBAAgB,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAGjE;AACD,qCAAqC;AACrC,wBAAgB,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAEjE;AAED,qEAAqE;AACrE,wBAAgB,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAGpE;AACD,wCAAwC;AACxC,wBAAgB,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAEpE"}
package/dist/sql.js ADDED
@@ -0,0 +1,43 @@
1
+ import { EscapeSQLString } from '@memberjunction/global';
2
+ /**
3
+ * Escape a string value for safe inclusion in a SQL filter.
4
+ *
5
+ * @deprecated Import `EscapeSQLString` from `@memberjunction/global` instead — it is the one
6
+ * canonical escaper. Kept so callers of the version-history alias do not break.
7
+ */
8
+ export const escapeSqlString = (value) => EscapeSQLString(value);
9
+ /** Build a safe SQL equality filter: FieldName = 'escapedValue' */
10
+ export function SqlEquals(fieldName, value) {
11
+ return `${fieldName} = '${EscapeSQLString(value)}'`;
12
+ }
13
+ /** @deprecated Use {@link SqlEquals}. */
14
+ export function sqlEquals(fieldName, value) {
15
+ return SqlEquals(fieldName, value);
16
+ }
17
+ /** Build a safe SQL LIKE filter: FieldName LIKE '%escapedValue%' */
18
+ export function SqlContains(fieldName, value) {
19
+ return `${fieldName} LIKE '%${EscapeSQLString(value)}%'`;
20
+ }
21
+ /** @deprecated Use {@link SqlContains}. */
22
+ export function sqlContains(fieldName, value) {
23
+ return SqlContains(fieldName, value);
24
+ }
25
+ /** Build a safe SQL IN filter: FieldName IN ('a','b','c') */
26
+ export function SqlIn(fieldName, values) {
27
+ const escaped = values.map(v => `'${EscapeSQLString(v)}'`).join(', ');
28
+ return `${fieldName} IN (${escaped})`;
29
+ }
30
+ /** @deprecated Use {@link SqlIn}. */
31
+ export function sqlIn(fieldName, values) {
32
+ return SqlIn(fieldName, values);
33
+ }
34
+ /** Build a safe SQL NOT IN filter: FieldName NOT IN ('a','b','c') */
35
+ export function SqlNotIn(fieldName, values) {
36
+ const escaped = values.map(v => `'${EscapeSQLString(v)}'`).join(', ');
37
+ return `${fieldName} NOT IN (${escaped})`;
38
+ }
39
+ /** @deprecated Use {@link SqlNotIn}. */
40
+ export function sqlNotIn(fieldName, values) {
41
+ return SqlNotIn(fieldName, values);
42
+ }
43
+ //# sourceMappingURL=sql.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sql.js","sourceRoot":"","sources":["../src/sql.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAgC,EAAU,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AAEpG,mEAAmE;AACnE,MAAM,UAAU,SAAS,CAAC,SAAiB,EAAE,KAAa;IACtD,OAAO,GAAG,SAAS,OAAO,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC;AACxD,CAAC;AACD,yCAAyC;AACzC,MAAM,UAAU,SAAS,CAAC,SAAiB,EAAE,KAAa;IACtD,OAAO,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AACvC,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,WAAW,CAAC,SAAiB,EAAE,KAAa;IACxD,OAAO,GAAG,SAAS,WAAW,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC;AAC7D,CAAC;AACD,2CAA2C;AAC3C,MAAM,UAAU,WAAW,CAAC,SAAiB,EAAE,KAAa;IACxD,OAAO,WAAW,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AACzC,CAAC;AAED,6DAA6D;AAC7D,MAAM,UAAU,KAAK,CAAC,SAAiB,EAAE,MAAgB;IACrD,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtE,OAAO,GAAG,SAAS,QAAQ,OAAO,GAAG,CAAC;AAC1C,CAAC;AACD,qCAAqC;AACrC,MAAM,UAAU,KAAK,CAAC,SAAiB,EAAE,MAAgB;IACrD,OAAO,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AACpC,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,QAAQ,CAAC,SAAiB,EAAE,MAAgB;IACxD,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtE,OAAO,GAAG,SAAS,YAAY,OAAO,GAAG,CAAC;AAC9C,CAAC;AACD,wCAAwC;AACxC,MAAM,UAAU,QAAQ,CAAC,SAAiB,EAAE,MAAgB;IACxD,OAAO,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AACvC,CAAC"}