build: implement collective typecheck

This PR replaces #2057.

Implement a collective typecheck action that can be invoked in the root of the
monorepo with `yarn typecheck` or in watch-mode with `yarn watch:typecheck`.
Include the watch-mode typecheck action as part of `yarn start` (a.k.a
`yarn watch`).

To activate collective typecheck for a package in the monorepo, its
`package.json` file should specify:

```
{
  "embark-collective": {
    "typecheck": true
  }
}
```
*-or-*
```
{
  "embark-collective": {
    "typecheck": {...}
  }
}
```

Where `{...}` above is a `tsconfig.json` fragment that will be merged into the
config generated for the package according the same rules that `tsc` applies
when merging [configs][config].

When collective typecheck begins, it generates a `tsconfig.json` for the root
of the monorepo and for each package that is activated for the action. If the
generated JSON is different than what's on disk for the respective root/package
config, or if the config is not present on disk, then it will be
written. Changes to generated `tsconfig.json` files should be committed; such
changes will arise when there are structural changes to the monorepo, e.g. a
package is added, removed, moved and/or the directory containing it is
renamed. Since the configs are only generated at the beginning of collective
typecheck, when structural changes are made in the monorepo `yarn typecheck`
(or `yarn start` or `yarn watch:typecheck`) should be restarted.

Nearly all of the packages in the monorepo (i.e. all those for which it makes
sense) have been activated for collective typecheck. Even those packages that
don't contain `.ts` sources are activated because `tsc` can make better sense
of the code base as a whole owing to the project references included in the
generated `tsconfig.json` files. Also, owing to the fully cross-referenced
`tsconfig.json` files, it's possible for `tsc` to type check the whole code
base without babel (`yarn build` or `yarn watch:build`) having been run
beforehand.

**NOTE** that a *"cold typecheck"* of the whole monorepo is resource intensive:
on this author's 2019 MacBook Pro it takes around three minutes, the fans spin
up, and `tsc` uses nearly 0.5 GB of RAM. However, once a full typecheck has
completed, the next full typecheck will complete in a few seconds or less; and
when running in watch-mode there is likewise a *big* speedup once a full
typecheck has completed, whether that full check happened before it's running
in watch-mode or when watch-mode itself resulted in a full check before
switching automatically to incremental check, as well a corresponding *big*
reduction in resource consumption. A full check will be needed any time
`yarn typecheck` (or `yarn start` or `yarn watch:typecheck`) is run in a fresh
clone plus `yarn install`, or after doing `yarn reboot[:full]` or `yarn reset`.

The combination of options in each generated package-level `tsconfig.json` and
the root `tsconfig.base.json` result in `tsc` writing `.d.ts` files (TypeScript
declaration files) into the `dist/` directory of each package. That
output is intended to live side-by-side with babel's output, and therefore the
`"rootDir"` option in each generated config is set to `"./src"`.

In projects activated for collective typecheck, `.js` may be converted to `.ts`
and/or `.ts` sources may be added without any additional changes needed in
package-level `package.json`.

---

Reorganize types in `packages/core/typings` (a.k.a `@types/embark`) into
`packages/core/core` (`embark-core`), refactor other packages' imports
accordingly, and delete `packages/core/typings` from the monorepo. This results
in some similarly named but incompatible types exported from `embark-core`
(e.g. `Events` and `EmbarkEvents`, the latter being the one from
`packages/core/typings`); future refactoring should consolidate those types. To
avoid circular dependency relationships it's also necessary to split out
`Engine` from `embark-core` into its own package (`embark-engine`) and to
introduce a bit of duplication, e.g. the `Maybe` type that's now defined in
both `embark-i18n` and `embark-core`.

In the process of the types reorg, move many dependencies spec'd in various
`package.json` to the `package.json` of the package/s that actually depend on
them, e.g. many are moved from `packages/embark/package.json` to
`packages/core/engine/package.json`. Related to those moves, fix some Node.js
`require`-logic related to bug-prone dependency resolution.

Fix all type errors that appeared as a result of activating collective
typecheck across the whole monorepo.

Reactivate `tslint` in `packages/core/core` and fix the remaining linter errors.

Tidy up and add a few items in the root `package.json` scripts.

Bump lerna from `3.16.4` to `3.19.0`.

Bumpt typescript from `3.6.3` to `3.7.2`.

Bumpt tslint from `5.16.0` to `5.20.1`.

Make various changes related to packages' `import`/`require`ing packages that
weren't spec'd in their respective `package.json`. More refactoring is needed
in this regard, but changes were made as the problems were observed in the
process of authoring this PR.

[config]: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html
This commit is contained in:
Michael Bradley, Jr 2019-12-11 11:01:38 -06:00 committed by Iuri Matias
parent a9c91c9503
commit ee56f37713
235 changed files with 4366 additions and 2594 deletions

2
.gitignore vendored
View File

@ -1,6 +1,7 @@
.DS_Store
.idea
.nyc_output
.tsconfig.collective.json
.vscode
@embark*.tgz
NOTES
@ -14,6 +15,7 @@ npm-debug.log*
npm-shrinkwrap.json
package
package-lock.json
tsconfig.tsbuildinfo
yarn-debug.log*
yarn-error.log*
yarn.lock

View File

@ -13,6 +13,7 @@
"react": "16.12.0",
"react-bootstrap": "0.32.4",
"react-dom": "16.12.0",
"rimraf": "3.0.0",
"zeppelin-solidity": "1.12.0"
},
"license": "MIT",
@ -22,7 +23,7 @@
"ci": "npm run qa",
"clean": "npm run reset",
"qa": "npm run test",
"reset": "npx embark-reset",
"reset": "npx embark-reset && npx rimraf embark-*.tgz package",
"test": "npx embark test"
},
"version": "5.0.0-alpha.4"

View File

@ -2,7 +2,8 @@
"description": "Test DApp for integration testing purposes",
"devDependencies": {
"embark": "^5.0.0-alpha.4",
"embark-reset": "^5.0.0-alpha.2"
"embark-reset": "^5.0.0-alpha.2",
"rimraf": "3.0.0"
},
"license": "MIT",
"name": "embark-dapp-test-contracts",
@ -11,7 +12,7 @@
"ci": "npm run qa",
"clean": "npm run reset",
"qa": "npm run test",
"reset": "npx embark-reset",
"reset": "npx embark-reset && npx rimraf embark-*.tgz package",
"test": "npx embark test"
},
"version": "5.0.0-alpha.4"

View File

@ -3,9 +3,16 @@
"dependencies": {
"haml": "0.4.3"
},
"devDependencies": {
"rimraf": "3.0.0"
},
"license": "MIT",
"main": "index.js",
"name": "embark-dapp-test-service",
"private": true,
"scripts": {
"clean": "npm run reset",
"reset": "npx rimraf embark-*.tgz package"
},
"version": "5.0.0-alpha.0"
}

View File

@ -7,7 +7,7 @@
"find-up": "4.1.0",
"form-data": "2.5.1",
"fs-extra": "8.1.0",
"lerna": "3.16.4",
"lerna": "3.19.0",
"minimist": "1.2.0",
"npm-run-all": "4.1.5",
"nyc": "13.1.0",
@ -29,7 +29,7 @@
"ci:full": "npm-run-all cwtree \"ci -- --concurrency={1}\" ci:dapps cwtree -- 1",
"clean": "node scripts/monorun --stream clean",
"clean:full": "npx npm-run-all clean clean:top",
"clean:top": "npx rimraf node_modules",
"clean:top": "npm run reset:top && npx rimraf node_modules",
"coverage": "npm-run-all coverage:collect coverage:report",
"coverage:collect": "node scripts/coverage-collect",
"coverage:coveralls": "nyc report --reporter=text-lcov | coveralls || exit 0",
@ -39,12 +39,11 @@
"deploy:site": "node site/deploy-site",
"globalize": "node scripts/globalize",
"lint": "node scripts/monorun --parallel lint",
"package": "lerna exec --stream --concurrency=1 -- npm pack",
"package": "lerna exec --concurrency=1 --no-private --stream -- npm pack",
"postclean": "npx lerna clean --yes",
"postreboot": "yarn install",
"postreboot:full": "yarn install",
"preci:full": "yarn install",
"preclean": "npm run reset:top",
"preqa:full": "yarn install",
"qa": "node scripts/monorun --ignore embark-dapp-* --stream qa",
"qa:dapps": "lerna run --concurrency=1 --scope embark-dapp-* --stream qa",
@ -52,14 +51,15 @@
"reboot": "npm run clean",
"reboot:full": "npm run clean:full",
"release": "node scripts/release",
"reset": "node scripts/monorun --stream reset",
"reset:full": "npx npm-run-all reset reset:top",
"reset:top": "npx rimraf .nyc_output coverage",
"reset": "node scripts/monorun --stream reset && npm-run-all reset:*",
"reset:top": "npx rimraf .tsconfig.collective.json .nyc_output coverage",
"reset:tsbuildinfo": "npx lerna exec --parallel -- npx rimraf node_modules/.cache/tsc",
"start": "node scripts/monorun --parallel start",
"test": "node scripts/monorun --ignore embark-dapp-* --stream test",
"test:dapps": "lerna run --concurrency=1 --scope embark-dapp-* --stream test",
"test:full": "npm-run-all test test:dapps",
"typecheck": "node scripts/monorun --parallel typecheck",
"typecheck": "node scripts/monorun --stream typecheck",
"typecheck:clean": "npm run typecheck -- -- -- --clean",
"watch": "node scripts/monorun --parallel watch",
"watch:build": "node scripts/monorun --parallel watch:build",
"watch:lint": "node scripts/monorun --parallel watch:lint",

View File

@ -22,18 +22,21 @@
"url": "https://github.com/embark-framework/embark.git"
},
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
"files": [
"dist"
],
"embark-collective": {
"build:node": true
"build:node": true,
"typecheck": true
},
"scripts": {
"_build": "npm run solo -- build",
"_typecheck": "npm run solo -- typecheck",
"ci": "npm run qa",
"clean": "npm run reset",
"lint": "eslint src/",
"qa": "npm-run-all lint _build",
"qa": "npm-run-all lint _typecheck _build",
"reset": "npx rimraf dist embark-*.tgz package",
"solo": "embark-solo"
},

View File

@ -0,0 +1,12 @@
{
"compilerOptions": {
"composite": true,
"declarationDir": "./dist",
"rootDir": "./src",
"tsBuildInfoFile": "./node_modules/.cache/tsc/tsconfig.embark-api-client.tsbuildinfo"
},
"extends": "../../../tsconfig.base.json",
"include": [
"src/**/*"
]
}

View File

@ -98,7 +98,7 @@
"redux-saga": "1.1.3",
"rimraf": "3.0.0",
"simple-line-icons": "2.4.1",
"typescript": "3.6.3",
"typescript": "3.7.2",
"uuid": "3.3.2",
"velocity-react": "1.4.1",
"web3": "1.2.1",

View File

