🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
DemoInstallSign in
Socket

@syncfusion/ej2-data

Package Overview
Dependencies
Maintainers
3
Versions
178
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@syncfusion/ej2-data - npm Package Compare versions

Comparing version

to
29.1.33

2

dist/global/index.d.ts
/*!
* filename: index.d.ts
* version : 28.2.12
* version : 29.1.33
* Copyright Syncfusion Inc. 2001 - 2024. All rights reserved.

@@ -5,0 +5,0 @@ * Use of this code is subject to the terms of our license.

{
"_from": "@syncfusion/ej2-data@*",
"_id": "@syncfusion/ej2-data@28.2.11",
"_id": "@syncfusion/ej2-data@0.16.4",
"_inBundle": false,
"_integrity": "sha512-f6bkJ8AMYTaGCAZ7elUs0S9UkmidZMg63/7K8reJqcqHvcdARsX52R12bVakJZ8o1AEAkQgSJksgirLIZ3k3IA==",
"_integrity": "sha512-KUMKlLqGASBH6x8YUGIjs9hbEP3X3wYzkrbcWO5SQq1u5rYfZ+cnSVY6sAAgEZumiCbn0QzkMYO4pOpv+xfDuQ==",
"_location": "/@syncfusion/ej2-data",

@@ -43,6 +43,6 @@ "_phantomChildren": {},

],
"_resolved": "https://nexus.syncfusioninternal.com/repository/ej2-hotfix-new/@syncfusion/ej2-data/-/ej2-data-28.2.11.tgz",
"_shasum": "aedcd52b786a200a5a8737b9fcfa309c5e80bd43",
"_resolved": "https://nexus.syncfusioninternal.com/repository/ej2-release/@syncfusion/ej2-data/-/ej2-data-0.16.4.tgz",
"_shasum": "2cfbd951b59b7fd29172a8c170667aa6e00716c6",
"_spec": "@syncfusion/ej2-data@*",
"_where": "/jenkins/workspace/elease-automation_release_28.1.1/packages/included",
"_where": "/jenkins/workspace/elease-automation_release_29.1.1/packages/included",
"author": {

@@ -53,3 +53,3 @@ "name": "Syncfusion Inc."

"dependencies": {
"@syncfusion/ej2-base": "~28.2.12"
"@syncfusion/ej2-base": "~29.1.33"
},

@@ -65,5 +65,5 @@ "deprecated": false,

"typings": "index.d.ts",
"version": "28.2.12",
"version": "29.1.33",
"sideEffects": false,
"homepage": "https://www.syncfusion.com/javascript-ui-controls"
}
import { Fetch } from '@syncfusion/ej2-base';
import { Aggregates } from './util';
import { Query } from './query';
import { Requests } from './adaptors';
/**

@@ -28,2 +29,8 @@ * DataManager is used to manage and manipulate relational data.

private fetchReqOption;
private guidId;
private previousCacheQuery;
private isEnableCache;
private cacheQuery;
/** @hidden */
currentViewData: ReturnOption;
/**

@@ -78,2 +85,5 @@ * Constructor for DataManager class

executeQuery(query: Query | Function, done?: Function, fail?: Function, always?: Function): Promise<Response>;
protected getQueryRequest(query: Query): Requests;
private generateKey;
private processQuery;
private static getDeferedArgs;

@@ -83,2 +93,28 @@ private static nextTick;

private makeRequest;
/**
* @param {Error} e - specifies the string
* @param {Deferred} deffered - specifies the deffered
* @param {RequestOptions} args - specifies the RequestOptions
* @hidden
*/
dataManagerFailure(e: Error, deffered: Deferred, args?: RequestOptions): void;
private afterReponseRequest;
/**
* Processes the middleware stack after receiving the response.
* @param {Response} response - The response object.
* @returns {Response} - The potentially modified response.
*/
applyPostRequestMiddlewares(response: string | Object): Promise<Object>;
/**
* Registers a new middleware in the DataManager.
* @param {Middleware} middleware - The middleware instance to register.
* @returns {void}
*/
useMiddleware(request: Object): Promise<Object>;
/**
* Processes the middleware stack before sending the request.
* @param {Request} request - The request object.
* @returns {Request} - The potentially modified request.
*/
applyPreRequestMiddlewares(request: Object): Promise<Object>;
private beforeSend;

@@ -172,2 +208,3 @@ /**

data?: JSON;
enableCache?: boolean;
timeTillExpiration?: number;

@@ -216,3 +253,3 @@ cachingPageSize?: number;

virtualSelectRecords?: Object;
error?: string;
error?: string | Error;
}

@@ -219,0 +256,0 @@ /**

@@ -0,1 +1,36 @@

var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (_) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
};
/* eslint-disable valid-jsdoc */

