zater-docx-pdf2
Advanced tools
Comparing version 4.0.18 to 4.0.19
120
package.json
{ | ||
"name": "zater-docx-pdf2", | ||
"version": "4.0.18", | ||
"description": "ZAter doc2pdf", | ||
"main": "index.js", | ||
"repository": { | ||
"type": "git", | ||
"url": "git+https://zte-junior@bitbucket.org/patercapital/zater-cep.git" | ||
}, | ||
"keywords": [ | ||
"contract", | ||
"pdf", | ||
"zater", | ||
"bitcoins", | ||
"docx" | ||
], | ||
"scripts": { | ||
"test": "echo \"Error: no test specified\" && exit 1", | ||
"lint": "node ./node_modules/eslint/bin/eslint.js ./", | ||
"lint:fix": "node ./node_modules/eslint/bin/eslint.js ./ --fix", | ||
"clean": "rm -rf dist && mkdir dist", | ||
"start": "if [ ! -d 'node_modules/' ]; then npm install yarn -g && yarn install; fi && yarn run development", | ||
"development": "NODE_ENV=development nodemon --exec babel-node teste-pdf.js", | ||
"build": "yarn run clean && babel . -d dist --ignore dist,node_modules,scripts --copy-files --source-maps=inline", | ||
"replace-main": "sh ./scripts/replace.sh", | ||
"deploy": "npm version patch && git push && npm run build && npm run replace-main && cd dist/ && npm publish" | ||
}, | ||
"devDependencies": { | ||
"babel": "^6.23.0", | ||
"babel-cli": "^6.26.0", | ||
"babel-eslint": "^7.2.3", | ||
"babel-polyfill": "^6.26.0", | ||
"babel-preset-env": "^1.6.1", | ||
"babel-preset-stage-2": "^6.24.1", | ||
"eslint": "^4.5.0", | ||
"eslint-config-airbnb": "^15.1.0", | ||
"eslint-config-airbnb-base": "^11.3.2", | ||
"eslint-plugin-import": "^2.7.0", | ||
"nodemon": "^1.12.1", | ||
"nsp": "^2.1.0" | ||
}, | ||
"author": "JUNIOR FERREIRA", | ||
"license": "MIT", | ||
"homepage": "https://bitbucket.org/patercapital/zater-cep#readme", | ||
"dependencies": { | ||
"arraybuffer-to-string": "^1.0.2", | ||
"aws-sdk": "^2.259.1", | ||
"cpf": "^1.0.6", | ||
"docx-pdf": "^0.0.1", | ||
"docxtemplater": "3.6.6", | ||
"dynamic-html-pdf": "0.0.4", | ||
"fs": "0.0.1-security", | ||
"jszip": "2", | ||
"moment": "^2.22.2", | ||
"node-fetch": "^2.1.2", | ||
"numero-por-extenso": "^1.0.4", | ||
"open-docxtemplater-image-module": "^1.0.3", | ||
"path": "^0.12.7", | ||
"request": "^2.87.0", | ||
"uuid": "^3.2.1" | ||
} | ||
"name": "zater-docx-pdf2", | ||
"version": "4.0.19", | ||
"description": "ZAter doc2pdf", | ||
"main": "index.js", | ||
"repository": { | ||
"type": "git", | ||
"url": "git+https://zte-junior@bitbucket.org/patercapital/zater-cep.git" | ||
}, | ||
"keywords": [ | ||
"contract", | ||
"pdf", | ||
"zater", | ||
"bitcoins", | ||
"docx" | ||
], | ||
"scripts": { | ||
"test": "echo \"Error: no test specified\" && exit 1", | ||
"lint": "node ./node_modules/eslint/bin/eslint.js ./", | ||
"lint:fix": "node ./node_modules/eslint/bin/eslint.js ./ --fix", | ||
"clean": "rm -rf dist && mkdir dist", | ||
"start": "if [ ! -d 'node_modules/' ]; then npm install yarn -g && yarn install; fi && yarn run development", | ||
"development": "NODE_ENV=development nodemon --exec babel-node teste-pdf.js", | ||
"build": "yarn run clean && babel . -d dist --ignore dist,node_modules,scripts --copy-files --source-maps=inline", | ||
"replace-main": "sh ./scripts/replace.sh", | ||
"deploy": "npm version patch && git push && npm run build && npm run replace-main && cd dist/ && npm publish" | ||
}, | ||
"devDependencies": { | ||
"babel": "^6.23.0", | ||
"babel-cli": "^6.26.0", | ||
"babel-eslint": "^7.2.3", | ||
"babel-polyfill": "^6.26.0", | ||
"babel-preset-env": "^1.6.1", | ||
"babel-preset-stage-2": "^6.24.1", | ||
"eslint": "^4.5.0", | ||
"eslint-config-airbnb": "^15.1.0", | ||
"eslint-config-airbnb-base": "^11.3.2", | ||
"eslint-plugin-import": "^2.7.0", | ||
"nodemon": "^1.12.1", | ||
"nsp": "^2.1.0" | ||
}, | ||
"author": "JUNIOR FERREIRA", | ||
"license": "MIT", | ||
"homepage": "https://bitbucket.org/patercapital/zater-cep#readme", | ||
"dependencies": { | ||
"arraybuffer-to-string": "^1.0.2", | ||
"aws-sdk": "^2.259.1", | ||
"cpf": "^1.0.6", | ||
"docx-pdf": "^0.0.1", | ||
"docxtemplater": "3.6.6", | ||
"dynamic-html-pdf": "0.0.4", | ||
"fs": "0.0.1-security", | ||
"jszip": "2", | ||
"moment": "^2.22.2", | ||
"node-fetch": "^2.1.2", | ||
"numero-por-extenso": "^1.0.4", | ||
"open-docxtemplater-image-module": "^1.0.3", | ||
"path": "^0.12.7", | ||
"request": "^2.87.0", | ||
"uuid": "^3.2.1" | ||
} | ||
} |
@@ -94,3 +94,2 @@ 'use strict'; | ||
date: (0, _moment2.default)(new Date()).format('DD/MM/YYYY'), | ||
cnpjResume: ' ', | ||
clientResume: `${data.clientName}, natural de ${data.clientNationality}, ${data.clientCivilState}, | ||
@@ -109,5 +108,6 @@ ${data.clientOccupation}, | ||
return Promise.resolve(this.makeCPF(data)).then(res => _extends({}, res, { | ||
clientResume: `, pessoa jurídica de direito privado, inscrita no CNPJ nº ${data.clientCNPJ}, com sede na | ||
${data.companyStreet} | ||
${data.companyComplement ? data.companyComplement : ''}, CEP ${data.companyCEP}, ${data.companyCity} ${data.companyState}` | ||
clientResume: `${data.socialReason}, pessoa jurídica de direito privado, inscrita no CNPJ nº ${data.clientCNPJ}, com sede na ${data.companyStreet} ${data.companyComplement ? data.companyComplement : ''}, CEP ${data.companyCEP}, ${data.companyCity}, ${data.companyState}, representado por ${data.partnerClientName}, ${data.partnerCivilState}, ${data.partnerProfession}, portador do RG nº ${data.partnerPersonalRegister}, inscrito no CPF sob o nº ${data.partnerPersonalDocument}, residente e domiciliado a ${data.partnerAddress}, CEP ${data.partnetPostalCode}` | ||
// clientResume: `, pessoa jurídica de direito privado, inscrita no CNPJ nº ${data.clientCNPJ}, com sede na | ||
// ${data.companyStreet} | ||
// ${ data.companyComplement ? data.companyComplement : ''}, CEP ${data.companyCEP}, ${data.companyCity} ${data.companyState}`, | ||
})); | ||
@@ -274,2 +274,2 @@ } | ||
module.exports = (Docx, DigitalData, Storage, PdfGenerator) => new Contract(Docx, DigitalData, Storage, PdfGenerator); | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kb21haW4vQ29udHJhY3QuanMiXSwibmFtZXMiOlsibnVtZXJvUG9yRXh0ZW5zbyIsInJlcXVpcmUiLCJDUEYiLCJDb250cmFjdCIsIkNvbnRyYWN0RGVjb3JhdG9yIiwiY29uc3RydWN0b3IiLCJEb2N4IiwiRGlnaXRhbERhdGEiLCJTM1N0b3JhZ2UiLCJQZGZHZW5lcmF0b3IiLCJTdG9yYWdlIiwic2V0RGlnaXRhbERhdGEiLCJzZXRDb25maWciLCJjb25maWciLCJtYWtlQ1BGIiwiZGF0YSIsImNvdGFjYW8iLCJ0aGVuIiwicmVzIiwianNvbiIsInJlc3BvbnNlIiwiY2xlYW4iLCJyZXBsYWNlIiwicGFyc2VJbnQiLCJ2YWx1ZSIsInRvRml4ZWQiLCJ2YWwiLCJwb3JFeHRlbnNvIiwicGFyc2VGbG9hdCIsImVzdGlsbyIsIm1vbmV0YXJpbyIsImFtb3VudE1vbmV5IiwiY29udHJhY3QiLCJpbnZlc3RtZW50SWQiLCJpZCIsInR5cGUiLCJwZW5hbHR5UG9yY2VudCIsInBlbmFsdHlBZHYiLCJjbGllbnROYW1lIiwibWFuYWdlck5hbWUiLCJjb250cmFjdE51bWJlciIsImNvbnRyYWN0RW5kIiwiY29udHJhY3RUYXhlIiwiY29udHJhY3RUcmFkZSIsImFtb3VudENyeXB0IiwiY29udHJhY3RQb3JjZW50IiwiY29udHJhY3RQb3JjZW50VG90YWwiLCJiYW5rTmFtZSIsImJhbmsiLCJuYW1lIiwiYmFua1RpdHVsYXIiLCJ1c2VyTmFtZSIsImJhbmtBZ2VuY3kiLCJhZ2VuY3kiLCJiYW5rQWNjb3VudCIsImFjY291bnQiLCJiYW5rQ29kZSIsImNvZGUiLCJpbWFnZSIsImRhdGUiLCJEYXRlIiwiZm9ybWF0IiwiY25walJlc3VtZSIsImNsaWVudFJlc3VtZSIsImNsaWVudE5hdGlvbmFsaXR5IiwiY2xpZW50Q2l2aWxTdGF0ZSIsImNsaWVudE9jY3VwYXRpb24iLCJjbGllbnRSRyIsImNsaWVudENQRiIsImNsaWVudFN0cmVldCIsImNsaWVudENvbXBsZW1lbnQiLCJjbGllbnRDRVAiLCJjbGllbnRDaXR5IiwiY2xpZW50U3RhdGUiLCJtYWtlQ05QSiIsIlByb21pc2UiLCJyZXNvbHZlIiwiY2xpZW50Q05QSiIsImNvbXBhbnlTdHJlZXQiLCJjb21wYW55Q29tcGxlbWVudCIsImNvbXBhbnlDRVAiLCJjb21wYW55Q2l0eSIsImNvbXBhbnlTdGF0ZSIsIm1ha2UiLCJ1c2VySWQiLCJkYXRhQ29udHJhY3QiLCJhd3MiLCJzZXRUeXBlIiwiZ2VuZXJhdG9yTGFzdCIsInVuZGVmaW5lZCIsIkVycm9yRG9jeFBkZiIsImdlbmVyYXRlIiwic2V0QnVja2V0IiwiYnVja2V0Iiwic2V0RGVzdGluYXRpb25EaXIiLCJzZXRGaWxlIiwidXBsb2FkIiwiSlNPTiIsInN0cmluZ2lmeSIsInBhcnNlIiwicmVzdWx0IiwiY29udHJhY3RVcmwiLCJMb2NhdGlvbiIsInN0YXR1cyIsInNhdmUiLCJjYXRjaCIsImUiLCJyZWplY3QiLCJ2aWV3IiwiY2xpZW50SWQiLCJ1cGRhdGUiLCJpbnNlcnRTaWduYXR1cmUiLCJtYWtlRG9jdW1lbnQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7Ozs7O0FBRUEsTUFBTUEsbUJBQW1CQyxRQUFRLG9CQUFSLENBQXpCO0FBQ0EsTUFBTUMsTUFBTUQsUUFBUSxLQUFSLENBQVo7O0FBRUEsTUFBTUUsUUFBTixTQUF1QkMsMkJBQXZCLENBQXlDOztBQUV2Q0MsY0FBWUMsSUFBWixFQUFrQkMsV0FBbEIsRUFBK0JDLFNBQS9CLEVBQTBDQyxZQUExQyxFQUF3RDtBQUN0RDtBQUNBLFNBQUtDLE9BQUwsR0FBb0JGLFNBQXBCO0FBQ0EsU0FBS0YsSUFBTCxHQUFvQkEsSUFBcEI7QUFDQSxTQUFLRyxZQUFMLEdBQW9CQSxZQUFwQjtBQUNBLFNBQUtFLGNBQUwsQ0FBb0JKLFdBQXBCO0FBQ0Q7O0FBRURLLFlBQVVD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QUErTHpDNEIsT0FBT0MsT0FBUCxHQUFpQixDQUFDNUcsSUFBRCxFQUFPQyxXQUFQLEVBQW9CRyxPQUFwQixFQUE2QkQsWUFBN0IsS0FBOEMsSUFBSU4sUUFBSixDQUFhRyxJQUFiLEVBQW1CQyxXQUFuQixFQUFnQ0csT0FBaEMsRUFBeUNELFlBQXpDLENBQS9EIiwiZmlsZSI6IkNvbnRyYWN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEVycm9yRG9jeFBkZiBmcm9tICcuLi9saWIvRXJyb3JEb2N4UGRmJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IGRhdGVGb3JtYXQgZnJvbSAnLi4vbGliL2RhdGUnO1xuaW1wb3J0IGJhc2U2NElNR0J1ZmZlciBmcm9tICcuLi9saWIvYmFzZTY0SU1HdG9CdWZmZXInO1xuaW1wb3J0IENvbnRyYWN0RGVjb3JhdG9yIGZyb20gJy4uL2RlY29yYXRvcnMvQ29udHJhY3REZWNvcmF0b3InO1xuaW1wb3J0IGZldGNoIGZyb20gJ25vZGUtZmV0Y2gnO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuXG5jb25zdCBudW1lcm9Qb3JFeHRlbnNvID0gcmVxdWlyZSgnbnVtZXJvLXBvci1leHRlbnNvJyk7XG5jb25zdCBDUEYgPSByZXF1aXJlKCdjcGYnKTtcblxuY2xhc3MgQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdERlY29yYXRvciB7XG5cbiAgY29uc3RydWN0b3IoRG9jeCwgRGlnaXRhbERhdGEsIFMzU3RvcmFnZSwgUGRmR2VuZXJhdG9yKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLlN0b3JhZ2UgICAgICA9IFMzU3RvcmFnZTtcbiAgICB0aGlzLkRvY3ggICAgICAgICA9IERvY3g7XG4gICAgdGhpcy5QZGZHZW5lcmF0b3IgPSBQZGZHZW5lcmF0b3I7XG4gICAgdGhpcy5zZXREaWdpdGFsRGF0YShEaWdpdGFsRGF0YSk7XG4gIH1cblxuICBzZXRDb25maWcoY29uZmlnKSB7XG4gICAgdGhpcy5jb25maWcgPSBjb25maWc7XG4gICAgdGhpcy5TdG9yYWdlID0gdGhpcy5TdG9yYWdlKGNvbmZpZyk7XG4gIH1cblxuXG4gIGFzeW5jIG1ha2VDUEYoZGF0YSkge1xuICAgIGNvbnN0IGNvdGFjYW8gPSBhd2FpdCBmZXRjaCgnaHR0cHM6Ly93d3cuYnRjYnV5c2hvcC5jb20vYXBpL2NyYXdsZXJzL2ljb2lub21pYScpXG4gICAgICAudGhlbihyZXMgPT4gcmVzLmpzb24oKSlcbiAgICAgIC50aGVuKGpzb24gPT4ganNvbi5yZXNwb25zZS5jbGVhbi5yZXBsYWNlKC9bXFxEXSsvZywgJycpKVxuICAgICAgLnRoZW4odmFsdWUgPT4gcGFyc2VJbnQodmFsdWUpKVxuICAgICAgLnRoZW4odmFsdWUgPT4gKHZhbHVlIC8gMTAwKS50b0ZpeGVkKDIpKTtcblxuICAgIGNvbnN0IHZhbCA9IG51bWVyb1BvckV4dGVuc28ucG9yRXh0ZW5zbyhwYXJzZUZsb2F0KGNvdGFjYW8pLCBudW1lcm9Qb3JFeHRlbnNvLmVzdGlsby5tb25ldGFyaW8pO1xuICAgIGNvbnN0IGFtb3VudE1vbmV5ID0gYCR7Y290YWNhb30gKCR7dmFsfSlgO1xuICAgIC8vIGNvbnN0IHt5ZWFyLCBtb250aCwgZGF5fSA9IGRhdGVGb3JtYXQuZGF0ZVBUQlIoKTtcbiAgICBjb25zdCBjb250cmFjdCA9IHtcbiAgICAgIGludmVzdG1lbnRJZDogZGF0YS5pZCxcbiAgICAgIHR5cGU6IGRhdGEudHlwZSxcbiAgICAgIHBlbmFsdHlQb3JjZW50OiBkYXRhLnBlbmFsdHlQb3JjZW50IHx8IDAsXG4gICAgICBwZW5hbHR5QWR2OiBkYXRhLnBlbmFsdHlBZHYgfHwgMCxcbiAgICAgIGNsaWVudE5hbWU6IGRhdGEuY2xpZW50TmFtZSB8fCAnRGFuaWVsIFNpbHZhIE1pcmFuZGEnLFxuICAgICAgbWFuYWdlck5hbWU6IGRhdGEubWFuYWdlck5hbWUgfHwgJ0RhbmllbCBTaWx2YSBNaXJhbmRhJywgICAgICAgIFxuICAgICAgY29udHJhY3ROdW1iZXI6IGRhdGEuY29udHJhY3ROdW1iZXIgfHwgJ0V4ZW1wbG8nLFxuICAgICAgY29udHJhY3RFbmQ6IGRhdGEuY29udHJhY3RFbmQgfHwgJzAwLzAwLzAwMDAnLFxuICAgICAgY29udHJhY3RUYXhlOiBkYXRhLmNvbnRyYWN0VGF4ZSB8fCAwLFxuICAgICAgY29udHJhY3RUcmFkZTogZGF0YS5jb250cmFjdFRyYWRlIHx8IDAsXG4gICAgICBhbW91bnRDcnlwdDogZGF0YS5hbW91bnRDcnlwdCB8fCAwLFxuICAgICAgY29udHJhY3RQb3JjZW50OiBkYXRhLmNvbnRyYWN0UG9yY2VudCB8fCAwLFxuICAgICAgY29udHJhY3RQb3JjZW50VG90YWw6IGRhdGEuY29udHJhY3RQb3JjZW50VG90YWwgfHwgMCxcbiAgICAgIGJhbmtOYW1lOiBkYXRhLmJhbmsubmFtZSB8fCAnQlRDIEJhbmNvJyxcbiAgICAgIGJhbmtUaXR1bGFyOiBkYXRhLmJhbmsudXNlck5hbWUgfHwgJ0JUQyBCYW5jbycsXG4gICAgICBiYW5rQWdlbmN5OiBkYXRhLmJhbmsuYWdlbmN5IHx8ICcwMDAwJyxcbiAgICAgIGJhbmtBY2NvdW50OiBkYXRhLmJhbmsuYWNjb3VudCB8fCAnMDAwMC0wMCcsXG4gICAgICBiYW5rQ29kZTogZGF0YS5iYW5rLmNvZGUgfHwgJzAwMDAtMDAnLFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgICBpbWFnZTogYmFzZTY0SU1HQnVmZmVyKGRhdGEuaW1hZ2UpLFxuICAgICAgYW1vdW50TW9uZXksXG4gICAgICAuLi5kYXRlRm9ybWF0KCksXG4gICAgICBkYXRlOiBtb21lbnQobmV3IERhdGUoKSkuZm9ybWF0KCdERC9NTS9ZWVlZJyksXG4gICAgICBjbnBqUmVzdW1lOiAnICcsXG4gICAgICBjbGllbnRSZXN1bWU6IGAke2RhdGEuY2xpZW50TmFtZX0sIG5hdHVyYWwgZGUgJHtkYXRhLmNsaWVudE5hdGlvbmFsaXR5fSwgJHtkYXRhLmNsaWVudENpdmlsU3RhdGV9LCBcbiAgICAgICR7ZGF0YS5jbGllbnRPY2N1cGF0aW9ufSxcbiAgICAgIHBvcnRhZG9yIGRvIFJHIG7CuiAke2RhdGEuY2xpZW50Ukd9LCBpbnNjcml0byBubyBDUEYgc29iIG8gbsK6ICR7Q1BGLmZvcm1hdChkYXRhLmNsaWVudENQRil9LCByZXNpZGVudGUgZSBcbiAgICAgIGRvbWljaWxpYWRvIGFcbiAgICAgICR7ZGF0YS5jbGllbnRTdHJlZXR9XG4gICAgICAke2RhdGEuY2xpZW50Q29tcGxlbWVudCB8fCAnICd9LCBDRVAgJHtkYXRhLmNsaWVudENFUH0sICR7ZGF0YS5jbGllbnRDaXR5fSAke2RhdGEuY2xpZW50U3RhdGV9YCB8fCAnICcsXG4gICAgfTsgICAgXG4gICAgcmV0dXJuIGNvbnRyYWN0O1xuICB9XG5cbiAgbWFrZUNOUEooZGF0YSkge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5tYWtlQ1BGKGRhdGEpKS50aGVuKChyZXMpID0+IFxuICAgICAgKHsgICAgICBcbiAgICAgICAgLi4ucmVzLCAgICAgICBcbiAgICAgICBjbGllbnRSZXN1bWU6IGAsIHBlc3NvYSBqdXLDrWRpY2EgZGUgZGlyZWl0byBwcml2YWRvLCBpbnNjcml0YSBubyBDTlBKIG7CuiAke2RhdGEuY2xpZW50Q05QSn0sIGNvbSBzZWRlIG5hXG4gICAgICAgJHtkYXRhLmNvbXBhbnlTdHJlZXR9XG4gICAgICAgJHsgZGF0YS5jb21wYW55Q29tcGxlbWVudCA/IGRhdGEuY29tcGFueUNvbXBsZW1lbnQgOiAnJ30sIENFUCAke2RhdGEuY29tcGFueUNFUH0sICR7ZGF0YS5jb21wYW55Q2l0eX0gJHtkYXRhLmNvbXBhbnlTdGF0ZX1gLFxuICAgICB9KVxuICAgICk7ICAgIFxuICB9XG4gIFxuICBhc3luYyBtYWtlKHVzZXJJZCwgZGF0YUNvbnRyYWN0LCBjb25maWcpIHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5zZXRDb25maWcoY29uZmlnLmF3cyk7XG4gICAgICBhd2FpdCB0aGlzLnNldFR5cGUoY29uZmlnLmNvbnRyYWN0KTtcbiAgICAgIGRhdGFDb250cmFjdC5jb250cmFjdE51bWJlciA9IGF3YWl0IHRoaXMuZ2VuZXJhdG9yTGFzdCgpO1xuICAgICAgaWYgKHRoaXMuY29uZmlnID09PSB1bmRlZmluZWQpIHRocm93IG5ldyBFcnJvckRvY3hQZGYoJ0NvbmZpZ3VyYcOnw6NvIG7Do28gaW5pY2lhbGl6YWRhJyk7XG4gICAgICBsZXQgZGF0YTtcbiAgICAgIC8vIGxldCBmaWxlO1xuXG4gICAgICBpZiAoZGF0YUNvbnRyYWN0LmNsaWVudENOUEogIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBkYXRhID0gYXdhaXQgdGhpcy5tYWtlQ05QSihkYXRhQ29udHJhY3QpO1xuICAgICAgICAvLyBmaWxlID0gcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJy4vLi4vLi4vYXNzZXRzL2RvY0V4LmRvY3gnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRhdGEgPSBhd2FpdCB0aGlzLm1ha2VDUEYoZGF0YUNvbnRyYWN0KTtcbiAgICAgICAgLy8gZmlsZSA9IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICcuLy4uLy4uL2Fzc2V0cy9kb2NFeC5kb2N4Jyk7XG4gICAgICB9XG5cbiAgICAgIGF3YWl0IHRoaXMuUGRmR2VuZXJhdG9yLmdlbmVyYXRlKGRhdGEsIHVzZXJJZCk7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuU3RvcmFnZS5zZXRCdWNrZXQoY29uZmlnLmJ1Y2tldCkpXG4gICAgICAgIC50aGVuKCgpID0+IHRoaXMuU3RvcmFnZS5zZXREZXN0aW5hdGlvbkRpcignY29udHJhY3RzJykpXG4gICAgICAgIC8vIC50aGVuKCgpID0+IHRoaXMuRG9jeC5tYWtlQ29udHJhY3QoZmlsZSwgZGF0YSkpXG4gICAgICAgIC8vIC50aGVuKCgpID0+IHRoaXMuUGRmR2VuZXJhdG9yLmdlbmVyYXRlKGRhdGEpKVxuICAgICAgICAvLyAudGhlbihyZXMgPT4gQnVmZmVyLmZyb20ocmVzLCAnYmFzZTY0JykpXG4gICAgICAgIC8vIC50aGVuKHJlcyA9PiB0aGlzLlN0b3JhZ2Uuc2V0RmlsZUJ1ZmZlcih7IGRhdGE6IHJlcywgdHlwZTogJ3BkZicgfSkpXG4gICAgICAgIC50aGVuKCgpID0+IHRoaXMuU3RvcmFnZS5zZXRGaWxlKGAuLyR7dXNlcklkfS5wZGZgKSlcbiAgICAgICAgLnRoZW4oKCkgPT4gdGhpcy5TdG9yYWdlLnVwbG9hZCgpKVxuICAgICAgICAudGhlbihyZXMgPT4gSlNPTi5zdHJpbmdpZnkocmVzKSlcbiAgICAgICAgLnRoZW4ocmVzID0+IEpTT04ucGFyc2UocmVzKSlcbiAgICAgICAgLnRoZW4ocmVzID0+IFByb21pc2UucmVzb2x2ZShkYXRhKVxuICAgICAgICAgIC50aGVuKHJlc3VsdCA9PiAoe1xuICAgICAgICAgICAgLi4ucmVzdWx0LFxuICAgICAgICAgICAgY29udHJhY3RVcmw6IHJlcy5Mb2NhdGlvbixcbiAgICAgICAgICAgIHN0YXR1czogJ0F0aXZvJyxcbiAgICAgICAgICB9KSkpXG4gICAgICAgIC50aGVuKHJlcyA9PiB0aGlzLnNhdmUodXNlcklkLCByZXMpKVxuICAgICAgICAuY2F0Y2goKGUpID0+IHsgdGhyb3cgZTsgfSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KGUpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHZpZXcoZGF0YUNvbnRyYWN0LCBjb25maWcpIHtcblxuICAgIC8vY29uc29sZS5sb2coZGF0YUNvbnRyYWN0KVxuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuc2V0Q29uZmlnKGNvbmZpZy5hd3MpO1xuICAgICAgYXdhaXQgdGhpcy5zZXRUeXBlKGNvbmZpZy5jb250cmFjdCk7XG4gICAgICBpZiAodGhpcy5jb25maWcgPT09IHVuZGVmaW5lZCkgdGhyb3cgbmV3IEVycm9yRG9jeFBkZignQ29uZmlndXJhw6fDo28gbsOjbyBpbmljaWFsaXphZGEnKTtcblxuICAgICAgY29uc3QgZGF0YSA9IGRhdGFDb250cmFjdFxuXG4gICAgICBhd2FpdCB0aGlzLlBkZkdlbmVyYXRvci5nZW5lcmF0ZShkYXRhLCBkYXRhLmNsaWVudElkKTtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5TdG9yYWdlLnNldEJ1Y2tldChjb25maWcuYnVja2V0KSlcbiAgICAgICAgLnRoZW4oKCkgPT4gdGhpcy5TdG9yYWdlLnNldERlc3RpbmF0aW9uRGlyKCdjb250cmFjdHMnKSlcbiAgICAgICAgLnRoZW4oKCkgPT4gdGhpcy5TdG9yYWdlLnNldEZpbGUoYC4vJHtkYXRhLmNsaWVudElkfS5wZGZgKSlcbiAgICAgICAgLnRoZW4oKCkgPT4gdGhpcy5TdG9yYWdlLnVwbG9hZCgpKVxuICAgICAgICAudGhlbihyZXMgPT4gUHJvbWlzZS5yZXNvbHZlKGRhdGEpXG4gICAgICAgICAgLnRoZW4ocmVzdWx0ID0+ICh7XG4gICAgICAgICAgICAuLi5yZXN1bHQsXG4gICAgICAgICAgICBjb250cmFjdFVybDogcmVzLkxvY2F0aW9uLFxuICAgICAgICAgICAgc3RhdHVzOiAnQXRpdm8nLFxuICAgICAgICAgIH0pKSlcbiAgICAgICAgLnRoZW4ocmVzID0+IHRoaXMudXBkYXRlKHJlcykpXG4gICAgICAgIC5jYXRjaCgoZSkgPT4geyB0aHJvdyBlOyB9KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoZSk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgaW5zZXJ0U2lnbmF0dXJlKHVzZXJJZCwgZGF0YUNvbnRyYWN0LCBjb25maWcpIHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5zZXRDb25maWcoY29uZmlnLmF3cyk7XG4gICAgICBhd2FpdCB0aGlzLnNldFR5cGUoY29uZmlnLmNvbnRyYWN0KTtcbiAgICAgIGlmICh0aGlzLmNvbmZpZyA9PT0gdW5kZWZpbmVkKSB0aHJvdyBuZXcgRXJyb3JEb2N4UGRmKCdDb25maWd1cmHDp8OjbyBuw6NvIGluaWNpYWxpemFkYScpO1xuICAgICAgLy9sZXQgZmlsZTtcbiAgICAgIC8vIGlmIChkYXRhQ29udHJhY3QuY2xpZW50Q05QSiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyAgIGZpbGUgPSBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnLi8uLi8uLi9hc3NldHMvZG9jRXguZG9jeCcpO1xuICAgICAgLy8gfSBlbHNlIHtcbiAgICAgIC8vICAgZmlsZSA9IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICcuLy4uLy4uL2Fzc2V0cy9kb2NFeC5kb2N4Jyk7XG4gICAgICAvLyB9XG4gICAgICBjb25zdCBkYXRhID0gdGhpcy5tYWtlRG9jdW1lbnQoZGF0YUNvbnRyYWN0LmRhdGEpO1xuICAgICAgYXdhaXQgdGhpcy5QZGZHZW5lcmF0b3IuZ2VuZXJhdGUoZGF0YSwgdXNlcklkKTtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5TdG9yYWdlLnNldEJ1Y2tldChjb25maWcuYnVja2V0KSlcbiAgICAgICAgLnRoZW4oKCkgPT4gdGhpcy5TdG9yYWdlLnNldERlc3RpbmF0aW9uRGlyKCdjb250cmFjdHMnKSlcbiAgICAgICAgLy8udGhlbigoKSA9PiB0aGlzLkRvY3gubWFrZUNvbnRyYWN0KGZpbGUsIGRhdGFDb250cmFjdC5kYXRhKSlcbiAgICAgICAgLy8udGhlbihyZXMgPT4gQnVmZmVyLmZyb20ocmVzLCAnYmFzZTY0JykpXG4gICAgICAgIC8vLnRoZW4ocmVzID0+IHRoaXMuU3RvcmFnZS5zZXRGaWxlQnVmZmVyKHsgZGF0YTogcmVzLCB0eXBlOiAnZG9jeCcgfSkpXG4gICAgICAgIC50aGVuKCgpID0+IHRoaXMuU3RvcmFnZS5zZXRGaWxlKCcuLycgKyB1c2VySWQgKyBcIi5wZGZcIikpXG4gICAgICAgIC50aGVuKCgpID0+IHRoaXMuU3RvcmFnZS51cGxvYWQoKSlcbiAgICAgICAgLnRoZW4ocmVzID0+IEpTT04uc3RyaW5naWZ5KHJlcykpXG4gICAgICAgIC50aGVuKHJlcyA9PiBKU09OLnBhcnNlKHJlcykpXG4gICAgICAgIC50aGVuKGF3cyA9PiBQcm9taXNlLnJlc29sdmUoXG4gICAgICAgICAgICBkYXRhLnRoZW4oKHJlc3VsdCkgPT4geyBcbiAgICAgICAgICAgICAgcmV0dXJuIHthd3MsIHJlc3VsdH07XG4gICAgICAgICAgICB9KSkpXG4gICAgICAgIC50aGVuKChyZXMpID0+IHtcbiAgICAgICAgICByZXMucmVzdWx0LmNvbnRyYWN0VXJsID0gcmVzLmF3cy5Mb2NhdGlvbjtcbiAgICAgICAgICByZXMucmVzdWx0LnN0YXR1cyA9ICdBc3NpbmFkbyc7XG4gICAgICAgICAgcmV0dXJuIHJlcy5yZXN1bHQ7XG4gICAgICAgIH0pXG4gICAgICAgIC50aGVuKHJlcyA9PiB0aGlzLnVwZGF0ZShyZXMsIGRhdGFDb250cmFjdC5pZCkpXG4gICAgICAgIC5jYXRjaCgoZSkgPT4geyB0aHJvdyBlOyB9KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoZSk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgbWFrZURvY3VtZW50KGRhdGFDb250cmFjdCl7XG4gICAgaWYgKGRhdGFDb250cmFjdC5jbGllbnRDTlBKICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLm1ha2VDTlBKKGRhdGFDb250cmFjdCk7XG4gICAgICAvL2ZpbGUgPSBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnLi8uLi8uLi9hc3NldHMvZG9jRXguZG9jeCcpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5tYWtlQ1BGKGRhdGFDb250cmFjdCk7XG4gICAgICAvL2ZpbGUgPSBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnLi8uLi8uLi9hc3NldHMvZG9jRXguZG9jeCcpO1xuICAgIH1cbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IChEb2N4LCBEaWdpdGFsRGF0YSwgU3RvcmFnZSwgUGRmR2VuZXJhdG9yKSA9PiBuZXcgQ29udHJhY3QoRG9jeCwgRGlnaXRhbERhdGEsIFN0b3JhZ2UsIFBkZkdlbmVyYXRvcik7XG4iXX0= | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kb21haW4vQ29udHJhY3QuanMiXSwibmFtZXMiOlsibnVtZXJvUG9yRXh0ZW5zbyIsInJlcXVpcmUiLCJDUEYiLCJDb250cmFjdCIsIkNvbnRyYWN0RGVjb3JhdG9yIiwiY29uc3RydWN0b3IiLCJEb2N4IiwiRGlnaXRhbERhdGEiLCJTM1N0b3JhZ2UiLCJQZGZHZW5lcmF0b3IiLCJTdG9yYWdlIiwic2V0RGlnaXRhbERhdGEiLCJzZXRDb25maWciLCJjb25maWciLCJtYWtlQ1BGIiwiZGF0YSIsImNvdGFjYW8iLCJ0aGVuIiwicmVzIiwianNvbiIsInJlc3BvbnNlIiwiY2xlYW4iLCJyZXBsYWNlIiwicGFyc2VJbnQiLCJ2YWx1ZSIsInRvRml4ZWQiLCJ2YWwiLCJwb3JFeHRlbnNvIiwicGFyc2VGbG9hdCIsImVzdGlsbyIsIm1vbmV0YXJpbyIsImFtb3VudE1vbmV5IiwiY29udHJhY3QiLCJpbnZlc3RtZW50SWQiLCJpZCIsInR5cGUiLCJwZW5hbHR5UG9yY2VudCIsInBlbmFsdHlBZHYiLCJjbGllbnROYW1lIiwibWFuYWdlck5hbWUiLCJjb250cmFjdE51bWJlciIsImNvbnRyYWN0RW5kIiwiY29udHJhY3RUYXhlIiwiY29udHJhY3RUcmFkZSIsImFtb3VudENyeXB0IiwiY29udHJhY3RQb3JjZW50IiwiY29udHJhY3RQb3JjZW50VG90YWwiLCJiYW5rTmFtZSIsImJhbmsiLCJuYW1lIiwiYmFua1RpdHVsYXIiLCJ1c2VyTmFtZSIsImJhbmtBZ2VuY3kiLCJhZ2VuY3kiLCJiYW5rQWNjb3VudCIsImFjY291bnQiLCJiYW5rQ29kZSIsImNvZGUiLCJpbWFnZSIsImRhdGUiLCJEYXRlIiwiZm9ybWF0IiwiY2xpZW50UmVzdW1lIiwiY2xpZW50TmF0aW9uYWxpdHkiLCJjbGllbnRDaXZpbFN0YXRlIiwiY2xpZW50T2NjdXBhdGlvbiIsImNsaWVudFJHIiwiY2xpZW50Q1BGIiwiY2xpZW50U3RyZWV0IiwiY2xpZW50Q29tcGxlbWVudCIsImNsaWVudENFUCIsImNsaWVudENpdHkiLCJjbGllbnRTdGF0ZSIsIm1ha2VDTlBKIiwiUHJvbWlzZSIsInJlc29sdmUiLCJzb2NpYWxSZWFzb24iLCJjbGllbnRDTlBKIiwiY29tcGFueVN0cmVldCIsImNvbXBhbnlDb21wbGVtZW50IiwiY29tcGFueUNFUCIsImNvbXBhbnlDaXR5IiwiY29tcGFueVN0YXRlIiwicGFydG5lckNsaWVudE5hbWUiLCJwYXJ0bmVyQ2l2aWxTdGF0ZSIsInBhcnRuZXJQcm9mZXNzaW9uIiwicGFydG5lclBlcnNvbmFsUmVnaXN0ZXIiLCJwYXJ0bmVyUGVyc29uYWxEb2N1bWVudCIsInBhcnRuZXJBZGRyZXNzIiwicGFydG5ldFBvc3RhbENvZGUiLCJtYWtlIiwidXNlcklkIiwiZGF0YUNvbnRyYWN0IiwiYXdzIiwic2V0VHlwZSIsImdlbmVyYXRvckxhc3QiLCJ1bmRlZmluZWQiLCJFcnJvckRvY3hQZGYiLCJnZW5lcmF0ZSIsInNldEJ1Y2tldCIsImJ1Y2tldCIsInNldERlc3RpbmF0aW9uRGlyIiwic2V0RmlsZSIsInVwbG9hZCIsIkpTT04iLCJzdHJpbmdpZnkiLCJwYXJzZSIsInJlc3VsdCIsImNvbnRyYWN0VXJsIiwiTG9jYXRpb24iLCJzdGF0dXMiLCJzYXZlIiwiY2F0Y2giLCJlIiwicmVqZWN0IiwidmlldyIsImNsaWVudElkIiwidXBkYXRlIiwiaW5zZXJ0U2lnbmF0dXJlIiwibWFrZURvY3VtZW50IiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7Ozs7OztBQUVBLE1BQU1BLG1CQUFtQkMsUUFBUSxvQkFBUixDQUF6QjtBQUNBLE1BQU1DLE1BQU1ELFFBQVEsS0FBUixDQUFaOztBQUVBLE1BQU1FLFFBQU4sU0FBdUJDLDJCQUF2QixDQUF5Qzs7QUFFdkNDLGNBQVlDLElBQVosRUFBa0JDLFdBQWxCLEVBQStCQyxTQUEvQixFQUEwQ0Ms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bkJyQixDQUFQO0FBb0JELE9BaENELENBZ0NFLE9BQU9BLENBQVAsRUFBVTtBQUNWLGVBQU92QyxRQUFRd0MsTUFBUixDQUFlRCxDQUFmLENBQVA7QUFDRDtBQW5DaUQ7QUFvQ25EOztBQUVLTSxjQUFOLENBQW1CM0IsWUFBbkIsRUFBZ0M7QUFBQTs7QUFBQTtBQUM5QixVQUFJQSxhQUFhZixVQUFiLEtBQTRCbUIsU0FBaEMsRUFBMkM7QUFDekMsZUFBTyxNQUFNLE9BQUt2QixRQUFMLENBQWNtQixZQUFkLENBQWI7QUFDQTtBQUNELE9BSEQsTUFHTztBQUNMLGVBQU8sTUFBTSxPQUFLOUUsT0FBTCxDQUFhOEUsWUFBYixDQUFiO0FBQ0E7QUFDRDtBQVA2QjtBQVEvQjtBQTVMc0M7O0FBK0x6QzRCLE9BQU9DLE9BQVAsR0FBaUIsQ0FBQ25ILElBQUQsRUFBT0MsV0FBUCxFQUFvQkcsT0FBcEIsRUFBNkJELFlBQTdCLEtBQThDLElBQUlOLFFBQUosQ0FBYUcsSUFBYixFQUFtQkMsV0FBbkIsRUFBZ0NHLE9BQWhDLEVBQXlDRCxZQUF6QyxDQUEvRCIsImZpbGUiOiJDb250cmFjdC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBFcnJvckRvY3hQZGYgZnJvbSAnLi4vbGliL0Vycm9yRG9jeFBkZic7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCBkYXRlRm9ybWF0IGZyb20gJy4uL2xpYi9kYXRlJztcbmltcG9ydCBiYXNlNjRJTUdCdWZmZXIgZnJvbSAnLi4vbGliL2Jhc2U2NElNR3RvQnVmZmVyJztcbmltcG9ydCBDb250cmFjdERlY29yYXRvciBmcm9tICcuLi9kZWNvcmF0b3JzL0NvbnRyYWN0RGVjb3JhdG9yJztcbmltcG9ydCBmZXRjaCBmcm9tICdub2RlLWZldGNoJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcblxuY29uc3QgbnVtZXJvUG9yRXh0ZW5zbyA9IHJlcXVpcmUoJ251bWVyby1wb3ItZXh0ZW5zbycpO1xuY29uc3QgQ1BGID0gcmVxdWlyZSgnY3BmJyk7XG5cbmNsYXNzIENvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3REZWNvcmF0b3Ige1xuXG4gIGNvbnN0cnVjdG9yKERvY3gsIERpZ2l0YWxEYXRhLCBTM1N0b3JhZ2UsIFBkZkdlbmVyYXRvcikge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5TdG9yYWdlICAgICAgPSBTM1N0b3JhZ2U7XG4gICAgdGhpcy5Eb2N4ICAgICAgICAgPSBEb2N4O1xuICAgIHRoaXMuUGRmR2VuZXJhdG9yID0gUGRmR2VuZXJhdG9yO1xuICAgIHRoaXMuc2V0RGlnaXRhbERhdGEoRGlnaXRhbERhdGEpO1xuICB9XG5cbiAgc2V0Q29uZmlnKGNvbmZpZykge1xuICAgIHRoaXMuY29uZmlnID0gY29uZmlnO1xuICAgIHRoaXMuU3RvcmFnZSA9IHRoaXMuU3RvcmFnZShjb25maWcpO1xuICB9XG5cblxuICBhc3luYyBtYWtlQ1BGKGRhdGEpIHtcbiAgICBjb25zdCBjb3RhY2FvID0gYXdhaXQgZmV0Y2goJ2h0dHBzOi8vd3d3LmJ0Y2J1eXNob3AuY29tL2FwaS9jcmF3bGVycy9pY29pbm9taWEnKVxuICAgICAgLnRoZW4ocmVzID0+IHJlcy5qc29uKCkpXG4gICAgICAudGhlbihqc29uID0+IGpzb24ucmVzcG9uc2UuY2xlYW4ucmVwbGFjZSgvW1xcRF0rL2csICcnKSlcbiAgICAgIC50aGVuKHZhbHVlID0+IHBhcnNlSW50KHZhbHVlKSlcbiAgICAgIC50aGVuKHZhbHVlID0+ICh2YWx1ZSAvIDEwMCkudG9GaXhlZCgyKSk7XG5cbiAgICBjb25zdCB2YWwgPSBudW1lcm9Qb3JFeHRlbnNvLnBvckV4dGVuc28ocGFyc2VGbG9hdChjb3RhY2FvKSwgbnVtZXJvUG9yRXh0ZW5zby5lc3RpbG8ubW9uZXRhcmlvKTtcbiAgICBjb25zdCBhbW91bnRNb25leSA9IGAke2NvdGFjYW99ICgke3ZhbH0pYDtcbiAgICAvLyBjb25zdCB7eWVhciwgbW9udGgsIGRheX0gPSBkYXRlRm9ybWF0LmRhdGVQVEJSKCk7XG4gICAgY29uc3QgY29udHJhY3QgPSB7XG4gICAgICBpbnZlc3RtZW50SWQ6IGRhdGEuaWQsXG4gICAgICB0eXBlOiBkYXRhLnR5cGUsXG4gICAgICBwZW5hbHR5UG9yY2VudDogZGF0YS5wZW5hbHR5UG9yY2VudCB8fCAwLFxuICAgICAgcGVuYWx0eUFkdjogZGF0YS5wZW5hbHR5QWR2IHx8IDAsXG4gICAgICBjbGllbnROYW1lOiBkYXRhLmNsaWVudE5hbWUgfHwgJ0RhbmllbCBTaWx2YSBNaXJhbmRhJyxcbiAgICAgIG1hbmFnZXJOYW1lOiBkYXRhLm1hbmFnZXJOYW1lIHx8ICdEYW5pZWwgU2lsdmEgTWlyYW5kYScsICAgICAgICBcbiAgICAgIGNvbnRyYWN0TnVtYmVyOiBkYXRhLmNvbnRyYWN0TnVtYmVyIHx8ICdFeGVtcGxvJyxcbiAgICAgIGNvbnRyYWN0RW5kOiBkYXRhLmNvbnRyYWN0RW5kIHx8ICcwMC8wMC8wMDAwJyxcbiAgICAgIGNvbnRyYWN0VGF4ZTogZGF0YS5jb250cmFjdFRheGUgfHwgMCxcbiAgICAgIGNvbnRyYWN0VHJhZGU6IGRhdGEuY29udHJhY3RUcmFkZSB8fCAwLFxuICAgICAgYW1vdW50Q3J5cHQ6IGRhdGEuYW1vdW50Q3J5cHQgfHwgMCxcbiAgICAgIGNvbnRyYWN0UG9yY2VudDogZGF0YS5jb250cmFjdFBvcmNlbnQgfHwgMCxcbiAgICAgIGNvbnRyYWN0UG9yY2VudFRvdGFsOiBkYXRhLmNvbnRyYWN0UG9yY2VudFRvdGFsIHx8IDAsXG4gICAgICBiYW5rTmFtZTogZGF0YS5iYW5rLm5hbWUgfHwgJ0JUQyBCYW5jbycsXG4gICAgICBiYW5rVGl0dWxhcjogZGF0YS5iYW5rLnVzZXJOYW1lIHx8ICdCVEMgQmFuY28nLFxuICAgICAgYmFua0FnZW5jeTogZGF0YS5iYW5rLmFnZW5jeSB8fCAnMDAwMCcsXG4gICAgICBiYW5rQWNjb3VudDogZGF0YS5iYW5rLmFjY291bnQgfHwgJzAwMDAtMDAnLFxuICAgICAgYmFua0NvZGU6IGRhdGEuYmFuay5jb2RlIHx8ICcwMDAwLTAwJywgICAgICBcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgICAgaW1hZ2U6IGJhc2U2NElNR0J1ZmZlcihkYXRhLmltYWdlKSxcbiAgICAgIGFtb3VudE1vbmV5LFxuICAgICAgLi4uZGF0ZUZvcm1hdCgpLFxuICAgICAgZGF0ZTogbW9tZW50KG5ldyBEYXRlKCkpLmZvcm1hdCgnREQvTU0vWVlZWScpLCAgICAgICBcbiAgICAgIGNsaWVudFJlc3VtZTogYCR7ZGF0YS5jbGllbnROYW1lfSwgbmF0dXJhbCBkZSAke2RhdGEuY2xpZW50TmF0aW9uYWxpdHl9LCAke2RhdGEuY2xpZW50Q2l2aWxTdGF0ZX0sIFxuICAgICAgJHtkYXRhLmNsaWVudE9jY3VwYXRpb259LFxuICAgICAgcG9ydGFkb3IgZG8gUkcgbsK6ICR7ZGF0YS5jbGllbnRSR30sIGluc2NyaXRvIG5vIENQRiBzb2IgbyBuwrogJHtDUEYuZm9ybWF0KGRhdGEuY2xpZW50Q1BGKX0sIHJlc2lkZW50ZSBlIFxuICAgICAgZG9taWNpbGlhZG8gYVxuICAgICAgJHtkYXRhLmNsaWVudFN0cmVldH1cbiAgICAgICR7ZGF0YS5jbGllbnRDb21wbGVtZW50IHx8ICcgJ30sIENFUCAke2RhdGEuY2xpZW50Q0VQfSwgJHtkYXRhLmNsaWVudENpdHl9ICR7ZGF0YS5jbGllbnRTdGF0ZX1gIHx8ICcgJyxcbiAgICB9OyAgICBcbiAgICByZXR1cm4gY29udHJhY3Q7XG4gIH1cblxuICBtYWtlQ05QSihkYXRhKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLm1ha2VDUEYoZGF0YSkpLnRoZW4oKHJlcykgPT4gXG4gICAgICAoeyAgICAgIFxuICAgICAgICAuLi5yZXMsICAgICAgIFxuICAgICAgICBjbGllbnRSZXN1bWU6IGAke2RhdGEuc29jaWFsUmVhc29ufSwgcGVzc29hIGp1csOtZGljYSBkZSBkaXJlaXRvIHByaXZhZG8sIGluc2NyaXRhIG5vIENOUEogbsK6ICR7ZGF0YS5jbGllbnRDTlBKfSwgY29tIHNlZGUgbmEgJHtkYXRhLmNvbXBhbnlTdHJlZXR9ICR7IGRhdGEuY29tcGFueUNvbXBsZW1lbnQgPyBkYXRhLmNvbXBhbnlDb21wbGVtZW50IDogJyd9LCBDRVAgJHtkYXRhLmNvbXBhbnlDRVB9LCAke2RhdGEuY29tcGFueUNpdHl9LCAke2RhdGEuY29tcGFueVN0YXRlfSwgcmVwcmVzZW50YWRvIHBvciAke2RhdGEucGFydG5lckNsaWVudE5hbWV9LCAke2RhdGEucGFydG5lckNpdmlsU3RhdGV9LCAke2RhdGEucGFydG5lclByb2Zlc3Npb259LCBwb3J0YWRvciBkbyBSRyBuwrogJHtkYXRhLnBhcnRuZXJQZXJzb25hbFJlZ2lzdGVyfSwgaW5zY3JpdG8gbm8gQ1BGIHNvYiBvIG7CuiAke2RhdGEucGFydG5lclBlcnNvbmFsRG9jdW1lbnR9LCByZXNpZGVudGUgZSBkb21pY2lsaWFkbyBhICR7ZGF0YS5wYXJ0bmVyQWRkcmVzc30sIENFUCAke2RhdGEucGFydG5ldFBvc3RhbENvZGV9YCxcbiAgICAgICAgLy8gY2xpZW50UmVzdW1lOiBgLCBwZXNzb2EganVyw61kaWNhIGRlIGRpcmVpdG8gcHJpdmFkbywgaW5zY3JpdGEgbm8gQ05QSiBuwrogJHtkYXRhLmNsaWVudENOUEp9LCBjb20gc2VkZSBuYVxuICAgICAgICAvLyAke2RhdGEuY29tcGFueVN0cmVldH1cbiAgICAgICAgLy8gJHsgZGF0YS5jb21wYW55Q29tcGxlbWVudCA/IGRhdGEuY29tcGFueUNvbXBsZW1lbnQgOiAnJ30sIENFUCAke2RhdGEuY29tcGFueUNFUH0sICR7ZGF0YS5jb21wYW55Q2l0eX0gJHtkYXRhLmNvbXBhbnlTdGF0ZX1gLFxuICAgICB9KVxuICAgICk7ICAgIFxuICB9XG4gIFxuICBhc3luYyBtYWtlKHVzZXJJZCwgZGF0YUNvbnRyYWN0LCBjb25maWcpIHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5zZXRDb25maWcoY29uZmlnLmF3cyk7XG4gICAgICBhd2FpdCB0aGlzLnNldFR5cGUoY29uZmlnLmNvbnRyYWN0KTtcbiAgICAgIGRhdGFDb250cmFjdC5jb250cmFjdE51bWJlciA9IGF3YWl0IHRoaXMuZ2VuZXJhdG9yTGFzdCgpO1xuICAgICAgaWYgKHRoaXMuY29uZmlnID09PSB1bmRlZmluZWQpIHRocm93IG5ldyBFcnJvckRvY3hQZGYoJ0NvbmZpZ3VyYcOnw6NvIG7Do28gaW5pY2lhbGl6YWRhJyk7XG4gICAgICBsZXQgZGF0YTtcbiAgICAgIC8vIGxldCBmaWxlO1xuXG4gICAgICBpZiAoZGF0YUNvbnRyYWN0LmNsaWVudENOUEogIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBkYXRhID0gYXdhaXQgdGhpcy5tYWtlQ05QSihkYXRhQ29udHJhY3QpO1xuICAgICAgICAvLyBmaWxlID0gcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJy4vLi4vLi4vYXNzZXRzL2RvY0V4LmRvY3gnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRhdGEgPSBhd2FpdCB0aGlzLm1ha2VDUEYoZGF0YUNvbnRyYWN0KTtcbiAgICAgICAgLy8gZmlsZSA9IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICcuLy4uLy4uL2Fzc2V0cy9kb2NFeC5kb2N4Jyk7XG4gICAgICB9XG5cbiAgICAgIGF3YWl0IHRoaXMuUGRmR2VuZXJhdG9yLmdlbmVyYXRlKGRhdGEsIHVzZXJJZCk7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuU3RvcmFnZS5zZXRCdWNrZXQoY29uZmlnLmJ1Y2tldCkpXG4gICAgICAgIC50aGVuKCgpID0+IHRoaXMuU3RvcmFnZS5zZXREZXN0aW5hdGlvbkRpcignY29udHJhY3RzJykpXG4gICAgICAgIC8vIC50aGVuKCgpID0+IHRoaXMuRG9jeC5tYWtlQ29udHJhY3QoZmlsZSwgZGF0YSkpXG4gICAgICAgIC8vIC50aGVuKCgpID0+IHRoaXMuUGRmR2VuZXJhdG9yLmdlbmVyYXRlKGRhdGEpKVxuICAgICAgICAvLyAudGhlbihyZXMgPT4gQnVmZmVyLmZyb20ocmVzLCAnYmFzZTY0JykpXG4gICAgICAgIC8vIC50aGVuKHJlcyA9PiB0aGlzLlN0b3JhZ2Uuc2V0RmlsZUJ1ZmZlcih7IGRhdGE6IHJlcywgdHlwZTogJ3BkZicgfSkpXG4gICAgICAgIC50aGVuKCgpID0+IHRoaXMuU3RvcmFnZS5zZXRGaWxlKGAuLyR7dXNlcklkfS5wZGZgKSlcbiAgICAgICAgLnRoZW4oKCkgPT4gdGhpcy5TdG9yYWdlLnVwbG9hZCgpKVxuICAgICAgICAudGhlbihyZXMgPT4gSlNPTi5zdHJpbmdpZnkocmVzKSlcbiAgICAgICAgLnRoZW4ocmVzID0+IEpTT04ucGFyc2UocmVzKSlcbiAgICAgICAgLnRoZW4ocmVzID0+IFByb21pc2UucmVzb2x2ZShkYXRhKVxuICAgICAgICAgIC50aGVuKHJlc3VsdCA9PiAoe1xuICAgICAgICAgICAgLi4ucmVzdWx0LFxuICAgICAgICAgICAgY29udHJhY3RVcmw6IHJlcy5Mb2NhdGlvbixcbiAgICAgICAgICAgIHN0YXR1czogJ0F0aXZvJyxcbiAgICAgICAgICB9KSkpXG4gICAgICAgIC50aGVuKHJlcyA9PiB0aGlzLnNhdmUodXNlcklkLCByZXMpKVxuICAgICAgICAuY2F0Y2goKGUpID0+IHsgdGhyb3cgZTsgfSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KGUpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHZpZXcoZGF0YUNvbnRyYWN0LCBjb25maWcpIHtcblxuICAgIC8vY29uc29sZS5sb2coZGF0YUNvbnRyYWN0KVxuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuc2V0Q29uZmlnKGNvbmZpZy5hd3MpO1xuICAgICAgYXdhaXQgdGhpcy5zZXRUeXBlKGNvbmZpZy5jb250cmFjdCk7XG4gICAgICBpZiAodGhpcy5jb25maWcgPT09IHVuZGVmaW5lZCkgdGhyb3cgbmV3IEVycm9yRG9jeFBkZignQ29uZmlndXJhw6fDo28gbsOjbyBpbmljaWFsaXphZGEnKTtcblxuICAgICAgY29uc3QgZGF0YSA9IGRhdGFDb250cmFjdFxuXG4gICAgICBhd2FpdCB0aGlzLlBkZkdlbmVyYXRvci5nZW5lcmF0ZShkYXRhLCBkYXRhLmNsaWVudElkKTtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5TdG9yYWdlLnNldEJ1Y2tldChjb25maWcuYnVja2V0KSlcbiAgICAgICAgLnRoZW4oKCkgPT4gdGhpcy5TdG9yYWdlLnNldERlc3RpbmF0aW9uRGlyKCdjb250cmFjdHMnKSlcbiAgICAgICAgLnRoZW4oKCkgPT4gdGhpcy5TdG9yYWdlLnNldEZpbGUoYC4vJHtkYXRhLmNsaWVudElkfS5wZGZgKSlcbiAgICAgICAgLnRoZW4oKCkgPT4gdGhpcy5TdG9yYWdlLnVwbG9hZCgpKVxuICAgICAgICAudGhlbihyZXMgPT4gUHJvbWlzZS5yZXNvbHZlKGRhdGEpXG4gICAgICAgICAgLnRoZW4ocmVzdWx0ID0+ICh7XG4gICAgICAgICAgICAuLi5yZXN1bHQsXG4gICAgICAgICAgICBjb250cmFjdFVybDogcmVzLkxvY2F0aW9uLFxuICAgICAgICAgICAgc3RhdHVzOiAnQXRpdm8nLFxuICAgICAgICAgIH0pKSlcbiAgICAgICAgLnRoZW4ocmVzID0+IHRoaXMudXBkYXRlKHJlcykpXG4gICAgICAgIC5jYXRjaCgoZSkgPT4geyB0aHJvdyBlOyB9KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoZSk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgaW5zZXJ0U2lnbmF0dXJlKHVzZXJJZCwgZGF0YUNvbnRyYWN0LCBjb25maWcpIHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5zZXRDb25maWcoY29uZmlnLmF3cyk7XG4gICAgICBhd2FpdCB0aGlzLnNldFR5cGUoY29uZmlnLmNvbnRyYWN0KTtcbiAgICAgIGlmICh0aGlzLmNvbmZpZyA9PT0gdW5kZWZpbmVkKSB0aHJvdyBuZXcgRXJyb3JEb2N4UGRmKCdDb25maWd1cmHDp8OjbyBuw6NvIGluaWNpYWxpemFkYScpO1xuICAgICAgLy9sZXQgZmlsZTtcbiAgICAgIC8vIGlmIChkYXRhQ29udHJhY3QuY2xpZW50Q05QSiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyAgIGZpbGUgPSBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnLi8uLi8uLi9hc3NldHMvZG9jRXguZG9jeCcpO1xuICAgICAgLy8gfSBlbHNlIHtcbiAgICAgIC8vICAgZmlsZSA9IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICcuLy4uLy4uL2Fzc2V0cy9kb2NFeC5kb2N4Jyk7XG4gICAgICAvLyB9XG4gICAgICBjb25zdCBkYXRhID0gdGhpcy5tYWtlRG9jdW1lbnQoZGF0YUNvbnRyYWN0LmRhdGEpO1xuICAgICAgYXdhaXQgdGhpcy5QZGZHZW5lcmF0b3IuZ2VuZXJhdGUoZGF0YSwgdXNlcklkKTtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5TdG9yYWdlLnNldEJ1Y2tldChjb25maWcuYnVja2V0KSlcbiAgICAgICAgLnRoZW4oKCkgPT4gdGhpcy5TdG9yYWdlLnNldERlc3RpbmF0aW9uRGlyKCdjb250cmFjdHMnKSlcbiAgICAgICAgLy8udGhlbigoKSA9PiB0aGlzLkRvY3gubWFrZUNvbnRyYWN0KGZpbGUsIGRhdGFDb250cmFjdC5kYXRhKSlcbiAgICAgICAgLy8udGhlbihyZXMgPT4gQnVmZmVyLmZyb20ocmVzLCAnYmFzZTY0JykpXG4gICAgICAgIC8vLnRoZW4ocmVzID0+IHRoaXMuU3RvcmFnZS5zZXRGaWxlQnVmZmVyKHsgZGF0YTogcmVzLCB0eXBlOiAnZG9jeCcgfSkpXG4gICAgICAgIC50aGVuKCgpID0+IHRoaXMuU3RvcmFnZS5zZXRGaWxlKCcuLycgKyB1c2VySWQgKyBcIi5wZGZcIikpXG4gICAgICAgIC50aGVuKCgpID0+IHRoaXMuU3RvcmFnZS51cGxvYWQoKSlcbiAgICAgICAgLnRoZW4ocmVzID0+IEpTT04uc3RyaW5naWZ5KHJlcykpXG4gICAgICAgIC50aGVuKHJlcyA9PiBKU09OLnBhcnNlKHJlcykpXG4gICAgICAgIC50aGVuKGF3cyA9PiBQcm9taXNlLnJlc29sdmUoXG4gICAgICAgICAgICBkYXRhLnRoZW4oKHJlc3VsdCkgPT4geyBcbiAgICAgICAgICAgICAgcmV0dXJuIHthd3MsIHJlc3VsdH07XG4gICAgICAgICAgICB9KSkpXG4gICAgICAgIC50aGVuKChyZXMpID0+IHtcbiAgICAgICAgICByZXMucmVzdWx0LmNvbnRyYWN0VXJsID0gcmVzLmF3cy5Mb2NhdGlvbjtcbiAgICAgICAgICByZXMucmVzdWx0LnN0YXR1cyA9ICdBc3NpbmFkbyc7XG4gICAgICAgICAgcmV0dXJuIHJlcy5yZXN1bHQ7XG4gICAgICAgIH0pXG4gICAgICAgIC50aGVuKHJlcyA9PiB0aGlzLnVwZGF0ZShyZXMsIGRhdGFDb250cmFjdC5pZCkpXG4gICAgICAgIC5jYXRjaCgoZSkgPT4geyB0aHJvdyBlOyB9KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoZSk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgbWFrZURvY3VtZW50KGRhdGFDb250cmFjdCl7XG4gICAgaWYgKGRhdGFDb250cmFjdC5jbGllbnRDTlBKICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLm1ha2VDTlBKKGRhdGFDb250cmFjdCk7XG4gICAgICAvL2ZpbGUgPSBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnLi8uLi8uLi9hc3NldHMvZG9jRXguZG9jeCcpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5tYWtlQ1BGKGRhdGFDb250cmFjdCk7XG4gICAgICAvL2ZpbGUgPSBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnLi8uLi8uLi9hc3NldHMvZG9jRXguZG9jeCcpO1xuICAgIH1cbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IChEb2N4LCBEaWdpdGFsRGF0YSwgU3RvcmFnZSwgUGRmR2VuZXJhdG9yKSA9PiBuZXcgQ29udHJhY3QoRG9jeCwgRGlnaXRhbERhdGEsIFN0b3JhZ2UsIFBkZkdlbmVyYXRvcik7XG4iXX0= |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
2948356
25
7412
1