@memberjunction/core-actions 2.110.0 → 2.110.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/custom/visualization/create-svg-chart.action.d.ts +0 -24
- package/dist/custom/visualization/create-svg-chart.action.d.ts.map +1 -1
- package/dist/custom/visualization/create-svg-chart.action.js +57 -236
- package/dist/custom/visualization/create-svg-chart.action.js.map +1 -1
- package/package.json +15 -17
|
@@ -64,30 +64,6 @@ export declare class CreateSVGChartAction extends BaseAction {
|
|
|
64
64
|
* - Message: The SVG string or error message
|
|
65
65
|
*/
|
|
66
66
|
protected InternalRunAction(params: RunActionParams): Promise<ActionResultSimple>;
|
|
67
|
-
/**
|
|
68
|
-
* Builds a Vega-Lite specification from action parameters
|
|
69
|
-
*/
|
|
70
|
-
private buildVegaLiteSpec;
|
|
71
|
-
/**
|
|
72
|
-
* Builds encoding for Cartesian charts (bar, line, scatter, area)
|
|
73
|
-
*/
|
|
74
|
-
private buildCartesianEncoding;
|
|
75
|
-
/**
|
|
76
|
-
* Builds encoding for pie/arc charts
|
|
77
|
-
*/
|
|
78
|
-
private buildPieEncoding;
|
|
79
|
-
/**
|
|
80
|
-
* Infers the Vega-Lite field type from field name
|
|
81
|
-
*/
|
|
82
|
-
private inferFieldType;
|
|
83
|
-
/**
|
|
84
|
-
* Helper to safely parse JSON that might already be an object
|
|
85
|
-
*/
|
|
86
|
-
private parseJSON;
|
|
87
|
-
/**
|
|
88
|
-
* Helper to get parameter value by name (case-insensitive)
|
|
89
|
-
*/
|
|
90
|
-
private getParamValue;
|
|
91
67
|
}
|
|
92
68
|
/**
|
|
93
69
|
* Loader function to ensure the CreateSVGChartAction class is included in the bundle.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-svg-chart.action.d.ts","sourceRoot":"","sources":["../../../src/custom/visualization/create-svg-chart.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAMrD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,qBACa,oBAAqB,SAAQ,UAAU;IAChD;;;;;;;;;;;;;;;;;;;OAmBG;cACa,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"create-svg-chart.action.d.ts","sourceRoot":"","sources":["../../../src/custom/visualization/create-svg-chart.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAMrD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,qBACa,oBAAqB,SAAQ,UAAU;IAChD;;;;;;;;;;;;;;;;;;;OAmBG;cACa,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;CA2P1F;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,SAEvC"}
|
|
@@ -1,39 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
2
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
19
3
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
20
4
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
21
5
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
22
6
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
23
7
|
};
|
|
24
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
25
|
-
if (mod && mod.__esModule) return mod;
|
|
26
|
-
var result = {};
|
|
27
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
28
|
-
__setModuleDefault(result, mod);
|
|
29
|
-
return result;
|
|
30
|
-
};
|
|
31
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32
9
|
exports.LoadCreateSVGChartAction = exports.CreateSVGChartAction = void 0;
|
|
33
10
|
const actions_1 = require("@memberjunction/actions");
|
|
34
11
|
const global_1 = require("@memberjunction/global");
|
|
35
|
-
|
|
36
|
-
|
|
12
|
+
// import * as vega from 'vega';
|
|
13
|
+
// import * as vegaLite from 'vega-lite';
|
|
14
|
+
// import { TopLevelSpec as VegaLiteSpec } from 'vega-lite';
|
|
37
15
|
/**
|
|
38
16
|
* Action that generates SVG charts from data using Vega-Lite.
|
|
39
17
|
* Supports various chart types including bar, line, pie, scatter, area, and more.
|
|
@@ -98,217 +76,60 @@ let CreateSVGChartAction = class CreateSVGChartAction extends actions_1.BaseActi
|
|
|
98
76
|
* - Message: The SVG string or error message
|
|
99
77
|
*/
|
|
100
78
|
async InternalRunAction(params) {
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
/**
|
|
158
|
-
* Builds a Vega-Lite specification from action parameters
|
|
159
|
-
*/
|
|
160
|
-
buildVegaLiteSpec(params, chartType, data) {
|
|
161
|
-
const title = this.getParamValue(params, 'Title');
|
|
162
|
-
const width = parseInt(this.getParamValue(params, 'Width') || '400');
|
|
163
|
-
const height = parseInt(this.getParamValue(params, 'Height') || '300');
|
|
164
|
-
const baseSpec = {
|
|
165
|
-
$schema: "https://vega.github.io/schema/vega-lite/v5.json",
|
|
166
|
-
width,
|
|
167
|
-
height,
|
|
168
|
-
data: { values: data },
|
|
169
|
-
padding: 20,
|
|
170
|
-
autosize: {
|
|
171
|
-
type: 'fit',
|
|
172
|
-
contains: 'padding'
|
|
173
|
-
}
|
|
174
|
-
};
|
|
175
|
-
if (title) {
|
|
176
|
-
baseSpec.title = {
|
|
177
|
-
text: title,
|
|
178
|
-
anchor: 'middle',
|
|
179
|
-
offset: 20,
|
|
180
|
-
fontSize: 16,
|
|
181
|
-
fontWeight: 'bold'
|
|
182
|
-
};
|
|
183
|
-
}
|
|
184
|
-
// Add config for better spacing and readability
|
|
185
|
-
baseSpec.config = {
|
|
186
|
-
axis: {
|
|
187
|
-
labelFontSize: 11,
|
|
188
|
-
titleFontSize: 12,
|
|
189
|
-
titlePadding: 10,
|
|
190
|
-
labelPadding: 5
|
|
191
|
-
},
|
|
192
|
-
legend: {
|
|
193
|
-
labelFontSize: 11,
|
|
194
|
-
titleFontSize: 12,
|
|
195
|
-
padding: 10
|
|
196
|
-
}
|
|
197
|
-
};
|
|
198
|
-
// Build encoding based on chart type
|
|
199
|
-
switch (chartType) {
|
|
200
|
-
case 'bar':
|
|
201
|
-
case 'line':
|
|
202
|
-
case 'area':
|
|
203
|
-
case 'point':
|
|
204
|
-
case 'scatter':
|
|
205
|
-
// For line and area charts, handle missing data points properly
|
|
206
|
-
if (chartType === 'line' || chartType === 'area') {
|
|
207
|
-
baseSpec.mark = {
|
|
208
|
-
type: chartType,
|
|
209
|
-
point: chartType === 'line', // Show points on line charts
|
|
210
|
-
interpolate: 'monotone', // Smooth curves
|
|
211
|
-
tooltip: true
|
|
212
|
-
};
|
|
213
|
-
}
|
|
214
|
-
else {
|
|
215
|
-
baseSpec.mark = chartType === 'scatter' ? 'point' : chartType;
|
|
216
|
-
}
|
|
217
|
-
baseSpec.encoding = this.buildCartesianEncoding(params);
|
|
218
|
-
break;
|
|
219
|
-
case 'pie':
|
|
220
|
-
case 'arc':
|
|
221
|
-
baseSpec.mark = 'arc';
|
|
222
|
-
baseSpec.encoding = this.buildPieEncoding(params);
|
|
223
|
-
break;
|
|
224
|
-
default:
|
|
225
|
-
throw new Error(`Unsupported chart type: ${chartType}. Supported types: bar, line, area, point, scatter, pie`);
|
|
226
|
-
}
|
|
227
|
-
return baseSpec;
|
|
228
|
-
}
|
|
229
|
-
/**
|
|
230
|
-
* Builds encoding for Cartesian charts (bar, line, scatter, area)
|
|
231
|
-
*/
|
|
232
|
-
buildCartesianEncoding(params) {
|
|
233
|
-
const xField = this.getParamValue(params, 'XField');
|
|
234
|
-
const yField = this.getParamValue(params, 'YField');
|
|
235
|
-
const colorField = this.getParamValue(params, 'ColorField');
|
|
236
|
-
if (!xField || !yField) {
|
|
237
|
-
throw new Error("XField and YField are required for this chart type");
|
|
238
|
-
}
|
|
239
|
-
const encoding = {
|
|
240
|
-
x: { field: xField, type: this.inferFieldType(xField) },
|
|
241
|
-
y: { field: yField, type: 'quantitative' }
|
|
242
|
-
};
|
|
243
|
-
if (colorField) {
|
|
244
|
-
encoding.color = { field: colorField, type: 'nominal' };
|
|
245
|
-
}
|
|
246
|
-
return encoding;
|
|
247
|
-
}
|
|
248
|
-
/**
|
|
249
|
-
* Builds encoding for pie/arc charts
|
|
250
|
-
*/
|
|
251
|
-
buildPieEncoding(params) {
|
|
252
|
-
const thetaField = this.getParamValue(params, 'ThetaField');
|
|
253
|
-
const colorField = this.getParamValue(params, 'ColorField');
|
|
254
|
-
if (!thetaField) {
|
|
255
|
-
throw new Error("ThetaField is required for pie charts");
|
|
256
|
-
}
|
|
257
|
-
const encoding = {
|
|
258
|
-
theta: { field: thetaField, type: 'quantitative' }
|
|
259
|
-
};
|
|
260
|
-
if (colorField) {
|
|
261
|
-
encoding.color = { field: colorField, type: 'nominal' };
|
|
262
|
-
}
|
|
263
|
-
return encoding;
|
|
264
|
-
}
|
|
265
|
-
/**
|
|
266
|
-
* Infers the Vega-Lite field type from field name
|
|
267
|
-
*/
|
|
268
|
-
inferFieldType(fieldName) {
|
|
269
|
-
const lowerName = fieldName.toLowerCase();
|
|
270
|
-
// Temporal hints
|
|
271
|
-
if (lowerName.includes('date') || lowerName.includes('time') || lowerName.includes('year') || lowerName.includes('month')) {
|
|
272
|
-
return 'temporal';
|
|
273
|
-
}
|
|
274
|
-
// Quantitative hints
|
|
275
|
-
if (lowerName.includes('count') || lowerName.includes('value') || lowerName.includes('amount') || lowerName.includes('total')) {
|
|
276
|
-
return 'quantitative';
|
|
277
|
-
}
|
|
278
|
-
// Default to nominal for categorical data
|
|
279
|
-
return 'nominal';
|
|
280
|
-
}
|
|
281
|
-
/**
|
|
282
|
-
* Helper to safely parse JSON that might already be an object
|
|
283
|
-
*/
|
|
284
|
-
parseJSON(value, paramName) {
|
|
285
|
-
// If it's already an object/array, return it
|
|
286
|
-
if (typeof value === 'object' && value !== null) {
|
|
287
|
-
return value;
|
|
288
|
-
}
|
|
289
|
-
// If it's a string, parse it
|
|
290
|
-
if (typeof value === 'string') {
|
|
291
|
-
try {
|
|
292
|
-
return JSON.parse(value);
|
|
293
|
-
}
|
|
294
|
-
catch (error) {
|
|
295
|
-
throw new Error(`Parameter '${paramName}' contains invalid JSON: ${error instanceof Error ? error.message : String(error)}`);
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
|
-
// For other types, error
|
|
299
|
-
throw new Error(`Parameter '${paramName}' must be a JSON string or object. Received ${typeof value}.`);
|
|
300
|
-
}
|
|
301
|
-
/**
|
|
302
|
-
* Helper to get parameter value by name (case-insensitive)
|
|
303
|
-
*/
|
|
304
|
-
getParamValue(params, paramName) {
|
|
305
|
-
const param = params.Params.find(p => p.Name.trim().toLowerCase() === paramName.toLowerCase());
|
|
306
|
-
if (param?.Value && typeof param.Value === 'string') {
|
|
307
|
-
return param?.Value?.trim() || null;
|
|
308
|
-
}
|
|
309
|
-
else {
|
|
310
|
-
return param?.Value || null;
|
|
311
|
-
}
|
|
79
|
+
throw new Error("Not yet implemented");
|
|
80
|
+
// try {
|
|
81
|
+
// // Check if a full Vega-Lite spec was provided
|
|
82
|
+
// const specParam = this.getParamValue(params, 'VegaLiteSpec');
|
|
83
|
+
// let vlSpec: VegaLiteSpec;
|
|
84
|
+
// if (specParam) {
|
|
85
|
+
// // Use the provided spec directly
|
|
86
|
+
// vlSpec = this.parseJSON<VegaLiteSpec>(specParam, 'VegaLiteSpec');
|
|
87
|
+
// } else {
|
|
88
|
+
// // Build spec from individual parameters
|
|
89
|
+
// const chartType = this.getParamValue(params, 'ChartType');
|
|
90
|
+
// const dataParam = this.getParamValue(params, 'Data');
|
|
91
|
+
// if (!chartType) {
|
|
92
|
+
// return {
|
|
93
|
+
// Success: false,
|
|
94
|
+
// Message: "ChartType parameter is required (or provide VegaLiteSpec)",
|
|
95
|
+
// ResultCode: "MISSING_PARAMETERS"
|
|
96
|
+
// };
|
|
97
|
+
// }
|
|
98
|
+
// if (!dataParam) {
|
|
99
|
+
// return {
|
|
100
|
+
// Success: false,
|
|
101
|
+
// Message: "Data parameter is required (or provide VegaLiteSpec)",
|
|
102
|
+
// ResultCode: "MISSING_PARAMETERS"
|
|
103
|
+
// };
|
|
104
|
+
// }
|
|
105
|
+
// const data = this.parseJSON<any[]>(dataParam, 'Data');
|
|
106
|
+
// if (!Array.isArray(data)) {
|
|
107
|
+
// return {
|
|
108
|
+
// Success: false,
|
|
109
|
+
// Message: "Data parameter must be a JSON array",
|
|
110
|
+
// ResultCode: "INVALID_DATA"
|
|
111
|
+
// };
|
|
112
|
+
// }
|
|
113
|
+
// // Build the Vega-Lite spec
|
|
114
|
+
// vlSpec = this.buildVegaLiteSpec(params, chartType.toLowerCase(), data);
|
|
115
|
+
// }
|
|
116
|
+
// // Compile Vega-Lite to Vega
|
|
117
|
+
// const vegaSpec = vegaLite.compile(vlSpec).spec;
|
|
118
|
+
// // Create a headless view and render to SVG
|
|
119
|
+
// const view = new vega.View(vega.parse(vegaSpec), { renderer: 'none' });
|
|
120
|
+
// const svg = await view.toSVG();
|
|
121
|
+
// return {
|
|
122
|
+
// Success: true,
|
|
123
|
+
// ResultCode: "SUCCESS",
|
|
124
|
+
// Message: svg
|
|
125
|
+
// };
|
|
126
|
+
// } catch (error) {
|
|
127
|
+
// return {
|
|
128
|
+
// Success: false,
|
|
129
|
+
// Message: `Failed to generate chart: ${error instanceof Error ? error.message : String(error)}`,
|
|
130
|
+
// ResultCode: "CHART_GENERATION_FAILED"
|
|
131
|
+
// };
|
|
132
|
+
// }
|
|
312
133
|
}
|
|
313
134
|
};
|
|
314
135
|
exports.CreateSVGChartAction = CreateSVGChartAction;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-svg-chart.action.js","sourceRoot":"","sources":["../../../src/custom/visualization/create-svg-chart.action.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"create-svg-chart.action.js","sourceRoot":"","sources":["../../../src/custom/visualization/create-svg-chart.action.ts"],"names":[],"mappings":";;;;;;;;;AACA,qDAAqD;AACrD,mDAAuD;AACvD,gCAAgC;AAChC,yCAAyC;AACzC,4DAA4D;AAE5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEI,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,oBAAU;IAChD;;;;;;;;;;;;;;;;;;;OAmBG;IACO,KAAK,CAAC,iBAAiB,CAAC,MAAuB;QACrD,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACvC,QAAQ;QACR,qDAAqD;QACrD,oEAAoE;QAEpE,gCAAgC;QAEhC,uBAAuB;QACvB,4CAA4C;QAC5C,4EAA4E;QAC5E,eAAe;QACf,mDAAmD;QACnD,qEAAqE;QACrE,gEAAgE;QAEhE,4BAA4B;QAC5B,uBAAuB;QACvB,kCAAkC;QAClC,wFAAwF;QACxF,mDAAmD;QACnD,iBAAiB;QACjB,YAAY;QAEZ,4BAA4B;QAC5B,uBAAuB;QACvB,kCAAkC;QAClC,mFAAmF;QACnF,mDAAmD;QACnD,iBAAiB;QACjB,YAAY;QAEZ,iEAAiE;QAEjE,sCAAsC;QACtC,uBAAuB;QACvB,kCAAkC;QAClC,kEAAkE;QAClE,6CAA6C;QAC7C,iBAAiB;QACjB,YAAY;QAEZ,sCAAsC;QACtC,kFAAkF;QAClF,QAAQ;QAER,mCAAmC;QACnC,sDAAsD;QAEtD,kDAAkD;QAClD,8EAA8E;QAC9E,sCAAsC;QAEtC,eAAe;QACf,yBAAyB;QACzB,iCAAiC;QACjC,uBAAuB;QACvB,SAAS;QAET,oBAAoB;QACpB,eAAe;QACf,0BAA0B;QAC1B,0GAA0G;QAC1G,gDAAgD;QAChD,SAAS;QACT,IAAI;IACR,CAAC;CAyLJ,CAAA;AAhRY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,sBAAa,EAAC,oBAAU,EAAE,kBAAkB,CAAC;GACjC,oBAAoB,CAgRhC;AAED;;;GAGG;AACH,SAAgB,wBAAwB;IACpC,uIAAuI;AAC3I,CAAC;AAFD,4DAEC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memberjunction/core-actions",
|
|
3
|
-
"version": "2.110.
|
|
3
|
+
"version": "2.110.1",
|
|
4
4
|
"description": "Library of generated and custom actions for the core MemberJunction framework. This library is maintained by MemberJunction and includes actions for use within the framework itself.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -21,20 +21,20 @@
|
|
|
21
21
|
"dependencies": {
|
|
22
22
|
"@memberjunction/global": "2.100.3",
|
|
23
23
|
"@memberjunction/core": "2.100.3",
|
|
24
|
-
"@memberjunction/core-entities": "2.110.
|
|
25
|
-
"@memberjunction/core-entities-server": "2.110.
|
|
26
|
-
"@memberjunction/ai-core-plus": "2.110.
|
|
27
|
-
"@memberjunction/ai-agents": "2.110.
|
|
28
|
-
"@memberjunction/ai-engine-base": "2.110.
|
|
29
|
-
"@memberjunction/aiengine": "2.110.
|
|
30
|
-
"@memberjunction/actions": "2.110.
|
|
31
|
-
"@memberjunction/code-execution": "2.110.
|
|
32
|
-
"@memberjunction/communication-engine": "2.110.
|
|
33
|
-
"@memberjunction/external-change-detection": "2.110.
|
|
34
|
-
"@memberjunction/ai-vector-sync": "2.110.
|
|
35
|
-
"@memberjunction/content-autotagging": "2.110.
|
|
36
|
-
"@memberjunction/storage": "2.110.
|
|
37
|
-
"@memberjunction/sqlserver-dataprovider": "2.110.
|
|
24
|
+
"@memberjunction/core-entities": "2.110.1",
|
|
25
|
+
"@memberjunction/core-entities-server": "2.110.1",
|
|
26
|
+
"@memberjunction/ai-core-plus": "2.110.1",
|
|
27
|
+
"@memberjunction/ai-agents": "2.110.1",
|
|
28
|
+
"@memberjunction/ai-engine-base": "2.110.1",
|
|
29
|
+
"@memberjunction/aiengine": "2.110.1",
|
|
30
|
+
"@memberjunction/actions": "2.110.1",
|
|
31
|
+
"@memberjunction/code-execution": "2.110.1",
|
|
32
|
+
"@memberjunction/communication-engine": "2.110.1",
|
|
33
|
+
"@memberjunction/external-change-detection": "2.110.1",
|
|
34
|
+
"@memberjunction/ai-vector-sync": "2.110.1",
|
|
35
|
+
"@memberjunction/content-autotagging": "2.110.1",
|
|
36
|
+
"@memberjunction/storage": "2.110.1",
|
|
37
|
+
"@memberjunction/sqlserver-dataprovider": "2.110.1",
|
|
38
38
|
"axios": "^1.6.8",
|
|
39
39
|
"rxjs": "^7.8.1",
|
|
40
40
|
"nunjucks": "^3.2.4",
|
|
@@ -57,8 +57,6 @@
|
|
|
57
57
|
"turndown": "^7.2.0",
|
|
58
58
|
"jsdom": "^24.1.0",
|
|
59
59
|
"node-sql-parser": "^5.3.5",
|
|
60
|
-
"vega": "^5.28.0",
|
|
61
|
-
"vega-lite": "^5.20.1",
|
|
62
60
|
"@dagrejs/dagre": "^1.1.4",
|
|
63
61
|
"d3-cloud": "^1.2.7",
|
|
64
62
|
"d3-force": "^3.0.0",
|