@@ -32,3 +67,5 @@ /* eslint-disable security/detect-object-injection */

this.requests = [];
this.isEnableCache = false;
this.isInitialLoad = true;
this.isEnableCache = false;
if (!dataSource && !this.dataSource) {

@@ -72,2 +109,3 @@ dataSource = [];

data: dataSource.data,
enableCache: dataSource.enableCache,
timeTillExpiration: dataSource.timeTillExpiration,

@@ -99,2 +137,3 @@ cachingPageSize: dataSource.cachingPageSize,

}
this.isEnableCache = data.enableCache;
this.dataSource = data;

@@ -124,2 +163,7 @@ this.defaultQuery = query;

this.adaptor = adaptor || this.adaptor;
if (this.isEnableCache) {
this.guidId = DataUtil.getGuid('cacheAdaptor');
var obj = { keys: [], results: [] };
window.localStorage.setItem(this.guidId, JSON.stringify(obj));
}
if (data.enableCaching) {

@@ -274,3 +318,3 @@ this.adaptor = new CacheAdaptor(this.adaptor, data.timeTillExpiration, data.cachingPageSize);

|| (!isNullOrUndefined(this.adaptor[makeRequest])) || this.isCustomDataAdaptor(this.adaptor)) {
var result = this.adaptor.processQuery(this, query);
var result = this.isEnableCache ? this.processQuery(query) : this.adaptor.processQuery(this, query);
if (!isNullOrUndefined(this.adaptor[makeRequest])) {

@@ -303,2 +347,58 @@ this.adaptor[makeRequest](result, deffered, args, query);

};
DataManager.prototype.getQueryRequest = function (query) {
var req = { sorts: [], groups: [], filters: [], searches: [], aggregates: [] };
req.sorts = Query.filterQueries(query.queries, 'onSortBy');
req.groups = Query.filterQueries(query.queries, 'onGroup');
req.filters = Query.filterQueries(query.queries, 'onWhere');
req.searches = Query.filterQueries(query.queries, 'onSearch');
req.aggregates = Query.filterQueries(query.queries, 'onAggregates');
return req;
};
DataManager.prototype.generateKey = function (url, query) {
var queries = this.getQueryRequest(query);
var singles = Query.filterQueryLists(query.queries, ['onSelect', 'onPage', 'onSkip', 'onTake', 'onRange']);
var key = url;
var page = 'onPage';
queries.sorts.forEach(function (obj) {
key += obj.e.direction + obj.e.fieldName;
});
queries.groups.forEach(function (obj) {
key += obj.e.fieldName;
});
queries.searches.forEach(function (obj) {
key += obj.e.searchKey;
});
for (var filter = 0; filter < queries.filters.length; filter++) {
var currentFilter = queries.filters[filter];
if (currentFilter.e.isComplex) {
var newQuery = query.clone();
newQuery.queries = [];
for (var i = 0; i < currentFilter.e.predicates.length; i++) {
newQuery.queries.push({ fn: 'onWhere', e: currentFilter.e.predicates[i], filter: query.queries.filter });
}
key += currentFilter.e.condition + this.generateKey(url, newQuery);
}
else {
key += currentFilter.e.field + currentFilter.e.operator + currentFilter.e.value;
}
}
if (!isNullOrUndefined(this.previousCacheQuery) && this.previousCacheQuery !== key) {
var obj = { keys: [], results: [] };
window.localStorage.setItem(this.guidId, JSON.stringify(obj));
}
this.previousCacheQuery = key;
if (page in singles) {
key += singles[page].pageIndex;
}
return key;
};
DataManager.prototype.processQuery = function (query) {
var key = this.generateKey(this.dataSource.url, query);
var cachedItems = JSON.parse(window.localStorage.getItem(this.guidId));
var data = cachedItems ? cachedItems.results[cachedItems.keys.indexOf(key)] : null;
if (data != null) {
return DataUtil.parse.parseJson(data);
}
return this.adaptor.processQuery(this, query);
};
DataManager.getDeferedArgs = function (query, result, args) {

@@ -378,32 +478,57 @@ if (query.isCountRequired) {

}
if (request.contentType.indexOf('xml') === -1 && _this.dateParse) {
if (request.contentType.indexOf('xml') === -1 && _this.dateParse && !_this.isEnableCache) {
data = DataUtil.parse.parseJson(data);
}
var result = _this.adaptor.processResponse(data, _this, query, request.fetchRequest, request);
var count = 0;
var aggregates = null;
var virtualSelectRecords = 'virtualSelectRecords';
var virtualRecords = data[virtualSelectRecords];
if (query.isCountRequired) {
count = result.count;
aggregates = result.aggregates;
result = result.result;
}
if (!query.subQuery) {
process(result, count, request.fetchRequest, request.type, data, aggregates, virtualRecords);
return;
}
if (!isSelector) {
fnQueryChild(result, request);
}
var result;
var promise = _this.afterReponseRequest(data);
promise.then(function (data) {
result = _this.adaptor.processResponse(data, _this, query, request.fetchRequest, request);
if (_this.isEnableCache) {
/* eslint-enable prefer-spread */
var key = query ? _this.generateKey(_this.dataSource.url, query) : _this.dataSource.url;
var obj = {};
obj = JSON.parse(window.localStorage.getItem(_this.guidId));
var index = obj.keys.indexOf(key);
if (index !== -1) {
obj.results.splice(index, 1);
obj.keys.splice(index, 1);
}
obj.results[obj.keys.push(key) - 1] = { keys: key, result: result.result, timeStamp: new Date(), count: result.count };
window.localStorage.setItem(_this.guidId, JSON.stringify(obj));
}
if (request.contentType.indexOf('xml') === -1 && _this.dateParse && _this.isEnableCache) {
result = DataUtil.parse.parseJson(result);
}
var count = 0;
var aggregates = null;
var virtualSelectRecords = 'virtualSelectRecords';
var virtualRecords = data[virtualSelectRecords];
if (query.isCountRequired) {
count = result.count;
aggregates = result.aggregates;
result = result.result;
}
if (!query.subQuery) {
process(result, count, request.fetchRequest, request.type, data, aggregates, virtualRecords);
return;
}
if (!isSelector) {
fnQueryChild(result, request);
}
;
}).catch(function (e) { return _this.dataManagerFailure(e, deffered, args); });
};
var req = this.extendRequest(url, fnSuccess, fnFail);
if (!this.isCustomDataAdaptor(this.adaptor)) {
var fetch_1 = new Fetch(req);
fetch_1.beforeSend = function () {
_this.beforeSend(fetch_1.fetchRequest, fetch_1);
};
req = fetch_1.send();
req.catch(function (e) { return true; }); // to handle failure remote requests.
this.requests.push(fetch_1);
var promise = this.useMiddleware(req);
var fetch_1;
promise.then(function (response) {
fetch_1 = new Fetch(req);
fetch_1.beforeSend = function () {
_this.beforeSend(fetch_1.fetchRequest, fetch_1, response);
};
req = fetch_1.send();
req.catch(function (e) { return true; });
_this.requests.push(fetch_1);
}).catch(function (e) { return _this.dataManagerFailure(e, deffered, args); });
}

@@ -452,6 +577,81 @@ else {

};
DataManager.prototype.beforeSend = function (request, settings) {
/**
* @param {Error} e - specifies the string
* @param {Deferred} deffered - specifies the deffered
* @param {RequestOptions} args - specifies the RequestOptions
* @hidden
*/
DataManager.prototype.dataManagerFailure = function (e, deffered, args) {
args.error = e;
deffered.reject(args);
};
DataManager.prototype.afterReponseRequest = function (data) {
return __awaiter(this, void 0, void 0, function () {
var reponse, deffered;
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, this.applyPostRequestMiddlewares(data)];
case 1:
reponse = _a.sent();
deffered = new Deferred();
deffered.resolve(reponse);
return [2 /*return*/, deffered.promise];
}
});
});
};
/**
* Processes the middleware stack after receiving the response.
* @param {Response} response - The response object.
* @returns {Response} - The potentially modified response.
*/
DataManager.prototype.applyPostRequestMiddlewares = function (response) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2 /*return*/, response];
});
});
};
/**
* Registers a new middleware in the DataManager.
* @param {Middleware} middleware - The middleware instance to register.
* @returns {void}
*/
DataManager.prototype.useMiddleware = function (request) {
return __awaiter(this, void 0, void 0, function () {
var reponse, deffered;
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, this.applyPreRequestMiddlewares(request)];
case 1:
reponse = _a.sent();
deffered = new Deferred();
deffered.resolve(reponse);
return [2 /*return*/, deffered.promise];
}
});
});
};
/**
* Processes the middleware stack before sending the request.
* @param {Request} request - The request object.
* @returns {Request} - The potentially modified request.
*/
DataManager.prototype.applyPreRequestMiddlewares = function (request) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2 /*return*/, request];
});
});
};
DataManager.prototype.beforeSend = function (request, settings, response) {
this.adaptor.beforeSend(this, request, settings);
var headers = this.dataSource.headers;
var headers = [];
if (this.dataSource.headers) {
headers = headers.concat(this.dataSource.headers);
}
var props;
if (response && response.headers) {
headers = headers.concat(response.headers);
}
for (var i = 0; headers && i < headers.length; i++) {

@@ -590,2 +790,5 @@ props = [];

}
if (this.isEnableCache) {
this.cacheQuery = this.generateKey(this.dataSource.url, query);
}
var res = this.adaptor.update(this, keyField, value, tableName, query, original);

@@ -630,2 +833,23 @@ var dofetchRequest = 'dofetchRequest';

}
if (this.isEnableCache) {
var requests = JSON.parse(request.data);
if (requests.action === 'insert' || requests.action === 'remove') {
var obj = { keys: [], results: [] };
window.localStorage.setItem(this.guidId, JSON.stringify(obj));
}
else if (requests.action === 'update') {
var cachedItems = JSON.parse(window.localStorage.getItem(this.guidId));
var data = cachedItems ? cachedItems.results[cachedItems.keys.indexOf(this.cacheQuery)] : null;
if (data && data.result) {
var cacheData = data.result;
for (var i = 0; i < cacheData.length; i++) {
if (cacheData[i][requests.keyColumn] === requests.key) {
cacheData[i] = requests.value;
window.localStorage.setItem(this.guidId, JSON.stringify(cachedItems));
break;
}
}
}
}
}
record = this.adaptor.processResponse(DataUtil.parse.parseJson(record), this, null, request.fetchRequest, request, changes);

