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

@endo/compartment-mapper

Package Overview
Dependencies
Maintainers
5
Versions
58
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@endo/compartment-mapper - npm Package Compare versions

Comparing version 0.3.2 to 0.4.0

node-powers.js

19

CHANGELOG.md

@@ -6,2 +6,21 @@ # Change Log

## [0.4.0](https://github.com/endojs/endo/compare/@endo/compartment-mapper@0.3.2...@endo/compartment-mapper@0.4.0) (2021-06-16)
### ⚠ BREAKING CHANGES
* **compartment-mapper:** Required exits on archives
### Features
* **compartment-mapper:** Developer dependencies ([44f86cd](https://github.com/endojs/endo/commit/44f86cd6788b8f6bdc5492619866995ede73488b))
* **compartment-mapper:** Required exits on archives ([f5e6378](https://github.com/endojs/endo/commit/f5e6378f4c4dc2c017d3c94544a3e22d762ade27))
### Bug Fixes
* **compartment-mapper:** Missing node-powers from published files ([277fd47](https://github.com/endojs/endo/commit/277fd47e359ee90d31a521fadbac90a4853649f4))
### [0.3.2](https://github.com/endojs/endo/compare/@endo/compartment-mapper@0.3.1...@endo/compartment-mapper@0.3.2) (2021-06-14)

@@ -8,0 +27,0 @@

15

package.json
{
"name": "@endo/compartment-mapper",
"version": "0.3.2",
"version": "0.4.0",
"description": "The compartment mapper assembles Node applications in a sandbox",

@@ -42,9 +42,9 @@ "keywords": [

"dependencies": {
"@endo/cjs-module-analyzer": "^0.2.2",
"@endo/static-module-record": "^0.5.2",
"@endo/zip": "^0.2.2",
"ses": "^0.13.2"
"@endo/cjs-module-analyzer": "^0.2.3",
"@endo/static-module-record": "^0.5.3",
"@endo/zip": "^0.2.3",
"ses": "^0.13.3"
},
"devDependencies": {
"@endo/eslint-config": "^0.3.9",
"@endo/eslint-config": "^0.3.10",
"ava": "^3.12.1",

@@ -69,2 +69,3 @@ "babel-eslint": "^10.0.3",

"index.js",
"node-powers.js",
"src"

@@ -90,3 +91,3 @@ ],

},
"gitHead": "68cb467c5be67d84ea8f980076c3407365213854"
"gitHead": "f91c84cde6cfe82c085ebe316da939d04ca74aa4"
}

@@ -143,8 +143,7 @@ // @ts-check

* @param {string} moduleLocation
* @param {Object} [options]
* @param {ModuleTransforms} [options.moduleTransforms]
* @param {ArchiveOptions} [options]
* @returns {Promise<Uint8Array>}
*/
export const makeArchive = async (powers, moduleLocation, options) => {
const { moduleTransforms } = options || {};
const { moduleTransforms, modules = {}, dev = false } = options || {};
const { read } = unpackReadPowers(powers);

@@ -171,2 +170,3 @@ const {

moduleSpecifier,
{ dev },
);

@@ -191,2 +191,3 @@

resolve,
modules,
makeImportHook,

@@ -193,0 +194,0 @@ moduleTransforms,

@@ -306,3 +306,3 @@ // @ts-check

);
const importHook = makeImportHook(location, parse);
const importHook = makeImportHook(location, parse, exitModules);
const moduleMapHook = makeModuleMapHook(

@@ -309,0 +309,0 @@ compartments,

@@ -7,3 +7,10 @@ // @ts-check

const { apply } = Reflect;
const { freeze } = Object;
const { hasOwnProperty } = Object.prototype;
/**
* @param {Record<string, never>} haystack
* @param {string} needle
*/
const has = (haystack, needle) => apply(hasOwnProperty, haystack, [needle]);

@@ -22,2 +29,3 @@ /**

* @param {Record<string, CompartmentDescriptor>} compartments
* @param {Record<string, never>} exitModules
* @returns {ImportHookMaker}

@@ -30,2 +38,3 @@ */

compartments = {},
exitModules = {},
) => {

@@ -49,8 +58,15 @@ // per-assembly:

if (moduleSpecifier !== '.' && !moduleSpecifier.startsWith('./')) {
packageSources[moduleSpecifier] = {
exit: moduleSpecifier,
};
// Return a place-holder.
// Archived compartments are not executed.
return freeze({ imports: [], execute() {} });
if (has(exitModules, moduleSpecifier)) {
packageSources[moduleSpecifier] = {
exit: moduleSpecifier,
};
// Return a place-holder.
// Archived compartments are not executed.
return freeze({ imports: [], exports: [], execute() {} });
}
throw new Error(
`Cannot find external module ${q(
moduleSpecifier,
)} in package ${packageLocation}`,
);
}

@@ -57,0 +73,0 @@

@@ -29,3 +29,3 @@ // @ts-check

export const loadLocation = async (readPowers, moduleLocation, options) => {
const { moduleTransforms = {} } = options || {};
const { moduleTransforms = {}, dev = false } = options || {};

@@ -53,2 +53,3 @@ const { read } = unpackReadPowers(readPowers);

moduleSpecifier,
{ dev },
);

@@ -55,0 +56,0 @@

@@ -30,3 +30,3 @@ // @ts-check

const { create, keys, values } = Object;
const { assign, create, keys, values } = Object;

@@ -207,2 +207,3 @@ const decoder = new TextDecoder();

* @param {Set<string>} tags
* @param {boolean} dev
* @returns {Promise<undefined>}

@@ -217,2 +218,3 @@ */

tags,
dev,
) => {

@@ -236,3 +238,7 @@ if (graph[packageLocation] !== undefined) {

const children = [];
for (const name of keys(packageDescriptor.dependencies || {}).sort()) {
const predicates = packageDescriptor.dependencies || {};
if (dev) {
assign(predicates, packageDescriptor.devDependencies || {});
}
for (const name of keys(predicates).sort()) {
children.push(

@@ -298,3 +304,11 @@ // Mutual recursion ahead:

dependencies[name] = dependency.packageLocation;
await graphPackage(name, readDescriptor, canonical, graph, dependency, tags);
await graphPackage(
name,
readDescriptor,
canonical,
graph,
dependency,
tags,
false,
);
};

@@ -317,2 +331,4 @@

* package.json, which was already read when searching for the package.json.
* @param {boolean} dev - whether to use devDependencies from this package (and
* only this package).
*/

@@ -325,2 +341,3 @@ const graphPackages = async (

mainPackageDescriptor,
dev,
) => {

@@ -360,2 +377,3 @@ const memo = create(null);

tags,
dev,
);

@@ -442,2 +460,4 @@ return graph;

* @param {string} moduleSpecifier
* @param {Object} [options]
* @param {boolean} [options.dev]
* @returns {Promise<CompartmentMapDescriptor>}

@@ -451,3 +471,5 @@ */

moduleSpecifier,
options = {},
) => {
const { dev = false } = options;
const { read, canonical } = unpackReadPowers(readPowers);

@@ -460,4 +482,5 @@ const graph = await graphPackages(

packageDescriptor,
dev,
);
return translateGraph(packageLocation, moduleSpecifier, graph, tags);
};

@@ -149,2 +149,3 @@ // @ts-check

* @param {ParseFn} parse
* @param {Record<string, Object>} exitModules
* @returns {ImportHook}

@@ -172,3 +173,3 @@ */

* @property {Array<Transform>} [__shimTransforms__]
* @property {Record<string, string>} [modules]
* @property {Record<string, Object>} [modules]
* @property {typeof Compartment.prototype.constructor} [Compartment]

@@ -232,2 +233,4 @@ */

* @property {ModuleTransforms} [moduleTransforms]
* @property {Record<string, any>} [modules]
* @property {boolean} [dev]
*/
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