fix: better extraction for youtube thumbnails. #2204

This commit is contained in:
Mohamed Bassem
2025-12-07 11:43:14 +00:00
parent cf2a12c804
commit e3cc546363
3 changed files with 242 additions and 19 deletions

View File

@@ -41,6 +41,7 @@
"metascraper-title": "^5.49.5",
"metascraper-twitter": "^5.45.6",
"metascraper-url": "^5.49.5",
"metascraper-youtube": "^5.49.7",
"node-cron": "^3.0.3",
"node-fetch": "^3.3.2",
"pdf2json": "^3.1.5",

View File

@@ -26,6 +26,7 @@ import metascraperPublisher from "metascraper-publisher";
import metascraperTitle from "metascraper-title";
import metascraperTwitter from "metascraper-twitter";
import metascraperUrl from "metascraper-url";
import metascraperYoutube from "metascraper-youtube";
import { crawlerStatusCodeCounter, workerStatsCounter } from "metrics";
import {
fetchWithProxy,
@@ -125,6 +126,18 @@ const metascraperParser = metascraper([
datePublished: true,
}),
metascraperAmazon(),
metascraperYoutube({
gotOpts: {
agent: {
http: serverConfig.proxy.httpProxy
? new HttpProxyAgent(getRandomProxy(serverConfig.proxy.httpProxy))
: undefined,
https: serverConfig.proxy.httpsProxy
? new HttpsProxyAgent(getRandomProxy(serverConfig.proxy.httpsProxy))
: undefined,
},
},
}),
metascraperReddit(),
metascraperAuthor(),
metascraperPublisher(),

247
pnpm-lock.yaml generated
View File

@@ -780,7 +780,7 @@ importers:
version: 4.3.2(typescript@5.9.3)(vite@7.0.6(@types/node@22.15.30)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.1)(terser@5.41.0)(tsx@4.20.3)(yaml@2.8.0))
vitest:
specifier: ^3.2.4
version: 3.2.4(@types/debug@4.1.12)(@types/node@22.15.30)(happy-dom@20.0.8)(jiti@2.4.2)(jsdom@27.0.1(postcss@8.5.4))(lightningcss@1.30.1)(sass@1.89.1)(terser@5.41.0)(tsx@4.20.3)(yaml@2.8.0)
version: 3.2.4(@types/debug@4.1.12)(@types/node@22.15.30)(happy-dom@20.0.8)(jiti@2.4.2)(jsdom@27.2.0(postcss@8.5.4))(lightningcss@1.30.1)(sass@1.89.1)(terser@5.41.0)(tsx@4.20.3)(yaml@2.8.0)
apps/workers:
dependencies:
@@ -892,6 +892,9 @@ importers:
metascraper-url:
specifier: ^5.49.5
version: 5.49.5(postcss@8.5.6)
metascraper-youtube:
specifier: ^5.49.7
version: 5.49.7(postcss@8.5.6)
node-cron:
specifier: ^3.0.3
version: 3.0.3
@@ -1059,7 +1062,7 @@ importers:
version: 4.3.2(typescript@5.9.3)(vite@7.0.6(@types/node@22.15.30)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.1)(terser@5.41.0)(tsx@4.20.3)(yaml@2.8.0))
vitest:
specifier: ^3.2.4
version: 3.2.4(@types/debug@4.1.12)(@types/node@22.15.30)(happy-dom@20.0.8)(jiti@2.4.2)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.1)(sass@1.89.1)(terser@5.41.0)(tsx@4.20.3)(yaml@2.8.0)
version: 3.2.4(@types/debug@4.1.12)(@types/node@22.15.30)(happy-dom@20.0.8)(jiti@2.4.2)(jsdom@27.2.0(postcss@8.5.6))(lightningcss@1.30.1)(sass@1.89.1)(terser@5.41.0)(tsx@4.20.3)(yaml@2.8.0)
packages/benchmarks:
dependencies:
@@ -1185,7 +1188,7 @@ importers:
version: 4.3.2(typescript@5.9.3)(vite@7.0.6(@types/node@22.15.30)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.1)(terser@5.41.0)(tsx@4.20.3)(yaml@2.8.0))
vitest:
specifier: ^3.2.4
version: 3.2.4(@types/debug@4.1.12)(@types/node@22.15.30)(happy-dom@20.0.8)(jiti@2.4.2)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.1)(sass@1.89.1)(terser@5.41.0)(tsx@4.20.3)(yaml@2.8.0)
version: 3.2.4(@types/debug@4.1.12)(@types/node@22.15.30)(happy-dom@20.0.8)(jiti@2.4.2)(jsdom@27.2.0(postcss@8.5.6))(lightningcss@1.30.1)(sass@1.89.1)(terser@5.41.0)(tsx@4.20.3)(yaml@2.8.0)
packages/open-api:
dependencies:
@@ -1238,7 +1241,7 @@ importers:
version: 4.3.2(typescript@5.9.3)(vite@7.0.6(@types/node@22.15.30)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.1)(terser@5.41.0)(tsx@4.20.3)(yaml@2.8.0))
vitest:
specifier: ^3.2.4
version: 3.2.4(@types/debug@4.1.12)(@types/node@22.15.30)(happy-dom@20.0.8)(jiti@2.4.2)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.1)(sass@1.89.1)(terser@5.41.0)(tsx@4.20.3)(yaml@2.8.0)
version: 3.2.4(@types/debug@4.1.12)(@types/node@22.15.30)(happy-dom@20.0.8)(jiti@2.4.2)(jsdom@27.2.0(postcss@8.5.6))(lightningcss@1.30.1)(sass@1.89.1)(terser@5.41.0)(tsx@4.20.3)(yaml@2.8.0)
packages/sdk:
dependencies:
@@ -1321,7 +1324,7 @@ importers:
version: 4.3.2(typescript@5.9.3)(vite@7.0.6(@types/node@22.15.30)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.1)(terser@5.41.0)(tsx@4.20.3)(yaml@2.8.0))
vitest:
specifier: ^3.2.4
version: 3.2.4(@types/debug@4.1.12)(@types/node@22.15.30)(happy-dom@20.0.8)(jiti@2.4.2)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.1)(sass@1.89.1)(terser@5.41.0)(tsx@4.20.3)(yaml@2.8.0)
version: 3.2.4(@types/debug@4.1.12)(@types/node@22.15.30)(happy-dom@20.0.8)(jiti@2.4.2)(jsdom@27.2.0(postcss@8.5.6))(lightningcss@1.30.1)(sass@1.89.1)(terser@5.41.0)(tsx@4.20.3)(yaml@2.8.0)
packages/shared-react:
dependencies:
@@ -1438,7 +1441,7 @@ importers:
version: 4.3.2(typescript@5.9.3)(vite@7.0.6(@types/node@22.15.30)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.1)(terser@5.41.0)(tsx@4.20.3)(yaml@2.8.0))
vitest:
specifier: ^3.2.4
version: 3.2.4(@types/debug@4.1.12)(@types/node@22.15.30)(happy-dom@20.0.8)(jiti@2.4.2)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.1)(sass@1.89.1)(terser@5.41.0)(tsx@4.20.3)(yaml@2.8.0)
version: 3.2.4(@types/debug@4.1.12)(@types/node@22.15.30)(happy-dom@20.0.8)(jiti@2.4.2)(jsdom@27.2.0(postcss@8.5.6))(lightningcss@1.30.1)(sass@1.89.1)(terser@5.41.0)(tsx@4.20.3)(yaml@2.8.0)
tooling/github: {}
@@ -1510,6 +1513,9 @@ packages:
graphql:
optional: true
'@acemir/cssom@0.9.27':
resolution: {integrity: sha512-Ja8SQ/4mec5WZABC1F9XB1juJlkdHVZ4F1dftBmXagtZnbmspW+tuzd4bo35eRrc48iAEtk1yTUzBveOsa/MZA==}
'@algolia/autocomplete-core@1.17.9':
resolution: {integrity: sha512-O7BxrpLDPJWWHv/DLA9DRFWs+iY1uOJZkqUwjS5HSZAGcl0hIVCQ97LTLewiZmZ402JYUrun+8NqFP+hCknlbQ==}
@@ -1612,6 +1618,9 @@ packages:
'@asamuzakjp/dom-selector@6.7.3':
resolution: {integrity: sha512-kiGFeY+Hxf5KbPpjRLf+ffWbkos1aGo8MBfd91oxS3O57RgU3XhZrt/6UzoVF9VMpWbC3v87SRc9jxGrc9qHtQ==}
'@asamuzakjp/dom-selector@6.7.6':
resolution: {integrity: sha512-hBaJER6A9MpdG3WgdlOolHmbOYvSk46y7IQN/1+iqiCuUu6iWdQrs9DGKF8ocqsEqWujWf/V7b7vaDgiUmIvUg==}
'@asamuzakjp/nwsapi@2.3.9':
resolution: {integrity: sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==}
@@ -4001,6 +4010,10 @@ packages:
resolution: {integrity: sha512-VbXquXB+U9g84XaazoTHF3MMVqnxBDnEAUfnpRnj7w2GV4imlqxjLgWlfixWtkcuR859mUEszniuxJ/L0NBXyw==}
engines: {node: '>= 16'}
'@metascraper/helpers@5.49.7':
resolution: {integrity: sha512-WNEv8QfeG7zwcagcc+vdn2dFkR1Uq1BfqJZhoJQgrJQnxQzqtzEDTQOH7JwEb2unThOEYDoHfA1gS7RpKp+tcQ==}
engines: {node: '>= 16'}
'@microsoft/api-extractor-model@7.30.6':
resolution: {integrity: sha512-znmFn69wf/AIrwHya3fxX6uB5etSIn6vg4Q4RB/tb5VDDs1rqREc+AvMC/p19MUN13CZ7+V/8pkYPTj7q8tftg==}
@@ -7442,6 +7455,10 @@ packages:
resolution: {integrity: sha512-g5PC9Aiph9eiczFpcgUhd9S4UUO3F+LHGRIi5NUMZ+4xtoIYbHNZwZnWA2JsFGe8OU8nl4WyaEFiZuGuxlutJQ==}
engines: {node: '>=20'}
cssstyle@5.3.3:
resolution: {integrity: sha512-OytmFH+13/QXONJcC75QNdMtKpceNk3u8ThBjyyYjkEcy/ekBwR1mMAuNvi3gdBPW3N5TlCzQ0WZw8H0lN/bDw==}
engines: {node: '>=20'}
csstype@3.1.3:
resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
@@ -7518,6 +7535,10 @@ packages:
resolution: {integrity: sha512-j1/FM2sMIG43aVNRe4PZ4h1BgwHeNaU9Eoi3uSmHbc+oZ1bMNu0yVIcAV93/dfiBSfvD9BAKKmyBlb2Y2I5TjA==}
engines: {node: '>= 8'}
debug-logfmt@1.4.7:
resolution: {integrity: sha512-NzGmPp2Fru8KerWcg4zfiPCC1rspLUPqfH5Duz/ZF49CqO97odSx7eFjBNiOQzNQYfvpEEPrxNjyA436lITQkQ==}
engines: {node: '>= 8'}
debug@2.6.9:
resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
peerDependencies:
@@ -8846,6 +8867,10 @@ packages:
get-tsconfig@4.10.1:
resolution: {integrity: sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==}
get-video-id@3.7.0:
resolution: {integrity: sha512-hU5pnODTo87slfs9MUFO3vpJr23AESJHmF20T3ivqQJZ/Wz0W5TxjSrGoyB6X538Shyi6tCCpQSeBoV88F9NYA==}
engines: {node: '>=10'}
getenv@2.0.0:
resolution: {integrity: sha512-VilgtJj/ALgGY77fiLam5iD336eSWi96Q15JSAG1zi8NRBysm3LXKdGnHb4m5cuyxvOLQQKWpBZAT6ni4FI2iQ==}
engines: {node: '>=6'}
@@ -9600,6 +9625,10 @@ packages:
resolution: {integrity: sha512-nWru1N9pHfvN/NWpHpOeUdG1l+0FG4umK0ikZD8wZYpeGmcK45EsxZ34WWPyIeKAH++rxvlCNIIY5V3My2FE6w==}
engines: {node: '>= 4'}
is-uri@1.2.12:
resolution: {integrity: sha512-dsdV/MQ1enO8kwkPSJcB2TsTNR0GbQI7s2wgx1XQFu6akGJmS/Qo1xjdSmyuivVelltgWC4UyNjAJ7cCaBwY6w==}
engines: {node: '>= 4'}
is-uri@1.2.7:
resolution: {integrity: sha512-drze7nnbh2ZTHU0InyskqNcyCRH7G6SpC/2F3yFXTa38IL+aeUmYvz/9TRfR1Z4tuMzFGos1tolX8QJmgKEiqA==}
engines: {node: '>= 4'}
@@ -9801,6 +9830,15 @@ packages:
canvas:
optional: true
jsdom@27.2.0:
resolution: {integrity: sha512-454TI39PeRDW1LgpyLPyURtB4Zx1tklSr6+OFOipsxGUH1WMTvk6C65JQdrj455+DP2uJ1+veBEHTGFKWVLFoA==}
engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0}
peerDependencies:
canvas: ^3.0.0
peerDependenciesMeta:
canvas:
optional: true
jsesc@3.0.2:
resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==}
engines: {node: '>=6'}
@@ -10173,6 +10211,10 @@ packages:
resolution: {integrity: sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==}
engines: {node: 20 || >=22}
lru-cache@11.2.4:
resolution: {integrity: sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==}
engines: {node: 20 || >=22}
lru-cache@5.1.1:
resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
@@ -10439,6 +10481,10 @@ packages:
resolution: {integrity: sha512-0QHMRJCfuU9F7nZDCMf/171WJhk6l1fnQswgaLszchEn/Qg+0K7D0oFj/oPLrQXUxMpt0ViOvfZXMbJl1ObGSw==}
engines: {node: '>= 16'}
metascraper-youtube@5.49.7:
resolution: {integrity: sha512-ZrOfR50LcWInaFA6Mc6oIKyCgsRWIbKpJMYeFPmC/HnU9LaV1N9bmLgbxMonh3TtmH+zEdpHSIJkTBjVD1JASQ==}
engines: {node: '>= 16'}
metascraper@5.49.5:
resolution: {integrity: sha512-AbGZ2wQkFxacsl2U01E/c3blWeOceYxnl00QQg9dtZqrnAXjgm/xSxWb4yI3yq3AjDLDsy+7y/fH46VNRhWSkg==}
engines: {node: '>= 16'}
@@ -10893,6 +10939,9 @@ packages:
nan@2.22.2:
resolution: {integrity: sha512-DANghxFkS1plDdRsX0X9pm0Z6SJNN6gBdtXfanwoZ8hooC5gosGFSBGRYHUVPz1asKA/kMRqDRdHrluZ61SpBQ==}
nan@2.24.0:
resolution: {integrity: sha512-Vpf9qnVW1RaDkoNKFUvfxqAbtI8ncb8OJlqZ9wwpXzWPEsvsB1nvdUi6oYrHIkQ1Y/tMDnr1h4nczS0VB9Xykg==}
nanoid@3.3.11:
resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
@@ -11039,6 +11088,11 @@ packages:
engines: {node: ^18.17.0 || >=20.5.0}
hasBin: true
node-gyp@11.5.0:
resolution: {integrity: sha512-ra7Kvlhxn5V9Slyus0ygMa2h+UqExPqUIkfk7Pc8QTLT956JLSy51uWFwHtIYy0vI8cB4BDhc/S03+880My/LQ==}
engines: {node: ^18.17.0 || >=20.5.0}
hasBin: true
node-int64@0.4.0:
resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==}
@@ -12370,6 +12424,9 @@ packages:
re2@1.22.1:
resolution: {integrity: sha512-E4J0EtgyNLdIr0wTg0dQPefuiqNY29KaLacytiUAYYRzxCG+zOkWoUygt1rI+TA1LrhN49/njrfSO1DHtVC5Vw==}
re2@1.22.3:
resolution: {integrity: sha512-002aE82U91DiaUA16U6vbiJusvPXn1OWiQukOxJkVUTXbzrSuQbFNHYKcGw8QK/uifRCfjl2Hd/vXYDanKkmaQ==}
reachable-url@1.8.3:
resolution: {integrity: sha512-qQnVOlFlTHBgFmOC5siHh17fcR9Zu7eNIBO95bJw3+Ln90raTY45h5mmHVmkKsukbA5z6ds/Me631VuQKAf2cw==}
engines: {node: '>=8'}
@@ -13923,6 +13980,9 @@ packages:
tldts-core@7.0.17:
resolution: {integrity: sha512-DieYoGrP78PWKsrXr8MZwtQ7GLCUeLxihtjC1jZsW1DnvSMdKPitJSe8OSYDM2u5H6g3kWJZpePqkp43TfLh0g==}
tldts-core@7.0.19:
resolution: {integrity: sha512-lJX2dEWx0SGH4O6p+7FPwYmJ/bu1JbcGJ8RLaG9b7liIgZ85itUVEPbMtWRVrde/0fnDPEPHW10ZsKW3kVsE9A==}
tldts-core@7.0.8:
resolution: {integrity: sha512-Ze39mm8EtocSXPbH6cv5rDeBBhehp8OLxWJKZXLEyv2dKMlblJsoAw2gmA0ZaU6iOwNlCZ4LrmaTW1reUQEmJw==}
@@ -13937,6 +13997,10 @@ packages:
resolution: {integrity: sha512-Y1KQBgDd/NUc+LfOtKS6mNsC9CCaH+m2P1RoIZy7RAPo3C3/t8X45+zgut31cRZtZ3xKPjfn3TkGTrctC2TQIQ==}
hasBin: true
tldts@7.0.19:
resolution: {integrity: sha512-8PWx8tvC4jDB39BQw1m4x8y5MH1BcQ5xHeL2n7UVFulMPH/3Q0uiamahFJ3lXA0zO2SUyRXuVVbWSDmstlt9YA==}
hasBin: true
tldts@7.0.8:
resolution: {integrity: sha512-TlGAxavO97fYecdBgnLPoTJtY8MOgpowI/qwIz9HhLjETMQOUjQr6BRQE6WazumppjsgGg4eaVZuMNv4vY5nwQ==}
hasBin: true
@@ -15015,6 +15079,8 @@ snapshots:
'@0no-co/graphql.web@1.1.2': {}
'@acemir/cssom@0.9.27': {}
'@algolia/autocomplete-core@1.17.9(@algolia/client-search@5.27.0)(algoliasearch@5.27.0)(search-insights@2.17.3)':
dependencies:
'@algolia/autocomplete-plugin-algolia-insights': 1.17.9(@algolia/client-search@5.27.0)(algoliasearch@5.27.0)(search-insights@2.17.3)
@@ -15166,6 +15232,14 @@ snapshots:
is-potential-custom-element-name: 1.0.1
lru-cache: 11.2.2
'@asamuzakjp/dom-selector@6.7.6':
dependencies:
'@asamuzakjp/nwsapi': 2.3.9
bidi-js: 1.0.3
css-tree: 3.1.0
is-potential-custom-element-name: 1.0.1
lru-cache: 11.2.4
'@asamuzakjp/nwsapi@2.3.9': {}
'@asteasolutions/zod-to-openapi@7.3.3(zod@3.24.2)':
@@ -19100,6 +19174,39 @@ snapshots:
- supports-color
- utf-8-validate
'@metascraper/helpers@5.49.7(postcss@8.5.6)':
dependencies:
audio-extensions: 0.0.0
chrono-node: 2.9.0
condense-whitespace: 2.0.0
data-uri-utils: 1.0.9
debug-logfmt: 1.4.7
entities: 6.0.1
file-extension: 4.0.5
has-values: 2.0.1
image-extensions: 1.1.0
is-relative-url: 3.0.0
is-uri: 1.2.12
iso-639-3: 2.2.0
isostring: 0.0.1
jsdom: 27.2.0(postcss@8.5.6)
lodash: 4.17.21
memoize-one: 6.0.0
microsoft-capitalize: 1.0.5
mime: 3.0.0
normalize-url: 6.1.0
re2: 1.22.3
smartquotes: 2.3.2
tldts: 7.0.19
url-regex-safe: 4.0.0(re2@1.22.3)
video-extensions: 1.2.0
transitivePeerDependencies:
- bufferutil
- canvas
- postcss
- supports-color
- utf-8-validate
'@microsoft/api-extractor-model@7.30.6(@types/node@22.15.30)':
dependencies:
'@microsoft/tsdoc': 0.15.1
@@ -22973,7 +23080,15 @@ snapshots:
'@asamuzakjp/css-color': 3.2.0
rrweb-cssom: 0.8.0
cssstyle@5.3.1(postcss@8.5.4):
cssstyle@5.3.1(postcss@8.5.6):
dependencies:
'@asamuzakjp/css-color': 4.0.5
'@csstools/css-syntax-patches-for-csstree': 1.0.14(postcss@8.5.6)
css-tree: 3.1.0
transitivePeerDependencies:
- postcss
cssstyle@5.3.3(postcss@8.5.4):
dependencies:
'@asamuzakjp/css-color': 4.0.5
'@csstools/css-syntax-patches-for-csstree': 1.0.14(postcss@8.5.4)
@@ -22982,7 +23097,7 @@ snapshots:
- postcss
optional: true
cssstyle@5.3.1(postcss@8.5.6):
cssstyle@5.3.3(postcss@8.5.6):
dependencies:
'@asamuzakjp/css-color': 4.0.5
'@csstools/css-syntax-patches-for-csstree': 1.0.14(postcss@8.5.6)
@@ -23073,6 +23188,12 @@ snapshots:
null-prototype-object: 1.2.4
pretty-ms: 7.0.1
debug-logfmt@1.4.7:
dependencies:
'@kikobeats/time-span': 1.0.5
null-prototype-object: 1.2.4
pretty-ms: 7.0.1
debug@2.6.9:
dependencies:
ms: 2.0.0
@@ -24503,6 +24624,8 @@ snapshots:
dependencies:
resolve-pkg-maps: 1.0.0
get-video-id@3.7.0: {}
getenv@2.0.0: {}
github-from-package@0.0.0: {}
@@ -25359,6 +25482,11 @@ snapshots:
parse-uri: 2.0.3
punycode2: 1.0.1
is-uri@1.2.12:
dependencies:
parse-uri: 2.0.3
punycode2: 1.0.1
is-uri@1.2.7:
dependencies:
parse-uri: 1.0.11
@@ -25614,10 +25742,10 @@ snapshots:
- supports-color
- utf-8-validate
jsdom@27.0.1(postcss@8.5.4):
jsdom@27.0.1(postcss@8.5.6):
dependencies:
'@asamuzakjp/dom-selector': 6.7.3
cssstyle: 5.3.1(postcss@8.5.4)
cssstyle: 5.3.1(postcss@8.5.6)
data-urls: 6.0.0
decimal.js: 10.6.0
html-encoding-sniffer: 4.0.0
@@ -25641,12 +25769,41 @@ snapshots:
- postcss
- supports-color
- utf-8-validate
optional: true
jsdom@27.0.1(postcss@8.5.6):
jsdom@27.2.0(postcss@8.5.4):
dependencies:
'@asamuzakjp/dom-selector': 6.7.3
cssstyle: 5.3.1(postcss@8.5.6)
'@acemir/cssom': 0.9.27
'@asamuzakjp/dom-selector': 6.7.6
cssstyle: 5.3.3(postcss@8.5.4)
data-urls: 6.0.0
decimal.js: 10.6.0
html-encoding-sniffer: 4.0.0
http-proxy-agent: 7.0.2
https-proxy-agent: 7.0.6(supports-color@10.0.0)
is-potential-custom-element-name: 1.0.1
parse5: 8.0.0
saxes: 6.0.0
symbol-tree: 3.2.4
tough-cookie: 6.0.0
w3c-xmlserializer: 5.0.0
webidl-conversions: 8.0.0
whatwg-encoding: 3.1.1
whatwg-mimetype: 4.0.0
whatwg-url: 15.1.0
ws: 8.18.3
xml-name-validator: 5.0.0
transitivePeerDependencies:
- bufferutil
- postcss
- supports-color
- utf-8-validate
optional: true
jsdom@27.2.0(postcss@8.5.6):
dependencies:
'@acemir/cssom': 0.9.27
'@asamuzakjp/dom-selector': 6.7.6
cssstyle: 5.3.3(postcss@8.5.6)
data-urls: 6.0.0
decimal.js: 10.6.0
html-encoding-sniffer: 4.0.0
@@ -25654,7 +25811,6 @@ snapshots:
https-proxy-agent: 7.0.6(supports-color@10.0.0)
is-potential-custom-element-name: 1.0.1
parse5: 8.0.0
rrweb-cssom: 0.8.0
saxes: 6.0.0
symbol-tree: 3.2.4
tough-cookie: 6.0.0
@@ -25995,6 +26151,8 @@ snapshots:
lru-cache@11.2.2: {}
lru-cache@11.2.4: {}
lru-cache@5.1.1:
dependencies:
yallist: 3.1.1
@@ -26546,6 +26704,19 @@ snapshots:
- supports-color
- utf-8-validate
metascraper-youtube@5.49.7(postcss@8.5.6):
dependencies:
'@metascraper/helpers': 5.49.7(postcss@8.5.6)
get-video-id: 3.7.0
p-locate: 5.0.0
reachable-url: 1.8.3
transitivePeerDependencies:
- bufferutil
- canvas
- postcss
- supports-color
- utf-8-validate
metascraper@5.49.5(postcss@8.5.6):
dependencies:
'@metascraper/helpers': 5.49.5(postcss@8.5.6)
@@ -27368,6 +27539,8 @@ snapshots:
nan@2.22.2: {}
nan@2.24.0: {}
nanoid@3.3.11: {}
napi-build-utils@2.0.0: {}
@@ -27551,6 +27724,21 @@ snapshots:
transitivePeerDependencies:
- supports-color
node-gyp@11.5.0:
dependencies:
env-paths: 2.2.1
exponential-backoff: 3.1.2
graceful-fs: 4.2.11
make-fetch-happen: 14.0.3
nopt: 8.1.0
proc-log: 5.0.0
semver: 7.7.3
tar: 7.4.3
tinyglobby: 0.2.14
which: 5.0.0
transitivePeerDependencies:
- supports-color
node-int64@0.4.0: {}
node-readfiles@0.2.0:
@@ -28880,6 +29068,14 @@ snapshots:
transitivePeerDependencies:
- supports-color
re2@1.22.3:
dependencies:
install-artifact-from-github: 1.4.0
nan: 2.24.0
node-gyp: 11.5.0
transitivePeerDependencies:
- supports-color
reachable-url@1.8.3:
dependencies:
got: 11.8.6
@@ -30972,6 +31168,8 @@ snapshots:
tldts-core@7.0.17: {}
tldts-core@7.0.19: {}
tldts-core@7.0.8: {}
tldts-experimental@7.0.8:
@@ -30986,6 +31184,10 @@ snapshots:
dependencies:
tldts-core: 7.0.17
tldts@7.0.19:
dependencies:
tldts-core: 7.0.19
tldts@7.0.8:
dependencies:
tldts-core: 7.0.8
@@ -31363,6 +31565,13 @@ snapshots:
optionalDependencies:
re2: 1.22.1
url-regex-safe@4.0.0(re2@1.22.3):
dependencies:
ip-regex: 4.3.0
tlds: 1.259.0
optionalDependencies:
re2: 1.22.3
url@0.11.4:
dependencies:
punycode: 1.4.1
@@ -31561,7 +31770,7 @@ snapshots:
tsx: 4.20.3
yaml: 2.8.0
vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.15.30)(happy-dom@20.0.8)(jiti@2.4.2)(jsdom@27.0.1(postcss@8.5.4))(lightningcss@1.30.1)(sass@1.89.1)(terser@5.41.0)(tsx@4.20.3)(yaml@2.8.0):
vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.15.30)(happy-dom@20.0.8)(jiti@2.4.2)(jsdom@27.2.0(postcss@8.5.4))(lightningcss@1.30.1)(sass@1.89.1)(terser@5.41.0)(tsx@4.20.3)(yaml@2.8.0):
dependencies:
'@types/chai': 5.2.2
'@vitest/expect': 3.2.4
@@ -31590,7 +31799,7 @@ snapshots:
'@types/debug': 4.1.12
'@types/node': 22.15.30
happy-dom: 20.0.8
jsdom: 27.0.1(postcss@8.5.4)
jsdom: 27.2.0(postcss@8.5.4)
transitivePeerDependencies:
- jiti
- less
@@ -31605,7 +31814,7 @@ snapshots:
- tsx
- yaml
vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.15.30)(happy-dom@20.0.8)(jiti@2.4.2)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.1)(sass@1.89.1)(terser@5.41.0)(tsx@4.20.3)(yaml@2.8.0):
vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.15.30)(happy-dom@20.0.8)(jiti@2.4.2)(jsdom@27.2.0(postcss@8.5.6))(lightningcss@1.30.1)(sass@1.89.1)(terser@5.41.0)(tsx@4.20.3)(yaml@2.8.0):
dependencies:
'@types/chai': 5.2.2
'@vitest/expect': 3.2.4
@@ -31634,7 +31843,7 @@ snapshots:
'@types/debug': 4.1.12
'@types/node': 22.15.30
happy-dom: 20.0.8
jsdom: 27.0.1(postcss@8.5.6)
jsdom: 27.2.0(postcss@8.5.6)
transitivePeerDependencies:
- jiti
- less