@@ -635,2 +859,5 @@ this.fetchDeffered.resolve(record);

DataManager.prototype.failureFunc = function (e) {
if (this.isEnableCache) {
this.cacheQuery = '';
}
this.fetchDeffered.reject([{ error: e }]);

@@ -637,0 +864,0 @@ };

@@ -254,3 +254,3 @@ import { DataManager } from './manager';

/** @hidden */
value: string | number | Date | boolean | Predicate | Predicate[] | null;
value: string | number | Date | boolean | Predicate | Predicate[] | (string | number | boolean | Date)[] | null;
/** @hidden */

@@ -270,3 +270,3 @@ condition: string;

comparer: Function;
[x: string]: string | number | Date | boolean | Predicate | Predicate[] | Function | null;
[x: string]: string | number | Date | boolean | Predicate | Predicate[] | Function | (string | number | boolean | Date)[] | null;
/**

@@ -277,3 +277,3 @@ * Constructor for Predicate class.

* @param {string} operator
* @param {string|number|boolean|Predicate|Predicate[]} value
* @param {string | number | Date | boolean | Predicate | Predicate[] | (string | number | boolean | Date)[] | null} value
* @param {boolean=false} ignoreCase

@@ -284,3 +284,3 @@ * @param ignoreAccent

*/
constructor(field: string | Predicate, operator: string, value: string | number | Date | boolean | Predicate | Predicate[] | null, ignoreCase?: boolean, ignoreAccent?: boolean, matchCase?: boolean);
constructor(field: string | Predicate, operator: string, value: string | number | Date | boolean | Predicate | Predicate[] | (string | number | boolean | Date)[] | null, ignoreCase?: boolean, ignoreAccent?: boolean, matchCase?: boolean);
/**

@@ -404,3 +404,3 @@ * Adds n-number of new predicates on existing predicate with “and” condition.

key?: string;
value?: string | number | Date | boolean | Predicate | Predicate[];
value?: string | number | Date | boolean | Predicate | Predicate[] | (string | number | boolean | Date)[];
isComplex?: boolean;

@@ -407,0 +407,0 @@ predicates?: Predicate[];

@@ -476,3 +476,3 @@ /* eslint-disable valid-jsdoc */

* @param {string} operator
* @param {string|number|boolean|Predicate|Predicate[]} value
* @param {string | number | Date | boolean | Predicate | Predicate[] | (string | number | boolean | Date)[] | null} value
* @param {boolean=false} ignoreCase

@@ -479,0 +479,0 @@ * @param ignoreAccent

@@ -186,8 +186,9 @@ import { DataManager } from './manager';

*
* @param {Object[]} ds - Defines the input data.
* @param {Object[]} dataSource - Defines the input data.
* @param {string} field - Defines the field to be sorted.
* @param {Function} comparer - Defines the comparer function used to sort the records.
*/
static sort(ds: Object[], field: string, comparer: Function): Object[];
static ignoreDiacritics(value: string | number | boolean): string | Object;
static sort(dataSource: Object[], field: string, comparer: Function): Object[];
static ignoreDiacritics(value: string | number | Date | boolean): string | Object;
static ignoreDiacriticsForArrays(valueArray: Array<string | number | Date>): Array<string | number>;
private static merge;

@@ -361,2 +362,4 @@ private static getVal;

processOperator?: Function;
in?: Function;
notin?: Function;
}

@@ -363,0 +366,0 @@ /**

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display