@ -25,28 +25,29 @@
"url": "https://github.com/embark-framework/embark.git"
},
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
"embark-collective": {
"build:node": true
"build:node": true,
"typecheck": true
},
"scripts": {
"_build": "npm run solo -- build",
"_typecheck": "npm run solo -- typecheck",
"ci": "npm run qa",
"clean": "npm run reset",
"lint": "npm-run-all lint:*",
"lint:js": "eslint src/",
"lint:ts": "tslint -c tslint.json \"src/**/*.ts\"",
"qa": "npm-run-all lint typecheck _build",
"qa": "npm-run-all lint _typecheck _build",
"reset": "npx rimraf dist embark-*.tgz package",
"solo": "embark-solo",
"typecheck": "tsc",
"watch": "run-p watch:*",
"watch:typecheck": "npm run typecheck -- --preserveWatchOutput --watch"
"solo": "embark-solo"
},
"eslintConfig": {
"extends": "../../../.eslintrc.json"
},
"dependencies": {
"@babel/runtime-corejs3": "7.7.4",
"@types/async": "3.0.3",
"async": "2.6.1",
"colors": "1.3.2",
"core-js": "3.4.3",
@ -60,13 +61,12 @@
"web3": "1.2.1"
},
"devDependencies": {
"@types/async": "3.0.3",
"embark-solo": "^5.0.0-alpha.2",
"eslint": "5.7.0",
"npm-run-all": "4.1.5",
"rimraf": "3.0.0",
"tslint": "5.16.0",
"typescript": "3.6.3"
"tslint": "5.20.1",
"typescript": "3.7.2"
},
"engines": {
"node": ">=10.17.0 <12.0.0",

View File

@ -1,4 +1,4 @@
import { Callback, Embark, Events } /* supplied by @types/embark in packages/embark-typings */ from "embark";
import { Callback, Embark, EmbarkEvents } from "embark-core";
import { __ } from "embark-i18n";
import { Logger } from 'embark-logger';
import * as fs from "./fs";
@ -8,7 +8,7 @@ export { fs, VM };
class CodeRunner {
private logger: Logger;
private events: Events;
private events: EmbarkEvents;
private vm: VM;
constructor(embark: Embark, _options: any) {

View File

@ -1,5 +1,5 @@
import { each } from "async";
import { Callback } /* supplied by @types/embark in packages/embark-typings */ from "embark";
import { Callback } from "embark-core";
import { compact, dappPath, isEs6Module, recursiveMerge } from "embark-utils";
import { Logger } from 'embark-logger';
import * as path from "path";

View File

@ -1,4 +1,26 @@
{
"extends": "../../../tsconfig.json",
"include": ["src/**/*"]
"compilerOptions": {
"composite": true,
"declarationDir": "./dist",
"rootDir": "./src",
"tsBuildInfoFile": "./node_modules/.cache/tsc/tsconfig.embark-code-runner.tsbuildinfo"
},
"extends": "../../../tsconfig.base.json",
"include": [
"src/**/*"
],
"references": [
{
"path": "../../embarkjs/embarkjs"
},
{
"path": "../core"
},
{
"path": "../logger"
},
{
"path": "../utils"
}
]
}

View File

@ -26,39 +26,40 @@
"url": "https://github.com/embark-framework/embark.git"
},
"main": "./dist/lib/index.js",
"types": "./dist/lib/index.d.ts",
"embark-collective": {
"build:node": true
"build:node": true,
"typecheck": true
},
"scripts": {
"_build": "npm run solo -- build",
"_typecheck": "npm run solo -- typecheck",
"ci": "npm run qa",
"clean": "npm run reset",
"lint": "npm-run-all lint:*",
"lint:js": "eslint src/",
"lint:ts": "tslint -c tslint.json \"src/**/*.ts\"",
"qa": "npm-run-all lint typecheck _build test",
"qa": "npm-run-all lint _typecheck _build test",
"reset": "npx rimraf .nyc_output coverage dist embark-*.tgz package",
"solo": "embark-solo",
"test": "nyc --reporter=html --reporter=json mocha \"dist/test/**/*.js\" --exit --no-timeouts --require source-map-support/register",
"typecheck": "tsc",
"watch": "run-p watch:*",
"watch:typecheck": "npm run typecheck -- --preserveWatchOutput --watch"
"test": "nyc --reporter=html --reporter=json mocha \"dist/test/**/*.js\" --exit --no-timeouts --require source-map-support/register"
},
"eslintConfig": {
"extends": "../../../.eslintrc.json"
},
"dependencies": {
"@babel/runtime-corejs3": "7.7.4",
"@types/json-stringify-safe": "5.0.0",
"async": "2.6.1",
"chalk": "2.4.2",
"core-js": "3.4.3",
"embark-core": "^5.0.0-alpha.4",
"embark-i18n": "^5.0.0-alpha.2",
"embark-utils": "^5.0.0-alpha.4",
"fs-extra": "8.1.0",
"json-stringify-safe": "5.0.1"
},
"devDependencies": {
"@types/json-stringify-safe": "5.0.0",
"embark-logger": "^5.0.0-alpha.4",
"embark-solo": "^5.0.0-alpha.2",
"eslint": "5.7.0",
@ -67,8 +68,8 @@
"nyc": "13.1.0",
"rimraf": "3.0.0",
"source-map-support": "0.5.13",
"tslint": "5.16.0",
"typescript": "3.6.3"
"tslint": "5.20.1",
"typescript": "3.7.2"
},
"engines": {
"node": ">=10.17.0 <12.0.0",

View File

@ -1,6 +1,5 @@
import { waterfall } from "async";
import chalk from "chalk";
import { Callback, Embark, Events } /* supplied by @types/embark in packages/embark-typings */ from "embark";
import { Embark, EmbarkEvents } from "embark-core";
import constants from "embark-core/constants.json";
import { __ } from "embark-i18n";
import { dappPath, escapeHtml, exit, jsonFunctionReplacer } from "embark-utils";
@ -16,9 +15,9 @@ interface HelpDescription {
usage?: string;
}
class Console {
export default class Console {
private embark: Embark;
private events: Events;
private events: EmbarkEvents;
private plugins: any;
private version: string;
private logger: any;
@ -150,7 +149,7 @@ class Console {
__("The web3 object and the interfaces for the deployed contracts and their methods are also available"));
return helpText.join("\n");
} else if (["quit", "exit", "sair", "sortir", __("quit")].indexOf(cmd) >= 0) {
exit();
exit(0);
}
return false;
}
@ -285,5 +284,3 @@ class Console {
}
}
}
module.exports = Console;

View File

@ -1,6 +1,9 @@
import { Contract, Embark, Events } /* supplied by @types/embark in packages/embark-typings */ from "embark";
import { Contract, Embark, EmbarkEvents } from "embark-core";
import { fuzzySearch } from "embark-utils";
import { suggestions as defaultSuggestions } from "../../suggestions.json";
import { readJsonSync } from "fs-extra";
import { join } from "path";
const { suggestions: defaultSuggestions } = readJsonSync(join(__dirname, "../../suggestions.json"));
interface ContractsManager {
[key: string]: any;
@ -23,7 +26,7 @@ type SuggestionsList = Suggestion[];
export default class Suggestions {
private embark: Embark;
private events: Events;
private events: EmbarkEvents;
private contracts: ContractsManager;
private static readonly DEFAULT_SUGGESTIONS = defaultSuggestions;
private _suggestions: SuggestionsList = [];

View File

@ -1,4 +1,26 @@
{
"extends": "../../../tsconfig.json",
"include": ["src/**/*"]
"compilerOptions": {
"composite": true,
"declarationDir": "./dist",
"rootDir": "./src",
"tsBuildInfoFile": "./node_modules/.cache/tsc/tsconfig.embark-console.tsbuildinfo"
},
"extends": "../../../tsconfig.base.json",
"include": [
"src/lib/**/*"
],
"references": [
{
"path": "../core"
},
{
"path": "../i18n"
},
{
"path": "../logger"
},
{
"path": "../utils"
}
]
}

View File

@ -27,35 +27,38 @@
"url": "https://github.com/embark-framework/embark.git"
},
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
"embark-collective": {
"build:node": true
"build:node": true,
"typecheck": true
},
"scripts": {
"_build": "npm run solo -- build",
"_typecheck": "npm run solo -- typecheck",
"ci": "npm run qa",
"clean": "npm run reset",
"lint": "npm-run-all lint:*",
"lint:js": "eslint process.js src/",
"// lint:ts": "tslint -c tslint.json \"src/**/*.ts\"",
"qa": "npm-run-all lint typecheck _build",
"lint:ts": "tslint -c tslint.json \"src/**/*.ts\"",
"qa": "npm-run-all lint _typecheck _build",
"reset": "npx rimraf dist embark-*.tgz package",
"solo": "embark-solo",
"typecheck": "tsc"
"solo": "embark-solo"
},
"eslintConfig": {
"extends": "../../../.eslintrc.json"
},
"dependencies": {
"@babel/runtime-corejs3": "7.7.4",
"@types/deep-equal": "1.0.1",
"@types/web3": "1.0.12",
"colors": "1.3.2",
"core-js": "3.4.3",
"decompress": "4.2.0",
"deep-equal": "1.0.1",
"embark-i18n": "^5.0.0-alpha.2",
"embark-logger": "^5.0.0-alpha.4",
"embark-rpc-manager": "^5.0.0-alpha.4",
"embark-utils": "^5.0.0-alpha.4",
"embark-whisper-geth": "^5.0.0-alpha.4",
"embark-whisper-parity": "^5.0.0-alpha.4",
"find-up": "4.1.0",
"flatted": "0.2.3",
"fs-extra": "8.1.0",
"globule": "1.2.1",
@ -67,14 +70,12 @@
"window-size": "1.1.1"
},
"devDependencies": {
"@babel/core": "7.7.4",
"babel-jest": "24.9.0",
"embark-solo": "^5.0.0-alpha.2",
"eslint": "5.7.0",
"npm-run-all": "4.1.5",
"rimraf": "3.0.0",
"tslint": "5.16.0",
"typescript": "3.6.3"
"tslint": "5.20.1",
"typescript": "3.7.2"
},
"engines": {
"node": ">=10.17.0 <12.0.0",

View File

@ -6,7 +6,6 @@ import { filesMatchingPattern, fileMatchesPattern } from './utils/utils';
const path = require('path');
const deepEqual = require('deep-equal');
const web3 = require('web3');
const constants = require('embark-core/constants');
import { __ } from 'embark-i18n';
import {
buildUrlFromConfig,
@ -24,11 +23,14 @@ import {
getExternalContractUrl
} from 'embark-utils';
import { Logger } from 'embark-logger';
import { readJsonSync } from 'fs-extra';
const cloneDeep = require('lodash.clonedeep');
const { replaceZeroAddressShorthand } = AddressUtils;
import { getBlockchainDefaults, getContractDefaults } from './configDefaults';
const constants = readJsonSync(path.join(__dirname, '../constants.json'));
const DEFAULT_CONFIG_PATH = 'config/';
const embark5ChangesUrl = 'https://embark.status.im/docs/migrating_from_3.x.html#Updating-to-v5';
@ -79,7 +81,7 @@ export class Config {
corsParts: string[] = [];
providerUrl = null;
providerUrl = '';
contractDirectories: string[] = [];
@ -133,8 +135,8 @@ export class Config {
// TODO: refactor this so reading the file can be done with a normal resolver or something that takes advantage of the plugin api
this.events.setCommandHandler("config:contractsFiles:add", (filename, resolver) => {
resolver = resolver || function (callback) { callback(fs.readFileSync(filename).toString()); };
this.contractsFiles.push(new File({ path: filename, originalPath: filename, type: Types.custom, resolver }));
resolver = resolver || (callback => { callback(fs.readFileSync(filename).toString()); });
this.contractsFiles.push(new File({path: filename, originalPath: filename, type: Types.custom, resolver}));
});
this.events.setCommandHandler("config:contractsFiles:reset", (cb) => {
@ -375,17 +377,17 @@ export class Config {
}
if (this.blockchainConfig.targetGasLimit && this.blockchainConfig.targetGasLimit.toString().match(unitRegex)) {
this.blockchainConfig.targetGasLimit = getWeiBalanceFromString(this.blockchainConfig.targetGasLimit, web3);
this.blockchainConfig.targetGasLimit = getWeiBalanceFromString(this.blockchainConfig.targetGasLimit);
}
if (this.blockchainConfig.gasPrice && this.blockchainConfig.gasPrice.toString().match(unitRegex)) {
this.blockchainConfig.gasPrice = getWeiBalanceFromString(this.blockchainConfig.gasPrice, web3);
this.blockchainConfig.gasPrice = getWeiBalanceFromString(this.blockchainConfig.gasPrice);
}
if (this.blockchainConfig.accounts) {
this.blockchainConfig.accounts.forEach(acc => {
if (acc.balance && acc.balance.toString().match(unitRegex)) {
acc.balance = getWeiBalanceFromString(acc.balance, web3);
acc.balance = getWeiBalanceFromString(acc.balance);
}
});
}
@ -460,7 +462,7 @@ export class Config {
let configObject = getContractDefaults(this.embarkConfig.versions);
const contractsConfigs = this.plugins.getPluginsProperty('contractsConfig', 'contractsConfigs');
contractsConfigs.forEach(function (pluginConfig) {
contractsConfigs.forEach(pluginConfig => {
configObject = recursiveMerge(configObject, pluginConfig);
});
@ -475,7 +477,7 @@ export class Config {
process.exit(1);
}
if (newContractsConfig.gas.match(unitRegex)) {
newContractsConfig.gas = getWeiBalanceFromString(newContractsConfig.gas, web3);
newContractsConfig.gas = getWeiBalanceFromString(newContractsConfig.gas);
}
newContractsConfig = prepareContractsConfig(newContractsConfig);
@ -499,9 +501,7 @@ export class Config {
if (storageConfig && storageConfig.upload && storageConfig.upload.getUrl) {
this.providerUrl = storageConfig.upload.getUrl;
}
for (const contractName in contracts) {
const contract = contracts[contractName];
for (const contract of Object.values(contracts) as any[]) {
if (!contract.file) {
continue;
}
@ -711,27 +711,28 @@ export class Config {
const readFiles: File[] = [];
const storageConfig = self.storageConfig;
originalFiles.filter(function (file) {
originalFiles.filter(file => {
return (file[0] === '$' || file.indexOf('.') >= 0);
}).filter(function (file) {
}).filter(file => {
const basedir = findMatchingExpression(file, files);
readFiles.push(new File({ path: file, originalPath: file, type: Types.dappFile, basedir, storageConfig }));
});
const filesFromPlugins: File[] = [];
type _File = File & { intendedPath?: string, file?: string };
const filesFromPlugins: _File[] = [];
const filePlugins = self.plugins.getPluginsFor('pipelineFiles');
filePlugins.forEach((plugin: Plugin) => {
try {
const fileObjects = plugin.runFilePipeline();
for (let i = 0; i < fileObjects.length; i++) {
const fileObject = fileObjects[i];
for (const fileObject of fileObjects) {
filesFromPlugins.push(fileObject);
}
} catch (err) {
self.logger.error(err.message);
}
});
filesFromPlugins.filter(function (file) {
filesFromPlugins.filter(file => {
if ((file.intendedPath && fileMatchesPattern(files, file.intendedPath)) || fileMatchesPattern(files, file.file)) {
readFiles.push(file);
}

View File

@ -1,6 +1,8 @@
import {recursiveMerge} from "embark-utils";
import { readJsonSync } from 'fs-extra';
import { join } from "path";
const constants = require('embark-core/constants');
const constants = readJsonSync(join(__dirname, '../constants.json'));
export function getBlockchainDefaults(env) {
const defaults = {
@ -45,7 +47,7 @@ export function getContractDefaults(embarkConfigVersions) {
return {
default: {
versions: versions,
versions,
dappConnection: [
"$WEB3",
"ws://localhost:8546",

View File

@ -1,12 +1,139 @@
export type Callback<Tv> = (err?: Error | null, val?: Tv) => void;
export type Maybe<T> = false | 0 | undefined | null | T;
import { ABIDefinition } from 'web3/eth/abi';
export interface Contract {
abiDefinition: ABIDefinition[];
deployedAddress: string;
className: string;
silent?: boolean;
}
export interface ContractConfig {
address?: string;
args?: any[];
instanceOf?: string;
gas?: number;
gasPrice?: number;
silent?: boolean;
track?: boolean;
deploy?: boolean;
}
export interface Plugin {
dappGenerators: any;
name: string;
}
export interface EmbarkPlugins {
getPluginsFor(name: string): [Plugin];
loadInternalPlugin(name: string, options: any): void;
getPluginsProperty(pluginType: string, property: string, sub_property?: string): any[];
plugins: Plugin[];
runActionsForEvent(event: string, args: any, cb: Callback<any>): void;
}
export interface CompilerPluginObject {
extension: string;
cb: any;
}
type CommandCallback = (
opt1?: any,
opt2?: any,
opt3?: any,
opt4?: any,
opt5?: any,
opt6?: any,
opt7?: any,
opt8?: any,
opt9?: any,
opt10?: any,
opt11?: any,
opt12?: any,
) => any;
export interface EmbarkEvents {
on: any;
request: any;
request2: any;
emit: any;
once: any;
setCommandHandler(
name: string,
callback: CommandCallback,
): void;
}
export interface EmbarkConfig {
contractsFiles: any[];
embarkConfig: {
contracts: string[] | string;
config: {
contracts: string;
};
versions: {
solc: string;
};
generationDir: string;
};
blockchainConfig: {
endpoint: string;
accounts: any[];
proxy: boolean;
rpcPort: string | number;
wsPort: string | number;
rpcHost: string | number;
wsHost: string | number;
wsOrigins: string;
rpcCorsDomain: string;
wsRPC: boolean;
isDev: boolean;
client: string;
};
webServerConfig: {
certOptions: {
key: string;
cert: string;
};
};
plugins: EmbarkPlugins;
reloadConfig(): void;
}
type ActionCallback<T> = (params: any, cb: Callback<T>) => void;
import { Logger } from 'embark-logger';
export interface Embark {
env: string;
events: EmbarkEvents;
plugins: EmbarkPlugins;
registerAPICall(method: string, endpoint: string, cb: (...args: any[]) => void): void;
registerConsoleCommand: any;
logger: Logger;
fs: any;
config: EmbarkConfig;
currentContext: string[];
registerActionForEvent<T>(
name: string,
options?: ActionCallback<T> | { priority: number },
action?: ActionCallback<T>,
): void;
}
export { ProcessLauncher } from './processes/processLauncher';
export { ProcessWrapper } from './processes/processWrapper';
export { Config } from './config';
export { IPC } from './ipc';
export { Engine } from './engine';
import { EmbarkEmitter as Events } from './events';
export { Events };
export { Plugins } from './plugins';
export { ProcessManager } from './processes/processManager';
export { ServicesMonitor } from './services_monitor';
export { TestLogger } from './utils/test_logger';
export { TemplateGenerator } from './utils/template_generator';

View File

@ -2,9 +2,12 @@ import { fileMatchesPattern } from './utils/utils';
import { __ } from 'embark-i18n';
import { dappPath, embarkPath, isEs6Module, joinPath } from 'embark-utils';
import { Logger } from 'embark-logger';
const constants = require('embark-core/constants');
const fs = require('fs-extra');
const deepEqual = require('deep-equal');
import * as fs from 'fs-extra';
import { readFileSync, readJsonSync } from 'fs-extra';
import { join } from "path";
const constants = readJsonSync(join(__dirname, '../constants.json'));
// Default priority of actions with no specified priority. 1 => Highest
const DEFAULT_ACTION_PRIORITY = 50;
@ -136,15 +139,7 @@ export class Plugin {
}
setUpLogger() {
this.logger = {
log: this._log.bind(this, 'log'),
warn: this._log.bind(this, 'warn'),
error: this._log.bind(this, 'error'),
info: this._log.bind(this, 'info'),
debug: this._log.bind(this, 'debug'),
trace: this._log.bind(this, 'trace'),
dir: this._log.bind(this, 'dir')
};
this.logger = new Logger({});
}
isContextValid() {
@ -188,7 +183,7 @@ export class Plugin {
}
loadPluginFile(filename) {
return fs.readFileSync(this.pathToFile(filename)).toString();
return readFileSync(this.pathToFile(filename)).toString();
}
pathToFile(filename) {
@ -272,13 +267,13 @@ export class Plugin {
}
generateProvider(args) {
return this.clientWeb3Providers.map(function (cb) {
return this.clientWeb3Providers.map(function(cb) {
return cb.call(this, args);
}).join("\n");
}
generateContracts(args) {
return this.contractsGenerators.map(function (cb) {
return this.contractsGenerators.map(function(cb) {
return cb.call(this, args);
}).join("\n");
}
@ -351,7 +346,7 @@ export class Plugin {
runFilePipeline() {
return this.pipelineFiles.map(file => {
let obj: any = {};
const obj: any = {};
obj.filename = file.file.replace('./', '');
obj.content = this.loadPluginFile(file.file).toString();
obj.intendedPath = file.intendedPath;
@ -364,8 +359,8 @@ export class Plugin {
runPipeline(args) {
// TODO: should iterate the pipelines
let pipeline = this.pipeline[0];
let shouldRunPipeline = fileMatchesPattern(pipeline.matcthingFiles, args.targetFile);
const pipeline = this.pipeline[0];
const shouldRunPipeline = fileMatchesPattern(pipeline.matcthingFiles, args.targetFile);
if (shouldRunPipeline) {
return pipeline.cb.call(this, args);
}

View File

@ -6,6 +6,8 @@ import { Config } from './config';
import * as async from 'async';
import { dappPath, embarkPath } from 'embark-utils';
import { Logger } from 'embark-logger';
import findUp from 'find-up';
import { dirname } from 'path';
export class Plugins {
@ -90,7 +92,8 @@ export class Plugins {
}
loadInternalPlugin(pluginName, pluginConfig, isPackage?: boolean) {
let pluginPath, plugin;
let pluginPath;
let plugin;
if (isPackage) {
pluginPath = pluginName;
plugin = require(pluginName);
@ -124,7 +127,9 @@ export class Plugins {
}
loadPlugin(pluginName, pluginConfig) {
const pluginPath = dappPath('node_modules', pluginName);
const pluginPath = dirname(findUp.sync('package.json', {
cwd: dirname(require.resolve(pluginName, {paths: [dappPath()]}))
}) as string);
let plugin = require(pluginPath);
if (plugin.default) {
@ -151,13 +156,13 @@ export class Plugins {
}
getPluginsFor(pluginType) {
return this.plugins.filter(function(plugin) {
return this.plugins.filter(plugin => {
return plugin.has(pluginType);
});
}
getPluginsProperty(pluginType, property, sub_property?: any) {
const matchingPlugins = this.plugins.filter(function(plugin) {
const matchingPlugins = this.plugins.filter(plugin => {
return plugin.has(pluginType);
});
@ -180,7 +185,7 @@ export class Plugins {
});
// Remove empty properties
matchingProperties = matchingProperties.filter((property) => property);
matchingProperties = matchingProperties.filter(prop => prop);
// return flattened list
if (matchingProperties.length === 0) { return []; }
@ -188,7 +193,7 @@ export class Plugins {
}
getPluginsPropertyAndPluginName(pluginType, property, sub_property) {
const matchingPlugins = this.plugins.filter(function(plugin) {
const matchingPlugins = this.plugins.filter(plugin => {
return plugin.has(pluginType);
});
@ -204,24 +209,21 @@ export class Plugins {
});
let matchingProperties: any[] = [];
matchingPlugins.map((plugin) => {
matchingPlugins.forEach(plugin => {
if (sub_property) {
const newList = [];
for (const kall of (plugin[property][sub_property] || [])) {
matchingProperties.push([kall, plugin.name]);
}
return newList;
return;
}
const newList = [];
for (const kall of (plugin[property] || [])) {
matchingProperties.push([kall, plugin.name]);
}
return newList;
});
// Remove empty properties
matchingProperties = matchingProperties.filter((property) => property[0]);
matchingProperties = matchingProperties.filter(prop => prop[0]);
// return flattened list
if (matchingProperties.length === 0) { return []; }
@ -256,7 +258,7 @@ export class Plugins {
this.events.log("ACTION", eventName, "");
async.reduce(actionPlugins, args, function(current_args, pluginObj: any, nextEach) {
async.reduce(actionPlugins, args, (current_args, pluginObj: any, nextEach) => {
const [plugin, pluginName] = pluginObj;
self.events.log("== ACTION FOR " + eventName, plugin.action.name, pluginName);

View File

@ -1,5 +1,8 @@
import { readJsonSync } from 'fs-extra';
import { join } from "path";
const uuid = require('uuid/v1');
const constants = require('../../constants');
const constants = readJsonSync(join(__dirname, '../../constants.json'));
export class Events {

View File

@ -1,7 +1,9 @@
const child_process = require('child_process');
const constants = require('../../constants');
import { readJsonSync } from 'fs-extra';
const path = require('path');
const constants = readJsonSync(path.join(__dirname, '../../constants.json'));
let processCount = 1;
export class ProcessLauncher {

View File

@ -1,5 +1,8 @@
import { readJsonSync } from 'fs-extra';
import { join } from "path";
import { Events } from './eventsWrapper';
const constants = require('../../constants');
const constants = readJsonSync(join(__dirname, '../../constants.json'));
export class ProcessWrapper {

View File

@ -37,7 +37,7 @@ export class ServicesMonitor {
return false;
}
self.events.on('check:' + checkName, function(obj) {
self.events.on('check:' + checkName, obj => {
if (check && check.status === 'off' && obj.status === 'on') {
self.events.emit('check:backOnline:' + checkName);
}
@ -53,14 +53,14 @@ export class ServicesMonitor {
});
if (check.interval !== 0) {
self.checkTimers[checkName] = setInterval(function() {
check.fn.call(check.fn, function(obj) {
self.checkTimers[checkName] = setInterval(() => {
check.fn.call(check.fn, obj => {
self.events.emit('check:' + checkName, obj);
});
}, check.interval);
}
check.fn.call(check.fn, function(obj) {
check.fn.call(check.fn, obj => {
self.events.emit('check:' + checkName, obj);
});
}
@ -87,7 +87,7 @@ export class ServicesMonitor {
this.logger.trace('startMonitor');
const servicePlugins = this.plugins.getPluginsProperty('serviceChecks', 'serviceChecks');
servicePlugins.forEach(function(pluginCheck) {
servicePlugins.forEach(pluginCheck => {
self.addCheck(pluginCheck.checkName, pluginCheck.checkFn, pluginCheck.time);
});

View File

@ -1,5 +1,23 @@
{
"extends": "../../../tsconfig.json",
"include": ["src/**/*"]
"compilerOptions": {
"composite": true,
"declarationDir": "./dist",
"rootDir": "./src",
"tsBuildInfoFile": "./node_modules/.cache/tsc/tsconfig.embark-core.tsbuildinfo"
},
"extends": "../../../tsconfig.base.json",
"include": [
"src/**/*"
],
"references": [
{
"path": "../i18n"
},
{
"path": "../logger"
},
{
"path": "../utils"
}
]
}

View File

@ -1,4 +1,3 @@
{
"extends": "../../../tslint.json"
}

View File

@ -1,6 +1,6 @@
# `@types/embark`
# `embark-engine`
> TypeScript definitions for Embark
> Engine library for Embark
Visit [embark.status.im](https://embark.status.im/) to get started with
[Embark](https://github.com/embark-framework/embark).

View File

@ -0,0 +1,110 @@
{
"name": "embark-engine",
"version": "5.0.0-alpha.4",
"author": "Iuri Matias <iuri.matias@gmail.com>",
"contributors": [],
"description": "Engine library for Embark",
"homepage": "https://github.com/embark-framework/embark/tree/master/packages/core/engine#readme",
"bugs": "https://github.com/embark-framework/embark/issues",
"keywords": [
"blockchain",
"dapps",
"ethereum",
"ipfs",
"serverless",
"solc",
"solidity"
],
"files": [
"dist"
],
"license": "MIT",
"repository": {
"directory": "packages/core/engine",
"type": "git",
"url": "https://github.com/embark-framework/embark.git"
},
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
"embark-collective": {
"build:node": true,
"typecheck": true
},
"scripts": {
"_build": "npm run solo -- build",
"_typecheck": "npm run solo -- typecheck",
"ci": "npm run qa",
"clean": "npm run reset",
"lint": "tslint -c tslint.json \"src/**/*.ts\"",
"qa": "npm-run-all lint _typecheck _build",
"reset": "npx rimraf dist embark-*.tgz package",
"solo": "embark-solo"
},
"eslintConfig": {
"extends": "../../../.eslintrc.json"
},
"dependencies": {
"@babel/runtime-corejs3": "7.7.4",
"core-js": "3.4.3",
"embark-accounts-manager": "^5.0.0-alpha.4",
"embark-api": "^5.0.0-alpha.4",
"embark-authenticator": "^5.0.0-alpha.4",
"embark-basic-pipeline": "^5.0.0-alpha.4",
"embark-blockchain": "^5.0.0-alpha.4",
"embark-blockchain-client": "^5.0.0-alpha.2",
"embark-code-runner": "^5.0.0-alpha.4",
"embark-communication": "^5.0.0-alpha.4",
"embark-compiler": "^5.0.0-alpha.4",
"embark-console": "^5.0.0-alpha.4",
"embark-contracts-manager": "^5.0.0-alpha.4",
"embark-core": "^5.0.0-alpha.4",
"embark-coverage": "^5.0.0-alpha.4",
"embark-debugger": "^5.0.0-alpha.4",
"embark-deployment": "^5.0.0-alpha.4",
"embark-embarkjs": "^5.0.0-alpha.4",
"embark-ens": "^5.0.0-alpha.4",
"embark-ethereum-blockchain-client": "^5.0.0-alpha.4",
"embark-ganache": "^5.0.0-alpha.2",
"embark-geth": "^5.0.0-alpha.4",
"embark-ipfs": "^5.0.0-alpha.4",
"embark-library-manager": "^5.0.0-alpha.4",
"embark-logger": "^5.0.0-alpha.4",
"embark-mocha-tests": "^5.0.0-alpha.4",
"embark-namesystem": "^5.0.0-alpha.2",
"embark-parity": "^5.0.0-alpha.4",
"embark-pipeline": "^5.0.0-alpha.4",
"embark-plugin-cmd": "^5.0.0-alpha.4",
"embark-process-logs-api-manager": "^5.0.0-alpha.4",
"embark-profiler": "^5.0.0-alpha.2",
"embark-proxy": "^5.0.0-alpha.4",
"embark-rpc-manager": "^5.0.0-alpha.4",
"embark-scaffolding": "^5.0.0-alpha.2",
"embark-solidity": "^5.0.0-alpha.4",
"embark-solidity-tests": "^5.0.0-alpha.4",
"embark-specialconfigs": "^5.0.0-alpha.2",
"embark-storage": "^5.0.0-alpha.4",
"embark-swarm": "^5.0.0-alpha.4",
"embark-test-runner": "^5.0.0-alpha.4",
"embark-transaction-logger": "^5.0.0-alpha.4",
"embark-transaction-tracker": "^5.0.0-alpha.2",
"embark-utils": "^5.0.0-alpha.4",
"embark-vyper": "^5.0.0-alpha.2",
"embark-watcher": "^5.0.0-alpha.4",
"embark-web3": "^5.0.0-alpha.4",
"embark-webserver": "^5.0.0-alpha.4",
"embark-whisper-geth": "^5.0.0-alpha.4",
"embark-whisper-parity": "^5.0.0-alpha.4"
},
"devDependencies": {
"embark-solo": "^5.0.0-alpha.2",
"npm-run-all": "4.1.5",
"rimraf": "3.0.0",
"tslint": "5.20.1",
"typescript": "3.7.2"
},
"engines": {
"node": ">=10.17.0 <12.0.0",
"npm": ">=6.11.3",
"yarn": ">=1.19.1"
}
}

View File

@ -1,10 +1,11 @@
import { Config } from './config';
import { Plugins } from './plugins';
import { EmbarkEmitter as Events } from './events';
import { ProcessManager } from './processes/processManager';
import { IPC } from './ipc';
import { ServicesMonitor } from './services_monitor';
import {
Config,
Events,
IPC,
Plugins,
ProcessManager,
ServicesMonitor
} from 'embark-core';
import { normalizeInput } from 'embark-utils';
import { Logger } from 'embark-logger';
@ -67,6 +68,7 @@ export class Engine {
this.version = options.version;
this.logFile = options.logFile;
this.logLevel = options.logLevel;
this.logger = options.logger;
this.events = options.events;
this.context = options.context;
this.useDashboard = options.useDashboard;
@ -78,13 +80,13 @@ export class Engine {
}
init(_options, callback) {
callback = callback || function () { };
callback = callback || (() => {});
const options = _options || {};
this.events = options.events || this.events || new Events();
this.logger = options.logger || new Logger({ context: this.context, logLevel: options.logLevel || this.logLevel || 'info', events: this.events, logFile: this.logFile });
this.config = new Config({ env: this.env, logger: this.logger, events: this.events, context: this.context, webServerConfig: this.webServerConfig, version: this.version, package: this.package });
this.config.loadConfigFiles({ embarkConfig: this.embarkConfig, interceptLogs: this.interceptLogs });
this.logger = this.logger || new Logger({context: this.context, logLevel: options.logLevel || this.logLevel || 'info', events: this.events, logFile: this.logFile});
this.config = new Config({env: this.env, logger: this.logger, events: this.events, context: this.context, webServerConfig: this.webServerConfig, version: this.version, package: this.package});
this.config.loadConfigFiles({embarkConfig: this.embarkConfig, interceptLogs: this.interceptLogs});
this.plugins = this.config.plugins;
this.isDev = this.config && this.config.blockchainConfig && (this.config.blockchainConfig.isDev || this.config.blockchainConfig.default);
@ -127,13 +129,13 @@ export class Engine {
registerModule(moduleName, options) {
if (this.plugins) {
this.plugins.loadInternalPlugin(moduleName, options || {});
this.plugins.loadInternalPlugin(require.resolve(moduleName), options || {});
}
}
registerModulePackage(moduleName, options?: any) {
if (this.plugins) {
return this.plugins.loadInternalPlugin(moduleName, options || {}, true);
return this.plugins.loadInternalPlugin(require.resolve(moduleName), options || {}, true);
}
}
@ -204,7 +206,7 @@ export class Engine {
if (this.plugins) {
const plugin = this.plugins.createPlugin('coreservicesplugin', {});
plugin.registerActionForEvent("embark:engine:started", (_params, cb) => {
this.servicesMonitor && this.servicesMonitor.startMonitor();
if (this.servicesMonitor) { this.servicesMonitor.startMonitor(); }
cb();
});
}
@ -321,23 +323,23 @@ function interceptLogs(consoleContext, logger) {
const context: any = {};
context.console = consoleContext;
context.console.log = function () {
context.console.log = () => {
logger.info(normalizeInput(arguments));
};
context.console.warn = function () {
context.console.warn = () => {
logger.warn(normalizeInput(arguments));
};
context.console.info = function () {
context.console.info = () => {
logger.info(normalizeInput(arguments));
};
context.console.debug = function () {
context.console.debug = () => {
// TODO: ue JSON.stringify
logger.debug(normalizeInput(arguments));
};
context.console.trace = function () {
context.console.trace = () => {
logger.trace(normalizeInput(arguments));
};
context.console.dir = function () {
context.console.dir = () => {
logger.dir(normalizeInput(arguments));
};
}

View File

@ -0,0 +1,158 @@
{
"compilerOptions": {
"composite": true,
"declarationDir": "./dist",
"rootDir": "./src",
"tsBuildInfoFile": "./node_modules/.cache/tsc/tsconfig.embark-engine.tsbuildinfo"
},
"extends": "../../../tsconfig.base.json",
"include": [
"src/**/*"
],
"references": [
{
"path": "../../plugins/accounts-manager"
},
{
"path": "../../plugins/basic-pipeline"
},
{
"path": "../../plugins/coverage"
},
{
"path": "../../plugins/debugger"
},
{
"path": "../../plugins/ens"
},
{
"path": "../../plugins/ethereum-blockchain-client"
},
{
"path": "../../plugins/ganache"
},
{
"path": "../../plugins/geth"
},
{
"path": "../../plugins/ipfs"
},
{
"path": "../../plugins/mocha-tests"
},
{
"path": "../../plugins/parity"
},
{
"path": "../../plugins/plugin-cmd"
},
{
"path": "../../plugins/profiler"
},
{
"path": "../../plugins/rpc-manager"
},
{
"path": "../../plugins/scaffolding"
},
{
"path": "../../plugins/solidity"
},
{
"path": "../../plugins/solidity-tests"
},
{
"path": "../../plugins/specialconfigs"
},
{
"path": "../../plugins/swarm"
},
{
"path": "../../plugins/transaction-logger"
},
{
"path": "../../plugins/transaction-tracker"
},
{
"path": "../../plugins/vyper"
},
{
"path": "../../plugins/web3"
},
{
"path": "../../plugins/whisper-geth"
},
{
"path": "../../plugins/whisper-parity"
},
{
"path": "../../stack/api"
},
{
"path": "../../stack/authenticator"
},
{
"path": "../../stack/blockchain"
},
{
"path": "../../stack/blockchain-client"
},
{
"path": "../../stack/communication"
},
{
"path": "../../stack/compiler"
},
{
"path": "../../stack/contracts-manager"
},
{
"path": "../../stack/deployment"
},
{
"path": "../../stack/embarkjs"
},
{
"path": "../../stack/library-manager"
},
{
"path": "../../stack/namesystem"
},
{
"path": "../../stack/pipeline"
},
{
"path": "../../stack/process-logs-api-manager"
},
{
"path": "../../stack/proxy"
},
{
"path": "../../stack/storage"
},
{
"path": "../../stack/test-runner"
},
{
"path": "../../stack/watcher"
},
{
"path": "../../stack/webserver"
},
{
"path": "../code-runner"
},
{
"path": "../console"
},
{
"path": "../core"
},
{
"path": "../logger"
},
{
"path": "../utils"
}
]
}

View File

@ -1,14 +0,0 @@
import { Maybe } from 'embark';
import * as i18n from 'i18n';
declare module 'embark-i18n' {
function setOrDetectLocale(locale: Maybe<string>): void;
function __(
phraseOrOptions: string | i18n.TranslateOptions,
...replace: string[]
): string;
function __(
phraseOrOptions: string | i18n.TranslateOptions,
replacements: i18n.Replacements
): string;
}

View File

@ -26,36 +26,36 @@
"url": "https://github.com/embark-framework/embark.git"
},
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
"embark-collective": {
"build:node": true
"build:node": true,
"typecheck": true
},
"scripts": {
"_build": "npm run solo -- build",
"_typecheck": "npm run solo -- typecheck",
"ci": "npm run qa",
"clean": "npm run reset",
"lint": "npm-run-all lint:*",
"lint:ts": "tslint -c tslint.json \"src/**/*.ts\"",
"qa": "npm-run-all lint typecheck _build",
"qa": "npm-run-all lint _typecheck _build",
"reset": "npx rimraf dist embark-*.tgz package",
"solo": "embark-solo",
"typecheck": "tsc",
"watch": "run-p watch:*",
"watch:typecheck": "npm run typecheck -- --preserveWatchOutput --watch"
"solo": "embark-solo"
},
"dependencies": {
"@babel/runtime-corejs3": "7.7.4",
"@types/i18n": "0.8.3",
"colors": "1.3.2",
"core-js": "3.4.3",
"i18n": "0.8.3",
"os-locale": "4.0.0"
},
"devDependencies": {
"@types/i18n": "0.8.3",
"embark-solo": "^5.0.0-alpha.2",
"npm-run-all": "4.1.5",
"rimraf": "3.0.0",
"tslint": "5.16.0",
"typescript": "3.6.3"
"tslint": "5.20.1",
"typescript": "3.7.2"
},
"engines": {
"node": ">=10.17.0 <12.0.0",

View File

@ -3,7 +3,7 @@ import * as i18n from 'i18n';
import * as osLocale from 'os-locale';
import * as path from 'path';
import { Maybe } /* supplied by @types/embark in packages/embark-typings */ from 'embark';
type Maybe<T> = false | 0 | undefined | null | T;
enum LocalType {
Specified = 'specified',
@ -49,4 +49,4 @@ export const setOrDetectLocale = (locale: Maybe<string>) => {
i18n.setLocale(DEFAULT_LANGUAGE);
export const __ = i18nEmbark.__;
export const __ = (i18nEmbark.__ as unknown) as i18nAPI["__"];

View File

@ -1,4 +1,12 @@
{
"extends": "../../../tsconfig.json",
"include": ["src/**/*"]
"compilerOptions": {
"composite": true,
"declarationDir": "./dist",
"rootDir": "./src",
"tsBuildInfoFile": "./node_modules/.cache/tsc/tsconfig.embark-i18n.tsbuildinfo"
},
"extends": "../../../tsconfig.base.json",
"include": [
"src/**/*"
]
}

View File

@ -25,15 +25,18 @@
"url": "https://github.com/embark-framework/embark.git"
},
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
"embark-collective": {
"build:node": true
"build:node": true,
"typecheck": true
},
"scripts": {
"_build": "npm run solo -- build",
"_typecheck": "npm run solo -- typecheck",
"ci": "npm run qa",
"clean": "npm run reset",
"lint": "eslint src/",
"qa": "npm-run-all lint _build",
"qa": "npm-run-all lint _typecheck _build",
"reset": "npx rimraf dist embark-*.tgz package",
"solo": "embark-solo"
},
@ -44,8 +47,7 @@
"@babel/runtime-corejs3": "7.7.4",
"colors": "1.3.2",
"core-js": "3.4.3",
"date-and-time": "0.6.2",
"embark-utils": "^5.0.0-alpha.4"
"date-and-time": "0.6.2"
},
"devDependencies": {
"embark-solo": "^5.0.0-alpha.2",

View File

@ -1,16 +1,24 @@
require('colors');
const fs = require('fs');
const date = require('date-and-time');
const { escapeHtml } = require('embark-utils');
const { escapeHtml } = require('./utils');
const util = require('util');
const DATE_FORMAT = 'YYYY-MM-DD HH:mm:ss:SSS';
const LOG_REGEX = new RegExp(/\[(\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d:\d\d\d)\] (?:\[(\w*)\]:?)?\s?\s?(.*)/gmi);
export const LogLevels = {
error: 'error',
warn: 'warn',
info: 'info',
debug: 'debug',
trace: 'trace'
};
export class Logger {
constructor(options) {
this.events = options.events || {emit: function(){}};
this.logLevels = Object.keys(Logger.logLevels);
this.logLevels = Object.keys(LogLevels);
this.logLevel = options.logLevel || 'info';
this._logFunction = options.logFunction || console.log;
this.logFunction = function() {
@ -67,14 +75,6 @@ export class Logger {
}
}
Logger.logLevels = {
error: 'error',
warn: 'warn',
info: 'info',
debug: 'debug',
trace: 'trace'
};
Logger.prototype.registerAPICall = function (plugins) {
const self = this;

View File

@ -0,0 +1,10 @@
exports.escapeHtml = function(message) {
if(typeof message !== "string") return message;
return message
.replace(/&/g, "&amp;")
.replace(/</g, "&lt;")
.replace(/>/g, "&gt;")
.replace(/\"/g, "&quot;")
.replace(/\'/g, "&#39;");
};

View File

@ -0,0 +1,12 @@
{
"compilerOptions": {
"composite": true,
"declarationDir": "./dist",
"rootDir": "./src",
"tsBuildInfoFile": "./node_modules/.cache/tsc/tsconfig.embark-logger.tsbuildinfo"
},
"extends": "../../../tsconfig.base.json",
"include": [
"src/**/*"
]
}

View File

@ -2,4 +2,4 @@
/* global module require */
require('./').reset();
require('./src').reset();

View File

@ -13,19 +13,30 @@
"url": "https://github.com/embark-framework/embark.git"
},
"bin": "./bin.js",
"main": "index.js",
"main": "./src/index.js",
"types": "./dist/index.d.ts",
"files": [
"bin.js"
"bin.js",
"dist",
"src"
],
"embark-collective": {},
"embark-collective": {
"typecheck": true
},
"scripts": {
"_typecheck": "npm run solo -- typecheck",
"ci": "npm run qa",
"clean": "npm run reset",
"qa": "npm-run-all _typecheck",
"reset": "npx rimraf dist embark-*.tgz package",
"solo": "embark-solo"
},
"dependencies": {
"rimraf": "3.0.0"
},
"devDependencies": {
"embark-solo": "^5.0.0-alpha.2"
"embark-solo": "^5.0.0-alpha.2",
"npm-run-all": "4.1.5"
},
"engines": {
"node": ">=10.17.0 <12.0.0",

View File

@ -0,0 +1,12 @@
{
"compilerOptions": {
"composite": true,
"declarationDir": "./dist",
"rootDir": "./src",
"tsBuildInfoFile": "./node_modules/.cache/tsc/tsconfig.embark-reset.tsbuildinfo"
},
"extends": "../../../tsconfig.base.json",
"include": [
"src/**/*"
]
}

View File

@ -1 +0,0 @@
types-embark-*.tgz

View File

@ -1,144 +0,0 @@
# Change Log
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
# [5.0.0-alpha.2](https://github.com/embark-framework/embark/compare/v5.0.0-alpha.1...v5.0.0-alpha.2) (2019-12-05)
### Bug Fixes
* **@embark/core:** ensure type declaration for Plugin.registerActionForEvent() is legit ([5dc4b21](https://github.com/embark-framework/embark/commit/5dc4b21)), closes [/github.com/embark-framework/embark/commit/776db1b7f71e9a78f216cf2acc6c1387c60b3604#diff-5cab125016e6d753f03b6cd0241d5ebbR267](https://github.com//github.com/embark-framework/embark/commit/776db1b7f71e9a78f216cf2acc6c1387c60b3604/issues/diff-5cab125016e6d753f03b6cd0241d5ebbR267)
* **@embark/proxy:** Fix unsubsribe handling and add new provider ([f6f4507](https://github.com/embark-framework/embark/commit/f6f4507))
### Features
* **@embark/embark-rpc-manager:** Add support for `eth_signTypedData_v3` ([c7ec49a](https://github.com/embark-framework/embark/commit/c7ec49a)), closes [#1850](https://github.com/embark-framework/embark/issues/1850) [#1850](https://github.com/embark-framework/embark/issues/1850)
# [5.0.0-alpha.1](https://github.com/embark-framework/embark/compare/v5.0.0-alpha.0...v5.0.0-alpha.1) (2019-11-05)
### Bug Fixes
* **@embark/proxy:** Fix contract event subscriptions ([f9ad486](https://github.com/embark-framework/embark/commit/f9ad486))
# [5.0.0-alpha.0](https://github.com/embark-framework/embark/compare/v4.1.1...v5.0.0-alpha.0) (2019-10-28)
### Bug Fixes
* **@embark/proxy:** Fix contract event subscriptions ([173d53d](https://github.com/embark-framework/embark/commit/173d53d))
### Build System
* bump all packages' engines settings ([#1985](https://github.com/embark-framework/embark/issues/1985)) ([ed02cc8](https://github.com/embark-framework/embark/commit/ed02cc8))
### Features
* **@embark/compiler:** support :before and :after hooks on event compiler:contracts:compile ([#1878](https://github.com/embark-framework/embark/issues/1878)) ([043ccc0](https://github.com/embark-framework/embark/commit/043ccc0))
### BREAKING CHANGES
* node: >=10.17.0 <12.0.0
npm: >=6.11.3
yarn: >=1.19.1
node v10.17.0 is the latest in the 10.x series and is still in the Active LTS
lifecycle. Embark is still not compatible with node's 12.x and 13.x
series (because of some dependencies), otherwise it would probably make sense
to bump our minimum supported node version all the way to the most recent 12.x
release.
npm v6.11.3 is the version that's bundled with node v10.17.0.
yarn v1.19.1 is the most recent version as of the time node v10.17.0 was
released.
# [4.1.0](https://github.com/embark-framework/embark/compare/v4.1.0-beta.6...v4.1.0) (2019-08-12)
**Note:** Version bump only for package @types/embark
# [4.1.0-beta.5](https://github.com/embark-framework/embark/compare/v4.1.0-beta.4...v4.1.0-beta.5) (2019-07-10)
### Bug Fixes
* **@embark/code-runner:** restore EmbarkJS.environment property in the cli dashboard ([7d27125](https://github.com/embark-framework/embark/commit/7d27125))
# [4.1.0-beta.4](https://github.com/embark-framework/embark/compare/v4.1.0-beta.3...v4.1.0-beta.4) (2019-06-27)
### Bug Fixes
* **@embark/coverage:** function types and single statement ifs ([2ce9ca6](https://github.com/embark-framework/embark/commit/2ce9ca6))
# [4.1.0-beta.3](https://github.com/embark-framework/embark/compare/v4.1.0-beta.2...v4.1.0-beta.3) (2019-06-07)
**Note:** Version bump only for package @types/embark
# [4.1.0-beta.1](https://github.com/embark-framework/embark/compare/v4.1.0-beta.0...v4.1.0-beta.1) (2019-05-15)
### Features
* **@embark/api:** Add command `service api on/off` ([634feb5](https://github.com/embark-framework/embark/commit/634feb5))
# [4.0.0](https://github.com/embark-framework/embark/compare/v4.0.0-beta.2...v4.0.0) (2019-03-18)
**Note:** Version bump only for package @types/embark
# [4.0.0-beta.1](https://github.com/embark-framework/embark/compare/v4.0.0-beta.0...v4.0.0-beta.1) (2019-03-18)
### Bug Fixes
* **@embark/cockpit:** Fix cockpit not suggesting console commands ([0eaad43](https://github.com/embark-framework/embark/commit/0eaad43))
* **console:** fix ENS tests not working with embark side by side ([e20c08a](https://github.com/embark-framework/embark/commit/e20c08a))
### Features
* **@embark/core:** Auto generate EmbarkJS events ([d378ccf](https://github.com/embark-framework/embark/commit/d378ccf))
* **test/reporter:** log tx functions during tests ([87d92b6](https://github.com/embark-framework/embark/commit/87d92b6))
* add repository.directory field to package.json ([a9c5e1a](https://github.com/embark-framework/embark/commit/a9c5e1a))
* normalize README and package.json bugs, homepage, description ([5418f16](https://github.com/embark-framework/embark/commit/5418f16))

View File

@ -1,12 +0,0 @@
import './src/omg-js-util';
import './src/prettier-plugin-solidity';
import './src/remix-debug-debugtest';
export * from './src/callbacks';
export * from './src/contract';
export * from './src/embark';
export * from './src/contractsConfig';
export * from './src/embarkConfig';
export * from './src/logger';
export * from './src/maybe';
export * from './src/plugins';

View File

@ -1,33 +0,0 @@
{
"name": "@types/embark",
"private": true,
"version": "5.0.0-alpha.2",
"author": "Iuri Matias <iuri.matias@gmail.com>",
"contributors": [],
"description": "TypeScript definitions for Embark",
"license": "MIT",
"main": "",
"types": "index",
"embark-collective": {},
"scripts": {
"ci": "npm run qa",
"lint": "tslint -c tslint.json index.d.ts \"src/**/*.ts\"",
"qa": "npm-run-all lint typecheck",
"solo": "embark-solo",
"typecheck": "tsc",
"watch": "run-p watch:*",
"watch:typecheck": "npm run typecheck -- --preserveWatchOutput --watch"
},
"devDependencies": {
"@types/web3": "1.0.12",
"embark-solo": "^5.0.0-alpha.2",
"npm-run-all": "4.1.5",
"tslint": "5.16.0",
"typescript": "3.6.3"
},
"engines": {
"node": ">=10.17.0 <12.0.0",
"npm": ">=6.11.3",
"yarn": ">=1.19.1"
}
}

View File

@ -1 +0,0 @@
export type Callback<Tv> = (err?: Error | null, val?: Tv) => void;

View File

@ -1,8 +0,0 @@
import { ABIDefinition } from 'web3/eth/abi';
export interface Contract {
abiDefinition: ABIDefinition[];
deployedAddress: string;
className: string;
silent?: boolean;
}

View File

@ -1,16 +0,0 @@
export interface ContractsConfig {
deploy: { [name: string]: ContractConfig };
gas: string | number;
tracking: boolean | string;
}
export interface ContractConfig {
address?: string;
args?: any[];
instanceOf?: string;
gas?: number;
gasPrice?: number;
silent?: boolean;
track?: boolean;
deploy?: boolean;
}

View File

@ -1,85 +0,0 @@
import { Logger } from './logger';
import { Plugins } from './plugins';
import { Callback } from './callbacks';
type CommandCallback = (
opt1?: any,
opt2?: any,
opt3?: any,
opt4?: any,
opt5?: any,
opt6?: any,
opt7?: any,
opt8?: any,
opt9?: any,
opt10?: any,
opt11?: any,
opt12?: any,
) => any;
export interface Events {
on: any;
request: any;
request2: any;
emit: any;
once: any;
setCommandHandler(
name: string,
callback: CommandCallback,
): void;
}
export interface Config {
contractsFiles: any[];
embarkConfig: {
contracts: string[] | string;
config: {
contracts: string;
};
versions: {
solc: string;
};
generationDir: string;
};
blockchainConfig: {
endpoint: string;
accounts: any[];
proxy: boolean;
rpcPort: string | number;
wsPort: string | number;
rpcHost: string | number;
wsHost: string | number;
wsOrigins: string;
rpcCorsDomain: string;
wsRPC: boolean;
isDev: boolean;
client: string;
};
webServerConfig: {
certOptions: {
key: string;
cert: string;
};
};
plugins: Plugins;
reloadConfig(): void;
}
type ActionCallback<T> = (params: any, cb: Callback<T>) => void;
export interface Embark {
env: string;
events: Events;
plugins: Plugins;
registerAPICall(method: string, endpoint: string, cb: (...args: any[]) => void): void;
registerConsoleCommand: any;
logger: Logger;
fs: any;
config: Config;
currentContext: string[];
registerActionForEvent<T>(
name: string,
options?: ActionCallback<T> | { priority: number },
action?: ActionCallback<T>,
): void;
}

View File

@ -1,3 +0,0 @@
export interface EmbarkConfig {
contracts: [string];
}

View File

@ -1,7 +0,0 @@
export interface Logger {
info(text: string): void;
warn(text: string): void;
debug(text: string): void;
trace(text: string): void;
error(text: string, ...args: Array<string | Error>): void;
}

View File

@ -1 +0,0 @@
export type Maybe<T> = false | 0 | undefined | null | T;

View File

@ -1 +0,0 @@
declare module '@omisego/omg-js-util';

View File

@ -1,22 +0,0 @@
import {Callback} from './callbacks';
export interface Plugin {
dappGenerators: any;
}
export interface Plugins {
getPluginsFor(name: string): [Plugin];
loadInternalPlugin(name: string, options: any): void;
getPluginsProperty(pluginType: string, property: string, sub_property?: string): any[];
plugins: Plugin[];
runActionsForEvent(event: string, args: any, cb: Callback<any>): void;
}
export interface Plugin {
name: string;
}
export interface CompilerPluginObject {
extension: string;
cb: any;
}

View File

@ -1 +0,0 @@
declare module 'prettier-plugin-solidity';

View File

@ -1 +0,0 @@
declare module 'remix-debug-debugtest';

View File

@ -1,7 +0,0 @@
{
"extends": "../../../tsconfig.json",
"files": [
"index.d.ts"
],
"include": ["src/**/*"]
}

View File

@ -1,42 +0,0 @@
declare module "embark-utils" {
import {Logger} from "embark";
export class File {
public path: string;
constructor(options: any);
public prepareForCompilation(isCoverage?: boolean): any;
}
function anchoredValue(anchor: string|null, value: string): string;
function anchoredPath(anchor: string|null, ...args: string[]): string;
function compact(array: any): any;
function checkIsAvailable(url: string, callback: any): void;
function dockerHostSwap(host: string): string;
function buildUrl(protocol: string, host: string, port: number, type: string): string;
function buildUrlFromConfig(config: any): string;
function canonicalHost(host: string): string;
function dappPath(...names: string[]): string;
function diagramPath(...names: string[]): string;
function escapeHtml(message: any): string;
function embarkPath(...names: string[]): string;
function exit(code?: any): void;
function findMonorepoPackageFromRoot(pkgName: string, prefilter?: null | ((pkgName: string) => (pkgJsonPath: string) => boolean)): Promise<string>;
function findMonorepoPackageFromRootSync(pkgName: string, prefilter?: null | ((pkgName: string) => (pkgJsonPath: string) => boolean)): string;
function findNextPort(port: number): Promise<number>;
function isEs6Module(module: any): boolean;
function isInsideMonorepo(): Promise<boolean>;
function isInsideMonorepoSync(): boolean;
function monorepoRootPath(): Promise<string>;
function monorepoRootPathSync(): string;
function jsonFunctionReplacer(key: any, value: any): any;
function fuzzySearch(text: string, list: any, filter: any): any;
function getExternalContractUrl(file: string, provideUrl: string): string;
function recursiveMerge(target: any, source: any): any;
function pkgPath(...names: string[]): string;
function removePureView(dir: string): void;
function pingEndpoint(host: string, port: number, type: string, protocol: string, origin: string, callback: any): void;
export class AccountParser {
public static parseAccountsConfig(accountsConfig: any[], web3: any, dappPath: string, logger: Logger, nodeAccounts?: any[]): any[];
}
}

View File

@ -25,28 +25,32 @@
"url": "https://github.com/embark-framework/embark.git"
},
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
"embark-collective": {
"build:node": true
"build:node": true,
"typecheck": true
},
"scripts": {
"_build": "npm run solo -- build",
"_typecheck": "npm run solo -- typecheck",
"ci": "npm run qa",
"clean": "npm run reset",
"lint": "npm-run-all lint:*",
"lint:js": "eslint src/",
"lint:ts": "tslint -c tslint.json \"src/**/*.ts\"",
"qa": "npm-run-all lint typecheck _build",
"qa": "npm-run-all lint _typecheck _build",
"reset": "npx rimraf dist embark-*.tgz package",
"solo": "embark-solo",
"typecheck": "tsc",
"watch": "run-p watch:*",
"watch:typecheck": "npm run typecheck -- --preserveWatchOutput --watch"
"solo": "embark-solo"
},
"eslintConfig": {
"extends": "../../../.eslintrc.json"
},
"dependencies": {
"@babel/runtime-corejs3": "7.7.4",
"@types/follow-redirects": "1.5.0",
"@types/fs-extra": "7.0.0",
"@types/node": "12.7.8",
"@types/pretty-ms": "5.0.1",
"bip39": "3.0.2",
"clipboardy": "1.2.3",
"colors": "1.3.2",
@ -71,17 +75,13 @@
"ws": "7.1.2"
},
"devDependencies": {
"@types/follow-redirects": "1.5.0",
"@types/fs-extra": "7.0.0",
"@types/node": "12.7.8",
"@types/pretty-ms": "5.0.1",
"embark-inside-monorepo": "^5.0.0-alpha.0",
"embark-solo": "^5.0.0-alpha.2",
"eslint": "5.7.0",
"npm-run-all": "4.1.5",
"rimraf": "3.0.0",
"tslint": "5.16.0",
"typescript": "3.6.3"
"tslint": "5.20.1",
"typescript": "3.7.2"
},
"engines": {
"node": ">=10.17.0 <12.0.0",

View File

@ -35,7 +35,7 @@ export default class AccountParser {
}
/*eslint complexity: ["error", 30]*/
static getAccount(accountConfig, web3, dappPath, logger = console, nodeAccounts) {
static getAccount(accountConfig, web3, dappPath, logger = console, nodeAccounts = null) {
const returnAddress = web3 === false;
let hexBalance = null;
if (accountConfig.balance && web3) {

View File

@ -27,7 +27,6 @@ export {
soliditySha3,
toChecksumAddress
} from './web3Utils';
export { getAddressToContract, getTransactionParams } from './transactionUtils';
import LongRunningProcessTimer from './longRunningProcessTimer';
export { LongRunningProcessTimer };
import AccountParser from './accountParser';

View File

@ -30,12 +30,23 @@ const getImports = (source: string) => {
}).filter((fileImport) => fileImport.length);
};
const prepareInitialFile = async (file: File) => {
const prepareInitialFile = async (file: File | any) => {
if (file.type === Types.http) {
return await file.content;
}
const to = file.path.includes(dappPath(".embark")) ? path.normalize(file.path) : dappPath(".embark", file.path);
let to: string;
if (file.path.includes(dappPath(".embark"))) {
to = path.normalize(file.path);
} else if (path.isAbsolute(file.path)) {
// don't want 'C:\' in calculated path on Windows
const relativeFrom = path.normalize('/');
const relativePath = path.relative(relativeFrom, file.path);
to = dappPath(".embark", relativePath);
} else {
to = dappPath(".embark", file.path);
}
if (file.type === Types.dappFile || file.type === Types.custom) {
if (file.resolver) {
fs.mkdirpSync(path.dirname(to));

View File

@ -1,4 +1,20 @@
{
"extends": "../../../tsconfig.json",
"include": ["src/**/*"]
"compilerOptions": {
"composite": true,
"declarationDir": "./dist",
"rootDir": "./src",
"tsBuildInfoFile": "./node_modules/.cache/tsc/tsconfig.embark-utils.tsbuildinfo"
},
"extends": "../../../tsconfig.base.json",
"include": [
"src/**/*"
],
"references": [
{
"path": "../i18n"
},
{
"path": "../logger"
}
]
}

View File

@ -25,6 +25,7 @@
"embark": "./bin/embark"
},
"main": "./dist/lib/index.js",
"types": "./dist/lib/index.d.ts",
"files": [
"bin",
"dist/bin",
@ -33,14 +34,22 @@
"locales"
],
"embark-collective": {
"build:node": true
"build:node": true,
"typecheck": {
"include": [
"src/bin/**/*",
"src/cmd/**/*",
"src/lib/**/*"
]
}
},
"scripts": {
"_build": "npm run solo -- build",
"_typecheck": "npm run solo -- typecheck",
"ci": "npm run qa",
"clean": "npm run reset",
"lint": "eslint bin/embark src/bin/ src/lib/",
"qa": "npm-run-all lint _build test",
"qa": "npm-run-all lint _typecheck _build test",
"reset": "npx rimraf .nyc_output coverage dist embark-*.tgz package",
"solo": "embark-solo",
"test": "nyc --reporter=html --reporter=json mocha \"dist/test/**/*.js\" --exit --no-timeouts --require ./scripts/test.js --require source-map-support/register"
@ -68,61 +77,15 @@
"core-js": "3.4.3",
"date-and-time": "0.6.2",
"decompress": "4.2.0",
"deep-equal": "1.0.1",
"embark-accounts-manager": "^5.0.0-alpha.4",
"embark-api": "^5.0.0-alpha.4",
"embark-authenticator": "^5.0.0-alpha.4",
"embark-basic-pipeline": "^5.0.0-alpha.4",
"embark-blockchain": "^5.0.0-alpha.4",
"embark-blockchain-client": "^5.0.0-alpha.2",
"embark-code-runner": "^5.0.0-alpha.4",
"embark-communication": "^5.0.0-alpha.4",
"embark-compiler": "^5.0.0-alpha.4",
"embark-console": "^5.0.0-alpha.4",
"embark-contracts-manager": "^5.0.0-alpha.4",
"embark-core": "^5.0.0-alpha.4",
"embark-coverage": "^5.0.0-alpha.4",
"embark-debugger": "^5.0.0-alpha.4",
"embark-deploy-tracker": "^5.0.0-alpha.2",
"embark-deployment": "^5.0.0-alpha.4",
"embark-embarkjs": "^5.0.0-alpha.4",
"embark-ens": "^5.0.0-alpha.4",
"embark-ethereum-blockchain-client": "^5.0.0-alpha.4",
"embark-ganache": "^5.0.0-alpha.2",
"embark-geth": "^5.0.0-alpha.4",
"embark-engine": "^5.0.0-alpha.4",
"embark-graph": "^5.0.0-alpha.2",
"embark-i18n": "^5.0.0-alpha.2",
"embark-ipfs": "^5.0.0-alpha.4",
"embark-library-manager": "^5.0.0-alpha.4",
"embark-logger": "^5.0.0-alpha.4",
"embark-mocha-tests": "^5.0.0-alpha.4",
"embark-namesystem": "^5.0.0-alpha.2",
"embark-parity": "^5.0.0-alpha.4",
"embark-pipeline": "^5.0.0-alpha.4",
"embark-plugin-cmd": "^5.0.0-alpha.4",
"embark-process-logs-api-manager": "^5.0.0-alpha.4",
"embark-profiler": "^5.0.0-alpha.2",
"embark-proxy": "^5.0.0-alpha.4",
"embark-reset": "^5.0.0-alpha.2",
"embark-scaffolding": "^5.0.0-alpha.2",
"embark-solidity": "^5.0.0-alpha.4",
"embark-specialconfigs": "^5.0.0-alpha.2",
"embark-storage": "^5.0.0-alpha.4",
"embark-swarm": "^5.0.0-alpha.4",
"embark-test-runner": "^5.0.0-alpha.4",
"embark-transaction-logger": "^5.0.0-alpha.4",
"embark-transaction-tracker": "^5.0.0-alpha.2",
"embark-ui": "^5.0.0-alpha.4",
"embark-utils": "^5.0.0-alpha.4",
"embark-vyper": "^5.0.0-alpha.2",
"embark-watcher": "^5.0.0-alpha.4",
"embark-web3": "^5.0.0-alpha.4",
"embark-webserver": "^5.0.0-alpha.4",
"embarkjs-ens": "^5.0.0-alpha.4",
"embarkjs-ipfs": "^5.0.0-alpha.2",
"embarkjs-swarm": "^5.0.0-alpha.2",
"embarkjs-web3": "^5.0.0-alpha.2",
"embarkjs-whisper": "^5.0.0-alpha.2",
"eth-ens-namehash": "2.0.8",
"ethereumjs-wallet": "0.6.3",
"find-up": "2.1.0",
@ -179,10 +142,15 @@
},
"devDependencies": {
"chai": "4.1.2",
"embark-code-runner": "^5.0.0-alpha.4",
"embark-compiler": "^5.0.0-alpha.4",
"embark-contracts-manager": "^5.0.0-alpha.4",
"embark-solidity": "^5.0.0-alpha.3",
"embark-solo": "^5.0.0-alpha.2",
"embark-test-contract-0": "0.0.2",
"embark-test-contract-1": "0.0.1",
"embark-testing": "^5.0.0-alpha.4",
"embark-transaction-logger": "^5.0.0-alpha.3",
"eslint": "5.7.0",
"npm-run-all": "4.1.5",
"nyc": "13.1.0",

View File

@ -1,17 +1,20 @@
import { Config, Engine, Events, fs, TemplateGenerator } from 'embark-core';
import { Config, Events, fs, TemplateGenerator } from 'embark-core';
import { Engine } from 'embark-engine';
import { __ } from 'embark-i18n';
import { dappPath, embarkPath, joinPath, setUpEnv } from 'embark-utils';
import { Logger } from 'embark-logger';
import { Logger, LogLevels } from 'embark-logger';
let async = require('async');
const constants = require('embark-core/constants');
const { reset: embarkReset, paths: defaultResetPaths } = require('embark-reset');
const cloneDeep = require('clone-deep');
import { readJsonSync } from 'fs-extra';
import { join } from 'path';
setUpEnv(joinPath(__dirname, '../../'));
require('colors');
let pkg = require('../../package.json');
const pkg = readJsonSync(join(__dirname, '../../package.json'));
class EmbarkController {
@ -26,7 +29,7 @@ class EmbarkController {
initConfig(env, options) {
this.events = new Events();
this.logger = new Logger({ logLevel: Logger.logLevels.debug, events: this.events, context: this.context });
this.logger = new Logger({ logLevel: LogLevels.debug, events: this.events, context: this.context });
this.config = new Config({ env: env, logger: this.logger, events: this.events, context: this.context, version: this.version });
this.config.loadConfigFiles(options);
this.plugins = this.config.plugins;
@ -739,7 +742,7 @@ class EmbarkController {
version: this.version,
embarkConfig: options.embarkConfig || 'embark.json',
logFile: options.logFile,
logLevel: options.logLevel || Logger.logLevels.warn,
logLevel: options.logLevel || LogLevels.warn,
context: this.context,
useDashboard: false,
webpackConfigName: options.webpackConfigName,

View File

@ -1,8 +1,11 @@
let pkg = require('../../package.json');
import { Config, Events } from 'embark-core';
import { Logger } from 'embark-logger';
import { readJsonSync } from 'fs-extra';
import { join } from 'path';
class Embark {
const pkg = readJsonSync(join(__dirname, '../../package.json'));
export default class Embark {
constructor(options) {
this.version = pkg.version;
@ -25,5 +28,3 @@ class Embark {
this.plugins = this.config.plugins;
}
}
module.exports = Embark;

View File

@ -1,4 +1,4 @@
let Embark = require('../lib/index');
import Embark from '../lib/index';
let Cmd = require('../cmd/cmd');
// Function to send a line to stdin

View File

@ -1,8 +1,8 @@
/*global describe, it, require*/
import { File, Types } from "embark-utils";
let ContractsManager = require('embark-contracts-manager');
let Compiler = require('embark-compiler');
import ContractsManager from 'embark-contracts-manager';
import Compiler from 'embark-compiler';
import { Logger } from 'embark-logger';
import { Events, fs, IPC, TestLogger, Plugins } from 'embark-core';
let assert = require('assert');

View File

@ -4,7 +4,7 @@ import { File, Types } from "embark-utils";
const assert = require('assert');
const Compiler = require('embark-compiler');
import Compiler from 'embark-compiler';
const readFile = function(file) {
return new File({filename: file, type: Types.dappFile, path: file});

View File

@ -1,190 +0,0 @@
/*globals describe, it, beforeEach*/
const {expect} = require('chai');
const sinon = require('sinon');
import { Logger } from 'embark-logger';
import { getAddressToContract } from 'embark-utils';
const ConsoleListener = require('embark-console-listener');
import { Events, fs, IPC } from 'embark-core';
require('colors');
let events,
logger,
consoleListener,
ipc,
embark,
loggerInfos = [],
eventsEmitted = [],
ipcRequest,
contractsList;
function resetTest() {
loggerInfos = [];
eventsEmitted = [];
ipcRequest = {
type: 'contract-log',
address: "0x12345",
data: "0x6d4ce63c",
transactionHash: "hash",
blockNumber: "0x0",
gasUsed: "0x0",
status: "yay"
};
contractsList = [
{
abiDefinition: [
{
"constant": true,
"inputs": [],
"name": "storedData",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "x",
"type": "uint256"
}
],
"name": "set",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "get",
"outputs": [
{
"name": "retVal",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"name": "initialValue",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
}
],
deployedAddress: "0x12345",
className: "SimpleStorage",
silent: true
}
];
events = new Events();
logger = new Logger(events);
ipc = new IPC({ipcRole: 'none'});
embark = {
events,
logger,
fs: {
existsSync: () => { return false; },
dappPath: () => { return "ok"; }
},
config: {
contractsConfig: {}
},
registerAPICall: () => {}
};
// setup ConsoleListener
consoleListener = new ConsoleListener(embark, {ipc});
consoleListener.contractsDeployed = true;
consoleListener.outputDone = true;
sinon.stub(events, 'emit').callsFake((eventName, data) => {
eventsEmitted.push({eventName, data});
return true;
});
sinon.stub(logger, 'info').callsFake((args) => {
loggerInfos.push(args);
});
}
describe('Console Listener', function () {
beforeEach('reset test', function (done) {
resetTest();
done();
});
describe('#listenForLogRequests', function () {
it('should emit the correct contracts logs', function (done) {
getAddressToContract(contractsList, consoleListener.addressToContract);
consoleListener._onIpcLogRequest(ipcRequest);
const expectedContractLog = {
address: "0x12345",
blockNumber: 0,
data: "0x6d4ce63c",
functionName: "get",
gasUsed: 0,
name: "SimpleStorage",
paramString: "",
status: "yay",
transactionHash: "hash",
type: "contract-log"
};
const {name, functionName, paramString, transactionHash, gasUsed, blockNumber, status} = expectedContractLog;
const contractLogEmitted = eventsEmitted.find(event => event.eventName === 'contracts:log');
expect(contractLogEmitted).to.deep.equal({
eventName: 'contracts:log',
data: expectedContractLog
});
const blockchainTxLogEmitted = eventsEmitted.find(event => event.eventName === 'blockchain:tx');
expect(blockchainTxLogEmitted).to.deep.equal({
eventName: 'blockchain:tx',
data: {
name,
functionName,
paramString,
transactionHash,
gasUsed,
blockNumber,
status
}
});
expect(loggerInfos[0]).to.be.equal(`Blockchain>`.underline + ` ${name}.${functionName}(${paramString})`.bold + ` | ${transactionHash} | gas:${gasUsed} | blk:${blockNumber} | status:${status}`);
done();
});
it('should emit a log for a non-contract log', function (done) {
ipcRequest.type = 'something-other-than-contract-log';
getAddressToContract(contractsList, consoleListener.addressToContract);
consoleListener._onIpcLogRequest(ipcRequest);
expect(loggerInfos[0]).to.be.equal(JSON.stringify(ipcRequest));
done();
});
it('should emit an "unknown contract" log message', function (done) {
consoleListener._onIpcLogRequest(ipcRequest);
expect(loggerInfos[0]).to.be.equal(`Contract log for unknown contract: ${JSON.stringify(ipcRequest)}`);
done();
});
});
});

View File

@ -1,6 +1,6 @@
/*globals describe, it, beforeEach*/
const {expect} = require('chai');
import { getAddressToContract, getTransactionParams } from 'embark-utils';
import { getAddressToContract, getTransactionParams } from 'embark-transaction-logger';
require('colors');
let contractsList;

View File

@ -0,0 +1,61 @@
{
"compilerOptions": {
"composite": true,
"declarationDir": "./dist",
"rootDir": "./src",
"tsBuildInfoFile": "./node_modules/.cache/tsc/tsconfig.embark.tsbuildinfo"
},
"extends": "../../tsconfig.base.json",
"include": [
"src/bin/**/*",
"src/cmd/**/*",
"src/lib/**/*"
],
"references": [
{
"path": "../core/code-runner"
},
{
"path": "../core/core"
},
{
"path": "../core/engine"
},
{
"path": "../core/i18n"
},
{
"path": "../core/logger"
},
{
"path": "../core/reset"
},
{
"path": "../core/utils"
},
{
"path": "../plugins/deploy-tracker"
},
{
"path": "../plugins/graph"
},
{
"path": "../plugins/scaffolding"
},
{
"path": "../plugins/solidity"
},
{
"path": "../plugins/transaction-logger"
},
{
"path": "../stack/compiler"
},
{
"path": "../stack/contracts-manager"
},
{
"path": "../utils/testing"
}
]
}

View File

@ -22,10 +22,12 @@
"url": "https://github.com/embark-framework/embark.git"
},
"main": "./dist/lib/node/index.js",
"types": "./dist/lib/node/index.d.ts",
"browser": {
"./dist/lib/node/index.js": "./dist/browser/lib/index.js",
"./dist/browser/lib/async.js": "./dist/browser/lib/browser/async.js"
},
"browserslist": [
"last 1 version",
"not dead",
@ -37,13 +39,19 @@
],
"embark-collective": {
"build:browser": true,
"build:node": true
"build:node": true,
"typecheck": {
"exclude": [
"src/lib/browser"
]
}
},
"scripts": {
"_build": "npm run solo -- build",
"_typecheck": "npm run solo -- typecheck",
"ci": "npm run qa",
"clean": "npm run reset",
"qa": "npm-run-all _build test",
"qa": "npm-run-all _typecheck _build test",
"reset": "npx rimraf .nyc_output coverage dist embarkjs-*.tgz package",
"solo": "embark-solo",
"test": "nyc --reporter=html --reporter=json mocha \"dist/test/**/*.js\" --exit --no-timeouts --require source-map-support/register"

View File

@ -3,6 +3,7 @@
import {reduce} from './async';
let Blockchain = {
Contract: Contract,
list: [],
done: false,
err: null
@ -226,7 +227,7 @@ Blockchain.execWhenReady = function(cb) {
this.list.push(cb);
};
let Contract = function(options) {
function Contract(options) {
var self = this;
var ContractClass;
@ -358,8 +359,6 @@ Contract.prototype.send = function(value, unit, _options) {
return this.blockchainConnector.send(options);
};
Blockchain.Contract = Contract;
class BlockchainConnectionError extends Error {
constructor(connectionErrors) {
super("Could not establish a connection to a node.");

View File

@ -0,0 +1,15 @@
{
"compilerOptions": {
"composite": true,
"declarationDir": "./dist",
"rootDir": "./src",
"tsBuildInfoFile": "./node_modules/.cache/tsc/tsconfig.embarkjs.tsbuildinfo"
},
"exclude": [
"src/lib/browser"
],
"extends": "../../../tsconfig.base.json",
"include": [
"src/lib/**/*"
]
}

View File

@ -21,7 +21,8 @@
"type": "git",
"url": "https://github.com/embark-framework/embark.git"
},
"main": "dist/node/index.js",
"main": "./dist/node/index.js",
"types": "./dist/node/index.d.ts",
"browser": "./dist/browser/index.js",
"browserslist": [
"last 1 version",
@ -33,13 +34,15 @@
],
"embark-collective": {
"build:browser": true,
"build:node": true
"build:node": true,
"typecheck": true
},
"scripts": {
"_build": "npm run solo -- build",
"_typecheck": "npm run solo -- typecheck",
"ci": "npm run qa",
"clean": "npm run reset",
"qa": "npm-run-all _build",
"qa": "npm-run-all _typecheck _build",
"reset": "npx rimraf coverage dist embarkjs-*.tgz package",
"solo": "embark-solo"
},

View File

@ -1 +1,3 @@
module.exports = require('..').default;
import embarkENS from '..';
module.exports = embarkENS;

View File

@ -0,0 +1,17 @@
{
"compilerOptions": {
"composite": true,
"declarationDir": "./dist",
"rootDir": "./src",
"tsBuildInfoFile": "./node_modules/.cache/tsc/tsconfig.embarkjs-ens.tsbuildinfo"
},
"extends": "../../../tsconfig.base.json",
"include": [
"src/**/*"
],
"references": [
{
"path": "../embarkjs"
}
]
}

View File

@ -21,7 +21,8 @@
"type": "git",
"url": "https://github.com/embark-framework/embark.git"
},
"main": "dist/node/index.js",
"main": "./dist/node/index.js",
"types": "./dist/node/index.d.ts",
"browser": "./dist/browser/index.js",
"browserslist": [
"last 1 version",
@ -33,13 +34,15 @@
],
"embark-collective": {
"build:browser": true,
"build:node": true
"build:node": true,
"typecheck": true
},
"scripts": {
"_build": "npm run solo -- build",
"_typecheck": "npm run solo -- typecheck",
"ci": "npm run qa",
"clean": "npm run reset",
"qa": "npm-run-all _build",
"qa": "npm-run-all _typecheck _build",
"reset": "npx rimraf coverage dist embarkjs-*.tgz package",
"solo": "embark-solo"
},

View File

@ -1 +1,3 @@
module.exports = require('..').default;
import embarkIPFS from '..';
module.exports = embarkIPFS;

View File

@ -0,0 +1,12 @@
{
"compilerOptions": {
"composite": true,
"declarationDir": "./dist",
"rootDir": "./src",
"tsBuildInfoFile": "./node_modules/.cache/tsc/tsconfig.embarkjs-ipfs.tsbuildinfo"
},
"extends": "../../../tsconfig.base.json",
"include": [
"src/**/*"
]
}

View File

@ -21,7 +21,8 @@
"type": "git",
"url": "https://github.com/embark-framework/embark.git"
},
"main": "dist/node/index.js",
"main": "./dist/node/index.js",
"types": "./dist/node/index.d.ts",
"browser": "./dist/browser/index.js",
"browserslist": [
"last 1 version",
@ -33,13 +34,15 @@
],
"embark-collective": {
"build:browser": true,
"build:node": true
"build:node": true,
"typecheck": true
},
"scripts": {
"_build": "npm run solo -- build",
"_typecheck": "npm run solo -- typecheck",
"ci": "npm run qa",
"clean": "npm run reset",
"qa": "npm-run-all _build",
"qa": "npm-run-all _typecheck _build",
"reset": "npx rimraf coverage dist embarkjs-*.tgz package",
"solo": "embark-solo"
},

View File

@ -1 +1,3 @@
module.exports = require('..').default;
import embarkSwarm from '..';
module.exports = embarkSwarm;

View File

@ -0,0 +1,12 @@
{
"compilerOptions": {
"composite": true,
"declarationDir": "./dist",
"rootDir": "./src",
"tsBuildInfoFile": "./node_modules/.cache/tsc/tsconfig.embarkjs-swarm.tsbuildinfo"
},
"extends": "../../../tsconfig.base.json",
"include": [
"src/**/*"
]
}

View File

@ -21,7 +21,8 @@
"type": "git",
"url": "https://github.com/embark-framework/embark.git"
},
"main": "dist/node/index.js",
"main": "./dist/node/index.js",
"types": "./dist/node/index.d.ts",
"browser": "./dist/browser/index.js",
"browserslist": [
"last 1 version",
@ -33,13 +34,15 @@
],
"embark-collective": {
"build:browser": true,
"build:node": true
"build:node": true,
"typecheck": true
},
"scripts": {
"_build": "npm run solo -- build",
"_typecheck": "npm run solo -- typecheck",
"ci": "npm run qa",
"clean": "npm run reset",
"qa": "npm-run-all _build",
"qa": "npm-run-all _typecheck _build",
"reset": "npx rimraf coverage dist embarkjs-*.tgz package",
"solo": "embark-solo"
},

View File

@ -1 +1,3 @@
module.exports = require('..').default;
import embarkWeb3 from '..';
module.exports = embarkWeb3;

View File

@ -0,0 +1,12 @@
{
"compilerOptions": {
"composite": true,
"declarationDir": "./dist",
"rootDir": "./src",
"tsBuildInfoFile": "./node_modules/.cache/tsc/tsconfig.embarkjs-web3.tsbuildinfo"
},
"extends": "../../../tsconfig.base.json",
"include": [
"src/**/*"
]
}

View File

@ -21,7 +21,8 @@
"type": "git",
"url": "https://github.com/embark-framework/embark.git"
},
"main": "dist/node/index.js",
"main": "./dist/node/index.js",
"types": "./dist/node/index.d.ts",
"browser": "./dist/browser/index.js",
"browserslist": [
"last 1 version",
@ -33,13 +34,15 @@
],
"embark-collective": {
"build:browser": true,
"build:node": true
"build:node": true,
"typecheck": true
},
"scripts": {
"_build": "npm run solo -- build",
"_typecheck": "npm run solo -- typecheck",
"ci": "npm run qa",
"clean": "npm run reset",
"qa": "npm-run-all _build",
"qa": "npm-run-all _typecheck _build",
"reset": "npx rimraf coverage dist embarkjs-*.tgz package",
"solo": "embark-solo"
},

View File

@ -1 +1,3 @@
module.exports = require('..').default;
import embarkWhisper from '..';
module.exports = embarkWhisper;

View File

@ -0,0 +1,12 @@
{
"compilerOptions": {
"composite": true,
"declarationDir": "./dist",
"rootDir": "./src",
"tsBuildInfoFile": "./node_modules/.cache/tsc/tsconfig.embarkjs-whisper.tsbuildinfo"
},
"extends": "../../../tsconfig.base.json",
"include": [
"src/**/*"
]
}

View File

@ -25,21 +25,21 @@
"url": "https://github.com/embark-framework/embark.git"
},
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
"embark-collective": {
"build:node": true
"build:node": true,
"typecheck": true
},
"scripts": {
"_build": "npm run solo -- build",
"_typecheck": "npm run solo -- typecheck",
"ci": "npm run qa",
"clean": "npm run reset",
"lint": "npm-run-all lint:*",
"lint:ts": "tslint -c tslint.json \"src/**/*.ts\"",
"qa": "npm-run-all lint typecheck _build",
"qa": "npm-run-all lint _typecheck _build",
"reset": "npx rimraf dist embark-*.tgz package",
"solo": "embark-solo",
"typecheck": "tsc",
"watch": "run-p watch:*",
"watch:typecheck": "npm run typecheck -- --preserveWatchOutput --watch"
"solo": "embark-solo"
},
"eslintConfig": {
"extends": "../../../.eslintrc.json"
@ -59,8 +59,8 @@
"eslint": "5.7.0",
"npm-run-all": "4.1.5",
"rimraf": "3.0.0",
"tslint": "5.16.0",
"typescript": "3.6.3"
"tslint": "5.20.1",
"typescript": "3.7.2"
},
"engines": {
"node": ">=10.17.0 <12.0.0",

View File

@ -1,5 +1,5 @@
import async from "async";
import { Callback, Embark, Events } /* supplied by @types/embark in packages/embark-typings */ from "embark";
import { Embark, EmbarkEvents } from "embark-core";
import { __ } from "embark-i18n";
import { AccountParser, dappPath } from "embark-utils";
import { Logger } from 'embark-logger';
@ -9,7 +9,7 @@ import fundAccount from "./fundAccount";
export default class AccountsManager {
private readonly logger: Logger;
private readonly events: Events;
private readonly events: EmbarkEvents;
private _web3: Web3 | null = null;
private _accounts: any[] | null = null;

View File

@ -1,5 +1,26 @@
{
"compilerOptions": { "baseUrl": ".", "paths": { "*": ["types/*"] } },
"extends": "../../../tsconfig.json",
"include": ["src/**/*"]
"compilerOptions": {
"composite": true,
"declarationDir": "./dist",
"rootDir": "./src",
"tsBuildInfoFile": "./node_modules/.cache/tsc/tsconfig.embark-accounts-manager.tsbuildinfo"
},
"extends": "../../../tsconfig.base.json",
"include": [
"src/**/*"
],
"references": [
{
"path": "../../core/core"
},
{
"path": "../../core/i18n"
},
{
"path": "../../core/logger"
},
{
"path": "../../core/utils"
}
]
}

View File

@ -25,15 +25,23 @@
"url": "https://github.com/embark-framework/embark.git"
},
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
"embark-collective": {
"build:node": true
"build:node": true,
"typecheck": {
"exclude": [
"src/babel-loader-overrides.js",
"src/webpack.config.js"
]
}
},
"scripts": {
"_build": "npm run solo -- build",
"_typecheck": "npm run solo -- typecheck",
"ci": "npm run qa",
"clean": "npm run reset",
"lint": "eslint src/",
"qa": "npm-run-all lint _build test",
"qa": "npm-run-all lint _typecheck _build test",
"reset": "npx rimraf dist embark-*.tgz package",
"solo": "embark-solo",
"test": "jest"

View File

@ -0,0 +1,30 @@
{
"compilerOptions": {
"composite": true,
"declarationDir": "./dist",
"rootDir": "./src",
"tsBuildInfoFile": "./node_modules/.cache/tsc/tsconfig.embark-basic-pipeline.tsbuildinfo"
},
"exclude": [
"src/babel-loader-overrides.js",
"src/webpack.config.js"
],
"extends": "../../../tsconfig.base.json",
"include": [
"src/**/*"
],
"references": [
{
"path": "../../core/core"
},
{
"path": "../../core/i18n"
},
{
"path": "../../core/utils"
},
{
"path": "../../utils/testing"
}
]
}

Some files were not shown because too many files have changed in this diff Show More