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

@loaders.gl/terrain

Package Overview
Dependencies
Maintainers
8
Versions
271
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@loaders.gl/terrain - npm Package Compare versions

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

15

dist/es5/index.js

@@ -36,3 +36,2 @@ "use strict";

var _typecheckTerrainLoader = TerrainLoader;
exports._typecheckTerrainLoader = _typecheckTerrainLoader;

@@ -44,10 +43,8 @@ var QuantizedMeshLoader = _objectSpread(_objectSpread({}, _quantizedMeshLoader.QuantizedMeshLoader), {}, {

return _regenerator.default.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
return _context.abrupt("return", (0, _parseQuantizedMesh.default)(arrayBuffer, options));
case 1:
case "end":
return _context.stop();
}
while (1) switch (_context.prev = _context.next) {
case 0:
return _context.abrupt("return", (0, _parseQuantizedMesh.default)(arrayBuffer, options));
case 1:
case "end":
return _context.stop();
}

@@ -54,0 +51,0 @@ }, _callee);

6

dist/es5/lib/decode-quantized-mesh.js

@@ -12,4 +12,3 @@ "use strict";

function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
var QUANTIZED_MESH_HEADER = new Map([['centerX', Float64Array.BYTES_PER_ELEMENT], ['centerY', Float64Array.BYTES_PER_ELEMENT], ['centerZ', Float64Array.BYTES_PER_ELEMENT], ['minHeight', Float32Array.BYTES_PER_ELEMENT], ['maxHeight', Float32Array.BYTES_PER_ELEMENT], ['boundingSphereCenterX', Float64Array.BYTES_PER_ELEMENT], ['boundingSphereCenterY', Float64Array.BYTES_PER_ELEMENT], ['boundingSphereCenterZ', Float64Array.BYTES_PER_ELEMENT], ['boundingSphereRadius', Float64Array.BYTES_PER_ELEMENT], ['horizonOcclusionPointX', Float64Array.BYTES_PER_ELEMENT], ['horizonOcclusionPointY', Float64Array.BYTES_PER_ELEMENT], ['horizonOcclusionPointZ', Float64Array.BYTES_PER_ELEMENT]]);

@@ -172,4 +171,3 @@ function decodeZigZag(value) {

default:
{
}
{}
}

@@ -176,0 +174,0 @@ position += extensionLength;

@@ -19,3 +19,2 @@ "use strict";

this.triangles = [];
this._halfedges = [];

@@ -36,3 +35,2 @@ this._candidates = [];

var p3 = this._addPoint(x1, y1);
var t0 = this._addTriangle(p3, p0, p2, -1, -1, -1);

@@ -42,7 +40,5 @@ this._addTriangle(p0, p3, p1, t0, -1, -1);

}
(0, _createClass2.default)(Delatin, [{
key: "run",
value:
function run() {
value: function run() {
var maxError = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;

@@ -53,36 +49,26 @@ while (this.getMaxError() > maxError) {

}
}, {
key: "refine",
value:
function refine() {
value: function refine() {
this._step();
this._flush();
}
}, {
key: "getMaxError",
value:
function getMaxError() {
value: function getMaxError() {
return this._errors[0];
}
}, {
key: "getRMSD",
value:
function getRMSD() {
value: function getRMSD() {
return this._rmsSum > 0 ? Math.sqrt(this._rmsSum / (this.width * this.height)) : 0;
}
}, {
key: "heightAt",
value:
function heightAt(x, y) {
value: function heightAt(x, y) {
return this.data[this.width * y + x];
}
}, {
key: "_flush",
value:
function _flush() {
value: function _flush() {
var coords = this.coords;

@@ -98,7 +84,5 @@ for (var i = 0; i < this._pendingLen; i++) {

}
}, {
key: "_findCandidate",
value:
function _findCandidate(p0x, p0y, p1x, p1y, p2x, p2y, t) {
value: function _findCandidate(p0x, p0y, p1x, p1y, p2x, p2y, t) {
var minX = Math.min(p0x, p1x, p2x);

@@ -108,3 +92,2 @@ var minY = Math.min(p0y, p1y, p2y);

var maxY = Math.max(p0y, p1y, p2y);
var w00 = orient(p1x, p1y, p2x, p2y, minX, minY);

@@ -119,3 +102,2 @@ var w01 = orient(p2x, p2y, p0x, p0y, minX, minY);

var b20 = p2x - p0x;
var a = orient(p0x, p0y, p1x, p1y, p2x, p2y);

@@ -125,3 +107,2 @@ var z0 = this.heightAt(p0x, p0y) / a;

var z2 = this.heightAt(p2x, p2y) / a;
var maxError = 0;

@@ -149,3 +130,2 @@ var mx = 0;

wasInside = true;
var z = z0 * w0 + z1 * w1 + z2 * w2;

@@ -173,14 +153,10 @@ var dz = Math.abs(z - this.heightAt(x, y));

}
this._candidates[2 * t] = mx;
this._candidates[2 * t + 1] = my;
this._rms[t] = rms;
this._queuePush(t, maxError, rms);
}
}, {
key: "_step",
value:
function _step() {
value: function _step() {
var t = this._queuePop();

@@ -220,7 +196,5 @@ var e0 = t * 3 + 0;

}
}, {
key: "_addPoint",
value:
function _addPoint(x, y) {
value: function _addPoint(x, y) {
var i = this.coords.length >> 1;

@@ -230,18 +204,13 @@ this.coords.push(x, y);

}
}, {
key: "_addTriangle",
value:
function _addTriangle(a, b, c, ab, bc, ca) {
value: function _addTriangle(a, b, c, ab, bc, ca) {
var e = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : this.triangles.length;
var t = e / 3;
this.triangles[e + 0] = a;
this.triangles[e + 1] = b;
this.triangles[e + 2] = c;
this._halfedges[e + 0] = ab;
this._halfedges[e + 1] = bc;
this._halfedges[e + 2] = ca;
if (ab >= 0) {

@@ -256,3 +225,2 @@ this._halfedges[ab] = e + 0;

}
this._candidates[2 * t + 0] = 0;

@@ -262,5 +230,3 @@ this._candidates[2 * t + 1] = 0;

this._rms[t] = 0;
this._pending[this._pendingLen++] = t;
return e;

@@ -271,3 +237,2 @@ }

value: function _legalize(a) {
var b = this._halfedges[a];

@@ -302,7 +267,5 @@ if (b < 0) {

}
}, {
key: "_handleCollinear",
value:
function _handleCollinear(pn, a) {
value: function _handleCollinear(pn, a) {
var a0 = a - a % 3;

@@ -340,8 +303,5 @@ var al = a0 + (a + 1) % 3;

}
}, {
key: "_queuePush",
value:
function _queuePush(t, error, rms) {
value: function _queuePush(t, error, rms) {
var i = this._queue.length;

@@ -348,0 +308,0 @@ this._queueIndices[t] = i;

@@ -12,6 +12,4 @@ "use strict";

var outsideEdges = outsideIndices ? getOutsideEdgesFromIndices(outsideIndices, attributes.POSITION.value) : getOutsideEdgesFromTriangles(triangles);
var newPosition = new attributes.POSITION.value.constructor(outsideEdges.length * 6);
var newTexcoord0 = new attributes.TEXCOORD_0.value.constructor(outsideEdges.length * 4);
var newTriangles = new triangles.constructor(outsideEdges.length * 6);

@@ -38,3 +36,2 @@ for (var i = 0; i < outsideEdges.length; i++) {

}
function getOutsideEdgesFromTriangles(triangles) {

@@ -63,3 +60,2 @@ var edges = [];

}
function getOutsideEdgesFromIndices(indices, position) {

@@ -87,3 +83,2 @@ indices.westIndices.sort(function (a, b) {

}
function updateAttributesForNewEdge(_ref) {

@@ -100,12 +95,8 @@ var edge = _ref.edge,

var vertex2Offset = edgeIndex * 2 + 1;
newPosition.set(attributes.POSITION.value.subarray(edge[0] * 3, edge[0] * 3 + 3), vertex1Offset * 3);
newPosition[vertex1Offset * 3 + 2] = newPosition[vertex1Offset * 3 + 2] - skirtHeight;
newPosition.set(attributes.POSITION.value.subarray(edge[1] * 3, edge[1] * 3 + 3), vertex2Offset * 3);
newPosition[vertex2Offset * 3 + 2] = newPosition[vertex2Offset * 3 + 2] - skirtHeight;
newTexcoord0.set(attributes.TEXCOORD_0.value.subarray(edge[0] * 2, edge[0] * 2 + 2), vertex1Offset * 2);
newTexcoord0.set(attributes.TEXCOORD_0.value.subarray(edge[1] * 2, edge[1] * 2 + 2), vertex2Offset * 2);
var triangle1Offset = edgeIndex * 2 * 3;

@@ -112,0 +103,0 @@ newTriangles[triangle1Offset] = edge[0];

@@ -29,5 +29,3 @@ "use strict";

var positions = new Float32Array(nCoords * 3);
var texCoords = new Float32Array(nCoords * 2);
for (var i = 0; i < nCoords; i++) {

@@ -54,3 +52,2 @@ var x = vertexData[i] / 32767;

}
function getTileMesh(arrayBuffer, options) {

@@ -71,3 +68,2 @@ if (!arrayBuffer) {

var attributes = getMeshAttributes(vertexData, header, bounds);
var boundingBox = (0, _schema.getMeshBoundingBox)(attributes);

@@ -74,0 +70,0 @@ if (options.skirtHeight) {

@@ -23,3 +23,2 @@ "use strict";

offset = elevationDecoder.offset;
var terrain = new Float32Array((width + 1) * (height + 1));

@@ -79,3 +78,2 @@ for (var i = 0, y = 0; y < height; y++) {

}
function getMesh(terrainImage, terrainOptions) {

@@ -117,3 +115,2 @@ if (terrainImage === null) {

var attributes = getMeshAttributes(vertices, terrain, width, height, bounds);
var boundingBox = (0, _schema.getMeshBoundingBox)(attributes);

@@ -143,3 +140,2 @@ if (terrainOptions.skirtHeight) {

}
function getMartiniTileMesh(meshMaxError, width, terrain) {

@@ -157,3 +153,2 @@ var gridSize = width + 1;

}
function getDelatinTileMesh(meshMaxError, width, height, terrain) {

@@ -177,20 +172,18 @@ var tin = new _delatin.default(terrain, width + 1, height + 1);

return _regenerator.default.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
loadImageOptions = _objectSpread(_objectSpread({}, options), {}, {
mimeType: 'application/x.image',
image: _objectSpread(_objectSpread({}, options.image), {}, {
type: 'data'
})
});
_context.next = 3;
return context.parse(arrayBuffer, loadImageOptions);
case 3:
image = _context.sent;
return _context.abrupt("return", getMesh(image, options.terrain));
case 5:
case "end":
return _context.stop();
}
while (1) switch (_context.prev = _context.next) {
case 0:
loadImageOptions = _objectSpread(_objectSpread({}, options), {}, {
mimeType: 'application/x.image',
image: _objectSpread(_objectSpread({}, options.image), {}, {
type: 'data'
})
});
_context.next = 3;
return context.parse(arrayBuffer, loadImageOptions);
case 3:
image = _context.sent;
return _context.abrupt("return", getMesh(image, options.terrain));
case 5:
case "end":
return _context.stop();
}

@@ -197,0 +190,0 @@ }, _callee);

@@ -7,4 +7,4 @@ "use strict";

exports.VERSION = void 0;
var VERSION = typeof "3.4.0-alpha.2" !== 'undefined' ? "3.4.0-alpha.2" : 'latest';
var VERSION = typeof "3.4.0-alpha.3" !== 'undefined' ? "3.4.0-alpha.3" : 'latest';
exports.VERSION = VERSION;
//# sourceMappingURL=version.js.map

@@ -31,3 +31,2 @@ "use strict";

};
exports.TerrainLoader = TerrainLoader;

@@ -34,0 +33,0 @@ var _typecheckTerrainWorkerLoader = TerrainLoader;

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

const moduleExports = require('./index');

@@ -3,0 +2,0 @@ globalThis.loaders = globalThis.loaders || {};

@@ -5,3 +5,2 @@ import parseQuantizedMesh from './lib/parse-quantized-mesh';

import { QuantizedMeshLoader as QuantizedMeshWorkerLoader } from './quantized-mesh-loader';
export { TerrainWorkerLoader };

@@ -13,5 +12,3 @@ export const TerrainLoader = {

export const _typecheckTerrainLoader = TerrainLoader;
export { QuantizedMeshWorkerLoader };
export const QuantizedMeshLoader = {

@@ -18,0 +15,0 @@ ...QuantizedMeshWorkerLoader,

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

const QUANTIZED_MESH_HEADER = new Map([['centerX', Float64Array.BYTES_PER_ELEMENT], ['centerY', Float64Array.BYTES_PER_ELEMENT], ['centerZ', Float64Array.BYTES_PER_ELEMENT], ['minHeight', Float32Array.BYTES_PER_ELEMENT], ['maxHeight', Float32Array.BYTES_PER_ELEMENT], ['boundingSphereCenterX', Float64Array.BYTES_PER_ELEMENT], ['boundingSphereCenterY', Float64Array.BYTES_PER_ELEMENT], ['boundingSphereCenterZ', Float64Array.BYTES_PER_ELEMENT], ['boundingSphereRadius', Float64Array.BYTES_PER_ELEMENT], ['horizonOcclusionPointX', Float64Array.BYTES_PER_ELEMENT], ['horizonOcclusionPointY', Float64Array.BYTES_PER_ELEMENT], ['horizonOcclusionPointZ', Float64Array.BYTES_PER_ELEMENT]]);

@@ -149,4 +147,3 @@ function decodeZigZag(value) {

default:
{
}
{}
}

@@ -153,0 +150,0 @@ position += extensionLength;

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

export default class Delatin {

@@ -11,3 +9,2 @@ constructor(data, width) {

this.triangles = [];
this._halfedges = [];

@@ -28,3 +25,2 @@ this._candidates = [];

const p3 = this._addPoint(x1, y1);
const t0 = this._addTriangle(p3, p0, p2, -1, -1, -1);

@@ -34,3 +30,2 @@ this._addTriangle(p0, p3, p1, t0, -1, -1);

}
run() {

@@ -42,3 +37,2 @@ let maxError = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;

}
refine() {

@@ -48,15 +42,11 @@ this._step();

}
getMaxError() {
return this._errors[0];
}
getRMSD() {
return this._rmsSum > 0 ? Math.sqrt(this._rmsSum / (this.width * this.height)) : 0;
}
heightAt(x, y) {
return this.data[this.width * y + x];
}
_flush() {

@@ -73,3 +63,2 @@ const coords = this.coords;

}
_findCandidate(p0x, p0y, p1x, p1y, p2x, p2y, t) {

@@ -80,3 +69,2 @@ const minX = Math.min(p0x, p1x, p2x);

const maxY = Math.max(p0y, p1y, p2y);
let w00 = orient(p1x, p1y, p2x, p2y, minX, minY);

@@ -91,3 +79,2 @@ let w01 = orient(p2x, p2y, p0x, p0y, minX, minY);

const b20 = p2x - p0x;
const a = orient(p0x, p0y, p1x, p1y, p2x, p2y);

@@ -97,3 +84,2 @@ const z0 = this.heightAt(p0x, p0y) / a;

const z2 = this.heightAt(p2x, p2y) / a;
let maxError = 0;

@@ -121,3 +107,2 @@ let mx = 0;

wasInside = true;
const z = z0 * w0 + z1 * w1 + z2 * w2;

@@ -145,10 +130,7 @@ const dz = Math.abs(z - this.heightAt(x, y));

}
this._candidates[2 * t] = mx;
this._candidates[2 * t + 1] = my;
this._rms[t] = rms;
this._queuePush(t, maxError, rms);
}
_step() {

@@ -189,3 +171,2 @@ const t = this._queuePop();

}
_addPoint(x, y) {

@@ -196,15 +177,11 @@ const i = this.coords.length >> 1;

}
_addTriangle(a, b, c, ab, bc, ca) {
let e = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : this.triangles.length;
const t = e / 3;
this.triangles[e + 0] = a;
this.triangles[e + 1] = b;
this.triangles[e + 2] = c;
this._halfedges[e + 0] = ab;
this._halfedges[e + 1] = bc;
this._halfedges[e + 2] = ca;
if (ab >= 0) {

@@ -219,3 +196,2 @@ this._halfedges[ab] = e + 0;

}
this._candidates[2 * t + 0] = 0;

@@ -225,9 +201,6 @@ this._candidates[2 * t + 1] = 0;

this._rms[t] = 0;
this._pending[this._pendingLen++] = t;
return e;
}
_legalize(a) {
const b = this._halfedges[a];

@@ -262,3 +235,2 @@ if (b < 0) {

}
_handleCollinear(pn, a) {

@@ -297,3 +269,2 @@ const a0 = a - a % 3;

}
_queuePush(t, error, rms) {

@@ -300,0 +271,0 @@ const i = this._queue.length;

import { concatenateTypedArrays } from '@loaders.gl/loader-utils';
export function addSkirt(attributes, triangles, skirtHeight, outsideIndices) {
const outsideEdges = outsideIndices ? getOutsideEdgesFromIndices(outsideIndices, attributes.POSITION.value) : getOutsideEdgesFromTriangles(triangles);
const newPosition = new attributes.POSITION.value.constructor(outsideEdges.length * 6);
const newTexcoord0 = new attributes.TEXCOORD_0.value.constructor(outsideEdges.length * 4);
const newTriangles = new triangles.constructor(outsideEdges.length * 6);

@@ -29,3 +27,2 @@ for (let i = 0; i < outsideEdges.length; i++) {

}
function getOutsideEdgesFromTriangles(triangles) {

@@ -52,3 +49,2 @@ const edges = [];

}
function getOutsideEdgesFromIndices(indices, position) {

@@ -68,3 +64,2 @@ indices.westIndices.sort((a, b) => position[3 * a + 1] - position[3 * b + 1]);

}
function updateAttributesForNewEdge(_ref) {

@@ -83,12 +78,8 @@ let {

const vertex2Offset = edgeIndex * 2 + 1;
newPosition.set(attributes.POSITION.value.subarray(edge[0] * 3, edge[0] * 3 + 3), vertex1Offset * 3);
newPosition[vertex1Offset * 3 + 2] = newPosition[vertex1Offset * 3 + 2] - skirtHeight;
newPosition.set(attributes.POSITION.value.subarray(edge[1] * 3, edge[1] * 3 + 3), vertex2Offset * 3);
newPosition[vertex2Offset * 3 + 2] = newPosition[vertex2Offset * 3 + 2] - skirtHeight;
newTexcoord0.set(attributes.TEXCOORD_0.value.subarray(edge[0] * 2, edge[0] * 2 + 2), vertex1Offset * 2);
newTexcoord0.set(attributes.TEXCOORD_0.value.subarray(edge[1] * 2, edge[1] * 2 + 2), vertex2Offset * 2);
const triangle1Offset = edgeIndex * 2 * 3;

@@ -95,0 +86,0 @@ newTriangles[triangle1Offset] = edge[0];

@@ -15,5 +15,3 @@ import { getMeshBoundingBox } from '@loaders.gl/schema';

const positions = new Float32Array(nCoords * 3);
const texCoords = new Float32Array(nCoords * 2);
for (let i = 0; i < nCoords; i++) {

@@ -40,3 +38,2 @@ const x = vertexData[i] / 32767;

}
function getTileMesh(arrayBuffer, options) {

@@ -60,3 +57,2 @@ if (!arrayBuffer) {

let attributes = getMeshAttributes(vertexData, header, bounds);
const boundingBox = getMeshBoundingBox(attributes);

@@ -63,0 +59,0 @@ if (options.skirtHeight) {

@@ -12,3 +12,2 @@ import { getMeshBoundingBox } from '@loaders.gl/schema';

} = elevationDecoder;
const terrain = new Float32Array((width + 1) * (height + 1));

@@ -63,3 +62,2 @@ for (let i = 0, y = 0; y < height; y++) {

}
function getMesh(terrainImage, terrainOptions) {

@@ -107,3 +105,2 @@ if (terrainImage === null) {

let attributes = getMeshAttributes(vertices, terrain, width, height, bounds);
const boundingBox = getMeshBoundingBox(attributes);

@@ -134,3 +131,2 @@ if (terrainOptions.skirtHeight) {

}
function getMartiniTileMesh(meshMaxError, width, terrain) {

@@ -149,3 +145,2 @@ const gridSize = width + 1;

}
function getDelatinTileMesh(meshMaxError, width, height, terrain) {

@@ -152,0 +147,0 @@ const tin = new Delatin(terrain, width + 1, height + 1);

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

export const VERSION = typeof "3.4.0-alpha.2" !== 'undefined' ? "3.4.0-alpha.2" : 'latest';
export const VERSION = typeof "3.4.0-alpha.3" !== 'undefined' ? "3.4.0-alpha.3" : 'latest';
//# sourceMappingURL=version.js.map
import { VERSION } from './lib/utils/version';
export const QuantizedMeshLoader = {

@@ -4,0 +3,0 @@ name: 'Quantized Mesh',

import { VERSION } from './lib/utils/version';
export const TerrainLoader = {

@@ -26,4 +25,3 @@ name: 'Terrain',

};
export const _typecheckTerrainWorkerLoader = TerrainLoader;
//# sourceMappingURL=terrain-loader.js.map

@@ -1196,3 +1196,3 @@ (() => {

// src/lib/utils/version.ts
var VERSION = true ? "3.4.0-alpha.2" : "latest";
var VERSION = true ? "3.4.0-alpha.3" : "latest";

@@ -1199,0 +1199,0 @@ // src/terrain-loader.ts

@@ -1196,3 +1196,3 @@ (() => {

// src/lib/utils/version.ts
var VERSION = true ? "3.4.0-alpha.2" : "latest";
var VERSION = true ? "3.4.0-alpha.3" : "latest";

@@ -1199,0 +1199,0 @@ // src/terrain-loader.ts

{
"name": "@loaders.gl/terrain",
"version": "3.4.0-alpha.2",
"version": "3.4.0-alpha.3",
"description": "Framework-independent loader for terrain raster formats",

@@ -38,7 +38,7 @@ "license": "MIT",

"@babel/runtime": "^7.3.1",
"@loaders.gl/loader-utils": "3.4.0-alpha.2",
"@loaders.gl/schema": "3.4.0-alpha.2",
"@loaders.gl/loader-utils": "3.4.0-alpha.3",
"@loaders.gl/schema": "3.4.0-alpha.3",
"@mapbox/martini": "^0.2.0"
},
"gitHead": "f1c00c124d8d0c41a138ff40afb0d1a00711bf2e"
"gitHead": "a954528dd1d78a1f128d8f6b07e4baeb7a296924"
}

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