Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Socket
Sign inDemoInstall

@loaders.gl/schema

Package Overview
Dependencies
Maintainers
9
Versions
187
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@loaders.gl/schema - npm Package Compare versions

Comparing version 4.1.0-alpha.2 to 4.1.0-alpha.3

53

dist/dist.dev.js

@@ -123,2 +123,3 @@ (function webpackUniversalModuleDefinition(root, factory) {

}
this.shape = "array-row-table";
this.rows = this.rows || new Array(DEFAULT_ROW_COUNT);

@@ -132,2 +133,3 @@ this.rows[this.length] = row;

}
this.shape = "object-row-table";
this.rows = this.rows || new Array(DEFAULT_ROW_COUNT);

@@ -145,3 +147,3 @@ this.rows[this.length] = row;

const batch = {
shape: this.options.shape,
shape: this.shape || "array-row-table",
batchType: "data",

@@ -162,8 +164,12 @@ data: rows,

}
if (!headers) {
throw new Error("no headers");
}
const objectRow = {};
for (let i = 0; i < headers.length; i++) {
objectRow[headers[i]] = arrayRow[i];
if (headers) {
for (let i = 0; i < headers.length; i++) {
objectRow[headers[i]] = arrayRow[i];
}
} else {
for (let i = 0; i < arrayRow.length; i++) {
const columnName = `column-${i}`;
objectRow[columnName] = arrayRow[i];
}
}

@@ -176,11 +182,22 @@ return objectRow;

}
if (!headers) {
throw new Error("no headers");
if (headers) {
const arrayRow = new Array(headers.length);
for (let i = 0; i < headers.length; i++) {
arrayRow[i] = objectRow[headers[i]];
}
return arrayRow;
}
const arrayRow = new Array(headers.length);
for (let i = 0; i < headers.length; i++) {
arrayRow[i] = objectRow[headers[i]];
return Object.values(objectRow);
}
function inferHeadersFromArrayRow(arrayRow) {
const headers = [];
for (let i = 0; i < arrayRow.length; i++) {
const columnName = `column-${i}`;
headers.push(columnName);
}
return arrayRow;
return headers;
}
function inferHeadersFromObjectRow(row) {
return Object.keys(row);
}

@@ -194,7 +211,7 @@ // src/lib/table/batches/row-table-batch-aggregator.ts

cursor = 0;
_headers = [];
_headers = null;
constructor(schema, options) {
this.options = options;
this.schema = schema;
if (!Array.isArray(schema)) {
if (schema) {
this._headers = [];

@@ -213,2 +230,3 @@ for (const key in schema) {

}
this._headers ||= inferHeadersFromArrayRow(row);
switch (this.options.shape) {

@@ -230,2 +248,3 @@ case "object-row-table":

}
this._headers ||= inferHeadersFromObjectRow(row);
switch (this.options.shape) {

@@ -340,3 +359,3 @@ case "array-row-table":

var DEFAULT_OPTIONS = {
shape: "array-row-table",
shape: void 0,
batchSize: "auto",

@@ -453,4 +472,2 @@ batchDebounceMs: 0,

switch (this.options.shape) {
case "row-table":
return BaseTableBatchAggregator;
case "array-row-table":

@@ -467,3 +484,3 @@ case "object-row-table":

default:
throw new Error(ERR_MESSAGE);
return BaseTableBatchAggregator;
}

@@ -470,0 +487,0 @@ }

@@ -7,2 +7,3 @@ import type { Schema } from '../../../types/schema';

options: TableBatchOptions;
shape?: 'array-row-table' | 'object-row-table';
length: number;

@@ -9,0 +10,0 @@ rows: any[] | null;

@@ -6,2 +6,3 @@ const DEFAULT_ROW_COUNT = 100;

this.options = void 0;
this.shape = void 0;
this.length = 0;

@@ -27,2 +28,3 @@ this.rows = null;

}
this.shape = 'array-row-table';
this.rows = this.rows || new Array(DEFAULT_ROW_COUNT);

@@ -36,2 +38,3 @@ this.rows[this.length] = row;

}
this.shape = 'object-row-table';
this.rows = this.rows || new Array(DEFAULT_ROW_COUNT);

@@ -49,3 +52,3 @@ this.rows[this.length] = row;

const batch = {
shape: this.options.shape,
shape: this.shape || 'array-row-table',
batchType: 'data',

@@ -52,0 +55,0 @@ data: rows,

@@ -5,3 +5,3 @@ import type { Schema } from '../../../types/schema';

export declare class RowTableBatchAggregator implements TableBatchAggregator {
schema: Schema;
schema: Schema | null;
options: TableBatchOptions;

@@ -15,3 +15,3 @@ length: number;

private _headers;
constructor(schema: Schema, options: TableBatchOptions);
constructor(schema: Schema | null, options: TableBatchOptions);
rowCount(): number;

@@ -18,0 +18,0 @@ addArrayRow(row: any[], cursor?: number): void;

@@ -1,2 +0,2 @@

import { convertToArrayRow, convertToObjectRow } from "../simple-table/row-utils.js";
import { convertToArrayRow, convertToObjectRow, inferHeadersFromArrayRow, inferHeadersFromObjectRow } from "../simple-table/row-utils.js";
const DEFAULT_ROW_COUNT = 100;

@@ -11,6 +11,6 @@ export class RowTableBatchAggregator {

this.cursor = 0;
this._headers = [];
this._headers = null;
this.options = options;
this.schema = schema;
if (!Array.isArray(schema)) {
if (schema) {
this._headers = [];

@@ -29,2 +29,3 @@ for (const key in schema) {

}
this._headers || (this._headers = inferHeadersFromArrayRow(row));
switch (this.options.shape) {

@@ -46,2 +47,3 @@ case 'object-row-table':

}
this._headers || (this._headers = inferHeadersFromObjectRow(row));
switch (this.options.shape) {

@@ -48,0 +50,0 @@ case 'array-row-table':

@@ -5,7 +5,7 @@ import type { Schema } from '../../../types/schema';

type TableBatchBuilderOptions = {
shape: 'row-table' | 'array-row-table' | 'object-row-table' | 'columnar-table' | 'arrow-table';
shape?: 'array-row-table' | 'object-row-table' | 'columnar-table' | 'arrow-table';
batchSize?: number | 'auto';
batchDebounceMs?: number;
limit: number;
_limitMB: number;
limit?: number;
_limitMB?: number;
};

@@ -12,0 +12,0 @@ type GetBatchOptions = {

@@ -5,3 +5,3 @@ import { BaseTableBatchAggregator } from "./base-table-batch-aggregator.js";

const DEFAULT_OPTIONS = {
shape: 'array-row-table',
shape: undefined,
batchSize: 'auto',

@@ -121,4 +121,2 @@ batchDebounceMs: 0,

switch (this.options.shape) {
case 'row-table':
return BaseTableBatchAggregator;
case 'array-row-table':

@@ -135,3 +133,3 @@ case 'object-row-table':

default:
throw new Error(ERR_MESSAGE);
return BaseTableBatchAggregator;
}

@@ -138,0 +136,0 @@ }

/** Convert an object row to an array row */
export declare function convertToObjectRow(arrayRow: any[], headers: string[]): {
[columnName: string]: any;
export declare function convertToObjectRow(arrayRow: unknown[], headers: string[] | null): {
[columnName: string]: unknown;
};
/** Convert an object row to an array row */
export declare function convertToArrayRow(objectRow: {
[columnName: string]: any;
}, headers: string[]): any[];
[columnName: string]: unknown;
}, headers: string[] | null): unknown[];
/** Get headers from a sample array row */
export declare function inferHeadersFromArrayRow(arrayRow: unknown[]): string[];
/** Get headers from a smaple object row */
export declare function inferHeadersFromObjectRow(row: {
[columnName: string]: unknown;
}): string[];
//# sourceMappingURL=row-utils.d.ts.map

@@ -5,8 +5,12 @@ export function convertToObjectRow(arrayRow, headers) {

}
if (!headers) {
throw new Error('no headers');
}
const objectRow = {};
for (let i = 0; i < headers.length; i++) {
objectRow[headers[i]] = arrayRow[i];
if (headers) {
for (let i = 0; i < headers.length; i++) {
objectRow[headers[i]] = arrayRow[i];
}
} else {
for (let i = 0; i < arrayRow.length; i++) {
const columnName = `column-${i}`;
objectRow[columnName] = arrayRow[i];
}
}

@@ -19,11 +23,22 @@ return objectRow;

}
if (!headers) {
throw new Error('no headers');
if (headers) {
const arrayRow = new Array(headers.length);
for (let i = 0; i < headers.length; i++) {
arrayRow[i] = objectRow[headers[i]];
}
return arrayRow;
}
const arrayRow = new Array(headers.length);
for (let i = 0; i < headers.length; i++) {
arrayRow[i] = objectRow[headers[i]];
return Object.values(objectRow);
}
export function inferHeadersFromArrayRow(arrayRow) {
const headers = [];
for (let i = 0; i < arrayRow.length; i++) {
const columnName = `column-${i}`;
headers.push(columnName);
}
return arrayRow;
return headers;
}
export function inferHeadersFromObjectRow(row) {
return Object.keys(row);
}
//# sourceMappingURL=row-utils.js.map
{
"name": "@loaders.gl/schema",
"version": "4.1.0-alpha.2",
"version": "4.1.0-alpha.3",
"description": "Table format APIs for JSON, CSV, etc...",

@@ -45,3 +45,3 @@ "license": "MIT",

},
"gitHead": "a248382edd20e846c1ccb23c15d089fb9b368dbc"
"gitHead": "b78075a7cb8d4ecd4aac84805ce74b8ceb400cf7"
}

@@ -1,2 +0,3 @@

// loaders.gl, MIT license
// loaders.gl
// SPDX-License-Identifier: MIT
// Copyright (c) vis.gl contributors

@@ -3,0 +4,0 @@

@@ -1,2 +0,3 @@

// loaders.gl, MIT license
// loaders.gl
// SPDX-License-Identifier: MIT
// Copyright (c) vis.gl contributors

@@ -3,0 +4,0 @@

@@ -1,2 +0,3 @@

// loaders.gl, MIT license
// loaders.gl
// SPDX-License-Identifier: MIT
// Copyright (c) vis.gl contributors

@@ -3,0 +4,0 @@

@@ -1,2 +0,3 @@

// loaders.gl, MIT license
// loaders.gl
// SPDX-License-Identifier: MIT
// Copyright (c) vis.gl contributors

@@ -3,0 +4,0 @@

@@ -1,2 +0,3 @@

// loaders.gl, MIT license
// loaders.gl
// SPDX-License-Identifier: MIT
// Copyright (c) vis.gl contributors

@@ -3,0 +4,0 @@

@@ -1,2 +0,3 @@

// loaders.gl, MIT license
// loaders.gl
// SPDX-License-Identifier: MIT
// Copyright (c) vis.gl contributors

@@ -3,0 +4,0 @@

@@ -1,2 +0,3 @@

// loaders.gl, MIT license
// loaders.gl
// SPDX-License-Identifier: MIT
// Copyright (c) vis.gl contributors

@@ -3,0 +4,0 @@

@@ -1,2 +0,3 @@

// loaders.gl, MIT license
// loaders.gl
// SPDX-License-Identifier: MIT
// Copyright (c) vis.gl contributors

@@ -3,0 +4,0 @@

@@ -1,2 +0,3 @@

// loaders.gl, MIT license
// loaders.gl
// SPDX-License-Identifier: MIT
// Copyright (c) vis.gl contributors

@@ -3,0 +4,0 @@

@@ -1,2 +0,3 @@

// loaders.gl, MIT license
// loaders.gl
// SPDX-License-Identifier: MIT
// Copyright (c) vis.gl contributors

@@ -3,0 +4,0 @@

@@ -1,2 +0,3 @@

// loaders.gl, MIT license
// loaders.gl
// SPDX-License-Identifier: MIT
// Copyright (c) vis.gl contributors

@@ -3,0 +4,0 @@

@@ -1,2 +0,3 @@

// loaders.gl, MIT license
// loaders.gl
// SPDX-License-Identifier: MIT
// Copyright (c) vis.gl contributors

@@ -14,2 +15,3 @@

shape?: 'array-row-table' | 'object-row-table';
length: number = 0;

@@ -43,2 +45,4 @@ rows: any[] | null = null;

this.shape = 'array-row-table';
this.rows = this.rows || new Array(DEFAULT_ROW_COUNT);

@@ -54,2 +58,4 @@ this.rows[this.length] = row;

this.shape = 'object-row-table';
this.rows = this.rows || new Array(DEFAULT_ROW_COUNT);

@@ -70,3 +76,3 @@ this.rows[this.length] = row;

const batch: TableBatch = {
shape: this.options.shape,
shape: this.shape || 'array-row-table',
batchType: 'data',

@@ -73,0 +79,0 @@ data: rows,

@@ -1,2 +0,3 @@

// loaders.gl, MIT license
// loaders.gl
// SPDX-License-Identifier: MIT
// Copyright (c) vis.gl contributors

@@ -3,0 +4,0 @@

@@ -1,2 +0,3 @@

// loaders.gl, MIT license
// loaders.gl
// SPDX-License-Identifier: MIT
// Copyright (c) vis.gl contributors

@@ -6,5 +7,9 @@

import type {TableBatch} from '../../../types/category-table';
// import type {ArrayRowTableBatch, ObjectRowTableBatch} from '../../category/table';
import {convertToArrayRow, convertToObjectRow} from '../simple-table/row-utils';
import {TableBatchAggregator, TableBatchOptions} from './table-batch-aggregator';
import {
convertToArrayRow,
convertToObjectRow,
inferHeadersFromArrayRow,
inferHeadersFromObjectRow
} from '../simple-table/row-utils';

@@ -14,3 +19,3 @@ const DEFAULT_ROW_COUNT = 100;

export class RowTableBatchAggregator implements TableBatchAggregator {
schema: Schema;
schema: Schema | null;
options: TableBatchOptions;

@@ -22,5 +27,5 @@

cursor: number = 0;
private _headers: string[] = [];
private _headers: string[] | null = null;
constructor(schema: Schema, options: TableBatchOptions) {
constructor(schema: Schema | null, options: TableBatchOptions) {
this.options = options;

@@ -31,3 +36,3 @@ this.schema = schema;

// object if there are headers
if (!Array.isArray(schema)) {
if (schema) {
this._headers = [];

@@ -49,2 +54,5 @@ for (const key in schema) {

// TODO - infer schema at a higher level, instead of hacking headers here?
this._headers ||= inferHeadersFromArrayRow(row);
// eslint-disable-next-line default-case

@@ -69,2 +77,5 @@ switch (this.options.shape) {

// TODO - infer schema at a higher level, instead of hacking headers here?
this._headers ||= inferHeadersFromObjectRow(row);
// eslint-disable-next-line default-case

@@ -99,2 +110,3 @@ switch (this.options.shape) {

length: this.length,
// @ts-expect-error we should infer a schema
schema: this.schema,

@@ -101,0 +113,0 @@ cursor: this.cursor

@@ -1,2 +0,3 @@

// loaders.gl, MIT license
// loaders.gl
// SPDX-License-Identifier: MIT
// Copyright (c) vis.gl contributors

@@ -3,0 +4,0 @@

@@ -1,2 +0,3 @@

// loaders.gl, MIT license
// loaders.gl
// SPDX-License-Identifier: MIT
// Copyright (c) vis.gl contributors

@@ -13,7 +14,7 @@

type TableBatchBuilderOptions = {
shape: 'row-table' | 'array-row-table' | 'object-row-table' | 'columnar-table' | 'arrow-table';
shape?: 'array-row-table' | 'object-row-table' | 'columnar-table' | 'arrow-table';
batchSize?: number | 'auto';
batchDebounceMs?: number;
limit: number;
_limitMB: number;
limit?: number;
_limitMB?: number;
};

@@ -27,3 +28,3 @@

const DEFAULT_OPTIONS: Required<TableBatchBuilderOptions> = {
shape: 'array-row-table',
shape: undefined!,
batchSize: 'auto',

@@ -177,4 +178,2 @@ batchDebounceMs: 0,

switch (this.options.shape) {
case 'row-table':
return BaseTableBatchAggregator;
case 'array-row-table':

@@ -191,5 +190,5 @@ case 'object-row-table':

default:
throw new Error(ERR_MESSAGE);
return BaseTableBatchAggregator;
}
}
}

@@ -1,2 +0,3 @@

// loaders.gl, MIT license
// loaders.gl
// SPDX-License-Identifier: MIT
// Copyright (c) vis.gl contributors

@@ -3,0 +4,0 @@

@@ -1,2 +0,3 @@

// loaders.gl, MIT license
// loaders.gl
// SPDX-License-Identifier: MIT
// Copyright (c) vis.gl contributors

@@ -3,0 +4,0 @@

@@ -1,2 +0,3 @@

// loaders.gl, MIT license
// loaders.gl
// SPDX-License-Identifier: MIT
// Copyright (c) vis.gl contributors

@@ -3,0 +4,0 @@

@@ -1,2 +0,3 @@

// loaders.gl, MIT license
// loaders.gl
// SPDX-License-Identifier: MIT
// Copyright (c) vis.gl contributors

@@ -3,0 +4,0 @@

@@ -1,2 +0,3 @@

// loaders.gl, MIT license
// loaders.gl
// SPDX-License-Identifier: MIT
// Copyright (c) vis.gl contributors

@@ -6,15 +7,19 @@

export function convertToObjectRow(
arrayRow: any[],
headers: string[]
): {[columnName: string]: any} {
arrayRow: unknown[],
headers: string[] | null
): {[columnName: string]: unknown} {
if (!arrayRow) {
throw new Error('null row');
}
if (!headers) {
throw new Error('no headers');
const objectRow: {[columnName: string]: unknown} = {};
if (headers) {
for (let i = 0; i < headers.length; i++) {
objectRow[headers[i]] = arrayRow[i];
}
} else {
for (let i = 0; i < arrayRow.length; i++) {
const columnName = `column-${i}`;
objectRow[columnName] = arrayRow[i];
}
}
const objectRow = {};
for (let i = 0; i < headers.length; i++) {
objectRow[headers[i]] = arrayRow[i];
}
return objectRow;

@@ -25,16 +30,32 @@ }

export function convertToArrayRow(
objectRow: {[columnName: string]: any},
headers: string[]
): any[] {
objectRow: {[columnName: string]: unknown},
headers: string[] | null
): unknown[] {
if (!objectRow) {
throw new Error('null row');
}
if (!headers) {
throw new Error('no headers');
if (headers) {
const arrayRow = new Array(headers.length);
for (let i = 0; i < headers.length; i++) {
arrayRow[i] = objectRow[headers[i]];
}
return arrayRow;
}
const arrayRow = new Array(headers.length);
for (let i = 0; i < headers.length; i++) {
arrayRow[i] = objectRow[headers[i]];
return Object.values(objectRow);
}
/** Get headers from a sample array row */
export function inferHeadersFromArrayRow(arrayRow: unknown[]) {
const headers: string[] = [];
for (let i = 0; i < arrayRow.length; i++) {
const columnName = `column-${i}`;
headers.push(columnName);
}
return arrayRow;
return headers;
}
/** Get headers from a smaple object row */
export function inferHeadersFromObjectRow(row: {[columnName: string]: unknown}) {
return Object.keys(row);
}

@@ -1,2 +0,3 @@

// loaders.gl, MIT license
// loaders.gl
// SPDX-License-Identifier: MIT
// Copyright (c) vis.gl contributors

@@ -3,0 +4,0 @@

@@ -1,2 +0,3 @@

// loaders.gl, MIT license
// loaders.gl
// SPDX-License-Identifier: MIT
// Copyright (c) vis.gl contributors

@@ -3,0 +4,0 @@

@@ -1,2 +0,3 @@

// loaders.gl, MIT license
// loaders.gl
// SPDX-License-Identifier: MIT
// Copyright (c) vis.gl contributors

@@ -3,0 +4,0 @@

@@ -1,2 +0,3 @@

// loaders.gl, MIT license
// loaders.gl
// SPDX-License-Identifier: MIT
// Copyright (c) vis.gl contributors

@@ -3,0 +4,0 @@

@@ -1,2 +0,3 @@

// loaders.gl, MIT license
// loaders.gl
// SPDX-License-Identifier: MIT
// Copyright (c) vis.gl contributors

@@ -3,0 +4,0 @@

@@ -1,2 +0,3 @@

// loaders.gl, MIT license
// loaders.gl
// SPDX-License-Identifier: MIT
// Copyright (c) vis.gl contributors

@@ -3,0 +4,0 @@

@@ -1,2 +0,3 @@

// loaders.gl, MIT license
// loaders.gl
// SPDX-License-Identifier: MIT
// Copyright (c) vis.gl contributors

@@ -3,0 +4,0 @@

@@ -1,2 +0,3 @@

// loaders.gl, MIT license
// loaders.gl
// SPDX-License-Identifier: MIT
// Copyright (c) vis.gl contributors

@@ -3,0 +4,0 @@

@@ -1,2 +0,3 @@

// loaders.gl, MIT license
// loaders.gl
// SPDX-License-Identifier: MIT
// Copyright (c) vis.gl contributors

@@ -3,0 +4,0 @@

@@ -1,2 +0,3 @@

// loaders.gl, MIT license
// loaders.gl
// SPDX-License-Identifier: MIT
// Copyright (c) vis.gl contributors

@@ -3,0 +4,0 @@

@@ -1,2 +0,3 @@

// loaders.gl, MIT license
// loaders.gl
// SPDX-License-Identifier: MIT
// Copyright (c) vis.gl contributors

@@ -3,0 +4,0 @@

@@ -1,2 +0,3 @@

// loaders.gl, MIT license
// loaders.gl
// SPDX-License-Identifier: MIT
// Copyright (c) vis.gl contributors

@@ -3,0 +4,0 @@

@@ -1,2 +0,3 @@

// loaders.gl, MIT license
// loaders.gl
// SPDX-License-Identifier: MIT
// Copyright (c) vis.gl contributors

@@ -3,0 +4,0 @@

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

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