@memberjunction/core 5.28.0 → 5.29.0

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,72 @@
1
+ /**
2
+ * The canonical set of SQL base types MJ recognizes.
3
+ * Used for column typing, formatting decisions, and alignment.
4
+ * Platform-specific mappings live in the SQLDialect package.
5
+ */
6
+ export type SQLBaseType = 'int' | 'bigint' | 'smallint' | 'tinyint' | 'decimal' | 'numeric' | 'float' | 'real' | 'money' | 'smallmoney' | 'nvarchar' | 'varchar' | 'char' | 'nchar' | 'text' | 'ntext' | 'bit' | 'uniqueidentifier' | 'datetime' | 'datetime2' | 'datetimeoffset' | 'date' | 'time' | 'smalldatetime' | 'varbinary' | 'binary' | 'image' | 'xml' | 'json' | 'geography' | 'geometry' | 'sql_variant';
7
+ /**
8
+ * Base column descriptor. The minimum information needed to describe
9
+ * a column of data: what it's called, what type it is, how to display it.
10
+ */
11
+ export declare class ColumnDescriptor {
12
+ /** Field name in the row data — the key used to access the value: row[field] */
13
+ field: string;
14
+ /** Human-readable display name for headers, labels, and tooltips */
15
+ displayName?: string;
16
+ /** SQL base type — source of truth for formatting in MJ */
17
+ sqlBaseType?: SQLBaseType;
18
+ /** Full SQL type with precision/scale: 'decimal(18,2)', 'nvarchar(255)' */
19
+ sqlFullType?: string;
20
+ /** Column width in pixels (hint for renderers) */
21
+ width?: number;
22
+ /** Human-readable description of what this column represents */
23
+ description?: string;
24
+ constructor(field: string);
25
+ }
26
+ /**
27
+ * Column descriptor with MemberJunction entity lineage.
28
+ * Enables entity linking, schema-aware formatting, and agent understanding
29
+ * of where data originates.
30
+ */
31
+ export declare class MJColumnDescriptor extends ColumnDescriptor {
32
+ /** MJ entity name this column originates from (e.g., "Customers") */
33
+ sourceEntity?: string;
34
+ /** Field name in that entity (e.g., "ID", "FirstName") */
35
+ sourceFieldName?: string;
36
+ /** True for calculated expressions: CASE, ROUND, CONCAT, etc. */
37
+ isComputed?: boolean;
38
+ /** True for aggregate functions: SUM, COUNT, AVG, etc. */
39
+ isSummary?: boolean;
40
+ /** Create from a SimpleQueryFieldInfo (bridges legacy component data requirements) */
41
+ static FromSimpleQueryField(field: {
42
+ name: string;
43
+ type?: string;
44
+ sourceEntity?: string;
45
+ sourceFieldName?: string;
46
+ isSummary?: boolean;
47
+ description?: string;
48
+ }): MJColumnDescriptor;
49
+ /** Create from a base ColumnDescriptor + entity lineage */
50
+ static FromColumnDescriptor(col: ColumnDescriptor, entityName: string, sourceFieldName?: string): MJColumnDescriptor;
51
+ }
52
+ /**
53
+ * Column descriptor with full display configuration for grid/table rendering.
54
+ * Most consumers don't need this — it's specific to the grid renderer.
55
+ */
56
+ export declare class GridColumnDescriptor extends MJColumnDescriptor {
57
+ visible: boolean;
58
+ sortable: boolean;
59
+ resizable: boolean;
60
+ reorderable: boolean;
61
+ order: number;
62
+ align?: 'left' | 'center' | 'right';
63
+ pinned?: 'left' | 'right' | null;
64
+ minWidth?: number;
65
+ maxWidth?: number;
66
+ flex?: number;
67
+ /** Create from an MJColumnDescriptor with sensible display defaults */
68
+ static FromMJColumn(col: MJColumnDescriptor, order: number): GridColumnDescriptor;
69
+ /** Strip grid flags, returning just the data-level column info */
70
+ ToMJColumn(): MJColumnDescriptor;
71
+ }
72
+ //# sourceMappingURL=column-descriptors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"column-descriptors.d.ts","sourceRoot":"","sources":["../../src/generic/column-descriptors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,MAAM,WAAW,GACjB,KAAK,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,GACzC,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,YAAY,GACjE,UAAU,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAC5D,KAAK,GACL,kBAAkB,GAClB,UAAU,GAAG,WAAW,GAAG,gBAAgB,GAAG,MAAM,GAAG,MAAM,GAAG,eAAe,GAC/E,WAAW,GAAG,QAAQ,GAAG,OAAO,GAChC,KAAK,GAAG,MAAM,GACd,WAAW,GAAG,UAAU,GACxB,aAAa,CAAC;AAEpB;;;GAGG;AACH,qBAAa,gBAAgB;IACzB,gFAAgF;IAChF,KAAK,EAAE,MAAM,CAAC;IAEd,oEAAoE;IACpE,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,2DAA2D;IAC3D,WAAW,CAAC,EAAE,WAAW,CAAC;IAE1B,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,gEAAgE;IAChE,WAAW,CAAC,EAAE,MAAM,CAAC;gBAET,KAAK,EAAE,MAAM;CAG5B;AAED;;;;GAIG;AACH,qBAAa,kBAAmB,SAAQ,gBAAgB;IACpD,qEAAqE;IACrE,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,0DAA0D;IAC1D,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,iEAAiE;IACjE,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,0DAA0D;IAC1D,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,sFAAsF;IACtF,MAAM,CAAC,oBAAoB,CAAC,KAAK,EAAE;QAC/B,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC;KACxB,GAAG,kBAAkB;IAUtB,2DAA2D;IAC3D,MAAM,CAAC,oBAAoB,CACvB,GAAG,EAAE,gBAAgB,EACrB,UAAU,EAAE,MAAM,EAClB,eAAe,CAAC,EAAE,MAAM,GACzB,kBAAkB;CAOxB;AAED;;;GAGG;AACH,qBAAa,oBAAqB,SAAQ,kBAAkB;IACxD,OAAO,EAAE,OAAO,CAAQ;IACxB,QAAQ,EAAE,OAAO,CAAQ;IACzB,SAAS,EAAE,OAAO,CAAQ;IAC1B,WAAW,EAAE,OAAO,CAAQ;IAC5B,KAAK,EAAE,MAAM,CAAK;IAClB,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,uEAAuE;IACvE,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,GAAG,oBAAoB;IAOjF,kEAAkE;IAClE,UAAU,IAAI,kBAAkB;CAanC"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Base column descriptor. The minimum information needed to describe
3
+ * a column of data: what it's called, what type it is, how to display it.
4
+ */
5
+ export class ColumnDescriptor {
6
+ constructor(field) {
7
+ this.field = field;
8
+ }
9
+ }
10
+ /**
11
+ * Column descriptor with MemberJunction entity lineage.
12
+ * Enables entity linking, schema-aware formatting, and agent understanding
13
+ * of where data originates.
14
+ */
15
+ export class MJColumnDescriptor extends ColumnDescriptor {
16
+ /** Create from a SimpleQueryFieldInfo (bridges legacy component data requirements) */
17
+ static FromSimpleQueryField(field) {
18
+ const result = new MJColumnDescriptor(field.name);
19
+ result.sqlBaseType = field.type;
20
+ result.sourceEntity = field.sourceEntity;
21
+ result.sourceFieldName = field.sourceFieldName;
22
+ result.isSummary = field.isSummary;
23
+ result.description = field.description;
24
+ return result;
25
+ }
26
+ /** Create from a base ColumnDescriptor + entity lineage */
27
+ static FromColumnDescriptor(col, entityName, sourceFieldName) {
28
+ const result = new MJColumnDescriptor(col.field);
29
+ Object.assign(result, col);
30
+ result.sourceEntity = entityName;
31
+ result.sourceFieldName = sourceFieldName ?? col.field;
32
+ return result;
33
+ }
34
+ }
35
+ /**
36
+ * Column descriptor with full display configuration for grid/table rendering.
37
+ * Most consumers don't need this — it's specific to the grid renderer.
38
+ */
39
+ export class GridColumnDescriptor extends MJColumnDescriptor {
40
+ constructor() {
41
+ super(...arguments);
42
+ this.visible = true;
43
+ this.sortable = true;
44
+ this.resizable = true;
45
+ this.reorderable = true;
46
+ this.order = 0;
47
+ }
48
+ /** Create from an MJColumnDescriptor with sensible display defaults */
49
+ static FromMJColumn(col, order) {
50
+ const result = new GridColumnDescriptor(col.field);
51
+ Object.assign(result, col);
52
+ result.order = order;
53
+ return result;
54
+ }
55
+ /** Strip grid flags, returning just the data-level column info */
56
+ ToMJColumn() {
57
+ const result = new MJColumnDescriptor(this.field);
58
+ result.displayName = this.displayName;
59
+ result.sqlBaseType = this.sqlBaseType;
60
+ result.sqlFullType = this.sqlFullType;
61
+ result.width = this.width;
62
+ result.description = this.description;
63
+ result.sourceEntity = this.sourceEntity;
64
+ result.sourceFieldName = this.sourceFieldName;
65
+ result.isComputed = this.isComputed;
66
+ result.isSummary = this.isSummary;
67
+ return result;
68
+ }
69
+ }
70
+ //# sourceMappingURL=column-descriptors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"column-descriptors.js","sourceRoot":"","sources":["../../src/generic/column-descriptors.ts"],"names":[],"mappings":"AAiBA;;;GAGG;AACH,MAAM,OAAO,gBAAgB;IAmBzB,YAAY,KAAa;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;CACJ;AAED;;;;GAIG;AACH,MAAM,OAAO,kBAAmB,SAAQ,gBAAgB;IAapD,sFAAsF;IACtF,MAAM,CAAC,oBAAoB,CAAC,KAO3B;QACG,MAAM,MAAM,GAAG,IAAI,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClD,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC,IAAmB,CAAC;QAC/C,MAAM,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;QACzC,MAAM,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe,CAAC;QAC/C,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QACnC,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QACvC,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,2DAA2D;IAC3D,MAAM,CAAC,oBAAoB,CACvB,GAAqB,EACrB,UAAkB,EAClB,eAAwB;QAExB,MAAM,MAAM,GAAG,IAAI,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC3B,MAAM,CAAC,YAAY,GAAG,UAAU,CAAC;QACjC,MAAM,CAAC,eAAe,GAAG,eAAe,IAAI,GAAG,CAAC,KAAK,CAAC;QACtD,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ;AAED;;;GAGG;AACH,MAAM,OAAO,oBAAqB,SAAQ,kBAAkB;IAA5D;;QACI,YAAO,GAAY,IAAI,CAAC;QACxB,aAAQ,GAAY,IAAI,CAAC;QACzB,cAAS,GAAY,IAAI,CAAC;QAC1B,gBAAW,GAAY,IAAI,CAAC;QAC5B,UAAK,GAAW,CAAC,CAAC;IA6BtB,CAAC;IAtBG,uEAAuE;IACvE,MAAM,CAAC,YAAY,CAAC,GAAuB,EAAE,KAAa;QACtD,MAAM,MAAM,GAAG,IAAI,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnD,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC3B,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,kEAAkE;IAClE,UAAU;QACN,MAAM,MAAM,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClD,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACtC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACtC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACtC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAC1B,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACtC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACxC,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QAC9C,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACpC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAClC,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ"}
@@ -0,0 +1,63 @@
1
+ import { DataTable, DataComputation } from './data-table.js';
2
+ /**
3
+ * A point-in-time snapshot of one or more datasets with context.
4
+ *
5
+ * This is the universal data exchange format between components,
6
+ * artifact viewers, agents, and persistence.
7
+ *
8
+ * Per-table state (sorting, filters, computations, paging, selection)
9
+ * lives on each DataTable — not here. DataSnapshot holds only
10
+ * component-level state that spans all tables.
11
+ */
12
+ export declare class DataSnapshot {
13
+ /** Named datasets — the core payload */
14
+ tables?: DataTable[];
15
+ /** Display title */
16
+ title?: string;
17
+ /** How the data was obtained (markdown, may include Mermaid diagrams) */
18
+ plan?: string;
19
+ /** What the data MEANS — patterns, insights, key takeaways */
20
+ interpretation?: string;
21
+ /** Cross-table computations (rare — most computations live on individual DataTables) */
22
+ computations?: DataComputation[];
23
+ /** Drill-down breadcrumb path: ["All Regions", "West", "California"] */
24
+ drillPath?: string[];
25
+ /** Which tab/view/section is currently active */
26
+ activeTab?: string;
27
+ /** Search/filter text entered by user (component-wide) */
28
+ searchText?: string;
29
+ /** Component-specific state not covered above */
30
+ custom?: Record<string, unknown>;
31
+ savedQueryId?: string;
32
+ savedQueryName?: string;
33
+ savedAtVersionNumber?: number;
34
+ /** Check whether this snapshot has multiple tables */
35
+ get IsMultiTable(): boolean;
36
+ /** Create from a single DataTable */
37
+ static FromTable(table: DataTable, title?: string): DataSnapshot;
38
+ /** Create from multiple DataTables */
39
+ static FromTables(tables: DataTable[], title?: string): DataSnapshot;
40
+ }
41
+ /**
42
+ * Normalize any DataSnapshot (or legacy artifact JSON) to always use the `tables[]` array format.
43
+ *
44
+ * - Multi-table snapshots: returns the tables array as-is
45
+ * - Legacy single-table JSON (from Query Builder): wraps root-level fields into a single DataTable
46
+ * - Empty snapshots: returns []
47
+ */
48
+ export declare function NormalizeToTables(snap: DataSnapshot | Record<string, unknown>, defaultTableName?: string): DataTable[];
49
+ /**
50
+ * Get the total row count across all tables in a snapshot.
51
+ */
52
+ export declare function TotalRowCount(snap: DataSnapshot | Record<string, unknown>): number;
53
+ /**
54
+ * Get the total available row count across all tables
55
+ * (the full dataset size, not just the current page).
56
+ */
57
+ export declare function TotalAvailableRowCount(snap: DataSnapshot | Record<string, unknown>): number;
58
+ /**
59
+ * Backward compatibility alias.
60
+ * Existing code that references DataArtifactSpec continues to work.
61
+ */
62
+ export type DataArtifactSpec = DataSnapshot;
63
+ //# sourceMappingURL=data-snapshot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-snapshot.d.ts","sourceRoot":"","sources":["../../src/generic/data-snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE1D;;;;;;;;;GASG;AACH,qBAAa,YAAY;IAGrB,wCAAwC;IACxC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IAIrB,oBAAoB;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,yEAAyE;IACzE,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,8DAA8D;IAC9D,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,wFAAwF;IACxF,YAAY,CAAC,EAAE,eAAe,EAAE,CAAC;IAIjC,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IAErB,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,0DAA0D;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAIjC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAI9B,sDAAsD;IACtD,IAAI,YAAY,IAAI,OAAO,CAE1B;IAID,qCAAqC;IACrC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,YAAY;IAOhE,sCAAsC;IACtC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,YAAY;CAMvE;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC7B,IAAI,EAAE,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5C,gBAAgB,GAAE,MAAkB,GACrC,SAAS,EAAE,CA2Bb;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAKlF;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAS3F;AAED;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,YAAY,CAAC"}
@@ -0,0 +1,78 @@
1
+ import { DataTable } from './data-table.js';
2
+ /**
3
+ * A point-in-time snapshot of one or more datasets with context.
4
+ *
5
+ * This is the universal data exchange format between components,
6
+ * artifact viewers, agents, and persistence.
7
+ *
8
+ * Per-table state (sorting, filters, computations, paging, selection)
9
+ * lives on each DataTable — not here. DataSnapshot holds only
10
+ * component-level state that spans all tables.
11
+ */
12
+ export class DataSnapshot {
13
+ // ─── GETTERS ───
14
+ /** Check whether this snapshot has multiple tables */
15
+ get IsMultiTable() {
16
+ return !!(this.tables && this.tables.length > 1);
17
+ }
18
+ // ─── FACTORY METHODS ───
19
+ /** Create from a single DataTable */
20
+ static FromTable(table, title) {
21
+ const snap = new DataSnapshot();
22
+ snap.tables = [table];
23
+ snap.title = title;
24
+ return snap;
25
+ }
26
+ /** Create from multiple DataTables */
27
+ static FromTables(tables, title) {
28
+ const snap = new DataSnapshot();
29
+ snap.tables = tables;
30
+ snap.title = title;
31
+ return snap;
32
+ }
33
+ }
34
+ /**
35
+ * Normalize any DataSnapshot (or legacy artifact JSON) to always use the `tables[]` array format.
36
+ *
37
+ * - Multi-table snapshots: returns the tables array as-is
38
+ * - Legacy single-table JSON (from Query Builder): wraps root-level fields into a single DataTable
39
+ * - Empty snapshots: returns []
40
+ */
41
+ export function NormalizeToTables(snap, defaultTableName = 'results') {
42
+ const s = snap;
43
+ // Multi-table: tables array is authoritative.
44
+ // Ensure each table has `rows: []` and `columns: []` defaults — downstream
45
+ // consumers (artifact tool handlers, exporters) assume these are arrays.
46
+ // A plain-JSON table with missing fields will crash `.length` / `.map` /
47
+ // `.filter` calls otherwise.
48
+ if (Array.isArray(s.tables) && s.tables.length > 0) {
49
+ return s.tables.map((t) => ({
50
+ ...t,
51
+ rows: Array.isArray(t.rows) ? t.rows : [],
52
+ columns: Array.isArray(t.columns) ? t.columns : [],
53
+ name: typeof t.name === 'string' ? t.name : defaultTableName,
54
+ }));
55
+ }
56
+ // Legacy single-table: wrap root-level fields via factory method
57
+ if (s.rows || s.columns || s.metadata?.sql) {
58
+ return [DataTable.FromLegacySpec(s, defaultTableName)];
59
+ }
60
+ // Empty (context-only snapshot)
61
+ return [];
62
+ }
63
+ /**
64
+ * Get the total row count across all tables in a snapshot.
65
+ */
66
+ export function TotalRowCount(snap) {
67
+ return NormalizeToTables(snap).reduce((sum, table) => sum + (table.metadata?.rowCount ?? table.rows.length), 0);
68
+ }
69
+ /**
70
+ * Get the total available row count across all tables
71
+ * (the full dataset size, not just the current page).
72
+ */
73
+ export function TotalAvailableRowCount(snap) {
74
+ return NormalizeToTables(snap).reduce((sum, table) => sum + (table.metadata?.totalAvailableRows ??
75
+ table.metadata?.rowCount ??
76
+ table.rows.length), 0);
77
+ }
78
+ //# sourceMappingURL=data-snapshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-snapshot.js","sourceRoot":"","sources":["../../src/generic/data-snapshot.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,103 @@
1
+ import { MJColumnDescriptor } from './column-descriptors.js';
2
+ /**
3
+ * A named, pre-computed aggregation or metric.
4
+ */
5
+ export interface DataComputation {
6
+ /** Display name: "Total Revenue", "Average Order Value" */
7
+ name: string;
8
+ /** Type of aggregation */
9
+ type: 'sum' | 'avg' | 'count' | 'min' | 'max' | 'median' | 'distinct_count' | 'custom';
10
+ /** Source field this computation operates on */
11
+ field?: string;
12
+ /** Which table this computation belongs to (for cross-table snapshots) */
13
+ table?: string;
14
+ /** The computed value */
15
+ value: number | string | boolean;
16
+ /** Human-formatted display value: "$1,234,567.89" */
17
+ formattedValue?: string;
18
+ /** Explanation of what this computation represents */
19
+ description?: string;
20
+ }
21
+ /**
22
+ * Metadata about how a DataTable's data was produced.
23
+ * Every field is optional — populate what's available.
24
+ */
25
+ export interface DataTableMetadata {
26
+ /** SQL that produced this data (if source is 'query') */
27
+ sql?: string;
28
+ /** MJ entity name (if source is 'view') */
29
+ entityName?: string;
30
+ /** Extra WHERE filter applied (if source is 'view') */
31
+ extraFilter?: string;
32
+ /** Query name in MJ (if from a stored query) */
33
+ queryName?: string;
34
+ /** Query category path in MJ (if from a stored query) */
35
+ queryCategoryPath?: string;
36
+ /** Query parameters used */
37
+ parameters?: Record<string, string | number | boolean>;
38
+ /** Number of rows in the `rows[]` array (this page of results) */
39
+ rowCount?: number;
40
+ /** Starting row index in the full result set (0-based) */
41
+ startRowIndex?: number;
42
+ /** Page size used for this result set */
43
+ pageSize?: number;
44
+ /** Total rows available from the query/view (not the entire table) */
45
+ totalAvailableRows?: number;
46
+ /** Time to execute the query/view in milliseconds */
47
+ executionTimeMs?: number;
48
+ /** When this data was fetched (UTC) */
49
+ fetchedAt?: Date;
50
+ /** For computed tables: how the data was derived */
51
+ computationDescription?: string;
52
+ }
53
+ /**
54
+ * A single named dataset: columns + rows + provenance + per-table state.
55
+ *
56
+ * This is the standard unit of tabular data in MemberJunction.
57
+ * Self-describing: given just this object, a consumer knows what the
58
+ * data is, where it came from, and how to interpret each column.
59
+ *
60
+ * Rows are flat `Record<string, unknown>[]` — same shape as RunView/RunQuery.
61
+ */
62
+ export declare class DataTable {
63
+ /** Unique name for this table within a collection */
64
+ name: string;
65
+ /** Human-readable description of what this table contains */
66
+ description?: string;
67
+ /** How this table's data was produced */
68
+ source?: 'query' | 'view' | 'computed' | 'static' | 'other';
69
+ /** Column definitions with type information and entity lineage */
70
+ columns: MJColumnDescriptor[];
71
+ /** The actual row data */
72
+ rows: Record<string, unknown>[];
73
+ /** How the data was produced, how much there is, how long it took */
74
+ metadata?: DataTableMetadata;
75
+ /** Pre-computed aggregations for this table's data */
76
+ computations?: DataComputation[];
77
+ /** Current sort state applied to this table */
78
+ sorting?: Array<{
79
+ field: string;
80
+ direction: 'asc' | 'desc';
81
+ }>;
82
+ /** Currently selected rows in this table */
83
+ selectedRows?: Array<{
84
+ rowIndex: number;
85
+ rowKey?: string;
86
+ rowData?: Record<string, unknown>;
87
+ }>;
88
+ /** Current page number (1-based) */
89
+ pageNumber?: number;
90
+ /** Create from a single-table DataSnapshot (legacy format) */
91
+ static FromLegacySpec(spec: {
92
+ source?: string;
93
+ columns?: MJColumnDescriptor[];
94
+ rows?: Record<string, unknown>[];
95
+ metadata?: DataTableMetadata;
96
+ entityName?: string;
97
+ extraFilter?: string;
98
+ queryName?: string;
99
+ queryCategoryPath?: string;
100
+ parameters?: Record<string, string | number | boolean>;
101
+ }, defaultName?: string): DataTable;
102
+ }
103
+ //# sourceMappingURL=data-table.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-table.d.ts","sourceRoot":"","sources":["../../src/generic/data-table.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * A single named dataset: columns + rows + provenance + per-table state.
3
+ *
4
+ * This is the standard unit of tabular data in MemberJunction.
5
+ * Self-describing: given just this object, a consumer knows what the
6
+ * data is, where it came from, and how to interpret each column.
7
+ *
8
+ * Rows are flat `Record<string, unknown>[]` — same shape as RunView/RunQuery.
9
+ */
10
+ export class DataTable {
11
+ constructor() {
12
+ /** Column definitions with type information and entity lineage */
13
+ this.columns = [];
14
+ /** The actual row data */
15
+ this.rows = [];
16
+ }
17
+ /** Create from a single-table DataSnapshot (legacy format) */
18
+ static FromLegacySpec(spec, defaultName = 'results') {
19
+ const table = new DataTable();
20
+ table.name = defaultName;
21
+ table.source = spec.source;
22
+ table.columns = spec.columns ?? [];
23
+ table.rows = spec.rows ?? [];
24
+ table.metadata = spec.metadata ? {
25
+ ...spec.metadata,
26
+ entityName: spec.entityName,
27
+ extraFilter: spec.extraFilter,
28
+ queryName: spec.queryName,
29
+ queryCategoryPath: spec.queryCategoryPath,
30
+ parameters: spec.parameters,
31
+ } : undefined;
32
+ return table;
33
+ }
34
+ }
35
+ //# sourceMappingURL=data-table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-table.js","sourceRoot":"","sources":["../../src/generic/data-table.ts"],"names":[],"mappings":"AAuDA;;;;;;;;GAQG;AACH,MAAM,OAAO,SAAS;IAAtB;QAUI,kEAAkE;QAClE,YAAO,GAAyB,EAAE,CAAC;QAEnC,0BAA0B;QAC1B,SAAI,GAA8B,EAAE,CAAC;IA8CzC,CAAC;IA3BG,8DAA8D;IAC9D,MAAM,CAAC,cAAc,CAAC,IAUrB,EAAE,cAAsB,SAAS;QAC9B,MAAM,KAAK,GAAG,IAAI,SAAS,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,GAAG,WAAW,CAAC;QACzB,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAA6B,CAAC;QAClD,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;QACnC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;QAC7B,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC7B,GAAG,IAAI,CAAC,QAAQ;YAChB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,UAAU,EAAE,IAAI,CAAC,UAAU;SAC9B,CAAC,CAAC,CAAC,SAAS,CAAC;QACd,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ"}
package/dist/index.d.ts CHANGED
@@ -38,5 +38,8 @@ export * from "./generic/RegisterForStartup.js";
38
38
  export * from "./generic/telemetryManager.js";
