Socket
Socket
Sign inDemoInstall

@miniflare/runner-vm

Package Overview
Dependencies
Maintainers
1
Versions
38
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@miniflare/runner-vm - npm Package Compare versions

Comparing version 2.0.0 to 2.1.0

92

dist/src/index.js

@@ -39,49 +39,61 @@ var __create = Object.create;

// packages/runner-vm/src/instanceof.ts
var import_util = __toModule(require("util"));
var import_vm = __toModule(require("vm"));
function isObject(value) {
return value !== null && typeof value === "object";
function ordinaryHasInstance(C, O) {
if (typeof C !== "function")
return false;
if (typeof O !== "object" && typeof O !== "function")
return false;
const P = C.prototype;
if (typeof P !== "object" && typeof P !== "function") {
throw new TypeError(`Function has non-object prototype '${P}' in instanceof check`);
}
while ((O = Object.getPrototypeOf(O)) !== null) {
if (P === O)
return true;
}
return false;
}
function isFunction(value) {
return typeof value === "function";
function instanceOf(V, insideTarget, outsideTarget) {
return ordinaryHasInstance(insideTarget, V) || ordinaryHasInstance(outsideTarget, V);
}
function isError(errorCtor) {
const name = errorCtor.prototype.name;
return function(value) {
if (!import_util.default.types.isNativeError(value))
return false;
let prototype = value;
while ((prototype = Object.getPrototypeOf(prototype)) !== null) {
if (prototype.name === name)
return true;
var outsideTargets = {
Object,
Function,
Array,
Promise,
RegExp,
Error,
EvalError,
RangeError,
ReferenceError,
SyntaxError,
TypeError,
URIError
};
function defineHasInstance(insideTarget) {
const outsideTarget = outsideTargets[insideTarget.name];
Object.defineProperty(insideTarget, Symbol.hasInstance, {
value(value) {
return instanceOf(value, insideTarget, outsideTarget);
}
return false;
};
});
}
var types = {
isObject,
isFunction,
isArray: Array.isArray,
isPromise: import_util.default.types.isPromise,
isRegExp: import_util.default.types.isRegExp,
isError
};
var defineHasInstancesScript = new import_vm.default.Script(`(function(types) {
// Only define properties once, will throw if we try doing this twice
if (Object[Symbol.hasInstance] === types.isObject) return;
Object.defineProperty(Object, Symbol.hasInstance, { value: types.isObject });
Object.defineProperty(Function, Symbol.hasInstance, { value: types.isFunction });
Object.defineProperty(Array, Symbol.hasInstance, { value: types.isArray });
Object.defineProperty(Promise, Symbol.hasInstance, { value: types.isPromise });
Object.defineProperty(RegExp, Symbol.hasInstance, { value: types.isRegExp });
Object.defineProperty(Error, Symbol.hasInstance, { value: types.isError(Error) });
Object.defineProperty(EvalError, Symbol.hasInstance, { value: types.isError(EvalError) });
Object.defineProperty(RangeError, Symbol.hasInstance, { value: types.isError(RangeError) });
Object.defineProperty(ReferenceError, Symbol.hasInstance, { value: types.isError(ReferenceError) });
Object.defineProperty(SyntaxError, Symbol.hasInstance, { value: types.isError(SyntaxError) });
Object.defineProperty(TypeError, Symbol.hasInstance, { value: types.isError(TypeError) });
Object.defineProperty(URIError, Symbol.hasInstance, { value: types.isError(URIError) });
var defineHasInstancesScript = new import_vm.default.Script(`(function(defineHasInstance) {
// Only define properties once, would throw if we tried doing this twice
if (Object.hasOwnProperty(Symbol.hasInstance)) return;
defineHasInstance(Object);
defineHasInstance(Function);
defineHasInstance(Array);
defineHasInstance(Promise);
defineHasInstance(RegExp);
defineHasInstance(Error);
defineHasInstance(EvalError);
defineHasInstance(RangeError);
defineHasInstance(ReferenceError);
defineHasInstance(SyntaxError);
defineHasInstance(TypeError);
defineHasInstance(URIError);
})`, { filename: "<defineHasInstancesScript>" });
function defineHasInstances(ctx) {
defineHasInstancesScript.runInContext(ctx)(types);
defineHasInstancesScript.runInContext(ctx)(defineHasInstance);
}

@@ -88,0 +100,0 @@

{
"name": "@miniflare/runner-vm",
"version": "2.0.0",
"version": "2.1.0",
"description": "VM script runner module for Miniflare: a fun, full-featured, fully-local simulator for Cloudflare Workers",

@@ -38,7 +38,7 @@ "keywords": [

"dependencies": {
"@miniflare/shared": "2.0.0"
"@miniflare/shared": "2.1.0"
},
"devDependencies": {
"@miniflare/shared-test": "2.0.0"
"@miniflare/shared-test": "2.1.0"
}
}

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