diff --git a/doc/CTS.md b/doc/CTS.md index e05fab188f..c34e32a6d9 100644 --- a/doc/CTS.md +++ b/doc/CTS.md @@ -6,19 +6,31 @@ It is automaticaly generated for all languages, from a JSON entry point. ## How to run it ```bash -yarn cts:generate -yarn cts:test +yarn docker cts:generate +yarn docker cts:test ``` -If you only want to generate the tests for a set of languages, you can run: +If you only want to generate the tests for a language, you can run: ```bash -yarn cts:generate "javascript ruby" +yarn docker cts:generate javascript +``` + +Or for a specific client: + +```bash +yarn docker cts:generate all search +``` + +Or a specific language and client: + +```bash +yarn docker cts:generate javascript search ``` ## How to add test -The test generation script requires a JSON file name from the `operationId` (e.g. `search.json`), located in the `CTS//` folder (e.g. `CTS/search/`). +The test generation script requires a JSON file name from the `operationId` (e.g. `search.json`), located in the `CTS//requests/` folder (e.g. `CTS/search/requests/`). ```json [ @@ -45,8 +57,7 @@ And that's it! If the name of the file matches a real `operationId` in the spec, ## How to add a new language -- Add the language in the array `languages` in `tests/generateCTS.ts`. -- Create a template in `test/CTS/templates/.mustache` that parse a array of test into your test framework of choice +- Create a template in `test/CTS/templates//requests.mustache` that parses an array of tests into the test framework of choice When writing your template, here is a list of variables accessible from `mustache`: diff --git a/package.json b/package.json index e172e9bc4b..62d36717e5 100644 --- a/package.json +++ b/package.json @@ -11,8 +11,8 @@ "build:specs": "./scripts/builds/specs.sh ${0:-all} ${1:-yaml}", "build": "yarn build:specs && yarn build:clients", "clean": "rm -rf **/dist **/build **/node_modules", - "cts:generate": "yarn workspace tests start", - "cts:test": "yarn workspace tests test", + "cts:generate": "yarn workspace tests build && ./scripts/multiplexer.sh yarn workspace tests generate ${0:-all} ${1:-all} && yarn workspace tests lint:fix", + "cts:test": "./scripts/multiplexer.sh ./scripts/runCTS.sh ${0:-javascript} all", "docker:build": "./scripts/docker/build.sh", "docker:clean": "docker stop dev; docker rm -f dev; docker image rm -f api-clients-automation", "docker:mount": "./scripts/docker/mount.sh", diff --git a/scripts/multiplexer.sh b/scripts/multiplexer.sh index fdcbff16bf..2f1ef9aae4 100755 --- a/scripts/multiplexer.sh +++ b/scripts/multiplexer.sh @@ -15,9 +15,9 @@ DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null && pwd)" # Move to the root (easier to locate other scripts) cd ${DIR}/.. -CMD=$1 -LANGUAGE=$2 -CLIENT=$3 +CMD=${@:1:$#-2} # all arguments but the last 2 +LANGUAGE=${@: -2:1} # before last argument +CLIENT=${@: -1} # last argument if [[ $CMD == "./scripts/playground.sh" ]] && ([[ $LANGUAGE == "all" ]] || [[ $CLIENT == "all" ]]); then echo "You cannot use 'all' when running the playground, please specify the language and client" @@ -25,6 +25,16 @@ if [[ $CMD == "./scripts/playground.sh" ]] && ([[ $LANGUAGE == "all" ]] || [[ $C exit 1 fi +if [[ $CMD == "./scripts/runCTS.sh" ]]; then + if [[ $CLIENT == "all" ]]; then + CLIENT=search # dummy client to only run once + else + echo "You must use 'all' clients when testing the CTS, as they all run at the same time" + + exit 1 + fi +fi + LANGUAGES=() CLIENTS=() diff --git a/scripts/runCTS.sh b/scripts/runCTS.sh new file mode 100755 index 0000000000..d94142f9f7 --- /dev/null +++ b/scripts/runCTS.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +# Break on non-zero code +set -e + +DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null && pwd)" +# Move to the root (easier to locate other scripts) +cd ${DIR}/.. + +lang=$1 + +# Run the pre generation script if it exists. +run_cts() { + if [[ $lang == 'javascript' ]]; then + yarn workspace javascript-tests test + elif [[ $lang == 'java' ]]; then + mvn clean compile exec:java -f tests/output/java/pom.xml + fi +} + +run_cts diff --git a/tests/CTS/clients/abtesting/addABTests.json b/tests/CTS/clients/abtesting/requests/addABTests.json similarity index 100% rename from tests/CTS/clients/abtesting/addABTests.json rename to tests/CTS/clients/abtesting/requests/addABTests.json diff --git a/tests/CTS/clients/abtesting/deleteABTest.json b/tests/CTS/clients/abtesting/requests/deleteABTest.json similarity index 100% rename from tests/CTS/clients/abtesting/deleteABTest.json rename to tests/CTS/clients/abtesting/requests/deleteABTest.json diff --git a/tests/CTS/clients/abtesting/getABTest.json b/tests/CTS/clients/abtesting/requests/getABTest.json similarity index 100% rename from tests/CTS/clients/abtesting/getABTest.json rename to tests/CTS/clients/abtesting/requests/getABTest.json diff --git a/tests/CTS/clients/abtesting/listABTests.json b/tests/CTS/clients/abtesting/requests/listABTests.json similarity index 100% rename from tests/CTS/clients/abtesting/listABTests.json rename to tests/CTS/clients/abtesting/requests/listABTests.json diff --git a/tests/CTS/clients/abtesting/stopABTest.json b/tests/CTS/clients/abtesting/requests/stopABTest.json similarity index 100% rename from tests/CTS/clients/abtesting/stopABTest.json rename to tests/CTS/clients/abtesting/requests/stopABTest.json diff --git a/tests/CTS/clients/analytics/getAverageClickPosition.json b/tests/CTS/clients/analytics/requests/getAverageClickPosition.json similarity index 100% rename from tests/CTS/clients/analytics/getAverageClickPosition.json rename to tests/CTS/clients/analytics/requests/getAverageClickPosition.json diff --git a/tests/CTS/clients/analytics/getClickPositions.json b/tests/CTS/clients/analytics/requests/getClickPositions.json similarity index 100% rename from tests/CTS/clients/analytics/getClickPositions.json rename to tests/CTS/clients/analytics/requests/getClickPositions.json diff --git a/tests/CTS/clients/analytics/getClickThroughRate.json b/tests/CTS/clients/analytics/requests/getClickThroughRate.json similarity index 100% rename from tests/CTS/clients/analytics/getClickThroughRate.json rename to tests/CTS/clients/analytics/requests/getClickThroughRate.json diff --git a/tests/CTS/clients/analytics/getConversationRate.json b/tests/CTS/clients/analytics/requests/getConversationRate.json similarity index 100% rename from tests/CTS/clients/analytics/getConversationRate.json rename to tests/CTS/clients/analytics/requests/getConversationRate.json diff --git a/tests/CTS/clients/analytics/getNoClickRate.json b/tests/CTS/clients/analytics/requests/getNoClickRate.json similarity index 100% rename from tests/CTS/clients/analytics/getNoClickRate.json rename to tests/CTS/clients/analytics/requests/getNoClickRate.json diff --git a/tests/CTS/clients/analytics/getNoResultsRate.json b/tests/CTS/clients/analytics/requests/getNoResultsRate.json similarity index 100% rename from tests/CTS/clients/analytics/getNoResultsRate.json rename to tests/CTS/clients/analytics/requests/getNoResultsRate.json diff --git a/tests/CTS/clients/analytics/getSearchesCount.json b/tests/CTS/clients/analytics/requests/getSearchesCount.json similarity index 100% rename from tests/CTS/clients/analytics/getSearchesCount.json rename to tests/CTS/clients/analytics/requests/getSearchesCount.json diff --git a/tests/CTS/clients/analytics/getSearchesNoClicks.json b/tests/CTS/clients/analytics/requests/getSearchesNoClicks.json similarity index 100% rename from tests/CTS/clients/analytics/getSearchesNoClicks.json rename to tests/CTS/clients/analytics/requests/getSearchesNoClicks.json diff --git a/tests/CTS/clients/analytics/getSearchesNoResults.json b/tests/CTS/clients/analytics/requests/getSearchesNoResults.json similarity index 100% rename from tests/CTS/clients/analytics/getSearchesNoResults.json rename to tests/CTS/clients/analytics/requests/getSearchesNoResults.json diff --git a/tests/CTS/clients/analytics/getStatus.json b/tests/CTS/clients/analytics/requests/getStatus.json similarity index 100% rename from tests/CTS/clients/analytics/getStatus.json rename to tests/CTS/clients/analytics/requests/getStatus.json diff --git a/tests/CTS/clients/analytics/getTopCountries.json b/tests/CTS/clients/analytics/requests/getTopCountries.json similarity index 100% rename from tests/CTS/clients/analytics/getTopCountries.json rename to tests/CTS/clients/analytics/requests/getTopCountries.json diff --git a/tests/CTS/clients/analytics/getTopFilterAttributes.json b/tests/CTS/clients/analytics/requests/getTopFilterAttributes.json similarity index 100% rename from tests/CTS/clients/analytics/getTopFilterAttributes.json rename to tests/CTS/clients/analytics/requests/getTopFilterAttributes.json diff --git a/tests/CTS/clients/analytics/getTopFilterForAttribute.json b/tests/CTS/clients/analytics/requests/getTopFilterForAttribute.json similarity index 100% rename from tests/CTS/clients/analytics/getTopFilterForAttribute.json rename to tests/CTS/clients/analytics/requests/getTopFilterForAttribute.json diff --git a/tests/CTS/clients/analytics/getTopFiltersNoResults.json b/tests/CTS/clients/analytics/requests/getTopFiltersNoResults.json similarity index 100% rename from tests/CTS/clients/analytics/getTopFiltersNoResults.json rename to tests/CTS/clients/analytics/requests/getTopFiltersNoResults.json diff --git a/tests/CTS/clients/analytics/getTopHits.json b/tests/CTS/clients/analytics/requests/getTopHits.json similarity index 100% rename from tests/CTS/clients/analytics/getTopHits.json rename to tests/CTS/clients/analytics/requests/getTopHits.json diff --git a/tests/CTS/clients/analytics/getTopSearches.json b/tests/CTS/clients/analytics/requests/getTopSearches.json similarity index 100% rename from tests/CTS/clients/analytics/getTopSearches.json rename to tests/CTS/clients/analytics/requests/getTopSearches.json diff --git a/tests/CTS/clients/analytics/getUsersCount.json b/tests/CTS/clients/analytics/requests/getUsersCount.json similarity index 100% rename from tests/CTS/clients/analytics/getUsersCount.json rename to tests/CTS/clients/analytics/requests/getUsersCount.json diff --git a/tests/CTS/clients/insights/pushEvents.json b/tests/CTS/clients/insights/requests/pushEvents.json similarity index 100% rename from tests/CTS/clients/insights/pushEvents.json rename to tests/CTS/clients/insights/requests/pushEvents.json diff --git a/tests/CTS/clients/personalization/deleteUserProfile.json b/tests/CTS/clients/personalization/requests/deleteUserProfile.json similarity index 100% rename from tests/CTS/clients/personalization/deleteUserProfile.json rename to tests/CTS/clients/personalization/requests/deleteUserProfile.json diff --git a/tests/CTS/clients/personalization/getPersonalizationStrategy.json b/tests/CTS/clients/personalization/requests/getPersonalizationStrategy.json similarity index 100% rename from tests/CTS/clients/personalization/getPersonalizationStrategy.json rename to tests/CTS/clients/personalization/requests/getPersonalizationStrategy.json diff --git a/tests/CTS/clients/personalization/getUserTokenProfile.json b/tests/CTS/clients/personalization/requests/getUserTokenProfile.json similarity index 100% rename from tests/CTS/clients/personalization/getUserTokenProfile.json rename to tests/CTS/clients/personalization/requests/getUserTokenProfile.json diff --git a/tests/CTS/clients/personalization/setPersonalizationStrategy.json b/tests/CTS/clients/personalization/requests/setPersonalizationStrategy.json similarity index 100% rename from tests/CTS/clients/personalization/setPersonalizationStrategy.json rename to tests/CTS/clients/personalization/requests/setPersonalizationStrategy.json diff --git a/tests/CTS/clients/query-suggestions/createConfig.json b/tests/CTS/clients/query-suggestions/requests/createConfig.json similarity index 100% rename from tests/CTS/clients/query-suggestions/createConfig.json rename to tests/CTS/clients/query-suggestions/requests/createConfig.json diff --git a/tests/CTS/clients/query-suggestions/deleteConfig.json b/tests/CTS/clients/query-suggestions/requests/deleteConfig.json similarity index 100% rename from tests/CTS/clients/query-suggestions/deleteConfig.json rename to tests/CTS/clients/query-suggestions/requests/deleteConfig.json diff --git a/tests/CTS/clients/query-suggestions/getAllConfigs.json b/tests/CTS/clients/query-suggestions/requests/getAllConfigs.json similarity index 100% rename from tests/CTS/clients/query-suggestions/getAllConfigs.json rename to tests/CTS/clients/query-suggestions/requests/getAllConfigs.json diff --git a/tests/CTS/clients/query-suggestions/getConfig.json b/tests/CTS/clients/query-suggestions/requests/getConfig.json similarity index 100% rename from tests/CTS/clients/query-suggestions/getConfig.json rename to tests/CTS/clients/query-suggestions/requests/getConfig.json diff --git a/tests/CTS/clients/query-suggestions/getConfigStatus.json b/tests/CTS/clients/query-suggestions/requests/getConfigStatus.json similarity index 100% rename from tests/CTS/clients/query-suggestions/getConfigStatus.json rename to tests/CTS/clients/query-suggestions/requests/getConfigStatus.json diff --git a/tests/CTS/clients/query-suggestions/getLogFile.json b/tests/CTS/clients/query-suggestions/requests/getLogFile.json similarity index 100% rename from tests/CTS/clients/query-suggestions/getLogFile.json rename to tests/CTS/clients/query-suggestions/requests/getLogFile.json diff --git a/tests/CTS/clients/query-suggestions/updateConfig.json b/tests/CTS/clients/query-suggestions/requests/updateConfig.json similarity index 100% rename from tests/CTS/clients/query-suggestions/updateConfig.json rename to tests/CTS/clients/query-suggestions/requests/updateConfig.json diff --git a/tests/CTS/clients/recommend/getRecommendations.json b/tests/CTS/clients/recommend/requests/getRecommendations.json similarity index 100% rename from tests/CTS/clients/recommend/getRecommendations.json rename to tests/CTS/clients/recommend/requests/getRecommendations.json diff --git a/tests/CTS/clients/search/addApiKey.json b/tests/CTS/clients/search/requests/addApiKey.json similarity index 100% rename from tests/CTS/clients/search/addApiKey.json rename to tests/CTS/clients/search/requests/addApiKey.json diff --git a/tests/CTS/clients/search/addOrUpdateObject.json b/tests/CTS/clients/search/requests/addOrUpdateObject.json similarity index 100% rename from tests/CTS/clients/search/addOrUpdateObject.json rename to tests/CTS/clients/search/requests/addOrUpdateObject.json diff --git a/tests/CTS/clients/search/appendSource.json b/tests/CTS/clients/search/requests/appendSource.json similarity index 100% rename from tests/CTS/clients/search/appendSource.json rename to tests/CTS/clients/search/requests/appendSource.json diff --git a/tests/CTS/clients/search/assignUserId.json b/tests/CTS/clients/search/requests/assignUserId.json similarity index 100% rename from tests/CTS/clients/search/assignUserId.json rename to tests/CTS/clients/search/requests/assignUserId.json diff --git a/tests/CTS/clients/search/batch.json b/tests/CTS/clients/search/requests/batch.json similarity index 100% rename from tests/CTS/clients/search/batch.json rename to tests/CTS/clients/search/requests/batch.json diff --git a/tests/CTS/clients/search/batchAssignUserIds.json b/tests/CTS/clients/search/requests/batchAssignUserIds.json similarity index 100% rename from tests/CTS/clients/search/batchAssignUserIds.json rename to tests/CTS/clients/search/requests/batchAssignUserIds.json diff --git a/tests/CTS/clients/search/batchDictionaryEntries.json b/tests/CTS/clients/search/requests/batchDictionaryEntries.json similarity index 100% rename from tests/CTS/clients/search/batchDictionaryEntries.json rename to tests/CTS/clients/search/requests/batchDictionaryEntries.json diff --git a/tests/CTS/clients/search/batchRules.json b/tests/CTS/clients/search/requests/batchRules.json similarity index 100% rename from tests/CTS/clients/search/batchRules.json rename to tests/CTS/clients/search/requests/batchRules.json diff --git a/tests/CTS/clients/search/browse.json b/tests/CTS/clients/search/requests/browse.json similarity index 100% rename from tests/CTS/clients/search/browse.json rename to tests/CTS/clients/search/requests/browse.json diff --git a/tests/CTS/clients/search/clearAllSynonyms.json b/tests/CTS/clients/search/requests/clearAllSynonyms.json similarity index 100% rename from tests/CTS/clients/search/clearAllSynonyms.json rename to tests/CTS/clients/search/requests/clearAllSynonyms.json diff --git a/tests/CTS/clients/search/clearObjects.json b/tests/CTS/clients/search/requests/clearObjects.json similarity index 100% rename from tests/CTS/clients/search/clearObjects.json rename to tests/CTS/clients/search/requests/clearObjects.json diff --git a/tests/CTS/clients/search/clearRules.json b/tests/CTS/clients/search/requests/clearRules.json similarity index 100% rename from tests/CTS/clients/search/clearRules.json rename to tests/CTS/clients/search/requests/clearRules.json diff --git a/tests/CTS/clients/search/deleteApiKey.json b/tests/CTS/clients/search/requests/deleteApiKey.json similarity index 100% rename from tests/CTS/clients/search/deleteApiKey.json rename to tests/CTS/clients/search/requests/deleteApiKey.json diff --git a/tests/CTS/clients/search/deleteBy.json b/tests/CTS/clients/search/requests/deleteBy.json similarity index 100% rename from tests/CTS/clients/search/deleteBy.json rename to tests/CTS/clients/search/requests/deleteBy.json diff --git a/tests/CTS/clients/search/deleteIndex.json b/tests/CTS/clients/search/requests/deleteIndex.json similarity index 100% rename from tests/CTS/clients/search/deleteIndex.json rename to tests/CTS/clients/search/requests/deleteIndex.json diff --git a/tests/CTS/clients/search/deleteObject.json b/tests/CTS/clients/search/requests/deleteObject.json similarity index 100% rename from tests/CTS/clients/search/deleteObject.json rename to tests/CTS/clients/search/requests/deleteObject.json diff --git a/tests/CTS/clients/search/deleteRule.json b/tests/CTS/clients/search/requests/deleteRule.json similarity index 100% rename from tests/CTS/clients/search/deleteRule.json rename to tests/CTS/clients/search/requests/deleteRule.json diff --git a/tests/CTS/clients/search/deleteSource.json b/tests/CTS/clients/search/requests/deleteSource.json similarity index 100% rename from tests/CTS/clients/search/deleteSource.json rename to tests/CTS/clients/search/requests/deleteSource.json diff --git a/tests/CTS/clients/search/deleteSynonym.json b/tests/CTS/clients/search/requests/deleteSynonym.json similarity index 100% rename from tests/CTS/clients/search/deleteSynonym.json rename to tests/CTS/clients/search/requests/deleteSynonym.json diff --git a/tests/CTS/clients/search/getApiKey.json b/tests/CTS/clients/search/requests/getApiKey.json similarity index 100% rename from tests/CTS/clients/search/getApiKey.json rename to tests/CTS/clients/search/requests/getApiKey.json diff --git a/tests/CTS/clients/search/getDictionaryLanguages.json b/tests/CTS/clients/search/requests/getDictionaryLanguages.json similarity index 100% rename from tests/CTS/clients/search/getDictionaryLanguages.json rename to tests/CTS/clients/search/requests/getDictionaryLanguages.json diff --git a/tests/CTS/clients/search/getDictionarySettings.json b/tests/CTS/clients/search/requests/getDictionarySettings.json similarity index 100% rename from tests/CTS/clients/search/getDictionarySettings.json rename to tests/CTS/clients/search/requests/getDictionarySettings.json diff --git a/tests/CTS/clients/search/getLogs.json b/tests/CTS/clients/search/requests/getLogs.json similarity index 100% rename from tests/CTS/clients/search/getLogs.json rename to tests/CTS/clients/search/requests/getLogs.json diff --git a/tests/CTS/clients/search/getObject.json b/tests/CTS/clients/search/requests/getObject.json similarity index 100% rename from tests/CTS/clients/search/getObject.json rename to tests/CTS/clients/search/requests/getObject.json diff --git a/tests/CTS/clients/search/getObjects.json b/tests/CTS/clients/search/requests/getObjects.json similarity index 100% rename from tests/CTS/clients/search/getObjects.json rename to tests/CTS/clients/search/requests/getObjects.json diff --git a/tests/CTS/clients/search/getRule.json b/tests/CTS/clients/search/requests/getRule.json similarity index 100% rename from tests/CTS/clients/search/getRule.json rename to tests/CTS/clients/search/requests/getRule.json diff --git a/tests/CTS/clients/search/getSettings.json b/tests/CTS/clients/search/requests/getSettings.json similarity index 100% rename from tests/CTS/clients/search/getSettings.json rename to tests/CTS/clients/search/requests/getSettings.json diff --git a/tests/CTS/clients/search/getSources.json b/tests/CTS/clients/search/requests/getSources.json similarity index 100% rename from tests/CTS/clients/search/getSources.json rename to tests/CTS/clients/search/requests/getSources.json diff --git a/tests/CTS/clients/search/getSynonym.json b/tests/CTS/clients/search/requests/getSynonym.json similarity index 100% rename from tests/CTS/clients/search/getSynonym.json rename to tests/CTS/clients/search/requests/getSynonym.json diff --git a/tests/CTS/clients/search/getTask.json b/tests/CTS/clients/search/requests/getTask.json similarity index 100% rename from tests/CTS/clients/search/getTask.json rename to tests/CTS/clients/search/requests/getTask.json diff --git a/tests/CTS/clients/search/getTopUserIds.json b/tests/CTS/clients/search/requests/getTopUserIds.json similarity index 100% rename from tests/CTS/clients/search/getTopUserIds.json rename to tests/CTS/clients/search/requests/getTopUserIds.json diff --git a/tests/CTS/clients/search/getUserId.json b/tests/CTS/clients/search/requests/getUserId.json similarity index 100% rename from tests/CTS/clients/search/getUserId.json rename to tests/CTS/clients/search/requests/getUserId.json diff --git a/tests/CTS/clients/search/hasPendingMappings.json b/tests/CTS/clients/search/requests/hasPendingMappings.json similarity index 100% rename from tests/CTS/clients/search/hasPendingMappings.json rename to tests/CTS/clients/search/requests/hasPendingMappings.json diff --git a/tests/CTS/clients/search/listApiKeys.json b/tests/CTS/clients/search/requests/listApiKeys.json similarity index 100% rename from tests/CTS/clients/search/listApiKeys.json rename to tests/CTS/clients/search/requests/listApiKeys.json diff --git a/tests/CTS/clients/search/listClusters.json b/tests/CTS/clients/search/requests/listClusters.json similarity index 100% rename from tests/CTS/clients/search/listClusters.json rename to tests/CTS/clients/search/requests/listClusters.json diff --git a/tests/CTS/clients/search/listIndices.json b/tests/CTS/clients/search/requests/listIndices.json similarity index 100% rename from tests/CTS/clients/search/listIndices.json rename to tests/CTS/clients/search/requests/listIndices.json diff --git a/tests/CTS/clients/search/listUserIds.json b/tests/CTS/clients/search/requests/listUserIds.json similarity index 100% rename from tests/CTS/clients/search/listUserIds.json rename to tests/CTS/clients/search/requests/listUserIds.json diff --git a/tests/CTS/clients/search/multipleBatch.json b/tests/CTS/clients/search/requests/multipleBatch.json similarity index 100% rename from tests/CTS/clients/search/multipleBatch.json rename to tests/CTS/clients/search/requests/multipleBatch.json diff --git a/tests/CTS/clients/search/multipleQueries.json b/tests/CTS/clients/search/requests/multipleQueries.json similarity index 100% rename from tests/CTS/clients/search/multipleQueries.json rename to tests/CTS/clients/search/requests/multipleQueries.json diff --git a/tests/CTS/clients/search/operationIndex.json b/tests/CTS/clients/search/requests/operationIndex.json similarity index 100% rename from tests/CTS/clients/search/operationIndex.json rename to tests/CTS/clients/search/requests/operationIndex.json diff --git a/tests/CTS/clients/search/partialUpdateObject.json b/tests/CTS/clients/search/requests/partialUpdateObject.json similarity index 100% rename from tests/CTS/clients/search/partialUpdateObject.json rename to tests/CTS/clients/search/requests/partialUpdateObject.json diff --git a/tests/CTS/clients/search/removeUserId.json b/tests/CTS/clients/search/requests/removeUserId.json similarity index 100% rename from tests/CTS/clients/search/removeUserId.json rename to tests/CTS/clients/search/requests/removeUserId.json diff --git a/tests/CTS/clients/search/replaceSources.json b/tests/CTS/clients/search/requests/replaceSources.json similarity index 100% rename from tests/CTS/clients/search/replaceSources.json rename to tests/CTS/clients/search/requests/replaceSources.json diff --git a/tests/CTS/clients/search/restoreApiKey.json b/tests/CTS/clients/search/requests/restoreApiKey.json similarity index 100% rename from tests/CTS/clients/search/restoreApiKey.json rename to tests/CTS/clients/search/requests/restoreApiKey.json diff --git a/tests/CTS/clients/search/saveObject.json b/tests/CTS/clients/search/requests/saveObject.json similarity index 100% rename from tests/CTS/clients/search/saveObject.json rename to tests/CTS/clients/search/requests/saveObject.json diff --git a/tests/CTS/clients/search/saveRule.json b/tests/CTS/clients/search/requests/saveRule.json similarity index 100% rename from tests/CTS/clients/search/saveRule.json rename to tests/CTS/clients/search/requests/saveRule.json diff --git a/tests/CTS/clients/search/saveSynonym.json b/tests/CTS/clients/search/requests/saveSynonym.json similarity index 100% rename from tests/CTS/clients/search/saveSynonym.json rename to tests/CTS/clients/search/requests/saveSynonym.json diff --git a/tests/CTS/clients/search/saveSynonyms.json b/tests/CTS/clients/search/requests/saveSynonyms.json similarity index 100% rename from tests/CTS/clients/search/saveSynonyms.json rename to tests/CTS/clients/search/requests/saveSynonyms.json diff --git a/tests/CTS/clients/search/search.json b/tests/CTS/clients/search/requests/search.json similarity index 100% rename from tests/CTS/clients/search/search.json rename to tests/CTS/clients/search/requests/search.json diff --git a/tests/CTS/clients/search/searchDictionaryEntries.json b/tests/CTS/clients/search/requests/searchDictionaryEntries.json similarity index 100% rename from tests/CTS/clients/search/searchDictionaryEntries.json rename to tests/CTS/clients/search/requests/searchDictionaryEntries.json diff --git a/tests/CTS/clients/search/searchForFacetValues.json b/tests/CTS/clients/search/requests/searchForFacetValues.json similarity index 100% rename from tests/CTS/clients/search/searchForFacetValues.json rename to tests/CTS/clients/search/requests/searchForFacetValues.json diff --git a/tests/CTS/clients/search/searchRules.json b/tests/CTS/clients/search/requests/searchRules.json similarity index 100% rename from tests/CTS/clients/search/searchRules.json rename to tests/CTS/clients/search/requests/searchRules.json diff --git a/tests/CTS/clients/search/searchSynonyms.json b/tests/CTS/clients/search/requests/searchSynonyms.json similarity index 100% rename from tests/CTS/clients/search/searchSynonyms.json rename to tests/CTS/clients/search/requests/searchSynonyms.json diff --git a/tests/CTS/clients/search/searchUserIds.json b/tests/CTS/clients/search/requests/searchUserIds.json similarity index 100% rename from tests/CTS/clients/search/searchUserIds.json rename to tests/CTS/clients/search/requests/searchUserIds.json diff --git a/tests/CTS/clients/search/setDictionarySettings.json b/tests/CTS/clients/search/requests/setDictionarySettings.json similarity index 100% rename from tests/CTS/clients/search/setDictionarySettings.json rename to tests/CTS/clients/search/requests/setDictionarySettings.json diff --git a/tests/CTS/clients/search/setSettings.json b/tests/CTS/clients/search/requests/setSettings.json similarity index 100% rename from tests/CTS/clients/search/setSettings.json rename to tests/CTS/clients/search/requests/setSettings.json diff --git a/tests/CTS/clients/search/updateApiKey.json b/tests/CTS/clients/search/requests/updateApiKey.json similarity index 100% rename from tests/CTS/clients/search/updateApiKey.json rename to tests/CTS/clients/search/requests/updateApiKey.json diff --git a/tests/CTS/templates/java/requests.mustache b/tests/CTS/templates/java/requests.mustache new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/CTS/templates/javascript.mustache b/tests/CTS/templates/javascript/requests.mustache similarity index 100% rename from tests/CTS/templates/javascript.mustache rename to tests/CTS/templates/javascript/requests.mustache diff --git a/tests/generateCTS.ts b/tests/generateCTS.ts deleted file mode 100644 index dab3e4ab0c..0000000000 --- a/tests/generateCTS.ts +++ /dev/null @@ -1,276 +0,0 @@ -/* eslint-disable no-console */ -import fsp from 'fs/promises'; -import path from 'path'; - -import SwaggerParser from '@apidevtools/swagger-parser'; -import Mustache from 'mustache'; -import type { OpenAPIV3 } from 'openapi-types'; - -import openapitools from '../openapitools.json'; - -const availableLanguages = ['javascript'] as const; -type Language = typeof availableLanguages[number]; -type ParametersWithDataType = { - key: string; - value: string; - isArray: boolean; - isObject: boolean; - isString: boolean; - '-last': boolean; -}; - -// This does not reflect the expected type of the CTS, it's rather the type passed to mustache -type Tests = { - testName?: string; - method: string; - parameters: any; - parametersWithDataType: ParametersWithDataType[] | undefined; - hasParameters: boolean; - request: { - path: string; - method: string; - data?: string; - searchParams?: string; - }; -}; - -type CTSBlock = { - operationId: string; - tests: Tests[]; -}; - -// Array of test per client -type CTS = Record; - -const extensionForLanguage: Record = { - javascript: '.test.ts', -}; - -const cts: CTS = {}; - -// For each generator, we map the packageName with the language and client -const packageNames: Record> = Object.entries( - openapitools['generator-cli'].generators -).reduce((prev, [clientName, clientConfig]) => { - const obj = prev; - const parts = clientName.split('-'); - const lang = parts[0] as Language; - const client = parts.slice(1).join('-'); - - if (!(lang in prev)) { - obj[lang] = {}; - } - - obj[lang][client] = clientConfig.additionalProperties.packageName; - - return obj; -}, {} as Record>); - -async function createOutputDir(language: Language): Promise { - await fsp.mkdir(`output/${language}`, { recursive: true }); -} - -async function* walk( - dir: string -): AsyncGenerator<{ path: string; name: string }> { - for await (const d of await fsp.opendir(dir)) { - const entry = path.join(dir, d.name); - if (d.isDirectory()) yield* walk(entry); - else if (d.isFile()) yield { path: entry, name: d.name }; - } -} - -function capitalize(str: string): string { - return str.charAt(0).toUpperCase() + str.slice(1); -} - -function createClientName(client: string): string { - return `${client - .split('-') - .map((part) => capitalize(part)) - .join('')}Api`; -} - -function removeObjectName(obj: Record): void { - for (const prop in obj) { - if (prop === '$objectName') { - // eslint-disable-next-line no-param-reassign - delete obj[prop]; - } else if (typeof obj[prop] === 'object') { - removeObjectName(obj[prop]); - } - } -} - -async function loadCTSForClient(client: string): Promise { - // load the list of operations from the spec - const spec = await SwaggerParser.validate(`../specs/${client}/spec.yml`); - if (!spec.paths) { - throw new Error(`No paths found for spec ${client}/spec.yml`); - } - - const operations = Object.values(spec.paths) - .flatMap((p) => Object.values(p)) - .map((obj) => obj.operationId); - - const ctsClient: CTSBlock[] = []; - - for await (const file of walk(`./CTS/clients/${client}`)) { - if (!file.name.endsWith('json')) { - continue; - } - const fileName = file.name.replace('.json', ''); - const fileContent = (await fsp.readFile(file.path)).toString(); - - if (!fileContent) { - throw new Error(`cannot read empty file ${fileName} - ${client} client`); - } - - const tests: Tests[] = JSON.parse(fileContent); - - // check test validity against spec - if (!operations.includes(fileName)) { - throw new Error(`cannot find ${fileName} for the ${client} client`); - } - - for (const test of tests) { - if (test.testName === undefined) { - test.testName = test.method; - } - - // stringify request.data too - test.request.data = JSON.stringify(test.request.data); - test.request.searchParams = JSON.stringify(test.request.searchParams); - - if (Object.keys(test.parameters).length === 0) { - test.parameters = undefined; - test.parametersWithDataType = undefined; - test.hasParameters = false; - - continue; - } - - if ( - typeof test.parameters !== 'object' || - Array.isArray(test.parameters) - ) { - throw new Error(`parameters of ${test.testName} must be an object`); - } - - // we stringify the param for mustache to render them properly - // delete the object name recursively for now, but it could be use for `new $objectName(params)` - removeObjectName(test.parameters); - - // Provide the `key` and `is*` params to apply custom logic in templates - // include the `-last` param to join with comma in mustache - test.parametersWithDataType = Object.entries(test.parameters).map( - ([key, value], i, arr) => { - const isArray = Array.isArray(value); - - return { - key, - value: JSON.stringify(value), - isString: typeof value === 'string', - isObject: typeof value === 'object' && isArray === false, - isArray, - '-last': i === arr.length - 1, - }; - } - ); - - if (fileName === 'getDictionarySettings') { - console.log(test.parameters, test.parametersWithDataType); - } - - test.parameters = JSON.stringify(test.parameters); - test.hasParameters = true; - } - - ctsClient.push({ - operationId: fileName, - tests, - }); - } - - return ctsClient.sort((t1, t2) => - t1.operationId.localeCompare(t2.operationId) - ); -} - -async function loadCTS(): Promise { - for await (const { name: client } of await fsp.opendir('./CTS/clients/')) { - cts[client] = await loadCTSForClient(client); - } -} - -async function loadTemplate(language: Language): Promise { - return (await fsp.readFile(`CTS/templates/${language}.mustache`)).toString(); -} - -async function generateCode(language: Language): Promise { - const template = await loadTemplate(language); - await createOutputDir(language); - for (const client in cts) { - if (cts[client].length === 0) { - continue; - } - - const code = Mustache.render(template, { - import: packageNames[language][client], - client: createClientName(client), - blocks: cts[client], - hasRegionalHost: [ - 'personalization', - 'analytics', - 'abtesting', - 'query-suggestions', - ].includes(client), - }); - await fsp.writeFile( - `output/${language}/${client}${extensionForLanguage[language]}`, - code - ); - } -} - -function printUsage(): void { - console.log(`usage: generateCTS all | language1 language2...`); - console.log(`\tavailable languages: ${availableLanguages.join(',')}`); - // eslint-disable-next-line no-process-exit - process.exit(1); -} - -async function parseCLI(args: string[]): Promise { - if (args.length < 3) { - console.log('not enough arguments'); - printUsage(); - } - - let toGenerate: Language[]; - if (args.length === 3 && args[2] === 'all') { - toGenerate = [...availableLanguages]; - } else { - const languages = args[2].split(' ') as Language[]; - const unknownLanguages = languages.filter( - (lang) => !availableLanguages.includes(lang) - ); - if (unknownLanguages.length > 0) { - console.log('unkown language(s): ', unknownLanguages.join(', ')); - printUsage(); - } - toGenerate = languages; - } - - try { - await loadCTS(); - for (const lang of toGenerate) { - generateCode(lang); - } - } catch (e) { - if (e instanceof Error) { - console.error(e); - } - } -} - -parseCLI(process.argv); diff --git a/tests/output/java/tests/searchRequests.java b/tests/output/java/tests/searchRequests.java new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/jest.config.js b/tests/output/javascript/jest.config.js similarity index 100% rename from tests/jest.config.js rename to tests/output/javascript/jest.config.js diff --git a/tests/output/javascript/package.json b/tests/output/javascript/package.json new file mode 100644 index 0000000000..f61d61ceb3 --- /dev/null +++ b/tests/output/javascript/package.json @@ -0,0 +1,31 @@ +{ + "name": "javascript-tests", + "version": "1.0.0", + "scripts": { + "lint:fix": "yarn eslint --ext=ts tests --fix", + "test": "jest" + }, + "dependencies": { + "@algolia/client-abtesting": "5.0.0", + "@algolia/client-analytics": "5.0.0", + "@algolia/client-insights": "5.0.0", + "@algolia/client-personalization": "5.0.0", + "@algolia/client-query-suggestions": "5.0.0", + "@algolia/client-search": "5.0.0", + "@algolia/recommend": "5.0.0" + }, + "devDependencies": { + "@apidevtools/swagger-parser": "10.0.3", + "@types/jest": "27.0.3", + "@types/mustache": "4.1.2", + "@types/node": "16.11.11", + "dotenv": "11.0.0", + "eslint": "8.6.0", + "jest": "27.4.7", + "mustache": "4.2.0", + "openapi-types": "10.0.0", + "prettier": "2.5.1", + "ts-jest": "27.1.2", + "typescript": "4.5.4" + } +} diff --git a/tests/output/javascript/abtesting.test.ts b/tests/output/javascript/tests/abtestingRequests.test.ts similarity index 100% rename from tests/output/javascript/abtesting.test.ts rename to tests/output/javascript/tests/abtestingRequests.test.ts diff --git a/tests/output/javascript/analytics.test.ts b/tests/output/javascript/tests/analyticsRequests.test.ts similarity index 100% rename from tests/output/javascript/analytics.test.ts rename to tests/output/javascript/tests/analyticsRequests.test.ts diff --git a/tests/output/javascript/insights.test.ts b/tests/output/javascript/tests/insightsRequests.test.ts similarity index 100% rename from tests/output/javascript/insights.test.ts rename to tests/output/javascript/tests/insightsRequests.test.ts diff --git a/tests/output/javascript/personalization.test.ts b/tests/output/javascript/tests/personalizationRequests.test.ts similarity index 100% rename from tests/output/javascript/personalization.test.ts rename to tests/output/javascript/tests/personalizationRequests.test.ts diff --git a/tests/output/javascript/query-suggestions.test.ts b/tests/output/javascript/tests/query-suggestionsRequests.test.ts similarity index 100% rename from tests/output/javascript/query-suggestions.test.ts rename to tests/output/javascript/tests/query-suggestionsRequests.test.ts diff --git a/tests/output/javascript/recommend.test.ts b/tests/output/javascript/tests/recommendRequests.test.ts similarity index 100% rename from tests/output/javascript/recommend.test.ts rename to tests/output/javascript/tests/recommendRequests.test.ts diff --git a/tests/output/javascript/search.test.ts b/tests/output/javascript/tests/searchRequests.test.ts similarity index 100% rename from tests/output/javascript/search.test.ts rename to tests/output/javascript/tests/searchRequests.test.ts diff --git a/tests/output/javascript/tsconfig.json b/tests/output/javascript/tsconfig.json new file mode 100644 index 0000000000..8e03877970 --- /dev/null +++ b/tests/output/javascript/tsconfig.json @@ -0,0 +1,17 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "dist", + "typeRoots": [ + "../../../node_modules/@types" + ], + "types": [ + "node", + "jest" + ], + "resolveJsonModule": true + }, + "include": [ + "tests" + ] +} diff --git a/tests/package.json b/tests/package.json index 3b2f413f9d..94d3e9bd10 100644 --- a/tests/package.json +++ b/tests/package.json @@ -1,33 +1,22 @@ { "name": "tests", "version": "1.0.0", + "workspaces": [ + "output/javascript" + ], "scripts": { "build": "tsc", - "lint:fix": "yarn eslint --ext=ts output --fix", - "test": "jest", - "start": "yarn build && node dist/tests/generateCTS.js ${0:-all} && yarn lint:fix" - }, - "dependencies": { - "@algolia/client-abtesting": "5.0.0", - "@algolia/client-analytics": "5.0.0", - "@algolia/client-insights": "5.0.0", - "@algolia/client-personalization": "5.0.0", - "@algolia/client-query-suggestions": "5.0.0", - "@algolia/client-search": "5.0.0", - "@algolia/recommend": "5.0.0" + "lint:fix": "yarn workspace javascript-tests lint:fix", + "generate": "node dist/tests/src/main.js ${0:-javascript} ${1:-search}", + "start": "yarn build && yarn generate ${0:-javascript} ${1:-search} && yarn lint:fix" }, "devDependencies": { "@apidevtools/swagger-parser": "10.0.3", - "@types/jest": "27.0.3", "@types/mustache": "4.1.2", "@types/node": "16.11.11", - "dotenv": "10.0.0", "eslint": "8.6.0", - "jest": "27.4.5", "mustache": "4.2.0", "openapi-types": "10.0.0", - "prettier": "2.5.1", - "ts-jest": "27.1.2", "typescript": "4.5.4" } } diff --git a/tests/src/cts.ts b/tests/src/cts.ts new file mode 100644 index 0000000000..2d8e220507 --- /dev/null +++ b/tests/src/cts.ts @@ -0,0 +1,106 @@ +import fsp from 'fs/promises'; + +import SwaggerParser from '@apidevtools/swagger-parser'; +import type { OpenAPIV3 } from 'openapi-types'; + +import type { CTS, CTSBlock, Tests } from './types'; +import { removeObjectName, walk } from './utils'; + +async function loadRequestsCTS(client: string): Promise { + // load the list of operations from the spec + const spec = await SwaggerParser.validate(`../specs/${client}/spec.yml`); + if (!spec.paths) { + throw new Error(`No paths found for spec ${client}/spec.yml`); + } + + const operations = Object.values(spec.paths) + .flatMap((p) => Object.values(p)) + .map((obj) => obj.operationId); + + const ctsClient: CTSBlock[] = []; + + for await (const file of walk(`./CTS/clients/${client}/requests`)) { + if (!file.name.endsWith('json')) { + continue; + } + const fileName = file.name.replace('.json', ''); + const fileContent = (await fsp.readFile(file.path)).toString(); + + if (!fileContent) { + throw new Error(`cannot read empty file ${fileName} - ${client} client`); + } + + const tests: Tests[] = JSON.parse(fileContent); + + // check test validity against spec + if (!operations.includes(fileName)) { + throw new Error(`cannot find ${fileName} for the ${client} client`); + } + + for (const test of tests) { + if (test.testName === undefined) { + test.testName = test.method; + } + + // stringify request.data too + test.request.data = JSON.stringify(test.request.data); + test.request.searchParams = JSON.stringify(test.request.searchParams); + + if (Object.keys(test.parameters).length === 0) { + test.parameters = undefined; + test.parametersWithDataType = undefined; + test.hasParameters = false; + + continue; + } + + if ( + typeof test.parameters !== 'object' || + Array.isArray(test.parameters) + ) { + throw new Error(`parameters of ${test.testName} must be an object`); + } + + // we stringify the param for mustache to render them properly + // delete the object name recursively for now, but it could be use for `new $objectName(params)` + removeObjectName(test.parameters); + + // Provide the `key` and `is*` params to apply custom logic in templates + // include the `-last` param to join with comma in mustache + test.parametersWithDataType = Object.entries(test.parameters).map( + ([key, value], i, arr) => { + const isDate = key === 'endAt'; + const isArray = Array.isArray(value); + + return { + key, + value: JSON.stringify(value), + isString: typeof value === 'string' && isDate === false, + isObject: typeof value === 'object' && isArray === false, + isArray, + isDate, + '-last': i === arr.length - 1, + }; + } + ); + + test.parameters = JSON.stringify(test.parameters); + test.hasParameters = true; + } + + ctsClient.push({ + operationId: fileName, + tests, + }); + } + + return ctsClient.sort((t1, t2) => + t1.operationId.localeCompare(t2.operationId) + ); +} + +export async function loadCTS(client: string): Promise { + return { + requests: await loadRequestsCTS(client), + }; +} diff --git a/tests/src/generate.ts b/tests/src/generate.ts new file mode 100644 index 0000000000..83e959c416 --- /dev/null +++ b/tests/src/generate.ts @@ -0,0 +1,53 @@ +import fsp from 'fs/promises'; + +import Mustache from 'mustache'; + +import { loadCTS } from './cts'; +import { loadRequestsTemplate } from './templates'; +import type { CTSBlock } from './types'; +import { extensionForLanguage } from './types'; +import { createClientName, packageNames } from './utils'; + +async function createOutputDir(language: string): Promise { + await fsp.mkdir(`output/${language}`, { recursive: true }); + await fsp.mkdir(`output/${language}/tests`, { recursive: true }); +} + +async function generateRequestsTests( + cts: CTSBlock[], + template: string, + language: string, + client: string +): Promise { + if (cts.length === 0) { + return; + } + + const code = Mustache.render(template, { + import: packageNames[language][client], + client: createClientName(client), + blocks: cts, + hasRegionalHost: [ + 'personalization', + 'analytics', + 'abtesting', + 'query-suggestions', + ].includes(client), + }); + await fsp.writeFile( + `output/${language}/tests/${client}Requests.${extensionForLanguage[language]}`, + code + ); +} + +export async function generateTests( + language: string, + client: string +): Promise { + const template = await loadRequestsTemplate(language); + const cts = await loadCTS(client); + + await createOutputDir(language); + + await generateRequestsTests(cts.requests, template, language, client); +} diff --git a/tests/src/main.ts b/tests/src/main.ts new file mode 100644 index 0000000000..00c8a86a52 --- /dev/null +++ b/tests/src/main.ts @@ -0,0 +1,43 @@ +/* eslint-disable no-console */ + +import { generateTests } from './generate'; +import { packageNames } from './utils'; + +function printUsage(): void { + console.log(`usage: generateCTS language client`); + // eslint-disable-next-line no-process-exit + process.exit(1); +} + +async function parseCLI(args: string[]): Promise { + if (args.length < 3) { + console.log('not enough arguments'); + printUsage(); + } + + const lang = args[2]; + const client = args[3]; + + if (!(lang in packageNames)) { + console.log('Unknown language', lang); + // eslint-disable-next-line no-process-exit + process.exit(1); + } + if (!(client in packageNames[lang])) { + console.log('Unknown client', client); + // eslint-disable-next-line no-process-exit + process.exit(1); + } + + console.log(`Generating CTS for ${lang}-${client}`); + + try { + await generateTests(args[2], args[3]); + } catch (e) { + if (e instanceof Error) { + console.error(e); + } + } +} + +parseCLI(process.argv); diff --git a/tests/src/templates.ts b/tests/src/templates.ts new file mode 100644 index 0000000000..859db5999c --- /dev/null +++ b/tests/src/templates.ts @@ -0,0 +1,7 @@ +import fsp from 'fs/promises'; + +export async function loadRequestsTemplate(language: string): Promise { + return ( + await fsp.readFile(`CTS/templates/${language}/requests.mustache`) + ).toString(); +} diff --git a/tests/src/types.ts b/tests/src/types.ts new file mode 100644 index 0000000000..9be17ec2b3 --- /dev/null +++ b/tests/src/types.ts @@ -0,0 +1,37 @@ +type ParametersWithDataType = { + key: string; + value: string; + isArray: boolean; + isObject: boolean; + isString: boolean; + '-last': boolean; +}; + +// This does not reflect the expected type of the CTS, it's rather the type passed to mustache +export type Tests = { + testName?: string; + method: string; + parameters: any; + parametersWithDataType: ParametersWithDataType[] | undefined; + hasParameters: boolean; + request: { + path: string; + method: string; + data?: string; + searchParams?: string; + }; +}; + +export type CTSBlock = { + operationId: string; + tests: Tests[]; +}; + +export type CTS = { + requests: CTSBlock[]; +}; + +export const extensionForLanguage: Record = { + javascript: 'test.ts', + java: 'java', +}; diff --git a/tests/src/utils.ts b/tests/src/utils.ts new file mode 100644 index 0000000000..25c6542601 --- /dev/null +++ b/tests/src/utils.ts @@ -0,0 +1,58 @@ +import fsp from 'fs/promises'; +import path from 'path'; + +import openapitools from '../../openapitools.json'; + +// For each generator, we map the packageName with the language and client +export const packageNames: Record< + string, + Record +> = Object.entries(openapitools['generator-cli'].generators).reduce( + (prev, [clientName, clientConfig]) => { + const obj = prev; + const parts = clientName.split('-'); + const lang = parts[0]; + const client = parts.slice(1).join('-'); + + if (!(lang in prev)) { + obj[lang] = {}; + } + + obj[lang][client] = clientConfig.additionalProperties.packageName; + + return obj; + }, + {} as Record> +); + +export async function* walk( + dir: string +): AsyncGenerator<{ path: string; name: string }> { + for await (const d of await fsp.opendir(dir)) { + const entry = path.join(dir, d.name); + if (d.isDirectory()) yield* walk(entry); + else if (d.isFile()) yield { path: entry, name: d.name }; + } +} + +export function capitalize(str: string): string { + return str.charAt(0).toUpperCase() + str.slice(1); +} + +export function createClientName(client: string): string { + return `${client + .split('-') + .map((part) => capitalize(part)) + .join('')}Api`; +} + +export function removeObjectName(obj: Record): void { + for (const prop in obj) { + if (prop === '$objectName') { + // eslint-disable-next-line no-param-reassign + delete obj[prop]; + } else if (typeof obj[prop] === 'object') { + removeObjectName(obj[prop]); + } + } +} diff --git a/tests/tsconfig.json b/tests/tsconfig.json index a8aa099920..ca6f273b76 100644 --- a/tests/tsconfig.json +++ b/tests/tsconfig.json @@ -12,11 +12,27 @@ "sourceMap": true, "noLib": false, "declaration": true, - "lib": ["dom", "es6", "es5", "dom.iterable", "scripthost"], + "lib": [ + "dom", + "es6", + "es5", + "dom.iterable", + "scripthost" + ], "outDir": "dist", - "typeRoots": ["../node_modules/@types"], - "types": ["node", "jest"], + "typeRoots": [ + "../node_modules/@types" + ], + "types": [ + "node" + ], "resolveJsonModule": true }, - "exclude": ["dist", "output"] + "include": [ + "src" + ], + "exclude": [ + "dist", + "output" + ] } diff --git a/yarn.lock b/yarn.lock index a4813bfd8b..63de70c037 100644 --- a/yarn.lock +++ b/yarn.lock @@ -150,221 +150,200 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.16.0": - version: 7.16.0 - resolution: "@babel/code-frame@npm:7.16.0" +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.16.7": + version: 7.16.7 + resolution: "@babel/code-frame@npm:7.16.7" dependencies: - "@babel/highlight": ^7.16.0 - checksum: 8961d0302ec6b8c2e9751a11e06a17617425359fd1645e4dae56a90a03464c68a0916115100fbcd030961870313f21865d0b85858360a2c68aabdda744393607 + "@babel/highlight": ^7.16.7 + checksum: db2f7faa31bc2c9cf63197b481b30ea57147a5fc1a6fab60e5d6c02cdfbf6de8e17b5121f99917b3dabb5eeb572da078312e70697415940383efc140d4e0808b languageName: node linkType: hard -"@babel/compat-data@npm:^7.16.0": - version: 7.16.4 - resolution: "@babel/compat-data@npm:7.16.4" - checksum: 4949ce54eafc4b38d5623696a872acaaced1a523605708d81c2c483253941917d90dae0de40fc01e152ae56075dadd89c23014da5a632b09c001a716fa689cae +"@babel/compat-data@npm:^7.16.4": + version: 7.16.8 + resolution: "@babel/compat-data@npm:7.16.8" + checksum: 10da2dac5ea9589c251412b00920889910e476c1ab24cd7095577635bc3a27c785151c89db4e26285fd39f509510ec29ab9d7e721f4fc16e4aec221cacde784b languageName: node linkType: hard -"@babel/core@npm:^7.1.0, @babel/core@npm:^7.12.3, @babel/core@npm:^7.7.2, @babel/core@npm:^7.7.5": - version: 7.16.0 - resolution: "@babel/core@npm:7.16.0" +"@babel/core@npm:^7.1.0, @babel/core@npm:^7.12.3, @babel/core@npm:^7.7.2, @babel/core@npm:^7.8.0": + version: 7.16.7 + resolution: "@babel/core@npm:7.16.7" dependencies: - "@babel/code-frame": ^7.16.0 - "@babel/generator": ^7.16.0 - "@babel/helper-compilation-targets": ^7.16.0 - "@babel/helper-module-transforms": ^7.16.0 - "@babel/helpers": ^7.16.0 - "@babel/parser": ^7.16.0 - "@babel/template": ^7.16.0 - "@babel/traverse": ^7.16.0 - "@babel/types": ^7.16.0 + "@babel/code-frame": ^7.16.7 + "@babel/generator": ^7.16.7 + "@babel/helper-compilation-targets": ^7.16.7 + "@babel/helper-module-transforms": ^7.16.7 + "@babel/helpers": ^7.16.7 + "@babel/parser": ^7.16.7 + "@babel/template": ^7.16.7 + "@babel/traverse": ^7.16.7 + "@babel/types": ^7.16.7 convert-source-map: ^1.7.0 debug: ^4.1.0 gensync: ^1.0.0-beta.2 json5: ^2.1.2 semver: ^6.3.0 source-map: ^0.5.0 - checksum: a140f669daa90c774016a76b1f85641975333c1c219ae0a8e65d8b4c316836e918276e0dfd55613b14f8e578406a92393d4368a63bdd5d0708122976ee2ee8e3 + checksum: 3206e077e76db189726c4da19a5296eae11c6c1f5abea7013e74f18708bb91616914717ff8d8ca466cc0ba9d2d2147e9a84c3c357b9ad4cba601da14107838ed languageName: node linkType: hard -"@babel/generator@npm:^7.16.0, @babel/generator@npm:^7.7.2": - version: 7.16.0 - resolution: "@babel/generator@npm:7.16.0" +"@babel/generator@npm:^7.16.7, @babel/generator@npm:^7.16.8, @babel/generator@npm:^7.7.2": + version: 7.16.8 + resolution: "@babel/generator@npm:7.16.8" dependencies: - "@babel/types": ^7.16.0 + "@babel/types": ^7.16.8 jsesc: ^2.5.1 source-map: ^0.5.0 - checksum: 9ff53e0db72a225c8783c4a277698b4efcead750542ebb9cff31732ba62d092090715a772df10a323446924712f6928ad60c03db4e7051bed3a9701b552d51fb + checksum: 83af38b34735605c9d5f774c87a46c2cffaf666b28e9eeba883b2d7076412257e5c2264c26d9740ce44da6955fdaf857659391db02c012714a2a6dc19e403105 languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.16.0": - version: 7.16.3 - resolution: "@babel/helper-compilation-targets@npm:7.16.3" +"@babel/helper-compilation-targets@npm:^7.16.7": + version: 7.16.7 + resolution: "@babel/helper-compilation-targets@npm:7.16.7" dependencies: - "@babel/compat-data": ^7.16.0 - "@babel/helper-validator-option": ^7.14.5 + "@babel/compat-data": ^7.16.4 + "@babel/helper-validator-option": ^7.16.7 browserslist: ^4.17.5 semver: ^6.3.0 peerDependencies: "@babel/core": ^7.0.0 - checksum: 038bcd43ac914371c51bf6e72b5cedcae432f0d359285d74a9133c6a839bd625a7d5412d7471d50aa78a3e1c79b0a692b50a8d6a1299ebf69733b512ff199323 + checksum: 7238aaee78c011a42fb5ca92e5eff098752f7b314c2111d7bb9cdd58792fcab1b9c819b59f6a0851dc210dc09dc06b30d130a23982753e70eb3111bc65204842 languageName: node linkType: hard -"@babel/helper-function-name@npm:^7.16.0": - version: 7.16.0 - resolution: "@babel/helper-function-name@npm:7.16.0" +"@babel/helper-environment-visitor@npm:^7.16.7": + version: 7.16.7 + resolution: "@babel/helper-environment-visitor@npm:7.16.7" dependencies: - "@babel/helper-get-function-arity": ^7.16.0 - "@babel/template": ^7.16.0 - "@babel/types": ^7.16.0 - checksum: 8c02371d28678f3bb492e69d4635b2fe6b1c5a93ce129bf883f1fafde2005f4dbc0e643f52103ca558b698c0774bfb84a93f188d71db1c077f754b6220629b92 + "@babel/types": ^7.16.7 + checksum: c03a10105d9ebd1fe632a77356b2e6e2f3c44edba9a93b0dc3591b6a66bd7a2e323dd9502f9ce96fc6401234abff1907aa877b6674f7826b61c953f7c8204bbe languageName: node linkType: hard -"@babel/helper-get-function-arity@npm:^7.16.0": - version: 7.16.0 - resolution: "@babel/helper-get-function-arity@npm:7.16.0" +"@babel/helper-function-name@npm:^7.16.7": + version: 7.16.7 + resolution: "@babel/helper-function-name@npm:7.16.7" dependencies: - "@babel/types": ^7.16.0 - checksum: 1a68322c7b5fdffb1b51df32f7a53b1ff2268b5b99d698f0a1a426dcb355482a44ef3dae982a507907ba975314638dabb6d77ac1778098bdbe99707e6c29cae8 + "@babel/helper-get-function-arity": ^7.16.7 + "@babel/template": ^7.16.7 + "@babel/types": ^7.16.7 + checksum: fc77cbe7b10cfa2a262d7a37dca575c037f20419dfe0c5d9317f589599ca24beb5f5c1057748011159149eaec47fe32338c6c6412376fcded68200df470161e1 languageName: node linkType: hard -"@babel/helper-hoist-variables@npm:^7.16.0": - version: 7.16.0 - resolution: "@babel/helper-hoist-variables@npm:7.16.0" +"@babel/helper-get-function-arity@npm:^7.16.7": + version: 7.16.7 + resolution: "@babel/helper-get-function-arity@npm:7.16.7" dependencies: - "@babel/types": ^7.16.0 - checksum: 2ee5b400c267c209a53c90eea406a8f09c30d4d7a2b13e304289d858a2e34a99272c062cfad6dad63705662943951c42ff20042ef539b2d3c4f8743183a28954 + "@babel/types": ^7.16.7 + checksum: 25d969fb207ff2ad5f57a90d118f6c42d56a0171022e200aaa919ba7dc95ae7f92ec71cdea6c63ef3629a0dc962ab4c78e09ca2b437185ab44539193f796e0c3 languageName: node linkType: hard -"@babel/helper-member-expression-to-functions@npm:^7.16.0": - version: 7.16.0 - resolution: "@babel/helper-member-expression-to-functions@npm:7.16.0" +"@babel/helper-hoist-variables@npm:^7.16.7": + version: 7.16.7 + resolution: "@babel/helper-hoist-variables@npm:7.16.7" dependencies: - "@babel/types": ^7.16.0 - checksum: 58ef8e3a4af0c1dc43a2011f43f25502877ac1c5aa9a4a6586f0265ab857b65831f60560044bc9380df43c91ac21cad39a84095b91764b433d1acf18d27e38d6 + "@babel/types": ^7.16.7 + checksum: 6ae1641f4a751cd9045346e3f61c3d9ec1312fd779ab6d6fecfe2a96e59a481ad5d7e40d2a840894c13b3fd6114345b157f9e3062fc5f1580f284636e722de60 languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.16.0": - version: 7.16.0 - resolution: "@babel/helper-module-imports@npm:7.16.0" +"@babel/helper-module-imports@npm:^7.16.7": + version: 7.16.7 + resolution: "@babel/helper-module-imports@npm:7.16.7" dependencies: - "@babel/types": ^7.16.0 - checksum: 8e1eb9ac39440e52080b87c78d8d318e7c93658bdd0f3ce0019c908de88cbddafdc241f392898c0b0ba81fc52c8c6d2f9cc1b163ac5ed2a474d49b11646b7516 + "@babel/types": ^7.16.7 + checksum: ddd2c4a600a2e9a4fee192ab92bf35a627c5461dbab4af31b903d9ba4d6b6e59e0ff3499fde4e2e9a0eebe24906f00b636f8b4d9bd72ff24d50e6618215c3212 languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.16.0": - version: 7.16.0 - resolution: "@babel/helper-module-transforms@npm:7.16.0" +"@babel/helper-module-transforms@npm:^7.16.7": + version: 7.16.7 + resolution: "@babel/helper-module-transforms@npm:7.16.7" dependencies: - "@babel/helper-module-imports": ^7.16.0 - "@babel/helper-replace-supers": ^7.16.0 - "@babel/helper-simple-access": ^7.16.0 - "@babel/helper-split-export-declaration": ^7.16.0 - "@babel/helper-validator-identifier": ^7.15.7 - "@babel/template": ^7.16.0 - "@babel/traverse": ^7.16.0 - "@babel/types": ^7.16.0 - checksum: a3d0e5556f26ebdf2ae422af3b9a1ba1848fead891f46bcd1c6a4be88ad8e9f348140f81d1843a3481574be1643a9c79b01469231f5b5801f5d5e691efdd11f3 + "@babel/helper-environment-visitor": ^7.16.7 + "@babel/helper-module-imports": ^7.16.7 + "@babel/helper-simple-access": ^7.16.7 + "@babel/helper-split-export-declaration": ^7.16.7 + "@babel/helper-validator-identifier": ^7.16.7 + "@babel/template": ^7.16.7 + "@babel/traverse": ^7.16.7 + "@babel/types": ^7.16.7 + checksum: 6e930ce776c979f299cdbeaf80187f4ab086d75287b96ecc1c6896d392fcb561065f0d6219fc06fa79b4ceb4bbdc1a9847da8099aba9b077d0a9e583500fb673 languageName: node linkType: hard -"@babel/helper-optimise-call-expression@npm:^7.16.0": - version: 7.16.0 - resolution: "@babel/helper-optimise-call-expression@npm:7.16.0" - dependencies: - "@babel/types": ^7.16.0 - checksum: 121ae6054fcec76ed2c4dd83f0281b901c1e3cfac1bbff79adc3667983903ad1030a0ad9a8bea58e52b225e13881cf316f371c65276976e7a6762758a98be8f6 - languageName: node - linkType: hard - -"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.8.0": - version: 7.14.5 - resolution: "@babel/helper-plugin-utils@npm:7.14.5" - checksum: fe20e90a24d02770a60ebe80ab9f0dfd7258503cea8006c71709ac9af1aa3e47b0de569499673f11ea6c99597f8c0e4880ae1d505986e61101b69716820972fe +"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.16.7, @babel/helper-plugin-utils@npm:^7.8.0": + version: 7.16.7 + resolution: "@babel/helper-plugin-utils@npm:7.16.7" + checksum: d08dd86554a186c2538547cd537552e4029f704994a9201d41d82015c10ed7f58f9036e8d1527c3760f042409163269d308b0b3706589039c5f1884619c6d4ce languageName: node linkType: hard -"@babel/helper-replace-supers@npm:^7.16.0": - version: 7.16.0 - resolution: "@babel/helper-replace-supers@npm:7.16.0" +"@babel/helper-simple-access@npm:^7.16.7": + version: 7.16.7 + resolution: "@babel/helper-simple-access@npm:7.16.7" dependencies: - "@babel/helper-member-expression-to-functions": ^7.16.0 - "@babel/helper-optimise-call-expression": ^7.16.0 - "@babel/traverse": ^7.16.0 - "@babel/types": ^7.16.0 - checksum: 61f04bbe05ff0987d5a8d5253cb101d47004a27951d6c5cd95457e30fcb3adaca85f0bcaa7f31f4d934f22386b935ac7281398c68982d4a4768769d95c028460 + "@babel/types": ^7.16.7 + checksum: 8d22c46c5ec2ead0686c4d5a3d1d12b5190c59be676bfe0d9d89df62b437b51d1a3df2ccfb8a77dded2e585176ebf12986accb6d45a18cff229eef3b10344f4b languageName: node linkType: hard -"@babel/helper-simple-access@npm:^7.16.0": - version: 7.16.0 - resolution: "@babel/helper-simple-access@npm:7.16.0" +"@babel/helper-split-export-declaration@npm:^7.16.7": + version: 7.16.7 + resolution: "@babel/helper-split-export-declaration@npm:7.16.7" dependencies: - "@babel/types": ^7.16.0 - checksum: 2d7155f318411788b42d2f4a3d406de12952ad620d0bd411a0f3b5803389692ad61d9e7fab5f93b23ad3d8a09db4a75ca9722b9873a606470f468bc301944af6 + "@babel/types": ^7.16.7 + checksum: e10aaf135465c55114627951b79115f24bc7af72ecbb58d541d66daf1edaee5dde7cae3ec8c3639afaf74526c03ae3ce723444e3b5b3dc77140c456cd84bcaa1 languageName: node linkType: hard -"@babel/helper-split-export-declaration@npm:^7.16.0": - version: 7.16.0 - resolution: "@babel/helper-split-export-declaration@npm:7.16.0" - dependencies: - "@babel/types": ^7.16.0 - checksum: 8bd87b5ea2046b145f0f55bc75cbdb6df69eaeb32919ee3c1c758757025aebca03e567a4d48389eb4f16a55021adb6ed8fa58aa771e164b15fa5e0a0722f771d +"@babel/helper-validator-identifier@npm:^7.16.7": + version: 7.16.7 + resolution: "@babel/helper-validator-identifier@npm:7.16.7" + checksum: dbb3db9d184343152520a209b5684f5e0ed416109cde82b428ca9c759c29b10c7450657785a8b5c5256aa74acc6da491c1f0cf6b784939f7931ef82982051b69 languageName: node linkType: hard -"@babel/helper-validator-identifier@npm:^7.15.7": - version: 7.15.7 - resolution: "@babel/helper-validator-identifier@npm:7.15.7" - checksum: f041c28c531d1add5cc345b25d5df3c29c62bce3205b4d4a93dcd164ccf630350acba252d374fad8f5d8ea526995a215829f27183ba7ce7ce141843bf23068a6 +"@babel/helper-validator-option@npm:^7.16.7": + version: 7.16.7 + resolution: "@babel/helper-validator-option@npm:7.16.7" + checksum: c5ccc451911883cc9f12125d47be69434f28094475c1b9d2ada7c3452e6ac98a1ee8ddd364ca9e3f9855fcdee96cdeafa32543ebd9d17fee7a1062c202e80570 languageName: node linkType: hard -"@babel/helper-validator-option@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/helper-validator-option@npm:7.14.5" - checksum: 1b25c34a5cb3d8602280f33b9ab687d2a77895e3616458d0f70ddc450ada9b05e342c44f322bc741d51b252e84cff6ec44ae93d622a3354828579a643556b523 - languageName: node - linkType: hard - -"@babel/helpers@npm:^7.16.0": - version: 7.16.3 - resolution: "@babel/helpers@npm:7.16.3" +"@babel/helpers@npm:^7.16.7": + version: 7.16.7 + resolution: "@babel/helpers@npm:7.16.7" dependencies: - "@babel/template": ^7.16.0 - "@babel/traverse": ^7.16.3 - "@babel/types": ^7.16.0 - checksum: b725b1aab734e9e1407247ee499880583855843fa2855377a2c26277bd9fbd7080219109189bc69b18d71cc30759666bfe66d534729b41452097866d1f5a66ef + "@babel/template": ^7.16.7 + "@babel/traverse": ^7.16.7 + "@babel/types": ^7.16.7 + checksum: 75504c76b66a29b91f954fcc0867dfe275a4cfba5b44df6d64405df74ea72f967fccfa63d62c31c423c5502d113290000c581e0e4858a214f0303d7ecf55c29f languageName: node linkType: hard -"@babel/highlight@npm:^7.16.0": - version: 7.16.0 - resolution: "@babel/highlight@npm:7.16.0" +"@babel/highlight@npm:^7.16.7": + version: 7.16.7 + resolution: "@babel/highlight@npm:7.16.7" dependencies: - "@babel/helper-validator-identifier": ^7.15.7 + "@babel/helper-validator-identifier": ^7.16.7 chalk: ^2.0.0 js-tokens: ^4.0.0 - checksum: abf244c48fcff20ec87830e8b99c776f4dcdd9138e63decc195719a94148da35339639e0d8045eb9d1f3e67a39ab90a9c3f5ce2d579fb1a0368d911ddf29b4e5 + checksum: f7e04e7e03b83c2cca984f4d3e180c9b018784f45d03367e94daf983861229ddc47264045f3b58dfeb0007f9c67bc2a76c4de1693bad90e5394876ef55ece5bb languageName: node linkType: hard -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.16.0, @babel/parser@npm:^7.16.3, @babel/parser@npm:^7.7.0, @babel/parser@npm:^7.7.2": - version: 7.16.4 - resolution: "@babel/parser@npm:7.16.4" +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.16.7, @babel/parser@npm:^7.16.8, @babel/parser@npm:^7.7.0": + version: 7.16.8 + resolution: "@babel/parser@npm:7.16.8" bin: parser: ./bin/babel-parser.js - checksum: ce0a8f92f440f2a12bc932f070a7b60c5133bf8a63f461841f9e39af0194f573707959d606c6fad1a2fd496a45148553afd9b74d3b8dd36cdb7861598d1f3e36 + checksum: f6bc2eb1f298fcb81db34c2d343fd05d8c59dbc5419a88c1cb4d298c7a3863e4d54f5a4f38a40e1aa979e4ce355816348730b471c1d787d424ed52b270fc7be0 languageName: node linkType: hard @@ -501,51 +480,52 @@ __metadata: linkType: hard "@babel/plugin-syntax-typescript@npm:^7.7.2": - version: 7.16.0 - resolution: "@babel/plugin-syntax-typescript@npm:7.16.0" + version: 7.16.7 + resolution: "@babel/plugin-syntax-typescript@npm:7.16.7" dependencies: - "@babel/helper-plugin-utils": ^7.14.5 + "@babel/helper-plugin-utils": ^7.16.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 2da3bdd031230e515615fe39c50d40064d04f64f1d2b60113adff2c112a27e4f9425425e604297d5c2af2b635e7980f3677e434dfeb1d7320ad2cd1ffc8e8c2a + checksum: 661e636060609ede9a402e22603b01784c21fabb0a637e65f561c8159351fe0130bbc11fdefe31902107885e3332fc34d95eb652ac61d3f61f2d61f5da20609e languageName: node linkType: hard -"@babel/template@npm:^7.16.0, @babel/template@npm:^7.3.3": - version: 7.16.0 - resolution: "@babel/template@npm:7.16.0" +"@babel/template@npm:^7.16.7, @babel/template@npm:^7.3.3": + version: 7.16.7 + resolution: "@babel/template@npm:7.16.7" dependencies: - "@babel/code-frame": ^7.16.0 - "@babel/parser": ^7.16.0 - "@babel/types": ^7.16.0 - checksum: 940f105cc6a6aee638cd8cfae80b8b80811e0ddd53b6a11f3a68431ebb998564815fb26511b5d9cb4cff66ea67130ba7498555ee015375d32f5f89ceaa6662ea + "@babel/code-frame": ^7.16.7 + "@babel/parser": ^7.16.7 + "@babel/types": ^7.16.7 + checksum: 10cd112e89276e00f8b11b55a51c8b2f1262c318283a980f4d6cdb0286dc05734b9aaeeb9f3ad3311900b09bc913e02343fcaa9d4a4f413964aaab04eb84ac4a languageName: node linkType: hard -"@babel/traverse@npm:^7.1.0, @babel/traverse@npm:^7.16.0, @babel/traverse@npm:^7.16.3, @babel/traverse@npm:^7.7.0, @babel/traverse@npm:^7.7.2": - version: 7.16.3 - resolution: "@babel/traverse@npm:7.16.3" +"@babel/traverse@npm:^7.16.7, @babel/traverse@npm:^7.7.0, @babel/traverse@npm:^7.7.2": + version: 7.16.8 + resolution: "@babel/traverse@npm:7.16.8" dependencies: - "@babel/code-frame": ^7.16.0 - "@babel/generator": ^7.16.0 - "@babel/helper-function-name": ^7.16.0 - "@babel/helper-hoist-variables": ^7.16.0 - "@babel/helper-split-export-declaration": ^7.16.0 - "@babel/parser": ^7.16.3 - "@babel/types": ^7.16.0 + "@babel/code-frame": ^7.16.7 + "@babel/generator": ^7.16.8 + "@babel/helper-environment-visitor": ^7.16.7 + "@babel/helper-function-name": ^7.16.7 + "@babel/helper-hoist-variables": ^7.16.7 + "@babel/helper-split-export-declaration": ^7.16.7 + "@babel/parser": ^7.16.8 + "@babel/types": ^7.16.8 debug: ^4.1.0 globals: ^11.1.0 - checksum: abb14857b1104c73124612954865e28f95a86eb6741f35851369b4f9eabc17e394c9aa6f21fba6ce23813592353090d409772be828717cbe5154a5e981a753c1 + checksum: 303bc328289c73bd57dc8b90e83dfa9f4dae8e7039c95350994db67b2850a7966645c2c9f3292d0621f2051bb3d34439dc294b258dc1ad0e9d7eab04ac6bcb44 languageName: node linkType: hard -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.16.0, @babel/types@npm:^7.3.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.7.0, @babel/types@npm:^7.8.3": - version: 7.16.0 - resolution: "@babel/types@npm:7.16.0" +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.16.7, @babel/types@npm:^7.16.8, @babel/types@npm:^7.3.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.7.0, @babel/types@npm:^7.8.3": + version: 7.16.8 + resolution: "@babel/types@npm:7.16.8" dependencies: - "@babel/helper-validator-identifier": ^7.15.7 + "@babel/helper-validator-identifier": ^7.16.7 to-fast-properties: ^2.0.0 - checksum: 5b483da5c6e6f2394fba7ee1da8787a0c9cddd33491271c4da702e49e6faf95ce41d7c8bf9a4ee47f2ef06bdb35096f4d0f6ae4b5bea35ebefe16309d22344b7 + checksum: 4f6a187b2924df70e21d6e6c0822f91b1b936fe060bc92bb477b93bd8a712c88fe41a73f85c0ec53b033353374fe33e773b04ffc340ad36afd8f647dd05c4ee1 languageName: node linkType: hard @@ -629,28 +609,28 @@ __metadata: languageName: node linkType: hard -"@jest/console@npm:^27.4.2": - version: 27.4.2 - resolution: "@jest/console@npm:27.4.2" +"@jest/console@npm:^27.4.6": + version: 27.4.6 + resolution: "@jest/console@npm:27.4.6" dependencies: "@jest/types": ^27.4.2 "@types/node": "*" chalk: ^4.0.0 - jest-message-util: ^27.4.2 + jest-message-util: ^27.4.6 jest-util: ^27.4.2 slash: ^3.0.0 - checksum: d285de0ad924a726c0a1b472968e749a88e33fc5b5af4ef06c1eea5f9f489701ebd81da1b70837fcb810e8d66f8e925d6e49be2cd5a3842304d00b54a81ff14f + checksum: 603408498d2fd7fa6cfb85cc18a5823747c824be2f88be526ed4db83df65db7a9d3a93056eeaddd32ea1517d581b94862e532ccde081e0ecf9d82ac743ec6ac2 languageName: node linkType: hard -"@jest/core@npm:^27.4.5": - version: 27.4.5 - resolution: "@jest/core@npm:27.4.5" +"@jest/core@npm:^27.4.7": + version: 27.4.7 + resolution: "@jest/core@npm:27.4.7" dependencies: - "@jest/console": ^27.4.2 - "@jest/reporters": ^27.4.5 - "@jest/test-result": ^27.4.2 - "@jest/transform": ^27.4.5 + "@jest/console": ^27.4.6 + "@jest/reporters": ^27.4.6 + "@jest/test-result": ^27.4.6 + "@jest/transform": ^27.4.6 "@jest/types": ^27.4.2 "@types/node": "*" ansi-escapes: ^4.2.1 @@ -659,18 +639,18 @@ __metadata: exit: ^0.1.2 graceful-fs: ^4.2.4 jest-changed-files: ^27.4.2 - jest-config: ^27.4.5 - jest-haste-map: ^27.4.5 - jest-message-util: ^27.4.2 + jest-config: ^27.4.7 + jest-haste-map: ^27.4.6 + jest-message-util: ^27.4.6 jest-regex-util: ^27.4.0 - jest-resolve: ^27.4.5 - jest-resolve-dependencies: ^27.4.5 - jest-runner: ^27.4.5 - jest-runtime: ^27.4.5 - jest-snapshot: ^27.4.5 + jest-resolve: ^27.4.6 + jest-resolve-dependencies: ^27.4.6 + jest-runner: ^27.4.6 + jest-runtime: ^27.4.6 + jest-snapshot: ^27.4.6 jest-util: ^27.4.2 - jest-validate: ^27.4.2 - jest-watcher: ^27.4.2 + jest-validate: ^27.4.6 + jest-watcher: ^27.4.6 micromatch: ^4.0.4 rimraf: ^3.0.0 slash: ^3.0.0 @@ -680,55 +660,55 @@ __metadata: peerDependenciesMeta: node-notifier: optional: true - checksum: d9332952196018abfc0b5cbbc9062f71872859bbe7a55b98788fc7b2f30fec1286d2dd882d8aa75fa14f5aeea8401a3eaacfed88dc86b159934dc35e06a2cadd + checksum: 24ed123ef1819fa8c6069706760efac9904ee8824b22c346259be2017d820b5e578a4d444339448a576a0158e6fec91d18fdedb201bc97d7390b105d665f3642 languageName: node linkType: hard -"@jest/environment@npm:^27.4.4": - version: 27.4.4 - resolution: "@jest/environment@npm:27.4.4" +"@jest/environment@npm:^27.4.6": + version: 27.4.6 + resolution: "@jest/environment@npm:27.4.6" dependencies: - "@jest/fake-timers": ^27.4.2 + "@jest/fake-timers": ^27.4.6 "@jest/types": ^27.4.2 "@types/node": "*" - jest-mock: ^27.4.2 - checksum: 59296abb5d073b7a5f24faba6d39e716cbbba077b7477e944a46cfdc7a0624035e4c78c3cb8d27e0875ecb26a1526720be177a9e1aef0efed8e7ba8dd9fb4b6e + jest-mock: ^27.4.6 + checksum: c3aadcf6d42e55e35d8020f7cf5054c445775608e466fcfc37348359e54f2f79e0e39d029281836ae9082dc50eac81d1cf6b4fc3899adfb58afc68a7c72f8e3d languageName: node linkType: hard -"@jest/fake-timers@npm:^27.4.2": - version: 27.4.2 - resolution: "@jest/fake-timers@npm:27.4.2" +"@jest/fake-timers@npm:^27.4.6": + version: 27.4.6 + resolution: "@jest/fake-timers@npm:27.4.6" dependencies: "@jest/types": ^27.4.2 "@sinonjs/fake-timers": ^8.0.1 "@types/node": "*" - jest-message-util: ^27.4.2 - jest-mock: ^27.4.2 + jest-message-util: ^27.4.6 + jest-mock: ^27.4.6 jest-util: ^27.4.2 - checksum: 4b0c21ce8aec687ccd4e96b6f9d532a9848517b5e5fc8fa96a90fe1e7514952d0e1f805e6539fbd7336fbbac05e1a4ec7915c59284c40d919fcfb1a226b3bc9d + checksum: 389f655d39f13fdd0448b554260cd41810cf824b99e9de057600869a708d34cfa74e7fdaba5fcd6e3295e7bfed08f1b3fc0735ca86f7c0b2281b25e534032876 languageName: node linkType: hard -"@jest/globals@npm:^27.4.4": - version: 27.4.4 - resolution: "@jest/globals@npm:27.4.4" +"@jest/globals@npm:^27.4.6": + version: 27.4.6 + resolution: "@jest/globals@npm:27.4.6" dependencies: - "@jest/environment": ^27.4.4 + "@jest/environment": ^27.4.6 "@jest/types": ^27.4.2 - expect: ^27.4.2 - checksum: b43d8290fbd09148961877cc859c4e23e4c7cb44c161d540fd7ab8f9dc490cf787dc346c308d7df9d23429461754156b78b36bc14b78823f51c3869106e2e0c6 + expect: ^27.4.6 + checksum: a438645771f45557b3af6e371e65c88e109d7433d3d4ee5db908177f29be6d6d12b4cfe9279ae6475bc033b5ff2a97235659a75f2718855041dd3ed805ed2edd languageName: node linkType: hard -"@jest/reporters@npm:^27.4.5": - version: 27.4.5 - resolution: "@jest/reporters@npm:27.4.5" +"@jest/reporters@npm:^27.4.6": + version: 27.4.6 + resolution: "@jest/reporters@npm:27.4.6" dependencies: "@bcoe/v8-coverage": ^0.2.3 - "@jest/console": ^27.4.2 - "@jest/test-result": ^27.4.2 - "@jest/transform": ^27.4.5 + "@jest/console": ^27.4.6 + "@jest/test-result": ^27.4.6 + "@jest/transform": ^27.4.6 "@jest/types": ^27.4.2 "@types/node": "*" chalk: ^4.0.0 @@ -737,14 +717,14 @@ __metadata: glob: ^7.1.2 graceful-fs: ^4.2.4 istanbul-lib-coverage: ^3.0.0 - istanbul-lib-instrument: ^4.0.3 + istanbul-lib-instrument: ^5.1.0 istanbul-lib-report: ^3.0.0 istanbul-lib-source-maps: ^4.0.0 - istanbul-reports: ^3.0.2 - jest-haste-map: ^27.4.5 - jest-resolve: ^27.4.5 + istanbul-reports: ^3.1.3 + jest-haste-map: ^27.4.6 + jest-resolve: ^27.4.6 jest-util: ^27.4.2 - jest-worker: ^27.4.5 + jest-worker: ^27.4.6 slash: ^3.0.0 source-map: ^0.6.0 string-length: ^4.0.1 @@ -755,7 +735,7 @@ __metadata: peerDependenciesMeta: node-notifier: optional: true - checksum: d053edae6906171f29c50c6129a600dd10d00320adf6df57938efc651ddd98aecdf7e3f82c3778e77311e8358e57e337d21c391aa867c9c289366e7bd4d6cf2b + checksum: 4c14b2cf6c9b624977f9ad519e9ce2f5ead4a3c9a3fa0b9c68097b7bc78b598ceb5402566417d81e16489dbd6bb6e97e58f04c22099013897dd6010c0549b169 languageName: node linkType: hard @@ -770,50 +750,50 @@ __metadata: languageName: node linkType: hard -"@jest/test-result@npm:^27.4.2": - version: 27.4.2 - resolution: "@jest/test-result@npm:27.4.2" +"@jest/test-result@npm:^27.4.6": + version: 27.4.6 + resolution: "@jest/test-result@npm:27.4.6" dependencies: - "@jest/console": ^27.4.2 + "@jest/console": ^27.4.6 "@jest/types": ^27.4.2 "@types/istanbul-lib-coverage": ^2.0.0 collect-v8-coverage: ^1.0.0 - checksum: bc3b91a76b505c7367e15d318ce49332e56857b9f6a00f67e9debfcbd11f22f90942b3e0aeea44b7e8da1fecba4fcb6ac591d007e488c300e361b763cf3b65b9 + checksum: ddfc5783f2025ba979df395ddead7f76aac91df9a8a4ab15d5b1210a58e523932bb9ea9e1e97229c09cab81fdb2611292fdc8e56e2c5b44ed452ac11db7f79f0 languageName: node linkType: hard -"@jest/test-sequencer@npm:^27.4.5": - version: 27.4.5 - resolution: "@jest/test-sequencer@npm:27.4.5" +"@jest/test-sequencer@npm:^27.4.6": + version: 27.4.6 + resolution: "@jest/test-sequencer@npm:27.4.6" dependencies: - "@jest/test-result": ^27.4.2 + "@jest/test-result": ^27.4.6 graceful-fs: ^4.2.4 - jest-haste-map: ^27.4.5 - jest-runtime: ^27.4.5 - checksum: b78376fe4b964f2fd7e71083c220e5f0a8f59f079dc88783c60fce969b09ea38eebabc32c50a4637c20679a8bfa8220abb814cd232d241ee385d4df3d93f7d21 + jest-haste-map: ^27.4.6 + jest-runtime: ^27.4.6 + checksum: 8d761fd81f5cf4845a09844a8a16717fc148137f364916165ce5e1ebfc5dfd89160d4b98e7e947c97f8707500050863606d0becb8c388997efcc31cafa6f5e31 languageName: node linkType: hard -"@jest/transform@npm:^27.4.5": - version: 27.4.5 - resolution: "@jest/transform@npm:27.4.5" +"@jest/transform@npm:^27.4.6": + version: 27.4.6 + resolution: "@jest/transform@npm:27.4.6" dependencies: "@babel/core": ^7.1.0 "@jest/types": ^27.4.2 - babel-plugin-istanbul: ^6.0.0 + babel-plugin-istanbul: ^6.1.1 chalk: ^4.0.0 convert-source-map: ^1.4.0 fast-json-stable-stringify: ^2.0.0 graceful-fs: ^4.2.4 - jest-haste-map: ^27.4.5 + jest-haste-map: ^27.4.6 jest-regex-util: ^27.4.0 jest-util: ^27.4.2 micromatch: ^4.0.4 - pirates: ^4.0.1 + pirates: ^4.0.4 slash: ^3.0.0 source-map: ^0.6.1 write-file-atomic: ^3.0.0 - checksum: f7a479545969d327a253ff1963c20260cffdee50cbc1345205f06e206df09871dd3f62dd4ba5358a087587ef5fa320b2e32efe1166192d8da835065e99d6bce7 + checksum: b2500fc5a7e7cad34547acdb8930797f021cda6b811ed0626564999bfd9ca856f52cc3a9b2ced5d037f3bd06a49b8b30cb7c10259318dc67bd11a564854d2ca6 languageName: node linkType: hard @@ -919,12 +899,12 @@ __metadata: linkType: hard "@npmcli/fs@npm:^1.0.0": - version: 1.0.0 - resolution: "@npmcli/fs@npm:1.0.0" + version: 1.1.0 + resolution: "@npmcli/fs@npm:1.1.0" dependencies: "@gar/promisify": ^1.0.1 semver: ^7.3.5 - checksum: f2b4990107dd2a5b18794c89aaff6f62f3a67883d49a20602fdfc353cbc7f8c5fd50edeffdc769e454900e01b8b8e43d0b9eb524d00963d69f3c829be1a2e8ac + checksum: e435b883b4f8da8c95a820f458cabb7d86582406eed5ad79fc689000d3e2df17e1f475c4903627272c001357cabc70d8b4c62520cbdae8cfab1dfdd51949f408 languageName: node linkType: hard @@ -1002,24 +982,24 @@ __metadata: linkType: hard "@types/babel__core@npm:^7.0.0, @types/babel__core@npm:^7.1.14": - version: 7.1.16 - resolution: "@types/babel__core@npm:7.1.16" + version: 7.1.18 + resolution: "@types/babel__core@npm:7.1.18" dependencies: "@babel/parser": ^7.1.0 "@babel/types": ^7.0.0 "@types/babel__generator": "*" "@types/babel__template": "*" "@types/babel__traverse": "*" - checksum: d5aa154ce8c63e5fd47f5b9286a2689eea1e6dd3e1005b0c608bfe72363a44cb32be1e104f81d4b976e8a9f1f802d03184e64a055984fd43a359c5518a0f94cf + checksum: 2e5b5d7c84f347d3789575486e58b0df5c91613abc3d27e716274aba3048518e07e1f068250ba829e2ed58532ccc88da595ce95ba2688e7bbcd7c25a3c6627ed languageName: node linkType: hard "@types/babel__generator@npm:*": - version: 7.6.3 - resolution: "@types/babel__generator@npm:7.6.3" + version: 7.6.4 + resolution: "@types/babel__generator@npm:7.6.4" dependencies: "@babel/types": ^7.0.0 - checksum: 0aa1881c47e3e471cabb9183ae42176591b168a6fe4714d205aec33a7e480d65a8a1ba7fcd9678337aadc34059dc5baa04841e5adfbbe67ae33bad79e7633b8e + checksum: 20effbbb5f8a3a0211e95959d06ae70c097fb6191011b73b38fe86deebefad8e09ee014605e0fd3cdaedc73d158be555866810e9166e1f09e4cfd880b874dcb0 languageName: node linkType: hard @@ -1052,9 +1032,9 @@ __metadata: linkType: hard "@types/istanbul-lib-coverage@npm:*, @types/istanbul-lib-coverage@npm:^2.0.0, @types/istanbul-lib-coverage@npm:^2.0.1": - version: 2.0.3 - resolution: "@types/istanbul-lib-coverage@npm:2.0.3" - checksum: 0650cba4be8f464bee89b9de0b71a5ea3b5cc676ce24e1196b5d6a51542ce9e613ae4549bf19756bb33dbbbb32b47931040266100062bfb197c597d73e341eb0 + version: 2.0.4 + resolution: "@types/istanbul-lib-coverage@npm:2.0.4" + checksum: a25d7589ee65c94d31464c16b72a9dc81dfa0bea9d3e105ae03882d616e2a0712a9c101a599ec482d297c3591e16336962878cb3eb1a0a62d5b76d277a890ce7 languageName: node linkType: hard @@ -1107,7 +1087,14 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:*, @types/node@npm:16.11.11": +"@types/node@npm:*": + version: 17.0.8 + resolution: "@types/node@npm:17.0.8" + checksum: f4cadeb9e602027520abc88c77142697e33cf6ac98bb02f8b595a398603cbd33df1f94d01c055c9f13cde0c8eaafc5e396ca72645458d42b4318b845bc7f1d0f + languageName: node + linkType: hard + +"@types/node@npm:16.11.11": version: 16.11.11 resolution: "@types/node@npm:16.11.11" checksum: 1c472bd63f23ca0e4effc96e6e0c693b83b027f613a1f41b6d1bd7791f65ce171a351e0a5c92575cb59e84ad0a930875397bfbbb91a7c925ddbbb558f7461af8 @@ -1115,9 +1102,9 @@ __metadata: linkType: hard "@types/prettier@npm:^2.1.5": - version: 2.4.2 - resolution: "@types/prettier@npm:2.4.2" - checksum: 76e230b2d11028af11fe12e09b2d5b10b03738e9abf819ae6ebb0f78cac13d39f860755ce05ac3855b608222518d956628f5d00322dc206cc6d1f2d8d1519f1e + version: 2.4.3 + resolution: "@types/prettier@npm:2.4.3" + checksum: b240434daabac54700c862b0bb52a83fec396e0e9c847447119ba41fd8404d79aadfa174e6306fb094b29efadac586344b7606c3a71c286b71755ab2579d54df languageName: node linkType: hard @@ -1293,16 +1280,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.2.4": - version: 8.6.0 - resolution: "acorn@npm:8.6.0" - bin: - acorn: bin/acorn - checksum: 9d0de73b73cb6ea8ccd8263a8144d9e2c4b6af90ea0c429997538af0ebbe83c5addecee814b2a7f91f7f615d0bd1547cc7137b3fa236ce058adc64feccee850b - languageName: node - linkType: hard - -"acorn@npm:^8.7.0": +"acorn@npm:^8.2.4, acorn@npm:^8.7.0": version: 8.7.0 resolution: "acorn@npm:8.7.0" bin: @@ -1321,13 +1299,13 @@ __metadata: linkType: hard "agentkeepalive@npm:^4.1.3": - version: 4.1.4 - resolution: "agentkeepalive@npm:4.1.4" + version: 4.2.0 + resolution: "agentkeepalive@npm:4.2.0" dependencies: debug: ^4.1.0 depd: ^1.1.2 humanize-ms: ^1.2.1 - checksum: d49c24d4b333e9507119385895a583872f4f53d62764a89be165926e824056a126955bae4a6d3c6f7cd26f4089621a40f7b27675f7868214d82118f744b9e82d + checksum: 89806f83ceebbcaabf6bd581a8dce4870910fd2a11f66df8f505b4cd4ce4ca5ab9e6eec8d11ce8531a6b60f6748b75b0775e0e2fa33871503ef00d535418a19a languageName: node linkType: hard @@ -1507,25 +1485,25 @@ __metadata: languageName: node linkType: hard -"babel-jest@npm:^27.4.5": - version: 27.4.5 - resolution: "babel-jest@npm:27.4.5" +"babel-jest@npm:^27.4.6": + version: 27.4.6 + resolution: "babel-jest@npm:27.4.6" dependencies: - "@jest/transform": ^27.4.5 + "@jest/transform": ^27.4.6 "@jest/types": ^27.4.2 "@types/babel__core": ^7.1.14 - babel-plugin-istanbul: ^6.0.0 + babel-plugin-istanbul: ^6.1.1 babel-preset-jest: ^27.4.0 chalk: ^4.0.0 graceful-fs: ^4.2.4 slash: ^3.0.0 peerDependencies: "@babel/core": ^7.8.0 - checksum: 986601fd143e6bdd9b9c176ade5c1f93a63e38beba511527183fec5f1041920f1262fcb3f87e8660c85fc6cc731d5d49570b35d54c31427644c6849caa137d89 + checksum: fc839d5e8788170e68c8cbde9466fdf1c4fc740a947ba0728e1933ade7ad6fe744c9276d86207f093b64e9cf72a1fdd756fbc44c21034282f01832338e7a8a80 languageName: node linkType: hard -"babel-plugin-istanbul@npm:^6.0.0": +"babel-plugin-istanbul@npm:^6.1.1": version: 6.1.1 resolution: "babel-plugin-istanbul@npm:6.1.1" dependencies: @@ -1636,17 +1614,17 @@ __metadata: linkType: hard "browserslist@npm:^4.17.5": - version: 4.18.1 - resolution: "browserslist@npm:4.18.1" + version: 4.19.1 + resolution: "browserslist@npm:4.19.1" dependencies: - caniuse-lite: ^1.0.30001280 - electron-to-chromium: ^1.3.896 + caniuse-lite: ^1.0.30001286 + electron-to-chromium: ^1.4.17 escalade: ^3.1.1 node-releases: ^2.0.1 picocolors: ^1.0.0 bin: browserslist: cli.js - checksum: ae58322deef15960fc2e601d71bc081b571cfab6705999a3d24db5325b9cfadf5f676615f4460207a93e600549c33d60d37b4502007fe9e737b3cc19e20575d5 + checksum: c0777fd483691638fd6801e16c9d809e1d65f6d2b06db2e806654be51045cbab1452a89841a2c5caea2cbe19d621b4f1d391cffbb24512aa33280039ab345875 languageName: node linkType: hard @@ -1743,16 +1721,16 @@ __metadata: linkType: hard "camelcase@npm:^6.2.0": - version: 6.2.1 - resolution: "camelcase@npm:6.2.1" - checksum: d876272ef76391ebf8442fb7ea1d77e80ae179ce1339e021a8731b4895fd190dc19e148e045469cff5825d4c089089f3fff34d804d3f49115d55af97dd6ac0af + version: 6.3.0 + resolution: "camelcase@npm:6.3.0" + checksum: 8c96818a9076434998511251dcb2761a94817ea17dbdc37f47ac080bd088fc62c7369429a19e2178b993497132c8cbcf5cc1f44ba963e76782ba469c0474938d languageName: node linkType: hard -"caniuse-lite@npm:^1.0.30001280": - version: 1.0.30001283 - resolution: "caniuse-lite@npm:1.0.30001283" - checksum: a13916f1b5ea0d75fe34d1ac8b8b841f88da69f98b1fd5178fd350291fdc1794daebcaaf57c3d3bc60f33aa27ecdf8e0909dc1a013475754c5416515f9bc32c2 +"caniuse-lite@npm:^1.0.30001286": + version: 1.0.30001299 + resolution: "caniuse-lite@npm:1.0.30001299" + checksum: c770f60ebf3e0cc8043ba4db0ebec12d7a595a6b50cb4437c3c5c55b04de9d2413f711f2828be761e8c37bb46b927a8abe6b199b8f0ffc1a34af0ebdee84be27 languageName: node linkType: hard @@ -2075,9 +2053,9 @@ __metadata: linkType: hard "date-fns@npm:^2.16.1": - version: 2.27.0 - resolution: "date-fns@npm:2.27.0" - checksum: db62036b3816eb0322c9532b353beac7f660a91e1a55dbd21c14893c621ebb8509f21c66ba287844dabd34dee0207edd54a9537bce6bb7cab9383dedc6b8bc90 + version: 2.28.0 + resolution: "date-fns@npm:2.28.0" + checksum: a0516b2e4f99b8bffc6cc5193349f185f195398385bdcaf07f17c2c4a24473c99d933eb0018be4142a86a6d46cb0b06be6440ad874f15e795acbedd6fd727a1f languageName: node linkType: hard @@ -2242,6 +2220,13 @@ __metadata: languageName: node linkType: hard +"dotenv@npm:11.0.0": + version: 11.0.0 + resolution: "dotenv@npm:11.0.0" + checksum: 48df9e85ea1d41b3096afc1990b9b1bd966deb6c9e056cd43f14e755f3ef1e5d477c3b05afc7ca651e31320c26a9b7dc375bc3313777352c51e6a2f539ea1ffc + languageName: node + linkType: hard + "easy-table@npm:1.1.0": version: 1.1.0 resolution: "easy-table@npm:1.1.0" @@ -2254,10 +2239,10 @@ __metadata: languageName: node linkType: hard -"electron-to-chromium@npm:^1.3.896": - version: 1.4.8 - resolution: "electron-to-chromium@npm:1.4.8" - checksum: 1b7ad23906baae9c01471a3290a93f274425219738432a96bd1961d4ac9f421d70ae31e5c2008c94d5bfe7bae8d31899b5ebe26e03362df586ab4b9f29cb3ee6 +"electron-to-chromium@npm:^1.4.17": + version: 1.4.44 + resolution: "electron-to-chromium@npm:1.4.44" + checksum: 76b0c723cf4fa3f542e4e34add8c559d5c3668192d1f359d24b45546b34791dff716e9fd905fbcddd6875cb849b72106c6f5edd682bba2f78c1c2eb6bccd647d languageName: node linkType: hard @@ -2730,17 +2715,15 @@ __metadata: languageName: node linkType: hard -"expect@npm:^27.4.2": - version: 27.4.2 - resolution: "expect@npm:27.4.2" +"expect@npm:^27.4.6": + version: 27.4.6 + resolution: "expect@npm:27.4.6" dependencies: "@jest/types": ^27.4.2 - ansi-styles: ^5.0.0 jest-get-type: ^27.4.0 - jest-matcher-utils: ^27.4.2 - jest-message-util: ^27.4.2 - jest-regex-util: ^27.4.0 - checksum: 5eba0f348fd234420d7b4f09968d30d0b19e9e73579ad060e5e635be879671dfb9bed472befe1d5fe8749b6beefc08beba0e034d5aad2aca11e4d5ac43873326 + jest-matcher-utils: ^27.4.6 + jest-message-util: ^27.4.6 + checksum: 593eaa8ff34320f9a70f961bc25eeae932df4f48ebcc5ecc1033f1cddffd286fc42a2f312929222541cec1077de2604ff4fc6e97012afcbd36b333bfaba82f7f languageName: node linkType: hard @@ -2769,16 +2752,16 @@ __metadata: languageName: node linkType: hard -"fast-glob@npm:^3.1.1": - version: 3.2.7 - resolution: "fast-glob@npm:3.2.7" +"fast-glob@npm:^3.2.9": + version: 3.2.10 + resolution: "fast-glob@npm:3.2.10" dependencies: "@nodelib/fs.stat": ^2.0.2 "@nodelib/fs.walk": ^1.2.3 glob-parent: ^5.1.2 merge2: ^1.3.0 micromatch: ^4.0.4 - checksum: 2f4708ff112d2b451888129fdd9a0938db88b105b0ddfd043c064e3c4d3e20eed8d7c7615f7565fee660db34ddcf08a2db1bf0ab3c00b87608e4719694642d78 + checksum: dee958d95638c8d00d200c55af5884dda513cfef96f674caab5a289a4436936ee26d603841a9ab85a6a4d9f7914558bce78dbf1088d3b8ec64b255422eea840b languageName: node linkType: hard @@ -2885,12 +2868,12 @@ __metadata: linkType: hard "follow-redirects@npm:^1.14.4": - version: 1.14.5 - resolution: "follow-redirects@npm:1.14.5" + version: 1.14.7 + resolution: "follow-redirects@npm:1.14.7" peerDependenciesMeta: debug: optional: true - checksum: f004a76b2ee3a849772c2816e30928253bf47537b0f00184d89f4966413add96a228a4d96ca8c702bc045a683c52c2ba41545c915cc1a5e33bf8fd9d07b59aee + checksum: f6d03e5e30877431065bca0d1b2e3db93949eb799d368a5c07ea8a4b71205f0349a3f8f0191bf13a07c93885522834dca1dc8e527dc99a772c6911fba24edc5f languageName: node linkType: hard @@ -2932,7 +2915,7 @@ __metadata: languageName: node linkType: hard -fsevents@^2.3.2: +"fsevents@npm:^2.3.2": version: 2.3.2 resolution: "fsevents@npm:2.3.2" dependencies: @@ -3094,23 +3077,23 @@ fsevents@^2.3.2: linkType: hard "globby@npm:^11.0.4": - version: 11.0.4 - resolution: "globby@npm:11.0.4" + version: 11.1.0 + resolution: "globby@npm:11.1.0" dependencies: array-union: ^2.1.0 dir-glob: ^3.0.1 - fast-glob: ^3.1.1 - ignore: ^5.1.4 - merge2: ^1.3.0 + fast-glob: ^3.2.9 + ignore: ^5.2.0 + merge2: ^1.4.1 slash: ^3.0.0 - checksum: d3e02d5e459e02ffa578b45f040381c33e3c0538ed99b958f0809230c423337999867d7b0dbf752ce93c46157d3bbf154d3fff988a93ccaeb627df8e1841775b + checksum: b4be8885e0cfa018fc783792942d53926c35c50b3aefd3fdcfb9d22c627639dc26bd2327a40a0b74b074100ce95bb7187bfeae2f236856aa3de183af7a02aea6 languageName: node linkType: hard "graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6": - version: 4.2.8 - resolution: "graceful-fs@npm:4.2.8" - checksum: 5d224c8969ad0581d551dfabdb06882706b31af2561bd5e2034b4097e67cc27d05232849b8643866585fd0a41c7af152950f8776f4dd5579e9853733f31461c6 + version: 4.2.9 + resolution: "graceful-fs@npm:4.2.9" + checksum: 68ea4e07ff2c041ada184f9278b830375f8e0b75154e3f080af6b70f66172fabb4108d19b3863a96b53fc068a310b9b6493d86d1291acc5f3861eb4b79d26ad6 languageName: node linkType: hard @@ -3259,10 +3242,10 @@ fsevents@^2.3.2: languageName: node linkType: hard -"ignore@npm:^5.0.5, ignore@npm:^5.1.4, ignore@npm:^5.1.8": - version: 5.1.9 - resolution: "ignore@npm:5.1.9" - checksum: 6f6b2235f4e63648116c5814f76b2d3d63fae9c21b8a466862e865732f59e787c9938a9042f9457091db6f0d811508ea3c8c6a60f35bafc4ceea08bbe8f96fd5 +"ignore@npm:^5.0.5, ignore@npm:^5.1.8, ignore@npm:^5.2.0": + version: 5.2.0 + resolution: "ignore@npm:5.2.0" + checksum: 6b1f926792d614f64c6c83da3a1f9c83f6196c2839aa41e1e32dd7b8d174cef2e329d75caabb62cb61ce9dc432f75e67d07d122a037312db7caa73166a1bdb77 languageName: node linkType: hard @@ -3277,14 +3260,14 @@ fsevents@^2.3.2: linkType: hard "import-local@npm:^3.0.2": - version: 3.0.3 - resolution: "import-local@npm:3.0.3" + version: 3.1.0 + resolution: "import-local@npm:3.1.0" dependencies: pkg-dir: ^4.2.0 resolve-cwd: ^3.0.0 bin: import-local-fixture: fixtures/cli.js - checksum: 38ae57d35e7fd5f63b55895050c798d4dd590e4e2337e9ffa882fb3ea7a7716f3162c7300e382e0a733ca5d07b389fadff652c00fa7b072d5cb6ea34ca06b179 + checksum: bfcdb63b5e3c0e245e347f3107564035b128a414c4da1172a20dc67db2504e05ede4ac2eee1252359f78b0bfd7b19ef180aec427c2fce6493ae782d73a04cddd languageName: node linkType: hard @@ -3392,12 +3375,12 @@ fsevents@^2.3.2: languageName: node linkType: hard -"is-core-module@npm:^2.2.0, is-core-module@npm:^2.8.0": - version: 2.8.0 - resolution: "is-core-module@npm:2.8.0" +"is-core-module@npm:^2.8.0": + version: 2.8.1 + resolution: "is-core-module@npm:2.8.1" dependencies: has: ^1.0.3 - checksum: f8b52714891e1a6c6577fcb8d5e057bab064a7a30954aab6beb5092e311473eb8da57afd334de4981dc32409ffca998412efc3a2edceb9e397cef6098d21dd91 + checksum: 418b7bc10768a73c41c7ef497e293719604007f88934a6ffc5f7c78702791b8528102fb4c9e56d006d69361549b3d9519440214a74aefc7e0b79e5e4411d377f languageName: node linkType: hard @@ -3455,9 +3438,9 @@ fsevents@^2.3.2: linkType: hard "is-negative-zero@npm:^2.0.1": - version: 2.0.1 - resolution: "is-negative-zero@npm:2.0.1" - checksum: a46f2e0cb5e16fdb8f2011ed488979386d7e68d381966682e3f4c98fc126efe47f26827912baca2d06a02a644aee458b9cba307fb389f6b161e759125db7a3b8 + version: 2.0.2 + resolution: "is-negative-zero@npm:2.0.2" + checksum: f3232194c47a549da60c3d509c9a09be442507616b69454716692e37ae9f37c4dea264fb208ad0c9f3efd15a796a46b79df07c7e53c6227c32170608b809149a languageName: node linkType: hard @@ -3541,11 +3524,11 @@ fsevents@^2.3.2: linkType: hard "is-weakref@npm:^1.0.1": - version: 1.0.1 - resolution: "is-weakref@npm:1.0.1" + version: 1.0.2 + resolution: "is-weakref@npm:1.0.2" dependencies: - call-bind: ^1.0.0 - checksum: fdafb7b955671dd2f9658ff47c86e4025c0650fc68a3542a40e5a75898a763b1abd6b1e1f9f13207eed49541cdd76af67d73c44989ea358b201b70274cf8f6c1 + call-bind: ^1.0.2 + checksum: 95bd9a57cdcb58c63b1c401c60a474b0f45b94719c30f548c891860f051bc2231575c290a6b420c6bc6e7ed99459d424c652bd5bf9a1d5259505dc35b4bf83de languageName: node linkType: hard @@ -3563,19 +3546,7 @@ fsevents@^2.3.2: languageName: node linkType: hard -"istanbul-lib-instrument@npm:^4.0.3": - version: 4.0.3 - resolution: "istanbul-lib-instrument@npm:4.0.3" - dependencies: - "@babel/core": ^7.7.5 - "@istanbuljs/schema": ^0.1.2 - istanbul-lib-coverage: ^3.0.0 - semver: ^6.3.0 - checksum: fa1171d3022b1bb8f6a734042620ac5d9ee7dc80f3065a0bb12863e9f0494d0eefa3d86608fcc0254ab2765d29d7dad8bdc42e5f8df2f9a1fbe85ccc59d76cb9 - languageName: node - linkType: hard - -"istanbul-lib-instrument@npm:^5.0.4": +"istanbul-lib-instrument@npm:^5.0.4, istanbul-lib-instrument@npm:^5.1.0": version: 5.1.0 resolution: "istanbul-lib-instrument@npm:5.1.0" dependencies: @@ -3610,13 +3581,13 @@ fsevents@^2.3.2: languageName: node linkType: hard -"istanbul-reports@npm:^3.0.2": - version: 3.1.1 - resolution: "istanbul-reports@npm:3.1.1" +"istanbul-reports@npm:^3.1.3": + version: 3.1.3 + resolution: "istanbul-reports@npm:3.1.3" dependencies: html-escaper: ^2.0.0 istanbul-lib-report: ^3.0.0 - checksum: a9940767ee960fd21d4c9b24c417c15d38725be2f3517a72070e962e088fdf7b813f50985f660cd48436690237fdc5640bab10a1a91e0e94b0e400c212c85f3c + checksum: ef6e0d9ed05ecab1974c6eb46cc2a12d8570911934192db4ed40cf1978449240ea80aae32c4dd5555b67407cdf860212d1a9e415443af69641aa57ed1da5ebbb languageName: node linkType: hard @@ -3652,6 +3623,32 @@ fsevents@^2.3.2: languageName: unknown linkType: soft +"javascript-tests@workspace:tests/output/javascript": + version: 0.0.0-use.local + resolution: "javascript-tests@workspace:tests/output/javascript" + dependencies: + "@algolia/client-abtesting": 5.0.0 + "@algolia/client-analytics": 5.0.0 + "@algolia/client-insights": 5.0.0 + "@algolia/client-personalization": 5.0.0 + "@algolia/client-query-suggestions": 5.0.0 + "@algolia/client-search": 5.0.0 + "@algolia/recommend": 5.0.0 + "@apidevtools/swagger-parser": 10.0.3 + "@types/jest": 27.0.3 + "@types/mustache": 4.1.2 + "@types/node": 16.11.11 + dotenv: 11.0.0 + eslint: 8.6.0 + jest: 27.4.7 + mustache: 4.2.0 + openapi-types: 10.0.0 + prettier: 2.5.1 + ts-jest: 27.1.2 + typescript: 4.5.4 + languageName: unknown + linkType: soft + "jest-changed-files@npm:^27.4.2": version: 27.4.2 resolution: "jest-changed-files@npm:27.4.2" @@ -3663,47 +3660,47 @@ fsevents@^2.3.2: languageName: node linkType: hard -"jest-circus@npm:^27.4.5": - version: 27.4.5 - resolution: "jest-circus@npm:27.4.5" +"jest-circus@npm:^27.4.6": + version: 27.4.6 + resolution: "jest-circus@npm:27.4.6" dependencies: - "@jest/environment": ^27.4.4 - "@jest/test-result": ^27.4.2 + "@jest/environment": ^27.4.6 + "@jest/test-result": ^27.4.6 "@jest/types": ^27.4.2 "@types/node": "*" chalk: ^4.0.0 co: ^4.6.0 dedent: ^0.7.0 - expect: ^27.4.2 + expect: ^27.4.6 is-generator-fn: ^2.0.0 - jest-each: ^27.4.2 - jest-matcher-utils: ^27.4.2 - jest-message-util: ^27.4.2 - jest-runtime: ^27.4.5 - jest-snapshot: ^27.4.5 + jest-each: ^27.4.6 + jest-matcher-utils: ^27.4.6 + jest-message-util: ^27.4.6 + jest-runtime: ^27.4.6 + jest-snapshot: ^27.4.6 jest-util: ^27.4.2 - pretty-format: ^27.4.2 + pretty-format: ^27.4.6 slash: ^3.0.0 stack-utils: ^2.0.3 throat: ^6.0.1 - checksum: 0d9ba909fb73ab17d127208a44e0cd1064ed3fcce3208b7c181b684b00e3504f1edc84119cd14d9c4c8df8957904875bf68e3151303bd06e42345a8635112eb0 + checksum: 00aae02bc4de4afa2144b073c4158a322cb37924d5583ef5caa5cb4badcc8f32474da3a01dd5672e85eda088b92d2b769986b46e36c2c88df0dd6ec0c72bd8c1 languageName: node linkType: hard -"jest-cli@npm:^27.4.5": - version: 27.4.5 - resolution: "jest-cli@npm:27.4.5" +"jest-cli@npm:^27.4.7": + version: 27.4.7 + resolution: "jest-cli@npm:27.4.7" dependencies: - "@jest/core": ^27.4.5 - "@jest/test-result": ^27.4.2 + "@jest/core": ^27.4.7 + "@jest/test-result": ^27.4.6 "@jest/types": ^27.4.2 chalk: ^4.0.0 exit: ^0.1.2 graceful-fs: ^4.2.4 import-local: ^3.0.2 - jest-config: ^27.4.5 + jest-config: ^27.4.7 jest-util: ^27.4.2 - jest-validate: ^27.4.2 + jest-validate: ^27.4.6 prompts: ^2.0.1 yargs: ^16.2.0 peerDependencies: @@ -3713,54 +3710,54 @@ fsevents@^2.3.2: optional: true bin: jest: bin/jest.js - checksum: 8c430614ab058fd612eae402620c784e583477520598aa4f68e9115d5f475a50d6897cdad4c832777ec8964446c5a9f02047cf74bed7e0f090220758eac1cc41 + checksum: bf301039f1c14ef3fa2b7699b7b94328faa5549e34cb1573610c894bedd036ad36e31e6af436e11b3aa85e22e409a05d1fef1624bebc2da7ed416ce969b87307 languageName: node linkType: hard -"jest-config@npm:^27.4.5": - version: 27.4.5 - resolution: "jest-config@npm:27.4.5" +"jest-config@npm:^27.4.7": + version: 27.4.7 + resolution: "jest-config@npm:27.4.7" dependencies: - "@babel/core": ^7.1.0 - "@jest/test-sequencer": ^27.4.5 + "@babel/core": ^7.8.0 + "@jest/test-sequencer": ^27.4.6 "@jest/types": ^27.4.2 - babel-jest: ^27.4.5 + babel-jest: ^27.4.6 chalk: ^4.0.0 ci-info: ^3.2.0 deepmerge: ^4.2.2 glob: ^7.1.1 graceful-fs: ^4.2.4 - jest-circus: ^27.4.5 - jest-environment-jsdom: ^27.4.4 - jest-environment-node: ^27.4.4 + jest-circus: ^27.4.6 + jest-environment-jsdom: ^27.4.6 + jest-environment-node: ^27.4.6 jest-get-type: ^27.4.0 - jest-jasmine2: ^27.4.5 + jest-jasmine2: ^27.4.6 jest-regex-util: ^27.4.0 - jest-resolve: ^27.4.5 - jest-runner: ^27.4.5 + jest-resolve: ^27.4.6 + jest-runner: ^27.4.6 jest-util: ^27.4.2 - jest-validate: ^27.4.2 + jest-validate: ^27.4.6 micromatch: ^4.0.4 - pretty-format: ^27.4.2 + pretty-format: ^27.4.6 slash: ^3.0.0 peerDependencies: ts-node: ">=9.0.0" peerDependenciesMeta: ts-node: optional: true - checksum: 8b166404959d368c49573b8d3e9ff5537557413a96aa41e05824f01147db1525168489ae3f1f028525a587bd724f718f9c77f1256351c48cf0e3c766a86292cb + checksum: 23d5bacc483b2674d6efcd6bfc66bcde7c2b428511b50d17a22a2750d85bfc23753f9e41f504411e411e848e34ec61244bdae9da8782df4ada6e284106f71a4d languageName: node linkType: hard -"jest-diff@npm:^27.0.0, jest-diff@npm:^27.4.2": - version: 27.4.2 - resolution: "jest-diff@npm:27.4.2" +"jest-diff@npm:^27.0.0, jest-diff@npm:^27.4.6": + version: 27.4.6 + resolution: "jest-diff@npm:27.4.6" dependencies: chalk: ^4.0.0 diff-sequences: ^27.4.0 jest-get-type: ^27.4.0 - pretty-format: ^27.4.2 - checksum: e5bcdb4f27747795b74a56d56a9545d7fc8f1671a1251d580aea1a7a52df5db044f62ec24f2abc68305f0226d918a443f3b88d9a82f8d0dc4aaa079b621ab091 + pretty-format: ^27.4.6 + checksum: cf6b7e80e3c64a7c71ab209c0325bbda175991aed985ecee7652df9d6540e4959089038e208c04ab05391c9ddf07adc72f0c8c26cc4cee6fa17f76f500e2bf43 languageName: node linkType: hard @@ -3773,45 +3770,45 @@ fsevents@^2.3.2: languageName: node linkType: hard -"jest-each@npm:^27.4.2": - version: 27.4.2 - resolution: "jest-each@npm:27.4.2" +"jest-each@npm:^27.4.6": + version: 27.4.6 + resolution: "jest-each@npm:27.4.6" dependencies: "@jest/types": ^27.4.2 chalk: ^4.0.0 jest-get-type: ^27.4.0 jest-util: ^27.4.2 - pretty-format: ^27.4.2 - checksum: cdc89e68fb3a746b2dcb62a8d05dd6fb15bde47743575bc795ee4123c9e2418f0c99220a9aa96dba94889fb880986158665f33f9c77e6007645ef7d3990ae8e1 + pretty-format: ^27.4.6 + checksum: cce85a14a4c3a37733e75da2352e767c6eef923181e0c884eb9f86253ed417de0454da5117ebfbc1fcabdf109a305b1dbbf9b71a5712da8b6d79fde1f73a9b75 languageName: node linkType: hard -"jest-environment-jsdom@npm:^27.4.4": - version: 27.4.4 - resolution: "jest-environment-jsdom@npm:27.4.4" +"jest-environment-jsdom@npm:^27.4.6": + version: 27.4.6 + resolution: "jest-environment-jsdom@npm:27.4.6" dependencies: - "@jest/environment": ^27.4.4 - "@jest/fake-timers": ^27.4.2 + "@jest/environment": ^27.4.6 + "@jest/fake-timers": ^27.4.6 "@jest/types": ^27.4.2 "@types/node": "*" - jest-mock: ^27.4.2 + jest-mock: ^27.4.6 jest-util: ^27.4.2 jsdom: ^16.6.0 - checksum: 05bf03a05a9358084411a90002dbcb2b225b94efd7ea08f04863805c05e2d4bdf0c5a2455e14bf0554fb0762d0cdf9f37b511b0da7154b630bf84e51b5e6bb07 + checksum: bdf5f349a3e96b029fd0c442c8ba86dd7beb8d14922b6a53f0c52f9ab7b34521ef8deedfaba13ce81ca01e9074032eb8dc506d9035941348e129d0b76671d6bc languageName: node linkType: hard -"jest-environment-node@npm:^27.4.4": - version: 27.4.4 - resolution: "jest-environment-node@npm:27.4.4" +"jest-environment-node@npm:^27.4.6": + version: 27.4.6 + resolution: "jest-environment-node@npm:27.4.6" dependencies: - "@jest/environment": ^27.4.4 - "@jest/fake-timers": ^27.4.2 + "@jest/environment": ^27.4.6 + "@jest/fake-timers": ^27.4.6 "@jest/types": ^27.4.2 "@types/node": "*" - jest-mock: ^27.4.2 + jest-mock: ^27.4.6 jest-util: ^27.4.2 - checksum: 12de67100d35dcdab012220d5c9663e3ad6ac0b164b0a89e998a30c41b71c96abd77256f4fbfcd0ec48f8acb1dbb084050a5d17fe0ad4b4a81e311e05b54a89d + checksum: 3f146e7819f65b1dc0252573cddadc8c565a566ddf7c06c93eded51cccfc55f4765373fb2aaafeb4d8b76ec62b062e1bd4f1da6b9f57429af6789ef8bbada3cb languageName: node linkType: hard @@ -3822,9 +3819,9 @@ fsevents@^2.3.2: languageName: node linkType: hard -"jest-haste-map@npm:^27.4.5": - version: 27.4.5 - resolution: "jest-haste-map@npm:27.4.5" +"jest-haste-map@npm:^27.4.6": + version: 27.4.6 + resolution: "jest-haste-map@npm:27.4.6" dependencies: "@jest/types": ^27.4.2 "@types/graceful-fs": ^4.1.2 @@ -3836,67 +3833,66 @@ fsevents@^2.3.2: jest-regex-util: ^27.4.0 jest-serializer: ^27.4.0 jest-util: ^27.4.2 - jest-worker: ^27.4.5 + jest-worker: ^27.4.6 micromatch: ^4.0.4 walker: ^1.0.7 dependenciesMeta: fsevents: optional: true - checksum: acd593ec33b028169c7bf753a5c92eabdb05f87ba9f14e33fe24a4adc1e0a1ff4be0c4757a57a82413263ebbb6b567708b4f3019cb4df899d2d07fcec64bd75a + checksum: 07a336e9dba9e7308f16c8b8e037dcc80eb346b0f68cbb6bd1badf97abb104da12c305b411549a5ac0bd4e634b61f9d12e0b5ac2ae8e8bea08952a5fe1a6e82e languageName: node linkType: hard -"jest-jasmine2@npm:^27.4.5": - version: 27.4.5 - resolution: "jest-jasmine2@npm:27.4.5" +"jest-jasmine2@npm:^27.4.6": + version: 27.4.6 + resolution: "jest-jasmine2@npm:27.4.6" dependencies: - "@babel/traverse": ^7.1.0 - "@jest/environment": ^27.4.4 + "@jest/environment": ^27.4.6 "@jest/source-map": ^27.4.0 - "@jest/test-result": ^27.4.2 + "@jest/test-result": ^27.4.6 "@jest/types": ^27.4.2 "@types/node": "*" chalk: ^4.0.0 co: ^4.6.0 - expect: ^27.4.2 + expect: ^27.4.6 is-generator-fn: ^2.0.0 - jest-each: ^27.4.2 - jest-matcher-utils: ^27.4.2 - jest-message-util: ^27.4.2 - jest-runtime: ^27.4.5 - jest-snapshot: ^27.4.5 + jest-each: ^27.4.6 + jest-matcher-utils: ^27.4.6 + jest-message-util: ^27.4.6 + jest-runtime: ^27.4.6 + jest-snapshot: ^27.4.6 jest-util: ^27.4.2 - pretty-format: ^27.4.2 + pretty-format: ^27.4.6 throat: ^6.0.1 - checksum: 9759e865f39390f71c83a3cabb3196c2655df2bf3771b71d9c2f2db400cec96ab7eff1b44e8b582280c07db985538bacb408dd6a42aff83984b0a27b2968fa36 + checksum: d9b05405708161b90c2e9add00ee3c62b154b0f839bc50f034ae8369921956bb16cec428e46ae3b8074a3aeded6cb02f770161d7453f1a183b1abac17dae43f7 languageName: node linkType: hard -"jest-leak-detector@npm:^27.4.2": - version: 27.4.2 - resolution: "jest-leak-detector@npm:27.4.2" +"jest-leak-detector@npm:^27.4.6": + version: 27.4.6 + resolution: "jest-leak-detector@npm:27.4.6" dependencies: jest-get-type: ^27.4.0 - pretty-format: ^27.4.2 - checksum: 093ef57aa6f5563ed5e2c0bce31f8d2ac65438c5d917457dd9a392bf11956a976b55ef2b536cf593b1d65283430305cb6d26e97b064a5c140146346103e74184 + pretty-format: ^27.4.6 + checksum: 4259400403d51b1297b9ab05c1342345c4a93a77c99447b061192ed81b56efcbdd28a03914c9f97670d2f3498bdc368712575d6218b02e3af1656b7db507d3bf languageName: node linkType: hard -"jest-matcher-utils@npm:^27.4.2": - version: 27.4.2 - resolution: "jest-matcher-utils@npm:27.4.2" +"jest-matcher-utils@npm:^27.4.6": + version: 27.4.6 + resolution: "jest-matcher-utils@npm:27.4.6" dependencies: chalk: ^4.0.0 - jest-diff: ^27.4.2 + jest-diff: ^27.4.6 jest-get-type: ^27.4.0 - pretty-format: ^27.4.2 - checksum: 7dd9d2f1f7107d5919af170f9d3e2a08890ce05ee63f6fc3a24e6c8fa9672f99ed107377ae7c6d4d0966a77fa35a3da929465b019b6f1be8cf7e0845806bceb3 + pretty-format: ^27.4.6 + checksum: 445a8cc9eaa7cb08653a10cfc4f109eca76a97d1b1d3a01067bd77efa9cb3a554b74c7402a4c9d5083b21e11218e1515ef538faa47fa47c282072b4825f6b307 languageName: node linkType: hard -"jest-message-util@npm:^27.4.2": - version: 27.4.2 - resolution: "jest-message-util@npm:27.4.2" +"jest-message-util@npm:^27.4.6": + version: 27.4.6 + resolution: "jest-message-util@npm:27.4.6" dependencies: "@babel/code-frame": ^7.12.13 "@jest/types": ^27.4.2 @@ -3904,20 +3900,20 @@ fsevents@^2.3.2: chalk: ^4.0.0 graceful-fs: ^4.2.4 micromatch: ^4.0.4 - pretty-format: ^27.4.2 + pretty-format: ^27.4.6 slash: ^3.0.0 stack-utils: ^2.0.3 - checksum: c08ef1c8c1a2001c2f38d6ad3717a6e188b8b25c79b8bd87f2800b9c046f50f33bcd6ab1a9b5a5cc3218b40cf60f37d0583aa0b36ea870c8f100ba0ca7a3c479 + checksum: 1fdd542d091dbf7aa63a484feead97a921e3c4d6db3784fe2e6d83e9110ac06de5691fdc043da991ca1d0ce5d179ea8266c8d93b388f4bba7d80a267fdd946df languageName: node linkType: hard -"jest-mock@npm:^27.4.2": - version: 27.4.2 - resolution: "jest-mock@npm:27.4.2" +"jest-mock@npm:^27.4.6": + version: 27.4.6 + resolution: "jest-mock@npm:27.4.6" dependencies: "@jest/types": ^27.4.2 "@types/node": "*" - checksum: 4ad4a870ec771410b708e955ef2526e7becb91a1d19c4699dcf8fe43a9f6d1231e0c47b87d6b80ee9ad3194ad54dc9abf158588a4a542ad9f9ce8c23eda6048e + checksum: 34df5ec502fa0db5ef36e2b2e96a522de730e7be907c6df5d4ec8ab1292d9be71f1e269e8bcdafd020239edaf3ca6f9c464eb0b4aca6986420a1f392976fc0ab languageName: node linkType: hard @@ -3940,43 +3936,43 @@ fsevents@^2.3.2: languageName: node linkType: hard -"jest-resolve-dependencies@npm:^27.4.5": - version: 27.4.5 - resolution: "jest-resolve-dependencies@npm:27.4.5" +"jest-resolve-dependencies@npm:^27.4.6": + version: 27.4.6 + resolution: "jest-resolve-dependencies@npm:27.4.6" dependencies: "@jest/types": ^27.4.2 jest-regex-util: ^27.4.0 - jest-snapshot: ^27.4.5 - checksum: 1fc16cb7c8df130420732184cd87a2c8ae6bf6cbb37d61dd69fddf69ab5ab2be50774962ce4b477b915fa1cc3dc69cb1830b6a18bd1b33c3c1a9c40e43cb11ce + jest-snapshot: ^27.4.6 + checksum: c644adb74a602c8c08f90256c9a5c519434cd213a02a6f427425003f9ab026c12860527eb67cf624aa6717c410fa92aee66662d212c0ffbb73f80e2711ffb7a4 languageName: node linkType: hard -"jest-resolve@npm:^27.4.5": - version: 27.4.5 - resolution: "jest-resolve@npm:27.4.5" +"jest-resolve@npm:^27.4.6": + version: 27.4.6 + resolution: "jest-resolve@npm:27.4.6" dependencies: "@jest/types": ^27.4.2 chalk: ^4.0.0 graceful-fs: ^4.2.4 - jest-haste-map: ^27.4.5 + jest-haste-map: ^27.4.6 jest-pnp-resolver: ^1.2.2 jest-util: ^27.4.2 - jest-validate: ^27.4.2 + jest-validate: ^27.4.6 resolve: ^1.20.0 resolve.exports: ^1.1.0 slash: ^3.0.0 - checksum: 57d619ed1ab4ba5d1b079f9ca3e93c7d9bcc9faa195b617fda6155cbce6eb48c234a957f41f7feee43740b4a5b50ebec8aea61023f766ac4b2eb6ff946c76025 + checksum: 69b765660ee2dd71542953fbe5f6fc9ee3590a4829376e00d955f7566d47049ec5e300832bee1530ac85d2946e341558993ab381d3023363058ae6f9d4c10025 languageName: node linkType: hard -"jest-runner@npm:^27.4.5": - version: 27.4.5 - resolution: "jest-runner@npm:27.4.5" +"jest-runner@npm:^27.4.6": + version: 27.4.6 + resolution: "jest-runner@npm:27.4.6" dependencies: - "@jest/console": ^27.4.2 - "@jest/environment": ^27.4.4 - "@jest/test-result": ^27.4.2 - "@jest/transform": ^27.4.5 + "@jest/console": ^27.4.6 + "@jest/environment": ^27.4.6 + "@jest/test-result": ^27.4.6 + "@jest/transform": ^27.4.6 "@jest/types": ^27.4.2 "@types/node": "*" chalk: ^4.0.0 @@ -3984,52 +3980,48 @@ fsevents@^2.3.2: exit: ^0.1.2 graceful-fs: ^4.2.4 jest-docblock: ^27.4.0 - jest-environment-jsdom: ^27.4.4 - jest-environment-node: ^27.4.4 - jest-haste-map: ^27.4.5 - jest-leak-detector: ^27.4.2 - jest-message-util: ^27.4.2 - jest-resolve: ^27.4.5 - jest-runtime: ^27.4.5 + jest-environment-jsdom: ^27.4.6 + jest-environment-node: ^27.4.6 + jest-haste-map: ^27.4.6 + jest-leak-detector: ^27.4.6 + jest-message-util: ^27.4.6 + jest-resolve: ^27.4.6 + jest-runtime: ^27.4.6 jest-util: ^27.4.2 - jest-worker: ^27.4.5 + jest-worker: ^27.4.6 source-map-support: ^0.5.6 throat: ^6.0.1 - checksum: 456f5e3c55dfd0fdad21703a26aa2ff729bbcea173a4ac6a6a99f65d77c564ace13a0e53c33b074020d3594dbff831b7f6424f27d99485120c691ee129a6b6f4 + checksum: 4e76117e5373b6eb51c7113f848dbc92bc1e1d2f1302f9530ef9cb6c967eb364836f4a5790f65a437f47debc917bfb696bbc647831292fa8b1b4321f292e721f languageName: node linkType: hard -"jest-runtime@npm:^27.4.5": - version: 27.4.5 - resolution: "jest-runtime@npm:27.4.5" +"jest-runtime@npm:^27.4.6": + version: 27.4.6 + resolution: "jest-runtime@npm:27.4.6" dependencies: - "@jest/console": ^27.4.2 - "@jest/environment": ^27.4.4 - "@jest/globals": ^27.4.4 + "@jest/environment": ^27.4.6 + "@jest/fake-timers": ^27.4.6 + "@jest/globals": ^27.4.6 "@jest/source-map": ^27.4.0 - "@jest/test-result": ^27.4.2 - "@jest/transform": ^27.4.5 + "@jest/test-result": ^27.4.6 + "@jest/transform": ^27.4.6 "@jest/types": ^27.4.2 - "@types/yargs": ^16.0.0 chalk: ^4.0.0 cjs-module-lexer: ^1.0.0 collect-v8-coverage: ^1.0.0 execa: ^5.0.0 - exit: ^0.1.2 glob: ^7.1.3 graceful-fs: ^4.2.4 - jest-haste-map: ^27.4.5 - jest-message-util: ^27.4.2 - jest-mock: ^27.4.2 + jest-haste-map: ^27.4.6 + jest-message-util: ^27.4.6 + jest-mock: ^27.4.6 jest-regex-util: ^27.4.0 - jest-resolve: ^27.4.5 - jest-snapshot: ^27.4.5 + jest-resolve: ^27.4.6 + jest-snapshot: ^27.4.6 jest-util: ^27.4.2 - jest-validate: ^27.4.2 slash: ^3.0.0 strip-bom: ^4.0.0 - yargs: ^16.2.0 - checksum: 3fddd950504e2eee83f13237d8e2321c91237881a04e71cfd5457064eb970a91de3b8560b15ed6dbfc8843aa06151907510842f5f2f8e93b5a172a1d282ae26e + checksum: 64d833c7d7b1d67b53932dc9fd9332aaf43ea1777fc61c3f143515968f066438b3247e4f1a71a7f127b1bedbc7c3124bfc53cb4f026fff5b26e2feda8d35535c languageName: node linkType: hard @@ -4043,35 +4035,33 @@ fsevents@^2.3.2: languageName: node linkType: hard -"jest-snapshot@npm:^27.4.5": - version: 27.4.5 - resolution: "jest-snapshot@npm:27.4.5" +"jest-snapshot@npm:^27.4.6": + version: 27.4.6 + resolution: "jest-snapshot@npm:27.4.6" dependencies: "@babel/core": ^7.7.2 "@babel/generator": ^7.7.2 - "@babel/parser": ^7.7.2 "@babel/plugin-syntax-typescript": ^7.7.2 "@babel/traverse": ^7.7.2 "@babel/types": ^7.0.0 - "@jest/transform": ^27.4.5 + "@jest/transform": ^27.4.6 "@jest/types": ^27.4.2 "@types/babel__traverse": ^7.0.4 "@types/prettier": ^2.1.5 babel-preset-current-node-syntax: ^1.0.0 chalk: ^4.0.0 - expect: ^27.4.2 + expect: ^27.4.6 graceful-fs: ^4.2.4 - jest-diff: ^27.4.2 + jest-diff: ^27.4.6 jest-get-type: ^27.4.0 - jest-haste-map: ^27.4.5 - jest-matcher-utils: ^27.4.2 - jest-message-util: ^27.4.2 - jest-resolve: ^27.4.5 + jest-haste-map: ^27.4.6 + jest-matcher-utils: ^27.4.6 + jest-message-util: ^27.4.6 jest-util: ^27.4.2 natural-compare: ^1.4.0 - pretty-format: ^27.4.2 + pretty-format: ^27.4.6 semver: ^7.3.2 - checksum: c5dcb1ccb95feb8773fc64b6d21d28fc8e8d2cf53bfde74247b3d34a83936a9b92492416d447d4e559e7b2ce39e442e4ee4a266d2f54c9ab8ab686eb16d1c8f4 + checksum: c7a1ae993ae7334277c61e6d645efedefce53ca212498ae766ea28efa46287559a56d2bd2edaaead8476191a45adbb1354df5367dfd223763b5a66751bfbda14 languageName: node linkType: hard @@ -4089,53 +4079,53 @@ fsevents@^2.3.2: languageName: node linkType: hard -"jest-validate@npm:^27.4.2": - version: 27.4.2 - resolution: "jest-validate@npm:27.4.2" +"jest-validate@npm:^27.4.6": + version: 27.4.6 + resolution: "jest-validate@npm:27.4.6" dependencies: "@jest/types": ^27.4.2 camelcase: ^6.2.0 chalk: ^4.0.0 jest-get-type: ^27.4.0 leven: ^3.1.0 - pretty-format: ^27.4.2 - checksum: 32d3d5e7945d3450c7d7374882b8a0e6e5481b759cf67f765578424d690594875009a5f9dd2626d7b12e4c816b61eb7d5e19f1b0593cc269f37d527eb4fd1a15 + pretty-format: ^27.4.6 + checksum: d3578030eadd872b99e65dac24d9ca755f2a2483f8344d9e575ea6034c6cb5ed5bcf7a4aa4f1050ab0080d5a8d0b0efd31c911514f27820b871a636a97dc196c languageName: node linkType: hard -"jest-watcher@npm:^27.4.2": - version: 27.4.2 - resolution: "jest-watcher@npm:27.4.2" +"jest-watcher@npm:^27.4.6": + version: 27.4.6 + resolution: "jest-watcher@npm:27.4.6" dependencies: - "@jest/test-result": ^27.4.2 + "@jest/test-result": ^27.4.6 "@jest/types": ^27.4.2 "@types/node": "*" ansi-escapes: ^4.2.1 chalk: ^4.0.0 jest-util: ^27.4.2 string-length: ^4.0.1 - checksum: f6078349e5c4638b8778dfad0e846aba5665f3bf1f8e8565c436533a5effd8592123b99f950d534965d841edef391ecd86849f5d4ea7d737f99daa7ecfd643cb + checksum: bb9c0a34dcc690cef6430c275e81213620bc4ba6337e42302efa51666ac06781e9f6f50c930332396e4e8cd8cc47de8fb2e8de57da0f7e35a246b0206dde1cd3 languageName: node linkType: hard -"jest-worker@npm:^27.4.5": - version: 27.4.5 - resolution: "jest-worker@npm:27.4.5" +"jest-worker@npm:^27.4.6": + version: 27.4.6 + resolution: "jest-worker@npm:27.4.6" dependencies: "@types/node": "*" merge-stream: ^2.0.0 supports-color: ^8.0.0 - checksum: eb0b6be412103299c3d8643ad26daf862826ca841bd2a3ff47d2d931804ab7d7f0db2fcdea7dbf47ce8eacb7742b3f2586c2d6ebdaa8d0ac77c65f7b698e7683 + checksum: 105bcdf5c66700bbfe352bc09476629ca0858cfa819fcc1a37ea76660f0168d586c6e77aee8ea91eded5a20f40f331a0a81e503b5ba19f7b566204406b239466 languageName: node linkType: hard -"jest@npm:27.4.5": - version: 27.4.5 - resolution: "jest@npm:27.4.5" +"jest@npm:27.4.7": + version: 27.4.7 + resolution: "jest@npm:27.4.7" dependencies: - "@jest/core": ^27.4.5 + "@jest/core": ^27.4.7 import-local: ^3.0.2 - jest-cli: ^27.4.5 + jest-cli: ^27.4.7 peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 peerDependenciesMeta: @@ -4143,7 +4133,7 @@ fsevents@^2.3.2: optional: true bin: jest: bin/jest.js - checksum: 57ee4be68650dd1f89e077cca48813d824779a07626e84178c672727ace1ef3cd489f124a27dc02b88601774413330e6d35080b11919efa6460ee61d378c6610 + checksum: 28ce948b30c074907393f37553acac4422d0f60190776e62b3403e4c742d33dd6012e3a20748254a43e38b5b4ce52d813b13a3a5be1d43d6d12429bd08ce1a23 languageName: node linkType: hard @@ -4177,13 +4167,20 @@ fsevents@^2.3.2: languageName: node linkType: hard -"jsdoc-type-pratt-parser@npm:2.0.2, jsdoc-type-pratt-parser@npm:^2.0.2": +"jsdoc-type-pratt-parser@npm:2.0.2": version: 2.0.2 resolution: "jsdoc-type-pratt-parser@npm:2.0.2" checksum: c04e0aec3eab6983956d2a23e778581eb90e69b5123e0da12a8fc9ecda967092443a67b12a878f280eed056a4a7d9b0bb3b35d04f1affb8eb5b003ccb51ea51f languageName: node linkType: hard +"jsdoc-type-pratt-parser@npm:^2.0.2": + version: 2.2.1 + resolution: "jsdoc-type-pratt-parser@npm:2.2.1" + checksum: 1cb5c9b49009e7cf4f1d126cbc6b2cc90279fb78275bef6705dd319f86f2ccb60be7600190dcf6fb8ad041f40ed206a619b90291e65f1ddb12397a8294fe11b7 + languageName: node + linkType: hard + "jsdom@npm:^16.6.0": version: 16.7.0 resolution: "jsdom@npm:16.7.0" @@ -4454,7 +4451,7 @@ fsevents@^2.3.2: languageName: node linkType: hard -"merge2@npm:^1.3.0": +"merge2@npm:^1.3.0, merge2@npm:^1.4.1": version: 1.4.1 resolution: "merge2@npm:1.4.1" checksum: 7268db63ed5169466540b6fb947aec313200bcf6d40c5ab722c22e242f651994619bcd85601602972d3c85bd2cc45a358a4c61937e9f11a061919a1da569b0c2 @@ -4562,11 +4559,11 @@ fsevents@^2.3.2: linkType: hard "minipass@npm:^3.0.0, minipass@npm:^3.1.0, minipass@npm:^3.1.1, minipass@npm:^3.1.3": - version: 3.1.5 - resolution: "minipass@npm:3.1.5" + version: 3.1.6 + resolution: "minipass@npm:3.1.6" dependencies: yallist: ^4.0.0 - checksum: 8b410b9a5bd99ceb9d63c895891d1c30511791fdc7b717da4cf9403ca2419bc57af63b8485ffdaa421ef6cff56f63ae0b2f5135f8df502d21296e8c91460ebf9 + checksum: 57a04041413a3531a65062452cb5175f93383ef245d6f4a2961d34386eb9aa8ac11ac7f16f791f5e8bbaf1dfb1ef01596870c88e8822215db57aa591a5bb0a77 languageName: node linkType: hard @@ -4676,13 +4673,6 @@ fsevents@^2.3.2: languageName: node linkType: hard -"node-modules-regexp@npm:^1.0.0": - version: 1.0.0 - resolution: "node-modules-regexp@npm:1.0.0" - checksum: 99541903536c5ce552786f0fca7f06b88df595e62e423c21fa86a1674ee2363dad1f7482d1bec20b4bd9fa5f262f88e6e5cb788fc56411113f2fe2e97783a3a7 - languageName: node - linkType: hard - "node-releases@npm:^2.0.1": version: 2.0.1 resolution: "node-releases@npm:2.0.1" @@ -4744,9 +4734,9 @@ fsevents@^2.3.2: linkType: hard "object-inspect@npm:^1.11.0, object-inspect@npm:^1.9.0": - version: 1.11.0 - resolution: "object-inspect@npm:1.11.0" - checksum: 8c64f89ce3a7b96b6925879ad5f6af71d498abc217e136660efecd97452991216f375a7eb47cb1cb50643df939bf0c7cc391567b7abc6a924d04679705e58e27 + version: 1.12.0 + resolution: "object-inspect@npm:1.12.0" + checksum: 2b36d4001a9c921c6b342e2965734519c9c58c355822243c3207fbf0aac271f8d44d30d2d570d450b2cc6f0f00b72bcdba515c37827d2560e5f22b1899a31cf4 languageName: node linkType: hard @@ -4960,7 +4950,7 @@ fsevents@^2.3.2: languageName: node linkType: hard -"path-parse@npm:^1.0.6": +"path-parse@npm:^1.0.7": version: 1.0.7 resolution: "path-parse@npm:1.0.7" checksum: 49abf3d81115642938a8700ec580da6e830dde670be21893c62f4e10bd7dd4c3742ddc603fe24f898cba7eb0c6bc1777f8d9ac14185d34540c6d4d80cd9cae8a @@ -4989,18 +4979,16 @@ fsevents@^2.3.2: linkType: hard "picomatch@npm:^2.0.4, picomatch@npm:^2.2.3": - version: 2.3.0 - resolution: "picomatch@npm:2.3.0" - checksum: 16818720ea7c5872b6af110760dee856c8e4cd79aed1c7a006d076b1cc09eff3ae41ca5019966694c33fbd2e1cc6ea617ab10e4adac6df06556168f13be3fca2 + version: 2.3.1 + resolution: "picomatch@npm:2.3.1" + checksum: 050c865ce81119c4822c45d3c84f1ced46f93a0126febae20737bd05ca20589c564d6e9226977df859ed5e03dc73f02584a2b0faad36e896936238238b0446cf languageName: node linkType: hard -"pirates@npm:^4.0.1": - version: 4.0.1 - resolution: "pirates@npm:4.0.1" - dependencies: - node-modules-regexp: ^1.0.0 - checksum: 091e232aac19f0049a681838fa9fcb4af824b5b1eb0e9325aa07b9d13245bfe3e4fa57a7766b9fdcd19cb89f2c15c688b46023be3047cb288023a0c079d3b2a3 +"pirates@npm:^4.0.4": + version: 4.0.4 + resolution: "pirates@npm:4.0.4" + checksum: 6b7187d526fd025a2b91e8fd289c78d88c4adc3ea947b9facbe9cb300a896b0ec00f3e77b36a043001695312a8debbf714453495283bd8a4eaad3bc0c38df425 languageName: node linkType: hard @@ -5065,15 +5053,14 @@ fsevents@^2.3.2: languageName: node linkType: hard -"pretty-format@npm:^27.0.0, pretty-format@npm:^27.4.2": - version: 27.4.2 - resolution: "pretty-format@npm:27.4.2" +"pretty-format@npm:^27.0.0, pretty-format@npm:^27.4.6": + version: 27.4.6 + resolution: "pretty-format@npm:27.4.6" dependencies: - "@jest/types": ^27.4.2 ansi-regex: ^5.0.1 ansi-styles: ^5.0.0 react-is: ^17.0.1 - checksum: 0daaf00c4dcb35493e57d30147e8045d0c45cb47fc4c94e3ab1892401abe939627c39975c77cc81eb2581aaa5b12bf23ef669fa550bec68b396fb79dd8c10afa + checksum: 5eda32e4e47ddd1a9e8fe9ebef519b217ba403eb8bcb804ba551dfb37f87e674472013fcf78480ab535844fdddcc706fac94511eba349bfb94a138a02d1a7a59 languageName: node linkType: hard @@ -5222,23 +5209,29 @@ fsevents@^2.3.2: languageName: node linkType: hard -"resolve@^1.12.0, resolve@^1.20.0": - version: 1.20.0 - resolution: "resolve@npm:1.20.0" +"resolve@npm:^1.12.0, resolve@npm:^1.20.0": + version: 1.21.0 + resolution: "resolve@npm:1.21.0" dependencies: - is-core-module: ^2.2.0 - path-parse: ^1.0.6 - checksum: 40cf70b2cde00ef57f99daf2dc63c6a56d6c14a1b7fc51735d06a6f0a3b97cb67b4fb7ef6c747b4e13a7baba83b0ef625d7c4ce92a483cd5af923c3b65fd16fe + is-core-module: ^2.8.0 + path-parse: ^1.0.7 + supports-preserve-symlinks-flag: ^1.0.0 + bin: + resolve: bin/resolve + checksum: d7d9092a5c04a048bea16c7e5a2eb605ac3e8363a0cc5644de1fde17d5028e8d5f4343aab1d99bd327b98e91a66ea83e242718150c64dfedcb96e5e7aad6c4f5 languageName: node linkType: hard "resolve@patch:resolve@^1.12.0#~builtin, resolve@patch:resolve@^1.20.0#~builtin": - version: 1.20.0 - resolution: "resolve@patch:resolve@npm%3A1.20.0#~builtin::version=1.20.0&hash=07638b" + version: 1.21.0 + resolution: "resolve@patch:resolve@npm%3A1.21.0#~builtin::version=1.21.0&hash=07638b" dependencies: - is-core-module: ^2.2.0 - path-parse: ^1.0.6 - checksum: a0dd7d16a8e47af23afa9386df2dff10e3e0debb2c7299a42e581d9d9b04d7ad5d2c53f24f1e043f7b3c250cbdc71150063e53d0b6559683d37f790b7c8c3cd5 + is-core-module: ^2.8.0 + path-parse: ^1.0.7 + supports-preserve-symlinks-flag: ^1.0.0 + bin: + resolve: bin/resolve + checksum: a0a4d1f7409e73190f31f901f8a619960bb3bd4ae38ba3a54c7ea7e1c87758d28a73256bb8d6a35996a903d1bf14f53883f0dcac6c571c063cb8162d813ad26e languageName: node linkType: hard @@ -5293,7 +5286,7 @@ fsevents@^2.3.2: languageName: node linkType: hard -"rxjs@npm:7.4.0, rxjs@npm:^7.2.0": +"rxjs@npm:7.4.0": version: 7.4.0 resolution: "rxjs@npm:7.4.0" dependencies: @@ -5311,6 +5304,15 @@ fsevents@^2.3.2: languageName: node linkType: hard +"rxjs@npm:^7.2.0": + version: 7.5.2 + resolution: "rxjs@npm:7.5.2" + dependencies: + tslib: ^2.1.0 + checksum: daf1fe7289de500b25d822fd96cde3c138c7902e8bf0e6aa12a3e70847a5cabeeb4d677f10e19387e1db44b12c5b1be0ff5c79b8cd63ed6ce891d765e566cf4d + languageName: node + linkType: hard + "safe-buffer@npm:~5.1.1": version: 5.1.2 resolution: "safe-buffer@npm:5.1.2" @@ -5655,6 +5657,13 @@ fsevents@^2.3.2: languageName: node linkType: hard +"supports-preserve-symlinks-flag@npm:^1.0.0": + version: 1.0.0 + resolution: "supports-preserve-symlinks-flag@npm:1.0.0" + checksum: 53b1e247e68e05db7b3808b99b892bd36fb096e6fba213a06da7fab22045e97597db425c724f2bbd6c99a3c295e1e73f3e4de78592289f38431049e1277ca0ae + languageName: node + linkType: hard + "swagger-cli@npm:4.0.4": version: 4.0.4 resolution: "swagger-cli@npm:4.0.4" @@ -5712,24 +5721,12 @@ fsevents@^2.3.2: version: 0.0.0-use.local resolution: "tests@workspace:tests" dependencies: - "@algolia/client-abtesting": 5.0.0 - "@algolia/client-analytics": 5.0.0 - "@algolia/client-insights": 5.0.0 - "@algolia/client-personalization": 5.0.0 - "@algolia/client-query-suggestions": 5.0.0 - "@algolia/client-search": 5.0.0 - "@algolia/recommend": 5.0.0 "@apidevtools/swagger-parser": 10.0.3 - "@types/jest": 27.0.3 "@types/mustache": 4.1.2 "@types/node": 16.11.11 - dotenv: 10.0.0 eslint: 8.6.0 - jest: 27.4.5 mustache: 4.2.0 openapi-types: 10.0.0 - prettier: 2.5.1 - ts-jest: 27.1.2 typescript: 4.5.4 languageName: unknown linkType: soft @@ -5876,7 +5873,7 @@ fsevents@^2.3.2: languageName: node linkType: hard -"tslib@npm:2.3.1": +"tslib@npm:2.3.1, tslib@npm:^2.1.0": version: 2.3.1 resolution: "tslib@npm:2.3.1" checksum: de17a98d4614481f7fcb5cd53ffc1aaf8654313be0291e1bfaee4b4bb31a20494b7d218ff2e15017883e8ea9626599b3b0e0229c18383ba9dce89da2adf15cb9 @@ -5956,7 +5953,7 @@ fsevents@^2.3.2: languageName: node linkType: hard -typescript@4.5.4: +"typescript@npm:4.5.4": version: 4.5.4 resolution: "typescript@npm:4.5.4" bin: @@ -6053,13 +6050,13 @@ typescript@4.5.4: linkType: hard "v8-to-istanbul@npm:^8.1.0": - version: 8.1.0 - resolution: "v8-to-istanbul@npm:8.1.0" + version: 8.1.1 + resolution: "v8-to-istanbul@npm:8.1.1" dependencies: "@types/istanbul-lib-coverage": ^2.0.1 convert-source-map: ^1.6.0 source-map: ^0.7.3 - checksum: c7dabf9567e0c210b24d0720e553803cbe1ff81edb1ec7f2080eb4be01ed081a40286cc9f4aaa86d1bf8d57840cefae8fdf326b7cb8faa316ba50c7b948030d4 + checksum: 54ce92bec2727879626f623d02c8d193f0c7e919941fa373ec135189a8382265117f5316ea317a1e12a5f9c13d84d8449052a731fe3306fa4beaafbfa4cab229 languageName: node linkType: hard