39
39
  export * from "./generic/InMemoryLocalStorageProvider.js";
40
40
  export * from "./generic/dataHooks.js";
41
+ export * from "./generic/column-descriptors.js";
42
+ export * from "./generic/data-table.js";
43
+ export * from "./generic/data-snapshot.js";
41
44
  export declare function SetProvider(provider: any): void;
42
45
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wCAAwC,CAAC;AACvD,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4CAA4C,CAAC;AAC3D,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAE3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wCAAwC,CAAC;AACvD,cAAc,qBAAqB,CAAC;AAEpC,wBAAgB,WAAW,CAAC,QAAQ,KAAA,QAMnC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wCAAwC,CAAC;AACvD,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4CAA4C,CAAC;AAC3D,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAE3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wCAAwC,CAAC;AACvD,cAAc,qBAAqB,CAAC;AACpC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AAExC,wBAAgB,WAAW,CAAC,QAAQ,KAAA,QAMnC"}
package/dist/index.js CHANGED
@@ -43,6 +43,9 @@ export * from "./generic/RegisterForStartup.js";
43
43
  export * from "./generic/telemetryManager.js";
44
44
  export * from "./generic/InMemoryLocalStorageProvider.js";
45
45
  export * from "./generic/dataHooks.js";
46
+ export * from "./generic/column-descriptors.js";
47
+ export * from "./generic/data-table.js";
48
+ export * from "./generic/data-snapshot.js";
46
49
  export function SetProvider(provider) {
47
50
  Metadata.Provider = provider;
48
51
  BaseEntity.Provider = provider;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wCAAwC,CAAC;AACvD,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4CAA4C,CAAC;AAC3D,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAE3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wCAAwC,CAAC;AACvD,cAAc,qBAAqB,CAAC;AAEpC,MAAM,UAAU,WAAW,CAAC,QAAQ;IAChC,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,UAAU,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC/B,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC5B,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC9B,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wCAAwC,CAAC;AACvD,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4CAA4C,CAAC;AAC3D,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAE3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wCAAwC,CAAC;AACvD,cAAc,qBAAqB,CAAC;AACpC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AAExC,MAAM,UAAU,WAAW,CAAC,QAAQ;IAChC,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,UAAU,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC/B,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC5B,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC9B,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACjC,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@memberjunction/core",
3
3
  "type": "module",
4
- "version": "5.28.0",
4
+ "version": "5.29.0",
5
5
  "description": "MemberJunction: Core Library including Metadata, Application, Entity Retrieval and Manipulation, and Utilities",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
@@ -26,7 +26,7 @@
26
26
  "vitest": "^3.1.1"
27
27
  },
28
28
  "dependencies": {
29
- "@memberjunction/global": "5.28.0",
29
+ "@memberjunction/global": "5.29.0",
30
30
  "rxjs": "^7.8.2",
31
31
  "zod": "~3.24.4",
32
32
  "debug": "^4.4.3"