mirror of https://github.com/embarklabs/embark.git
add struct logs
This commit is contained in:
parent
aecb99d428
commit
ee37fd0656
File diff suppressed because one or more lines are too long
|
@ -8,6 +8,9 @@ import { ServicesMonitor } from './services_monitor';
|
|||
import { normalizeInput } from 'embark-utils';
|
||||
import { Logger } from 'embark-logger';
|
||||
|
||||
// const Logger = require('embark-logger');
|
||||
const Logger = require('./superlog.js');
|
||||
|
||||
const EMBARK_PROCESS_NAME = 'embark';
|
||||
|
||||
export class Engine {
|
||||
|
@ -83,7 +86,13 @@ export class Engine {
|
|||
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});
|
||||
<<<<<<< HEAD:packages/core/core/src/engine.ts
|
||||
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.logger.startSession();
|
||||
|
||||
this.config = new Config({env: this.env, logger: this.logger, events: this.events, context: this.context, webServerConfig: this.webServerConfig, version: this.version});
|
||||
>>>>>>> add struct logs:packages/embark/src/lib/core/engine.js
|
||||
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);
|
||||
|
|
|
@ -107,6 +107,11 @@ EmbarkEmitter.prototype.request2 = function() {
|
|||
const requestName = arguments[0];
|
||||
const other_args: any[] = [].slice.call(arguments, 1);
|
||||
|
||||
let requestId;
|
||||
if (this.logger && this.logId) {
|
||||
requestId = this.logger.log({parent_id: this.logId, type: "request", name: requestName, inputs: other_args})
|
||||
}
|
||||
|
||||
log("\nREQUEST", requestName);
|
||||
warnIfLegacy(requestName);
|
||||
if (this._events && !this._events['request:' + requestName]) {
|
||||
|
@ -121,10 +126,22 @@ EmbarkEmitter.prototype.request2 = function() {
|
|||
const promise = new Promise((resolve, reject) => {
|
||||
other_args.push(
|
||||
(err, ...res) => {
|
||||
if (err) { return reject(err); }
|
||||
if (err) {
|
||||
if (this.logger && this.logId) {
|
||||
this.logger.log({id: requestId, type: "request", name: requestName, msg: err, error: true})
|
||||
}
|
||||
return reject(err);
|
||||
}
|
||||
|
||||
if (res.length && res.length > 1) {
|
||||
if (this.logger && this.logId) {
|
||||
this.logger.log({id: requestId, type: "request", name: requestName, outputs: res})
|
||||
}
|
||||
return resolve(res);
|
||||
}
|
||||
if (this.logger && this.logId) {
|
||||
this.logger.log({id: requestId, type: "request", name: requestName, outputs: res[0]})
|
||||
}
|
||||
return resolve(res[0]);
|
||||
}
|
||||
);
|
||||
|
@ -150,6 +167,11 @@ EmbarkEmitter.prototype.request = function() {
|
|||
const requestName = arguments[0];
|
||||
const other_args = [].slice.call(arguments, 1);
|
||||
|
||||
let requestId;
|
||||
if (this.logger && this.logId) {
|
||||
requestId = this.logger.log({parent_id: this.logId, type: "old_request", name: requestName, inputs: other_args})
|
||||
}
|
||||
|
||||
log("\nREQUEST(OLD)", requestName);
|
||||
warnIfLegacy(requestName);
|
||||
if (this._events && !this._events['request:' + requestName]) {
|
||||
|
@ -161,7 +183,7 @@ EmbarkEmitter.prototype.request = function() {
|
|||
}
|
||||
const listenerName = 'request:' + requestName;
|
||||
|
||||
// TODO: remove this, it will lead to illusion of things working when this situatio shouldnt' hapepn in the first place
|
||||
// TODO: remove this, it will lead to illusion of things working when this situation shouldnt' hapepn in the first place
|
||||
|
||||
// if we don't have a command handler set for this event yet,
|
||||
// store it and fire it once a command handler is set
|
||||
|
@ -181,6 +203,10 @@ EmbarkEmitter.prototype.request = function() {
|
|||
EmbarkEmitter.prototype.setCommandHandler = function(requestName, cb) {
|
||||
log("SET COMMAND HANDLER", requestName);
|
||||
|
||||
if (this.logger && this.logId) {
|
||||
this.logger.log({parent_id: this.logId, type: "setCommandHandler", name: requestName})
|
||||
}
|
||||
|
||||
// let origin = ((new Error().stack).split("at ")[3]).trim();
|
||||
// origin = origin.split("(")[0].trim();
|
||||
const origin = getOrigin();
|
||||
|
|
|
@ -138,6 +138,7 @@
|
|||
"json-parse-better-errors": "1.0.2",
|
||||
"lodash.clonedeep": "4.5.0",
|
||||
"mocha": "6.2.0",
|
||||
"mongoose": "5.7.7",
|
||||
"neo-blessed": "0.2.0",
|
||||
"node-http-proxy-json": "0.1.6",
|
||||
"node-ipc": "9.1.1",
|
||||
|
|
|
@ -152,6 +152,11 @@ class EmbarkController {
|
|||
engine.logger.info(__("loaded plugins") + ": " + pluginList.join(", "));
|
||||
}
|
||||
|
||||
let runId = engine.logger.moduleInit("run_command")
|
||||
let _events = Object.assign({}, engine.events, {logId: runId, logger: engine.logger});
|
||||
Object.setPrototypeOf(_events, engine.events);
|
||||
engine.events = _events;
|
||||
|
||||
engine.registerModuleGroup("coreComponents");
|
||||
engine.registerModuleGroup("stackComponents");
|
||||
engine.registerModuleGroup("consoleComponents");
|
||||
|
|
|
@ -0,0 +1,132 @@
|
|||
const Logger = require('embark-logger');
|
||||
const uuid = require('uuid');
|
||||
const fs = require('fs-extra');
|
||||
|
||||
var DB = {
|
||||
}
|
||||
|
||||
function addRecord(data) {
|
||||
DB[data.id] = data
|
||||
console.dir("---> added")
|
||||
console.dir(DB[data.id])
|
||||
}
|
||||
|
||||
function findRecord(id) {
|
||||
return DB[id];
|
||||
}
|
||||
|
||||
function updateRecord(id, data) {
|
||||
DB[id] = {...DB[id], ...data}
|
||||
console.dir("---> updated")
|
||||
console.dir(DB[id])
|
||||
}
|
||||
|
||||
setTimeout(() => {
|
||||
console.dir(DB);
|
||||
fs.writeJSONSync("./log.json", DB);
|
||||
process.exit(0);
|
||||
}, 60*1000);
|
||||
|
||||
class SuperLog extends Logger {
|
||||
|
||||
startSession() {
|
||||
this.session = uuid.v4();
|
||||
|
||||
addRecord({
|
||||
session: this.session,
|
||||
id: this.session,
|
||||
timestamp: Date.now(),
|
||||
value: "new_session",
|
||||
type: "new_session",
|
||||
name: "new_session"
|
||||
})
|
||||
}
|
||||
|
||||
moduleInit(name) {
|
||||
let id = uuid.v4();
|
||||
|
||||
addRecord({
|
||||
session: this.session,
|
||||
id: id,
|
||||
timestamp: Date.now(),
|
||||
parent_id: this.session,
|
||||
type: 'module_init',
|
||||
value: name,
|
||||
name: name
|
||||
})
|
||||
|
||||
return id;
|
||||
}
|
||||
|
||||
log(values) {
|
||||
// console.log("=> logging")
|
||||
// console.log(values.id)
|
||||
|
||||
if (values.id) {
|
||||
// console.log("=> has an id")
|
||||
let existingLog = findRecord(values.id);
|
||||
// console.log("=> record found")
|
||||
if (existingLog) {
|
||||
updateRecord(values.id, values)
|
||||
return values.id;
|
||||
}
|
||||
}
|
||||
|
||||
let id = uuid.v4();
|
||||
|
||||
addRecord({
|
||||
session: this.session,
|
||||
timestamp: Date.now(),
|
||||
id: id,
|
||||
...values
|
||||
})
|
||||
|
||||
return id;
|
||||
}
|
||||
|
||||
info() {
|
||||
let id = uuid.v4();
|
||||
this.log({
|
||||
session: this.session,
|
||||
timestamp: Date.now(),
|
||||
parent_id: this.session,
|
||||
id: id,
|
||||
type: "log_info",
|
||||
name: "info: " + arguments[0]
|
||||
})
|
||||
super.info(...arguments);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports = SuperLog;
|
||||
|
||||
// session
|
||||
// branch
|
||||
// branch
|
||||
|
||||
// cmd_controller
|
||||
// * startSession()
|
||||
|
||||
// * module
|
||||
// * log
|
||||
// * branch off
|
||||
|
||||
// API:
|
||||
// logger.startSession() - to start tracking logs
|
||||
// let id = logger.tag({whatever-you-want}) - appends {whatever-you-want} to a mongo db, associated to the current session id
|
||||
// let sub_id = logger.tag({parent_id: id, ...whatever-you-want}) - appends {whatever-you-want} to a mongo db, associated to the current session id and parent_id id
|
||||
|
||||
// - name (e.g module name, method name)
|
||||
// - type (e.g module init, function call, event)
|
||||
// - inputs
|
||||
// - outputs
|
||||
// - timestamp
|
||||
// - file/origin (can kinda be done automatically almost)
|
||||
// for inputs and outputs
|
||||
// let sub_id = logger.tag({parent_id: id, ...whatever-you-want})
|
||||
// logger.tag({id: sub_id, inputs: xyz})
|
||||
// .... code
|
||||
// // gonna return
|
||||
// logger.tag({id: sub_id, outputs: [1,2,3]})
|
||||
// return [1,2,3]
|
|
@ -2,7 +2,14 @@ const async = require('async');
|
|||
|
||||
class ContractDeployer {
|
||||
constructor(options) {
|
||||
this.events = options.events;
|
||||
// this.events = options.events;
|
||||
|
||||
this.logger = options.logger;
|
||||
this.logId = this.logger.moduleInit("ContractDeployer");
|
||||
|
||||
this.events = Object.assign({}, options.events, {logId: this.logId, logger: this.logger});
|
||||
Object.setPrototypeOf(this.events, options.events);
|
||||
|
||||
this.plugins = options.plugins;
|
||||
this.deployer = {};
|
||||
this.events.setCommandHandler("deployment:deployer:register", (blockchainType, deployerCb) => {
|
||||
|
|
|
@ -8,14 +8,21 @@ const constants = require('embark-core/constants');
|
|||
class Deployment {
|
||||
constructor(embark, options) {
|
||||
this.config = embark.config;
|
||||
this.events = embark.events;
|
||||
|
||||
this.logger = embark.logger;
|
||||
this.logId = this.logger.moduleInit("DeploymentModule");
|
||||
|
||||
// this.events = embark.events;
|
||||
this.events = Object.assign({}, embark.events, {logId: this.logId, logger: this.logger});
|
||||
Object.setPrototypeOf(this.events, embark.events);
|
||||
|
||||
this.plugins = options.plugins;
|
||||
this.blockchainConfig = this.config.blockchainConfig;
|
||||
|
||||
this.contractDeployer = new ContractDeployer({
|
||||
events: this.events,
|
||||
plugins: this.plugins
|
||||
plugins: this.plugins,
|
||||
logger: this.logger
|
||||
});
|
||||
|
||||
this.events.setCommandHandler('deployment:contracts:deploy', (contractsList, contractDependencies, cb) => {
|
||||
|
@ -24,6 +31,8 @@ class Deployment {
|
|||
}
|
||||
|
||||
deployContracts(contracts, contractDependencies, done) {
|
||||
let subId = this.logger.log({parent_id: this.logId, type: "method", name: "deployContracts", inputs: {contracts, contractDependencies}});
|
||||
|
||||
this.logger.info(__("deploying contracts"));
|
||||
async.waterfall([
|
||||
// TODO used to be called this.plugins.emitAndRunActionsForEvent("deploy:beforeAll", (err) => {
|
||||
|
@ -44,6 +53,7 @@ class Deployment {
|
|||
}
|
||||
|
||||
deployContract(contract, callback) {
|
||||
let subId = this.logger.log({parent_id: this.logId, type: "method", name: "deployContract", inputs: {contract}});
|
||||
this.events.request('deployment:contract:deploy', contract, (err) => {
|
||||
if (err) {
|
||||
contract.error = err.message || err;
|
||||
|
@ -52,13 +62,16 @@ class Deployment {
|
|||
} else {
|
||||
this.logger.error(`[${contract.className}]: ${err.message || err}`);
|
||||
}
|
||||
this.logger.log({id: subId, outputs: err, error: true});
|
||||
return callback(err);
|
||||
}
|
||||
this.logger.log({id: subId, outputs: ""});
|
||||
callback();
|
||||
});
|
||||
}
|
||||
|
||||
deployAll(contracts, contractDependencies, done) {
|
||||
let subId = this.logger.log({parent_id: this.logId, type: "method", name: "deployAll", inputs: {contracts, contractDependencies}});
|
||||
const self = this;
|
||||
const contractDeploys = {};
|
||||
const errors = [];
|
||||
|
@ -99,13 +112,17 @@ class Deployment {
|
|||
async.auto(contractDeploys, (err, _results) => {
|
||||
if (errors.length) {
|
||||
err = __("Error deploying contracts. Please fix errors to continue.");
|
||||
|
||||
this.logger.log({id: subId, outputs: err, error: true});
|
||||
return done(err);
|
||||
}
|
||||
if (contracts.length === 0) {
|
||||
this.logger.info(__("no contracts found"));
|
||||
this.logger.log({id: subId, outputs: "", msg: "no contracts found"});
|
||||
return done();
|
||||
}
|
||||
this.logger.info(__("finished deploying contracts"));
|
||||
this.logger.log({id: subId, outputs: err, error: !!err, msg: "finished deploying contracts"});
|
||||
done(err);
|
||||
});
|
||||
}
|
||||
|
|
120
yarn.lock
120
yarn.lock
|
@ -5029,6 +5029,16 @@ block-stream@*:
|
|||
dependencies:
|
||||
inherits "~2.0.0"
|
||||
|
||||
bluebird@3.3.1:
|
||||
version "3.3.1"
|
||||
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.3.1.tgz#f97ae1970f41d85177283053e9a120160e66c61d"
|
||||
integrity sha1-+Xrhlw9B2FF3KDBT6aEgFg5mxh0=
|
||||
|
||||
bluebird@3.5.1:
|
||||
version "3.5.1"
|
||||
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9"
|
||||
integrity sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==
|
||||
|
||||
bluebird@^2.9.34:
|
||||
version "2.11.0"
|
||||
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-2.11.0.tgz#534b9033c022c9579c56ba3b3e5a5caafbb650e1"
|
||||
|
@ -5270,6 +5280,11 @@ bser@^2.0.0:
|
|||
dependencies:
|
||||
node-int64 "^0.4.0"
|
||||
|
||||
bson@^1.1.1, bson@~1.1.1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/bson/-/bson-1.1.1.tgz#4330f5e99104c4e751e7351859e2d408279f2f13"
|
||||
integrity sha512-jCGVYLoYMHDkOsbwJZBCqwMHyH4c+wzgI9hG7Z6SZJRXWr+x58pdIbm2i9a/jFGCkRJqRUr8eoI7lDWa0hTkxg==
|
||||
|
||||
btoa-lite@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/btoa-lite/-/btoa-lite-1.0.0.tgz#337766da15801210fdd956c22e9c6891ab9d0337"
|
||||
|
@ -12257,6 +12272,11 @@ just-extend@^4.0.2:
|
|||
resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-4.0.2.tgz#f3f47f7dfca0f989c55410a7ebc8854b07108afc"
|
||||
integrity sha512-FrLwOgm+iXrPV+5zDU6Jqu4gCRXbWEQg2O3SKONsWE4w7AXFRkryS53bpWdaL9cNol+AmR3AEYz6kn+o0fCPnw==
|
||||
|
||||
kareem@2.3.1:
|
||||
version "2.3.1"
|
||||
resolved "https://registry.yarnpkg.com/kareem/-/kareem-2.3.1.tgz#def12d9c941017fabfb00f873af95e9c99e1be87"
|
||||
integrity sha512-l3hLhffs9zqoDe8zjmb/mAN4B8VT3L56EUvKNqLFVs9YlFA+zx7ke1DO8STAdDyYNkeSo1nKmjuvQeI12So8Xw==
|
||||
|
||||
keccak@^1.0.2:
|
||||
version "1.4.0"
|
||||
resolved "https://registry.yarnpkg.com/keccak/-/keccak-1.4.0.tgz#572f8a6dbee8e7b3aa421550f9e6408ca2186f80"
|
||||
|
@ -13149,6 +13169,11 @@ memory-fs@^0.4.0, memory-fs@^0.4.1:
|
|||
errno "^0.1.3"
|
||||
readable-stream "^2.0.1"
|
||||
|
||||
memory-pager@^1.0.2:
|
||||
version "1.5.0"
|
||||
resolved "https://registry.yarnpkg.com/memory-pager/-/memory-pager-1.5.0.tgz#d8751655d22d384682741c972f2c3d6dfa3e66b5"
|
||||
integrity sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==
|
||||
|
||||
memorystream@^0.3.1:
|
||||
version "0.3.1"
|
||||
resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2"
|
||||
|
@ -13514,6 +13539,39 @@ monaco-editor@0.14.3:
|
|||
resolved "https://registry.yarnpkg.com/monaco-editor/-/monaco-editor-0.14.3.tgz#7cc4a4096a3821f52fea9b10489b527ef3034e22"
|
||||
integrity sha512-RhaO4xXmWn/p0WrkEOXe4PoZj6xOcvDYjoAh0e1kGUrQnP1IOpc0m86Ceuaa2CLEMDINqKijBSmqhvBQnsPLHQ==
|
||||
|
||||
mongodb@3.3.3:
|
||||
version "3.3.3"
|
||||
resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-3.3.3.tgz#509cad2225a1c56c65a331ed73a0d5d4ed5cbe67"
|
||||
integrity sha512-MdRnoOjstmnrKJsK8PY0PjP6fyF/SBS4R8coxmhsfEU7tQ46/J6j+aSHF2n4c2/H8B+Hc/Klbfp8vggZfI0mmA==
|
||||
dependencies:
|
||||
bson "^1.1.1"
|
||||
require_optional "^1.0.1"
|
||||
safe-buffer "^5.1.2"
|
||||
optionalDependencies:
|
||||
saslprep "^1.0.0"
|
||||
|
||||
mongoose-legacy-pluralize@1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz#3ba9f91fa507b5186d399fb40854bff18fb563e4"
|
||||
integrity sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ==
|
||||
|
||||
mongoose@5.7.7:
|
||||
version "5.7.7"
|
||||
resolved "https://registry.yarnpkg.com/mongoose/-/mongoose-5.7.7.tgz#038b47d10434ea6cc9ec9b45d88bfcf9ab401a1a"
|
||||
integrity sha512-FU59waB4LKBa9KOnqBUcCcMIVRc09TFo1F8nMxrzSiIWATaJpjxxSSH5FBVUDxQfNdJLfg9uFHxaTxhhwjsZOQ==
|
||||
dependencies:
|
||||
bson "~1.1.1"
|
||||
kareem "2.3.1"
|
||||
mongodb "3.3.3"
|
||||
mongoose-legacy-pluralize "1.0.2"
|
||||
mpath "0.6.0"
|
||||
mquery "3.2.2"
|
||||
ms "2.1.2"
|
||||
regexp-clone "1.0.0"
|
||||
safe-buffer "5.1.2"
|
||||
sift "7.0.1"
|
||||
sliced "1.0.1"
|
||||
|
||||
mout@^0.11.0:
|
||||
version "0.11.1"
|
||||
resolved "https://registry.yarnpkg.com/mout/-/mout-0.11.1.tgz#ba3611df5f0e5b1ffbfd01166b8f02d1f5fa2b99"
|
||||
|
@ -13531,6 +13589,22 @@ move-concurrently@^1.0.1:
|
|||
rimraf "^2.5.4"
|
||||
run-queue "^1.0.3"
|
||||
|
||||
mpath@0.6.0:
|
||||
version "0.6.0"
|
||||
resolved "https://registry.yarnpkg.com/mpath/-/mpath-0.6.0.tgz#aa922029fca4f0f641f360e74c5c1b6a4c47078e"
|
||||
integrity sha512-i75qh79MJ5Xo/sbhxrDrPSEG0H/mr1kcZXJ8dH6URU5jD/knFxCVqVC/gVSW7GIXL/9hHWlT9haLbCXWOll3qw==
|
||||
|
||||
mquery@3.2.2:
|
||||
version "3.2.2"
|
||||
resolved "https://registry.yarnpkg.com/mquery/-/mquery-3.2.2.tgz#e1383a3951852ce23e37f619a9b350f1fb3664e7"
|
||||
integrity sha512-XB52992COp0KP230I3qloVUbkLUxJIu328HBP2t2EsxSFtf4W1HPSOBWOXf1bqxK4Xbb66lfMJ+Bpfd9/yZE1Q==
|
||||
dependencies:
|
||||
bluebird "3.5.1"
|
||||
debug "3.1.0"
|
||||
regexp-clone "^1.0.0"
|
||||
safe-buffer "5.1.2"
|
||||
sliced "1.0.1"
|
||||
|
||||
ms@2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
|
||||
|
@ -13541,7 +13615,7 @@ ms@2.1.1:
|
|||
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a"
|
||||
integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==
|
||||
|
||||
ms@^2.0.0, ms@^2.1.1:
|
||||
ms@2.1.2, ms@^2.0.0, ms@^2.1.1:
|
||||
version "2.1.2"
|
||||
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
|
||||
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
|
||||
|
@ -17227,6 +17301,11 @@ regex-parser@2.2.10:
|
|||
resolved "https://registry.yarnpkg.com/regex-parser/-/regex-parser-2.2.10.tgz#9e66a8f73d89a107616e63b39d4deddfee912b37"
|
||||
integrity sha512-8t6074A68gHfU8Neftl0Le6KTDwfGAj7IyjPIMSfikI2wJUTHDMaIq42bUsfVnj8mhx0R+45rdUXHGpN164avA==
|
||||
|
||||
regexp-clone@1.0.0, regexp-clone@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/regexp-clone/-/regexp-clone-1.0.0.tgz#222db967623277056260b992626354a04ce9bf63"
|
||||
integrity sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw==
|
||||
|
||||
regexp-tree@^0.1.6:
|
||||
version "0.1.13"
|
||||
resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.13.tgz#5b19ab9377edc68bc3679256840bb29afc158d7f"
|
||||
|
@ -17500,6 +17579,14 @@ require-uncached@^1.0.2, require-uncached@^1.0.3:
|
|||
caller-path "^0.1.0"
|
||||
resolve-from "^1.0.0"
|
||||
|
||||
require_optional@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/require_optional/-/require_optional-1.0.1.tgz#4cf35a4247f64ca3df8c2ef208cc494b1ca8fc2e"
|
||||
integrity sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==
|
||||
dependencies:
|
||||
resolve-from "^2.0.0"
|
||||
semver "^5.1.0"
|
||||
|
||||
requires-port@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
|
||||
|
@ -17527,6 +17614,11 @@ resolve-from@^1.0.0:
|
|||
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226"
|
||||
integrity sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=
|
||||
|
||||
resolve-from@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57"
|
||||
integrity sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=
|
||||
|
||||
resolve-from@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748"
|
||||
|
@ -17797,6 +17889,13 @@ sane@^4.0.3:
|
|||
minimist "^1.1.1"
|
||||
walker "~1.0.5"
|
||||
|
||||
saslprep@^1.0.0:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/saslprep/-/saslprep-1.0.3.tgz#4c02f946b56cf54297e347ba1093e7acac4cf226"
|
||||
integrity sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==
|
||||
dependencies:
|
||||
sparse-bitfield "^3.0.3"
|
||||
|
||||
sass-graph@^2.2.4:
|
||||
version "2.2.4"
|
||||
resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.4.tgz#13fbd63cd1caf0908b9fd93476ad43a51d1e0b49"
|
||||
|
@ -17992,7 +18091,7 @@ semaphore@>=1.0.1, semaphore@^1.1.0:
|
|||
resolved "https://registry.yarnpkg.com/semaphore/-/semaphore-1.1.0.tgz#aaad8b86b20fe8e9b32b16dc2ee682a8cd26a8aa"
|
||||
integrity sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA==
|
||||
|
||||
"semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0:
|
||||
"semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0:
|
||||
version "5.7.1"
|
||||
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
|
||||
integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
|
||||
|
@ -18245,6 +18344,11 @@ shellwords@^0.1.1:
|
|||
resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b"
|
||||
integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==
|
||||
|
||||
sift@7.0.1:
|
||||
version "7.0.1"
|
||||
resolved "https://registry.yarnpkg.com/sift/-/sift-7.0.1.tgz#47d62c50b159d316f1372f8b53f9c10cd21a4b08"
|
||||
integrity sha512-oqD7PMJ+uO6jV9EQCl0LrRw1OwsiPsiFQR5AR30heR+4Dl7jBBbDLnNvWiak20tzZlSE1H7RB30SX/1j/YYT7g==
|
||||
|
||||
signal-exit@^3.0.0, signal-exit@^3.0.2:
|
||||
version "3.0.2"
|
||||
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
|
||||
|
@ -18393,6 +18497,11 @@ slice-ansi@^2.1.0:
|
|||
astral-regex "^1.0.0"
|
||||
is-fullwidth-code-point "^2.0.0"
|
||||
|
||||
sliced@1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/sliced/-/sliced-1.0.1.tgz#0b3a662b5d04c3177b1926bea82b03f837a2ef41"
|
||||
integrity sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=
|
||||
|
||||
slide@^1.1.6:
|
||||
version "1.1.6"
|
||||
resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707"
|
||||
|
@ -18634,6 +18743,13 @@ space-separated-tokens@^1.0.0:
|
|||
dependencies:
|
||||
trim "0.0.1"
|
||||
|
||||
sparse-bitfield@^3.0.3:
|
||||
version "3.0.3"
|
||||
resolved "https://registry.yarnpkg.com/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz#ff4ae6e68656056ba4b3e792ab3334d38273ca11"
|
||||
integrity sha1-/0rm5oZWBWuks+eSqzM004JzyhE=
|
||||
dependencies:
|
||||
memory-pager "^1.0.2"
|
||||
|
||||
spawn-wrap@^1.4.2:
|
||||
version "1.4.3"
|
||||
resolved "https://registry.yarnpkg.com/spawn-wrap/-/spawn-wrap-1.4.3.tgz#81b7670e170cca247d80bf5faf0cfb713bdcf848"
|
||||
|
|
Loading…
Reference in New Issue