diff --git a/Assistant.js b/Assistant.js
index 7300aa196..c5999cf30 100644
--- a/Assistant.js
+++ b/Assistant.js
@@ -1366,7 +1366,7 @@
function addExtraData(pExtraDataArray) {
- context.extraData = pExtraDataArray;
+ context.extraData.push(pExtraDataArray);
}
function truncDecimals(pFloatValue, pDecimals) {
diff --git a/AzureBlobStorage.js b/AzureBlobStorage.js
new file mode 100644
index 000000000..ed0fac7a4
--- /dev/null
+++ b/AzureBlobStorage.js
@@ -0,0 +1,420 @@
+
+exports.newAzureBlobBlobStorage = function newAzureBlobBlobStorage(BOT, logger) {
+
+ let FULL_LOG = false;
+ let ERROR_LOG = true;
+ let LOG_FILE_CONTENT = false;
+
+ let bot = BOT;
+ const ROOT_DIR = './';
+
+ const MODULE_NAME = "Azure Blob Storage";
+ const SECOND_TRY_WAIT_TIME = 10000;
+
+ let AZURE_STORAGE = require('./AzureStorage')
+ let storage = AZURE_STORAGE.newAzureStorage(bot, logger);
+
+ let thisObject = {
+ initialize: initialize,
+ createFolder: createFolder,
+ createTextFile: createTextFile,
+ getTextFile: getTextFile
+ };
+
+ let readOnlyBlobService;
+ let writeOnlyBlobService;
+ let containerName;
+ let environment = global.CURRENT_ENVIRONMENT;
+
+ let Minio = require('minio'); // Temporary during migration
+ let minioClient; // Temporary during migration
+
+ return thisObject;
+
+ function initialize(pDataOwner, callBackFunction, disableLogging) {
+
+ try {
+
+ minioClient = new Minio.Client({
+ endPoint: process.env.MINIO_END_POINT,
+ port: JSON.parse(process.env.MINIO_PORT),
+ useSSL: JSON.parse(process.env.MINIO_USE_SSL),
+ accessKey: process.env.MINIO_ACCESS_KEY,
+ secretKey: process.env.MINIO_SECRET_KEY
+ })
+
+ containerName = pDataOwner.toLowerCase();
+
+ if (pDataOwner.environment !== undefined) { // This is use for data migration from one environment to the other.
+
+ environment = pDataOwner.environment;
+
+ }
+
+ if (FULL_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[INFO] initialize -> Entering function."); }
+ if (FULL_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[INFO] initialize -> environment = " + environment); }
+ if (FULL_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[INFO] initialize -> containerName = " + containerName); }
+
+
+
+ let readConnectionString = global.USER_PROFILE.storagePermissions.get(pDataOwner + "." + "READ");
+
+ if (readConnectionString !== undefined) {
+ readOnlyBlobService = storage.createBlobService(readConnectionString);
+ }
+
+ let writeConnectionString = global.USER_PROFILE.storagePermissions.get(pDataOwner + "." + "WRITE");
+
+ if (writeConnectionString !== undefined) {
+ writeOnlyBlobService = storage.createBlobService(writeConnectionString);
+ }
+
+ if (readOnlyBlobService !== undefined || writeOnlyBlobService !== undefined) {
+
+ callBackFunction(global.DEFAULT_OK_RESPONSE);
+ return;
+
+ } else {
+
+ if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] initialize -> No READ or WRITE permissions found."); }
+ if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] initialize -> pDataOwner = " + pDataOwner); }
+
+ callBackFunction(global.DEFAULT_FAIL_RESPONSE);
+ return;
+
+ }
+ }
+ catch (err) {
+
+ if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] initialize -> err = " + err.message); }
+ callBackFunction(global.DEFAULT_FAIL_RESPONSE);
+ }
+ }
+
+ function createFolder(pFolderPath, callBackFunction) {
+
+ if (FULL_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[INFO] createFolder -> Entering function."); }
+
+ try {
+
+ /* Folders do not need to be created when using blobs. */
+
+ callBackFunction(global.DEFAULT_OK_RESPONSE);
+ return;
+
+ }
+ catch (err) {
+ if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] createFolder -> err = " + err.message); }
+ callBackFunction(global.DEFAULT_FAIL_RESPONSE);
+ }
+ }
+
+ function createTextFile(pFolderPath, pFileName, pFileContent, callBackFunction) {
+
+ if (writeOnlyBlobService === undefined) {
+
+ if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] createTextFile -> initialize function not executed or failed. Can not process this request. Sorry."); }
+ callBackFunction(global.DEFAULT_FAIL_RESPONSE);
+ return;
+ }
+
+ try {
+
+ if (FULL_LOG === true && logger !== undefined) {
+ logger.write(MODULE_NAME, "[INFO] createTextFile -> About to create a text file.");
+ logger.write(MODULE_NAME, "[INFO] createTextFile -> containerName = " + containerName);
+ logger.write(MODULE_NAME, "[INFO] createTextFile -> pFolderPath = " + pFolderPath);
+ logger.write(MODULE_NAME, "[INFO] createTextFile -> pFileName = " + pFileName);
+ }
+
+ writeOnlyBlobService.createBlockBlobFromText(containerName, pFolderPath + "/" + pFileName, pFileContent, onFileCreated);
+
+ /* REPLICATION TO MINIO */
+ minioClient.putObject(containerName, pFolderPath + "/" + pFileName, pFileContent, 'text/plain', function (err) {
+ console.log(MODULE_NAME, "[INFO] 'createTextFile' -> Replicating to MINIO -> File = " + pFolderPath + "/" + pFileName);
+
+ if (err) {
+ console.log(MODULE_NAME, "[WARN] 'createTextFile' -> Replicating to MINIO -> err = " + err.message);
+ }
+
+ }); // Temporary during migration
+
+ function onFileCreated(err, result, response) {
+
+ try {
+
+ if (FULL_LOG === true && logger !== undefined) {
+ logger.write(MODULE_NAME, "[INFO] createTextFile -> onFileCreated -> Response from Azure received.");
+ logger.write(MODULE_NAME, "[INFO] createTextFile -> onFileCreated -> err = " + JSON.stringify(err));
+ }
+
+ if (LOG_FILE_CONTENT === true && logger !== undefined) {
+ logger.write(MODULE_NAME, "[INFO] createTextFile -> onFileCreated -> result = " + JSON.stringify(result));
+ logger.write(MODULE_NAME, "[INFO] createTextFile -> onFileReceived -> response = " + JSON.stringify(response));
+ logger.write(MODULE_NAME, "[INFO] createTextFile -> onFileReceived -> pFileContent = " + pFileContent);
+ }
+
+ if (err) {
+
+ if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] createTextFile -> onFileCreated -> err = " + JSON.stringify(err)); }
+ if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] createTextFile -> onFileCreated -> result = " + JSON.stringify(result)); }
+ if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] createTextFile -> onFileCreated -> response = " + JSON.stringify(response)); }
+
+ if (ERROR_LOG === true && logger !== undefined) {
+ logger.write(MODULE_NAME, "[ERROR] createTextFile -> onFileReceived -> Error trying to create this file.");
+ logger.write(MODULE_NAME, "[ERROR] createTextFile -> onFileReceived -> containerName = " + containerName);
+ logger.write(MODULE_NAME, "[ERROR] createTextFile -> onFileReceived -> pFolderPath = " + pFolderPath);
+ logger.write(MODULE_NAME, "[ERROR] createTextFile -> onFileReceived -> pFileName = " + pFileName);
+ logger.write(MODULE_NAME, "[ERROR] createTextFile -> onFileReceived -> err.code = " + err.code);
+ }
+
+ if (
+ err.code === 'ECONNRESET' ||
+ err.code === 'ENOTFOUND' ||
+ err.code === 'ESOCKETTIMEDOUT' ||
+ err.code === 'ETIMEDOUT' ||
+ err.code === 'ECONNREFUSED' ||
+ err.code === 'EADDRINUSE' ||
+ err.code === 'EAI_AGAIN' ||
+ err.code === 'AuthenticationFailed' ||
+ err.code === 'OperationTimedOut' ||
+ err.code === 'ServerBusy'
+ ) {
+
+ setTimeout(secondTry, SECOND_TRY_WAIT_TIME);
+ return;
+
+ function secondTry() {
+
+ try {
+
+ logger.write(MODULE_NAME, "[INFO] createTextFile -> onFileCreated -> secondTry -> Retrying to create the file.");
+
+ writeOnlyBlobService.createBlockBlobFromText(containerName, pFolderPath + "/" + pFileName, pFileContent, onSecondTry);
+
+ function onSecondTry(err, result, response) {
+
+ try {
+
+ if (err) {
+ if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] createTextFile -> onFileCreated -> secondTry -> File not created. Giving Up."); }
+
+ if (ERROR_LOG === true && logger !== undefined) {
+ logger.write(MODULE_NAME, "[ERROR] createTextFile -> onFileCreated -> secondTry -> containerName = " + containerName);
+ logger.write(MODULE_NAME, "[ERROR] createTextFile -> onFileCreated -> secondTry -> pFolderPath = " + pFolderPath);
+ logger.write(MODULE_NAME, "[ERROR] createTextFile -> onFileCreated -> secondTry -> pFileName = " + pFileName);
+ logger.write(MODULE_NAME, "[ERROR] createTextFile -> onFileCreated -> secondTry -> err.code = " + err.code);
+ }
+
+ callBackFunction(global.DEFAULT_RETRY_RESPONSE);
+ } else {
+ logger.write(MODULE_NAME, "[INFO] createTextFile -> onFileCreated -> secondTry -> File succesfully created on second try.");
+ callBackFunction(global.DEFAULT_OK_RESPONSE);
+ }
+ }
+ catch (err) {
+ if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] 'createTextFile' -> onFileCreated -> secondTry -> onSecondTry -> err = " + err.message); }
+ callBackFunction(global.DEFAULT_FAIL_RESPONSE);
+ }
+ }
+ }
+ catch (err) {
+ if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] 'createTextFile' -> onFileCreated -> secondTry -> err = " + err.message); }
+ callBackFunction(global.DEFAULT_FAIL_RESPONSE);
+ }
+ }
+ }
+
+ if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] createTextFile -> onFileCreated -> Dont know what to do here. Cancelling operation. "); }
+ callBackFunction(global.DEFAULT_FAIL_RESPONSE);
+
+ } else {
+ if (FULL_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[INFO] createTextFile -> onFileCreated -> File Created."); }
+ callBackFunction(global.DEFAULT_OK_RESPONSE);
+ }
+ }
+ catch (err) {
+ if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] 'createTextFile' -> onFileCreated -> err = " + err.message); }
+ callBackFunction(global.DEFAULT_FAIL_RESPONSE);
+ }
+ }
+ }
+ catch (err) {
+ if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] 'createTextFile' -> err = " + err.message); }
+ callBackFunction(global.DEFAULT_FAIL_RESPONSE);
+ }
+ }
+
+ function getTextFile(pFolderPath, pFileName, callBackFunction) {
+
+ if (readOnlyBlobService === undefined) {
+
+ if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] getTextFile -> initialize function not executed or failed. Can not process this request. Sorry."); }
+ callBackFunction(global.DEFAULT_FAIL_RESPONSE);
+ return;
+ }
+
+ try {
+
+ if (FULL_LOG === true && logger !== undefined) {
+ logger.write(MODULE_NAME, "[INFO] getTextFile -> About to get a text file.");
+ logger.write(MODULE_NAME, "[INFO] getTextFile -> containerName = " + containerName);
+ logger.write(MODULE_NAME, "[INFO] getTextFile -> pFolderPath = " + pFolderPath);
+ logger.write(MODULE_NAME, "[INFO] getTextFile -> pFileName = " + pFileName);
+ }
+
+ readOnlyBlobService.getBlobToText(containerName, pFolderPath + "/" + pFileName, onFileReceived);
+
+ function onFileReceived(err, text, response) {
+
+ try {
+
+ if (FULL_LOG === true && logger !== undefined) {
+ logger.write(MODULE_NAME, "[INFO] getTextFile -> onFileReceived -> Response from Azure received.");
+ logger.write(MODULE_NAME, "[INFO] getTextFile -> onFileReceived -> err = " + JSON.stringify(err));
+ }
+
+ if (LOG_FILE_CONTENT === true && logger !== undefined) {
+ logger.write(MODULE_NAME, "[INFO] getTextFile -> onFileReceived -> response = " + JSON.stringify(response));
+ logger.write(MODULE_NAME, "[INFO] getTextFile -> onFileReceived -> text = " + text);
+ }
+
+ if (err) {
+
+ if (ERROR_LOG === true && logger !== undefined && err.code !== 'BlobNotFound') {
+ logger.write(MODULE_NAME, "[ERROR] getTextFile -> onFileReceived -> Error trying to get this file.");
+ logger.write(MODULE_NAME, "[ERROR] getTextFile -> onFileReceived -> containerName = " + containerName);
+ logger.write(MODULE_NAME, "[ERROR] getTextFile -> onFileReceived -> pFolderPath = " + pFolderPath);
+ logger.write(MODULE_NAME, "[ERROR] getTextFile -> onFileReceived -> pFileName = " + pFileName);
+ logger.write(MODULE_NAME, "[ERROR] getTextFile -> onFileReceived -> err.code = " + err.code);
+ }
+
+ if (
+ err.code === 'ECONNRESET' ||
+ err.code === 'ENOTFOUND' ||
+ err.code === 'ESOCKETTIMEDOUT' ||
+ err.code === 'ETIMEDOUT' ||
+ err.code === 'ECONNREFUSED' ||
+ err.code === 'EADDRINUSE' ||
+ err.code === 'EAI_AGAIN' ||
+ err.code === 'AuthenticationFailed' ||
+ err.code === 'OperationTimedOut' ||
+ err.code === 'ServerBusy'
+ ) {
+
+ setTimeout(secondTry, SECOND_TRY_WAIT_TIME);
+ return;
+
+ function secondTry() {
+
+ try {
+
+ logger.write(MODULE_NAME, "[INFO] getTextFile -> onFileReceived -> secondTry -> Retrying to get the file.");
+
+ readOnlyBlobService.getBlobToText(containerName, pFolderPath + "/" + pFileName, onSecondTry);
+
+ function onSecondTry(err, text, response) {
+
+ try {
+
+ if (err) {
+ if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] getTextFile -> onFileReceived -> secondTry -> File not retrieved. Giving Up."); }
+
+ if (ERROR_LOG === true && logger !== undefined) {
+ logger.write(MODULE_NAME, "[ERROR] getTextFile -> onFileReceived -> secondTry -> containerName = " + containerName);
+ logger.write(MODULE_NAME, "[ERROR] getTextFile -> onFileReceived -> secondTry -> pFolderPath = " + pFolderPath);
+ logger.write(MODULE_NAME, "[ERROR] getTextFile -> onFileReceived -> secondTry -> pFileName = " + pFileName);
+ logger.write(MODULE_NAME, "[ERROR] getTextFile -> onFileReceived -> secondTry -> err.code = " + err.code);
+ }
+
+ callBackFunction(global.DEFAULT_RETRY_RESPONSE);
+ } else {
+ logger.write(MODULE_NAME, "[INFO] getTextFile -> onFileReceived -> secondTry -> File succesfully retrieved on second try.");
+ callBackFunction(global.DEFAULT_OK_RESPONSE, text);
+ }
+ }
+ catch (err) {
+ if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] 'getTextFile' -> onFileReceived -> secondTry -> onSecondTry -> err = " + err.message); }
+ callBackFunction(global.DEFAULT_FAIL_RESPONSE);
+ }
+ }
+ }
+ catch (err) {
+ if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] 'getTextFile' -> onFileReceived -> secondTry -> err = " + err.message); }
+ callBackFunction(global.DEFAULT_FAIL_RESPONSE);
+ }
+ }
+ }
+
+ if (err.code === "BlobNotFound") {
+
+ /* This is how Azure tell us the file does not exist. */
+
+ let customErr = {
+ result: global.CUSTOM_FAIL_RESPONSE.result,
+ message: "File does not exist."
+ };
+
+ logger.write(MODULE_NAME, "[WARN] getTextFile -> onFileReceived -> Custom Response -> message = " + customErr.message);
+ logger.write(MODULE_NAME, "[WARN] getTextFile -> containerName = " + containerName);
+ logger.write(MODULE_NAME, "[WARN] getTextFile -> pFolderPath = " + pFolderPath);
+ logger.write(MODULE_NAME, "[WARN] getTextFile -> pFileName = " + pFileName);
+
+ callBackFunction(customErr);
+ return;
+
+ }
+
+ if (err.code === "ParentNotFound") {
+
+ /* This is how Azure tell us the folder where the file was supposed to be does not exist. We map this to our own response. */
+
+ let customErr = {
+ result: global.CUSTOM_FAIL_RESPONSE.result,
+ message: "Folder does not exist."
+ };
+
+ logger.write(MODULE_NAME, "[WARN] getTextFile -> onFileReceived -> Custom Response -> message = " + customErr.message);
+ logger.write(MODULE_NAME, "[WARN] getTextFile -> containerName = " + containerName);
+ logger.write(MODULE_NAME, "[WARN] getTextFile -> pFolderPath = " + pFolderPath);
+ logger.write(MODULE_NAME, "[WARN] getTextFile -> pFileName = " + pFileName);
+
+ callBackFunction(customErr);
+ return;
+
+ }
+
+ if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] getTextFile -> onFileCreated -> err = " + JSON.stringify(err)); }
+ if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] getTextFile -> onFileCreated -> response = " + JSON.stringify(response)); }
+
+ if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] getTextFile -> onFileReceived -> Dont know what to do here. Cancelling operation. "); }
+ callBackFunction(global.DEFAULT_FAIL_RESPONSE);
+
+ } else {
+ if (FULL_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[INFO] getTextFile -> onFileReceived -> File retrieved."); }
+ callBackFunction(global.DEFAULT_OK_RESPONSE, text);
+
+ /* REPLICATION TO MINIO */
+ minioClient.putObject(containerName, pFolderPath + "/" + pFileName, text, 'text/plain', function (err, dataStream) {
+ console.log(MODULE_NAME, "[INFO] 'getTextFile' -> onFileReceived -> Replicating to MINIO -> File = " + pFolderPath + "/" + pFileName);
+
+ if (err) {
+ console.log(MODULE_NAME, "[WARN] 'getTextFile' -> onFileReceived -> Replicating to MINIO -> err = " + err.message);
+ }
+
+ }); // Temporary during migration
+ }
+ }
+ catch (err) {
+ if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] 'getTextFile' -> onFileReceived -> err = " + err.message); }
+ callBackFunction(global.DEFAULT_FAIL_RESPONSE);
+ }
+ }
+ }
+ catch (err) {
+ if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] 'getTextFile' -> err = " + err.message); }
+ callBackFunction(global.DEFAULT_FAIL_RESPONSE);
+ }
+ }
+
+};
\ No newline at end of file
diff --git a/AzureStorage.js b/AzureStorage.js
index f6312abf4..8e35fce13 100644
--- a/AzureStorage.js
+++ b/AzureStorage.js
@@ -6,7 +6,7 @@
let bot = BOT;
const ROOT_DIR = './';
- const MODULE_NAME = "Azure Storage";
+ const MODULE_NAME = "Azure Blob Storage";
const REQUEST_TIMEOUT = 180;
let thisObject = {
diff --git a/BlobStorage.js b/BlobStorage.js
index f05bb4918..de0eb1e03 100644
--- a/BlobStorage.js
+++ b/BlobStorage.js
@@ -9,384 +9,29 @@ exports.newBlobStorage = function newBlobStorage(BOT, logger) {
const ROOT_DIR = './';
const MODULE_NAME = "Blob Storage";
- const SECOND_TRY_WAIT_TIME = 10000;
- let AZURE_STORAGE = require('./AzureStorage');
- let storage = AZURE_STORAGE.newAzureStorage(bot, logger);
-
- let thisObject = {
- initialize: initialize,
- createFolder: createFolder,
- createTextFile: createTextFile,
- getTextFile: getTextFile
- };
+ let storage;
- let readOnlyBlobService;
- let writeOnlyBlobService;
- let containerName;
- let environment = global.CURRENT_ENVIRONMENT;
-
- return thisObject;
-
- function initialize(pDataOwner, callBackFunction, disableLogging) {
-
- try {
-
- containerName = pDataOwner.toLowerCase();
-
- if (pDataOwner.environment !== undefined) { // This is use for data migration from one environment to the other.
-
- environment = pDataOwner.environment;
+ let AZURE_STORAGE = require('./AzureBlobStorage')
+ let MINIO_STORAGE = require('./MinioBlobStorage')
+ switch (process.env.STORAGE_PROVIDER) {
+ case 'Azure': {
+ storage = AZURE_STORAGE.newAzureBlobBlobStorage(bot, logger);
+ break;
+ }
+ case 'Minio': {
+ storage = MINIO_STORAGE.newMinioBlobBlobStorage(bot, logger);
+ break;
+ }
+ default: {
+ if (ERROR_LOG === true && logger !== undefined) {
+ logger.write(MODULE_NAME, "[ERROR] newBlobStorage -> Storage Provider not supported -> process.env.STORAGE_PROVIDER = " + process.env.STORAGE_PROVIDER);
}
-
- if (FULL_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[INFO] initialize -> Entering function."); }
- if (FULL_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[INFO] initialize -> environment = " + environment); }
- if (FULL_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[INFO] initialize -> containerName = " + containerName); }
-
-
-
- let readConnectionString = global.USER_PROFILE.storagePermissions.get(pDataOwner + "." + "READ");
-
- if (readConnectionString !== undefined) {
- readOnlyBlobService = storage.createBlobService(readConnectionString);
- }
-
- let writeConnectionString = global.USER_PROFILE.storagePermissions.get(pDataOwner + "." + "WRITE");
-
- if (writeConnectionString !== undefined) {
- writeOnlyBlobService = storage.createBlobService(writeConnectionString);
- }
-
- if (readOnlyBlobService !== undefined || writeOnlyBlobService !== undefined) {
-
- callBackFunction(global.DEFAULT_OK_RESPONSE);
- return;
-
- } else {
-
- if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] initialize -> No READ or WRITE permissions found."); }
- if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] initialize -> pDataOwner = " + pDataOwner); }
-
- callBackFunction(global.DEFAULT_FAIL_RESPONSE);
- return;
-
- }
- }
- catch (err) {
-
- if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] initialize -> err = " + err.message); }
- callBackFunction(global.DEFAULT_FAIL_RESPONSE);
- }
- }
-
- function createFolder(pFolderPath, callBackFunction) {
-
- if (FULL_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[INFO] createFolder -> Entering function."); }
-
- try {
-
- /* Folders do not need to be created when using blobs. */
-
- callBackFunction(global.DEFAULT_OK_RESPONSE);
- return;
-
- }
- catch (err) {
- if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] createFolder -> err = " + err.message); }
- callBackFunction(global.DEFAULT_FAIL_RESPONSE);
- }
- }
-
- function createTextFile(pFolderPath, pFileName, pFileContent, callBackFunction) {
-
- if (writeOnlyBlobService === undefined) {
-
- if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] createTextFile -> initialize function not executed or failed. Can not process this request. Sorry."); }
- callBackFunction(global.DEFAULT_FAIL_RESPONSE);
return;
}
-
- try {
-
- if (FULL_LOG === true && logger !== undefined) {
- logger.write(MODULE_NAME, "[INFO] createTextFile -> About to create a text file.");
- logger.write(MODULE_NAME, "[INFO] createTextFile -> containerName = " + containerName);
- logger.write(MODULE_NAME, "[INFO] createTextFile -> pFolderPath = " + pFolderPath);
- logger.write(MODULE_NAME, "[INFO] createTextFile -> pFileName = " + pFileName);
- }
-
- writeOnlyBlobService.createBlockBlobFromText(containerName, pFolderPath + "/" + pFileName, pFileContent, onFileCreated);
-
- function onFileCreated(err, result, response) {
-
- try {
-
- if (FULL_LOG === true && logger !== undefined) {
- logger.write(MODULE_NAME, "[INFO] createTextFile -> onFileCreated -> Response from Azure received.");
- logger.write(MODULE_NAME, "[INFO] createTextFile -> onFileCreated -> err = " + JSON.stringify(err));
- }
-
- if (LOG_FILE_CONTENT === true && logger !== undefined) {
- logger.write(MODULE_NAME, "[INFO] createTextFile -> onFileCreated -> result = " + JSON.stringify(result));
- logger.write(MODULE_NAME, "[INFO] createTextFile -> onFileReceived -> response = " + JSON.stringify(response));
- logger.write(MODULE_NAME, "[INFO] createTextFile -> onFileReceived -> pFileContent = " + pFileContent);
- }
-
- if (err) {
-
- if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] createTextFile -> onFileCreated -> err = " + JSON.stringify(err)); }
- if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] createTextFile -> onFileCreated -> result = " + JSON.stringify(result)); }
- if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] createTextFile -> onFileCreated -> response = " + JSON.stringify(response)); }
-
- if (ERROR_LOG === true && logger !== undefined) {
- logger.write(MODULE_NAME, "[ERROR] createTextFile -> onFileReceived -> Error trying to create this file.");
- logger.write(MODULE_NAME, "[ERROR] createTextFile -> onFileReceived -> containerName = " + containerName);
- logger.write(MODULE_NAME, "[ERROR] createTextFile -> onFileReceived -> pFolderPath = " + pFolderPath);
- logger.write(MODULE_NAME, "[ERROR] createTextFile -> onFileReceived -> pFileName = " + pFileName);
- logger.write(MODULE_NAME, "[ERROR] createTextFile -> onFileReceived -> err.code = " + err.code);
- }
-
- if (
- err.code === 'ECONNRESET' ||
- err.code === 'ENOTFOUND' ||
- err.code === 'ESOCKETTIMEDOUT' ||
- err.code === 'ETIMEDOUT' ||
- err.code === 'ECONNREFUSED' ||
- err.code === 'EADDRINUSE' ||
- err.code === 'EAI_AGAIN' ||
- err.code === 'AuthenticationFailed' ||
- err.code === 'OperationTimedOut' ||
- err.code === 'ServerBusy'
- )
- {
-
- setTimeout(secondTry, SECOND_TRY_WAIT_TIME);
- return;
-
- function secondTry() {
-
- try {
-
- logger.write(MODULE_NAME, "[INFO] createTextFile -> onFileCreated -> secondTry -> Retrying to create the file.");
-
- writeOnlyBlobService.createBlockBlobFromText(containerName, pFolderPath + "/" + pFileName, pFileContent, onSecondTry);
-
- function onSecondTry(err, result, response) {
-
- try {
-
- if (err) {
- if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] createTextFile -> onFileCreated -> secondTry -> File not created. Giving Up."); }
-
- if (ERROR_LOG === true && logger !== undefined) {
- logger.write(MODULE_NAME, "[ERROR] createTextFile -> onFileCreated -> secondTry -> containerName = " + containerName);
- logger.write(MODULE_NAME, "[ERROR] createTextFile -> onFileCreated -> secondTry -> pFolderPath = " + pFolderPath);
- logger.write(MODULE_NAME, "[ERROR] createTextFile -> onFileCreated -> secondTry -> pFileName = " + pFileName);
- logger.write(MODULE_NAME, "[ERROR] createTextFile -> onFileCreated -> secondTry -> err.code = " + err.code);
- }
-
- callBackFunction(global.DEFAULT_RETRY_RESPONSE);
- } else {
- logger.write(MODULE_NAME, "[INFO] createTextFile -> onFileCreated -> secondTry -> File succesfully created on second try.");
- callBackFunction(global.DEFAULT_OK_RESPONSE);
- }
- }
- catch (err) {
- if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] 'createTextFile' -> onFileCreated -> secondTry -> onSecondTry -> err = " + err.message); }
- callBackFunction(global.DEFAULT_FAIL_RESPONSE);
- }
- }
- }
- catch (err) {
- if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] 'createTextFile' -> onFileCreated -> secondTry -> err = " + err.message); }
- callBackFunction(global.DEFAULT_FAIL_RESPONSE);
- }
- }
- }
-
- if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] createTextFile -> onFileCreated -> Dont know what to do here. Cancelling operation. "); }
- callBackFunction(global.DEFAULT_FAIL_RESPONSE);
-
- } else {
- if (FULL_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[INFO] createTextFile -> onFileCreated -> File Created."); }
- callBackFunction(global.DEFAULT_OK_RESPONSE);
- }
- }
- catch (err) {
- if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] 'createTextFile' -> onFileCreated -> err = " + err.message); }
- callBackFunction(global.DEFAULT_FAIL_RESPONSE);
- }
- }
- }
- catch (err) {
- if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] 'createTextFile' -> err = " + err.message); }
- callBackFunction(global.DEFAULT_FAIL_RESPONSE);
- }
}
- function getTextFile(pFolderPath, pFileName, callBackFunction) {
-
- if (readOnlyBlobService === undefined) {
-
- if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] getTextFile -> initialize function not executed or failed. Can not process this request. Sorry."); }
- callBackFunction(global.DEFAULT_FAIL_RESPONSE);
- return;
- }
-
- try {
-
- if (FULL_LOG === true && logger !== undefined) {
- logger.write(MODULE_NAME, "[INFO] getTextFile -> About to get a text file.");
- logger.write(MODULE_NAME, "[INFO] getTextFile -> containerName = " + containerName);
- logger.write(MODULE_NAME, "[INFO] getTextFile -> pFolderPath = " + pFolderPath);
- logger.write(MODULE_NAME, "[INFO] getTextFile -> pFileName = " + pFileName);
- }
-
- readOnlyBlobService.getBlobToText(containerName, pFolderPath + "/" + pFileName, onFileReceived);
-
- function onFileReceived(err, text, response) {
-
- try {
-
- if (FULL_LOG === true && logger !== undefined) {
- logger.write(MODULE_NAME, "[INFO] getTextFile -> onFileReceived -> Response from Azure received.");
- logger.write(MODULE_NAME, "[INFO] getTextFile -> onFileReceived -> err = " + JSON.stringify(err));
- }
-
- if (LOG_FILE_CONTENT === true && logger !== undefined) {
- logger.write(MODULE_NAME, "[INFO] getTextFile -> onFileReceived -> response = " + JSON.stringify(response));
- logger.write(MODULE_NAME, "[INFO] getTextFile -> onFileReceived -> text = " + text);
- }
-
- if (err) {
-
- if (ERROR_LOG === true && logger !== undefined && err.code !== 'BlobNotFound') {
- logger.write(MODULE_NAME, "[ERROR] getTextFile -> onFileReceived -> Error trying to get this file.");
- logger.write(MODULE_NAME, "[ERROR] getTextFile -> onFileReceived -> containerName = " + containerName);
- logger.write(MODULE_NAME, "[ERROR] getTextFile -> onFileReceived -> pFolderPath = " + pFolderPath);
- logger.write(MODULE_NAME, "[ERROR] getTextFile -> onFileReceived -> pFileName = " + pFileName);
- logger.write(MODULE_NAME, "[ERROR] getTextFile -> onFileReceived -> err.code = " + err.code);
- }
-
- if (
- err.code === 'ECONNRESET' ||
- err.code === 'ENOTFOUND' ||
- err.code === 'ESOCKETTIMEDOUT' ||
- err.code === 'ETIMEDOUT' ||
- err.code === 'ECONNREFUSED' ||
- err.code === 'EADDRINUSE' ||
- err.code === 'EAI_AGAIN' ||
- err.code === 'AuthenticationFailed' ||
- err.code === 'OperationTimedOut' ||
- err.code === 'ServerBusy'
- )
-
- {
-
- setTimeout(secondTry, SECOND_TRY_WAIT_TIME);
- return;
-
- function secondTry() {
-
- try {
-
- logger.write(MODULE_NAME, "[INFO] getTextFile -> onFileReceived -> secondTry -> Retrying to get the file.");
-
- readOnlyBlobService.getBlobToText(containerName, pFolderPath + "/" + pFileName, onSecondTry);
-
- function onSecondTry(err, text, response) {
-
- try {
-
- if (err) {
- if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] getTextFile -> onFileReceived -> secondTry -> File not retrieved. Giving Up."); }
-
- if (ERROR_LOG === true && logger !== undefined) {
- logger.write(MODULE_NAME, "[ERROR] getTextFile -> onFileReceived -> secondTry -> containerName = " + containerName);
- logger.write(MODULE_NAME, "[ERROR] getTextFile -> onFileReceived -> secondTry -> pFolderPath = " + pFolderPath);
- logger.write(MODULE_NAME, "[ERROR] getTextFile -> onFileReceived -> secondTry -> pFileName = " + pFileName);
- logger.write(MODULE_NAME, "[ERROR] getTextFile -> onFileReceived -> secondTry -> err.code = " + err.code);
- }
-
- callBackFunction(global.DEFAULT_RETRY_RESPONSE);
- } else {
- logger.write(MODULE_NAME, "[INFO] getTextFile -> onFileReceived -> secondTry -> File succesfully retrieved on second try.");
- callBackFunction(global.DEFAULT_OK_RESPONSE, text);
- }
- }
- catch (err) {
- if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] 'getTextFile' -> onFileReceived -> secondTry -> onSecondTry -> err = " + err.message); }
- callBackFunction(global.DEFAULT_FAIL_RESPONSE);
- }
- }
- }
- catch (err) {
- if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] 'getTextFile' -> onFileReceived -> secondTry -> err = " + err.message); }
- callBackFunction(global.DEFAULT_FAIL_RESPONSE);
- }
- }
- }
-
- if (err.code === "BlobNotFound") {
-
- /* This is how Azure tell us the file does not exist. */
-
- let customErr = {
- result: global.CUSTOM_FAIL_RESPONSE.result,
- message: "File does not exist."
- };
-
- logger.write(MODULE_NAME, "[WARN] getTextFile -> onFileReceived -> Custom Response -> message = " + customErr.message);
- logger.write(MODULE_NAME, "[WARN] getTextFile -> containerName = " + containerName);
- logger.write(MODULE_NAME, "[WARN] getTextFile -> pFolderPath = " + pFolderPath);
- logger.write(MODULE_NAME, "[WARN] getTextFile -> pFileName = " + pFileName);
-
- callBackFunction(customErr);
- return;
-
- }
-
- if (err.code === "ParentNotFound") {
-
- /* This is how Azure tell us the folder where the file was supposed to be does not exist. We map this to our own response. */
-
- let customErr = {
- result: global.CUSTOM_FAIL_RESPONSE.result,
- message: "Folder does not exist."
- };
-
- logger.write(MODULE_NAME, "[WARN] getTextFile -> onFileReceived -> Custom Response -> message = " + customErr.message);
- logger.write(MODULE_NAME, "[WARN] getTextFile -> containerName = " + containerName);
- logger.write(MODULE_NAME, "[WARN] getTextFile -> pFolderPath = " + pFolderPath);
- logger.write(MODULE_NAME, "[WARN] getTextFile -> pFileName = " + pFileName);
-
- callBackFunction(customErr);
- return;
-
- }
-
- if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] getTextFile -> onFileCreated -> err = " + JSON.stringify(err)); }
- if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] getTextFile -> onFileCreated -> response = " + JSON.stringify(response)); }
-
- if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] getTextFile -> onFileReceived -> Dont know what to do here. Cancelling operation. "); }
- callBackFunction(global.DEFAULT_FAIL_RESPONSE);
-
- } else {
- if (FULL_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[INFO] getTextFile -> onFileReceived -> File retrieved."); }
- callBackFunction(global.DEFAULT_OK_RESPONSE, text);
- }
- }
- catch (err) {
- if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] 'getTextFile' -> onFileReceived -> err = " + err.message); }
- callBackFunction(global.DEFAULT_FAIL_RESPONSE);
- }
- }
- }
- catch (err) {
- if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] 'getTextFile' -> err = " + err.message); }
- callBackFunction(global.DEFAULT_FAIL_RESPONSE);
- }
- }
+ return storage;
};
\ No newline at end of file
diff --git a/Context.js b/Context.js
index 1d272378a..057e11177 100644
--- a/Context.js
+++ b/Context.js
@@ -490,12 +490,11 @@
thisObject.newHistoryRecord.messageRelevance,
thisObject.newHistoryRecord.messageTitle,
- thisObject.newHistoryRecord.messageBody
+ thisObject.newHistoryRecord.messageBody,
+ thisObject.extraData
];
- let recordWithExtraData = newRecord.concat(thisObject.extraData);
-
- thisObject.executionHistory.push(recordWithExtraData);
+ thisObject.executionHistory.push(newRecord);
let fileContent = JSON.stringify(thisObject.executionHistory);
diff --git a/MinioBlobStorage.js b/MinioBlobStorage.js
new file mode 100644
index 000000000..41b282a84
--- /dev/null
+++ b/MinioBlobStorage.js
@@ -0,0 +1,401 @@
+
+exports.newMinioBlobBlobStorage = function newMinioBlobBlobStorage(BOT, logger) {
+
+ let FULL_LOG = false;
+ let ERROR_LOG = true;
+ let LOG_FILE_CONTENT = false;
+
+ let bot = BOT;
+ const ROOT_DIR = './';
+
+ const MODULE_NAME = "Minio Blob Storage";
+ const SECOND_TRY_WAIT_TIME = 10000;
+
+ let thisObject = {
+ initialize: initialize,
+ createFolder: createFolder,
+ createTextFile: createTextFile,
+ getTextFile: getTextFile
+ };
+
+ let containerName;
+ let environment = global.CURRENT_ENVIRONMENT;
+
+ let Minio = require('minio');
+ let minioClient;
+
+ return thisObject;
+
+ function initialize(pDataOwner, callBackFunction, disableLogging) {
+
+ try {
+
+ minioClient = new Minio.Client({
+ endPoint: process.env.MINIO_END_POINT,
+ port: JSON.parse(process.env.MINIO_PORT),
+ useSSL: JSON.parse(process.env.MINIO_USE_SSL),
+ accessKey: process.env.MINIO_ACCESS_KEY,
+ secretKey: process.env.MINIO_SECRET_KEY
+ })
+
+ containerName = pDataOwner.toLowerCase();
+
+ if (pDataOwner.environment !== undefined) { // This is use for data migration from one environment to the other.
+
+ environment = pDataOwner.environment;
+
+ }
+
+ if (FULL_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[INFO] initialize -> Entering function."); }
+ if (FULL_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[INFO] initialize -> environment = " + environment); }
+ if (FULL_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[INFO] initialize -> containerName = " + containerName); }
+
+ callBackFunction(global.DEFAULT_OK_RESPONSE);
+
+ }
+ catch (err) {
+
+ if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] initialize -> err = " + err.message); }
+ callBackFunction(global.DEFAULT_FAIL_RESPONSE);
+ }
+ }
+
+ function createFolder(pFolderPath, callBackFunction) {
+
+ if (FULL_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[INFO] createFolder -> Entering function."); }
+
+ try {
+
+ /* Folders do not need to be created when using blobs. */
+
+ callBackFunction(global.DEFAULT_OK_RESPONSE);
+ return;
+
+ }
+ catch (err) {
+ if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] createFolder -> err = " + err.message); }
+ callBackFunction(global.DEFAULT_FAIL_RESPONSE);
+ }
+ }
+
+ function createTextFile(pFolderPath, pFileName, pFileContent, callBackFunction) {
+
+ try {
+
+ if (FULL_LOG === true && logger !== undefined) {
+ logger.write(MODULE_NAME, "[INFO] createTextFile -> About to create a text file.");
+ logger.write(MODULE_NAME, "[INFO] createTextFile -> containerName = " + containerName);
+ logger.write(MODULE_NAME, "[INFO] createTextFile -> pFolderPath = " + pFolderPath);
+ logger.write(MODULE_NAME, "[INFO] createTextFile -> pFileName = " + pFileName);
+ }
+
+ minioClient.putObject(containerName, pFolderPath + "/" + pFileName, pFileContent, 'text/plain', onFileCreated)
+
+ function onFileCreated(err, result, response) {
+
+ try {
+
+ if (FULL_LOG === true && logger !== undefined) {
+ logger.write(MODULE_NAME, "[INFO] createTextFile -> onFileCreated -> Response from Minio received.");
+ logger.write(MODULE_NAME, "[INFO] createTextFile -> onFileCreated -> err = " + JSON.stringify(err));
+ }
+
+ if (LOG_FILE_CONTENT === true && logger !== undefined) {
+ logger.write(MODULE_NAME, "[INFO] createTextFile -> onFileCreated -> result = " + JSON.stringify(result));
+ logger.write(MODULE_NAME, "[INFO] createTextFile -> onFileReceived -> response = " + JSON.stringify(response));
+ logger.write(MODULE_NAME, "[INFO] createTextFile -> onFileReceived -> pFileContent = " + pFileContent);
+ }
+
+ /* Console logging */
+ console.log(MODULE_NAME, "[INFO] 'createTextFile' -> onFileReceived -> File created at MINIO -> File = " + pFolderPath + "/" + pFileName);
+
+ if (err) {
+ console.log(MODULE_NAME, "[WARN] 'createTextFile' -> onFileReceived -> File created at MINIO -> err = " + err.message);
+ }
+
+ if (err) {
+
+ if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] createTextFile -> onFileCreated -> err = " + JSON.stringify(err)); }
+ if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] createTextFile -> onFileCreated -> result = " + JSON.stringify(result)); }
+ if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] createTextFile -> onFileCreated -> response = " + JSON.stringify(response)); }
+
+ if (ERROR_LOG === true && logger !== undefined) {
+ logger.write(MODULE_NAME, "[ERROR] createTextFile -> onFileReceived -> Error trying to create this file.");
+ logger.write(MODULE_NAME, "[ERROR] createTextFile -> onFileReceived -> containerName = " + containerName);
+ logger.write(MODULE_NAME, "[ERROR] createTextFile -> onFileReceived -> pFolderPath = " + pFolderPath);
+ logger.write(MODULE_NAME, "[ERROR] createTextFile -> onFileReceived -> pFileName = " + pFileName);
+ logger.write(MODULE_NAME, "[ERROR] createTextFile -> onFileReceived -> err.code = " + err.code);
+ }
+
+ if (
+ err.code === 'ECONNRESET' ||
+ err.code === 'ENOTFOUND' ||
+ err.code === 'ESOCKETTIMEDOUT' ||
+ err.code === 'ETIMEDOUT' ||
+ err.code === 'ECONNREFUSED' ||
+ err.code === 'EADDRINUSE' ||
+ err.code === 'EAI_AGAIN' ||
+ err.code === 'AuthenticationFailed' ||
+ err.code === 'OperationTimedOut' ||
+ err.code === 'ServerBusy'
+ ) {
+
+ setTimeout(secondTry, SECOND_TRY_WAIT_TIME);
+ return;
+
+ function secondTry() {
+
+ try {
+
+ logger.write(MODULE_NAME, "[INFO] createTextFile -> onFileCreated -> secondTry -> Retrying to create the file.");
+
+ minioClient.putObject(containerName, pFolderPath + "/" + pFileName, pFileContent, 'text/plain', onSecondTry)
+
+ function onSecondTry(err, result, response) {
+
+ try {
+
+ if (err) {
+ if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] createTextFile -> onFileCreated -> secondTry -> File not created. Giving Up."); }
+
+ if (ERROR_LOG === true && logger !== undefined) {
+ logger.write(MODULE_NAME, "[ERROR] createTextFile -> onFileCreated -> secondTry -> containerName = " + containerName);
+ logger.write(MODULE_NAME, "[ERROR] createTextFile -> onFileCreated -> secondTry -> pFolderPath = " + pFolderPath);
+ logger.write(MODULE_NAME, "[ERROR] createTextFile -> onFileCreated -> secondTry -> pFileName = " + pFileName);
+ logger.write(MODULE_NAME, "[ERROR] createTextFile -> onFileCreated -> secondTry -> err.code = " + err.code);
+ }
+
+ callBackFunction(global.DEFAULT_RETRY_RESPONSE);
+ } else {
+ logger.write(MODULE_NAME, "[INFO] createTextFile -> onFileCreated -> secondTry -> File succesfully created on second try.");
+ callBackFunction(global.DEFAULT_OK_RESPONSE);
+ }
+ }
+ catch (err) {
+ if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] 'createTextFile' -> onFileCreated -> secondTry -> onSecondTry -> err = " + err.message); }
+ callBackFunction(global.DEFAULT_FAIL_RESPONSE);
+ }
+ }
+ }
+ catch (err) {
+ if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] 'createTextFile' -> onFileCreated -> secondTry -> err = " + err.message); }
+ callBackFunction(global.DEFAULT_FAIL_RESPONSE);
+ }
+ }
+ }
+
+ if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] createTextFile -> onFileCreated -> Dont know what to do here. Cancelling operation. "); }
+ callBackFunction(global.DEFAULT_FAIL_RESPONSE);
+
+ } else {
+ if (FULL_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[INFO] createTextFile -> onFileCreated -> File Created."); }
+ callBackFunction(global.DEFAULT_OK_RESPONSE);
+ }
+ }
+ catch (err) {
+ if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] 'createTextFile' -> onFileCreated -> err = " + err.message); }
+ callBackFunction(global.DEFAULT_FAIL_RESPONSE);
+ }
+ }
+ }
+ catch (err) {
+ if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] 'createTextFile' -> err = " + err.message); }
+ callBackFunction(global.DEFAULT_FAIL_RESPONSE);
+ }
+ }
+
+ function getTextFile(pFolderPath, pFileName, callBackFunction) {
+
+ try {
+
+ if (FULL_LOG === true && logger !== undefined) {
+ logger.write(MODULE_NAME, "[INFO] getTextFile -> About to get a text file.");
+ logger.write(MODULE_NAME, "[INFO] getTextFile -> containerName = " + containerName);
+ logger.write(MODULE_NAME, "[INFO] getTextFile -> pFolderPath = " + pFolderPath);
+ logger.write(MODULE_NAME, "[INFO] getTextFile -> pFileName = " + pFileName);
+ }
+
+ minioClient.getObject(containerName, pFolderPath + "/" + pFileName, function (err, dataStream) {
+ let data = '';
+
+ if (err) {
+ onFileReceived(err, null, "Error retrieving file " + textFilename + " from bucket " + bucketName);
+ return
+ }
+ dataStream.on('data', function (chunk) {
+ data += chunk
+ })
+ dataStream.on('end', function () {
+ onFileReceived(null, data, "Data retrieved.");
+ })
+ dataStream.on('error', function (err) {
+ onFileReceived(err, null, "Error on data stream while retrieving file " + textFilename + " from bucket " + bucketName);
+ })
+ })
+
+ function onFileReceived(err, text, response) {
+
+ try {
+
+ if (FULL_LOG === true && logger !== undefined) {
+ logger.write(MODULE_NAME, "[INFO] getTextFile -> onFileReceived -> Response from Minio received.");
+ logger.write(MODULE_NAME, "[INFO] getTextFile -> onFileReceived -> err = " + JSON.stringify(err));
+ }
+
+ if (LOG_FILE_CONTENT === true && logger !== undefined) {
+ logger.write(MODULE_NAME, "[INFO] getTextFile -> onFileReceived -> response = " + JSON.stringify(response));
+ logger.write(MODULE_NAME, "[INFO] getTextFile -> onFileReceived -> text = " + text);
+ }
+
+ /* Console logging */
+ console.log(MODULE_NAME, "[INFO] 'getTextFile' -> onFileReceived -> File read from MINIO -> File = " + pFolderPath + "/" + pFileName);
+
+ if (err) {
+ console.log(MODULE_NAME, "[WARN] 'getTextFile' -> onFileReceived -> File read from MINIO -> err = " + err.message);
+ }
+
+ if (err) {
+
+ if (ERROR_LOG === true && logger !== undefined && err.code !== 'BlobNotFound') {
+ logger.write(MODULE_NAME, "[ERROR] getTextFile -> onFileReceived -> Error trying to get this file.");
+ logger.write(MODULE_NAME, "[ERROR] getTextFile -> onFileReceived -> containerName = " + containerName);
+ logger.write(MODULE_NAME, "[ERROR] getTextFile -> onFileReceived -> pFolderPath = " + pFolderPath);
+ logger.write(MODULE_NAME, "[ERROR] getTextFile -> onFileReceived -> pFileName = " + pFileName);
+ logger.write(MODULE_NAME, "[ERROR] getTextFile -> onFileReceived -> err.code = " + err.code);
+ }
+
+ if (
+ err.code === 'ECONNRESET' ||
+ err.code === 'ENOTFOUND' ||
+ err.code === 'ESOCKETTIMEDOUT' ||
+ err.code === 'ETIMEDOUT' ||
+ err.code === 'ECONNREFUSED' ||
+ err.code === 'EADDRINUSE' ||
+ err.code === 'EAI_AGAIN' ||
+ err.code === 'AuthenticationFailed' ||
+ err.code === 'OperationTimedOut' ||
+ err.code === 'ServerBusy'
+ ) {
+
+ setTimeout(secondTry, SECOND_TRY_WAIT_TIME);
+ return;
+
+ function secondTry() {
+
+ try {
+
+ logger.write(MODULE_NAME, "[INFO] getTextFile -> onFileReceived -> secondTry -> Retrying to get the file.");
+
+ minioClient.getObject(containerName, pFolderPath + "/" + pFileName, function (err, dataStream) {
+ let data = '';
+
+ if (err) {
+ onSecondTry(err, null, "Error retrieving file " + textFilename + " from bucket " + bucketName);
+ return
+ }
+ dataStream.on('data', function (chunk) {
+ data += chunk
+ })
+ dataStream.on('end', function () {
+ onSecondTry(null, data, "Data retrieved.");
+ })
+ dataStream.on('error', function (err) {
+ onSecondTry(err, null, "Error on data stream while retrieving file " + textFilename + " from bucket " + bucketName);
+ })
+ })
+
+ function onSecondTry(err, text, response) {
+
+ try {
+
+ if (err) {
+ if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] getTextFile -> onFileReceived -> secondTry -> File not retrieved. Giving Up."); }
+
+ if (ERROR_LOG === true && logger !== undefined) {
+ logger.write(MODULE_NAME, "[ERROR] getTextFile -> onFileReceived -> secondTry -> containerName = " + containerName);
+ logger.write(MODULE_NAME, "[ERROR] getTextFile -> onFileReceived -> secondTry -> pFolderPath = " + pFolderPath);
+ logger.write(MODULE_NAME, "[ERROR] getTextFile -> onFileReceived -> secondTry -> pFileName = " + pFileName);
+ logger.write(MODULE_NAME, "[ERROR] getTextFile -> onFileReceived -> secondTry -> err.code = " + err.code);
+ }
+
+ callBackFunction(global.DEFAULT_RETRY_RESPONSE);
+ } else {
+ logger.write(MODULE_NAME, "[INFO] getTextFile -> onFileReceived -> secondTry -> File succesfully retrieved on second try.");
+ callBackFunction(global.DEFAULT_OK_RESPONSE, text);
+ }
+ }
+ catch (err) {
+ if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] 'getTextFile' -> onFileReceived -> secondTry -> onSecondTry -> err = " + err.message); }
+ callBackFunction(global.DEFAULT_FAIL_RESPONSE);
+ }
+ }
+ }
+ catch (err) {
+ if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] 'getTextFile' -> onFileReceived -> secondTry -> err = " + err.message); }
+ callBackFunction(global.DEFAULT_FAIL_RESPONSE);
+ }
+ }
+ }
+
+ if (err.code === "NoSuchKey") {
+
+ /* This is how Minio tell us the file does not exist. */
+
+ let customErr = {
+ result: global.CUSTOM_FAIL_RESPONSE.result,
+ message: "File does not exist."
+ };
+
+ logger.write(MODULE_NAME, "[WARN] getTextFile -> onFileReceived -> Custom Response -> message = " + customErr.message);
+ logger.write(MODULE_NAME, "[WARN] getTextFile -> containerName = " + containerName);
+ logger.write(MODULE_NAME, "[WARN] getTextFile -> pFolderPath = " + pFolderPath);
+ logger.write(MODULE_NAME, "[WARN] getTextFile -> pFileName = " + pFileName);
+
+ callBackFunction(customErr);
+ return;
+
+ }
+
+ if (err.code === "ParentNotFound") {
+
+ /* This is how Minio tell us the folder where the file was supposed to be does not exist. We map this to our own response. */
+
+ let customErr = {
+ result: global.CUSTOM_FAIL_RESPONSE.result,
+ message: "Folder does not exist."
+ };
+
+ logger.write(MODULE_NAME, "[WARN] getTextFile -> onFileReceived -> Custom Response -> message = " + customErr.message);
+ logger.write(MODULE_NAME, "[WARN] getTextFile -> containerName = " + containerName);
+ logger.write(MODULE_NAME, "[WARN] getTextFile -> pFolderPath = " + pFolderPath);
+ logger.write(MODULE_NAME, "[WARN] getTextFile -> pFileName = " + pFileName);
+
+ callBackFunction(customErr);
+ return;
+
+ }
+
+ if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] getTextFile -> onFileCreated -> err = " + JSON.stringify(err)); }
+ if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] getTextFile -> onFileCreated -> response = " + JSON.stringify(response)); }
+
+ if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] getTextFile -> onFileReceived -> Dont know what to do here. Cancelling operation. "); }
+ callBackFunction(global.DEFAULT_FAIL_RESPONSE);
+
+ } else {
+ if (FULL_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[INFO] getTextFile -> onFileReceived -> File retrieved."); }
+ callBackFunction(global.DEFAULT_OK_RESPONSE, text);
+ }
+ }
+ catch (err) {
+ if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] 'getTextFile' -> onFileReceived -> err = " + err.message); }
+ callBackFunction(global.DEFAULT_FAIL_RESPONSE);
+ }
+ }
+ }
+ catch (err) {
+ if (ERROR_LOG === true && logger !== undefined) { logger.write(MODULE_NAME, "[ERROR] 'getTextFile' -> err = " + err.message); }
+ callBackFunction(global.DEFAULT_FAIL_RESPONSE);
+ }
+ }
+
+};
\ No newline at end of file
diff --git a/Project.njsproj b/Project.njsproj
index 2fe8ff0cf..fe4c94830 100644
--- a/Project.njsproj
+++ b/Project.njsproj
@@ -33,12 +33,18 @@
Code
+
+ Code
+
Code
Code
+
+ Code
+
Code
diff --git a/README.md b/README.md
index 20138c17f..7e298d0e2 100644
--- a/README.md
+++ b/README.md
@@ -1,28 +1,24 @@
# Clone Executor
-Whithin the Superalgos project, we have the concept of Financial Beings, which are autonomous agents that have a financial life. These FBs entities have a master (imagine a class in programming) and clones (imagine an instance of a class running). The master is the one who aquires reputation after competitions. Every time we need to do a backtest, live trading or participating in a competition, a clone is extracted from the master and is put to run, either in backtest mode, live trading mode or competition mode. The clone lifespan is contrained by the purpose it was created. For instance, a clone created for a competition will live only during the period of such competition.
+Whithin the Superalgos project, we have the concept of Financial Beings, which are autonomous agents that have a financial life. These FBs entities have a master (imagine a class in programming) and clones (imagine an instance of a class running). The master is the one who aquires reputation after competitions. Every time we need to do a backtest, live trading or participating in a competition, a clone is extracted from the master and is put to run, either in backtest mode, live trading mode or competition mode. The clone lifespan is constrained by the purpose it was created. For instance, a clone created for a competition will live only during the period of such competition.
The software needed to execute these clones is the Clone Executor.
-## About the Superalgos Project
+## Installation
-Superalgos is built and maintained by the Superalgos Foundation and its Community.
+To install the Clone Executor plase clone this repo and:
-Our mission is to enable the fast-paced evolution of crypto trading bots within the context of trading bots competitions.
+```
+npm install
+```
-The project hosts competitions in which multidisciplinary teams (developers, traders, analysts, etc) create open source bots, a class of which end up competing against each other. Just like with any other open source project, developers are free to fork any bot's source code to add their own innovations. Forked bots then compete with the original ones, sparking a fierce around-the-clock evolutionary competition.
+Then, ask for the .ENV and config files to the Core Team (This is a temporary measure until we pack everything into a Superalgos Node).
-Both the AAPlatform and AA Bots are programed in JavaScript.
+You can use then the included visual studio solution to start debugging right away, or:
-## Get Involved
-
-If you are interested in coding your own crypto trading bots and eventually participate in our competitions, this is how you can get started:
-
-* [First Closed Doors Competition Documentation](https://github.com/AAArena/First-Closed-Doors-Competition/blob/master/README.md).
-
+```
+node.exe Run.js
+```
## Copyright and License Notice
diff --git a/package-lock.json b/package-lock.json
index e03f7e3cd..05620355c 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -7,23 +7,23 @@
"@superalgos/exchangegateway": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/@superalgos/exchangegateway/-/exchangegateway-0.0.1.tgz",
- "integrity": "sha512-x1u+yOwcADT4741Zmm6z3fk580JmP13FlebpUK0uw6fJ5B77DolqwwIi7Tvzk9ipJVB6IVejcqsgndeuumx8Hw==",
+ "integrity": "sha1-0qGsVhypbaiG4oSWWTp7aQGpMCM=",
"requires": {
- "apollo-boost": "^0.1.16",
- "assert": "^1.4.1",
- "axios": "^0.18.0",
- "azure-storage": "^2.8.2",
- "dotenv": "^6.0.0",
- "graphql": "^14.0.2",
- "jsonwebtoken": "^8.4.0",
- "lodash": "^4.17.11",
- "nodemailer": "^4.6.8",
- "nonce": "^1.0.4",
- "querystring": "^0.2.0",
- "retry": "^0.12.0",
- "superagent": "^5.0.2",
- "underscore": "^1.9.1",
- "winston": "^3.1.0"
+ "apollo-boost": "0.1.16",
+ "assert": "1.4.1",
+ "axios": "0.18.0",
+ "azure-storage": "2.10.2",
+ "dotenv": "6.2.0",
+ "graphql": "14.0.2",
+ "jsonwebtoken": "8.4.0",
+ "lodash": "4.17.11",
+ "nodemailer": "4.6.8",
+ "nonce": "1.0.4",
+ "querystring": "0.2.0",
+ "retry": "0.12.0",
+ "superagent": "5.0.2",
+ "underscore": "1.9.1",
+ "winston": "3.1.0"
}
},
"@superalgos/mqservice": {
@@ -31,8 +31,8 @@
"resolved": "https://registry.npmjs.org/@superalgos/mqservice/-/mqservice-0.0.14.tgz",
"integrity": "sha512-igdPBZ50FWoXRP29b+2p3Wi4qN01SEnrH7kjT3xG5MqaVXWJIMdNSoopIkK5TzhIZeaFTBH2J+gIeyJUnzREoQ==",
"requires": {
- "chai": "^4.2.0",
- "mocha": "^6.0.2"
+ "chai": "4.2.0",
+ "mocha": "6.0.2"
}
},
"@types/async": {
@@ -51,16 +51,16 @@
"resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
"integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
"requires": {
- "co": "^4.6.0",
- "fast-deep-equal": "^1.0.0",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.3.0"
+ "co": "4.6.0",
+ "fast-deep-equal": "1.1.0",
+ "fast-json-stable-stringify": "2.0.0",
+ "json-schema-traverse": "0.3.1"
}
},
"ansi-colors": {
"version": "3.2.3",
"resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz",
- "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw=="
+ "integrity": "sha1-V9NbhoboUeLMBMQD8cACA5dqGBM="
},
"ansi-regex": {
"version": "3.0.0",
@@ -70,9 +70,9 @@
"ansi-styles": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=",
"requires": {
- "color-convert": "^1.9.0"
+ "color-convert": "1.9.3"
}
},
"apollo-boost": {
@@ -80,14 +80,14 @@
"resolved": "https://registry.npmjs.org/apollo-boost/-/apollo-boost-0.1.16.tgz",
"integrity": "sha512-ppnQr90n2cn0ZMveEbqxW6NxmskIpThiLziLlRpRLy4keoAICg1NZecxJQmeaBLMtyhf5UholAjpS2SLmEJeHg==",
"requires": {
- "apollo-cache": "^1.1.17",
- "apollo-cache-inmemory": "^1.2.10",
- "apollo-client": "^2.4.2",
- "apollo-link": "^1.0.6",
- "apollo-link-error": "^1.0.3",
- "apollo-link-http": "^1.3.1",
- "apollo-link-state": "^0.4.0",
- "graphql-tag": "^2.4.2"
+ "apollo-cache": "1.1.17",
+ "apollo-cache-inmemory": "1.2.10",
+ "apollo-client": "2.4.2",
+ "apollo-link": "1.2.3",
+ "apollo-link-error": "1.1.1",
+ "apollo-link-http": "1.5.5",
+ "apollo-link-state": "0.4.2",
+ "graphql-tag": "2.10.0"
}
},
"apollo-cache": {
@@ -95,7 +95,7 @@
"resolved": "https://registry.npmjs.org/apollo-cache/-/apollo-cache-1.1.17.tgz",
"integrity": "sha512-7sp24n2HZO4vXgTaKNomLyIfGxG4gDdDkBB0jkRzRi7HhnKmfwhiF/RCiKNbgLdrPX151INdls0KwIVliD0dHQ==",
"requires": {
- "apollo-utilities": "^1.0.21"
+ "apollo-utilities": "1.0.21"
}
},
"apollo-cache-inmemory": {
@@ -103,9 +103,9 @@
"resolved": "https://registry.npmjs.org/apollo-cache-inmemory/-/apollo-cache-inmemory-1.2.10.tgz",
"integrity": "sha512-eBusPFVtYIuo+PIfJdAwUCQ4cs7AJ4mB7sTdXxNQCXToYw8mzE6EfHnV37kdVfBXSaa82BzE2rb/YUq/duuamw==",
"requires": {
- "apollo-cache": "^1.1.17",
- "apollo-utilities": "^1.0.21",
- "graphql-anywhere": "^4.1.19"
+ "apollo-cache": "1.1.17",
+ "apollo-utilities": "1.0.21",
+ "graphql-anywhere": "4.1.19"
}
},
"apollo-client": {
@@ -114,13 +114,13 @@
"integrity": "sha512-g1z23umaVSoKLj9xNl0aAnk2KBF4JeBi7MeKFc9CGTixH7TkqeQUQtxcjrC7j2h4KmDbuhOAHOFUGf8YshN+ag==",
"requires": {
"@types/async": "2.0.49",
- "@types/zen-observable": "^0.8.0",
+ "@types/zen-observable": "0.8.0",
"apollo-cache": "1.1.17",
- "apollo-link": "^1.0.0",
- "apollo-link-dedup": "^1.0.0",
+ "apollo-link": "1.2.3",
+ "apollo-link-dedup": "1.0.10",
"apollo-utilities": "1.0.21",
- "symbol-observable": "^1.0.2",
- "zen-observable": "^0.8.0"
+ "symbol-observable": "1.2.0",
+ "zen-observable": "0.8.9"
}
},
"apollo-link": {
@@ -128,8 +128,8 @@
"resolved": "https://registry.npmjs.org/apollo-link/-/apollo-link-1.2.3.tgz",
"integrity": "sha512-iL9yS2OfxYhigme5bpTbmRyC+Htt6tyo2fRMHT3K1XRL/C5IQDDz37OjpPy4ndx7WInSvfSZaaOTKFja9VWqSw==",
"requires": {
- "apollo-utilities": "^1.0.0",
- "zen-observable-ts": "^0.8.10"
+ "apollo-utilities": "1.0.21",
+ "zen-observable-ts": "0.8.10"
}
},
"apollo-link-dedup": {
@@ -137,7 +137,7 @@
"resolved": "https://registry.npmjs.org/apollo-link-dedup/-/apollo-link-dedup-1.0.10.tgz",
"integrity": "sha512-tpUI9lMZsidxdNygSY1FxflXEkUZnvKRkMUsXXuQUNoSLeNtEvUX7QtKRAl4k9ubLl8JKKc9X3L3onAFeGTK8w==",
"requires": {
- "apollo-link": "^1.2.3"
+ "apollo-link": "1.2.3"
}
},
"apollo-link-error": {
@@ -145,7 +145,7 @@
"resolved": "https://registry.npmjs.org/apollo-link-error/-/apollo-link-error-1.1.1.tgz",
"integrity": "sha512-/yPcaQWcBdB94vpJ4FsiCJt1dAGGRm+6Tsj3wKwP+72taBH+UsGRQQZk7U/1cpZwl1yqhHZn+ZNhVOebpPcIlA==",
"requires": {
- "apollo-link": "^1.2.3"
+ "apollo-link": "1.2.3"
}
},
"apollo-link-http": {
@@ -153,8 +153,8 @@
"resolved": "https://registry.npmjs.org/apollo-link-http/-/apollo-link-http-1.5.5.tgz",
"integrity": "sha512-C5N6N/mRwmepvtzO27dgMEU3MMtRKSqcljBkYNZmWwH11BxkUQ5imBLPM3V4QJXNE7NFuAQAB5PeUd4ligivTQ==",
"requires": {
- "apollo-link": "^1.2.3",
- "apollo-link-http-common": "^0.2.5"
+ "apollo-link": "1.2.3",
+ "apollo-link-http-common": "0.2.5"
}
},
"apollo-link-http-common": {
@@ -162,7 +162,7 @@
"resolved": "https://registry.npmjs.org/apollo-link-http-common/-/apollo-link-http-common-0.2.5.tgz",
"integrity": "sha512-6FV1wr5AqAyJ64Em1dq5hhGgiyxZE383VJQmhIoDVc3MyNcFL92TkhxREOs4rnH2a9X2iJMko7nodHSGLC6d8w==",
"requires": {
- "apollo-link": "^1.2.3"
+ "apollo-link": "1.2.3"
}
},
"apollo-link-state": {
@@ -170,8 +170,8 @@
"resolved": "https://registry.npmjs.org/apollo-link-state/-/apollo-link-state-0.4.2.tgz",
"integrity": "sha512-xMPcAfuiPVYXaLwC6oJFIZrKgV3GmdO31Ag2eufRoXpvT0AfJZjdaPB4450Nu9TslHRePN9A3quxNueILlQxlw==",
"requires": {
- "apollo-utilities": "^1.0.8",
- "graphql-anywhere": "^4.1.0-alpha.0"
+ "apollo-utilities": "1.0.21",
+ "graphql-anywhere": "4.1.19"
}
},
"apollo-utilities": {
@@ -179,16 +179,16 @@
"resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.0.21.tgz",
"integrity": "sha512-ZcxELlEl+sDCYBgEMdNXJAsZtRVm8wk4HIA58bMsqYfd1DSAJQEtZ93F0GZgYNAGy3QyaoBeZtbb0/01++G8JQ==",
"requires": {
- "fast-json-stable-stringify": "^2.0.0",
- "fclone": "^1.0.11"
+ "fast-json-stable-stringify": "2.0.0",
+ "fclone": "1.0.11"
}
},
"argparse": {
"version": "1.0.10",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=",
"requires": {
- "sprintf-js": "~1.0.2"
+ "sprintf-js": "1.0.3"
}
},
"arr-diff": {
@@ -199,7 +199,7 @@
"arr-flatten": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
- "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg=="
+ "integrity": "sha1-NgSLv/TntH4TZkQxbJlmnqWukfE="
},
"arr-union": {
"version": "3.1.0",
@@ -216,7 +216,7 @@
"resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
"integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
"requires": {
- "safer-buffer": "~2.1.0"
+ "safer-buffer": "2.1.2"
}
},
"assert": {
@@ -235,7 +235,7 @@
"assertion-error": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
- "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw=="
+ "integrity": "sha1-5gtrDo8wG9l+U3UhW9pAbIURjAs="
},
"assign-symbols": {
"version": "1.0.0",
@@ -247,7 +247,7 @@
"resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz",
"integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==",
"requires": {
- "lodash": "^4.17.10"
+ "lodash": "4.17.11"
}
},
"asynckit": {
@@ -258,7 +258,7 @@
"atob": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
- "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg=="
+ "integrity": "sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k="
},
"aws-sign2": {
"version": "0.7.0",
@@ -275,8 +275,8 @@
"resolved": "https://registry.npmjs.org/axios/-/axios-0.18.0.tgz",
"integrity": "sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI=",
"requires": {
- "follow-redirects": "^1.3.0",
- "is-buffer": "^1.1.5"
+ "follow-redirects": "1.6.1",
+ "is-buffer": "1.1.6"
}
},
"azure-storage": {
@@ -284,17 +284,17 @@
"resolved": "https://registry.npmjs.org/azure-storage/-/azure-storage-2.10.2.tgz",
"integrity": "sha512-pOyGPya9+NDpAfm5YcFfklo57HfjDbYLXxs4lomPwvRxmb0Di/A+a+RkUmEFzaQ8S13CqxK40bRRB0sjj2ZQxA==",
"requires": {
- "browserify-mime": "~1.2.9",
- "extend": "^3.0.2",
+ "browserify-mime": "1.2.9",
+ "extend": "3.0.2",
"json-edm-parser": "0.1.2",
"md5.js": "1.3.4",
- "readable-stream": "~2.0.0",
- "request": "^2.86.0",
- "underscore": "~1.8.3",
- "uuid": "^3.0.0",
- "validator": "~9.4.1",
+ "readable-stream": "2.0.6",
+ "request": "2.88.0",
+ "underscore": "1.8.3",
+ "uuid": "3.3.2",
+ "validator": "9.4.1",
"xml2js": "0.2.8",
- "xmlbuilder": "^9.0.7"
+ "xmlbuilder": "9.0.7"
},
"dependencies": {
"underscore": {
@@ -312,15 +312,15 @@
"base": {
"version": "0.11.2",
"resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
- "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
+ "integrity": "sha1-e95c7RRbbVUakNuH+DxVi060io8=",
"requires": {
- "cache-base": "^1.0.1",
- "class-utils": "^0.3.5",
- "component-emitter": "^1.2.1",
- "define-property": "^1.0.0",
- "isobject": "^3.0.1",
- "mixin-deep": "^1.2.0",
- "pascalcase": "^0.1.1"
+ "cache-base": "1.0.1",
+ "class-utils": "0.3.6",
+ "component-emitter": "1.2.1",
+ "define-property": "1.0.0",
+ "isobject": "3.0.1",
+ "mixin-deep": "1.3.1",
+ "pascalcase": "0.1.1"
},
"dependencies": {
"define-property": {
@@ -328,33 +328,33 @@
"resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
"integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
"requires": {
- "is-descriptor": "^1.0.0"
+ "is-descriptor": "1.0.2"
}
},
"is-accessor-descriptor": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
- "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=",
"requires": {
- "kind-of": "^6.0.0"
+ "kind-of": "6.0.2"
}
},
"is-data-descriptor": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
- "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=",
"requires": {
- "kind-of": "^6.0.0"
+ "kind-of": "6.0.2"
}
},
"is-descriptor": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
- "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=",
"requires": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
+ "is-accessor-descriptor": "1.0.0",
+ "is-data-descriptor": "1.0.0",
+ "kind-of": "6.0.2"
}
}
}
@@ -365,33 +365,43 @@
"integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
"optional": true,
"requires": {
- "tweetnacl": "^0.14.3"
+ "tweetnacl": "0.14.5"
+ }
+ },
+ "block-stream2": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/block-stream2/-/block-stream2-1.1.0.tgz",
+ "integrity": "sha1-xzjjqRupd+u14f70MeE8oR2GOeI=",
+ "requires": {
+ "defined": "1.0.0",
+ "inherits": "2.0.1",
+ "readable-stream": "2.0.6"
}
},
"brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=",
"requires": {
- "balanced-match": "^1.0.0",
+ "balanced-match": "1.0.0",
"concat-map": "0.0.1"
}
},
"braces": {
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
- "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+ "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=",
"requires": {
- "arr-flatten": "^1.1.0",
- "array-unique": "^0.3.2",
- "extend-shallow": "^2.0.1",
- "fill-range": "^4.0.0",
- "isobject": "^3.0.1",
- "repeat-element": "^1.1.2",
- "snapdragon": "^0.8.1",
- "snapdragon-node": "^2.0.1",
- "split-string": "^3.0.2",
- "to-regex": "^3.0.1"
+ "arr-flatten": "1.1.0",
+ "array-unique": "0.3.2",
+ "extend-shallow": "2.0.1",
+ "fill-range": "4.0.0",
+ "isobject": "3.0.1",
+ "repeat-element": "1.1.3",
+ "snapdragon": "0.8.2",
+ "snapdragon-node": "2.1.1",
+ "split-string": "3.1.0",
+ "to-regex": "3.0.2"
},
"dependencies": {
"extend-shallow": {
@@ -399,7 +409,7 @@
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
"requires": {
- "is-extendable": "^0.1.0"
+ "is-extendable": "0.1.1"
}
}
}
@@ -407,7 +417,7 @@
"browser-stdout": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
- "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw=="
+ "integrity": "sha1-uqVZ7hTO1zRSIputcyZGfGH6vWA="
},
"browserify-mime": {
"version": "1.2.9",
@@ -419,26 +429,31 @@
"resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
"integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk="
},
+ "buffer-from": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
+ "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="
+ },
"cache-base": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
- "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
+ "integrity": "sha1-Cn9GQWgxyLZi7jb+TnxZ129marI=",
"requires": {
- "collection-visit": "^1.0.0",
- "component-emitter": "^1.2.1",
- "get-value": "^2.0.6",
- "has-value": "^1.0.0",
- "isobject": "^3.0.1",
- "set-value": "^2.0.0",
- "to-object-path": "^0.3.0",
- "union-value": "^1.0.0",
- "unset-value": "^1.0.0"
+ "collection-visit": "1.0.0",
+ "component-emitter": "1.2.1",
+ "get-value": "2.0.6",
+ "has-value": "1.0.0",
+ "isobject": "3.0.1",
+ "set-value": "2.0.0",
+ "to-object-path": "0.3.0",
+ "union-value": "1.0.0",
+ "unset-value": "1.0.0"
}
},
"camelcase": {
"version": "5.3.1",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
- "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
+ "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA="
},
"caseless": {
"version": "0.12.0",
@@ -448,32 +463,32 @@
"chai": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz",
- "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==",
+ "integrity": "sha1-dgqnLPION5XoSxKHfODoNzeqKeU=",
"requires": {
- "assertion-error": "^1.1.0",
- "check-error": "^1.0.2",
- "deep-eql": "^3.0.1",
- "get-func-name": "^2.0.0",
- "pathval": "^1.1.0",
- "type-detect": "^4.0.5"
+ "assertion-error": "1.1.0",
+ "check-error": "1.0.2",
+ "deep-eql": "3.0.1",
+ "get-func-name": "2.0.0",
+ "pathval": "1.1.0",
+ "type-detect": "4.0.8"
}
},
"chalk": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=",
"requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
+ "ansi-styles": "3.2.1",
+ "escape-string-regexp": "1.0.5",
+ "supports-color": "5.5.0"
},
"dependencies": {
"supports-color": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=",
"requires": {
- "has-flag": "^3.0.0"
+ "has-flag": "3.0.0"
}
}
}
@@ -486,12 +501,12 @@
"class-utils": {
"version": "0.3.6",
"resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
- "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
+ "integrity": "sha1-+TNprouafOAv1B+q0MqDAzGQxGM=",
"requires": {
- "arr-union": "^3.1.0",
- "define-property": "^0.2.5",
- "isobject": "^3.0.0",
- "static-extend": "^0.1.1"
+ "arr-union": "3.1.0",
+ "define-property": "0.2.5",
+ "isobject": "3.0.1",
+ "static-extend": "0.1.2"
},
"dependencies": {
"define-property": {
@@ -499,7 +514,7 @@
"resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
"integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
"requires": {
- "is-descriptor": "^0.1.0"
+ "is-descriptor": "0.1.6"
}
}
}
@@ -507,11 +522,11 @@
"cliui": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
- "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==",
+ "integrity": "sha1-NIQi2+gtgAswIu709qwQvy5NG0k=",
"requires": {
- "string-width": "^2.1.1",
- "strip-ansi": "^4.0.0",
- "wrap-ansi": "^2.0.0"
+ "string-width": "2.1.1",
+ "strip-ansi": "4.0.0",
+ "wrap-ansi": "2.1.0"
}
},
"co": {
@@ -529,8 +544,8 @@
"resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
"integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
"requires": {
- "map-visit": "^1.0.0",
- "object-visit": "^1.0.0"
+ "map-visit": "1.0.0",
+ "object-visit": "1.0.1"
}
},
"color": {
@@ -538,8 +553,8 @@
"resolved": "https://registry.npmjs.org/color/-/color-3.0.0.tgz",
"integrity": "sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w==",
"requires": {
- "color-convert": "^1.9.1",
- "color-string": "^1.5.2"
+ "color-convert": "1.9.3",
+ "color-string": "1.5.3"
}
},
"color-convert": {
@@ -560,8 +575,8 @@
"resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz",
"integrity": "sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==",
"requires": {
- "color-name": "^1.0.0",
- "simple-swizzle": "^0.2.2"
+ "color-name": "1.1.3",
+ "simple-swizzle": "0.2.2"
}
},
"colornames": {
@@ -579,8 +594,8 @@
"resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.1.tgz",
"integrity": "sha512-pI3btWyiuz7Ken0BWh9Elzsmv2bM9AhA7psXib4anUXy/orfZ/E0MbQwhSOG/9L8hLlalqrU0UhOuqxW1YjmVw==",
"requires": {
- "color": "3.0.x",
- "text-hex": "1.0.x"
+ "color": "3.0.0",
+ "text-hex": "1.0.0"
}
},
"combined-stream": {
@@ -588,7 +603,7 @@
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz",
"integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==",
"requires": {
- "delayed-stream": "~1.0.0"
+ "delayed-stream": "1.0.0"
}
},
"component-emitter": {
@@ -601,6 +616,51 @@
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
},
+ "concat-stream": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
+ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
+ "requires": {
+ "buffer-from": "1.1.1",
+ "inherits": "2.0.3",
+ "readable-stream": "2.3.6",
+ "typedarray": "0.0.6"
+ },
+ "dependencies": {
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
+ },
+ "process-nextick-args": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
+ "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
+ },
+ "readable-stream": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
+ "requires": {
+ "core-util-is": "1.0.2",
+ "inherits": "2.0.3",
+ "isarray": "1.0.0",
+ "process-nextick-args": "2.0.0",
+ "safe-buffer": "5.1.2",
+ "string_decoder": "1.1.1",
+ "util-deprecate": "1.0.2"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "requires": {
+ "safe-buffer": "5.1.2"
+ }
+ }
+ }
+ },
"cookiejar": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz",
@@ -619,19 +679,19 @@
"cross-spawn": {
"version": "6.0.5",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
- "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=",
"requires": {
- "nice-try": "^1.0.4",
- "path-key": "^2.0.1",
- "semver": "^5.5.0",
- "shebang-command": "^1.2.0",
- "which": "^1.2.9"
+ "nice-try": "1.0.5",
+ "path-key": "2.0.1",
+ "semver": "5.7.0",
+ "shebang-command": "1.2.0",
+ "which": "1.3.1"
},
"dependencies": {
"semver": {
"version": "5.7.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
- "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA=="
+ "integrity": "sha1-eQp89v6lRZuslhELKbYEEtyP+Ws="
}
}
},
@@ -640,7 +700,7 @@
"resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
"integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
"requires": {
- "assert-plus": "^1.0.0"
+ "assert-plus": "1.0.0"
}
},
"debug": {
@@ -664,56 +724,61 @@
"deep-eql": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz",
- "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==",
+ "integrity": "sha1-38lARACtHI/gI+faHfHBR8S0RN8=",
"requires": {
- "type-detect": "^4.0.0"
+ "type-detect": "4.0.8"
}
},
"define-properties": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
- "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
+ "integrity": "sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE=",
"requires": {
- "object-keys": "^1.0.12"
+ "object-keys": "1.1.0"
}
},
"define-property": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
- "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
+ "integrity": "sha1-1Flono1lS6d+AqgX+HENcCyxbp0=",
"requires": {
- "is-descriptor": "^1.0.2",
- "isobject": "^3.0.1"
+ "is-descriptor": "1.0.2",
+ "isobject": "3.0.1"
},
"dependencies": {
"is-accessor-descriptor": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
- "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=",
"requires": {
- "kind-of": "^6.0.0"
+ "kind-of": "6.0.2"
}
},
"is-data-descriptor": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
- "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=",
"requires": {
- "kind-of": "^6.0.0"
+ "kind-of": "6.0.2"
}
},
"is-descriptor": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
- "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=",
"requires": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
+ "is-accessor-descriptor": "1.0.0",
+ "is-data-descriptor": "1.0.0",
+ "kind-of": "6.0.2"
}
}
}
},
+ "defined": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
+ "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM="
+ },
"delayed-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
@@ -729,15 +794,15 @@
"resolved": "https://registry.npmjs.org/diagnostics/-/diagnostics-1.1.1.tgz",
"integrity": "sha512-8wn1PmdunLJ9Tqbx+Fx/ZEuHfJf4NKSN2ZBj7SJC/OWRWha843+WsTjqMe1B5E3p28jqBlp+mJ2fPVxPyNgYKQ==",
"requires": {
- "colorspace": "1.1.x",
- "enabled": "1.0.x",
- "kuler": "1.0.x"
+ "colorspace": "1.1.1",
+ "enabled": "1.0.2",
+ "kuler": "1.0.1"
}
},
"diff": {
"version": "3.5.0",
"resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
- "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA=="
+ "integrity": "sha1-gAwN0eCov7yVg1wgKtIg/jF+WhI="
},
"dotenv": {
"version": "6.2.0",
@@ -750,8 +815,8 @@
"integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
"optional": true,
"requires": {
- "jsbn": "~0.1.0",
- "safer-buffer": "^2.1.0"
+ "jsbn": "0.1.1",
+ "safer-buffer": "2.1.2"
}
},
"ecdsa-sig-formatter": {
@@ -759,7 +824,7 @@
"resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.10.tgz",
"integrity": "sha1-HFlQAPBKiJffuFAAiSoPTDOvhsM=",
"requires": {
- "safe-buffer": "^5.0.1"
+ "safe-buffer": "5.1.2"
}
},
"enabled": {
@@ -767,15 +832,15 @@
"resolved": "https://registry.npmjs.org/enabled/-/enabled-1.0.2.tgz",
"integrity": "sha1-ll9lE9LC0cX0ZStkouM5ZGf8L5M=",
"requires": {
- "env-variable": "0.0.x"
+ "env-variable": "0.0.5"
}
},
"end-of-stream": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
- "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==",
+ "integrity": "sha1-7SljTRm6ukY7bOa4CjchPqtx7EM=",
"requires": {
- "once": "^1.4.0"
+ "once": "1.4.0"
}
},
"env-variable": {
@@ -786,26 +851,31 @@
"es-abstract": {
"version": "1.13.0",
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz",
- "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==",
+ "integrity": "sha1-rIYUX91QmdjdSVWMy6Lq+biOJOk=",
"requires": {
- "es-to-primitive": "^1.2.0",
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "is-callable": "^1.1.4",
- "is-regex": "^1.0.4",
- "object-keys": "^1.0.12"
+ "es-to-primitive": "1.2.0",
+ "function-bind": "1.1.1",
+ "has": "1.0.3",
+ "is-callable": "1.1.4",
+ "is-regex": "1.0.4",
+ "object-keys": "1.1.0"
}
},
"es-to-primitive": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz",
- "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==",
+ "integrity": "sha1-7fckeAM0VujdqO8J4ArZZQcH83c=",
"requires": {
- "is-callable": "^1.1.4",
- "is-date-object": "^1.0.1",
- "is-symbol": "^1.0.2"
+ "is-callable": "1.1.4",
+ "is-date-object": "1.0.1",
+ "is-symbol": "1.0.2"
}
},
+ "es6-error": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-2.1.1.tgz",
+ "integrity": "sha1-kThDAexe0cmnJH0RKCRyFvA1R80="
+ },
"escape-string-regexp": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
@@ -814,20 +884,20 @@
"esprima": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
- "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="
+ "integrity": "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE="
},
"execa": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
- "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
+ "integrity": "sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg=",
"requires": {
- "cross-spawn": "^6.0.0",
- "get-stream": "^4.0.0",
- "is-stream": "^1.1.0",
- "npm-run-path": "^2.0.0",
- "p-finally": "^1.0.0",
- "signal-exit": "^3.0.0",
- "strip-eof": "^1.0.0"
+ "cross-spawn": "6.0.5",
+ "get-stream": "4.1.0",
+ "is-stream": "1.1.0",
+ "npm-run-path": "2.0.2",
+ "p-finally": "1.0.0",
+ "signal-exit": "3.0.2",
+ "strip-eof": "1.0.0"
}
},
"expand-brackets": {
@@ -835,19 +905,19 @@
"resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
"integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
"requires": {
- "debug": "^2.3.3",
- "define-property": "^0.2.5",
- "extend-shallow": "^2.0.1",
- "posix-character-classes": "^0.1.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
+ "debug": "2.6.9",
+ "define-property": "0.2.5",
+ "extend-shallow": "2.0.1",
+ "posix-character-classes": "0.1.1",
+ "regex-not": "1.0.2",
+ "snapdragon": "0.8.2",
+ "to-regex": "3.0.2"
},
"dependencies": {
"debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
"requires": {
"ms": "2.0.0"
}
@@ -857,7 +927,7 @@
"resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
"integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
"requires": {
- "is-descriptor": "^0.1.0"
+ "is-descriptor": "0.1.6"
}
},
"extend-shallow": {
@@ -865,7 +935,7 @@
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
"requires": {
- "is-extendable": "^0.1.0"
+ "is-extendable": "0.1.1"
}
}
}
@@ -875,7 +945,7 @@
"resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz",
"integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=",
"requires": {
- "homedir-polyfill": "^1.0.1"
+ "homedir-polyfill": "1.0.3"
}
},
"extend": {
@@ -888,16 +958,16 @@
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
"integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
"requires": {
- "assign-symbols": "^1.0.0",
- "is-extendable": "^1.0.1"
+ "assign-symbols": "1.0.0",
+ "is-extendable": "1.0.1"
},
"dependencies": {
"is-extendable": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
- "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=",
"requires": {
- "is-plain-object": "^2.0.4"
+ "is-plain-object": "2.0.4"
}
}
}
@@ -905,16 +975,16 @@
"extglob": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
- "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
+ "integrity": "sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=",
"requires": {
- "array-unique": "^0.3.2",
- "define-property": "^1.0.0",
- "expand-brackets": "^2.1.4",
- "extend-shallow": "^2.0.1",
- "fragment-cache": "^0.2.1",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
+ "array-unique": "0.3.2",
+ "define-property": "1.0.0",
+ "expand-brackets": "2.1.4",
+ "extend-shallow": "2.0.1",
+ "fragment-cache": "0.2.1",
+ "regex-not": "1.0.2",
+ "snapdragon": "0.8.2",
+ "to-regex": "3.0.2"
},
"dependencies": {
"define-property": {
@@ -922,7 +992,7 @@
"resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
"integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
"requires": {
- "is-descriptor": "^1.0.0"
+ "is-descriptor": "1.0.2"
}
},
"extend-shallow": {
@@ -930,33 +1000,33 @@
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
"requires": {
- "is-extendable": "^0.1.0"
+ "is-extendable": "0.1.1"
}
},
"is-accessor-descriptor": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
- "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=",
"requires": {
- "kind-of": "^6.0.0"
+ "kind-of": "6.0.2"
}
},
"is-data-descriptor": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
- "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=",
"requires": {
- "kind-of": "^6.0.0"
+ "kind-of": "6.0.2"
}
},
"is-descriptor": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
- "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=",
"requires": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
+ "is-accessor-descriptor": "1.0.0",
+ "is-data-descriptor": "1.0.0",
+ "kind-of": "6.0.2"
}
}
}
@@ -996,10 +1066,10 @@
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
"integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
"requires": {
- "extend-shallow": "^2.0.1",
- "is-number": "^3.0.0",
- "repeat-string": "^1.6.1",
- "to-regex-range": "^2.1.0"
+ "extend-shallow": "2.0.1",
+ "is-number": "3.0.0",
+ "repeat-string": "1.6.1",
+ "to-regex-range": "2.1.1"
},
"dependencies": {
"extend-shallow": {
@@ -1007,7 +1077,7 @@
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
"requires": {
- "is-extendable": "^0.1.0"
+ "is-extendable": "0.1.1"
}
}
}
@@ -1015,9 +1085,9 @@
"find-up": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
- "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=",
"requires": {
- "locate-path": "^3.0.0"
+ "locate-path": "3.0.0"
}
},
"findup-sync": {
@@ -1025,24 +1095,24 @@
"resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz",
"integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=",
"requires": {
- "detect-file": "^1.0.0",
- "is-glob": "^3.1.0",
- "micromatch": "^3.0.4",
- "resolve-dir": "^1.0.1"
+ "detect-file": "1.0.0",
+ "is-glob": "3.1.0",
+ "micromatch": "3.1.10",
+ "resolve-dir": "1.0.1"
}
},
"flat": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz",
- "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==",
+ "integrity": "sha1-CQvsiwXjnLowl0fx1YjwTbr5jbI=",
"requires": {
- "is-buffer": "~2.0.3"
+ "is-buffer": "2.0.3"
},
"dependencies": {
"is-buffer": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz",
- "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw=="
+ "integrity": "sha1-Ts8/z3ScvR5HJonhCaxmJhol5yU="
}
}
},
@@ -1051,7 +1121,7 @@
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.6.1.tgz",
"integrity": "sha512-t2JCjbzxQpWvbhts3l6SH1DKzSrx8a+SsaVf4h6bG4kOXUuPYS/kg2Lr4gQSb7eemaHqJkOThF1BGyjlUkO1GQ==",
"requires": {
- "debug": "=3.1.0"
+ "debug": "3.1.0"
}
},
"for-in": {
@@ -1069,9 +1139,9 @@
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz",
"integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=",
"requires": {
- "asynckit": "^0.4.0",
+ "asynckit": "0.4.0",
"combined-stream": "1.0.6",
- "mime-types": "^2.1.12"
+ "mime-types": "2.1.20"
},
"dependencies": {
"combined-stream": {
@@ -1079,7 +1149,7 @@
"resolved": "http://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz",
"integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=",
"requires": {
- "delayed-stream": "~1.0.0"
+ "delayed-stream": "1.0.0"
}
}
}
@@ -1094,7 +1164,7 @@
"resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
"integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
"requires": {
- "map-cache": "^0.2.2"
+ "map-cache": "0.2.2"
}
},
"fs.realpath": {
@@ -1105,12 +1175,12 @@
"function-bind": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
+ "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0="
},
"get-caller-file": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
- "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w=="
+ "integrity": "sha1-+Xj6TJDR3+f/LWvtoqUV5xO9z0o="
},
"get-func-name": {
"version": "2.0.0",
@@ -1120,9 +1190,9 @@
"get-stream": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
- "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+ "integrity": "sha1-wbJVV189wh1Zv8ec09K0axw6VLU=",
"requires": {
- "pump": "^3.0.0"
+ "pump": "3.0.0"
}
},
"get-value": {
@@ -1135,30 +1205,30 @@
"resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
"integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
"requires": {
- "assert-plus": "^1.0.0"
+ "assert-plus": "1.0.0"
}
},
"glob": {
"version": "7.1.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
- "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
+ "integrity": "sha1-OWCDLT8VdBCDQtr9OmezMsCWnfE=",
"requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
+ "fs.realpath": "1.0.0",
+ "inflight": "1.0.6",
+ "inherits": "2.0.1",
+ "minimatch": "3.0.4",
+ "once": "1.4.0",
+ "path-is-absolute": "1.0.1"
}
},
"global-modules": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz",
- "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==",
+ "integrity": "sha1-bXcPDrUjrHgWTXK15xqIdyZcw+o=",
"requires": {
- "global-prefix": "^1.0.1",
- "is-windows": "^1.0.1",
- "resolve-dir": "^1.0.0"
+ "global-prefix": "1.0.2",
+ "is-windows": "1.0.2",
+ "resolve-dir": "1.0.1"
}
},
"global-prefix": {
@@ -1166,11 +1236,11 @@
"resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz",
"integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=",
"requires": {
- "expand-tilde": "^2.0.2",
- "homedir-polyfill": "^1.0.1",
- "ini": "^1.3.4",
- "is-windows": "^1.0.1",
- "which": "^1.2.14"
+ "expand-tilde": "2.0.2",
+ "homedir-polyfill": "1.0.3",
+ "ini": "1.3.5",
+ "is-windows": "1.0.2",
+ "which": "1.3.1"
}
},
"graphql": {
@@ -1178,7 +1248,7 @@
"resolved": "https://registry.npmjs.org/graphql/-/graphql-14.0.2.tgz",
"integrity": "sha512-gUC4YYsaiSJT1h40krG3J+USGlwhzNTXSb4IOZljn9ag5Tj+RkoXrWp+Kh7WyE3t1NCfab5kzCuxBIvOMERMXw==",
"requires": {
- "iterall": "^1.2.2"
+ "iterall": "1.2.2"
}
},
"graphql-anywhere": {
@@ -1186,7 +1256,7 @@
"resolved": "https://registry.npmjs.org/graphql-anywhere/-/graphql-anywhere-4.1.19.tgz",
"integrity": "sha512-mQlvbECzYPBcgBC9JsdM4v+DSvNmcIP+8Vwr+ij3gktbaLSE0Iza30mztuz40Jlf7ooMs+0emBZucNjLzqz7tA==",
"requires": {
- "apollo-utilities": "^1.0.21"
+ "apollo-utilities": "1.0.21"
}
},
"graphql-tag": {
@@ -1197,7 +1267,7 @@
"growl": {
"version": "1.10.5",
"resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz",
- "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA=="
+ "integrity": "sha1-8nNdwig2dPpnR4sQGBBZNVw2nl4="
},
"har-schema": {
"version": "2.0.0",
@@ -1209,16 +1279,16 @@
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz",
"integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==",
"requires": {
- "ajv": "^5.3.0",
- "har-schema": "^2.0.0"
+ "ajv": "5.5.2",
+ "har-schema": "2.0.0"
}
},
"has": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
- "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=",
"requires": {
- "function-bind": "^1.1.1"
+ "function-bind": "1.1.1"
}
},
"has-flag": {
@@ -1236,9 +1306,9 @@
"resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
"integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
"requires": {
- "get-value": "^2.0.6",
- "has-values": "^1.0.0",
- "isobject": "^3.0.0"
+ "get-value": "2.0.6",
+ "has-values": "1.0.0",
+ "isobject": "3.0.1"
}
},
"has-values": {
@@ -1246,8 +1316,8 @@
"resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
"integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
"requires": {
- "is-number": "^3.0.0",
- "kind-of": "^4.0.0"
+ "is-number": "3.0.0",
+ "kind-of": "4.0.0"
},
"dependencies": {
"kind-of": {
@@ -1255,7 +1325,7 @@
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
"integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
"requires": {
- "is-buffer": "^1.1.5"
+ "is-buffer": "1.1.6"
}
}
}
@@ -1265,21 +1335,21 @@
"resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz",
"integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=",
"requires": {
- "inherits": "^2.0.1",
- "safe-buffer": "^5.0.1"
+ "inherits": "2.0.1",
+ "safe-buffer": "5.1.2"
}
},
"he": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
- "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw=="
+ "integrity": "sha1-hK5l+n6vsWX922FWauFLrwVmTw8="
},
"homedir-polyfill": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz",
- "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==",
+ "integrity": "sha1-dDKYzvTlrz4ZQWH7rcwhUdOgWOg=",
"requires": {
- "parse-passwd": "^1.0.0"
+ "parse-passwd": "1.0.0"
}
},
"http-signature": {
@@ -1287,9 +1357,9 @@
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
"integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
"requires": {
- "assert-plus": "^1.0.0",
- "jsprim": "^1.2.2",
- "sshpk": "^1.7.0"
+ "assert-plus": "1.0.0",
+ "jsprim": "1.4.1",
+ "sshpk": "1.14.2"
}
},
"inflight": {
@@ -1297,8 +1367,8 @@
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
"requires": {
- "once": "^1.3.0",
- "wrappy": "1"
+ "once": "1.4.0",
+ "wrappy": "1.0.2"
}
},
"inherits": {
@@ -1309,19 +1379,19 @@
"ini": {
"version": "1.3.5",
"resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
- "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw=="
+ "integrity": "sha1-7uJfVtscnsYIXgwid4CD9Zar+Sc="
},
"invert-kv": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz",
- "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA=="
+ "integrity": "sha1-c5P1r6Weyf9fZ6J2INEcIm4+7AI="
},
"is-accessor-descriptor": {
"version": "0.1.6",
"resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
"integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
"requires": {
- "kind-of": "^3.0.2"
+ "kind-of": "3.2.2"
},
"dependencies": {
"kind-of": {
@@ -1329,7 +1399,7 @@
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
"requires": {
- "is-buffer": "^1.1.5"
+ "is-buffer": "1.1.6"
}
}
}
@@ -1347,14 +1417,14 @@
"is-callable": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz",
- "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA=="
+ "integrity": "sha1-HhrfIZ4e62hNaR+dagX/DTCiTXU="
},
"is-data-descriptor": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
"integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
"requires": {
- "kind-of": "^3.0.2"
+ "kind-of": "3.2.2"
},
"dependencies": {
"kind-of": {
@@ -1362,7 +1432,7 @@
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
"requires": {
- "is-buffer": "^1.1.5"
+ "is-buffer": "1.1.6"
}
}
}
@@ -1375,17 +1445,17 @@
"is-descriptor": {
"version": "0.1.6",
"resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
- "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=",
"requires": {
- "is-accessor-descriptor": "^0.1.6",
- "is-data-descriptor": "^0.1.4",
- "kind-of": "^5.0.0"
+ "is-accessor-descriptor": "0.1.6",
+ "is-data-descriptor": "0.1.4",
+ "kind-of": "5.1.0"
},
"dependencies": {
"kind-of": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
- "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw=="
+ "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0="
}
}
},
@@ -1409,7 +1479,7 @@
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
"integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
"requires": {
- "is-extglob": "^2.1.0"
+ "is-extglob": "2.1.1"
}
},
"is-number": {
@@ -1417,7 +1487,7 @@
"resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
"integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
"requires": {
- "kind-of": "^3.0.2"
+ "kind-of": "3.2.2"
},
"dependencies": {
"kind-of": {
@@ -1425,7 +1495,7 @@
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
"requires": {
- "is-buffer": "^1.1.5"
+ "is-buffer": "1.1.6"
}
}
}
@@ -1433,9 +1503,9 @@
"is-plain-object": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
- "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=",
"requires": {
- "isobject": "^3.0.1"
+ "isobject": "3.0.1"
}
},
"is-regex": {
@@ -1443,7 +1513,7 @@
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
"integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
"requires": {
- "has": "^1.0.1"
+ "has": "1.0.3"
}
},
"is-stream": {
@@ -1454,9 +1524,9 @@
"is-symbol": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz",
- "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==",
+ "integrity": "sha1-oFX2rlcZLK7jKeeoYBGLSXqVDzg=",
"requires": {
- "has-symbols": "^1.0.0"
+ "has-symbols": "1.0.0"
}
},
"is-typedarray": {
@@ -1467,7 +1537,7 @@
"is-windows": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
- "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA=="
+ "integrity": "sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0="
},
"isarray": {
"version": "1.0.0",
@@ -1497,10 +1567,10 @@
"js-yaml": {
"version": "3.12.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz",
- "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==",
+ "integrity": "sha1-6u1lbsg0TxD1J8a/obbiJE3hZ9E=",
"requires": {
- "argparse": "^1.0.7",
- "esprima": "^4.0.0"
+ "argparse": "1.0.10",
+ "esprima": "4.0.1"
}
},
"jsbn": {
@@ -1514,7 +1584,7 @@
"resolved": "https://registry.npmjs.org/json-edm-parser/-/json-edm-parser-0.1.2.tgz",
"integrity": "sha1-HmCw/vG8CvZ7wNFG393lSGzWFbQ=",
"requires": {
- "jsonparse": "~1.2.0"
+ "jsonparse": "1.2.0"
}
},
"json-schema": {
@@ -1527,6 +1597,11 @@
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
"integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A="
},
+ "json-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-stream/-/json-stream-1.0.0.tgz",
+ "integrity": "sha1-GjhU4o0rvuqzHMfd9oPS3cVlJwg="
+ },
"json-stringify-safe": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
@@ -1542,15 +1617,15 @@
"resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.4.0.tgz",
"integrity": "sha512-coyXjRTCy0pw5WYBpMvWOMN+Kjaik2MwTUIq9cna/W7NpO9E+iYbumZONAz3hcr+tXFJECoQVrtmIoC3Oz0gvg==",
"requires": {
- "jws": "^3.1.5",
- "lodash.includes": "^4.3.0",
- "lodash.isboolean": "^3.0.3",
- "lodash.isinteger": "^4.0.4",
- "lodash.isnumber": "^3.0.3",
- "lodash.isplainobject": "^4.0.6",
- "lodash.isstring": "^4.0.1",
- "lodash.once": "^4.0.0",
- "ms": "^2.1.1"
+ "jws": "3.2.1",
+ "lodash.includes": "4.3.0",
+ "lodash.isboolean": "3.0.3",
+ "lodash.isinteger": "4.0.4",
+ "lodash.isnumber": "3.0.3",
+ "lodash.isplainobject": "4.0.6",
+ "lodash.isstring": "4.0.1",
+ "lodash.once": "4.1.1",
+ "ms": "2.1.1"
},
"dependencies": {
"ms": {
@@ -1578,7 +1653,7 @@
"requires": {
"buffer-equal-constant-time": "1.0.1",
"ecdsa-sig-formatter": "1.0.10",
- "safe-buffer": "^5.0.1"
+ "safe-buffer": "5.1.2"
}
},
"jws": {
@@ -1586,38 +1661,38 @@
"resolved": "https://registry.npmjs.org/jws/-/jws-3.2.1.tgz",
"integrity": "sha512-bGA2omSrFUkd72dhh05bIAN832znP4wOU3lfuXtRBuGTbsmNmDXMQg28f0Vsxaxgk4myF5YkKQpz6qeRpMgX9g==",
"requires": {
- "jwa": "^1.2.0",
- "safe-buffer": "^5.0.1"
+ "jwa": "1.2.0",
+ "safe-buffer": "5.1.2"
}
},
"kind-of": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
- "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA=="
+ "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE="
},
"kuler": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/kuler/-/kuler-1.0.1.tgz",
"integrity": "sha512-J9nVUucG1p/skKul6DU3PUZrhs0LPulNaeUOox0IyXDi8S4CztTHs1gQphhuZmzXG7VOQSf6NJfKuzteQLv9gQ==",
"requires": {
- "colornames": "^1.1.1"
+ "colornames": "1.1.1"
}
},
"lcid": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz",
- "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==",
+ "integrity": "sha1-bvXS32DlL4LrIopMNz6NHzlyU88=",
"requires": {
- "invert-kv": "^2.0.0"
+ "invert-kv": "2.0.0"
}
},
"locate-path": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
- "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=",
"requires": {
- "p-locate": "^3.0.0",
- "path-exists": "^3.0.0"
+ "p-locate": "3.0.0",
+ "path-exists": "3.0.0"
}
},
"lodash": {
@@ -1663,9 +1738,9 @@
"log-symbols": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz",
- "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==",
+ "integrity": "sha1-V0Dhxdbw39pK2TI7UzIQfva0xAo=",
"requires": {
- "chalk": "^2.0.1"
+ "chalk": "2.4.2"
}
},
"logform": {
@@ -1673,11 +1748,11 @@
"resolved": "https://registry.npmjs.org/logform/-/logform-1.10.0.tgz",
"integrity": "sha512-em5ojIhU18fIMOw/333mD+ZLE2fis0EzXl1ZwHx4iQzmpQi6odNiY/t+ITNr33JZhT9/KEaH+UPIipr6a9EjWg==",
"requires": {
- "colors": "^1.2.1",
- "fast-safe-stringify": "^2.0.4",
- "fecha": "^2.3.3",
- "ms": "^2.1.1",
- "triple-beam": "^1.2.0"
+ "colors": "1.3.3",
+ "fast-safe-stringify": "2.0.6",
+ "fecha": "2.3.3",
+ "ms": "2.1.1",
+ "triple-beam": "1.3.0"
},
"dependencies": {
"ms": {
@@ -1690,9 +1765,9 @@
"map-age-cleaner": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz",
- "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==",
+ "integrity": "sha1-fVg6cwZDTAVf5HSw9FB45uG0uSo=",
"requires": {
- "p-defer": "^1.0.0"
+ "p-defer": "1.0.0"
}
},
"map-cache": {
@@ -1705,7 +1780,7 @@
"resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
"integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
"requires": {
- "object-visit": "^1.0.0"
+ "object-visit": "1.0.1"
}
},
"md5.js": {
@@ -1713,18 +1788,18 @@
"resolved": "http://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz",
"integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=",
"requires": {
- "hash-base": "^3.0.0",
- "inherits": "^2.0.1"
+ "hash-base": "3.0.4",
+ "inherits": "2.0.1"
}
},
"mem": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz",
- "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==",
+ "integrity": "sha1-Rhr0l7xK4JYIzbLmDu+2m/90QXg=",
"requires": {
- "map-age-cleaner": "^0.1.1",
- "mimic-fn": "^2.0.0",
- "p-is-promise": "^2.0.0"
+ "map-age-cleaner": "0.1.3",
+ "mimic-fn": "2.1.0",
+ "p-is-promise": "2.1.0"
}
},
"methods": {
@@ -1735,21 +1810,21 @@
"micromatch": {
"version": "3.1.10",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
- "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+ "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=",
"requires": {
- "arr-diff": "^4.0.0",
- "array-unique": "^0.3.2",
- "braces": "^2.3.1",
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "extglob": "^2.0.4",
- "fragment-cache": "^0.2.1",
- "kind-of": "^6.0.2",
- "nanomatch": "^1.2.9",
- "object.pick": "^1.3.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.2"
+ "arr-diff": "4.0.0",
+ "array-unique": "0.3.2",
+ "braces": "2.3.2",
+ "define-property": "2.0.2",
+ "extend-shallow": "3.0.2",
+ "extglob": "2.0.4",
+ "fragment-cache": "0.2.1",
+ "kind-of": "6.0.2",
+ "nanomatch": "1.2.13",
+ "object.pick": "1.3.0",
+ "regex-not": "1.0.2",
+ "snapdragon": "0.8.2",
+ "to-regex": "3.0.2"
}
},
"mime": {
@@ -1767,20 +1842,20 @@
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz",
"integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==",
"requires": {
- "mime-db": "~1.36.0"
+ "mime-db": "1.36.0"
}
},
"mimic-fn": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
- "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="
+ "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs="
},
"minimatch": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
- "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=",
"requires": {
- "brace-expansion": "^1.1.7"
+ "brace-expansion": "1.1.11"
}
},
"minimist": {
@@ -1788,21 +1863,62 @@
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
"integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
},
+ "minio": {
+ "version": "7.0.5",
+ "resolved": "https://registry.npmjs.org/minio/-/minio-7.0.5.tgz",
+ "integrity": "sha512-8ElURLlaiV1sGCE5fn9V7zhqYnvfUsntwg6lCR3OPzShak35dpCRKZFY3kdA7B1faTMGdN9jFMMIJ5jdWGEw4g==",
+ "requires": {
+ "async": "1.5.2",
+ "block-stream2": "1.1.0",
+ "concat-stream": "1.6.2",
+ "es6-error": "2.1.1",
+ "json-stream": "1.0.0",
+ "lodash": "4.17.11",
+ "mime-types": "2.1.20",
+ "mkdirp": "0.5.1",
+ "querystring": "0.2.0",
+ "through2": "0.6.5",
+ "uuid": "3.3.2",
+ "xml": "1.0.1",
+ "xml2js": "0.4.19"
+ },
+ "dependencies": {
+ "async": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+ "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo="
+ },
+ "sax": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
+ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
+ },
+ "xml2js": {
+ "version": "0.4.19",
+ "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz",
+ "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==",
+ "requires": {
+ "sax": "1.2.4",
+ "xmlbuilder": "9.0.7"
+ }
+ }
+ }
+ },
"mixin-deep": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz",
- "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==",
+ "integrity": "sha1-pJ5yaNzhoNlpjkUybFYm3zVD0P4=",
"requires": {
- "for-in": "^1.0.2",
- "is-extendable": "^1.0.1"
+ "for-in": "1.0.2",
+ "is-extendable": "1.0.1"
},
"dependencies": {
"is-extendable": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
- "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=",
"requires": {
- "is-plain-object": "^2.0.4"
+ "is-plain-object": "2.0.4"
}
}
}
@@ -1818,7 +1934,7 @@
"mocha": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/mocha/-/mocha-6.0.2.tgz",
- "integrity": "sha512-RtTJsmmToGyeTznSOMoM6TPEk1A84FQaHIciKrRqARZx+B5ccJ5tXlmJzEKGBxZdqk9UjpRsesZTUkZmR5YnuQ==",
+ "integrity": "sha1-zcGm/fZkcsB5tWBbrFnSmAdwLSw=",
"requires": {
"ansi-colors": "3.2.3",
"browser-stdout": "1.3.1",
@@ -1848,15 +1964,15 @@
"debug": {
"version": "3.2.6",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
- "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+ "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=",
"requires": {
- "ms": "^2.1.1"
+ "ms": "2.1.1"
}
},
"ms": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
- "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
+ "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo="
}
}
},
@@ -1868,32 +1984,32 @@
"nanomatch": {
"version": "1.2.13",
"resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
- "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
+ "integrity": "sha1-uHqKpPwN6P5r6IiVs4mD/yZb0Rk=",
"requires": {
- "arr-diff": "^4.0.0",
- "array-unique": "^0.3.2",
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "fragment-cache": "^0.2.1",
- "is-windows": "^1.0.2",
- "kind-of": "^6.0.2",
- "object.pick": "^1.3.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
+ "arr-diff": "4.0.0",
+ "array-unique": "0.3.2",
+ "define-property": "2.0.2",
+ "extend-shallow": "3.0.2",
+ "fragment-cache": "0.2.1",
+ "is-windows": "1.0.2",
+ "kind-of": "6.0.2",
+ "object.pick": "1.3.0",
+ "regex-not": "1.0.2",
+ "snapdragon": "0.8.2",
+ "to-regex": "3.0.2"
}
},
"nice-try": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
- "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="
+ "integrity": "sha1-ozeKdpbOfSI+iPybdkvX7xCJ42Y="
},
"node-environment-flags": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.4.tgz",
- "integrity": "sha512-M9rwCnWVLW7PX+NUWe3ejEdiLYinRpsEre9hMkU/6NS4h+EEulYaDH1gCEZ2gyXsmw+RXYDaV2JkkTNcsPDJ0Q==",
+ "integrity": "sha1-C3hKZVFCa/wW07IghCTcvCsv8Dg=",
"requires": {
- "object.getownpropertydescriptors": "^2.0.3"
+ "object.getownpropertydescriptors": "2.0.3"
}
},
"nodemailer": {
@@ -1911,7 +2027,7 @@
"resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
"integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
"requires": {
- "path-key": "^2.0.0"
+ "path-key": "2.0.1"
}
},
"number-is-nan": {
@@ -1929,9 +2045,9 @@
"resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
"integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
"requires": {
- "copy-descriptor": "^0.1.0",
- "define-property": "^0.2.5",
- "kind-of": "^3.0.3"
+ "copy-descriptor": "0.1.1",
+ "define-property": "0.2.5",
+ "kind-of": "3.2.2"
},
"dependencies": {
"define-property": {
@@ -1939,7 +2055,7 @@
"resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
"integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
"requires": {
- "is-descriptor": "^0.1.0"
+ "is-descriptor": "0.1.6"
}
},
"kind-of": {
@@ -1947,7 +2063,7 @@
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
"requires": {
- "is-buffer": "^1.1.5"
+ "is-buffer": "1.1.6"
}
}
}
@@ -1955,25 +2071,25 @@
"object-keys": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.0.tgz",
- "integrity": "sha512-6OO5X1+2tYkNyNEx6TsCxEqFfRWaqx6EtMiSbGrw8Ob8v9Ne+Hl8rBAgLBZn5wjEz3s/s6U1WXFUFOcxxAwUpg=="
+ "integrity": "sha1-Eb0iNI3S4JagRasG9shbzDQPoDI="
},
"object-visit": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
"integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
"requires": {
- "isobject": "^3.0.0"
+ "isobject": "3.0.1"
}
},
"object.assign": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
- "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
+ "integrity": "sha1-lovxEA15Vrs8oIbwBvhGs7xACNo=",
"requires": {
- "define-properties": "^1.1.2",
- "function-bind": "^1.1.1",
- "has-symbols": "^1.0.0",
- "object-keys": "^1.0.11"
+ "define-properties": "1.1.3",
+ "function-bind": "1.1.1",
+ "has-symbols": "1.0.0",
+ "object-keys": "1.1.0"
}
},
"object.getownpropertydescriptors": {
@@ -1981,8 +2097,8 @@
"resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz",
"integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=",
"requires": {
- "define-properties": "^1.1.2",
- "es-abstract": "^1.5.1"
+ "define-properties": "1.1.3",
+ "es-abstract": "1.13.0"
}
},
"object.pick": {
@@ -1990,7 +2106,7 @@
"resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
"integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
"requires": {
- "isobject": "^3.0.1"
+ "isobject": "3.0.1"
}
},
"once": {
@@ -1998,7 +2114,7 @@
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
"requires": {
- "wrappy": "1"
+ "wrappy": "1.0.2"
}
},
"one-time": {
@@ -2009,11 +2125,11 @@
"os-locale": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz",
- "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==",
+ "integrity": "sha1-qAKm7hfyTBBIOrmTVxnO9O0Wvxo=",
"requires": {
- "execa": "^1.0.0",
- "lcid": "^2.0.0",
- "mem": "^4.0.0"
+ "execa": "1.0.0",
+ "lcid": "2.0.0",
+ "mem": "4.3.0"
}
},
"p-defer": {
@@ -2034,23 +2150,23 @@
"p-limit": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz",
- "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==",
+ "integrity": "sha1-QXyZQeYCepq8ulCS3SkE4lW1+8I=",
"requires": {
- "p-try": "^2.0.0"
+ "p-try": "2.2.0"
}
},
"p-locate": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
- "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=",
"requires": {
- "p-limit": "^2.0.0"
+ "p-limit": "2.2.0"
}
},
"p-try": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
- "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
+ "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY="
},
"parse-passwd": {
"version": "1.0.0",
@@ -2105,10 +2221,10 @@
"pump": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
- "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=",
"requires": {
- "end-of-stream": "^1.1.0",
- "once": "^1.3.1"
+ "end-of-stream": "1.4.1",
+ "once": "1.4.0"
}
},
"punycode": {
@@ -2131,27 +2247,27 @@
"resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz",
"integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=",
"requires": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.1",
- "isarray": "~1.0.0",
- "process-nextick-args": "~1.0.6",
- "string_decoder": "~0.10.x",
- "util-deprecate": "~1.0.1"
+ "core-util-is": "1.0.2",
+ "inherits": "2.0.1",
+ "isarray": "1.0.0",
+ "process-nextick-args": "1.0.7",
+ "string_decoder": "0.10.31",
+ "util-deprecate": "1.0.2"
}
},
"regex-not": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
- "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
+ "integrity": "sha1-H07OJ+ALC2XgJHpoEOaoXYOldSw=",
"requires": {
- "extend-shallow": "^3.0.2",
- "safe-regex": "^1.1.0"
+ "extend-shallow": "3.0.2",
+ "safe-regex": "1.1.0"
}
},
"repeat-element": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
- "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g=="
+ "integrity": "sha1-eC4NglwMWjuzlzH4Tv7mt0Lmsc4="
},
"repeat-string": {
"version": "1.6.1",
@@ -2163,26 +2279,26 @@
"resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
"integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
"requires": {
- "aws-sign2": "~0.7.0",
- "aws4": "^1.8.0",
- "caseless": "~0.12.0",
- "combined-stream": "~1.0.6",
- "extend": "~3.0.2",
- "forever-agent": "~0.6.1",
- "form-data": "~2.3.2",
- "har-validator": "~5.1.0",
- "http-signature": "~1.2.0",
- "is-typedarray": "~1.0.0",
- "isstream": "~0.1.2",
- "json-stringify-safe": "~5.0.1",
- "mime-types": "~2.1.19",
- "oauth-sign": "~0.9.0",
- "performance-now": "^2.1.0",
- "qs": "~6.5.2",
- "safe-buffer": "^5.1.2",
- "tough-cookie": "~2.4.3",
- "tunnel-agent": "^0.6.0",
- "uuid": "^3.3.2"
+ "aws-sign2": "0.7.0",
+ "aws4": "1.8.0",
+ "caseless": "0.12.0",
+ "combined-stream": "1.0.7",
+ "extend": "3.0.2",
+ "forever-agent": "0.6.1",
+ "form-data": "2.3.2",
+ "har-validator": "5.1.0",
+ "http-signature": "1.2.0",
+ "is-typedarray": "1.0.0",
+ "isstream": "0.1.2",
+ "json-stringify-safe": "5.0.1",
+ "mime-types": "2.1.20",
+ "oauth-sign": "0.9.0",
+ "performance-now": "2.1.0",
+ "qs": "6.5.2",
+ "safe-buffer": "5.1.2",
+ "tough-cookie": "2.4.3",
+ "tunnel-agent": "0.6.0",
+ "uuid": "3.3.2"
}
},
"require-directory": {
@@ -2200,8 +2316,8 @@
"resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz",
"integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=",
"requires": {
- "expand-tilde": "^2.0.0",
- "global-modules": "^1.0.0"
+ "expand-tilde": "2.0.2",
+ "global-modules": "1.0.0"
}
},
"resolve-url": {
@@ -2212,7 +2328,7 @@
"ret": {
"version": "0.1.15",
"resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
- "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg=="
+ "integrity": "sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w="
},
"retry": {
"version": "0.12.0",
@@ -2229,7 +2345,7 @@
"resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
"integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
"requires": {
- "ret": "~0.1.10"
+ "ret": "0.1.15"
}
},
"safer-buffer": {
@@ -2255,12 +2371,12 @@
"set-value": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz",
- "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==",
+ "integrity": "sha1-ca5KiPD+77v1LR6mBPP7MV67YnQ=",
"requires": {
- "extend-shallow": "^2.0.1",
- "is-extendable": "^0.1.1",
- "is-plain-object": "^2.0.3",
- "split-string": "^3.0.1"
+ "extend-shallow": "2.0.1",
+ "is-extendable": "0.1.1",
+ "is-plain-object": "2.0.4",
+ "split-string": "3.1.0"
},
"dependencies": {
"extend-shallow": {
@@ -2268,7 +2384,7 @@
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
"requires": {
- "is-extendable": "^0.1.0"
+ "is-extendable": "0.1.1"
}
}
}
@@ -2278,7 +2394,7 @@
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
"integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
"requires": {
- "shebang-regex": "^1.0.0"
+ "shebang-regex": "1.0.0"
}
},
"shebang-regex": {
@@ -2296,28 +2412,28 @@
"resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
"integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=",
"requires": {
- "is-arrayish": "^0.3.1"
+ "is-arrayish": "0.3.2"
}
},
"snapdragon": {
"version": "0.8.2",
"resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
- "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
+ "integrity": "sha1-ZJIufFZbDhQgS6GqfWlkJ40lGC0=",
"requires": {
- "base": "^0.11.1",
- "debug": "^2.2.0",
- "define-property": "^0.2.5",
- "extend-shallow": "^2.0.1",
- "map-cache": "^0.2.2",
- "source-map": "^0.5.6",
- "source-map-resolve": "^0.5.0",
- "use": "^3.1.0"
+ "base": "0.11.2",
+ "debug": "2.6.9",
+ "define-property": "0.2.5",
+ "extend-shallow": "2.0.1",
+ "map-cache": "0.2.2",
+ "source-map": "0.5.7",
+ "source-map-resolve": "0.5.2",
+ "use": "3.1.1"
},
"dependencies": {
"debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
"requires": {
"ms": "2.0.0"
}
@@ -2327,7 +2443,7 @@
"resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
"integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
"requires": {
- "is-descriptor": "^0.1.0"
+ "is-descriptor": "0.1.6"
}
},
"extend-shallow": {
@@ -2335,7 +2451,7 @@
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
"requires": {
- "is-extendable": "^0.1.0"
+ "is-extendable": "0.1.1"
}
}
}
@@ -2343,11 +2459,11 @@
"snapdragon-node": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
- "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
+ "integrity": "sha1-bBdfhv8UvbByRWPo88GwIaKGhTs=",
"requires": {
- "define-property": "^1.0.0",
- "isobject": "^3.0.0",
- "snapdragon-util": "^3.0.1"
+ "define-property": "1.0.0",
+ "isobject": "3.0.1",
+ "snapdragon-util": "3.0.1"
},
"dependencies": {
"define-property": {
@@ -2355,33 +2471,33 @@
"resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
"integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
"requires": {
- "is-descriptor": "^1.0.0"
+ "is-descriptor": "1.0.2"
}
},
"is-accessor-descriptor": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
- "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=",
"requires": {
- "kind-of": "^6.0.0"
+ "kind-of": "6.0.2"
}
},
"is-data-descriptor": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
- "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=",
"requires": {
- "kind-of": "^6.0.0"
+ "kind-of": "6.0.2"
}
},
"is-descriptor": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
- "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=",
"requires": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
+ "is-accessor-descriptor": "1.0.0",
+ "is-data-descriptor": "1.0.0",
+ "kind-of": "6.0.2"
}
}
}
@@ -2389,9 +2505,9 @@
"snapdragon-util": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
- "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
+ "integrity": "sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI=",
"requires": {
- "kind-of": "^3.2.0"
+ "kind-of": "3.2.2"
},
"dependencies": {
"kind-of": {
@@ -2399,7 +2515,7 @@
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
"requires": {
- "is-buffer": "^1.1.5"
+ "is-buffer": "1.1.6"
}
}
}
@@ -2412,13 +2528,13 @@
"source-map-resolve": {
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz",
- "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==",
+ "integrity": "sha1-cuLMNAlVQ+Q7LGKyxMENSpBU8lk=",
"requires": {
- "atob": "^2.1.1",
- "decode-uri-component": "^0.2.0",
- "resolve-url": "^0.2.1",
- "source-map-url": "^0.4.0",
- "urix": "^0.1.0"
+ "atob": "2.1.2",
+ "decode-uri-component": "0.2.0",
+ "resolve-url": "0.2.1",
+ "source-map-url": "0.4.0",
+ "urix": "0.1.0"
}
},
"source-map-url": {
@@ -2429,9 +2545,9 @@
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
- "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
+ "integrity": "sha1-fLCd2jqGWFcFxks5pkZgOGguj+I=",
"requires": {
- "extend-shallow": "^3.0.0"
+ "extend-shallow": "3.0.2"
}
},
"sprintf-js": {
@@ -2444,15 +2560,15 @@
"resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz",
"integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=",
"requires": {
- "asn1": "~0.2.3",
- "assert-plus": "^1.0.0",
- "bcrypt-pbkdf": "^1.0.0",
- "dashdash": "^1.12.0",
- "ecc-jsbn": "~0.1.1",
- "getpass": "^0.1.1",
- "jsbn": "~0.1.0",
- "safer-buffer": "^2.0.2",
- "tweetnacl": "~0.14.0"
+ "asn1": "0.2.4",
+ "assert-plus": "1.0.0",
+ "bcrypt-pbkdf": "1.0.2",
+ "dashdash": "1.14.1",
+ "ecc-jsbn": "0.1.2",
+ "getpass": "0.1.7",
+ "jsbn": "0.1.1",
+ "safer-buffer": "2.1.2",
+ "tweetnacl": "0.14.5"
}
},
"stack-trace": {
@@ -2465,8 +2581,8 @@
"resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
"integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
"requires": {
- "define-property": "^0.2.5",
- "object-copy": "^0.1.0"
+ "define-property": "0.2.5",
+ "object-copy": "0.1.0"
},
"dependencies": {
"define-property": {
@@ -2474,7 +2590,7 @@
"resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
"integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
"requires": {
- "is-descriptor": "^0.1.0"
+ "is-descriptor": "0.1.6"
}
}
}
@@ -2482,10 +2598,10 @@
"string-width": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
- "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=",
"requires": {
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^4.0.0"
+ "is-fullwidth-code-point": "2.0.0",
+ "strip-ansi": "4.0.0"
}
},
"string_decoder": {
@@ -2498,7 +2614,7 @@
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
"integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
"requires": {
- "ansi-regex": "^3.0.0"
+ "ansi-regex": "3.0.0"
}
},
"strip-eof": {
@@ -2516,16 +2632,16 @@
"resolved": "https://registry.npmjs.org/superagent/-/superagent-5.0.2.tgz",
"integrity": "sha512-CqeqvwByDJuLwhcO6NOSuPatyQOIZX/TlvD5GJnXg5tzBTth2xQGZGdAZdo/kX+BtzvwJFX2IGGczTZgEIT7Wg==",
"requires": {
- "component-emitter": "^1.2.1",
- "cookiejar": "^2.1.2",
- "debug": "^4.1.1",
- "form-data": "^2.3.3",
- "formidable": "^1.2.1",
- "methods": "^1.1.2",
- "mime": "^2.4.0",
- "qs": "^6.7.0",
- "readable-stream": "^3.2.0",
- "semver": "^6.0.0"
+ "component-emitter": "1.2.1",
+ "cookiejar": "2.1.2",
+ "debug": "4.1.1",
+ "form-data": "2.3.3",
+ "formidable": "1.2.1",
+ "methods": "1.1.2",
+ "mime": "2.4.0",
+ "qs": "6.7.0",
+ "readable-stream": "3.2.0",
+ "semver": "6.0.0"
},
"dependencies": {
"debug": {
@@ -2533,7 +2649,7 @@
"resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
"integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
"requires": {
- "ms": "^2.1.1"
+ "ms": "2.1.1"
}
},
"form-data": {
@@ -2541,9 +2657,9 @@
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
"integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
"requires": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.6",
- "mime-types": "^2.1.12"
+ "asynckit": "0.4.0",
+ "combined-stream": "1.0.7",
+ "mime-types": "2.1.20"
}
},
"inherits": {
@@ -2566,9 +2682,9 @@
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.2.0.tgz",
"integrity": "sha512-RV20kLjdmpZuTF1INEb9IA3L68Nmi+Ri7ppZqo78wj//Pn62fCoJyV9zalccNzDD/OuJpMG4f+pfMl8+L6QdGw==",
"requires": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
+ "inherits": "2.0.3",
+ "string_decoder": "1.2.0",
+ "util-deprecate": "1.0.2"
}
},
"string_decoder": {
@@ -2576,7 +2692,7 @@
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.2.0.tgz",
"integrity": "sha512-6YqyX6ZWEYguAxgZzHGL7SsCeGx3V2TtOTqZz1xSTSWnqsbWwbptafNyvf/ACquZUXV3DANr5BDIwNYe1mN42w==",
"requires": {
- "safe-buffer": "~5.1.0"
+ "safe-buffer": "5.1.2"
}
}
}
@@ -2584,9 +2700,9 @@
"supports-color": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz",
- "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==",
+ "integrity": "sha1-ds/nQs8fQbubHCmtAwaMBbTA5Ao=",
"requires": {
- "has-flag": "^3.0.0"
+ "has-flag": "3.0.0"
}
},
"symbol-observable": {
@@ -2599,12 +2715,39 @@
"resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz",
"integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg=="
},
+ "through2": {
+ "version": "0.6.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
+ "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=",
+ "requires": {
+ "readable-stream": "1.0.34",
+ "xtend": "4.0.1"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
+ },
+ "readable-stream": {
+ "version": "1.0.34",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
+ "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
+ "requires": {
+ "core-util-is": "1.0.2",
+ "inherits": "2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "0.10.31"
+ }
+ }
+ }
+ },
"to-object-path": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
"integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
"requires": {
- "kind-of": "^3.0.2"
+ "kind-of": "3.2.2"
},
"dependencies": {
"kind-of": {
@@ -2612,7 +2755,7 @@
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
"requires": {
- "is-buffer": "^1.1.5"
+ "is-buffer": "1.1.6"
}
}
}
@@ -2620,12 +2763,12 @@
"to-regex": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
- "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
+ "integrity": "sha1-E8/dmzNlUvMLUfM6iuG0Knp1mc4=",
"requires": {
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "regex-not": "^1.0.2",
- "safe-regex": "^1.1.0"
+ "define-property": "2.0.2",
+ "extend-shallow": "3.0.2",
+ "regex-not": "1.0.2",
+ "safe-regex": "1.1.0"
}
},
"to-regex-range": {
@@ -2633,8 +2776,8 @@
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
"integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
"requires": {
- "is-number": "^3.0.0",
- "repeat-string": "^1.6.1"
+ "is-number": "3.0.0",
+ "repeat-string": "1.6.1"
}
},
"tough-cookie": {
@@ -2642,8 +2785,8 @@
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
"integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
"requires": {
- "psl": "^1.1.24",
- "punycode": "^1.4.1"
+ "psl": "1.1.29",
+ "punycode": "1.4.1"
}
},
"triple-beam": {
@@ -2656,7 +2799,7 @@
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
"integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
"requires": {
- "safe-buffer": "^5.0.1"
+ "safe-buffer": "5.1.2"
}
},
"tweetnacl": {
@@ -2668,7 +2811,12 @@
"type-detect": {
"version": "4.0.8",
"resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
- "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g=="
+ "integrity": "sha1-dkb7XxiHHPu3dJ5pvTmmOI63RQw="
+ },
+ "typedarray": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
},
"underscore": {
"version": "1.9.1",
@@ -2680,10 +2828,10 @@
"resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz",
"integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=",
"requires": {
- "arr-union": "^3.1.0",
- "get-value": "^2.0.6",
- "is-extendable": "^0.1.1",
- "set-value": "^0.4.3"
+ "arr-union": "3.1.0",
+ "get-value": "2.0.6",
+ "is-extendable": "0.1.1",
+ "set-value": "0.4.3"
},
"dependencies": {
"extend-shallow": {
@@ -2691,7 +2839,7 @@
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
"requires": {
- "is-extendable": "^0.1.0"
+ "is-extendable": "0.1.1"
}
},
"set-value": {
@@ -2699,10 +2847,10 @@
"resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz",
"integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=",
"requires": {
- "extend-shallow": "^2.0.1",
- "is-extendable": "^0.1.1",
- "is-plain-object": "^2.0.1",
- "to-object-path": "^0.3.0"
+ "extend-shallow": "2.0.1",
+ "is-extendable": "0.1.1",
+ "is-plain-object": "2.0.4",
+ "to-object-path": "0.3.0"
}
}
}
@@ -2712,8 +2860,8 @@
"resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
"integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
"requires": {
- "has-value": "^0.3.1",
- "isobject": "^3.0.0"
+ "has-value": "0.3.1",
+ "isobject": "3.0.1"
},
"dependencies": {
"has-value": {
@@ -2721,9 +2869,9 @@
"resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
"integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
"requires": {
- "get-value": "^2.0.3",
- "has-values": "^0.1.4",
- "isobject": "^2.0.0"
+ "get-value": "2.0.6",
+ "has-values": "0.1.4",
+ "isobject": "2.1.0"
},
"dependencies": {
"isobject": {
@@ -2751,7 +2899,7 @@
"use": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
- "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ=="
+ "integrity": "sha1-1QyMrHmhn7wg8pEfVuuXP04QBw8="
},
"util": {
"version": "0.10.3",
@@ -2781,17 +2929,17 @@
"resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
"integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
"requires": {
- "assert-plus": "^1.0.0",
+ "assert-plus": "1.0.0",
"core-util-is": "1.0.2",
- "extsprintf": "^1.2.0"
+ "extsprintf": "1.3.0"
}
},
"which": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
- "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=",
"requires": {
- "isexe": "^2.0.0"
+ "isexe": "2.0.0"
}
},
"which-module": {
@@ -2802,9 +2950,9 @@
"wide-align": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
- "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
+ "integrity": "sha1-rgdOa9wMFKQx6ATmJFScYzsABFc=",
"requires": {
- "string-width": "^1.0.2 || 2"
+ "string-width": "2.1.1"
}
},
"winston": {
@@ -2812,15 +2960,15 @@
"resolved": "https://registry.npmjs.org/winston/-/winston-3.1.0.tgz",
"integrity": "sha512-FsQfEE+8YIEeuZEYhHDk5cILo1HOcWkGwvoidLrDgPog0r4bser1lEIOco2dN9zpDJ1M88hfDgZvxe5z4xNcwg==",
"requires": {
- "async": "^2.6.0",
- "diagnostics": "^1.1.1",
- "is-stream": "^1.1.0",
- "logform": "^1.9.1",
+ "async": "2.6.1",
+ "diagnostics": "1.1.1",
+ "is-stream": "1.1.0",
+ "logform": "1.10.0",
"one-time": "0.0.4",
- "readable-stream": "^2.3.6",
- "stack-trace": "0.0.x",
- "triple-beam": "^1.3.0",
- "winston-transport": "^4.2.0"
+ "readable-stream": "2.3.6",
+ "stack-trace": "0.0.10",
+ "triple-beam": "1.3.0",
+ "winston-transport": "4.3.0"
},
"dependencies": {
"inherits": {
@@ -2838,13 +2986,13 @@
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
"integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
"requires": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
+ "core-util-is": "1.0.2",
+ "inherits": "2.0.3",
+ "isarray": "1.0.0",
+ "process-nextick-args": "2.0.0",
+ "safe-buffer": "5.1.2",
+ "string_decoder": "1.1.1",
+ "util-deprecate": "1.0.2"
}
},
"string_decoder": {
@@ -2852,7 +3000,7 @@
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"requires": {
- "safe-buffer": "~5.1.0"
+ "safe-buffer": "5.1.2"
}
}
}
@@ -2862,8 +3010,8 @@
"resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.3.0.tgz",
"integrity": "sha512-B2wPuwUi3vhzn/51Uukcao4dIduEiPOcOt9HJ3QeaXgkJ5Z7UwpBzxS4ZGNHtrxrUvTwemsQiSys0ihOf8Mp1A==",
"requires": {
- "readable-stream": "^2.3.6",
- "triple-beam": "^1.2.0"
+ "readable-stream": "2.3.6",
+ "triple-beam": "1.3.0"
},
"dependencies": {
"inherits": {
@@ -2881,13 +3029,13 @@
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
"integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
"requires": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
+ "core-util-is": "1.0.2",
+ "inherits": "2.0.3",
+ "isarray": "1.0.0",
+ "process-nextick-args": "2.0.0",
+ "safe-buffer": "5.1.2",
+ "string_decoder": "1.1.1",
+ "util-deprecate": "1.0.2"
}
},
"string_decoder": {
@@ -2895,7 +3043,7 @@
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"requires": {
- "safe-buffer": "~5.1.0"
+ "safe-buffer": "5.1.2"
}
}
}
@@ -2905,8 +3053,8 @@
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
"integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
"requires": {
- "string-width": "^1.0.1",
- "strip-ansi": "^3.0.1"
+ "string-width": "1.0.2",
+ "strip-ansi": "3.0.1"
},
"dependencies": {
"ansi-regex": {
@@ -2919,7 +3067,7 @@
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
"integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
"requires": {
- "number-is-nan": "^1.0.0"
+ "number-is-nan": "1.0.1"
}
},
"string-width": {
@@ -2927,9 +3075,9 @@
"resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
"integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
"requires": {
- "code-point-at": "^1.0.0",
- "is-fullwidth-code-point": "^1.0.0",
- "strip-ansi": "^3.0.0"
+ "code-point-at": "1.1.0",
+ "is-fullwidth-code-point": "1.0.0",
+ "strip-ansi": "3.0.1"
}
},
"strip-ansi": {
@@ -2937,7 +3085,7 @@
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"requires": {
- "ansi-regex": "^2.0.0"
+ "ansi-regex": "2.1.1"
}
}
}
@@ -2947,12 +3095,17 @@
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
},
+ "xml": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz",
+ "integrity": "sha1-eLpyAgApxbyHuKgaPPzXS0ovweU="
+ },
"xml2js": {
"version": "0.2.8",
"resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.2.8.tgz",
"integrity": "sha1-m4FpCTFjH/CdGVdUn69U9PmAs8I=",
"requires": {
- "sax": "0.5.x"
+ "sax": "0.5.8"
}
},
"xmlbuilder": {
@@ -2960,47 +3113,52 @@
"resolved": "http://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz",
"integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0="
},
+ "xtend": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
+ "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68="
+ },
"y18n": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
- "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w=="
+ "integrity": "sha1-le+U+F7MgdAHwmThkKEg8KPIVms="
},
"yargs": {
"version": "12.0.5",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz",
- "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==",
+ "integrity": "sha1-BfWZe2CWR7ZPZrgeO0sQo2jnrRM=",
"requires": {
- "cliui": "^4.0.0",
- "decamelize": "^1.2.0",
- "find-up": "^3.0.0",
- "get-caller-file": "^1.0.1",
- "os-locale": "^3.0.0",
- "require-directory": "^2.1.1",
- "require-main-filename": "^1.0.1",
- "set-blocking": "^2.0.0",
- "string-width": "^2.0.0",
- "which-module": "^2.0.0",
- "y18n": "^3.2.1 || ^4.0.0",
- "yargs-parser": "^11.1.1"
+ "cliui": "4.1.0",
+ "decamelize": "1.2.0",
+ "find-up": "3.0.0",
+ "get-caller-file": "1.0.3",
+ "os-locale": "3.1.0",
+ "require-directory": "2.1.1",
+ "require-main-filename": "1.0.1",
+ "set-blocking": "2.0.0",
+ "string-width": "2.1.1",
+ "which-module": "2.0.0",
+ "y18n": "4.0.0",
+ "yargs-parser": "11.1.1"
}
},
"yargs-parser": {
"version": "11.1.1",
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz",
- "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==",
+ "integrity": "sha1-h5oIZZc7yp9rq1y987HGfsfTvPQ=",
"requires": {
- "camelcase": "^5.0.0",
- "decamelize": "^1.2.0"
+ "camelcase": "5.3.1",
+ "decamelize": "1.2.0"
}
},
"yargs-unparser": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.5.0.tgz",
- "integrity": "sha512-HK25qidFTCVuj/D1VfNiEndpLIeJN78aqgR23nL3y4N0U/91cOAzqfHlF8n2BvoNDcZmJKin3ddNSvOxSr8flw==",
+ "integrity": "sha1-8rsqfoPLyHu5XI5XKCigbJrdbg0=",
"requires": {
- "flat": "^4.1.0",
- "lodash": "^4.17.11",
- "yargs": "^12.0.5"
+ "flat": "4.1.0",
+ "lodash": "4.17.11",
+ "yargs": "12.0.5"
}
},
"zen-observable": {
@@ -3013,7 +3171,7 @@
"resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-0.8.10.tgz",
"integrity": "sha512-5vqMtRggU/2GhePC9OU4sYEWOdvmayp2k3gjPf4F0mXwB3CSbbNznfDUvDJx9O2ZTa1EIXdJhPchQveFKwNXPQ==",
"requires": {
- "zen-observable": "^0.8.0"
+ "zen-observable": "0.8.9"
}
}
}
diff --git a/package.json b/package.json
index 9a937f460..c6a9f0ae0 100644
--- a/package.json
+++ b/package.json
@@ -19,6 +19,7 @@
"graphql": "^14.0.2",
"jsonwebtoken": "^8.4.0",
"lodash": "^4.17.11",
+ "minio": "^7.0.5",
"nodemailer": "^4.6.8",
"nonce": "^1.0.4",
"querystring": "^0.2.0",