Update @azure/cosmos and @azure/core-auth packages (#4748)

This commit is contained in:
Joel Mut 2024-09-17 18:18:45 -03:00 коммит произвёл GitHub
Родитель 2900d57094
Коммит a7b9dfdbee
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: B5690EEEBB952194
18 изменённых файлов: 20029 добавлений и 4263 удалений

Просмотреть файл

@ -28,18 +28,18 @@
}
},
"dependencies": {
"@azure/cosmos": "3.10.0",
"@azure/core-auth": "^1.4.0",
"@azure/core-auth": "^1.7.2",
"@azure/cosmos": "^4.1.1",
"@azure/storage-blob": "^12.24.0",
"bcryptjs": "^2.4.3",
"botbuilder": "4.1.6",
"botbuilder-stdlib": "4.1.6",
"bcryptjs": "^2.4.3",
"lodash": "^4.17.20",
"p-map": "^4.0.0"
},
"devDependencies": {
"fs-extra": "^11.2.0",
"nock": "^11.9.1",
"nock": "^13.5.5",
"node-fetch": "^2.7.0"
},
"scripts": {

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Просмотреть файл

@ -29,14 +29,15 @@ const pjson = require('../package.json');
const mode = process.env.MOCK_MODE ? process.env.MOCK_MODE : MockMode.lockdown;
// Endpoint and authKey for the CosmosDB Emulator running locally
let containerIdSuffix = 0;
const emulatorEndpoint = 'https://localhost:8081';
const getSettings = () => {
const emulatorEndpoint = 'https://127.0.0.1:8081';
const getSettings = (test = null) => {
const testId = `${test?.parent?.title} ${test?.title}`.replace(/ /g, '_');
return {
cosmosDbEndpoint: emulatorEndpoint,
authKey: 'C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==',
databaseId: 'CosmosPartitionedStorageTestDb',
containerId: `CosmosPartitionedStorageTestContainer-${containerIdSuffix++}`,
containerId: `CosmosPartitionedStorageTestContainer-${testId}`,
cosmosClientOptions: {
agent: new https.Agent({ rejectUnauthorized: false }), // rejectUnauthorized disables the SSL verification for the locally-hosted Emulator
},
@ -94,11 +95,11 @@ const cleanup = async () => {
};
// called before each test
const prep = async () => {
const prep = async function () {
nock.cleanAll();
await checkEmulator();
const settings = getSettings();
const settings = getSettings(this.test);
if (mode !== MockMode.lockdown) {
nock.enableNetConnect();
@ -138,7 +139,7 @@ describe('CosmosDbPartitionedStorage - Constructor Tests', function () {
});
it('throws when no endpoint provided', function () {
const noEndpoint = getSettings();
const noEndpoint = getSettings(this.test);
noEndpoint.cosmosDbEndpoint = null;
assert.throws(
() => new CosmosDbPartitionedStorage(noEndpoint),
@ -147,7 +148,7 @@ describe('CosmosDbPartitionedStorage - Constructor Tests', function () {
});
it('throws when no authKey or tokenCredential provided', function () {
const noAuthKey = getSettings();
const noAuthKey = getSettings(this.test);
noAuthKey.authKey = null;
assert.throws(
() => new CosmosDbPartitionedStorage(noAuthKey),
@ -156,7 +157,7 @@ describe('CosmosDbPartitionedStorage - Constructor Tests', function () {
});
it('throws when no databaseId provided', function () {
const noDatabaseId = getSettings();
const noDatabaseId = getSettings(this.test);
noDatabaseId.databaseId = null;
assert.throws(
() => new CosmosDbPartitionedStorage(noDatabaseId),
@ -165,7 +166,7 @@ describe('CosmosDbPartitionedStorage - Constructor Tests', function () {
});
it('throws when no containerId provided', function () {
const noContainerId = getSettings();
const noContainerId = getSettings(this.test);
noContainerId.containerId = null;
assert.throws(
() => new CosmosDbPartitionedStorage(noContainerId),
@ -183,7 +184,7 @@ describe('CosmosDbPartitionedStorage - Base Storage Tests', function () {
it('passes cosmosClientOptions to CosmosClient', async function () {
const { nockDone } = await usingNock(this.test, mode, options);
const settingsWithClientOptions = getSettings();
const settingsWithClientOptions = getSettings(this.test);
settingsWithClientOptions.cosmosClientOptions = {
agent: new https.Agent({ rejectUnauthorized: false }),
connectionPolicy: { requestTimeout: 999 },
@ -202,7 +203,7 @@ describe('CosmosDbPartitionedStorage - Base Storage Tests', function () {
it('passes cosmosClientOptions with default userAgentSuffix', async function () {
const { nockDone } = await usingNock(this.test, mode, options);
const settingsWithClientOptions = getSettings();
const settingsWithClientOptions = getSettings(this.test);
settingsWithClientOptions.cosmosClientOptions = {
agent: new https.Agent({ rejectUnauthorized: false }),
connectionPolicy: { requestTimeout: 999 },
@ -325,8 +326,8 @@ describe('CosmosDbPartitionedStorage - Base Storage Tests', function () {
const newDb = 'new-db';
const defaultSettings = getSettings();
const settingsWithNewDb = getSettings();
const defaultSettings = getSettings(this.test);
const settingsWithNewDb = getSettings(this.test);
settingsWithNewDb.databaseId = newDb;
// cosmosDbPartitionedStorage requires the user creates the db,
@ -363,8 +364,8 @@ describe('CosmosDbPartitionedStorage - Base Storage Tests', function () {
const newContainer = 'new-container';
const defaultSettings = getSettings();
const settingsWithNewContainer = getSettings();
const defaultSettings = getSettings(this.test);
const settingsWithNewContainer = getSettings(this.test);
settingsWithNewContainer.containerId = newContainer;
const defaultClient = new CosmosDbPartitionedStorage(defaultSettings);

Просмотреть файл

@ -45,23 +45,7 @@ function usingNock(test, mode, options = null) {
};
const replaceRecordedInstanceId = function (requests) {
requests.map((req) => {
if (
req.body &&
req.body.document &&
req.body.document.dialogState &&
req.body.document.dialogState.dialogStack
) {
req.body.document.dialogState.dialogStack.forEach((stack) => {
if (stack.state && stack.state.values && stack.state.values.instanceId) {
stack.state.values.instanceId = instanceIdReplacement;
}
});
}
return req;
});
return requests;
return JSON.parse(JSON.stringify(requests).replace(instanceIdRegEx, `"instanceId":"${instanceIdReplacement}"`));
};
const setFixedScope = function (requests) {

122
yarn.lock
Просмотреть файл

@ -29,14 +29,6 @@
resolved "https://registry.yarnpkg.com/@azure/core-asynciterator-polyfill/-/core-asynciterator-polyfill-1.0.0.tgz#dcccebb88406e5c76e0e1d52e8cc4c43a68b3ee7"
integrity sha512-kmv8CGrPfN9SwMwrkiBK9VTQYxdFQEGe0BmQk+M8io56P9KNzpAxcWE/1fxJj7uouwN4kXF0BHW8DNlgx+wtCg==
"@azure/core-auth@^1.2.0", "@azure/core-auth@^1.4.0":
version "1.4.0"
resolved "https://registry.yarnpkg.com/@azure/core-auth/-/core-auth-1.4.0.tgz#6fa9661c1705857820dbc216df5ba5665ac36a9e"
integrity sha512-HFrcTgmuSuukRf/EdPmqBrc5l6Q5Uu+2TbuhaKbgaCpP2TfAeiNaQPAadxO+CYBRHGUzIDteMAjFspFLDLnKVQ==
dependencies:
"@azure/abort-controller" "^1.0.0"
tslib "^2.2.0"
"@azure/core-auth@^1.3.0":
version "1.3.2"
resolved "https://registry.yarnpkg.com/@azure/core-auth/-/core-auth-1.3.2.tgz#6a2c248576c26df365f6c7881ca04b7f6d08e3d0"
@ -45,7 +37,15 @@
"@azure/abort-controller" "^1.0.0"
tslib "^2.2.0"
"@azure/core-auth@^1.5.0":
"@azure/core-auth@^1.4.0":
version "1.4.0"
resolved "https://registry.yarnpkg.com/@azure/core-auth/-/core-auth-1.4.0.tgz#6fa9661c1705857820dbc216df5ba5665ac36a9e"
integrity sha512-HFrcTgmuSuukRf/EdPmqBrc5l6Q5Uu+2TbuhaKbgaCpP2TfAeiNaQPAadxO+CYBRHGUzIDteMAjFspFLDLnKVQ==
dependencies:
"@azure/abort-controller" "^1.0.0"
tslib "^2.2.0"
"@azure/core-auth@^1.5.0", "@azure/core-auth@^1.7.1", "@azure/core-auth@^1.7.2":
version "1.7.2"
resolved "https://registry.yarnpkg.com/@azure/core-auth/-/core-auth-1.7.2.tgz#558b7cb7dd12b00beec07ae5df5907d74df1ebd9"
integrity sha512-Igm/S3fDYmnMq1uKS38Ae1/m37B3zigdlZw+kocwEhh5GjyKjPrXKO2J6rzpC1wAxrNil/jX9BJRqBshyjnF3g==
@ -113,22 +113,7 @@
dependencies:
"@azure/core-asynciterator-polyfill" "^1.0.0"
"@azure/core-rest-pipeline@^1.1.0":
version "1.3.0"
resolved "https://registry.yarnpkg.com/@azure/core-rest-pipeline/-/core-rest-pipeline-1.3.0.tgz#cce1623383f2ed622f0b13ef53a7ed5239acfd23"
integrity sha512-XdGCm4sVfLvFbd3x17Aw6XNA8SK+sWFvVlOnNSSL2OJGJ4g10LspCpGnIqB+V6OZAaVwOx/eQQN2rOfZzf4Q5w==
dependencies:
"@azure/abort-controller" "^1.0.0"
"@azure/core-auth" "^1.3.0"
"@azure/core-tracing" "1.0.0-preview.13"
"@azure/logger" "^1.0.0"
form-data "^4.0.0"
http-proxy-agent "^4.0.1"
https-proxy-agent "^5.0.0"
tslib "^2.2.0"
uuid "^8.3.0"
"@azure/core-rest-pipeline@^1.10.1", "@azure/core-rest-pipeline@^1.3.0", "@azure/core-rest-pipeline@^1.9.1":
"@azure/core-rest-pipeline@^1.1.0", "@azure/core-rest-pipeline@^1.10.1", "@azure/core-rest-pipeline@^1.15.1", "@azure/core-rest-pipeline@^1.3.0", "@azure/core-rest-pipeline@^1.9.1":
version "1.16.3"
resolved "https://registry.yarnpkg.com/@azure/core-rest-pipeline/-/core-rest-pipeline-1.16.3.tgz#bde3bc3ebad7f885ddd9de6af5e5a8fc254b287e"
integrity sha512-VxLk4AHLyqcHsfKe4MZ6IQ+D+ShuByy+RfStKfSjxJoL3WBWq17VNmrz8aT8etKzqc2nAeIyLxScjpzsS4fz8w==
@ -150,14 +135,14 @@
"@opentelemetry/api" "^1.0.1"
tslib "^2.2.0"
"@azure/core-tracing@^1.0.0", "@azure/core-tracing@^1.0.1", "@azure/core-tracing@^1.1.2":
"@azure/core-tracing@^1.0.0", "@azure/core-tracing@^1.0.1", "@azure/core-tracing@^1.1.1", "@azure/core-tracing@^1.1.2":
version "1.1.2"
resolved "https://registry.yarnpkg.com/@azure/core-tracing/-/core-tracing-1.1.2.tgz#065dab4e093fb61899988a1cdbc827d9ad90b4ee"
integrity sha512-dawW9ifvWAWmUm9/h+/UQ2jrdvjCJ7VJEuCJ6XVNudzcOwm53BFZH4Q845vjfgoUAM8ZxokvVNxNxAITc502YA==
dependencies:
tslib "^2.6.2"
"@azure/core-util@^1.1.0", "@azure/core-util@^1.3.0", "@azure/core-util@^1.6.1", "@azure/core-util@^1.9.0":
"@azure/core-util@^1.1.0", "@azure/core-util@^1.3.0", "@azure/core-util@^1.6.1", "@azure/core-util@^1.8.1", "@azure/core-util@^1.9.0":
version "1.9.2"
resolved "https://registry.yarnpkg.com/@azure/core-util/-/core-util-1.9.2.tgz#1dc37dc5b0dae34c578be62cf98905ba7c0cafe7"
integrity sha512-l1Qrqhi4x1aekkV+OlcqsJa4AnAkj5p0JV8omgwjaV9OAbP41lvrMvs+CptfetKkeEaGRGSzby7sjPZEX7+kkQ==
@ -181,23 +166,21 @@
fast-xml-parser "^4.3.2"
tslib "^2.6.2"
"@azure/cosmos@3.10.0":
version "3.10.0"
resolved "https://registry.yarnpkg.com/@azure/cosmos/-/cosmos-3.10.0.tgz#ec11828e380a656f689357b51e8f3f451d78640d"
integrity sha512-B0cVMLy7XvsaL6t2AKn/1KDLfEctnH4AZAqkoDLR3Q+IXWHoZ5BxDWm5URr7PY2tW8igfWWMSiXxStBi6BWuVQ==
"@azure/cosmos@^4.1.1":
version "4.1.1"
resolved "https://registry.yarnpkg.com/@azure/cosmos/-/cosmos-4.1.1.tgz#6036cf835af8ff19e9ae01f29a34ea24230d91dc"
integrity sha512-EKcRHZy3enhz7hU/qlwW2urcoF7haFkQRbLhR+rUaAtzDaN6+F/rH4xJtNc94NjOEoeHUI+bkze63ZA55Gca0A==
dependencies:
"@azure/core-auth" "^1.2.0"
"@types/debug" "^4.1.4"
debug "^4.1.1"
fast-json-stable-stringify "^2.0.0"
jsbi "^3.1.3"
node-abort-controller "^1.0.4"
node-fetch "^2.6.0"
priorityqueuejs "^1.0.0"
semaphore "^1.0.5"
tslib "^2.0.0"
universal-user-agent "^6.0.0"
uuid "^8.3.0"
"@azure/abort-controller" "^2.0.0"
"@azure/core-auth" "^1.7.1"
"@azure/core-rest-pipeline" "^1.15.1"
"@azure/core-tracing" "^1.1.1"
"@azure/core-util" "^1.8.1"
fast-json-stable-stringify "^2.1.0"
jsbi "^4.3.0"
priorityqueuejs "^2.0.0"
semaphore "^1.1.0"
tslib "^2.6.2"
"@azure/functions@^1.2.3":
version "1.2.3"
@ -2943,13 +2926,6 @@
dependencies:
"@types/node" "*"
"@types/debug@^4.1.4":
version "4.1.7"
resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.7.tgz#7cc0ea761509124709b8b2d1090d8f6c17aadb82"
integrity sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==
dependencies:
"@types/ms" "*"
"@types/estree@1.0.5", "@types/estree@^1.0.5":
version "1.0.5"
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4"
@ -3114,11 +3090,6 @@
resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-8.2.0.tgz#3eb56d13a1de1d347ecb1957c6860c911704bc44"
integrity sha512-/Sge3BymXo4lKc31C8OINJgXLaw+7vL1/L1pGiBNpGrBiT8FQiaFpSYV0uhTaG4y78vcMBTMFsWaHDvuD+xGzQ==
"@types/ms@*":
version "0.7.31"
resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.31.tgz#31b7ca6407128a3d2bbc27fe2d21b345397f6197"
integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==
"@types/nconf@^0.10.7":
version "0.10.7"
resolved "https://registry.yarnpkg.com/@types/nconf/-/nconf-0.10.7.tgz#921830f3180700bef1aed07c36d27efd451d5bc0"
@ -6559,7 +6530,7 @@ fast-json-patch@^3.0.0-1:
resolved "https://registry.yarnpkg.com/fast-json-patch/-/fast-json-patch-3.1.1.tgz#85064ea1b1ebf97a3f7ad01e23f9337e72c66947"
integrity sha512-vf6IHUX2SBcA+5/+4883dsIjpBTqmfBjmYiWK1savxQmFk4JfBMLa7ynTYOs1Rolp/T1betJxHiGD3g1Mn8lUQ==
fast-json-stable-stringify@^2.0.0:
fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
@ -8160,10 +8131,10 @@ js-yaml@^3.14.1:
argparse "^1.0.7"
esprima "^4.0.0"
jsbi@^3.1.3:
version "3.1.4"
resolved "https://registry.yarnpkg.com/jsbi/-/jsbi-3.1.4.tgz#9654dd02207a66a4911b4e4bb74265bc2cbc9dd0"
integrity sha512-52QRRFSsi9impURE8ZUbzAMCLjPm4THO7H2fcuIvaaeFTbSysvkodbQQXIVsNgq/ypDbq6dJiuGKL0vZ/i9hUg==
jsbi@^4.3.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/jsbi/-/jsbi-4.3.0.tgz#b54ee074fb6fcbc00619559305c8f7e912b04741"
integrity sha512-SnZNcinB4RIcnEyZqFPdGPVgrg2AcnykiBy0sHVJQKHYeaLUvi3Exj+iaPpLnFVkDPZIV4U0yvgC9/R4uEAZ9g==
jsbn@1.1.0:
version "1.1.0"
@ -9422,6 +9393,15 @@ nock@^11.9.1:
mkdirp "^0.5.0"
propagate "^2.0.0"
nock@^13.5.5:
version "13.5.5"
resolved "https://registry.yarnpkg.com/nock/-/nock-13.5.5.tgz#cd1caaca281d42be17d51946367a3d53a6af3e78"
integrity sha512-XKYnqUrCwXC8DGG1xX4YH5yNIrlh9c065uaMZZHUoeUUINTOyt+x/G+ezYk0Ft6ExSREVIs+qBJDK503viTfFA==
dependencies:
debug "^4.1.0"
json-stringify-safe "^5.0.1"
propagate "^2.0.0"
node-abi@^3.3.0:
version "3.54.0"
resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.54.0.tgz#f6386f7548817acac6434c6cba02999c9aebcc69"
@ -9429,11 +9409,6 @@ node-abi@^3.3.0:
dependencies:
semver "^7.3.5"
node-abort-controller@^1.0.4:
version "1.2.1"
resolved "https://registry.yarnpkg.com/node-abort-controller/-/node-abort-controller-1.2.1.tgz#1eddb57eb8fea734198b11b28857596dc6165708"
integrity sha512-79PYeJuj6S9+yOHirR0JBLFOgjB6sQCir10uN6xRx25iD+ZD4ULqgRn3MwWBRaQGB0vEgReJzWwJo42T1R6YbQ==
node-abort-controller@^3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/node-abort-controller/-/node-abort-controller-3.1.1.tgz#a94377e964a9a37ac3976d848cb5c765833b8548"
@ -9457,7 +9432,7 @@ node-fetch-commonjs@^3.3.1:
node-domexception "^1.0.0"
web-streams-polyfill "^3.0.3"
node-fetch@^2.6.0, node-fetch@^2.6.12, node-fetch@^2.6.7, node-fetch@^2.7.0:
node-fetch@^2.6.12, node-fetch@^2.6.7, node-fetch@^2.7.0:
version "2.7.0"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d"
integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==
@ -10304,10 +10279,10 @@ prettier@^2.1.2:
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.1.2.tgz#3050700dae2e4c8b67c4c3f666cdb8af405e1ce5"
integrity sha512-16c7K+x4qVlJg9rEbXl7HEGmQyZlG4R9AgP+oHKRMsMsuk8s+ATStlf1NpDqyBI1HpVyfjLOeMhH2LvuNvV5Vg==
priorityqueuejs@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/priorityqueuejs/-/priorityqueuejs-1.0.0.tgz#2ee4f23c2560913e08c07ce5ccdd6de3df2c5af8"
integrity sha1-LuTyPCVgkT4IwHzlzN1t498sWvg=
priorityqueuejs@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/priorityqueuejs/-/priorityqueuejs-2.0.0.tgz#96064040edd847ee9dd3013d8e16297399a6bd4f"
integrity sha512-19BMarhgpq3x4ccvVi8k2QpJZcymo/iFUcrhPd4V96kYGovOdTsWwy7fxChYi4QY+m2EnGBWSX9Buakz+tWNQQ==
process-nextick-args@~2.0.0:
version "2.0.1"
@ -11037,7 +11012,7 @@ selenium-webdriver@4.6.1:
tmp "^0.2.1"
ws ">=8.7.0"
semaphore@^1.0.5:
semaphore@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/semaphore/-/semaphore-1.1.0.tgz#aaad8b86b20fe8e9b32b16dc2ee682a8cd26a8aa"
integrity sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA==
@ -12537,11 +12512,6 @@ unique-slug@^2.0.0:
dependencies:
imurmurhash "^0.1.4"
universal-user-agent@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.0.tgz#3381f8503b251c0d9cd21bc1de939ec9df5480ee"
integrity sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==
universalify@^0.1.0:
version "0.1.2"
resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"