-
+
{{ media.description }}
-
+
diff --git a/frontend/src/components/VMediaInfo/VMetadata.vue b/frontend/src/components/VMediaInfo/VMetadata.vue
index 29b4ca7f62f..f072b0fccc2 100644
--- a/frontend/src/components/VMediaInfo/VMetadata.vue
+++ b/frontend/src/components/VMediaInfo/VMetadata.vue
@@ -1,70 +1,77 @@
-
+
-
- {{ $t(datum.label) }}
- -
- {{
- datum.value
- }}
- {{ datum.value }}
-
+ - {{ $t(datum.label) }}
+
+
+
+ -
+ {{ $t(datum.label) }}
+
+
+
+
+ setup(props) {
+ const route = useRoute()
+ const uiStore = useUiStore()
-
diff --git a/frontend/src/components/VMediaInfo/VMetadataValue.vue b/frontend/src/components/VMediaInfo/VMetadataValue.vue
new file mode 100644
index 00000000000..84f39aeadb5
--- /dev/null
+++ b/frontend/src/components/VMediaInfo/VMetadataValue.vue
@@ -0,0 +1,39 @@
+
+
+ {{ datum.value
+ }}
+ {{ datum.value }}
+
+
+
diff --git a/frontend/src/components/VSearchResultsGrid/VAudioResult.vue b/frontend/src/components/VSearchResultsGrid/VAudioResult.vue
index 47ae2bef1c1..367928afaed 100644
--- a/frontend/src/components/VSearchResultsGrid/VAudioResult.vue
+++ b/frontend/src/components/VSearchResultsGrid/VAudioResult.vue
@@ -14,10 +14,11 @@
-
diff --git a/frontend/src/pages/image/_id/index.vue b/frontend/src/pages/image/_id/index.vue
index be83ae0ba69..39a1a3bb98d 100644
--- a/frontend/src/pages/image/_id/index.vue
+++ b/frontend/src/pages/image/_id/index.vue
@@ -90,7 +90,7 @@
diff --git a/frontend/src/plugins/ua-parse.ts b/frontend/src/plugins/ua-parse.ts
index 44b71ef7769..00275d54f7a 100644
--- a/frontend/src/plugins/ua-parse.ts
+++ b/frontend/src/plugins/ua-parse.ts
@@ -1,4 +1,4 @@
-import useragent, { Details as UADetails } from "express-useragent"
+import { parse, Details as UADetails } from "express-useragent"
import type { Plugin } from "@nuxt/types"
@@ -12,7 +12,7 @@ const uaParsePlugin: Plugin = (context, inject) => {
}
let ua: UADetails | null
if (typeof userAgent == "string") {
- ua = useragent.parse(userAgent)
+ ua = parse(userAgent)
} else {
ua = null
}
diff --git a/frontend/src/stores/provider.ts b/frontend/src/stores/provider.ts
index 4ae5b30bb99..4e2c6ac6021 100644
--- a/frontend/src/stores/provider.ts
+++ b/frontend/src/stores/provider.ts
@@ -89,6 +89,12 @@ export const useProviderStore = defineStore("provider", {
return this.providers
},
+ _getProvider(providerCode: string, mediaType: SupportedMediaType) {
+ return this.providers[mediaType].find(
+ (p) => p.source_name === providerCode
+ )
+ },
+
/**
* Returns the display name for provider if available, or capitalizes the given providerCode.
*
@@ -96,12 +102,18 @@ export const useProviderStore = defineStore("provider", {
* @param mediaType - mediaType of the provider
*/
getProviderName(providerCode: string, mediaType: SupportedMediaType) {
- const provider = this.providers[mediaType].find(
- (p) => p.source_name === providerCode
- )
+ const provider = this._getProvider(providerCode, mediaType)
return provider?.display_name || capital(providerCode)
},
+ /**
+ * Returns the source URL given the source code and media type.
+ */
+ getSourceUrl(providerCode: string, mediaType: SupportedMediaType) {
+ const provider = this._getProvider(providerCode, mediaType)
+ return provider?.source_url
+ },
+
/**
* Fetches provider data if no data is available, or if the data is too old.
* On successful fetch updates lastUpdated value.
diff --git a/frontend/src/types/analytics.ts b/frontend/src/types/analytics.ts
index eb5587ea1a4..70bac76bdad 100644
--- a/frontend/src/types/analytics.ts
+++ b/frontend/src/types/analytics.ts
@@ -260,6 +260,10 @@ export type Events = {
provider: string
/** The search term */
query: string
+ /** the reasons for why this result is considered sensitive */
+ sensitivities: string
+ /** whether the result was blurred or visible when selected by the user */
+ isBlurred: boolean | null
}
/**
* Description: When a user opens the external sources popover.
diff --git a/frontend/src/types/media.ts b/frontend/src/types/media.ts
index bfdd66e1fdf..416ecd0c4b7 100644
--- a/frontend/src/types/media.ts
+++ b/frontend/src/types/media.ts
@@ -50,7 +50,6 @@ export interface Media {
tags: Tag[]
fields_matched?: string[]
- mature: boolean
sensitivity: Sensitivity[]
isSensitive: boolean
}
diff --git a/frontend/src/utils/content-safety.ts b/frontend/src/utils/content-safety.ts
index 03d0bd5c7a0..967d6201975 100644
--- a/frontend/src/utils/content-safety.ts
+++ b/frontend/src/utils/content-safety.ts
@@ -18,7 +18,7 @@ import {
*
* @param id - the ID of the item for which to calculate the flags
* @param frac - the fraction of items to probabilistically flag
- * @returns an array of strings representing the mature flags
+ * @returns an array of strings representing the sensitivity flags
*/
export const getFakeSensitivities = (id: string, frac = 0.5): Sensitivity[] => {
const random = prng(hash(id))()
@@ -39,6 +39,6 @@ export const getFakeSensitivities = (id: string, frac = 0.5): Sensitivity[] => {
sensitivity.push(TEXT_FILTERED)
}
- log("Fake mature", id, sensitivity)
+ log("Fake sensitive", id, sensitivity)
return sensitivity
}
diff --git a/frontend/src/utils/decode-media-data.ts b/frontend/src/utils/decode-media-data.ts
index f4a69b4b521..55482d5fd22 100644
--- a/frontend/src/utils/decode-media-data.ts
+++ b/frontend/src/utils/decode-media-data.ts
@@ -101,13 +101,14 @@ export const decodeMediaData =
(
media: ApiMedia,
mediaType: T["frontendMediaType"]
): T => {
- // Fake ~50% of results as mature.
+ // Fake ~50% of results as sensitive.
const featureFlagStore = useFeatureFlagStore()
const sensitivity =
featureFlagStore.isOn("fake_sensitive") &&
featureFlagStore.isOn("fetch_sensitive")
? getFakeSensitivities(media.id)
: media[SENSITIVITY_RESPONSE_PARAM] ?? []
+ sensitivity.sort()
const isSensitive = sensitivity.length > 0
return {
diff --git a/frontend/src/utils/metadata.ts b/frontend/src/utils/metadata.ts
index 11920530dcf..a67ff902ec4 100644
--- a/frontend/src/utils/metadata.ts
+++ b/frontend/src/utils/metadata.ts
@@ -1,5 +1,9 @@
+import { title } from "case"
+
import type { AudioDetail, ImageDetail, Metadata } from "~/types/media"
-import { IMAGE } from "~/constants/media"
+import { AUDIO, IMAGE } from "~/constants/media"
+
+import { useProviderStore } from "~/stores/provider"
import type { NuxtI18nInstance } from "@nuxtjs/i18n"
@@ -35,23 +39,43 @@ export const getMediaMetadata = (
imageInfo?: { width?: number; height?: number; type?: string }
) => {
const metadata: Metadata[] = []
- if (media.frontendMediaType === IMAGE) {
- const mediaTypeString = getImageType(imageInfo?.type, i18n)
+ if (media.source && media.providerName !== media.sourceName) {
metadata.push({
- label: "mediaDetails.information.type",
- value: mediaTypeString.toString().toUpperCase(),
+ label: "mediaDetails.providerLabel",
+ value: media.providerName || media.provider,
})
- if (media.providerName !== media.sourceName) {
- metadata.push({
- label: "mediaDetails.providerLabel",
- value: media.providerName || media.provider,
- })
- }
+ }
+ const sourceUrl = useProviderStore().getSourceUrl(
+ media.source ?? media.provider,
+ media.frontendMediaType
+ )
+ const sourceName = media.sourceName ?? media.providerName ?? media.provider
+ metadata.push({
+ label: "mediaDetails.sourceLabel",
+ source: media.source ?? media.provider,
+ url: sourceUrl,
+ value: sourceName,
+ })
+
+ if (media.category) {
metadata.push({
- label: "mediaDetails.sourceLabel",
- value: media.sourceName ?? media.providerName ?? media.provider,
- url: media.foreign_landing_url,
+ label: "mediaDetails.information.category",
+ value: i18n
+ .t(`filters.${media.frontendMediaType}Categories.${media.category}`)
+ .toString(),
})
+ }
+
+ const mediaTypeString =
+ media.frontendMediaType === IMAGE
+ ? getImageType(imageInfo?.type, i18n)
+ : getAudioType(media, i18n)
+ metadata.push({
+ label: "mediaDetails.information.type",
+ value: mediaTypeString.toString().toUpperCase(),
+ })
+
+ if (media.frontendMediaType === IMAGE) {
metadata.push({
label: "imageDetails.information.dimensions",
value: `${i18n.t("imageDetails.information.sizeInPixels", {
@@ -59,51 +83,29 @@ export const getMediaMetadata = (
height: imageInfo?.height,
})}`,
})
- } else {
- const mediaTypeString = getAudioType(media, i18n)
+ }
+ if (media.frontendMediaType === AUDIO) {
if (media.audio_set) {
- metadata.push({
+ metadata.unshift({
label: "audioDetails.table.album",
value: media.audio_set.title,
url: media.audio_set.foreign_landing_url,
})
}
- if (media.category) {
- const categoryKey = `filters.audioCategories.${media.category}`
+ if (media.genres && media.genres.length > 0) {
metadata.push({
- label: "mediaDetails.information.type",
- value: `${i18n.t(categoryKey)}`,
+ label: "audioDetails.table.genre",
+ value: media.genres.map((genre) => title(genre)).join(", "),
})
}
+
if (media.sample_rate) {
metadata.push({
label: "audioDetails.table.sampleRate",
- value: `${media.sample_rate}`,
- })
- }
- if (media.filetype) {
- metadata.push({
- label: "audioDetails.table.filetype",
- value: mediaTypeString.toString().toUpperCase(),
- })
- }
- metadata.push({
- label: "mediaDetails.providerLabel",
- value: media.providerName || media.provider,
- url: media.foreign_landing_url,
- })
- if (media.source && media.providerName !== media.sourceName) {
- metadata.push({
- label: "mediaDetails.sourceLabel",
- value: media.sourceName ?? media.providerName ?? media.provider,
- })
- }
- if (media.genres && media.genres.length > 0) {
- metadata.push({
- label: "audioDetails.table.genre",
- value: media.genres.join(", "),
+ value: media.sample_rate.toString(),
})
}
}
+
return metadata
}
diff --git a/frontend/test/locales/ar.json b/frontend/test/locales/ar.json
index a7037ed67d6..ea73c9f63fc 100644
--- a/frontend/test/locales/ar.json
+++ b/frontend/test/locales/ar.json
@@ -213,8 +213,8 @@
"subLabel": "مطلوب",
"placeholder": "الرجاء إدخال 20 حرفًا على الأقل."
},
- "mature": {
- "option": "هل يحتوي على محتويات للبالغين",
+ "sensitive": {
+ "option": "يحتوي على محتوى حساس",
"subLabel": "اختياري",
"placeholder": "اختياريًا ، قدم وصفًا."
},
diff --git a/frontend/test/locales/ru.json b/frontend/test/locales/ru.json
index 86bed2bc98b..c77de966053 100644
--- a/frontend/test/locales/ru.json
+++ b/frontend/test/locales/ru.json
@@ -30,9 +30,10 @@
"contentReport": {
"short": "Пожаловаться",
"form": {
- "mature": {
+ "sensitive": {
"subLabel": "Необязательно",
- "option": "Содержимое для взрослой аудитории"
+ "option": "Содержит конфиденциальный контент",
+ "placeholder": "По желанию укажите описание"
},
"other": {
"placeholder": "Введите не менее 20 символов.",
diff --git a/frontend/test/playwright/e2e/all-results-analytics.spec.ts b/frontend/test/playwright/e2e/all-results-analytics.spec.ts
index ef81c22ebd9..c39393f4125 100644
--- a/frontend/test/playwright/e2e/all-results-analytics.spec.ts
+++ b/frontend/test/playwright/e2e/all-results-analytics.spec.ts
@@ -28,6 +28,8 @@ test.describe("all results grid analytics test", () => {
relatedTo: null,
id: "2e38ac1e-830c-4e9c-b13d-2c9a1ad53f95",
provider: "jamendo",
+ sensitivities: "",
+ isBlurred: false,
})
})
@@ -47,6 +49,8 @@ test.describe("all results grid analytics test", () => {
query: "birds",
provider: "flickr",
relatedTo: null,
+ sensitivities: "",
+ isBlurred: false,
})
})
diff --git a/frontend/test/playwright/e2e/report-media.spec.ts b/frontend/test/playwright/e2e/report-media.spec.ts
index bab3430087d..50e04750fab 100644
--- a/frontend/test/playwright/e2e/report-media.spec.ts
+++ b/frontend/test/playwright/e2e/report-media.spec.ts
@@ -58,13 +58,13 @@ const submitDmcaReport = async (page: Page, context: BrowserContext) => {
return expect(newPage.url()).toContain("https://docs.google.com/forms")
}
-// todo: Test a mature report with the optional description field
-const submitMatureContentReport = async (
+// todo: Test a sensitive report with the optional description field
+const submitSensitiveContentReport = async (
page: Page,
context: BrowserContext
) => {
await mockReportingEndpoint(context)
- await page.click('text="Contains mature content"')
+ await page.click('text="Contains sensitive content"')
const response = await submitApiReport(page)
return expect(response.status()).toBe(200)
}
@@ -86,7 +86,7 @@ test.beforeEach(async ({ context }) => {
const reports = {
dmca: submitDmcaReport,
- mature: submitMatureContentReport,
+ sensitive: submitSensitiveContentReport,
other: submitOtherReport,
}
diff --git a/frontend/test/playwright/e2e/search-query-client.spec.ts b/frontend/test/playwright/e2e/search-query-client.spec.ts
index 7f04ab7b2f1..23347beebaf 100644
--- a/frontend/test/playwright/e2e/search-query-client.spec.ts
+++ b/frontend/test/playwright/e2e/search-query-client.spec.ts
@@ -111,7 +111,7 @@ test.describe("search query on CSR", () => {
.getByLabel(/Turn on sensitive content fetching and blurring/i)
.check()
await page
- .getByLabel(/Mark 50% of results as mature to test content safety./i)
+ .getByLabel(/Mark 50% of results as sensitive to test content safety./i)
.check()
await goToSearchTerm(page, "cat", { mode: "CSR" })
diff --git a/frontend/test/playwright/e2e/search-query-server.spec.ts b/frontend/test/playwright/e2e/search-query-server.spec.ts
index 0c0b659ceec..81f3ccf24e1 100644
--- a/frontend/test/playwright/e2e/search-query-server.spec.ts
+++ b/frontend/test/playwright/e2e/search-query-server.spec.ts
@@ -19,7 +19,7 @@ import { ALL_MEDIA, AUDIO, IMAGE } from "~/constants/media"
* 3. query parameters are used to set the filter data:
* 3a. One of each values for `all` content
* 3b. Several query values - several filter checkboxes
- * 3c. Mature filter
+ * 3c. Sensitive results filter
* 3d. Query parameters that are not used for current media type are discarded
* All of these tests test server-generated search page, not the one generated on the client
*/
diff --git a/frontend/test/playwright/visual-regression/components/content-report-form.spec.ts-snapshots/content-report-focused-md-linux.png b/frontend/test/playwright/visual-regression/components/content-report-form.spec.ts-snapshots/content-report-focused-md-linux.png
index 7721b1d0215..d978f62de81 100644
Binary files a/frontend/test/playwright/visual-regression/components/content-report-form.spec.ts-snapshots/content-report-focused-md-linux.png and b/frontend/test/playwright/visual-regression/components/content-report-form.spec.ts-snapshots/content-report-focused-md-linux.png differ
diff --git a/frontend/test/playwright/visual-regression/components/content-report-form.spec.ts-snapshots/content-report-unfocused-md-linux.png b/frontend/test/playwright/visual-regression/components/content-report-form.spec.ts-snapshots/content-report-unfocused-md-linux.png
index 7721b1d0215..d978f62de81 100644
Binary files a/frontend/test/playwright/visual-regression/components/content-report-form.spec.ts-snapshots/content-report-unfocused-md-linux.png and b/frontend/test/playwright/visual-regression/components/content-report-form.spec.ts-snapshots/content-report-unfocused-md-linux.png differ
diff --git a/frontend/test/playwright/visual-regression/components/global-audio-player.spec.ts b/frontend/test/playwright/visual-regression/components/global-audio-player.spec.ts
index 9cd5d8c4d90..211c86a852f 100644
--- a/frontend/test/playwright/visual-regression/components/global-audio-player.spec.ts
+++ b/frontend/test/playwright/visual-regression/components/global-audio-player.spec.ts
@@ -28,6 +28,9 @@ for (const dir of languageDirections) {
.click()
// To make the tests consistent, set the played area to the same position
await page.mouse.click(170, 650)
+ // Allow audio to buffer to the seeked position
+ // eslint-disable-next-line playwright/no-networkidle
+ await page.waitForLoadState("networkidle")
await expectSnapshot(`global-audio-player-on-search-${dir}.png`, page)
})
})
diff --git a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts
index f86673bde40..d58b25e1e6f 100644
--- a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts
+++ b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts
@@ -40,9 +40,7 @@ for (const mediaType of supportedMediaTypes) {
{
fullPage: true,
},
- {
- maxDiffPixelRatio: 0.01,
- }
+ { maxDiffPixelRatio: 0.01 }
)
})
})
diff --git a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/audio-ltr-from-search-results-2xl-linux.png b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/audio-ltr-from-search-results-2xl-linux.png
index 89116251743..be0d50840bb 100644
Binary files a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/audio-ltr-from-search-results-2xl-linux.png and b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/audio-ltr-from-search-results-2xl-linux.png differ
diff --git a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/audio-ltr-from-search-results-lg-linux.png b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/audio-ltr-from-search-results-lg-linux.png
index d7fe24880a9..3b2673bcad1 100644
Binary files a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/audio-ltr-from-search-results-lg-linux.png and b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/audio-ltr-from-search-results-lg-linux.png differ
diff --git a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/audio-ltr-from-search-results-md-linux.png b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/audio-ltr-from-search-results-md-linux.png
index d51c42898f2..2af9ea2696c 100644
Binary files a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/audio-ltr-from-search-results-md-linux.png and b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/audio-ltr-from-search-results-md-linux.png differ
diff --git a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/audio-ltr-from-search-results-sm-linux.png b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/audio-ltr-from-search-results-sm-linux.png
index cdb98484511..3501736e846 100644
Binary files a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/audio-ltr-from-search-results-sm-linux.png and b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/audio-ltr-from-search-results-sm-linux.png differ
diff --git a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/audio-ltr-from-search-results-xl-linux.png b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/audio-ltr-from-search-results-xl-linux.png
index f281152f340..9334e0b26b2 100644
Binary files a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/audio-ltr-from-search-results-xl-linux.png and b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/audio-ltr-from-search-results-xl-linux.png differ
diff --git a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/audio-ltr-from-search-results-xs-linux.png b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/audio-ltr-from-search-results-xs-linux.png
index 6f616dec7f1..dd41c8fdce1 100644
Binary files a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/audio-ltr-from-search-results-xs-linux.png and b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/audio-ltr-from-search-results-xs-linux.png differ
diff --git a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/audio-rtl-from-search-results-2xl-linux.png b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/audio-rtl-from-search-results-2xl-linux.png
index 705d4a4c59e..9243bee47cf 100644
Binary files a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/audio-rtl-from-search-results-2xl-linux.png and b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/audio-rtl-from-search-results-2xl-linux.png differ
diff --git a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/audio-rtl-from-search-results-lg-linux.png b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/audio-rtl-from-search-results-lg-linux.png
index 35ba86f0d85..b894db721e8 100644
Binary files a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/audio-rtl-from-search-results-lg-linux.png and b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/audio-rtl-from-search-results-lg-linux.png differ
diff --git a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/audio-rtl-from-search-results-md-linux.png b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/audio-rtl-from-search-results-md-linux.png
index 60d2b80200a..9877e1900db 100644
Binary files a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/audio-rtl-from-search-results-md-linux.png and b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/audio-rtl-from-search-results-md-linux.png differ
diff --git a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/audio-rtl-from-search-results-sm-linux.png b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/audio-rtl-from-search-results-sm-linux.png
index 1f168578fb3..e27eaa56f4d 100644
Binary files a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/audio-rtl-from-search-results-sm-linux.png and b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/audio-rtl-from-search-results-sm-linux.png differ
diff --git a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/audio-rtl-from-search-results-xl-linux.png b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/audio-rtl-from-search-results-xl-linux.png
index 95e275235c6..267596a7c7f 100644
Binary files a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/audio-rtl-from-search-results-xl-linux.png and b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/audio-rtl-from-search-results-xl-linux.png differ
diff --git a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/audio-rtl-from-search-results-xs-linux.png b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/audio-rtl-from-search-results-xs-linux.png
index ed3a1e5c318..3dbf0ca2e4f 100644
Binary files a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/audio-rtl-from-search-results-xs-linux.png and b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/audio-rtl-from-search-results-xs-linux.png differ
diff --git a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/image-ltr-from-search-results-2xl-linux.png b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/image-ltr-from-search-results-2xl-linux.png
index 6b77cf4da73..100865bc8a6 100644
Binary files a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/image-ltr-from-search-results-2xl-linux.png and b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/image-ltr-from-search-results-2xl-linux.png differ
diff --git a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/image-ltr-from-search-results-lg-linux.png b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/image-ltr-from-search-results-lg-linux.png
index 0af80084c2a..b9bfdc02090 100644
Binary files a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/image-ltr-from-search-results-lg-linux.png and b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/image-ltr-from-search-results-lg-linux.png differ
diff --git a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/image-ltr-from-search-results-md-linux.png b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/image-ltr-from-search-results-md-linux.png
index edcaae2fc6b..964a84e9564 100644
Binary files a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/image-ltr-from-search-results-md-linux.png and b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/image-ltr-from-search-results-md-linux.png differ
diff --git a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/image-ltr-from-search-results-sm-linux.png b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/image-ltr-from-search-results-sm-linux.png
index dd1d4bedcac..2901f982b98 100644
Binary files a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/image-ltr-from-search-results-sm-linux.png and b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/image-ltr-from-search-results-sm-linux.png differ
diff --git a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/image-ltr-from-search-results-xl-linux.png b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/image-ltr-from-search-results-xl-linux.png
index 9b763ec443b..3dc48e53848 100644
Binary files a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/image-ltr-from-search-results-xl-linux.png and b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/image-ltr-from-search-results-xl-linux.png differ
diff --git a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/image-ltr-from-search-results-xs-linux.png b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/image-ltr-from-search-results-xs-linux.png
index 072552a839f..52a12de7d18 100644
Binary files a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/image-ltr-from-search-results-xs-linux.png and b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/image-ltr-from-search-results-xs-linux.png differ
diff --git a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/image-rtl-from-search-results-2xl-linux.png b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/image-rtl-from-search-results-2xl-linux.png
index a3105aa78de..82076288339 100644
Binary files a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/image-rtl-from-search-results-2xl-linux.png and b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/image-rtl-from-search-results-2xl-linux.png differ
diff --git a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/image-rtl-from-search-results-lg-linux.png b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/image-rtl-from-search-results-lg-linux.png
index 150032f8772..00c90dc2552 100644
Binary files a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/image-rtl-from-search-results-lg-linux.png and b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/image-rtl-from-search-results-lg-linux.png differ
diff --git a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/image-rtl-from-search-results-md-linux.png b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/image-rtl-from-search-results-md-linux.png
index 04d727546ed..72d249ad245 100644
Binary files a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/image-rtl-from-search-results-md-linux.png and b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/image-rtl-from-search-results-md-linux.png differ
diff --git a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/image-rtl-from-search-results-sm-linux.png b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/image-rtl-from-search-results-sm-linux.png
index ee58d9a5ff1..cf981653468 100644
Binary files a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/image-rtl-from-search-results-sm-linux.png and b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/image-rtl-from-search-results-sm-linux.png differ
diff --git a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/image-rtl-from-search-results-xl-linux.png b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/image-rtl-from-search-results-xl-linux.png
index f132417bbc3..131b945f735 100644
Binary files a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/image-rtl-from-search-results-xl-linux.png and b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/image-rtl-from-search-results-xl-linux.png differ
diff --git a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/image-rtl-from-search-results-xs-linux.png b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/image-rtl-from-search-results-xs-linux.png
index de08669c876..63198f9a6f0 100644
Binary files a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/image-rtl-from-search-results-xs-linux.png and b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/image-rtl-from-search-results-xs-linux.png differ
diff --git a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/ltr-full-page-report-sm-linux.png b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/ltr-full-page-report-sm-linux.png
index d985c04c647..6353836d393 100644
Binary files a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/ltr-full-page-report-sm-linux.png and b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/ltr-full-page-report-sm-linux.png differ
diff --git a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/ltr-full-page-report-xl-linux.png b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/ltr-full-page-report-xl-linux.png
index ae86975602e..47b1403a481 100644
Binary files a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/ltr-full-page-report-xl-linux.png and b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/ltr-full-page-report-xl-linux.png differ
diff --git a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/rtl-full-page-report-sm-linux.png b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/rtl-full-page-report-sm-linux.png
index dc1a4bc856f..bbb1d32c930 100644
Binary files a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/rtl-full-page-report-sm-linux.png and b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/rtl-full-page-report-sm-linux.png differ
diff --git a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/rtl-full-page-report-xl-linux.png b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/rtl-full-page-report-xl-linux.png
index 5a6bf0d2f69..a1cceafee3f 100644
Binary files a/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/rtl-full-page-report-xl-linux.png and b/frontend/test/playwright/visual-regression/pages/pages-single-result.spec.ts-snapshots/rtl-full-page-report-xl-linux.png differ
diff --git a/frontend/test/unit/fixtures/audio.js b/frontend/test/unit/fixtures/audio.js
index e2b148dc125..ff8db994659 100644
--- a/frontend/test/unit/fixtures/audio.js
+++ b/frontend/test/unit/fixtures/audio.js
@@ -37,7 +37,6 @@ export const getAudioObj = (overrides = {}) =>
alt_files: null,
attribution:
'"La vie des bêtes" by AS-POTIRONT! is licensed under CC BY-NC-SA 2.5. To view a copy of this license, visit https://creativecommons.org/licenses/by-nc-sa/2.5/.',
- mature: null,
thumbnail:
"https://localhost:8000/v1/audio/e19345b8-6937-49f7-a0fd-03bf057efc28/thumb",
waveform:
@@ -48,7 +47,7 @@ export const getAudioObj = (overrides = {}) =>
related_url:
"http://localhost:8000/v1/audio/e19345b8-6937-49f7-a0fd-03bf057efc28/recommendations",
peaks: [],
- isSensitive: false,
+ unstable_sensitivity: [],
},
overrides
)
diff --git a/frontend/test/unit/fixtures/image.js b/frontend/test/unit/fixtures/image.js
index c70762ef91b..b9c444636c4 100644
--- a/frontend/test/unit/fixtures/image.js
+++ b/frontend/test/unit/fixtures/image.js
@@ -24,7 +24,6 @@ export const image = {
attribution:
'"Cat cafe in Seoul" by toel-uru is licensed under CC BY-NC-SA 2.0. To view a copy of this license, visit https://creativecommons.org/licenses/by-nc-sa/2.0/.',
fields_matched: ["description", "tags.name", "title"],
- mature: false,
height: 681,
width: 1024,
thumbnail:
diff --git a/frontend/test/unit/specs/components/VMediaInfo/v-media-details.spec.js b/frontend/test/unit/specs/components/VMediaInfo/v-media-details.spec.js
index 520e7f3a985..8515dbd92c7 100644
--- a/frontend/test/unit/specs/components/VMediaInfo/v-media-details.spec.js
+++ b/frontend/test/unit/specs/components/VMediaInfo/v-media-details.spec.js
@@ -5,6 +5,16 @@ import { render } from "~~/test/unit/test-utils/render"
import VMediaDetails from "~/components/VMediaInfo/VMediaDetails.vue"
+jest.mock("@nuxtjs/composition-api", () => {
+ return {
+ ...jest.requireActual("@nuxtjs/composition-api"),
+ useRoute: jest.fn().mockReturnValue({
+ value: {
+ name: "audio-id__en",
+ },
+ }),
+ }
+})
describe("VMediaDetails", () => {
let options
let props
@@ -24,15 +34,16 @@ describe("VMediaDetails", () => {
media: getAudioObj(overrides),
}
options = {
+ mocks: { route: { value: { name: "audio-id" } } },
propsData: props,
- stubs: ["VAudioThumbnail", "VLink"],
+ stubs: ["VAudioThumbnail"],
}
})
it("renders the album title", () => {
render(VMediaDetails, options)
- const album = screen.getByText(overrides.audio_set.title)
+ const album = screen.getByRole("link", { name: overrides.audio_set.title })
expect(album).toHaveAttribute(
"href",
overrides.audio_set.foreign_landing_url
diff --git a/frontend/test/unit/specs/components/v-content-report-form.spec.js b/frontend/test/unit/specs/components/v-content-report-form.spec.js
index 3505817d729..77bffd7c83f 100644
--- a/frontend/test/unit/specs/components/v-content-report-form.spec.js
+++ b/frontend/test/unit/specs/components/v-content-report-form.spec.js
@@ -16,9 +16,9 @@ const getDmcaInput = () =>
screen.queryByRole("radio", {
name: /Infringes copyright/i,
})
-const getMatureInput = () =>
+const getSensitiveInput = () =>
screen.queryByRole("radio", {
- name: /mature/i,
+ name: /sensitive/i,
})
const getOtherInput = () =>
screen.queryByRole("radio", {
@@ -75,7 +75,7 @@ describe("VContentReportForm", () => {
it("should contain the correct contents", async () => {
await render(VContentReportForm, options)
expect(getDmcaInput()).toBeVisible()
- expect(getMatureInput()).toBeVisible()
+ expect(getSensitiveInput()).toBeVisible()
expect(getOtherInput()).toBeVisible()
expect(getCancelButton()).toBeVisible()
// By default, DMCA is selected, and we show a link to
@@ -86,7 +86,7 @@ describe("VContentReportForm", () => {
it("should render thank you note when report is sent", async () => {
const { queryByText } = render(VContentReportForm, options)
- await fireEvent.click(getMatureInput())
+ await fireEvent.click(getSensitiveInput())
await fireEvent.click(getReportButton())
// Submission successful message
@@ -99,7 +99,7 @@ describe("VContentReportForm", () => {
ReportService.sendReport = () => Promise.reject()
const { queryByText } = render(VContentReportForm, options)
- await fireEvent.click(getMatureInput())
+ await fireEvent.click(getSensitiveInput())
await fireEvent.click(getReportButton())
// Submission error message
@@ -130,16 +130,16 @@ describe("VContentReportForm", () => {
getDescriptionTextarea()
})
- it("should dispatch SEND_CONTENT_REPORT on next when mature is selected", async () => {
+ it("should dispatch SEND_CONTENT_REPORT on next when sensitive is selected", async () => {
ReportService.sendReport = jest.fn()
render(VContentReportForm, options)
- await fireEvent.click(getMatureInput())
+ await fireEvent.click(getSensitiveInput())
await fireEvent.click(getReportButton())
expect(ReportService.sendReport).toHaveBeenCalledWith({
identifier: props.media.id,
- reason: "mature",
+ reason: "sensitive",
mediaType: props.media.frontendMediaType,
description: "",
})
diff --git a/ingestion_server/Pipfile b/ingestion_server/Pipfile
index dbb42a99184..bbc31a5f1d7 100644
--- a/ingestion_server/Pipfile
+++ b/ingestion_server/Pipfile
@@ -15,7 +15,8 @@ pook = "~=1.0"
aws-requests-auth = "~=0.4"
boto3 = "~=1.28"
bottle = "~=0.12"
-elasticsearch-dsl = "~=7.4"
+elasticsearch = "==8.8.2"
+elasticsearch-dsl = "~=8.9"
falcon = "~=3.1"
filelock = "~=3.12"
gunicorn = "~=21.2"
diff --git a/ingestion_server/Pipfile.lock b/ingestion_server/Pipfile.lock
index 5fbd2eaa0a0..ab40764b401 100644
--- a/ingestion_server/Pipfile.lock
+++ b/ingestion_server/Pipfile.lock
@@ -1,7 +1,7 @@
{
"_meta": {
"hash": {
- "sha256": "16663b2ce054593ba6e6c336119c2a65099ce81d4ec102c62e5c335e7b7eee7b"
+ "sha256": "25098bab5ca1af1b01e69943d69b5df7d8d882e80f44a5b6555a94f5752661ca"
},
"pipfile-spec": 6,
"requires": {
@@ -34,19 +34,19 @@
},
"boto3": {
"hashes": [
- "sha256:6ff9a5b815e106656596064d51c9b6ba97a307807baa5f89634384b7d3f7ecc6",
- "sha256:bd7c760afb195eaeaab907dc6b2c21fa64ddbba3fed4a869e80d820ddbd6cc70"
+ "sha256:ec7895504e3b2dd35fbdb7397bc3c48daaba8e6f37bc436aa928ff4e745f0f1c",
+ "sha256:fed2d673fce33384697baa0028edfd18b06aa17af5c3ef82da75e9254a8ffb07"
],
"index": "pypi",
- "version": "==1.28.40"
+ "version": "==1.28.48"
},
"botocore": {
"hashes": [
- "sha256:ce22a82ef8674f49691477d09558992cc87e7331f65c6a5b0da897ab192240ca",
- "sha256:df766969f0d9ef9eda1a9c9946e0e173c10199f37a9e4c92861f11ddb5c9e702"
+ "sha256:6ed16f66aa6ed6070fed26d69764cb14c7759e4cc0b1c191283cc48b05d65de9",
+ "sha256:9618c06f7e08ed590dae6613b8b2511055f7d6c07517382143ef8563169d4ef1"
],
"markers": "python_version >= '3.7'",
- "version": "==1.31.40"
+ "version": "==1.31.48"
},
"bottle": {
"hashes": [
@@ -142,24 +142,32 @@
"sha256:f779d3ad205f108d14e99bb3859aa7dd8e9c68874617c72354d7ecaec2a054ac",
"sha256:f87f746ee241d30d6ed93969de31e5ffd09a2961a051e60ae6bddde9ec3583aa"
],
- "markers": "python_version >= '3.7'",
+ "markers": "python_full_version >= '3.7.0'",
"version": "==3.2.0"
},
+ "elastic-transport": {
+ "hashes": [
+ "sha256:19db271ab79c9f70f8c43f8f5b5111408781a6176b54ab2e54d713b6d9ceb815",
+ "sha256:b9ad708ceb7fcdbc6b30a96f886609a109f042c0b9d9f2e44403b3133ba7ff10"
+ ],
+ "markers": "python_version >= '3.6'",
+ "version": "==8.4.0"
+ },
"elasticsearch": {
"hashes": [
- "sha256:0e2454645dc00517dee4c6de3863411a9c5f1955d013c5fefa29123dadc92f98",
- "sha256:66c4ece2adfe7cc120e2b6a6798a1fd5c777aecf82eec39bb95cef7cfc7ea2b3"
+ "sha256:bed8cf8fcc6c3be7c254b579de4c29afab021f373c832246f912d37aef3c6bd5",
+ "sha256:bffd6ce4faaacf90e6f617241773b3da8fb94e2e83554f5508e2fab92ca79643"
],
- "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3' and python_version < '4'",
- "version": "==7.17.9"
+ "index": "pypi",
+ "version": "==8.8.2"
},
"elasticsearch-dsl": {
"hashes": [
- "sha256:07ee9c87dc28cc3cae2daa19401e1e18a172174ad9e5ca67938f752e3902a1d5",
- "sha256:97f79239a252be7c4cce554c29e64695d7ef6a4828372316a5e5ff815e7a7498"
+ "sha256:66410adf881f02b8a032e8a5b2a3ee093fdeede4b814fbf04c0f6ce0499b7472",
+ "sha256:ab266bcf84b0f23bd2d73d9b31e054b5d38b20279cf076c53873f46b6dabf747"
],
"index": "pypi",
- "version": "==7.4.1"
+ "version": "==8.9.0"
},
"falcon": {
"hashes": [
@@ -201,11 +209,11 @@
},
"filelock": {
"hashes": [
- "sha256:0ecc1dd2ec4672a10c8550a8182f1bd0c0a5088470ecd5a125e45f49472fac3d",
- "sha256:f067e40ccc40f2b48395a80fcbd4728262fab54e232e090a4063ab804179efeb"
+ "sha256:08c21d87ded6e2b9da6728c3dff51baf1dcecf973b768ef35bcbc3447edb9ad4",
+ "sha256:2e6f249f1f3654291606e046b09f1fd5eac39b360664c27f5aad072012f8bcbd"
],
"index": "pypi",
- "version": "==3.12.3"
+ "version": "==3.12.4"
},
"gunicorn": {
"hashes": [
@@ -369,106 +377,106 @@
},
"rpds-py": {
"hashes": [
- "sha256:00215f6a9058fbf84f9d47536902558eb61f180a6b2a0fa35338d06ceb9a2e5a",
- "sha256:0028eb0967942d0d2891eae700ae1a27b7fd18604cfcb16a1ef486a790fee99e",
- "sha256:0155c33af0676fc38e1107679be882077680ad1abb6303956b97259c3177e85e",
- "sha256:063411228b852fb2ed7485cf91f8e7d30893e69b0acb207ec349db04cccc8225",
- "sha256:0700c2133ba203c4068aaecd6a59bda22e06a5e46255c9da23cbf68c6942215d",
- "sha256:08e08ccf5b10badb7d0a5c84829b914c6e1e1f3a716fdb2bf294e2bd01562775",
- "sha256:0d292cabd7c8335bdd3237ded442480a249dbcdb4ddfac5218799364a01a0f5c",
- "sha256:15932ec5f224b0e35764dc156514533a4fca52dcfda0dfbe462a1a22b37efd59",
- "sha256:18f87baa20e02e9277ad8960cd89b63c79c05caf106f4c959a9595c43f2a34a5",
- "sha256:1a6420a36975e0073acaeee44ead260c1f6ea56812cfc6c31ec00c1c48197173",
- "sha256:1b401e8b9aece651512e62c431181e6e83048a651698a727ea0eb0699e9f9b74",
- "sha256:1d7b7b71bcb82d8713c7c2e9c5f061415598af5938666beded20d81fa23e7640",
- "sha256:23750a9b8a329844ba1fe267ca456bb3184984da2880ed17ae641c5af8de3fef",
- "sha256:23a059143c1393015c68936370cce11690f7294731904bdae47cc3e16d0b2474",
- "sha256:26d9fd624649a10e4610fab2bc820e215a184d193e47d0be7fe53c1c8f67f370",
- "sha256:291c9ce3929a75b45ce8ddde2aa7694fc8449f2bc8f5bd93adf021efaae2d10b",
- "sha256:298e8b5d8087e0330aac211c85428c8761230ef46a1f2c516d6a2f67fb8803c5",
- "sha256:2c7c4266c1b61eb429e8aeb7d8ed6a3bfe6c890a1788b18dbec090c35c6b93fa",
- "sha256:2d68a8e8a3a816629283faf82358d8c93fe5bd974dd2704152394a3de4cec22a",
- "sha256:344b89384c250ba6a4ce1786e04d01500e4dac0f4137ceebcaad12973c0ac0b3",
- "sha256:3455ecc46ea443b5f7d9c2f946ce4017745e017b0d0f8b99c92564eff97e97f5",
- "sha256:3d544a614055b131111bed6edfa1cb0fb082a7265761bcb03321f2dd7b5c6c48",
- "sha256:3e5c26905aa651cc8c0ddc45e0e5dea2a1296f70bdc96af17aee9d0493280a17",
- "sha256:3f5cc8c7bc99d2bbcd704cef165ca7d155cd6464c86cbda8339026a42d219397",
- "sha256:4992266817169997854f81df7f6db7bdcda1609972d8ffd6919252f09ec3c0f6",
- "sha256:4d55528ef13af4b4e074d067977b1f61408602f53ae4537dccf42ba665c2c7bd",
- "sha256:576da63eae7809f375932bfcbca2cf20620a1915bf2fedce4b9cc8491eceefe3",
- "sha256:58fc4d66ee349a23dbf08c7e964120dc9027059566e29cf0ce6205d590ed7eca",
- "sha256:5b9bf77008f2c55dabbd099fd3ac87009471d223a1c7ebea36873d39511b780a",
- "sha256:5e7996aed3f65667c6dcc8302a69368435a87c2364079a066750a2eac75ea01e",
- "sha256:5f7487be65b9c2c510819e744e375bd41b929a97e5915c4852a82fbb085df62c",
- "sha256:6388e4e95a26717b94a05ced084e19da4d92aca883f392dffcf8e48c8e221a24",
- "sha256:65af12f70355de29e1092f319f85a3467f4005e959ab65129cb697169ce94b86",
- "sha256:668d2b45d62c68c7a370ac3dce108ffda482b0a0f50abd8b4c604a813a59e08f",
- "sha256:71333c22f7cf5f0480b59a0aef21f652cf9bbaa9679ad261b405b65a57511d1e",
- "sha256:7150b83b3e3ddaac81a8bb6a9b5f93117674a0e7a2b5a5b32ab31fdfea6df27f",
- "sha256:748e472345c3a82cfb462d0dff998a7bf43e621eed73374cb19f307e97e08a83",
- "sha256:75dbfd41a61bc1fb0536bf7b1abf272dc115c53d4d77db770cd65d46d4520882",
- "sha256:7618a082c55cf038eede4a918c1001cc8a4411dfe508dc762659bcd48d8f4c6e",
- "sha256:780fcb855be29153901c67fc9c5633d48aebef21b90aa72812fa181d731c6b00",
- "sha256:78d10c431073dc6ebceed35ab22948a016cc2b5120963c13a41e38bdde4a7212",
- "sha256:7a3a3d3e4f1e3cd2a67b93a0b6ed0f2499e33f47cc568e3a0023e405abdc0ff1",
- "sha256:7b6975d3763d0952c111700c0634968419268e6bbc0b55fe71138987fa66f309",
- "sha256:80772e3bda6787510d9620bc0c7572be404a922f8ccdfd436bf6c3778119464c",
- "sha256:80992eb20755701753e30a6952a96aa58f353d12a65ad3c9d48a8da5ec4690cf",
- "sha256:841128a22e6ac04070a0f84776d07e9c38c4dcce8e28792a95e45fc621605517",
- "sha256:861d25ae0985a1dd5297fee35f476b60c6029e2e6e19847d5b4d0a43a390b696",
- "sha256:872f3dcaa8bf2245944861d7311179d2c0c9b2aaa7d3b464d99a7c2e401f01fa",
- "sha256:87c93b25d538c433fb053da6228c6290117ba53ff6a537c133b0f2087948a582",
- "sha256:8856aa76839dc234d3469f1e270918ce6bec1d6a601eba928f45d68a15f04fc3",
- "sha256:885e023e73ce09b11b89ab91fc60f35d80878d2c19d6213a32b42ff36543c291",
- "sha256:899b5e7e2d5a8bc92aa533c2d4e55e5ebba095c485568a5e4bedbc163421259a",
- "sha256:8ce8caa29ebbdcde67e5fd652c811d34bc01f249dbc0d61e5cc4db05ae79a83b",
- "sha256:8e1c68303ccf7fceb50fbab79064a2636119fd9aca121f28453709283dbca727",
- "sha256:8e7e2b3577e97fa43c2c2b12a16139b2cedbd0770235d5179c0412b4794efd9b",
- "sha256:92f05fc7d832e970047662b3440b190d24ea04f8d3c760e33e7163b67308c878",
- "sha256:97f5811df21703446b42303475b8b855ee07d6ab6cdf8565eff115540624f25d",
- "sha256:9affee8cb1ec453382c27eb9043378ab32f49cd4bc24a24275f5c39bf186c279",
- "sha256:a2da4a8c6d465fde36cea7d54bf47b5cf089073452f0e47c8632ecb9dec23c07",
- "sha256:a6903cdca64f1e301af9be424798328c1fe3b4b14aede35f04510989fc72f012",
- "sha256:a8ab1adf04ae2d6d65835995218fd3f3eb644fe20655ca8ee233e2c7270ff53b",
- "sha256:a8edd467551c1102dc0f5754ab55cd0703431cd3044edf8c8e7d9208d63fa453",
- "sha256:ac00c41dd315d147b129976204839ca9de699d83519ff1272afbe4fb9d362d12",
- "sha256:ad277f74b1c164f7248afa968700e410651eb858d7c160d109fb451dc45a2f09",
- "sha256:ae46a50d235f1631d9ec4670503f7b30405103034830bc13df29fd947207f795",
- "sha256:afe6b5a04b2ab1aa89bad32ca47bf71358e7302a06fdfdad857389dca8fb5f04",
- "sha256:b1cb078f54af0abd835ca76f93a3152565b73be0f056264da45117d0adf5e99c",
- "sha256:b25136212a3d064a8f0b9ebbb6c57094c5229e0de76d15c79b76feff26aeb7b8",
- "sha256:b3226b246facae14909b465061ddcfa2dfeadb6a64f407f24300d42d69bcb1a1",
- "sha256:b98e75b21fc2ba5285aef8efaf34131d16af1c38df36bdca2f50634bea2d3060",
- "sha256:bbd7b24d108509a1b9b6679fcc1166a7dd031dbef1f3c2c73788f42e3ebb3beb",
- "sha256:bed57543c99249ab3a4586ddc8786529fbc33309e5e8a1351802a06ca2baf4c2",
- "sha256:c0583f69522732bdd79dca4cd3873e63a29acf4a299769c7541f2ca1e4dd4bc6",
- "sha256:c1e0e9916301e3b3d970814b1439ca59487f0616d30f36a44cead66ee1748c31",
- "sha256:c651847545422c8131660704c58606d841e228ed576c8f1666d98b3d318f89da",
- "sha256:c7853f27195598e550fe089f78f0732c66ee1d1f0eaae8ad081589a5a2f5d4af",
- "sha256:cbae50d352e4717ffc22c566afc2d0da744380e87ed44a144508e3fb9114a3f4",
- "sha256:cdbed8f21204398f47de39b0a9b180d7e571f02dfb18bf5f1b618e238454b685",
- "sha256:d08395595c42bcd82c3608762ce734504c6d025eef1c06f42326a6023a584186",
- "sha256:d4639111e73997567343df6551da9dd90d66aece1b9fc26c786d328439488103",
- "sha256:d63787f289944cc4bde518ad2b5e70a4f0d6e2ce76324635359c74c113fd188f",
- "sha256:d6d5f061f6a2aa55790b9e64a23dfd87b6664ab56e24cd06c78eb43986cb260b",
- "sha256:d7865df1fb564092bcf46dac61b5def25342faf6352e4bc0e61a286e3fa26a3d",
- "sha256:db6585b600b2e76e98131e0ac0e5195759082b51687ad0c94505970c90718f4a",
- "sha256:e36d7369363d2707d5f68950a64c4e025991eb0177db01ccb6aa6facae48b69f",
- "sha256:e7947d9a6264c727a556541b1630296bbd5d0a05068d21c38dde8e7a1c703ef0",
- "sha256:eb2d59bc196e6d3b1827c7db06c1a898bfa0787c0574af398e65ccf2e97c0fbe",
- "sha256:ee9c2f6ca9774c2c24bbf7b23086264e6b5fa178201450535ec0859739e6f78d",
- "sha256:f4760e1b02173f4155203054f77a5dc0b4078de7645c922b208d28e7eb99f3e2",
- "sha256:f70bec8a14a692be6dbe7ce8aab303e88df891cbd4a39af091f90b6702e28055",
- "sha256:f869e34d2326e417baee430ae998e91412cc8e7fdd83d979277a90a0e79a5b47",
- "sha256:f8b9a7cd381970e64849070aca7c32d53ab7d96c66db6c2ef7aa23c6e803f514",
- "sha256:f99d74ddf9d3b6126b509e81865f89bd1283e3fc1b568b68cd7bd9dfa15583d7",
- "sha256:f9e7e493ded7042712a374471203dd43ae3fff5b81e3de1a0513fa241af9fd41",
- "sha256:fc72ae476732cdb7b2c1acb5af23b478b8a0d4b6fcf19b90dd150291e0d5b26b",
- "sha256:fccbf0cd3411719e4c9426755df90bf3449d9fc5a89f077f4a7f1abd4f70c910",
- "sha256:ffcf18ad3edf1c170e27e88b10282a2c449aa0358659592462448d71b2000cfc"
+ "sha256:015de2ce2af1586ff5dc873e804434185199a15f7d96920ce67e50604592cae9",
+ "sha256:061c3ff1f51ecec256e916cf71cc01f9975af8fb3af9b94d3c0cc8702cfea637",
+ "sha256:08a80cf4884920863623a9ee9a285ee04cef57ebedc1cc87b3e3e0f24c8acfe5",
+ "sha256:09362f86ec201288d5687d1dc476b07bf39c08478cde837cb710b302864e7ec9",
+ "sha256:0bb4f48bd0dd18eebe826395e6a48b7331291078a879295bae4e5d053be50d4c",
+ "sha256:106af1653007cc569d5fbb5f08c6648a49fe4de74c2df814e234e282ebc06957",
+ "sha256:11fdd1192240dda8d6c5d18a06146e9045cb7e3ba7c06de6973000ff035df7c6",
+ "sha256:16a472300bc6c83fe4c2072cc22b3972f90d718d56f241adabc7ae509f53f154",
+ "sha256:176287bb998fd1e9846a9b666e240e58f8d3373e3bf87e7642f15af5405187b8",
+ "sha256:177914f81f66c86c012311f8c7f46887ec375cfcfd2a2f28233a3053ac93a569",
+ "sha256:177c9dd834cdf4dc39c27436ade6fdf9fe81484758885f2d616d5d03c0a83bd2",
+ "sha256:187700668c018a7e76e89424b7c1042f317c8df9161f00c0c903c82b0a8cac5c",
+ "sha256:1d9b5ee46dcb498fa3e46d4dfabcb531e1f2e76b477e0d99ef114f17bbd38453",
+ "sha256:22da15b902f9f8e267020d1c8bcfc4831ca646fecb60254f7bc71763569f56b1",
+ "sha256:24cd91a03543a0f8d09cb18d1cb27df80a84b5553d2bd94cba5979ef6af5c6e7",
+ "sha256:255f1a10ae39b52122cce26ce0781f7a616f502feecce9e616976f6a87992d6b",
+ "sha256:271c360fdc464fe6a75f13ea0c08ddf71a321f4c55fc20a3fe62ea3ef09df7d9",
+ "sha256:2ed83d53a8c5902ec48b90b2ac045e28e1698c0bea9441af9409fc844dc79496",
+ "sha256:2f3e1867dd574014253b4b8f01ba443b9c914e61d45f3674e452a915d6e929a3",
+ "sha256:35fbd23c1c8732cde7a94abe7fb071ec173c2f58c0bd0d7e5b669fdfc80a2c7b",
+ "sha256:37d0c59548ae56fae01c14998918d04ee0d5d3277363c10208eef8c4e2b68ed6",
+ "sha256:39d05e65f23a0fe897b6ac395f2a8d48c56ac0f583f5d663e0afec1da89b95da",
+ "sha256:3ad59efe24a4d54c2742929001f2d02803aafc15d6d781c21379e3f7f66ec842",
+ "sha256:3aed39db2f0ace76faa94f465d4234aac72e2f32b009f15da6492a561b3bbebd",
+ "sha256:3bbac1953c17252f9cc675bb19372444aadf0179b5df575ac4b56faaec9f6294",
+ "sha256:40bc802a696887b14c002edd43c18082cb7b6f9ee8b838239b03b56574d97f71",
+ "sha256:42f712b4668831c0cd85e0a5b5a308700fe068e37dcd24c0062904c4e372b093",
+ "sha256:448a66b8266de0b581246ca7cd6a73b8d98d15100fb7165974535fa3b577340e",
+ "sha256:485301ee56ce87a51ccb182a4b180d852c5cb2b3cb3a82f7d4714b4141119d8c",
+ "sha256:485747ee62da83366a44fbba963c5fe017860ad408ccd6cd99aa66ea80d32b2e",
+ "sha256:4cf0855a842c5b5c391dd32ca273b09e86abf8367572073bd1edfc52bc44446b",
+ "sha256:4eca20917a06d2fca7628ef3c8b94a8c358f6b43f1a621c9815243462dcccf97",
+ "sha256:4ed172d0c79f156c1b954e99c03bc2e3033c17efce8dd1a7c781bc4d5793dfac",
+ "sha256:5267cfda873ad62591b9332fd9472d2409f7cf02a34a9c9cb367e2c0255994bf",
+ "sha256:52b5cbc0469328e58180021138207e6ec91d7ca2e037d3549cc9e34e2187330a",
+ "sha256:53d7a3cd46cdc1689296348cb05ffd4f4280035770aee0c8ead3bbd4d6529acc",
+ "sha256:563646d74a4b4456d0cf3b714ca522e725243c603e8254ad85c3b59b7c0c4bf0",
+ "sha256:570cc326e78ff23dec7f41487aa9c3dffd02e5ee9ab43a8f6ccc3df8f9327623",
+ "sha256:5aca759ada6b1967fcfd4336dcf460d02a8a23e6abe06e90ea7881e5c22c4de6",
+ "sha256:5de11c041486681ce854c814844f4ce3282b6ea1656faae19208ebe09d31c5b8",
+ "sha256:5e271dd97c7bb8eefda5cca38cd0b0373a1fea50f71e8071376b46968582af9b",
+ "sha256:642ed0a209ced4be3a46f8cb094f2d76f1f479e2a1ceca6de6346a096cd3409d",
+ "sha256:6446002739ca29249f0beaaf067fcbc2b5aab4bc7ee8fb941bd194947ce19aff",
+ "sha256:691d50c99a937709ac4c4cd570d959a006bd6a6d970a484c84cc99543d4a5bbb",
+ "sha256:69b857a7d8bd4f5d6e0db4086da8c46309a26e8cefdfc778c0c5cc17d4b11e08",
+ "sha256:6ac3fefb0d168c7c6cab24fdfc80ec62cd2b4dfd9e65b84bdceb1cb01d385c33",
+ "sha256:6c9141af27a4e5819d74d67d227d5047a20fa3c7d4d9df43037a955b4c748ec5",
+ "sha256:7170cbde4070dc3c77dec82abf86f3b210633d4f89550fa0ad2d4b549a05572a",
+ "sha256:763ad59e105fca09705d9f9b29ecffb95ecdc3b0363be3bb56081b2c6de7977a",
+ "sha256:77076bdc8776a2b029e1e6ffbe6d7056e35f56f5e80d9dc0bad26ad4a024a762",
+ "sha256:7cd020b1fb41e3ab7716d4d2c3972d4588fdfbab9bfbbb64acc7078eccef8860",
+ "sha256:821392559d37759caa67d622d0d2994c7a3f2fb29274948ac799d496d92bca73",
+ "sha256:829e91f3a8574888b73e7a3feb3b1af698e717513597e23136ff4eba0bc8387a",
+ "sha256:850c272e0e0d1a5c5d73b1b7871b0a7c2446b304cec55ccdb3eaac0d792bb065",
+ "sha256:87d9b206b1bd7a0523375dc2020a6ce88bca5330682ae2fe25e86fd5d45cea9c",
+ "sha256:8bd01ff4032abaed03f2db702fa9a61078bee37add0bd884a6190b05e63b028c",
+ "sha256:8d54bbdf5d56e2c8cf81a1857250f3ea132de77af543d0ba5dce667183b61fec",
+ "sha256:8efaeb08ede95066da3a3e3c420fcc0a21693fcd0c4396d0585b019613d28515",
+ "sha256:8f94fdd756ba1f79f988855d948ae0bad9ddf44df296770d9a58c774cfbcca72",
+ "sha256:95cde244e7195b2c07ec9b73fa4c5026d4a27233451485caa1cd0c1b55f26dbd",
+ "sha256:975382d9aa90dc59253d6a83a5ca72e07f4ada3ae3d6c0575ced513db322b8ec",
+ "sha256:9dd9d9d9e898b9d30683bdd2b6c1849449158647d1049a125879cb397ee9cd12",
+ "sha256:a019a344312d0b1f429c00d49c3be62fa273d4a1094e1b224f403716b6d03be1",
+ "sha256:a4d9bfda3f84fc563868fe25ca160c8ff0e69bc4443c5647f960d59400ce6557",
+ "sha256:a657250807b6efd19b28f5922520ae002a54cb43c2401e6f3d0230c352564d25",
+ "sha256:a771417c9c06c56c9d53d11a5b084d1de75de82978e23c544270ab25e7c066ff",
+ "sha256:aad6ed9e70ddfb34d849b761fb243be58c735be6a9265b9060d6ddb77751e3e8",
+ "sha256:ae87137951bb3dc08c7d8bfb8988d8c119f3230731b08a71146e84aaa919a7a9",
+ "sha256:af247fd4f12cca4129c1b82090244ea5a9d5bb089e9a82feb5a2f7c6a9fe181d",
+ "sha256:b5d4bdd697195f3876d134101c40c7d06d46c6ab25159ed5cbd44105c715278a",
+ "sha256:b9255e7165083de7c1d605e818025e8860636348f34a79d84ec533546064f07e",
+ "sha256:c22211c165166de6683de8136229721f3d5c8606cc2c3d1562da9a3a5058049c",
+ "sha256:c55f9821f88e8bee4b7a72c82cfb5ecd22b6aad04033334f33c329b29bfa4da0",
+ "sha256:c7aed97f2e676561416c927b063802c8a6285e9b55e1b83213dfd99a8f4f9e48",
+ "sha256:cd2163f42868865597d89399a01aa33b7594ce8e2c4a28503127c81a2f17784e",
+ "sha256:ce5e7504db95b76fc89055c7f41e367eaadef5b1d059e27e1d6eabf2b55ca314",
+ "sha256:cff7351c251c7546407827b6a37bcef6416304fc54d12d44dbfecbb717064717",
+ "sha256:d27aa6bbc1f33be920bb7adbb95581452cdf23005d5611b29a12bb6a3468cc95",
+ "sha256:d3b52a67ac66a3a64a7e710ba629f62d1e26ca0504c29ee8cbd99b97df7079a8",
+ "sha256:de61e424062173b4f70eec07e12469edde7e17fa180019a2a0d75c13a5c5dc57",
+ "sha256:e10e6a1ed2b8661201e79dff5531f8ad4cdd83548a0f81c95cf79b3184b20c33",
+ "sha256:e1a0ffc39f51aa5f5c22114a8f1906b3c17eba68c5babb86c5f77d8b1bba14d1",
+ "sha256:e22491d25f97199fc3581ad8dd8ce198d8c8fdb8dae80dea3512e1ce6d5fa99f",
+ "sha256:e626b864725680cd3904414d72e7b0bd81c0e5b2b53a5b30b4273034253bb41f",
+ "sha256:e8c71ea77536149e36c4c784f6d420ffd20bea041e3ba21ed021cb40ce58e2c9",
+ "sha256:e8d0f0eca087630d58b8c662085529781fd5dc80f0a54eda42d5c9029f812599",
+ "sha256:ea65b59882d5fa8c74a23f8960db579e5e341534934f43f3b18ec1839b893e41",
+ "sha256:ea93163472db26ac6043e8f7f93a05d9b59e0505c760da2a3cd22c7dd7111391",
+ "sha256:eab75a8569a095f2ad470b342f2751d9902f7944704f0571c8af46bede438475",
+ "sha256:ed8313809571a5463fd7db43aaca68ecb43ca7a58f5b23b6e6c6c5d02bdc7882",
+ "sha256:ef5fddfb264e89c435be4adb3953cef5d2936fdeb4463b4161a6ba2f22e7b740",
+ "sha256:ef750a20de1b65657a1425f77c525b0183eac63fe7b8f5ac0dd16f3668d3e64f",
+ "sha256:efb9ece97e696bb56e31166a9dd7919f8f0c6b31967b454718c6509f29ef6fee",
+ "sha256:f4c179a7aeae10ddf44c6bac87938134c1379c49c884529f090f9bf05566c836",
+ "sha256:f602881d80ee4228a2355c68da6b296a296cd22bbb91e5418d54577bbf17fa7c",
+ "sha256:fc2200e79d75b5238c8d69f6a30f8284290c777039d331e7340b6c17cad24a5a",
+ "sha256:fcc1ebb7561a3e24a6588f7c6ded15d80aec22c66a070c757559b57b17ffd1cb"
],
"markers": "python_version >= '3.8'",
- "version": "==0.10.0"
+ "version": "==0.10.3"
},
"s3transfer": {
"hashes": [
@@ -483,11 +491,11 @@
"falcon"
],
"hashes": [
- "sha256:2e53ad63f96bb9da6570ba2e755c267e529edcf58580a2c0d2a11ef26e1e678b",
- "sha256:7dc873b87e1faf4d00614afd1058bfa1522942f33daef8a59f90de8ed75cd10c"
+ "sha256:64a7141005fb775b9db298a30de93e3b83e0ddd1232dc6f36eb38aebc1553291",
+ "sha256:6de2e88304873484207fed836388e422aeff000609b104c802749fd89d56ba5b"
],
"index": "pypi",
- "version": "==1.30.0"
+ "version": "==1.31.0"
},
"six": {
"hashes": [
@@ -499,11 +507,11 @@
},
"tldextract": {
"hashes": [
- "sha256:581e7dbefc90e7bb857bb6f768d25c811a3c5f0892ed56a9a2999ddb7b1b70c2",
- "sha256:5fe3210c577463545191d45ad522d3d5e78d55218ce97215e82004dcae1e1234"
+ "sha256:2cb271ca8d06ea1630a1361b58edad14e0cf81f34ce3c90b052854528fe2a281",
+ "sha256:4df1c65b95be61d59428e8611e955e54e6f1d4483d3e8d5733d3a9062155e910"
],
"index": "pypi",
- "version": "==3.4.4"
+ "version": "==3.5.0"
},
"urllib3": {
"hashes": [
@@ -515,20 +523,12 @@
}
},
"develop": {
- "appnope": {
- "hashes": [
- "sha256:02bd91c4de869fbb1e1c50aafc4098827a7a54ab2f39d9dcba6c9547ed920e24",
- "sha256:265a455292d0bd8a72453494fa24df5a11eb18373a60c7c0430889f22548605e"
- ],
- "markers": "sys_platform == 'darwin'",
- "version": "==0.1.3"
- },
"asttokens": {
"hashes": [
- "sha256:4622110b2a6f30b77e1473affaa97e711bc2f07d3f10848420ff1898edbe94f3",
- "sha256:6b0ac9e93fb0335014d382b8fa9b3afa7df546984258005da0b9e7095b3deb1c"
+ "sha256:2e0171b991b2c959acc6c49318049236844a5da1d65ba2672c4880c1c894834e",
+ "sha256:cf8fc9e61a86461aa9fb161a14a0841a03c405fa829ac6b202670b3495d2ce69"
],
- "version": "==2.2.1"
+ "version": "==2.4.0"
},
"attrs": {
"hashes": [
@@ -674,7 +674,7 @@
"sha256:04505ade687dc26dc4284b1ad19a83be2f2afe83e7a828ace0c72f3a1df72aac",
"sha256:9dffbe1d8acf91e3de75f3b544e4842382fc06c6babe903ac9acb74dc6e08d88"
],
- "markers": "python_version >= '3.7'",
+ "markers": "python_full_version >= '3.7.0'",
"version": "==3.0.39"
},
"ptyprocess": {
@@ -701,11 +701,11 @@
},
"pytest": {
"hashes": [
- "sha256:78bf16451a2eb8c7a2ea98e32dc119fd2aa758f1d5d66dbf0a59d69a3969df32",
- "sha256:b4bf8c45bd59934ed84001ad51e11b4ee40d40a1229d2c79f9c592b0a3f6bd8a"
+ "sha256:1d881c6124e08ff0a1bb75ba3ec0bfd8b5354a01c194ddd5a0a870a48d99b002",
+ "sha256:a766259cfab564a2ad52cb1aae1b881a75c3eb7e34ca3779697c23ed47c47069"
],
"index": "pypi",
- "version": "==7.4.0"
+ "version": "==7.4.2"
},
"pytest-order": {
"hashes": [
@@ -741,106 +741,106 @@
},
"rpds-py": {
"hashes": [
- "sha256:00215f6a9058fbf84f9d47536902558eb61f180a6b2a0fa35338d06ceb9a2e5a",
- "sha256:0028eb0967942d0d2891eae700ae1a27b7fd18604cfcb16a1ef486a790fee99e",
- "sha256:0155c33af0676fc38e1107679be882077680ad1abb6303956b97259c3177e85e",
- "sha256:063411228b852fb2ed7485cf91f8e7d30893e69b0acb207ec349db04cccc8225",
- "sha256:0700c2133ba203c4068aaecd6a59bda22e06a5e46255c9da23cbf68c6942215d",
- "sha256:08e08ccf5b10badb7d0a5c84829b914c6e1e1f3a716fdb2bf294e2bd01562775",
- "sha256:0d292cabd7c8335bdd3237ded442480a249dbcdb4ddfac5218799364a01a0f5c",
- "sha256:15932ec5f224b0e35764dc156514533a4fca52dcfda0dfbe462a1a22b37efd59",
- "sha256:18f87baa20e02e9277ad8960cd89b63c79c05caf106f4c959a9595c43f2a34a5",
- "sha256:1a6420a36975e0073acaeee44ead260c1f6ea56812cfc6c31ec00c1c48197173",
- "sha256:1b401e8b9aece651512e62c431181e6e83048a651698a727ea0eb0699e9f9b74",
- "sha256:1d7b7b71bcb82d8713c7c2e9c5f061415598af5938666beded20d81fa23e7640",
- "sha256:23750a9b8a329844ba1fe267ca456bb3184984da2880ed17ae641c5af8de3fef",
- "sha256:23a059143c1393015c68936370cce11690f7294731904bdae47cc3e16d0b2474",
- "sha256:26d9fd624649a10e4610fab2bc820e215a184d193e47d0be7fe53c1c8f67f370",
- "sha256:291c9ce3929a75b45ce8ddde2aa7694fc8449f2bc8f5bd93adf021efaae2d10b",
- "sha256:298e8b5d8087e0330aac211c85428c8761230ef46a1f2c516d6a2f67fb8803c5",
- "sha256:2c7c4266c1b61eb429e8aeb7d8ed6a3bfe6c890a1788b18dbec090c35c6b93fa",
- "sha256:2d68a8e8a3a816629283faf82358d8c93fe5bd974dd2704152394a3de4cec22a",
- "sha256:344b89384c250ba6a4ce1786e04d01500e4dac0f4137ceebcaad12973c0ac0b3",
- "sha256:3455ecc46ea443b5f7d9c2f946ce4017745e017b0d0f8b99c92564eff97e97f5",
- "sha256:3d544a614055b131111bed6edfa1cb0fb082a7265761bcb03321f2dd7b5c6c48",
- "sha256:3e5c26905aa651cc8c0ddc45e0e5dea2a1296f70bdc96af17aee9d0493280a17",
- "sha256:3f5cc8c7bc99d2bbcd704cef165ca7d155cd6464c86cbda8339026a42d219397",
- "sha256:4992266817169997854f81df7f6db7bdcda1609972d8ffd6919252f09ec3c0f6",
- "sha256:4d55528ef13af4b4e074d067977b1f61408602f53ae4537dccf42ba665c2c7bd",
- "sha256:576da63eae7809f375932bfcbca2cf20620a1915bf2fedce4b9cc8491eceefe3",
- "sha256:58fc4d66ee349a23dbf08c7e964120dc9027059566e29cf0ce6205d590ed7eca",
- "sha256:5b9bf77008f2c55dabbd099fd3ac87009471d223a1c7ebea36873d39511b780a",
- "sha256:5e7996aed3f65667c6dcc8302a69368435a87c2364079a066750a2eac75ea01e",
- "sha256:5f7487be65b9c2c510819e744e375bd41b929a97e5915c4852a82fbb085df62c",
- "sha256:6388e4e95a26717b94a05ced084e19da4d92aca883f392dffcf8e48c8e221a24",
- "sha256:65af12f70355de29e1092f319f85a3467f4005e959ab65129cb697169ce94b86",
- "sha256:668d2b45d62c68c7a370ac3dce108ffda482b0a0f50abd8b4c604a813a59e08f",
- "sha256:71333c22f7cf5f0480b59a0aef21f652cf9bbaa9679ad261b405b65a57511d1e",
- "sha256:7150b83b3e3ddaac81a8bb6a9b5f93117674a0e7a2b5a5b32ab31fdfea6df27f",
- "sha256:748e472345c3a82cfb462d0dff998a7bf43e621eed73374cb19f307e97e08a83",
- "sha256:75dbfd41a61bc1fb0536bf7b1abf272dc115c53d4d77db770cd65d46d4520882",
- "sha256:7618a082c55cf038eede4a918c1001cc8a4411dfe508dc762659bcd48d8f4c6e",
- "sha256:780fcb855be29153901c67fc9c5633d48aebef21b90aa72812fa181d731c6b00",
- "sha256:78d10c431073dc6ebceed35ab22948a016cc2b5120963c13a41e38bdde4a7212",
- "sha256:7a3a3d3e4f1e3cd2a67b93a0b6ed0f2499e33f47cc568e3a0023e405abdc0ff1",
- "sha256:7b6975d3763d0952c111700c0634968419268e6bbc0b55fe71138987fa66f309",
- "sha256:80772e3bda6787510d9620bc0c7572be404a922f8ccdfd436bf6c3778119464c",
- "sha256:80992eb20755701753e30a6952a96aa58f353d12a65ad3c9d48a8da5ec4690cf",
- "sha256:841128a22e6ac04070a0f84776d07e9c38c4dcce8e28792a95e45fc621605517",
- "sha256:861d25ae0985a1dd5297fee35f476b60c6029e2e6e19847d5b4d0a43a390b696",
- "sha256:872f3dcaa8bf2245944861d7311179d2c0c9b2aaa7d3b464d99a7c2e401f01fa",
- "sha256:87c93b25d538c433fb053da6228c6290117ba53ff6a537c133b0f2087948a582",
- "sha256:8856aa76839dc234d3469f1e270918ce6bec1d6a601eba928f45d68a15f04fc3",
- "sha256:885e023e73ce09b11b89ab91fc60f35d80878d2c19d6213a32b42ff36543c291",
- "sha256:899b5e7e2d5a8bc92aa533c2d4e55e5ebba095c485568a5e4bedbc163421259a",
- "sha256:8ce8caa29ebbdcde67e5fd652c811d34bc01f249dbc0d61e5cc4db05ae79a83b",
- "sha256:8e1c68303ccf7fceb50fbab79064a2636119fd9aca121f28453709283dbca727",
- "sha256:8e7e2b3577e97fa43c2c2b12a16139b2cedbd0770235d5179c0412b4794efd9b",
- "sha256:92f05fc7d832e970047662b3440b190d24ea04f8d3c760e33e7163b67308c878",
- "sha256:97f5811df21703446b42303475b8b855ee07d6ab6cdf8565eff115540624f25d",
- "sha256:9affee8cb1ec453382c27eb9043378ab32f49cd4bc24a24275f5c39bf186c279",
- "sha256:a2da4a8c6d465fde36cea7d54bf47b5cf089073452f0e47c8632ecb9dec23c07",
- "sha256:a6903cdca64f1e301af9be424798328c1fe3b4b14aede35f04510989fc72f012",
- "sha256:a8ab1adf04ae2d6d65835995218fd3f3eb644fe20655ca8ee233e2c7270ff53b",
- "sha256:a8edd467551c1102dc0f5754ab55cd0703431cd3044edf8c8e7d9208d63fa453",
- "sha256:ac00c41dd315d147b129976204839ca9de699d83519ff1272afbe4fb9d362d12",
- "sha256:ad277f74b1c164f7248afa968700e410651eb858d7c160d109fb451dc45a2f09",
- "sha256:ae46a50d235f1631d9ec4670503f7b30405103034830bc13df29fd947207f795",
- "sha256:afe6b5a04b2ab1aa89bad32ca47bf71358e7302a06fdfdad857389dca8fb5f04",
- "sha256:b1cb078f54af0abd835ca76f93a3152565b73be0f056264da45117d0adf5e99c",
- "sha256:b25136212a3d064a8f0b9ebbb6c57094c5229e0de76d15c79b76feff26aeb7b8",
- "sha256:b3226b246facae14909b465061ddcfa2dfeadb6a64f407f24300d42d69bcb1a1",
- "sha256:b98e75b21fc2ba5285aef8efaf34131d16af1c38df36bdca2f50634bea2d3060",
- "sha256:bbd7b24d108509a1b9b6679fcc1166a7dd031dbef1f3c2c73788f42e3ebb3beb",
- "sha256:bed57543c99249ab3a4586ddc8786529fbc33309e5e8a1351802a06ca2baf4c2",
- "sha256:c0583f69522732bdd79dca4cd3873e63a29acf4a299769c7541f2ca1e4dd4bc6",
- "sha256:c1e0e9916301e3b3d970814b1439ca59487f0616d30f36a44cead66ee1748c31",
- "sha256:c651847545422c8131660704c58606d841e228ed576c8f1666d98b3d318f89da",
- "sha256:c7853f27195598e550fe089f78f0732c66ee1d1f0eaae8ad081589a5a2f5d4af",
- "sha256:cbae50d352e4717ffc22c566afc2d0da744380e87ed44a144508e3fb9114a3f4",
- "sha256:cdbed8f21204398f47de39b0a9b180d7e571f02dfb18bf5f1b618e238454b685",
- "sha256:d08395595c42bcd82c3608762ce734504c6d025eef1c06f42326a6023a584186",
- "sha256:d4639111e73997567343df6551da9dd90d66aece1b9fc26c786d328439488103",
- "sha256:d63787f289944cc4bde518ad2b5e70a4f0d6e2ce76324635359c74c113fd188f",
- "sha256:d6d5f061f6a2aa55790b9e64a23dfd87b6664ab56e24cd06c78eb43986cb260b",
- "sha256:d7865df1fb564092bcf46dac61b5def25342faf6352e4bc0e61a286e3fa26a3d",
- "sha256:db6585b600b2e76e98131e0ac0e5195759082b51687ad0c94505970c90718f4a",
- "sha256:e36d7369363d2707d5f68950a64c4e025991eb0177db01ccb6aa6facae48b69f",
- "sha256:e7947d9a6264c727a556541b1630296bbd5d0a05068d21c38dde8e7a1c703ef0",
- "sha256:eb2d59bc196e6d3b1827c7db06c1a898bfa0787c0574af398e65ccf2e97c0fbe",
- "sha256:ee9c2f6ca9774c2c24bbf7b23086264e6b5fa178201450535ec0859739e6f78d",
- "sha256:f4760e1b02173f4155203054f77a5dc0b4078de7645c922b208d28e7eb99f3e2",
- "sha256:f70bec8a14a692be6dbe7ce8aab303e88df891cbd4a39af091f90b6702e28055",
- "sha256:f869e34d2326e417baee430ae998e91412cc8e7fdd83d979277a90a0e79a5b47",
- "sha256:f8b9a7cd381970e64849070aca7c32d53ab7d96c66db6c2ef7aa23c6e803f514",
- "sha256:f99d74ddf9d3b6126b509e81865f89bd1283e3fc1b568b68cd7bd9dfa15583d7",
- "sha256:f9e7e493ded7042712a374471203dd43ae3fff5b81e3de1a0513fa241af9fd41",
- "sha256:fc72ae476732cdb7b2c1acb5af23b478b8a0d4b6fcf19b90dd150291e0d5b26b",
- "sha256:fccbf0cd3411719e4c9426755df90bf3449d9fc5a89f077f4a7f1abd4f70c910",
- "sha256:ffcf18ad3edf1c170e27e88b10282a2c449aa0358659592462448d71b2000cfc"
+ "sha256:015de2ce2af1586ff5dc873e804434185199a15f7d96920ce67e50604592cae9",
+ "sha256:061c3ff1f51ecec256e916cf71cc01f9975af8fb3af9b94d3c0cc8702cfea637",
+ "sha256:08a80cf4884920863623a9ee9a285ee04cef57ebedc1cc87b3e3e0f24c8acfe5",
+ "sha256:09362f86ec201288d5687d1dc476b07bf39c08478cde837cb710b302864e7ec9",
+ "sha256:0bb4f48bd0dd18eebe826395e6a48b7331291078a879295bae4e5d053be50d4c",
+ "sha256:106af1653007cc569d5fbb5f08c6648a49fe4de74c2df814e234e282ebc06957",
+ "sha256:11fdd1192240dda8d6c5d18a06146e9045cb7e3ba7c06de6973000ff035df7c6",
+ "sha256:16a472300bc6c83fe4c2072cc22b3972f90d718d56f241adabc7ae509f53f154",
+ "sha256:176287bb998fd1e9846a9b666e240e58f8d3373e3bf87e7642f15af5405187b8",
+ "sha256:177914f81f66c86c012311f8c7f46887ec375cfcfd2a2f28233a3053ac93a569",
+ "sha256:177c9dd834cdf4dc39c27436ade6fdf9fe81484758885f2d616d5d03c0a83bd2",
+ "sha256:187700668c018a7e76e89424b7c1042f317c8df9161f00c0c903c82b0a8cac5c",
+ "sha256:1d9b5ee46dcb498fa3e46d4dfabcb531e1f2e76b477e0d99ef114f17bbd38453",
+ "sha256:22da15b902f9f8e267020d1c8bcfc4831ca646fecb60254f7bc71763569f56b1",
+ "sha256:24cd91a03543a0f8d09cb18d1cb27df80a84b5553d2bd94cba5979ef6af5c6e7",
+ "sha256:255f1a10ae39b52122cce26ce0781f7a616f502feecce9e616976f6a87992d6b",
+ "sha256:271c360fdc464fe6a75f13ea0c08ddf71a321f4c55fc20a3fe62ea3ef09df7d9",
+ "sha256:2ed83d53a8c5902ec48b90b2ac045e28e1698c0bea9441af9409fc844dc79496",
+ "sha256:2f3e1867dd574014253b4b8f01ba443b9c914e61d45f3674e452a915d6e929a3",
+ "sha256:35fbd23c1c8732cde7a94abe7fb071ec173c2f58c0bd0d7e5b669fdfc80a2c7b",
+ "sha256:37d0c59548ae56fae01c14998918d04ee0d5d3277363c10208eef8c4e2b68ed6",
+ "sha256:39d05e65f23a0fe897b6ac395f2a8d48c56ac0f583f5d663e0afec1da89b95da",
+ "sha256:3ad59efe24a4d54c2742929001f2d02803aafc15d6d781c21379e3f7f66ec842",
+ "sha256:3aed39db2f0ace76faa94f465d4234aac72e2f32b009f15da6492a561b3bbebd",
+ "sha256:3bbac1953c17252f9cc675bb19372444aadf0179b5df575ac4b56faaec9f6294",
+ "sha256:40bc802a696887b14c002edd43c18082cb7b6f9ee8b838239b03b56574d97f71",
+ "sha256:42f712b4668831c0cd85e0a5b5a308700fe068e37dcd24c0062904c4e372b093",
+ "sha256:448a66b8266de0b581246ca7cd6a73b8d98d15100fb7165974535fa3b577340e",
+ "sha256:485301ee56ce87a51ccb182a4b180d852c5cb2b3cb3a82f7d4714b4141119d8c",
+ "sha256:485747ee62da83366a44fbba963c5fe017860ad408ccd6cd99aa66ea80d32b2e",
+ "sha256:4cf0855a842c5b5c391dd32ca273b09e86abf8367572073bd1edfc52bc44446b",
+ "sha256:4eca20917a06d2fca7628ef3c8b94a8c358f6b43f1a621c9815243462dcccf97",
+ "sha256:4ed172d0c79f156c1b954e99c03bc2e3033c17efce8dd1a7c781bc4d5793dfac",
+ "sha256:5267cfda873ad62591b9332fd9472d2409f7cf02a34a9c9cb367e2c0255994bf",
+ "sha256:52b5cbc0469328e58180021138207e6ec91d7ca2e037d3549cc9e34e2187330a",
+ "sha256:53d7a3cd46cdc1689296348cb05ffd4f4280035770aee0c8ead3bbd4d6529acc",
+ "sha256:563646d74a4b4456d0cf3b714ca522e725243c603e8254ad85c3b59b7c0c4bf0",
+ "sha256:570cc326e78ff23dec7f41487aa9c3dffd02e5ee9ab43a8f6ccc3df8f9327623",
+ "sha256:5aca759ada6b1967fcfd4336dcf460d02a8a23e6abe06e90ea7881e5c22c4de6",
+ "sha256:5de11c041486681ce854c814844f4ce3282b6ea1656faae19208ebe09d31c5b8",
+ "sha256:5e271dd97c7bb8eefda5cca38cd0b0373a1fea50f71e8071376b46968582af9b",
+ "sha256:642ed0a209ced4be3a46f8cb094f2d76f1f479e2a1ceca6de6346a096cd3409d",
+ "sha256:6446002739ca29249f0beaaf067fcbc2b5aab4bc7ee8fb941bd194947ce19aff",
+ "sha256:691d50c99a937709ac4c4cd570d959a006bd6a6d970a484c84cc99543d4a5bbb",
+ "sha256:69b857a7d8bd4f5d6e0db4086da8c46309a26e8cefdfc778c0c5cc17d4b11e08",
+ "sha256:6ac3fefb0d168c7c6cab24fdfc80ec62cd2b4dfd9e65b84bdceb1cb01d385c33",
+ "sha256:6c9141af27a4e5819d74d67d227d5047a20fa3c7d4d9df43037a955b4c748ec5",
+ "sha256:7170cbde4070dc3c77dec82abf86f3b210633d4f89550fa0ad2d4b549a05572a",
+ "sha256:763ad59e105fca09705d9f9b29ecffb95ecdc3b0363be3bb56081b2c6de7977a",
+ "sha256:77076bdc8776a2b029e1e6ffbe6d7056e35f56f5e80d9dc0bad26ad4a024a762",
+ "sha256:7cd020b1fb41e3ab7716d4d2c3972d4588fdfbab9bfbbb64acc7078eccef8860",
+ "sha256:821392559d37759caa67d622d0d2994c7a3f2fb29274948ac799d496d92bca73",
+ "sha256:829e91f3a8574888b73e7a3feb3b1af698e717513597e23136ff4eba0bc8387a",
+ "sha256:850c272e0e0d1a5c5d73b1b7871b0a7c2446b304cec55ccdb3eaac0d792bb065",
+ "sha256:87d9b206b1bd7a0523375dc2020a6ce88bca5330682ae2fe25e86fd5d45cea9c",
+ "sha256:8bd01ff4032abaed03f2db702fa9a61078bee37add0bd884a6190b05e63b028c",
+ "sha256:8d54bbdf5d56e2c8cf81a1857250f3ea132de77af543d0ba5dce667183b61fec",
+ "sha256:8efaeb08ede95066da3a3e3c420fcc0a21693fcd0c4396d0585b019613d28515",
+ "sha256:8f94fdd756ba1f79f988855d948ae0bad9ddf44df296770d9a58c774cfbcca72",
+ "sha256:95cde244e7195b2c07ec9b73fa4c5026d4a27233451485caa1cd0c1b55f26dbd",
+ "sha256:975382d9aa90dc59253d6a83a5ca72e07f4ada3ae3d6c0575ced513db322b8ec",
+ "sha256:9dd9d9d9e898b9d30683bdd2b6c1849449158647d1049a125879cb397ee9cd12",
+ "sha256:a019a344312d0b1f429c00d49c3be62fa273d4a1094e1b224f403716b6d03be1",
+ "sha256:a4d9bfda3f84fc563868fe25ca160c8ff0e69bc4443c5647f960d59400ce6557",
+ "sha256:a657250807b6efd19b28f5922520ae002a54cb43c2401e6f3d0230c352564d25",
+ "sha256:a771417c9c06c56c9d53d11a5b084d1de75de82978e23c544270ab25e7c066ff",
+ "sha256:aad6ed9e70ddfb34d849b761fb243be58c735be6a9265b9060d6ddb77751e3e8",
+ "sha256:ae87137951bb3dc08c7d8bfb8988d8c119f3230731b08a71146e84aaa919a7a9",
+ "sha256:af247fd4f12cca4129c1b82090244ea5a9d5bb089e9a82feb5a2f7c6a9fe181d",
+ "sha256:b5d4bdd697195f3876d134101c40c7d06d46c6ab25159ed5cbd44105c715278a",
+ "sha256:b9255e7165083de7c1d605e818025e8860636348f34a79d84ec533546064f07e",
+ "sha256:c22211c165166de6683de8136229721f3d5c8606cc2c3d1562da9a3a5058049c",
+ "sha256:c55f9821f88e8bee4b7a72c82cfb5ecd22b6aad04033334f33c329b29bfa4da0",
+ "sha256:c7aed97f2e676561416c927b063802c8a6285e9b55e1b83213dfd99a8f4f9e48",
+ "sha256:cd2163f42868865597d89399a01aa33b7594ce8e2c4a28503127c81a2f17784e",
+ "sha256:ce5e7504db95b76fc89055c7f41e367eaadef5b1d059e27e1d6eabf2b55ca314",
+ "sha256:cff7351c251c7546407827b6a37bcef6416304fc54d12d44dbfecbb717064717",
+ "sha256:d27aa6bbc1f33be920bb7adbb95581452cdf23005d5611b29a12bb6a3468cc95",
+ "sha256:d3b52a67ac66a3a64a7e710ba629f62d1e26ca0504c29ee8cbd99b97df7079a8",
+ "sha256:de61e424062173b4f70eec07e12469edde7e17fa180019a2a0d75c13a5c5dc57",
+ "sha256:e10e6a1ed2b8661201e79dff5531f8ad4cdd83548a0f81c95cf79b3184b20c33",
+ "sha256:e1a0ffc39f51aa5f5c22114a8f1906b3c17eba68c5babb86c5f77d8b1bba14d1",
+ "sha256:e22491d25f97199fc3581ad8dd8ce198d8c8fdb8dae80dea3512e1ce6d5fa99f",
+ "sha256:e626b864725680cd3904414d72e7b0bd81c0e5b2b53a5b30b4273034253bb41f",
+ "sha256:e8c71ea77536149e36c4c784f6d420ffd20bea041e3ba21ed021cb40ce58e2c9",
+ "sha256:e8d0f0eca087630d58b8c662085529781fd5dc80f0a54eda42d5c9029f812599",
+ "sha256:ea65b59882d5fa8c74a23f8960db579e5e341534934f43f3b18ec1839b893e41",
+ "sha256:ea93163472db26ac6043e8f7f93a05d9b59e0505c760da2a3cd22c7dd7111391",
+ "sha256:eab75a8569a095f2ad470b342f2751d9902f7944704f0571c8af46bede438475",
+ "sha256:ed8313809571a5463fd7db43aaca68ecb43ca7a58f5b23b6e6c6c5d02bdc7882",
+ "sha256:ef5fddfb264e89c435be4adb3953cef5d2936fdeb4463b4161a6ba2f22e7b740",
+ "sha256:ef750a20de1b65657a1425f77c525b0183eac63fe7b8f5ac0dd16f3668d3e64f",
+ "sha256:efb9ece97e696bb56e31166a9dd7919f8f0c6b31967b454718c6509f29ef6fee",
+ "sha256:f4c179a7aeae10ddf44c6bac87938134c1379c49c884529f090f9bf05566c836",
+ "sha256:f602881d80ee4228a2355c68da6b296a296cd22bbb91e5418d54577bbf17fa7c",
+ "sha256:fc2200e79d75b5238c8d69f6a30f8284290c777039d331e7340b6c17cad24a5a",
+ "sha256:fcc1ebb7561a3e24a6588f7c6ded15d80aec22c66a070c757559b57b17ffd1cb"
],
"markers": "python_version >= '3.8'",
- "version": "==0.10.0"
+ "version": "==0.10.3"
},
"six": {
"hashes": [
@@ -867,11 +867,11 @@
},
"traitlets": {
"hashes": [
- "sha256:9e6ec080259b9a5940c797d58b613b5e31441c2257b87c2e795c5228ae80d2d8",
- "sha256:f6cde21a9c68cf756af02035f72d5a723bf607e862e7be33ece505abf4a3bad9"
+ "sha256:417745a96681fbb358e723d5346a547521f36e9bd0d50ba7ab368fff5d67aa54",
+ "sha256:f584ea209240466e66e91f3c81aa7d004ba4cf794990b0c775938a1544217cd1"
],
- "markers": "python_version >= '3.7'",
- "version": "==5.9.0"
+ "markers": "python_version >= '3.8'",
+ "version": "==5.10.0"
},
"wcwidth": {
"hashes": [
diff --git a/ingestion_server/ingestion_server/es_helpers.py b/ingestion_server/ingestion_server/es_helpers.py
index 98a70119b47..5f0e3280794 100644
--- a/ingestion_server/ingestion_server/es_helpers.py
+++ b/ingestion_server/ingestion_server/es_helpers.py
@@ -2,10 +2,9 @@
import time
from typing import NamedTuple
-from aws_requests_auth.aws_auth import AWSRequestsAuth
from decouple import config
from elasticsearch import ConnectionError as EsConnectionError
-from elasticsearch import Elasticsearch, NotFoundError, RequestsHttpConnection
+from elasticsearch import Elasticsearch, NotFoundError
class Stat(NamedTuple):
@@ -45,30 +44,16 @@ def _elasticsearch_connect() -> Elasticsearch:
:return: an Elasticsearch client
"""
- elasticsearch_url = config("ELASTICSEARCH_URL", default="localhost")
- elasticsearch_port = config("ELASTICSEARCH_PORT", default=9200, cast=int)
+ es_scheme = config("ELASTICSEARCH_SCHEME", default="http://")
+ es_url = config("ELASTICSEARCH_URL", default="localhost")
+ es_port = config("ELASTICSEARCH_PORT", default=9200, cast=int)
- # For AWS IAM access to Elasticsearch
- aws_region = config("AWS_REGION", "us-east-1")
- aws_access_key_id = config("AWS_ACCESS_KEY_ID", default="")
- aws_secret_access_key = config("AWS_SECRET_ACCESS_KEY", default="")
+ es_endpoint = f"{es_scheme}{es_url}:{es_port}"
timeout = 12 # hours
- log.info(f"Connecting to {elasticsearch_url}:{elasticsearch_port} with AWS auth")
- auth = AWSRequestsAuth(
- aws_access_key=aws_access_key_id,
- aws_secret_access_key=aws_secret_access_key,
- aws_host=elasticsearch_url,
- aws_region=aws_region,
- aws_service="es",
- )
- auth.encode = lambda x: bytes(x.encode("utf-8"))
es = Elasticsearch(
- host=elasticsearch_url,
- port=elasticsearch_port,
- connection_class=RequestsHttpConnection,
- http_auth=auth,
+ es_endpoint,
timeout=timeout * 3600, # seconds
)
es.info()
diff --git a/ingestion_server/test/integration_test.py b/ingestion_server/test/integration_test.py
index 3c9678143dd..6a71fdcc196 100644
--- a/ingestion_server/test/integration_test.py
+++ b/ingestion_server/test/integration_test.py
@@ -19,7 +19,7 @@
# Uses Bottle because, unlike Falcon, it can be run from within the test suite.
from bottle import Bottle
-from elasticsearch import Elasticsearch, NotFoundError, RequestsHttpConnection
+from elasticsearch import Elasticsearch, NotFoundError
from .gen_integration_compose import gen_integration_compose
from .test_constants import service_ports
@@ -167,7 +167,6 @@ def _load_data(cls, conn, table_names):
f"COPY {table_name} FROM STDIN WITH (FORMAT csv, HEADER true)",
data,
)
- cur.execute(f"REFRESH MATERIALIZED VIEW {table_name}_view")
conn.commit()
cur.close()
@@ -465,16 +464,15 @@ def test_task_count_after_two(self):
self.assertEqual(2, len(res_json), msg)
def _get_es(self):
- return Elasticsearch(
- host="localhost",
- port=service_ports["es"],
- connection_class=RequestsHttpConnection,
- timeout=10,
+ endpoint = f"http://localhost:{service_ports['es']}"
+ es = Elasticsearch(
+ endpoint,
+ request_timeout=10,
max_retries=10,
retry_on_timeout=True,
- http_auth=None,
- wait_for_status="yellow",
)
+ es.cluster.health(wait_for_status="yellow")
+ return es
@pytest.mark.order(after="test_task_count_after_two")
def test_promote_images(self):
diff --git a/ingestion_server/test/mock_schemas/audio_view.sql b/ingestion_server/test/mock_schemas/audio_view.sql
deleted file mode 100644
index fa5e991a903..00000000000
--- a/ingestion_server/test/mock_schemas/audio_view.sql
+++ /dev/null
@@ -1,192 +0,0 @@
---
--- PostgreSQL database dump
---
-
--- Dumped from database version 13.2
--- Dumped by pg_dump version 13.3 (Debian 13.3-1.pgdg100+1)
-
-SET statement_timeout = 0;
-SET lock_timeout = 0;
-SET idle_in_transaction_session_timeout = 0;
-SET client_encoding = 'UTF8';
-SET standard_conforming_strings = on;
-SET check_function_bodies = false;
-SET xmloption = content;
-SET client_min_messages = warning;
-SET row_security = off;
-
-SET default_tablespace = '';
-
-SET default_table_access_method = heap;
-
---
--- Name: audio_view; Type: TABLE; Schema: public; Owner: deploy
---
-
-CREATE TABLE public.audio_view (
- id integer NOT NULL,
- created_on timestamp with time zone NOT NULL,
- updated_on timestamp with time zone NOT NULL,
- identifier uuid NOT NULL,
- foreign_identifier character varying(1000),
- title character varying(2000),
- foreign_landing_url character varying(1000),
- creator character varying(2000),
- creator_url character varying(2000),
- url character varying(1000),
- filesize integer,
- watermarked boolean,
- license character varying(50) NOT NULL,
- license_version character varying(25),
- provider character varying(80),
- source character varying(80),
- last_synced_with_source timestamp with time zone,
- removed_from_source boolean NOT NULL,
- view_count integer,
- tags jsonb,
- meta_data jsonb,
- audio_set_position integer,
- genres character varying(80)[],
- category character varying(80),
- duration integer,
- bit_rate integer,
- sample_rate integer,
- alt_files jsonb,
- thumbnail character varying(1000),
- filetype character varying(80),
- audio_set_foreign_identifier character varying(1000),
- standardized_popularity double precision,
- ingestion_type character varying(1000),
- audio_set jsonb
-);
-
-
-ALTER TABLE public.audio_view OWNER TO deploy;
-
---
--- Name: audio_id_seq; Type: SEQUENCE; Schema: public; Owner: deploy
---
-
-CREATE SEQUENCE public.audio_id_seq
- AS integer
- START WITH 1
- INCREMENT BY 1
- NO MINVALUE
- NO MAXVALUE
- CACHE 1;
-
-
-ALTER TABLE public.audio_id_seq OWNER TO deploy;
-
---
--- Name: audio_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: deploy
---
-
-ALTER SEQUENCE public.audio_id_seq OWNED BY public.audio_view.id;
-
-
---
--- Name: audio_view id; Type: DEFAULT; Schema: public; Owner: deploy
---
-
-ALTER TABLE ONLY public.audio_view ALTER COLUMN id SET DEFAULT nextval('public.audio_id_seq'::regclass);
-
-
---
--- Name: audio_view audio_identifier_key; Type: CONSTRAINT; Schema: public; Owner: deploy
---
-
-ALTER TABLE ONLY public.audio_view
- ADD CONSTRAINT audio_identifier_key UNIQUE (identifier);
-
-
---
--- Name: audio_view audio_pkey; Type: CONSTRAINT; Schema: public; Owner: deploy
---
-
-ALTER TABLE ONLY public.audio_view
- ADD CONSTRAINT audio_pkey PRIMARY KEY (id);
-
-
---
--- Name: audio_view audio_url_key; Type: CONSTRAINT; Schema: public; Owner: deploy
---
-
-ALTER TABLE ONLY public.audio_view
- ADD CONSTRAINT audio_url_key UNIQUE (url);
-
-
---
--- Name: audio_view unique_provider_audio; Type: CONSTRAINT; Schema: public; Owner: deploy
---
-
-ALTER TABLE ONLY public.audio_view
- ADD CONSTRAINT unique_provider_audio UNIQUE (foreign_identifier, provider);
-
-
---
--- Name: audio_category_ceb7d386; Type: INDEX; Schema: public; Owner: deploy
---
-
-CREATE INDEX audio_category_ceb7d386 ON public.audio_view USING btree (category);
-
-
---
--- Name: audio_category_ceb7d386_like; Type: INDEX; Schema: public; Owner: deploy
---
-
-CREATE INDEX audio_category_ceb7d386_like ON public.audio_view USING btree (category varchar_pattern_ops);
-
-
---
--- Name: audio_foreign_identifier_617f66ad; Type: INDEX; Schema: public; Owner: deploy
---
-
-CREATE INDEX audio_foreign_identifier_617f66ad ON public.audio_view USING btree (foreign_identifier);
-
-
---
--- Name: audio_foreign_identifier_617f66ad_like; Type: INDEX; Schema: public; Owner: deploy
---
-
-CREATE INDEX audio_foreign_identifier_617f66ad_like ON public.audio_view USING btree (foreign_identifier varchar_pattern_ops);
-
-
---
--- Name: audio_genres_e34cc474; Type: INDEX; Schema: public; Owner: deploy
---
-
-CREATE INDEX audio_genres_e34cc474 ON public.audio_view USING btree (genres);
-
-
---
--- Name: audio_last_synced_with_source_94c4a383; Type: INDEX; Schema: public; Owner: deploy
---
-
-CREATE INDEX audio_last_synced_with_source_94c4a383 ON public.audio_view USING btree (last_synced_with_source);
-
-
---
--- Name: audio_provider_8fe1eb54; Type: INDEX; Schema: public; Owner: deploy
---
-
-CREATE INDEX audio_provider_8fe1eb54 ON public.audio_view USING btree (provider);
-
-
---
--- Name: audio_provider_8fe1eb54_like; Type: INDEX; Schema: public; Owner: deploy
---
-
-CREATE INDEX audio_provider_8fe1eb54_like ON public.audio_view USING btree (provider varchar_pattern_ops);
-
-
---
--- Name: audio_source_e9ccc813; Type: INDEX; Schema: public; Owner: deploy
---
-
-CREATE INDEX audio_source_e9ccc813 ON public.audio_view USING btree (source);
-
-
---
--- PostgreSQL database dump complete
---
diff --git a/ingestion_server/test/mock_schemas/image_view.sql b/ingestion_server/test/mock_schemas/image_view.sql
deleted file mode 100644
index 6d94493b81a..00000000000
--- a/ingestion_server/test/mock_schemas/image_view.sql
+++ /dev/null
@@ -1,178 +0,0 @@
---
--- PostgreSQL database dump
---
-
--- Dumped from database version 13.2
--- Dumped by pg_dump version 13.3 (Debian 13.3-1.pgdg100+1)
-
-SET statement_timeout = 0;
-SET lock_timeout = 0;
-SET idle_in_transaction_session_timeout = 0;
-SET client_encoding = 'UTF8';
-SET standard_conforming_strings = on;
-SET check_function_bodies = false;
-SET xmloption = content;
-SET client_min_messages = warning;
-SET row_security = off;
-
-SET default_tablespace = '';
-
-SET default_table_access_method = heap;
-
---
--- Name: image_view; Type: TABLE; Schema: public; Owner: deploy
---
-
-CREATE TABLE public.image_view (
- id integer NOT NULL,
- created_on timestamp with time zone NOT NULL,
- updated_on timestamp with time zone NOT NULL,
- identifier uuid NOT NULL,
- provider character varying(80),
- source character varying(80),
- foreign_identifier character varying(1000),
- foreign_landing_url character varying(1000),
- url character varying(1000),
- thumbnail character varying(1000),
- width integer,
- height integer,
- filesize integer,
- license character varying(50) NOT NULL,
- license_version character varying(25),
- creator character varying(2000),
- creator_url character varying(2000),
- title character varying(2000),
- last_synced_with_source timestamp with time zone,
- removed_from_source boolean NOT NULL,
- meta_data jsonb,
- view_count integer DEFAULT 0,
- tags jsonb,
- watermarked boolean,
- filetype character varying(80),
- standardized_popularity double precision,
- ingestion_type character varying(1000)
-);
-
-
-ALTER TABLE public.image_view OWNER TO deploy;
-
---
--- Name: image_id_seq; Type: SEQUENCE; Schema: public; Owner: deploy
---
-
-CREATE SEQUENCE public.image_id_seq
- AS integer
- START WITH 1
- INCREMENT BY 1
- NO MINVALUE
- NO MAXVALUE
- CACHE 1;
-
-
-ALTER TABLE public.image_id_seq OWNER TO deploy;
-
---
--- Name: image_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: deploy
---
-
-ALTER SEQUENCE public.image_id_seq OWNED BY public.image_view.id;
-
-
---
--- Name: image_view id; Type: DEFAULT; Schema: public; Owner: deploy
---
-
-ALTER TABLE ONLY public.image_view ALTER COLUMN id SET DEFAULT nextval('public.image_id_seq'::regclass);
-
-
---
--- Name: image_view image_identifier_key; Type: CONSTRAINT; Schema: public; Owner: deploy
---
-
-ALTER TABLE ONLY public.image_view
- ADD CONSTRAINT image_identifier_key UNIQUE (identifier);
-
-
---
--- Name: image_view image_pkey; Type: CONSTRAINT; Schema: public; Owner: deploy
---
-
-ALTER TABLE ONLY public.image_view
- ADD CONSTRAINT image_pkey PRIMARY KEY (id);
-
-
---
--- Name: image_view image_url_key; Type: CONSTRAINT; Schema: public; Owner: deploy
---
-
-ALTER TABLE ONLY public.image_view
- ADD CONSTRAINT image_url_key UNIQUE (url);
-
-
---
--- Name: image_view unique_provider_image; Type: CONSTRAINT; Schema: public; Owner: deploy
---
-
-ALTER TABLE ONLY public.image_view
- ADD CONSTRAINT unique_provider_image UNIQUE (foreign_identifier, provider);
-
-
---
--- Name: image_foreign_identifier_4c72d3ee; Type: INDEX; Schema: public; Owner: deploy
---
-
-CREATE INDEX image_foreign_identifier_4c72d3ee ON public.image_view USING btree (foreign_identifier);
-
-
---
--- Name: image_foreign_identifier_4c72d3ee_like; Type: INDEX; Schema: public; Owner: deploy
---
-
-CREATE INDEX image_foreign_identifier_4c72d3ee_like ON public.image_view USING btree (foreign_identifier varchar_pattern_ops);
-
-
---
--- Name: image_last_synced_with_source_187adf09; Type: INDEX; Schema: public; Owner: deploy
---
-
-CREATE INDEX image_last_synced_with_source_187adf09 ON public.image_view USING btree (last_synced_with_source);
-
-
---
--- Name: image_provider_7d11f847; Type: INDEX; Schema: public; Owner: deploy
---
-
-CREATE INDEX image_provider_7d11f847 ON public.image_view USING btree (provider);
-
-
---
--- Name: image_provider_7d11f847_like; Type: INDEX; Schema: public; Owner: deploy
---
-
-CREATE INDEX image_provider_7d11f847_like ON public.image_view USING btree (provider varchar_pattern_ops);
-
-
---
--- Name: image_source_d5a89e97; Type: INDEX; Schema: public; Owner: deploy
---
-
-CREATE INDEX image_source_d5a89e97 ON public.image_view USING btree (source);
-
-
---
--- Name: image_source_d5a89e97_like; Type: INDEX; Schema: public; Owner: deploy
---
-
-CREATE INDEX image_source_d5a89e97_like ON public.image_view USING btree (source varchar_pattern_ops);
-
-
---
--- Name: image_url_c6aabda2_like; Type: INDEX; Schema: public; Owner: deploy
---
-
-CREATE INDEX image_url_c6aabda2_like ON public.image_view USING btree (url varchar_pattern_ops);
-
-
---
--- PostgreSQL database dump complete
---
diff --git a/load_sample_data.sh b/load_sample_data.sh
index 344b3f33ab1..6dc53712f00 100755
--- a/load_sample_data.sh
+++ b/load_sample_data.sh
@@ -28,7 +28,6 @@ function load_sample_data {
\copy $1 \
from './sample_data/sample_$1.csv' \
with (FORMAT csv, HEADER true);
- REFRESH MATERIALIZED VIEW $1_view;
EOF"
}
diff --git a/packages/eslint-plugin/src/configs/import.ts b/packages/eslint-plugin/src/configs/import.ts
index 4bbcc90d0e1..bcab2723100 100644
--- a/packages/eslint-plugin/src/configs/import.ts
+++ b/packages/eslint-plugin/src/configs/import.ts
@@ -4,9 +4,14 @@ import type { TSESLint } from "@typescript-eslint/utils"
* ESLint `import` plugin configuration.
*/
export = {
- extends: ["plugin:import/recommended"],
+ extends: ["plugin:import/recommended", "plugin:import/typescript"],
plugins: ["import"],
rules: {
+ // `namespace` and `default` are handled by TypeScript
+ // There's no need to rely on ESLint for this
+ // https://github.com/import-js/eslint-plugin-import/issues/2878
+ "import/namespace": "off",
+ "import/default": "off",
"import/newline-after-import": ["error"],
"import/order": [
"error",
@@ -65,6 +70,27 @@ export = {
"import/extensions": ["error", "always", { js: "never", ts: "never" }],
},
overrides: [
+ {
+ files: ["frontend/**"],
+ settings: {
+ "import/resolver": {
+ typescript: {
+ project: "frontend/tsconfig.json",
+ extensions: [".js", ".ts", ".vue", ".png"],
+ },
+ },
+ },
+ },
+ {
+ files: ["packages/**"],
+ settings: {
+ "import/resolver": {
+ typescript: {
+ project: "packages/*/tsconfig.json",
+ },
+ },
+ },
+ },
{
files: ["frontend/.storybook/**"],
rules: {
diff --git a/packages/eslint-plugin/src/configs/index.ts b/packages/eslint-plugin/src/configs/index.ts
index 5ae7da0abd7..13363b2e92a 100644
--- a/packages/eslint-plugin/src/configs/index.ts
+++ b/packages/eslint-plugin/src/configs/index.ts
@@ -12,20 +12,17 @@ export const project: TSESLint.Linter.Config = {
node: true,
},
parser: "vue-eslint-parser",
- parserOptions: {
- parser: "@typescript-eslint/parser",
- },
extends: [
"eslint:recommended",
- "plugin:@typescript-eslint/recommended",
"plugin:eslint-comments/recommended",
"plugin:jsonc/recommended-with-jsonc",
require.resolve("./custom"),
require.resolve("./vue"),
require.resolve("./import"),
+ require.resolve("./typescript"),
"prettier",
],
- plugins: ["@typescript-eslint", "tsdoc", "unicorn"],
+ plugins: ["unicorn"],
settings: {
"vue-i18n": {
localeDir: "./frontend/src/locales/*.{json}",
@@ -36,40 +33,12 @@ export const project: TSESLint.Linter.Config = {
semi: ["error", "never"],
"no-console": "off",
"unicorn/filename-case": ["error", { case: "kebabCase" }],
- "@typescript-eslint/no-var-requires": ["off"],
},
overrides: [
- {
- files: ["*.ts"],
- rules: {
- "tsdoc/syntax": "error",
- },
- },
{
files: ["*.json", "*.json5", "*.jsonc"],
parser: "jsonc-eslint-parser",
},
- {
- files: ["frontend/**"],
- settings: {
- "import/resolver": {
- typescript: {
- project: "frontend/tsconfig.json",
- extensions: [".js", ".ts", ".vue", ".png"],
- },
- },
- },
- },
- {
- files: ["packages/**"],
- settings: {
- "import/resolver": {
- typescript: {
- project: "packages/*/tsconfig.json",
- },
- },
- },
- },
{
env: { jest: true },
files: ["packages/**/*/test", "frontend/test/unit/**"],
@@ -128,7 +97,6 @@ export const project: TSESLint.Linter.Config = {
"unicorn/filename-case": "off",
},
},
-
{
files: ["frontend/src/components/**"],
rules: {
diff --git a/packages/eslint-plugin/src/configs/typescript.ts b/packages/eslint-plugin/src/configs/typescript.ts
new file mode 100644
index 00000000000..85b6be75cce
--- /dev/null
+++ b/packages/eslint-plugin/src/configs/typescript.ts
@@ -0,0 +1,24 @@
+import type { TSESLint } from "@typescript-eslint/utils"
+
+export = {
+ parserOptions: {
+ parser: "@typescript-eslint/parser",
+ },
+ plugins: ["@typescript-eslint", "tsdoc"],
+ extends: ["plugin:@typescript-eslint/recommended"],
+ rules: {
+ "@typescript-eslint/no-var-requires": ["off"],
+ },
+ overrides: [
+ {
+ files: ["*.ts"],
+ rules: {
+ "tsdoc/syntax": "error",
+ // This rule is disabled above to avoid forcing ESM syntax on regular JS files
+ // that aren't ready for it yet. We do want to enforce this for TypeScript,
+ // however, so we re-enable it here.
+ "@typescript-eslint/no-var-requires": ["error"],
+ },
+ },
+ ],
+} satisfies TSESLint.Linter.Config
diff --git a/packages/eslint-plugin/src/rules/no-unexplained-disabled-test.ts b/packages/eslint-plugin/src/rules/no-unexplained-disabled-test.ts
index 91242eaca93..bb76f56d84a 100644
--- a/packages/eslint-plugin/src/rules/no-unexplained-disabled-test.ts
+++ b/packages/eslint-plugin/src/rules/no-unexplained-disabled-test.ts
@@ -25,9 +25,7 @@ export const noUnexplainedDisabledTest = OpenverseRule<[], MessageIds>({
create(context) {
const sourceCode = context.getSourceCode()
- const hasIssueCommentWithLink = (
- node: TSESTree.Node | TSESTree.Comment
- ) => {
+ const hasIssueCommentWithLink = (node: TSESTree.Node) => {
const commentsBeforeNode = sourceCode.getCommentsBefore(node)
for (const comment of commentsBeforeNode) {
if (/\bhttps:\/\/github\.com\/.*?\/issues\/\d+\b/.test(comment.value)) {
@@ -38,14 +36,14 @@ export const noUnexplainedDisabledTest = OpenverseRule<[], MessageIds>({
return false
}
- const testSkipRegex = /test\.skip\s*\(/g
- const testSkipEachRegex = /test\.skip\.each\s*\(/g
- const testConcurrentSkipEachRegex = /test\.concurrent\.skip\.each\s*\(/g
- const testTodoRegex = /test\.todo\s*\(/g
- const itSkipRegex = /it\.skip\s*\(/g
- const itEachSkipRegex = /it\.each\.skip\s*\(/g
- const describeSkipRegex = /describe\.skip\s*\(/g
- const describeEachSkipRegex = /describe\.each\.skip\s*\(/g
+ const testSkipRegex = /^test\.skip\s*\(/g
+ const testSkipEachRegex = /^test\.skip\.each\s*\(/g
+ const testConcurrentSkipEachRegex = /^test\.concurrent\.skip\.each\s*\(/g
+ const testTodoRegex = /^test\.todo\s*\(/g
+ const itSkipRegex = /^it\.skip\s*\(/g
+ const itEachSkipRegex = /^it\.each\.skip\s*\(/g
+ const describeSkipRegex = /^describe\.skip\s*\(/g
+ const describeEachSkipRegex = /^describe\.each\.skip\s*\(/g
return {
CallExpression(node) {
diff --git a/packages/eslint-plugin/test/rules/no-unexplained-disabled-test.spec.ts b/packages/eslint-plugin/test/rules/no-unexplained-disabled-test.spec.ts
index be0e44e6d19..9eb484d17ca 100644
--- a/packages/eslint-plugin/test/rules/no-unexplained-disabled-test.spec.ts
+++ b/packages/eslint-plugin/test/rules/no-unexplained-disabled-test.spec.ts
@@ -50,6 +50,40 @@ const invalidTestCases = [
`,
errors: [{ messageId: "missingIssueComment" } as const],
},
+ {
+ name: "Nested blocks with multiple skipped tests shows multiple errors",
+ code: `
+ describe("block", () => {
+ test("no skipped", () => {})
+
+ test.skip("first skipped", () => {})
+
+ test("also not skipped", () => {})
+
+ test.skip("second skipped", () => {})
+ })
+ `,
+ errors: [
+ { messageId: "missingIssueComment" },
+ { messageId: "missingIssueComment" },
+ ] as const,
+ },
+ {
+ name: "Skipped external block and skipped nested block have separate errors",
+ code: `
+ test.skip("external skip", () => {})
+
+ describe("block", () => {
+ test("not skipped", () => {})
+
+ test.skip("nested skip", () => {})
+ })
+ `,
+ errors: [
+ { messageId: "missingIssueComment" },
+ { messageId: "missingIssueComment" },
+ ] as const,
+ },
]
const validTestCases = [
@@ -114,6 +148,29 @@ const validTestCases = [
})
`,
},
+ {
+ name: "Nested skip valid with comment on skipped test",
+ code: `
+ describe("group of tests", () => {
+ // https://github.com/WordPress/openverse/issues/2573
+ test.skip("skipped", () => {})
+ })
+ `,
+ },
+ {
+ name: "Nested and external blocks do not error",
+ code: `
+ // https://github.com/WordPress/openverse/issues/2573
+ test.skip("external skip", () => {})
+
+ describe("block", () => {
+ test("not skipped", () => {})
+
+ // https://github.com/WordPress/openverse/issues/2573
+ test.skip("nested skip", () => {})
+ })
+ `,
+ },
]
// Run the tests
diff --git a/tsconfig.base.json b/tsconfig.base.json
index 3b70618c123..cc5c9d24ff1 100644
--- a/tsconfig.base.json
+++ b/tsconfig.base.json
@@ -10,12 +10,18 @@
"esModuleInterop": true,
/* Strict Type-Checking Options */
"strict": true,
- "noUnusedLocals": true,
- "noUnusedParameters": true,
"noImplicitReturns": true,
"noFallthroughCasesInSwitch": true,
"paths": {
"@openverse/*": ["./packages/*/src"]
- }
+ },
+
+ /**
+ * Disable these in favour of more flexible ESLint rule.
+ *
+ * https://typescript-eslint.io/rules/no-unused-vars/#benefits-over-typescript
+ */
+ "noUnusedLocals": false,
+ "noUnusedParameters": false
}
}