Socket
Socket
Sign inDemoInstall

@syncfusion/ej2-grids

Package Overview
Dependencies
Maintainers
2
Versions
369
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@syncfusion/ej2-grids - npm Package Compare versions

Comparing version 16.2.44 to 16.2.45

14

CHANGELOG.md

@@ -9,3 +9,17 @@ # Changelog

- Edit params is not properly applied for foreign key column is resolved.
- Batch edit for Template column is fixed.
- ng-compiler for filter itemTemplate property is fixed.
- Operators are not maintained while filtering multiple columns with filterbar issue resolved.
- Display of raw HTML when dragging column header to group area is resolved.
- Grid displays fine when enable/disable `enableVirtualization` dynamically.
## 16.2.44 (2018-07-10)
### Grid
#### Bug Fixes
- Dynamic aggregate columns enabled is not working issue resolved.
- Custom aggregate is not applied in MVC

@@ -12,0 +26,0 @@ ## 16.2.43 (2018-07-03)

9

dist/global/index.d.ts

@@ -1,10 +0,1 @@

/*!
* filename: index.d.ts
* version : 16.2.44
* Copyright Syncfusion Inc. 2001 - 2018. All rights reserved.
* Use of this code is subject to the terms of our license.
* A copy of the current license can be obtained at any time by e-mailing
* licensing@syncfusion.com. Any infringement will be prosecuted under
* applicable laws.
*/
import * as _grids from '@syncfusion/ej2-grids';

@@ -11,0 +2,0 @@ import * as _base from '@syncfusion/ej2-base';

30

