threads
Advanced tools
Comparing version 1.6.3 to 1.6.4
@@ -6,3 +6,3 @@ // tslint:disable max-classes-per-file | ||
: 4; | ||
const isAbsoluteURL = (value) => /^(file|https?:)?\/\//i.test(value); | ||
const isAbsoluteURL = (value) => /^[a-zA-Z][a-zA-Z\d+\-.]*:/.test(value); | ||
function createSourceBlobURL(code) { | ||
@@ -24,2 +24,3 @@ const blob = new Blob([code], { type: "application/javascript" }); | ||
constructor(url, options) { | ||
var _a, _b; | ||
if (typeof url === "string" && options && options._baseURL) { | ||
@@ -30,3 +31,5 @@ url = new URL(url, options._baseURL); | ||
url = new URL(url, getBundleURL().replace(/\/[^\/]+$/, "/")); | ||
url = createSourceBlobURL(`importScripts(${JSON.stringify(url)});`); | ||
if ((_a = options === null || options === void 0 ? void 0 : options.CORSWorkaround) !== null && _a !== void 0 ? _a : true) { | ||
url = createSourceBlobURL(`importScripts(${JSON.stringify(url)});`); | ||
} | ||
} | ||
@@ -36,3 +39,5 @@ if (typeof url === "string" && isAbsoluteURL(url)) { | ||
// to circumvent worker CORS restrictions | ||
url = createSourceBlobURL(`importScripts(${JSON.stringify(url)});`); | ||
if ((_b = options === null || options === void 0 ? void 0 : options.CORSWorkaround) !== null && _b !== void 0 ? _b : true) { | ||
url = createSourceBlobURL(`importScripts(${JSON.stringify(url)});`); | ||
} | ||
} | ||
@@ -39,0 +44,0 @@ super(url, options); |
/// <reference lib="dom" /> | ||
// tslint:disable function-constructor no-eval no-duplicate-super max-classes-per-file | ||
import getCallsites from "callsites"; | ||
import EventEmitter from "events"; | ||
import { EventEmitter } from "events"; | ||
import { cpus } from 'os'; | ||
@@ -18,3 +18,3 @@ import * as path from "path"; | ||
try { | ||
require.resolve("ts-node"); | ||
eval("require").resolve("ts-node"); | ||
tsNodeAvailable = true; | ||
@@ -60,3 +60,3 @@ } | ||
? __non_webpack_require__.resolve(makeRelative(scriptPath)) | ||
: require.resolve(makeRelative(rebaseScriptPath(scriptPath, /[\/\\]worker_threads[\/\\]/))); | ||
: eval("require").resolve(makeRelative(rebaseScriptPath(scriptPath, /[\/\\]worker_threads[\/\\]/))); | ||
return workerFilePath; | ||
@@ -63,0 +63,0 @@ } |
@@ -171,3 +171,3 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { | ||
subscription.unsubscribe(); | ||
resolve(); | ||
resolve(void 0); | ||
} | ||
@@ -174,0 +174,0 @@ }, |
@@ -119,3 +119,4 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { | ||
debugSpawn("Initializing new thread"); | ||
const initMessage = yield withTimeout(receiveInitMessage(worker), options && options.timeout ? options.timeout : initMessageTimeout, `Timeout: Did not receive an init message from worker after ${initMessageTimeout}ms. Make sure the worker calls expose().`); | ||
const timeout = options && options.timeout ? options.timeout : initMessageTimeout; | ||
const initMessage = yield withTimeout(receiveInitMessage(worker), timeout, `Timeout: Did not receive an init message from worker after ${timeout}ms. Make sure the worker calls expose().`); | ||
const exposed = initMessage.exposed; | ||
@@ -122,0 +123,0 @@ const { termination, terminate } = createTerminator(worker); |
@@ -21,5 +21,5 @@ const doNothing = () => undefined; | ||
resolvedTo = value; | ||
resolver(); | ||
resolver(resolvedTo); | ||
}; | ||
return [promise, exposedResolver]; | ||
} |
@@ -10,5 +10,6 @@ "use strict"; | ||
var __exportStar = (this && this.__exportStar) || function(m, exports) { | ||
for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p); | ||
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.Transfer = exports.DefaultSerializer = exports.expose = exports.registerSerializer = void 0; | ||
var common_1 = require("./common"); | ||
@@ -15,0 +16,0 @@ Object.defineProperty(exports, "registerSerializer", { enumerable: true, get: function () { return common_1.registerSerializer; } }); |
@@ -9,3 +9,3 @@ "use strict"; | ||
: 4; | ||
const isAbsoluteURL = (value) => /^(file|https?:)?\/\//i.test(value); | ||
const isAbsoluteURL = (value) => /^[a-zA-Z][a-zA-Z\d+\-.]*:/.test(value); | ||
function createSourceBlobURL(code) { | ||
@@ -27,2 +27,3 @@ const blob = new Blob([code], { type: "application/javascript" }); | ||
constructor(url, options) { | ||
var _a, _b; | ||
if (typeof url === "string" && options && options._baseURL) { | ||
@@ -33,3 +34,5 @@ url = new URL(url, options._baseURL); | ||
url = new URL(url, get_bundle_url_browser_1.getBundleURL().replace(/\/[^\/]+$/, "/")); | ||
url = createSourceBlobURL(`importScripts(${JSON.stringify(url)});`); | ||
if ((_a = options === null || options === void 0 ? void 0 : options.CORSWorkaround) !== null && _a !== void 0 ? _a : true) { | ||
url = createSourceBlobURL(`importScripts(${JSON.stringify(url)});`); | ||
} | ||
} | ||
@@ -39,3 +42,5 @@ if (typeof url === "string" && isAbsoluteURL(url)) { | ||
// to circumvent worker CORS restrictions | ||
url = createSourceBlobURL(`importScripts(${JSON.stringify(url)});`); | ||
if ((_b = options === null || options === void 0 ? void 0 : options.CORSWorkaround) !== null && _b !== void 0 ? _b : true) { | ||
url = createSourceBlobURL(`importScripts(${JSON.stringify(url)});`); | ||
} | ||
} | ||
@@ -42,0 +47,0 @@ super(url, options); |
@@ -20,3 +20,3 @@ "use strict"; | ||
var result = {}; | ||
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); | ||
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); | ||
__setModuleDefault(result, mod); | ||
@@ -23,0 +23,0 @@ return result; |
@@ -19,3 +19,3 @@ "use strict"; | ||
var result = {}; | ||
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); | ||
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); | ||
__setModuleDefault(result, mod); | ||
@@ -30,3 +30,3 @@ return result; | ||
const callsites_1 = __importDefault(require("callsites")); | ||
const events_1 = __importDefault(require("events")); | ||
const events_1 = require("events"); | ||
const os_1 = require("os"); | ||
@@ -45,3 +45,3 @@ const path = __importStar(require("path")); | ||
try { | ||
require.resolve("ts-node"); | ||
eval("require").resolve("ts-node"); | ||
tsNodeAvailable = true; | ||
@@ -87,3 +87,3 @@ } | ||
? __non_webpack_require__.resolve(makeRelative(scriptPath)) | ||
: require.resolve(makeRelative(rebaseScriptPath(scriptPath, /[\/\\]worker_threads[\/\\]/))); | ||
: eval("require").resolve(makeRelative(rebaseScriptPath(scriptPath, /[\/\\]worker_threads[\/\\]/))); | ||
return workerFilePath; | ||
@@ -181,3 +181,3 @@ } | ||
allWorkers.push(this); | ||
this.emitter = new events_1.default(); | ||
this.emitter = new events_1.EventEmitter(); | ||
this.onerror = (error) => this.emitter.emit("error", error); | ||
@@ -184,0 +184,0 @@ this.onmessage = (message) => this.emitter.emit("message", message); |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.Worker = exports.BlobWorker = exports.isWorkerRuntime = void 0; | ||
exports.Worker = exports.BlobWorker = exports.isWorkerRuntime = exports.Thread = exports.spawn = exports.Pool = void 0; | ||
const implementation_1 = require("./implementation"); | ||
@@ -5,0 +5,0 @@ Object.defineProperty(exports, "isWorkerRuntime", { enumerable: true, get: function () { return implementation_1.isWorkerRuntime; } }); |
@@ -178,3 +178,3 @@ "use strict"; | ||
subscription.unsubscribe(); | ||
resolve(); | ||
resolve(void 0); | ||
} | ||
@@ -181,0 +181,0 @@ }, |
@@ -125,3 +125,4 @@ "use strict"; | ||
debugSpawn("Initializing new thread"); | ||
const initMessage = yield withTimeout(receiveInitMessage(worker), options && options.timeout ? options.timeout : initMessageTimeout, `Timeout: Did not receive an init message from worker after ${initMessageTimeout}ms. Make sure the worker calls expose().`); | ||
const timeout = options && options.timeout ? options.timeout : initMessageTimeout; | ||
const initMessage = yield withTimeout(receiveInitMessage(worker), timeout, `Timeout: Did not receive an init message from worker after ${timeout}ms. Make sure the worker calls expose().`); | ||
const exposed = initMessage.exposed; | ||
@@ -128,0 +129,0 @@ const { termination, terminate } = createTerminator(worker); |
@@ -24,3 +24,3 @@ "use strict"; | ||
resolvedTo = value; | ||
resolver(); | ||
resolver(resolvedTo); | ||
}; | ||
@@ -27,0 +27,0 @@ return [promise, exposedResolver]; |
@@ -5,2 +5,3 @@ /// <reference lib="dom" /> | ||
import { $errors, $events, $terminate, $worker } from "../symbols"; | ||
import { TransferDescriptor } from "../transferable"; | ||
interface ObservableLikeSubscription { | ||
@@ -18,6 +19,8 @@ unsubscribe(): any; | ||
export declare type StripAsync<Type> = Type extends Promise<infer PromiseBaseType> ? PromiseBaseType : Type extends ObservableLike<infer ObservableBaseType> ? ObservableBaseType : Type; | ||
export declare type StripTransfer<Type> = Type extends TransferDescriptor<infer BaseType> ? BaseType : Type; | ||
export declare type ModuleMethods = { | ||
[methodName: string]: (...args: any) => any; | ||
}; | ||
export declare type ProxyableFunction<Args extends any[], ReturnType> = Args extends [] ? () => ObservablePromise<StripAsync<ReturnType>> : (...args: Args) => ObservablePromise<StripAsync<ReturnType>>; | ||
export declare type ProxyableArgs<Args extends any[]> = Args extends [arg0: infer Arg0, ...rest: infer RestArgs] ? [Arg0 extends Transferable ? Arg0 | TransferDescriptor<Arg0> : Arg0, ...RestArgs] : Args; | ||
export declare type ProxyableFunction<Args extends any[], ReturnType> = Args extends [] ? () => ObservablePromise<StripTransfer<StripAsync<ReturnType>>> : (...args: ProxyableArgs<Args>) => ObservablePromise<StripTransfer<StripAsync<ReturnType>>>; | ||
export declare type ModuleProxy<Methods extends ModuleMethods> = { | ||
@@ -59,2 +62,6 @@ [method in keyof Methods]: ProxyableFunction<Parameters<Methods[method]>, ReturnType<Methods[method]>>; | ||
}; | ||
/** Data passed on to node.js worker_threads. */ | ||
workerData?: any; | ||
/** Whether to apply CORS protection workaround. Defaults to true. */ | ||
CORSWorkaround?: boolean; | ||
} | ||
@@ -61,0 +68,0 @@ /** Worker implementation. Either web worker or a node.js Worker class. */ |
@@ -10,3 +10,3 @@ "use strict"; | ||
var __exportStar = (this && this.__exportStar) || function(m, exports) { | ||
for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p); | ||
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); | ||
}; | ||
@@ -13,0 +13,0 @@ Object.defineProperty(exports, "__esModule", { value: true }); |
@@ -15,3 +15,3 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.expose = exports.isWorkerRuntime = void 0; | ||
exports.expose = exports.isWorkerRuntime = exports.Transfer = exports.registerSerializer = void 0; | ||
const is_observable_1 = __importDefault(require("is-observable")); | ||
@@ -18,0 +18,0 @@ const common_1 = require("../common"); |
{ | ||
"name": "threads", | ||
"version": "1.6.3", | ||
"version": "1.6.4", | ||
"description": "Web workers & worker threads as simple as a function call", | ||
"license": "MIT", | ||
"main": "dist/index.js", | ||
"module": "dist-esm/index.js", | ||
"scripts": { | ||
"prebuild": "rimraf dist/ dist-esm/", | ||
"build": "run-p build:cjs build:es", | ||
"clean": "rimraf dist/ dist-esm/", | ||
"dev": "npm run clean && tsc -p tsconfig.json --watch", | ||
"build": "npm run clean && npm run build:cjs && npm run build:es", | ||
"build:cjs": "tsc -p tsconfig.json", | ||
"build:es": "tsc -p tsconfig-esm.json", | ||
"postbuild": "run-s bundle", | ||
"postbuild": "npm run 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/ --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", | ||
"test": "npm run test:library && npm run test:tooling && npm run test:puppeteer:basic && npm run test:puppeteer:webpack", | ||
"test:library": "cross-env TS_NODE_FILES=true ava ./test/**/*.test.ts", | ||
"test:tooling": "cross-env TS_NODE_FILES=true ava ./test-tooling/**/*.test.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-tooling/webpack/dist/app.web/0.worker.js --serve ./test-tooling/webpack/dist/app.web/1.worker.js --plugin=mocha ./test-tooling/webpack/webpack.chromium.mocha.ts", | ||
"posttest": "tslint --project .", | ||
"prepare": "run-s build" | ||
"prepare": "npm run build" | ||
}, | ||
@@ -50,6 +53,6 @@ "exports": { | ||
"author": "Andy Wermke (https://github.com/andywer)", | ||
"license": "MIT", | ||
"bugs": { | ||
"url": "https://github.com/andywer/threads.js/issues" | ||
}, | ||
"funding": "https://github.com/andywer/threads.js?sponsor=1", | ||
"homepage": "https://threads.js.org", | ||
@@ -68,36 +71,35 @@ "keywords": [ | ||
"callsites": "^3.1.0", | ||
"debug": "^4.1.1", | ||
"is-observable": "^1.1.0", | ||
"debug": "^4.2.0", | ||
"is-observable": "^2.1.0", | ||
"observable-fns": "^0.5.1" | ||
}, | ||
"devDependencies": { | ||
"@types/chai": "^4.1.7", | ||
"@types/debug": "^4.1.4", | ||
"@types/execa": "^0.9.0", | ||
"@types/mocha": "^5.2.6", | ||
"@types/node": "^11.13.8", | ||
"@types/webpack": "^4.4.32", | ||
"ava": "^2.4.0", | ||
"@rollup/plugin-commonjs": "^16.0.0", | ||
"@rollup/plugin-node-resolve": "^10.0.0", | ||
"@types/chai": "^4.2.14", | ||
"@types/debug": "^4.1.5", | ||
"@types/execa": "^2.0.0", | ||
"@types/mocha": "^8.0.3", | ||
"@types/node": "^14.14.5", | ||
"@types/webpack": "^4.41.23", | ||
"ava": "^3.13.0", | ||
"chai": "^4.2.0", | ||
"cross-env": "^5.2.0", | ||
"execa": "^3.4.0", | ||
"mocha": "^5.2.0", | ||
"npm-run-all": "^4.1.5", | ||
"puppet-run": "^0.11.1", | ||
"cross-env": "^7.0.2", | ||
"execa": "^4.0.3", | ||
"mocha": "^8.2.0", | ||
"puppet-run": "^0.11.3", | ||
"puppet-run-plugin-mocha": "^0.10.0-alpha", | ||
"raw-loader": "^4.0.1", | ||
"rimraf": "^2.6.3", | ||
"rollup": "^1.16.2", | ||
"rollup-plugin-commonjs": "^10.0.1", | ||
"rollup-plugin-node-resolve": "^5.1.0", | ||
"threads-plugin": "^1.2.0", | ||
"raw-loader": "^4.0.2", | ||
"rimraf": "^3.0.2", | ||
"rollup": "^2.32.1", | ||
"threads-plugin": "^1.3.3", | ||
"tiny-worker": "^2.2.0", | ||
"ts-loader": "^6.0.1", | ||
"ts-node": "^8.10.2", | ||
"tslint": "^5.16.0", | ||
"ts-loader": "^8.0.7", | ||
"ts-node": "^9.0.0", | ||
"tslint": "^6.1.3", | ||
"tslint-config-prettier": "^1.18.0", | ||
"typescript": "^3.9.5", | ||
"typescript": "^4.2.3", | ||
"wavy": "^1.0.4", | ||
"webpack": "^4.32.2", | ||
"worker-plugin": "^3.1.0" | ||
"webpack": "^4.44.2", | ||
"worker-plugin": "^5.0.0" | ||
}, | ||
@@ -108,3 +110,2 @@ "optionalDependencies": { | ||
"ava": { | ||
"compileEnhancements": false, | ||
"extensions": [ | ||
@@ -114,3 +115,4 @@ "ts" | ||
"files": [ | ||
"./test/**/*.test.ts" | ||
"./test/**/*.test.ts", | ||
"./test-tooling/**/*.test.ts" | ||
], | ||
@@ -117,0 +119,0 @@ "require": [ |
@@ -1,3 +0,3 @@ | ||
const commonjs = require("rollup-plugin-commonjs") | ||
const nodeResolve = require("rollup-plugin-node-resolve") | ||
const commonjs = require("@rollup/plugin-commonjs") | ||
const { nodeResolve } = require("@rollup/plugin-node-resolve") | ||
@@ -4,0 +4,0 @@ module.exports = { |
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
177530
28
3983
4
14
+ Addedis-observable@2.1.0(transitive)
- Removedis-observable@1.1.0(transitive)
- Removedsymbol-observable@1.2.0(transitive)
Updateddebug@^4.2.0
Updatedis-observable@^2.1.0