embark/package.json
emizzle 2613e6d683 feat(@embark/core): Recursively import contracts
Add support to recursively import contracts. If we have three contracts

1. A imports B
2. B imports C

Then prior to this PR, contract A would import contract B, and a remapping would be added to the contract so the compiler would know how to find contract B. However, contract B imports contracts C, and because the `parseFileForImport` method was not recursive, the remappings were not able to go one level deeper to remap the path to contract C, and thus the compiler would not know how to locate contract C, and would complain with the error `File outside of allowed directories.`

With the introduction of this PR, the `parseFileForImport` method is now recursive, and so any contract imported is also checked for it's own imports that can be remapped. Specifically, this use case is applicable when there is a dependency containing contracts that imports one of it's own dependency's contracts, ie:

```
pragma solididty ^0.5.0;

import "dependency-1/contract-1.sol";
```
where the dependencies look like:
```
|- node_modules
|--- dependency-1
|----- contract-1.sol <--- contains import "dependency-2/contract-2.sol"
|--- dependency-2
|----- contract-2.sol
```

Add unit tests that verify recursive imports work.
Add embark depdendency that installs a contract used in the recursive unit tests.
2019-01-22 14:46:38 +11:00

232 lines
7.5 KiB
JSON

{
"name": "embark",
"version": "4.0.0-beta.0",
"author": "Iuri Matias <iuri.matias@gmail.com>",
"contributors": [],
"description": "Embark is a framework that allows you to easily develop and deploy DApps",
"homepage": "https://embark.status.im/",
"keywords": [
"blockchain",
"dapps",
"ethereum",
"ipfs",
"serverless",
"solc",
"solidity"
],
"license": "MIT",
"repository": {
"type": "git",
"url": "https://github.com/embark-framework/embark.git"
},
"bin": {
"embark": "./bin/embark"
},
"main": "./dist/lib/index.js",
"scripts": {
"babel": "babel",
"babel:node": "npm-run-all babel:node:*",
"babel:node:src": "cross-env BABEL_ENV=node babel src --copy-files --extensions \".js,.ts\" --out-dir dist --source-maps",
"babel:watch": "run-p babel:watch:*",
"babel:watch:src": "npm run babel:node:src -- --verbose --watch",
"build": "npm-run-all build:*",
"build:node": "npm run babel:node",
"build:ui": "cd embark-ui && npm run build",
"check-no-prepare": "node scripts/check-no-prepare.js",
"check-working-tree": "node scripts/check-working-tree.js",
"clean": "npm-run-all clean:*",
"clean:core": "rimraf dist embark-*.tgz package",
"clean:ui": "cd embark-ui && npm run clean",
"eslint": "eslint",
"install:core": "cross-env EMBARK_NO_PREPARE=t yarn install",
"install:ui": "cd embark-ui && yarn install",
"install_all": "npm-run-all install:*",
"lint": "npm-run-all lint:*",
"lint:js": "npm-run-all lint:js:*",
"lint:js:core": "eslint babel.config.js bin/embark scripts/ src/bin/ src/lib/",
"lint:js:ui": "cd embark-ui && npm run lint",
"lint:ts": "tslint -c tslint.json 'src/**/*.ts'",
"prepare": "npm run --silent check-no-prepare && npm-run-all install_all clean build || exit 0",
"prepublishOnly": "npm-run-all test check-working-tree",
"release": "node scripts/release.js",
"start": "run-p start:*",
"start:embark": "run-p start:embark:*",
"start:embark:babel": "npm run babel:watch",
"start:embark:type-check": "npm run type-check:watch",
"start:ui": "cd embark-ui && npm run start",
"test": "npm-run-all lint test:*",
"test:core": "cross-env nyc --reporter=html mocha 'dist/test/**/*.js' --exit --no-timeouts --require source-map-support/register",
"test:test_app": "cross-env DAPP=test_app npm run test_dapp",
"test:contracts_app": "cross-env DAPP=contracts_app npm run test_dapp",
"test_dapp": "cross-env-shell \"cd test_apps/$DAPP && npm install && npm test\"",
"tsc": "tsc",
"tslint": "tslint",
"type-check": "tsc",
"type-check:watch": "npm run type-check -- --watch"
},
"dependencies": {
"@babel/core": "7.1.2",
"@babel/plugin-proposal-class-properties": "7.1.0",
"@babel/plugin-proposal-decorators": "7.1.2",
"@babel/plugin-proposal-object-rest-spread": "7.0.0",
"@babel/plugin-syntax-dynamic-import": "7.0.0",
"@babel/plugin-transform-destructuring": "7.1.3",
"@babel/plugin-transform-flow-strip-types": "7.0.0",
"@babel/plugin-transform-runtime": "7.1.0",
"@babel/preset-env": "7.1.0",
"@babel/preset-react": "7.0.0",
"@babel/preset-typescript": "7.1.0",
"@babel/runtime-corejs2": "7.1.2",
"ajv": "6.5.5",
"ascii-table": "0.0.9",
"async": "2.6.1",
"babel-loader": "8.0.4",
"babel-plugin-macros": "2.4.2",
"babel-plugin-module-resolver": "3.1.1",
"babel-plugin-transform-react-remove-prop-types": "0.4.18",
"bip39": "2.5.0",
"body-parser": "1.18.3",
"check-dependencies": "1.1.0",
"chokidar": "2.0.4",
"clipboardy": "1.2.3",
"clone-deep": "4.0.0",
"colors": "1.3.2",
"commander": "2.18.0",
"css-loader": "1.0.0",
"date-and-time": "0.6.2",
"decompress": "4.2.0",
"deep-equal": "1.0.1",
"ejs": "2.6.1",
"embark-test-contract-0": "0.0.2",
"embarkjs": "0.5.0",
"eth-ens-namehash": "2.0.8",
"ethereumjs-tx": "1.3.7",
"ethereumjs-util": "6.0.0",
"ethereumjs-wallet": "0.6.0",
"express": "4.16.3",
"express-http-proxy": "1.5.0",
"express-ws": "4.0.0",
"file-loader": "2.0.0",
"find-up": "2.1.0",
"flatted": "0.2.3",
"follow-redirects": "1.5.7",
"fs-extra": "7.0.0",
"fuzzy": "0.1.3",
"ganache-cli": "6.2.3",
"glob": "7.1.3",
"globule": "1.2.1",
"handlebars": "4.0.12",
"hard-source-webpack-plugin": "0.12.0",
"helmet": "3.13.0",
"hosted-git-info": "2.7.1",
"http-proxy": "1.17.0",
"http-shutdown": "1.2.0",
"i18n": "0.8.3",
"ipfs-api": "17.2.4",
"istanbul": "0.4.5",
"json-parse-better-errors": "1.0.2",
"live-plugin-manager-git-fix": "0.12.1",
"lodash.clonedeep": "4.5.0",
"merge": "1.2.0",
"mocha": "5.2.0",
"multihashes": "0.4.14",
"neo-blessed": "0.2.0",
"netcat": "1.3.5",
"node-http-proxy-json": "0.1.6",
"node-ipc": "9.1.1",
"node-sass": "4.9.3",
"npmlog": "4.1.2",
"opn": "5.3.0",
"ora": "2.1.0",
"os-locale": "2.1.0",
"parse-json": "4.0.0",
"pkg-up": "2.0.0",
"pretty-ms": "4.0.0",
"promptly": "2.2.0",
"propose": "0.0.5",
"pump": "3.0.0",
"remix-debug-debugtest": "0.2.16",
"remix-tests": "0.1.1",
"request": "2.88.0",
"sass-loader": "7.1.0",
"semver": "5.5.1",
"serve-static": "1.13.2",
"shelljs": "0.5.3",
"simples": "0.8.8",
"solc": "0.5.0",
"solidity-parser-antlr": "0.3.2",
"source-map-support": "0.5.9",
"stream-json": "1.1.3",
"string-replace-async": "1.2.1",
"style-loader": "0.23.1",
"swarm-api": "0.1.2",
"tar": "3.2.1",
"term.js": "0.0.7",
"url-loader": "1.1.2",
"uuid": "3.3.2",
"viz.js": "1.8.2",
"vm2": "3.6.4",
"web3": "1.0.0-beta.37",
"web3-bzz": "1.0.0-beta.37",
"web3-core": "1.0.0-beta.37",
"web3-core-helpers": "1.0.0-beta.37",
"web3-core-method": "1.0.0-beta.37",
"web3-core-promievent": "1.0.0-beta.37",
"web3-core-requestmanager": "1.0.0-beta.37",
"web3-core-subscriptions": "1.0.0-beta.37",
"web3-eth": "1.0.0-beta.37",
"web3-eth-abi": "1.0.0-beta.37",
"web3-eth-accounts": "1.0.0-beta.37",
"web3-eth-contract": "1.0.0-beta.37",
"web3-eth-iban": "1.0.0-beta.37",
"web3-eth-personal": "1.0.0-beta.37",
"web3-net": "1.0.0-beta.37",
"web3-providers-http": "1.0.0-beta.37",
"web3-providers-ipc": "1.0.0-beta.37",
"web3-providers-ws": "1.0.0-beta.37",
"web3-shh": "1.0.0-beta.37",
"web3-utils": "1.0.0-beta.37",
"webpack": "4.19.0",
"window-size": "1.1.1",
"ws": "6.1.2"
},
"devDependencies": {
"@babel/cli": "7.1.2",
"@babel/plugin-proposal-optional-chaining": "7.0.0",
"@types/async": "2.0.50",
"@types/body-parser": "1.17.0",
"@types/cors": "2.8.4",
"@types/express": "4.16.0",
"@types/express-http-proxy": "1.5.0",
"@types/express-ws": "3.0.0",
"@types/globule": "1.1.3",
"@types/handlebars": "4.0.39",
"@types/helmet": "0.0.42",
"@types/i18n": "0.8.3",
"@types/node": "10.11.7",
"@types/os-locale": "2.1.0",
"@types/pretty-ms": "3.2.0",
"@types/web3": "1.0.12",
"babel-plugin-dynamic-import-node": "2.2.0",
"chai": "4.1.2",
"chalk": "2.4.1",
"cross-env": "5.2.0",
"eslint": "5.7.0",
"eslint-plugin-react": "7.11.1",
"minimist": "1.2.0",
"mocha-sinon": "1.2.0",
"npm-run-all": "4.1.5",
"nyc": "13.1.0",
"rimraf": "2.6.2",
"sinon": "4.5.0",
"standard-version": "4.4.0",
"tslint": "5.11.0",
"typescript": "3.1.3"
},
"engines": {
"node": ">=8.11.3",
"npm": ">666",
"yarn": ">=1.12.3"
}
}