package.json
{
"name": "@syncfusion/ej2-grids",
"version": "16.2.44",
"version": "16.2.45",
"description": "Essential JS 2 Grid Component",

@@ -11,16 +11,16 @@ "author": "Syncfusion Inc.",

"dependencies": {
"@syncfusion/ej2-base": "~16.2.41",
"@syncfusion/ej2-data": "~16.2.43",
"@syncfusion/ej2-navigations": "~16.2.44",
"@syncfusion/ej2-inputs": "~16.2.44",
"@syncfusion/ej2-calendars": "~16.2.44",
"@syncfusion/ej2-dropdowns": "~16.2.44",
"@syncfusion/ej2-popups": "~16.2.41",
"@syncfusion/ej2-buttons": "~16.2.41",
"@syncfusion/ej2-lists": "~16.2.41",
"@syncfusion/ej2-excel-export": "~16.2.41",
"@syncfusion/ej2-pdf-export": "~16.2.41",
"@syncfusion/ej2-file-utils": "~16.2.41",
"@syncfusion/ej2-compression": "~16.2.41",
"@syncfusion/ej2-splitbuttons": "~16.2.44"
"@syncfusion/ej2-base": "~16.2.45",
"@syncfusion/ej2-data": "~16.2.45",
"@syncfusion/ej2-navigations": "~16.2.45",
"@syncfusion/ej2-inputs": "~16.2.45",
"@syncfusion/ej2-calendars": "~16.2.45",
"@syncfusion/ej2-dropdowns": "~16.2.45",
"@syncfusion/ej2-popups": "~16.2.45",
"@syncfusion/ej2-buttons": "~16.2.45",
"@syncfusion/ej2-lists": "~16.2.45",
"@syncfusion/ej2-excel-export": "~16.2.45",
"@syncfusion/ej2-pdf-export": "~16.2.45",
"@syncfusion/ej2-file-utils": "~16.2.45",
"@syncfusion/ej2-compression": "~16.2.45",
"@syncfusion/ej2-splitbuttons": "~16.2.45"
},

@@ -27,0 +27,0 @@ "devDependencies": {

@@ -534,3 +534,3 @@ define(["require", "exports", "@syncfusion/ej2-base", "@syncfusion/ej2-base", "@syncfusion/ej2-base", "../base/enum", "../base/util", "../base/constant", "../renderer/row-renderer", "../renderer/cell-renderer", "../models/row", "../models/cell", "../services/row-model-generator"], function (require, exports, ej2_base_1, ej2_base_2, ej2_base_3, enum_1, util_1, events, row_renderer_1, cell_renderer_1, row_1, cell_1, row_model_generator_1) {

}
if ((keys[0] === col.field && !row.classList.contains('e-insertedrow')) || col.template || col.columns ||
if ((keys[0] === col.field && !row.classList.contains('e-insertedrow')) || col.columns ||
(col.isPrimaryKey && col.isIdentity)) {

@@ -631,3 +631,3 @@ return;

}
cell.refreshTD(td, rowcell[this.getCellIdx(column.uid) - (this.getCellIdx(column.uid) >= frzCols ? frzCols : 0)], rowObj.changes);
cell.refreshTD(td, rowcell[this.getCellIdx(column.uid) - (this.getCellIdx(column.uid) >= frzCols ? frzCols : 0)], rowObj.changes, { 'index': this.getCellIdx(column.uid) });
td.classList.add('e-updatedtd');

@@ -634,0 +634,0 @@ this.parent.notify(events.toolbarRefresh, {});

@@ -49,2 +49,3 @@ import { Query, DataManager } from '@syncfusion/ej2-data';

}, query?: Query): Promise<Object>;
private insert(query, args);
private executeQuery(query);

@@ -51,0 +52,0 @@ private formatGroupColumn(value, field);

@@ -88,3 +88,4 @@ define(["require", "exports", "@syncfusion/ej2-base", "@syncfusion/ej2-data", "../base/util", "../base/constant", "../services/value-formatter", "../actions/checkbox-filter"], function (require, exports, ej2_base_1, ej2_data_1, util_1, events, value_formatter_1, checkbox_filter_1) {

}
var fn = col.sortComparer && !this.isRemote() ? col.sortComparer.bind(col) : columns[i].direction;
var fn = col.sortComparer && !this.isRemote() ? col.sortComparer.bind(col) :
columns[i].direction;
if (gObj.groupSettings.columns.indexOf(columns[i].field) === -1) {

@@ -243,10 +244,16 @@ query.sortBy(col.field, fn);

return crud.then(function (result) {
return _this.executeQuery(query);
return _this.insert(query, args);
});
}
else {
return this.executeQuery(query);
return this.insert(query, args);
}
}
};
Data.prototype.insert = function (query, args) {
if (args.requestType === 'save') {
this.parent.notify(events.recordAdded, args);
}
return this.executeQuery(query);
};
Data.prototype.executeQuery = function (query) {

@@ -253,0 +260,0 @@ var _this = this;

@@ -333,7 +333,10 @@ define(["require", "exports", "@syncfusion/ej2-base", "@syncfusion/ej2-base", "@syncfusion/ej2-base", "@syncfusion/ej2-base", "../base/constant", "../renderer/edit-renderer", "../renderer/boolean-edit-cell", "../renderer/dropdown-edit-cell", "../renderer/numeric-edit-cell", "../renderer/default-edit-cell", "./inline-edit", "./batch-edit", "./dialog-edit", "@syncfusion/ej2-popups", "../base/util", "@syncfusion/ej2-inputs", "../renderer/datepicker-edit-cell", "@syncfusion/ej2-popups"], function (require, exports, ej2_base_1, ej2_base_2, ej2_base_3, ej2_base_4, events, edit_renderer_1, boolean_edit_cell_1, dropdown_edit_cell_1, numeric_edit_cell_1, default_edit_cell_1, inline_edit_1, batch_edit_1, dialog_edit_1, ej2_popups_1, util_1, ej2_inputs_1, datepicker_edit_cell_1, ej2_popups_2) {

var temp = col.edit.read;
if (typeof temp === 'string') {
temp = ej2_base_2.getValue(temp, window);
}
if (col.type !== 'checkbox') {
value = gObj.editModule.getValueFromType(col, col.edit.read(inputs[i]));
if (typeof temp === 'string') {
temp = ej2_base_2.getValue(temp, window);
value = gObj.editModule.getValueFromType(col, (temp)(inputs[i]));
}
else {
value = gObj.editModule.getValueFromType(col, col.edit.read(inputs[i]));
}
}

@@ -360,4 +363,11 @@ else {

var col = cols_1[_i];
var temp = col.edit.destroy;
if (col.edit.destroy) {
col.edit.destroy();
if (typeof temp === 'string') {
temp = ej2_base_2.getValue(temp, window);
temp();
}
else {
col.edit.destroy();
}
}

@@ -364,0 +374,0 @@ }

@@ -24,2 +24,3 @@ import { FilterSettings } from '../base/grid';

private values;
private cellText;
private nextFlMenuOpen;

@@ -26,0 +27,0 @@ private type;

@@ -9,2 +9,3 @@ define(["require", "exports", "@syncfusion/ej2-base", "../base/util", "@syncfusion/ej2-base", "@syncfusion/ej2-data", "../base/constant", "../base/enum", "../renderer/row-renderer", "../models/cell", "../models/row", "../renderer/filter-cell-renderer", "../base/util", "../renderer/filter-menu-renderer", "../actions/checkbox-filter", "../actions/excel-filter"], function (require, exports, ej2_base_1, util_1, ej2_base_2, ej2_data_1, events, enum_1, row_renderer_1, cell_1, row_1, filter_cell_renderer_1, util_2, filter_menu_renderer_1, checkbox_filter_1, excel_filter_1) {

this.values = {};
this.cellText = {};
this.nextFlMenuOpen = '';

@@ -318,3 +319,8 @@ this.type = { 'Menu': filter_menu_renderer_1.FilterMenuRenderer, 'CheckBox': checkbox_filter_1.CheckBoxFilter, 'Excel': excel_filter_1.ExcelFilter };

if (filterElement) {
filterElement.value = this.filterSettings.columns[i].value;
if (!ej2_base_1.isNullOrUndefined(this.cellText[this.filterSettings.columns[i].field])) {
filterElement.value = this.cellText[this.filterSettings.columns[i].field];
}
else {
filterElement.value = this.filterSettings.columns[i].value;
}
}

@@ -557,2 +563,3 @@ }

var filterValue;
this.cellText[this.column.field] = filterElement.value;
this.stopTimer();

@@ -559,0 +566,0 @@ if (!ej2_base_1.isNullOrUndefined(this.column.filterBarTemplate)) {

@@ -37,2 +37,3 @@ import { IGrid, NotifyArgs } from '../base/interface';

private updateCurrentViewData(data);
private requestSuccess(args);
private editSuccess(e, args);

@@ -39,0 +40,0 @@ private editFailure(e);

@@ -161,12 +161,16 @@ define(["require", "exports", "@syncfusion/ej2-base", "@syncfusion/ej2-base", "../base/util", "../base/constant", "../renderer/row-renderer"], function (require, exports, ej2_base_1, ej2_base_2, util_1, events, row_renderer_1) {

};
NormalEdit.prototype.requestSuccess = function (args) {
if (this.parent.editModule.formObj && !this.parent.editModule.formObj.isDestroyed) {
this.destroyElements();
this.stopEditStatus();
if (this.parent.editSettings.mode === 'Dialog' && args.action !== 'add') {
this.parent.element.querySelector('.e-dlgeditrow').classList.remove('e-dlgeditrow');
}
}
};
NormalEdit.prototype.editSuccess = function (e, args) {
var gObj = this.parent;
if (!ej2_base_2.isNullOrUndefined(e)) {
args.data = e;
}
this.destroyElements();
this.stopEditStatus();
if (gObj.editSettings.mode === 'Dialog' && args.action !== 'add') {
gObj.element.querySelector('.e-dlgeditrow').classList.remove('e-dlgeditrow');
}
this.requestSuccess(args);
this.parent.trigger(events.beforeDataBound, args);

@@ -323,2 +327,3 @@ args.type = events.actionComplete;

}
this.parent.on(events.recordAdded, this.requestSuccess, this);
this.parent.on(events.crudAction, this.editHandler, this);

@@ -335,2 +340,3 @@ this.parent.on(events.doubleTap, this.dblClickHandler, this);

}
this.parent.off(events.recordAdded, this.requestSuccess);
this.parent.off(events.crudAction, this.editHandler);

@@ -337,0 +343,0 @@ this.parent.off(events.doubleTap, this.dblClickHandler);

@@ -265,3 +265,3 @@ define(["require", "exports", "@syncfusion/ej2-base", "@syncfusion/ej2-base", "@syncfusion/ej2-base", "../base/util", "../base/constant", "../services/width-controller"], function (require, exports, ej2_base_1, ej2_base_2, ej2_base_3, util_1, constant_1, width_controller_1) {

}
if (_this.parent.frozenColumns) {
if (_this.parent.frozenColumns && _this.header.querySelector('.e-movableheader')) {
_this.header.querySelector('.e-movableheader').scrollLeft =

@@ -268,0 +268,0 @@ _this.content.querySelector('.e-movablecontent').scrollLeft;

@@ -304,1 +304,3 @@ /** @hidden */

export declare const frozenHeight: string;
/** @hidden */
export declare const recordAdded: string;

@@ -154,2 +154,3 @@ define(["require", "exports"], function (require, exports) {

exports.frozenHeight = 'frozenHeight';
exports.recordAdded = 'recordAdded';
});

@@ -445,7 +445,7 @@ import { Component, NumberFormatOptions, DateFormatOptions, EmitType, KeyboardEventArgs, L10n } from '@syncfusion/ej2-base';

export interface IEditCell {
create?: Element | Function;
read?: Object | Function;
write?: void | Function;
create?: Element | Function | string;
read?: Object | Function | string;
write?: void | Function | string;
params?: DatePickerModel | NumericTextBoxModel | DropDownListModel;
destroy?: Function;
destroy?: Function | string;
}

@@ -456,5 +456,5 @@ /**

export interface IFilterUI {
create?: Element | Function;
read?: Object | Function;
write?: void | Function;
create?: Element | Function | string;
read?: Object | Function | string;
write?: void | Function | string;
}

@@ -465,5 +465,5 @@ /**

export interface IFilterMUI {
create?: void | Function;
read?: Object | Function;
write?: void | Function;
create?: void | Function | string;
read?: Object | Function | string;
write?: void | Function | string;
}

@@ -815,3 +815,3 @@ /**

colSpan?: number;
/** Defines the cell datas */
/** Defines the cell data */
cell?: number | ExcelStyle | {

@@ -818,0 +818,0 @@ name: string;

@@ -10,3 +10,3 @@ define(["require", "exports", "@syncfusion/ej2-base", "@syncfusion/ej2-base", "@syncfusion/ej2-base", "@syncfusion/ej2-data", "../models/column", "@syncfusion/ej2-popups"], function (require, exports, ej2_base_1, ej2_base_2, ej2_base_3, ej2_data_1, column_1, ej2_popups_1) {

field = ej2_base_2.isNullOrUndefined(field) ? '' : field;
return ej2_base_2.getValue(field, data);
return ej2_data_1.DataUtil.getObject(field, data);
}

@@ -96,3 +96,4 @@ exports.valueAccessor = valueAccessor;

column.foreignKeyField = column.foreignKeyField || column.field;
column.valueAccessor = column.valueAccessor || valueAccessor;
column.valueAccessor = (typeof column.valueAccessor === 'string' ? ej2_base_2.getValue(column.valueAccessor, window)
: column.valueAccessor) || valueAccessor;
column.width = autoWidth && ej2_base_2.isNullOrUndefined(column.width) ? 200 : column.width;

@@ -242,3 +243,7 @@ if (ej2_base_2.isNullOrUndefined(column.visible)) {

if (type === 'Custom') {
return column.customAggregate ? column.customAggregate.call(context, data, column) : '';
var temp = column.customAggregate;
if (typeof temp === 'string') {
temp = ej2_base_2.getValue(temp, window);
}
return temp ? temp.call(context, data, column) : '';
}

@@ -245,0 +250,0 @@ return (column.field in data || data instanceof Array) ? ej2_data_1.DataUtil.aggregates[type.toLowerCase()](data, column.field) : null;

@@ -90,3 +90,3 @@ import { compile } from '@syncfusion/ej2-base';import { getEnumValue } from '@syncfusion/ej2-base';import { CustomSummaryType } from '../base/type';import { AggregateType, CellType } from '../base/enum';import { Property, Collection, ChildProperty, NumberFormatOptions, DateFormatOptions } from '@syncfusion/ej2-base';import { ValueFormatter } from '../services/value-formatter';

*/
customAggregate?: CustomSummaryType;
customAggregate?: CustomSummaryType | string;

@@ -93,0 +93,0 @@ }

@@ -86,3 +86,3 @@ import { CustomSummaryType } from '../base/type';

*/
customAggregate: CustomSummaryType;
customAggregate: CustomSummaryType | string;
/**

@@ -89,0 +89,0 @@ * @hidden

@@ -5,3 +5,3 @@ import { NumberFormatOptions, DateFormatOptions } from '@syncfusion/ej2-base';

import { TextAlign, ClipMode } from '../base/enum';
import { ValueAccessor } from '../base/type';
import { ValueAccessor, SortComparer } from '../base/type';
/**

@@ -186,3 +186,3 @@ * Represents Grid `Column` model class.

*/
valueAccessor: ValueAccessor;
valueAccessor: ValueAccessor | string;
/**

@@ -317,3 +317,3 @@ * The `filterBarTemplate` is used to add a custom component instead of default input component for filter bar.

*/
sortComparer: (x: number | string, y: number | string) => number;
sortComparer: SortComparer | string;
/**

@@ -571,3 +571,3 @@ * @hidden

*/
valueAccessor?: ValueAccessor;
valueAccessor?: ValueAccessor | string;
/**

@@ -720,3 +720,3 @@ * The `filterBarTemplate` is used to add a custom component instead of default input component for filter bar.

*/
sortComparer?: (x: number | string, y: number | string) => number;
sortComparer?: SortComparer | string;
/**

@@ -723,0 +723,0 @@ * @hidden

@@ -45,6 +45,6 @@ define(["require", "exports", "@syncfusion/ej2-base", "@syncfusion/ej2-data", "../services/value-formatter", "../base/util"], function (require, exports, ej2_base_1, ej2_data_1, value_formatter_1, util_1) {

this.editType = 'dropdownedit';
this.edit.params = {
this.edit.params = ej2_base_1.extend({
dataSource: this.dataSource,
query: new ej2_data_1.Query(), fields: { value: this.foreignKeyField || this.field, text: this.foreignKeyValue }
};
}, this.edit.params);
}

@@ -54,2 +54,5 @@ if (this.sortComparer) {

this.sortComparer = function comparer(x, y) {
if (typeof a_1 === 'string') {
a_1 = ej2_base_1.getValue(a_1, window);
}
if (this.sortDirection === 'Descending') {

@@ -56,0 +59,0 @@ var z = x;

@@ -46,3 +46,3 @@ define(["require", "exports", "@syncfusion/ej2-base", "./inline-edit-renderer", "./batch-edit-renderer", "./dialog-edit-renderer", "@syncfusion/ej2-base", "../base/enum", "../services/row-model-generator", "../base/util"], function (require, exports, ej2_base_1, inline_edit_renderer_1, batch_edit_renderer_1, dialog_edit_renderer_1, ej2_base_2, enum_1, row_model_generator_1, util_1) {

}
value = col.valueAccessor(col.field, args.rowData, col);
value = (col.valueAccessor(col.field, args.rowData, col));
if (frzCols && cols.indexOf(col) >= frzCols && gObj.editSettings.mode === 'Normal') {

@@ -56,6 +56,15 @@ cell = fForm.querySelector('[e-mappinguid=' + col.uid + ']');

if (!ej2_base_1.isNullOrUndefined(cell)) {
col.edit.write({
rowData: args.rowData, element: cell, column: col, requestType: args.requestType, type: args.type, row: args.row,
foreignKeyData: col.isForeignColumn() && ej2_base_1.getValue(col.field, args.foreignKeyData)
});
if (typeof temp === 'string') {
temp = ej2_base_1.getValue(temp, window);
temp({
rowData: args.rowData, element: cell, column: col, requestType: args.requestType, row: args.row,
foreignKeyData: col.isForeignColumn() && ej2_base_1.getValue(col.field, args.foreignKeyData)
});
}
else {
col.edit.write({
rowData: args.rowData, element: cell, column: col, requestType: args.requestType, row: args.row,
foreignKeyData: col.isForeignColumn() && ej2_base_1.getValue(col.field, args.foreignKeyData)
});
}
if (!isFocused && !cell.getAttribute('disabled')) {

@@ -103,7 +112,13 @@ this.focusElement(cell, args.type);

}
var value = col.valueAccessor(col.field, args.rowData, col);
var value = (col.valueAccessor(col.field, args.rowData, col));
var tArgs = { column: col, value: value, type: args.requestType, data: args.rowData };
var temp = col.edit.create;
var input = void 0;
input = col.edit.create(tArgs);
if (typeof temp === 'string') {
temp = ej2_base_1.getValue(temp, window);
input = temp(tArgs);
}
else {
input = col.edit.create(tArgs);
}
if (typeof input === 'string') {

@@ -110,0 +125,0 @@ var div = ej2_base_2.createElement('div');

@@ -43,3 +43,3 @@ define(["require", "exports", "@syncfusion/ej2-base", "@syncfusion/ej2-base", "@syncfusion/ej2-base", "../base/enum", "./row-renderer", "../models/cell", "../models/row", "../base/constant", "@syncfusion/ej2-base", "../base/util"], function (require, exports, ej2_base_1, ej2_base_2, ej2_base_3, enum_1, row_renderer_1, cell_1, row_1, events, ej2_base_4, util_1) {

else {
visualElement.textContent = headercelldiv ?
visualElement.innerHTML = headercelldiv ?
col.headerText : element.firstElementChild.innerHTML;

@@ -46,0 +46,0 @@ }

@@ -348,3 +348,4 @@ define(["require", "exports", "@syncfusion/ej2-base", "@syncfusion/ej2-base", "@syncfusion/ej2-data", "../services/value-formatter", "../base/enum", "../actions/data", "../models/row", "../models/cell", "../base/constant", "../base/util", "../renderer/content-renderer", "../renderer/header-renderer", "../renderer/cell-renderer", "../renderer/header-cell-renderer", "../renderer/stacked-cell-renderer", "../renderer/indent-cell-renderer", "../renderer/caption-cell-renderer", "../renderer/expand-cell-renderer", "../renderer/header-indent-renderer", "../renderer/detail-header-indent-renderer", "../renderer/detail-expand-cell-renderer"], function (require, exports, ej2_base_1, ej2_base_2, ej2_data_1, value_formatter_1, enum_1, data_1, row_1, cell_1, events, util_1, content_renderer_1, header_renderer_1, cell_renderer_1, header_cell_renderer_1, stacked_cell_renderer_1, indent_cell_renderer_1, caption_cell_renderer_1, expand_cell_renderer_1, header_indent_renderer_1, detail_header_indent_renderer_1, detail_expand_cell_renderer_1) {

if (type === 'Custom') {
element.aggregates[key] = column.customAggregate ? column.customAggregate.call(context, data, column) : '';
element.aggregates[key] = column.customAggregate ?
column.customAggregate.call(context, data, column) : '';
}

@@ -351,0 +352,0 @@ else {

@@ -26,10 +26,13 @@ define(["require", "exports", "@syncfusion/ej2-base", "@syncfusion/ej2-dropdowns"], function (require, exports, ej2_base_1, ej2_dropdowns_1) {

['5', '10', '12', '20', 'All']);
var defaultValue = (pageSizesArray).indexOf(this.pagerModule.pageSize.toString()) > -1 ? this.pagerModule.pageSize
: (pageSizesArray[0] === 'All' ? this.pagerModule.totalRecordsCount : parseInt(pageSizesArray[0], 10));
var defaultValue = this.pagerModule.pageSize;
this.dropDownListObject = new ej2_dropdowns_1.DropDownList({
dataSource: pageSizesArray,
value: defaultValue.toString(),
change: this.onChange.bind(this)
change: this.onChange.bind(this),
cssClass: 'e-alldrop'
});
this.dropDownListObject.appendTo(input);
if (pageSizesModule.length) {
this.dropDownListObject.element.value = this.pagerModule.pageSize.toString();
}
pagerObj.pageSize = defaultValue;

@@ -45,2 +48,5 @@ pagerObj.dataBind();

e.value = this.pagerModule.pageSize;
if (document.getElementsByClassName('e-popup-open e-alldrop').length) {
document.getElementsByClassName('e-alldrop')[1].style.display = 'none';
}
}

@@ -47,0 +53,0 @@ else {

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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc