Socket
Socket
Sign inDemoInstall

threads

Package Overview
Dependencies
8
Maintainers
1
Versions
73
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.5.0 to 1.6.0-conditional-exports

dist-esm/worker/bundle-entry.js

16

dist-esm/master/implementation.browser.js

@@ -21,3 +21,3 @@ // tslint:disable max-classes-per-file

}
return class WebWorker extends Worker {
class WebWorker extends Worker {
constructor(url, options) {

@@ -38,2 +38,16 @@ if (typeof url === "string" && options && options._baseURL) {

}
}
class BlobWorker extends WebWorker {
constructor(blob, options) {
const url = window.URL.createObjectURL(blob);
super(url, options);
}
static fromText(source, options) {
const blob = new window.Blob([source], { type: "text/javascript" });
return new BlobWorker(blob, options);
}
}
return {
blob: BlobWorker,
default: WebWorker
};

@@ -40,0 +54,0 @@ }

@@ -70,4 +70,11 @@ /// <reference lib="dom" />

constructor(scriptPath, options) {
const resolvedScriptPath = resolveScriptPath(scriptPath, (options || {})._baseURL);
if (resolvedScriptPath.match(/\.tsx?$/i) && detectTsNode()) {
const resolvedScriptPath = options && options.fromSource
? null
: resolveScriptPath(scriptPath, (options || {})._baseURL);
if (!resolvedScriptPath) {
// `options.fromSource` is true
const sourceCode = scriptPath;
super(sourceCode, Object.assign(Object.assign({}, options), { eval: true }));
}
else if (resolvedScriptPath.match(/\.tsx?$/i) && detectTsNode()) {
super(createTsNodeModule(resolvedScriptPath), Object.assign(Object.assign({}, options), { eval: true }));

@@ -105,3 +112,14 @@ }

process.on("SIGTERM", () => terminateWorkersAndMaster());
return Worker;
class BlobWorker extends Worker {
constructor(blob, options) {
super(Buffer.from(blob).toString("utf-8"), Object.assign(Object.assign({}, options), { fromSource: true }));
}
static fromText(source, options) {
return new Worker(source, Object.assign(Object.assign({}, options), { fromSource: true }));
}
}
return {
blob: BlobWorker,
default: Worker
};
}

@@ -112,9 +130,16 @@ function initTinyWorker() {

class Worker extends TinyWorker {
constructor(scriptPath) {
constructor(scriptPath, options) {
// Need to apply a work-around for Windows or it will choke upon the absolute path
// (`Error [ERR_INVALID_PROTOCOL]: Protocol 'c:' not supported`)
const resolvedScriptPath = process.platform === "win32"
? `file:///${resolveScriptPath(scriptPath).replace(/\\/g, "/")}`
: resolveScriptPath(scriptPath);
if (resolvedScriptPath.match(/\.tsx?$/i) && detectTsNode()) {
const resolvedScriptPath = options && options.fromSource
? null
: process.platform === "win32"
? `file:///${resolveScriptPath(scriptPath).replace(/\\/g, "/")}`
: resolveScriptPath(scriptPath);
if (!resolvedScriptPath) {
// `options.fromSource` is true
const sourceCode = scriptPath;
super(new Function(sourceCode), [], { esm: true });
}
else if (resolvedScriptPath.match(/\.tsx?$/i) && detectTsNode()) {
super(new Function(createTsNodeModule(resolveScriptPath(scriptPath))), [], { esm: true });

@@ -154,3 +179,14 @@ }

process.on("SIGTERM", () => terminateWorkersAndMaster());
return Worker;
class BlobWorker extends Worker {
constructor(blob, options) {
super(Buffer.from(blob).toString("utf-8"), Object.assign(Object.assign({}, options), { fromSource: true }));
}
static fromText(source, options) {
return new Worker(source, Object.assign(Object.assign({}, options), { fromSource: true }));
}
}
return {
blob: BlobWorker,
default: Worker
};
}

@@ -157,0 +193,0 @@ let implementation;

4

dist-esm/master/index.js

@@ -6,3 +6,5 @@ import { getWorkerImplementation, isWorkerRuntime } from "./implementation";

export { isWorkerRuntime };
/** Separate class to spawn workers from source code blobs or strings. */
export const BlobWorker = getWorkerImplementation().blob;
/** Worker implementation. Either web worker or a node.js Worker class. */
export const Worker = getWorkerImplementation();
export const Worker = getWorkerImplementation().default;

@@ -32,4 +32,3 @@ import { Observable } from "observable-fns";

self.onCompletion();
},
error(error) {
}, error(error) {
originalObserver.error(error);

@@ -36,0 +35,0 @@ self.onError(error);

/// <reference lib="dom" />
// tslint:disable max-classes-per-file
import { $errors, $events, $terminate, $worker } from "../symbols";

@@ -3,0 +4,0 @@ /** Event as emitted by worker thread. Subscribe to using `Thread.events(thread)`. */

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.serialize = exports.deserialize = exports.registerSerializer = void 0;
const serializers_1 = require("./serializers");

@@ -4,0 +5,0 @@ let registeredSerializer = serializers_1.DefaultSerializer;

"use strict";
function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
var common_1 = require("./common");
exports.registerSerializer = common_1.registerSerializer;
__export(require("./master/index"));
Object.defineProperty(exports, "registerSerializer", { enumerable: true, get: function () { return common_1.registerSerializer; } });
__exportStar(require("./master/index"), exports);
var index_1 = require("./worker/index");
exports.expose = index_1.expose;
Object.defineProperty(exports, "expose", { enumerable: true, get: function () { return index_1.expose; } });
var serializers_1 = require("./serializers");
exports.DefaultSerializer = serializers_1.DefaultSerializer;
Object.defineProperty(exports, "DefaultSerializer", { enumerable: true, get: function () { return serializers_1.DefaultSerializer; } });
var transferable_1 = require("./transferable");
exports.Transfer = transferable_1.Transfer;
Object.defineProperty(exports, "Transfer", { enumerable: true, get: function () { return transferable_1.Transfer; } });
"use strict";
// Source: <https://github.com/parcel-bundler/parcel/blob/master/packages/core/parcel-bundler/src/builtins/bundle-url.js>
Object.defineProperty(exports, "__esModule", { value: true });
exports.getBundleURL = exports.getBaseURL = void 0;
let bundleURL;

@@ -5,0 +6,0 @@ function getBundleURLCached() {

@@ -1,4 +0,4 @@

import { WorkerImplementation } from "../types/master";
import { ImplementationExport } from "../types/master";
export declare const defaultPoolSize: number;
export declare function getWorkerImplementation(): typeof WorkerImplementation;
export declare function getWorkerImplementation(): ImplementationExport;
export declare function isWorkerRuntime(): boolean;
"use strict";
// tslint:disable max-classes-per-file
Object.defineProperty(exports, "__esModule", { value: true });
exports.isWorkerRuntime = exports.getWorkerImplementation = exports.defaultPoolSize = void 0;
const get_bundle_url_browser_1 = require("./get-bundle-url.browser");

@@ -23,3 +24,3 @@ exports.defaultPoolSize = typeof navigator !== "undefined" && navigator.hardwareConcurrency

}
return class WebWorker extends Worker {
class WebWorker extends Worker {
constructor(url, options) {

@@ -40,2 +41,16 @@ if (typeof url === "string" && options && options._baseURL) {

}
}
class BlobWorker extends WebWorker {
constructor(blob, options) {
const url = window.URL.createObjectURL(blob);
super(url, options);
}
static fromText(source, options) {
const blob = new window.Blob([source], { type: "text/javascript" });
return new BlobWorker(blob, options);
}
}
return {
blob: BlobWorker,
default: WebWorker
};

@@ -42,0 +57,0 @@ }

@@ -5,10 +5,23 @@ "use strict";

*/
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
result["default"] = mod;
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.isWorkerRuntime = exports.getWorkerImplementation = exports.defaultPoolSize = void 0;
// We alias `src/master/implementation` to `src/master/implementation.browser` for web

@@ -15,0 +28,0 @@ // browsers already in the package.json, so if get here, it's safe to pass-through the

/// <reference lib="dom" />
import { WorkerImplementation } from "../types/master";
import { ImplementationExport } from "../types/master";
export declare const defaultPoolSize: number;
export declare function getWorkerImplementation(): typeof WorkerImplementation;
export declare function getWorkerImplementation(): ImplementationExport;
export declare function isWorkerRuntime(): boolean;
"use strict";
/// <reference lib="dom" />
// tslint:disable function-constructor no-eval no-duplicate-super max-classes-per-file
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
result["default"] = mod;
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.isWorkerRuntime = exports.getWorkerImplementation = exports.defaultPoolSize = void 0;
const callsites_1 = __importDefault(require("callsites"));

@@ -82,4 +95,11 @@ const events_1 = __importDefault(require("events"));

constructor(scriptPath, options) {
const resolvedScriptPath = resolveScriptPath(scriptPath, (options || {})._baseURL);
if (resolvedScriptPath.match(/\.tsx?$/i) && detectTsNode()) {
const resolvedScriptPath = options && options.fromSource
? null
: resolveScriptPath(scriptPath, (options || {})._baseURL);
if (!resolvedScriptPath) {
// `options.fromSource` is true
const sourceCode = scriptPath;
super(sourceCode, Object.assign(Object.assign({}, options), { eval: true }));
}
else if (resolvedScriptPath.match(/\.tsx?$/i) && detectTsNode()) {
super(createTsNodeModule(resolvedScriptPath), Object.assign(Object.assign({}, options), { eval: true }));

@@ -117,3 +137,14 @@ }

process.on("SIGTERM", () => terminateWorkersAndMaster());
return Worker;
class BlobWorker extends Worker {
constructor(blob, options) {
super(Buffer.from(blob).toString("utf-8"), Object.assign(Object.assign({}, options), { fromSource: true }));
}
static fromText(source, options) {
return new Worker(source, Object.assign(Object.assign({}, options), { fromSource: true }));
}
}
return {
blob: BlobWorker,
default: Worker
};
}

@@ -124,9 +155,16 @@ function initTinyWorker() {

class Worker extends TinyWorker {
constructor(scriptPath) {
constructor(scriptPath, options) {
// Need to apply a work-around for Windows or it will choke upon the absolute path
// (`Error [ERR_INVALID_PROTOCOL]: Protocol 'c:' not supported`)
const resolvedScriptPath = process.platform === "win32"
? `file:///${resolveScriptPath(scriptPath).replace(/\\/g, "/")}`
: resolveScriptPath(scriptPath);
if (resolvedScriptPath.match(/\.tsx?$/i) && detectTsNode()) {
const resolvedScriptPath = options && options.fromSource
? null
: process.platform === "win32"
? `file:///${resolveScriptPath(scriptPath).replace(/\\/g, "/")}`
: resolveScriptPath(scriptPath);
if (!resolvedScriptPath) {
// `options.fromSource` is true
const sourceCode = scriptPath;
super(new Function(sourceCode), [], { esm: true });
}
else if (resolvedScriptPath.match(/\.tsx?$/i) && detectTsNode()) {
super(new Function(createTsNodeModule(resolveScriptPath(scriptPath))), [], { esm: true });

@@ -166,3 +204,14 @@ }

process.on("SIGTERM", () => terminateWorkersAndMaster());
return Worker;
class BlobWorker extends Worker {
constructor(blob, options) {
super(Buffer.from(blob).toString("utf-8"), Object.assign(Object.assign({}, options), { fromSource: true }));
}
static fromText(source, options) {
return new Worker(source, Object.assign(Object.assign({}, options), { fromSource: true }));
}
}
return {
blob: BlobWorker,
default: Worker
};
}

@@ -169,0 +218,0 @@ let implementation;

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

import type { BlobWorker as BlobWorkerClass } from "../types/master";
import { Worker as WorkerType } from "../types/master";

@@ -8,4 +9,7 @@ import { isWorkerRuntime } from "./implementation";

export { isWorkerRuntime };
export declare type BlobWorker = typeof BlobWorkerClass;
export declare type Worker = WorkerType;
/** Separate class to spawn workers from source code blobs or strings. */
export declare const BlobWorker: typeof BlobWorkerClass;
/** Worker implementation. Either web worker or a node.js Worker class. */
export declare const Worker: typeof import("../types/master").WorkerImplementation;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Worker = exports.BlobWorker = exports.isWorkerRuntime = void 0;
const implementation_1 = require("./implementation");
exports.isWorkerRuntime = implementation_1.isWorkerRuntime;
Object.defineProperty(exports, "isWorkerRuntime", { enumerable: true, get: function () { return implementation_1.isWorkerRuntime; } });
var pool_1 = require("./pool");
exports.Pool = pool_1.Pool;
Object.defineProperty(exports, "Pool", { enumerable: true, get: function () { return pool_1.Pool; } });
var spawn_1 = require("./spawn");
exports.spawn = spawn_1.spawn;
Object.defineProperty(exports, "spawn", { enumerable: true, get: function () { return spawn_1.spawn; } });
var thread_1 = require("./thread");
exports.Thread = thread_1.Thread;
Object.defineProperty(exports, "Thread", { enumerable: true, get: function () { return thread_1.Thread; } });
/** Separate class to spawn workers from source code blobs or strings. */
exports.BlobWorker = implementation_1.getWorkerImplementation().blob;
/** Worker implementation. Either web worker or a node.js Worker class. */
exports.Worker = implementation_1.getWorkerImplementation();
exports.Worker = implementation_1.getWorkerImplementation().default;

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

Object.defineProperty(exports, "__esModule", { value: true });
exports.createProxyModule = exports.createProxyFunction = void 0;
const debug_1 = __importDefault(require("debug"));

@@ -14,0 +15,0 @@ const observable_fns_1 = require("observable-fns");

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.PoolEventType = void 0;
/** Pool event type. Specifies the type of each `PoolEvent`. */

@@ -4,0 +5,0 @@ var PoolEventType;

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

Object.defineProperty(exports, "__esModule", { value: true });
exports.Pool = exports.Thread = exports.PoolEventType = void 0;
const debug_1 = __importDefault(require("debug"));

@@ -21,5 +22,5 @@ const observable_fns_1 = require("observable-fns");

const pool_types_1 = require("./pool-types");
exports.PoolEventType = pool_types_1.PoolEventType;
Object.defineProperty(exports, "PoolEventType", { enumerable: true, get: function () { return pool_types_1.PoolEventType; } });
const thread_1 = require("./thread");
exports.Thread = thread_1.Thread;
Object.defineProperty(exports, "Thread", { enumerable: true, get: function () { return thread_1.Thread; } });
let nextPoolID = 1;

@@ -26,0 +27,0 @@ function createArray(size) {

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

Object.defineProperty(exports, "__esModule", { value: true });
exports.spawn = void 0;
const debug_1 = __importDefault(require("debug"));

@@ -17,0 +18,0 @@ const observable_fns_1 = require("observable-fns");

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Thread = void 0;
const symbols_1 = require("../symbols");

@@ -4,0 +5,0 @@ function fail(message) {

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ObservablePromise = void 0;
const observable_fns_1 = require("observable-fns");

@@ -34,4 +35,3 @@ const doNothing = () => undefined;

self.onCompletion();
},
error(error) {
}, error(error) {
originalObserver.error(error);

@@ -38,0 +38,0 @@ self.onError(error);

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Subject = exports.Observable = void 0;
const observable_fns_1 = require("observable-fns");
exports.Observable = observable_fns_1.Observable;
Object.defineProperty(exports, "Observable", { enumerable: true, get: function () { return observable_fns_1.Observable; } });
const $observers = Symbol("observers");

@@ -6,0 +7,0 @@ /**

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.allSettled = void 0;
// Based on <https://github.com/es-shims/Promise.allSettled/blob/master/implementation.js>

@@ -4,0 +5,0 @@ function allSettled(values) {

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createPromiseWithResolver = void 0;
const doNothing = () => undefined;

@@ -4,0 +5,0 @@ /**

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.DefaultSerializer = exports.extendSerializer = void 0;
function extendSerializer(extend, implementation) {

@@ -4,0 +5,0 @@ const fallbackDeserializer = extend.deserialize.bind(extend);

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.$worker = exports.$transferable = exports.$terminate = exports.$events = exports.$errors = void 0;
exports.$errors = Symbol("thread.errors");

@@ -4,0 +5,0 @@ exports.$events = Symbol("thread.events");

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Transfer = exports.isTransferDescriptor = void 0;
const symbols_1 = require("./symbols");

@@ -4,0 +5,0 @@ function isTransferable(thing) {

@@ -64,2 +64,11 @@ /// <reference lib="dom" />

}
/** Class to spawn workers from a blob or source string. */
export declare class BlobWorker extends WorkerImplementation {
constructor(blob: Blob, options?: ThreadsWorkerOptions);
static fromText(source: string, options?: ThreadsWorkerOptions): WorkerImplementation;
}
export interface ImplementationExport {
blob: typeof BlobWorker;
default: typeof WorkerImplementation;
}
/** Event as emitted by worker thread. Subscribe to using `Thread.events(thread)`. */

@@ -66,0 +75,0 @@ export declare enum WorkerEventType {

"use strict";
/// <reference lib="dom" />
// tslint:disable max-classes-per-file
Object.defineProperty(exports, "__esModule", { value: true });
exports.WorkerEventType = void 0;
const symbols_1 = require("../symbols");

@@ -5,0 +7,0 @@ /** Event as emitted by worker thread. Subscribe to using `Thread.events(thread)`. */

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.WorkerMessageType = exports.MasterMessageType = void 0;
/////////////////////////////

@@ -4,0 +5,0 @@ // Messages sent by master:

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

Object.defineProperty(exports, "__esModule", { value: true });
exports.expose = exports.isWorkerRuntime = void 0;
const is_observable_1 = __importDefault(require("is-observable"));

@@ -22,5 +23,5 @@ const common_1 = require("../common");

var common_2 = require("../common");
exports.registerSerializer = common_2.registerSerializer;
Object.defineProperty(exports, "registerSerializer", { enumerable: true, get: function () { return common_2.registerSerializer; } });
var transferable_2 = require("../transferable");
exports.Transfer = transferable_2.Transfer;
Object.defineProperty(exports, "Transfer", { enumerable: true, get: function () { return transferable_2.Transfer; } });
/** Returns `true` if this code is currently running in a worker. */

@@ -27,0 +28,0 @@ exports.isWorkerRuntime = implementation_1.default.isWorkerRuntime;

{
"name": "threads",
"version": "1.5.0",
"version": "1.6.0-conditional-exports",
"description": "Web workers & worker threads as simple as a function call",
"main": "dist/index.js",
"module": "dist-esm/index.js",
"exports": {
".": "./index.mjs",
"./observable": "./observable.mjs",
"./register": "./register.mjs",
"./worker": "./worker.mjs"
},
"scripts": {

@@ -18,9 +12,29 @@ "prebuild": "rimraf dist/ dist-esm/",

"build:es": "tsc -p tsconfig-esm.json",
"postbuild": "run-s bundle",
"bundle": "rollup -c -f umd --file=bundle/worker.js --name=threads --silent -- dist-esm/worker/bundle-entry.js",
"test": "run-s test:ava test:puppeteer:basic test:puppeteer:webpack",
"test:ava": "cross-env TS_NODE_FILES=true ava",
"test:puppeteer:basic": "puppet-run --plugin=mocha --bundle=./test/workers/:/workers/ ./test/*.chromium*.ts",
"test:puppeteer:webpack": "puppet-run --serve ./test/webpack/dist.web/0.worker.js --serve ./test/webpack/dist.web/1.worker.js --plugin=mocha ./test/webpack/webpack.chromium.mocha.ts",
"test:puppeteer:basic": "puppet-run --plugin=mocha --bundle=./test/workers/:/workers/ --serve=./bundle/worker.js:/worker.js ./test/*.chromium*.ts",
"test:puppeteer:webpack": "puppet-run --serve ./test/webpack/dist/app.web/0.worker.js --serve ./test/webpack/dist/app.web/1.worker.js --plugin=mocha ./test/webpack/webpack.chromium.mocha.ts",
"posttest": "tslint --project .",
"prepare": "run-s build"
},
"exports": {
".": {
"require": "./dist/index.js",
"default": "./index.mjs"
},
"./observable": {
"require": "./observable.js",
"default": "./observable.mjs"
},
"./register": {
"require": "./register.js",
"default": "./register.mjs"
},
"./worker": {
"require": "./worker.js",
"default": "./worker.mjs"
}
},
"sideEffects": [

@@ -71,4 +85,5 @@ "./dist*/master/register.js",

"npm-run-all": "^4.1.5",
"puppet-run": "^0.11.0",
"puppet-run": "^0.11.1",
"puppet-run-plugin-mocha": "^0.10.0-alpha",
"raw-loader": "^4.0.1",
"rimraf": "^2.6.3",

@@ -81,6 +96,6 @@ "rollup": "^1.16.2",

"ts-loader": "^6.0.1",
"ts-node": "^8.1.0",
"ts-node": "^8.10.2",
"tslint": "^5.16.0",
"tslint-config-prettier": "^1.18.0",
"typescript": "^3.4.5",
"typescript": "^3.9.5",
"wavy": "^1.0.4",

@@ -87,0 +102,0 @@ "webpack": "^4.32.2",

SocketSocket SOC 2 Logo

Product

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc