diff --git a/docs/cli.md b/docs/cli.md index 41abac8..9d25110 100644 --- a/docs/cli.md +++ b/docs/cli.md @@ -26,7 +26,6 @@ $ random-bunny Archived = false Author = Rabbit_Owner Downvotes = 0 -Gallery = https://i.redd.it/sfz0srdrimjc1.png, https://i.redd.it/sfz0srdrimjc1.png Hidden = false Permalink = /r/Rabbits/comments/1av1rg9/cute_baby_bun/ Subreddit = Rabbits @@ -36,8 +35,6 @@ Upvotes = 211 Url = https://i.redd.it/sfz0srdrimjc1.png ``` -- The `Gallery` field is only shown when there is more than 1 image returned, which then the `Url` field is the first image of that list. - ## Help The command also includes a help option in case you are stuck. @@ -75,11 +72,9 @@ $ random-bunny --json $ randon-bunny -j -{"Archived":false,"Author":"Rabbit_Owner","Downs":0,"Hidden":false,"Permalink":"/r/Rabbits/comments/1av1rg9/cute_baby_bun/","Subreddit":"Rabbits","SubredditSubscribers":486085,"Title":"Cute baby bun","Ups":210,"Url":"https://i.redd.it/sfz0srdrimjc1.png","Gallery":["https://i.redd.it/sfz0srdrimjc1.png"]} +{"Archived":false,"Author":"Rabbit_Owner","Downs":0,"Hidden":false,"Permalink":"/r/Rabbits/comments/1av1rg9/cute_baby_bun/","Subreddit":"Rabbits","SubredditSubscribers":486085,"Title":"Cute baby bun","Ups":210,"Url":"https://i.redd.it/sfz0srdrimjc1.png"} ``` -- The `Url` field is the first image of the `Gallery` array - ## Sort You can also choose the sorting option which reddit will use to return the available posts to randomise from. diff --git a/readme.md b/readme.md index 570625a..e7ba49c 100644 --- a/readme.md +++ b/readme.md @@ -39,7 +39,6 @@ The json string which gets returned consists of: - archived - author - downs -- gallery - hidden - permalink - subreddit diff --git a/src/contracts/IRedditResult.ts b/src/contracts/IRedditResult.ts index 2c78e78..13fef75 100644 --- a/src/contracts/IRedditResult.ts +++ b/src/contracts/IRedditResult.ts @@ -2,12 +2,11 @@ export default interface IRedditResult { Archived: boolean, Author: string, Downs: number, - Gallery: string[], Hidden: boolean, Permalink: string, Subreddit: string, SubredditSubscribers: number, Title: string, Ups: number, - Url: string, + Url: string } \ No newline at end of file diff --git a/src/helpers/imageHelper.ts b/src/helpers/imageHelper.ts index 5c096ea..3da0fc9 100644 --- a/src/helpers/imageHelper.ts +++ b/src/helpers/imageHelper.ts @@ -2,19 +2,17 @@ import fetch from "got-cjs"; import * as htmlparser from "htmlparser2"; export default class ImageHelper { - public static async FetchImageFromRedditGallery(url: string): Promise { + public static async FetchImageFromRedditGallery(url: string): Promise { const fetched = await fetch(url); if (!fetched || fetched.errored || fetched.statusCode != 200) { - return []; + return undefined; } const dom = htmlparser.parseDocument(fetched.body); - const img = htmlparser.DomUtils.findAll((x => x.tagName == "img" && x.attributes.find(y => y.value.includes("https://preview.redd.it")) != null), dom.children); + const img = htmlparser.DomUtils.findOne((x => x.tagName == "img" && x.attributes.find(y => y.value.includes("https://preview.redd.it")) != null), dom.children, true); - const imgSrc = img - .flatMap(x => x.attributes.find(x => x.name == "src")?.value) - .filter(x => x != undefined); + const imgSrc = img?.attributes.find(x => x.name == "src")?.value; return imgSrc; } diff --git a/src/helpers/outputHelper.ts b/src/helpers/outputHelper.ts index 0cee9d6..808634d 100644 --- a/src/helpers/outputHelper.ts +++ b/src/helpers/outputHelper.ts @@ -14,13 +14,7 @@ export default class OutputHelper { outputLines.push(`Archived = ${result.Archived}`); outputLines.push(`Author = ${result.Author}`); outputLines.push(`Downvotes = ${result.Downs}`); - - if (result.Gallery.length > 1) { - outputLines.push(`Gallery = ${result.Gallery.join(", ")}`); - } - outputLines.push(`Hidden = ${result.Hidden}`); - outputLines.push(`Permalink = ${result.Permalink}`); outputLines.push(`Subreddit = ${result.Subreddit}`); outputLines.push(`Subreddit Subscribers = ${result.SubredditSubscribers}`); @@ -28,7 +22,6 @@ export default class OutputHelper { outputLines.push(`Upvotes = ${result.Ups}`); outputLines.push(`Url = ${result.Url}`); - if (options.queryMetadata != null) { outputLines.push(`Query.Subreddit = ${response.Query.subreddit}`); outputLines.push(`Query.Sort By = ${response.Query.sortBy}`); diff --git a/src/index.ts b/src/index.ts index b9ed5f9..056fe1f 100644 --- a/src/index.ts +++ b/src/index.ts @@ -93,7 +93,6 @@ export default async function randomBunny(subreddit: string, sortBy: "new" | "ho const randomData = randomSelect.data; let url: string; - let gallery: string[]; if (randomData.url.includes("/gallery")) { const galleryImage = await ImageHelper.FetchImageFromRedditGallery(randomData.url); @@ -113,11 +112,9 @@ export default async function randomBunny(subreddit: string, sortBy: "new" | "ho } } - url = galleryImage[0]; - gallery = galleryImage; + url = galleryImage; } else { url = randomData.url; - gallery = [randomData.url]; } const redditResult: IRedditResult = { @@ -131,7 +128,6 @@ export default async function randomBunny(subreddit: string, sortBy: "new" | "ho Title: randomData['title'], Ups: randomData['ups'], Url: url, - Gallery: gallery, }; return { diff --git a/tests/helpers/__snapshots__/outputHelper.test.ts.snap b/tests/helpers/__snapshots__/outputHelper.test.ts.snap index 73d61c6..39e952e 100644 --- a/tests/helpers/__snapshots__/outputHelper.test.ts.snap +++ b/tests/helpers/__snapshots__/outputHelper.test.ts.snap @@ -13,7 +13,7 @@ Upvotes = 17 Url = https://preview.redd.it/d5yno653zf7d1.jpg?width=640&crop=smart&auto=webp&s=5064d1caec3c12ac2855eb57ff131d0b313d5e9d" `; -exports[`GenerateOutput GIVEN options.json is true, EXPECT output to be returned as JSON 1`] = `"{"Archived":false,"Author":"author","Downs":0,"Hidden":false,"Permalink":"/r/Rabbits/comments/1dj8pbt/this_is_my_ms_bear/","Subreddit":"Rabbits","SubredditSubscribers":654751,"Title":"This is my Ms Bear!","Ups":17,"Url":"https://preview.redd.it/d5yno653zf7d1.jpg?width=640&crop=smart&auto=webp&s=5064d1caec3c12ac2855eb57ff131d0b313d5e9d","Gallery":["https://preview.redd.it/d5yno653zf7d1.jpg?width=640&crop=smart&auto=webp&s=5064d1caec3c12ac2855eb57ff131d0b313d5e9d"]}"`; +exports[`GenerateOutput GIVEN options.json is true, EXPECT output to be returned as JSON 1`] = `"{"Archived":false,"Author":"author","Downs":0,"Hidden":false,"Permalink":"/r/Rabbits/comments/1dj8pbt/this_is_my_ms_bear/","Subreddit":"Rabbits","SubredditSubscribers":654751,"Title":"This is my Ms Bear!","Ups":17,"Url":"https://preview.redd.it/d5yno653zf7d1.jpg?width=640&crop=smart&auto=webp&s=5064d1caec3c12ac2855eb57ff131d0b313d5e9d"}"`; exports[`GenerateOutput GIVEN options.queryMetadata is supplied, EXPECT query metadata to be added 1`] = ` "Archived = false @@ -30,17 +30,3 @@ Query.Subreddit = rabbits Query.Sort By = hot Query.Limit = 100" `; - -exports[`GenerateOutput GIVEN the Gallery input has more than 1 item, EXPECT Gallery line to be added 1`] = ` -"Archived = false -Author = author -Downvotes = 0 -Gallery = https://preview.redd.it/d5yno653zf7d1.jpg?width=640&crop=smart&auto=webp&s=5064d1caec3c12ac2855eb57ff131d0b313d5e9d, https://preview.redd.it/d5yno653zf7d1.jpg?width=640&crop=smart&auto=webp&s=5064d1caec3c12ac2855eb57ff131d0b313d5e9d -Hidden = false -Permalink = /r/Rabbits/comments/1dj8pbt/this_is_my_ms_bear/ -Subreddit = Rabbits -Subreddit Subscribers = 654751 -Title = This is my Ms Bear! -Upvotes = 17 -Url = https://preview.redd.it/d5yno653zf7d1.jpg?width=640&crop=smart&auto=webp&s=5064d1caec3c12ac2855eb57ff131d0b313d5e9d" -`; diff --git a/tests/helpers/imageHelper.test.ts b/tests/helpers/imageHelper.test.ts index 3eeb789..3c6f44e 100644 --- a/tests/helpers/imageHelper.test.ts +++ b/tests/helpers/imageHelper.test.ts @@ -17,19 +17,18 @@ describe("FetchImageFromRedditGallery", () => { expect(fetchMock).toHaveBeenCalledTimes(1); expect(fetchMock).toHaveBeenCalledWith("https://redd.it/gallery/image"); - expect(result.length).toBe(1); - expect(result[0]).toBe("https://preview.redd.it/image.png"); + expect(result).toBe("https://preview.redd.it/image.png"); }); - test("GIVEN fetch is unable to return data, EXPECT empty array returned", async () => { + test("GIVEN fetch is unable to return data, EXPECT undefined returned", async () => { fetchMock.mockResolvedValue(null); const result = await ImageHelper.FetchImageFromRedditGallery("https://redd.it/gallery/image"); - expect(result.length).toBe(0); + expect(result).toBeUndefined(); }); - test("GIVEN fetch is an error, EXPECT empty array returned", async () => { + test("GIVEN fetch is an error, EXPECT undefined returned", async () => { fetchMock.mockResolvedValue({ body: "", errored: "Error", @@ -38,10 +37,10 @@ describe("FetchImageFromRedditGallery", () => { const result = await ImageHelper.FetchImageFromRedditGallery("https://redd.it/gallery/image"); - expect(result.length).toBe(0); + expect(result).toBeUndefined(); }); - test("GIVEN fetch is not status code of 200, EXPECT empty array returned", async () => { + test("GIVEN fetch is not status code of 200, EXPECT undefined returned", async () => { fetchMock.mockResolvedValue({ body: "", errored: undefined, @@ -50,10 +49,10 @@ describe("FetchImageFromRedditGallery", () => { const result = await ImageHelper.FetchImageFromRedditGallery("https://redd.it/gallery/image"); - expect(result.length).toBe(0); + expect(result).toBeUndefined(); }); - test("GIVEN image tag is not found, EXPECT empty array returned", async () => { + test("GIVEN image tag is not found, EXPECT undefined returned", async () => { fetchMock.mockResolvedValue({ body: "", errored: undefined, @@ -62,10 +61,10 @@ describe("FetchImageFromRedditGallery", () => { const result = await ImageHelper.FetchImageFromRedditGallery("https://redd.it/gallery/image"); - expect(result.length).toBe(0); + expect(result).toBeUndefined(); }); - test("GIVEN image source attribute is not found, EXPECT empty array returned", async () => { + test("GIVEN image source attribute is not found, EXPECT undefined returned", async () => { fetchMock.mockResolvedValue({ body: "", errored: undefined, @@ -74,10 +73,10 @@ describe("FetchImageFromRedditGallery", () => { const result = await ImageHelper.FetchImageFromRedditGallery("https://redd.it/gallery/image"); - expect(result.length).toBe(0); + expect(result).toBeUndefined(); }); - test("GIVEN image source attribute is not found that is a preview.redd.it url, EXPECT empty array returned", async () => { + test("GIVEN image source attribute is not found that is a preview.redd.it url, EXPECT undefined returned", async () => { fetchMock.mockResolvedValue({ body: "", errored: undefined, @@ -86,6 +85,6 @@ describe("FetchImageFromRedditGallery", () => { const result = await ImageHelper.FetchImageFromRedditGallery("https://redd.it/gallery/image"); - expect(result.length).toBe(0); + expect(result).toBeUndefined(); }); }); \ No newline at end of file diff --git a/tests/helpers/outputHelper.test.ts b/tests/helpers/outputHelper.test.ts index 1581964..5e90dc8 100644 --- a/tests/helpers/outputHelper.test.ts +++ b/tests/helpers/outputHelper.test.ts @@ -23,7 +23,6 @@ describe("GenerateOutput", () => { Title: "This is my Ms Bear!", Ups: 17, Url: "https://preview.redd.it/d5yno653zf7d1.jpg?width=640&crop=smart&auto=webp&s=5064d1caec3c12ac2855eb57ff131d0b313d5e9d", - Gallery: ["https://preview.redd.it/d5yno653zf7d1.jpg?width=640&crop=smart&auto=webp&s=5064d1caec3c12ac2855eb57ff131d0b313d5e9d"], }, } as IReturnResult; @@ -56,7 +55,6 @@ describe("GenerateOutput", () => { Title: "This is my Ms Bear!", Ups: 17, Url: "https://preview.redd.it/d5yno653zf7d1.jpg?width=640&crop=smart&auto=webp&s=5064d1caec3c12ac2855eb57ff131d0b313d5e9d", - Gallery: ["https://preview.redd.it/d5yno653zf7d1.jpg?width=640&crop=smart&auto=webp&s=5064d1caec3c12ac2855eb57ff131d0b313d5e9d"], }, } as IReturnResult; @@ -91,7 +89,6 @@ describe("GenerateOutput", () => { Title: "This is my Ms Bear!", Ups: 17, Url: "https://preview.redd.it/d5yno653zf7d1.jpg?width=640&crop=smart&auto=webp&s=5064d1caec3c12ac2855eb57ff131d0b313d5e9d", - Gallery: ["https://preview.redd.it/d5yno653zf7d1.jpg?width=640&crop=smart&auto=webp&s=5064d1caec3c12ac2855eb57ff131d0b313d5e9d"], }, } as IReturnResult; @@ -105,40 +102,4 @@ describe("GenerateOutput", () => { // Assert expect(result).toMatchSnapshot(); }); - - test("GIVEN the Gallery input has more than 1 item, EXPECT Gallery line to be added", () => { - // Arrange - const response = { - IsSuccess: true, - Query: { - subreddit: "rabbits", - sortBy: "hot", - limit: 100, - }, - Result: { - Archived: false, - Author: 'author', - Downs: 0, - Hidden: false, - Permalink: "/r/Rabbits/comments/1dj8pbt/this_is_my_ms_bear/", - Subreddit: "Rabbits", - SubredditSubscribers: 654751, - Title: "This is my Ms Bear!", - Ups: 17, - Url: "https://preview.redd.it/d5yno653zf7d1.jpg?width=640&crop=smart&auto=webp&s=5064d1caec3c12ac2855eb57ff131d0b313d5e9d", - Gallery: [ - "https://preview.redd.it/d5yno653zf7d1.jpg?width=640&crop=smart&auto=webp&s=5064d1caec3c12ac2855eb57ff131d0b313d5e9d", - "https://preview.redd.it/d5yno653zf7d1.jpg?width=640&crop=smart&auto=webp&s=5064d1caec3c12ac2855eb57ff131d0b313d5e9d" - ], - }, - } as IReturnResult; - - const options = {} as ICliOptions; - - // Act - const result = OutputHelper.GenerateOutput(response, options); - - // Assert - expect(result).toMatchSnapshot(); - }); }); \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 7a8def9..d27ebcc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -394,14 +394,7 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@eslint-community/eslint-utils@^4.2.0": - version "4.4.1" - resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz#d1145bf2c20132d6400495d6df4bf59362fd9d56" - integrity sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA== - dependencies: - eslint-visitor-keys "^3.4.3" - -"@eslint-community/eslint-utils@^4.4.0": +"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.4.0" resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== @@ -409,15 +402,15 @@ eslint-visitor-keys "^3.3.0" "@eslint-community/regexpp@^4.10.0": + version "4.11.0" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.11.0.tgz#b0ffd0312b4a3fd2d6f77237e7248a5ad3a680ae" + integrity sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A== + +"@eslint-community/regexpp@^4.11.0": version "4.11.1" resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.11.1.tgz#a547badfc719eb3e5f4b556325e542fbe9d7a18f" integrity sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q== -"@eslint-community/regexpp@^4.11.0": - version "4.12.0" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.0.tgz#1b8e62d1244557927b9a7fc7a96e5bbd62e1870e" - integrity sha512-gh7PdNombP8ftL8TinYC8Xd7WEypB8EKV4PI2h0eMzndKjPCXuo2zUiZtD2Hu+MSPt02Ty2MdS788ADl9ai1rA== - "@eslint/config-array@^0.18.0": version "0.18.0" resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.18.0.tgz#37d8fe656e0d5e3dbaea7758ea56540867fd074d" @@ -447,11 +440,16 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@9.13.0", "@eslint/js@^9.8.0": +"@eslint/js@9.13.0": version "9.13.0" resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.13.0.tgz#c5f89bcd57eb54d5d4fa8b77693e9c28dc97e547" integrity sha512-IFLyoY4d72Z5y/6o/BazFBezupzI/taV8sGumxTAVw3lXG9A6md1Dc34T9s1FoD/an9pJH8RHbAxsaEbBed9lA== +"@eslint/js@^9.8.0": + version "9.10.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.10.0.tgz#eaa3cb0baec497970bb29e43a153d0d5650143c6" + integrity sha512-fuXtbiP5GWIn8Fz+LWoOMVf/Jxm+aajZYkhi6CuEm4SxymFM+eUWzbO9qXT+L0iCkL5+KGYMCSGxo686H19S1g== + "@eslint/object-schema@^2.1.4": version "2.1.4" resolved "https://registry.yarnpkg.com/@eslint/object-schema/-/object-schema-2.1.4.tgz#9e69f8bb4031e11df79e03db09f9dbbae1740843" @@ -943,9 +941,9 @@ integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== "@types/node@*", "@types/node@^22.0.0": - version "22.7.7" - resolved "https://registry.yarnpkg.com/@types/node/-/node-22.7.7.tgz#6cd9541c3dccb4f7e8b141b491443f4a1570e307" - integrity sha512-SRxCrrg9CL/y54aiMCG3edPKdprgMVGDXjA3gB8UmmBW5TcXzRUYAh8EWzTnSJFAd1rgImPELza+A3bJ+qxz8Q== + version "22.5.5" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.5.5.tgz#52f939dd0f65fc552a4ad0b392f3c466cc5d7a44" + integrity sha512-Xjs4y5UPO/CLdzpgR6GirZJx36yScjh73+2NlLlkFRSoQN8B0DpfXPdZGnvVmLRLOsqDpOfTNv7D9trgGhmOIA== dependencies: undici-types "~6.19.2" @@ -994,15 +992,15 @@ ts-api-utils "^1.3.0" "@typescript-eslint/eslint-plugin@^8.0.0": - version "8.10.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.10.0.tgz#9c8218ed62f9a322df10ded7c34990f014df44f2" - integrity sha512-phuB3hoP7FFKbRXxjl+DRlQDuJqhpOnm5MmtROXyWi3uS/Xg2ZXqiQfcG2BJHiN4QKyzdOJi3NEn/qTnjUlkmQ== + version "8.2.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.2.0.tgz#bf50e9c8dac6bdf15dd1b52ca29448550903558e" + integrity sha512-02tJIs655em7fvt9gps/+4k4OsKULYGtLBPJfOsmOq1+3cdClYiF0+d6mHu6qDnTcg88wJBkcPLpQhq7FyDz0A== dependencies: "@eslint-community/regexpp" "^4.10.0" - "@typescript-eslint/scope-manager" "8.10.0" - "@typescript-eslint/type-utils" "8.10.0" - "@typescript-eslint/utils" "8.10.0" - "@typescript-eslint/visitor-keys" "8.10.0" + "@typescript-eslint/scope-manager" "8.2.0" + "@typescript-eslint/type-utils" "8.2.0" + "@typescript-eslint/utils" "8.2.0" + "@typescript-eslint/visitor-keys" "8.2.0" graphemer "^1.4.0" ignore "^5.3.1" natural-compare "^1.4.0" @@ -1038,13 +1036,13 @@ "@typescript-eslint/types" "7.18.0" "@typescript-eslint/visitor-keys" "7.18.0" -"@typescript-eslint/scope-manager@8.10.0": - version "8.10.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.10.0.tgz#606ffe18314d7b5c2f118f2f02aaa2958107a19c" - integrity sha512-AgCaEjhfql9MDKjMUxWvH7HjLeBqMCBfIaBbzzIcBbQPZE7CPh1m6FF+L75NUMJFMLYhCywJXIDEMa3//1A0dw== +"@typescript-eslint/scope-manager@8.2.0": + version "8.2.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.2.0.tgz#4a4bd7e7df5522acc8795c3b6f21e8c41b951138" + integrity sha512-OFn80B38yD6WwpoHU2Tz/fTz7CgFqInllBoC3WP+/jLbTb4gGPTy9HBSTsbDWkMdN55XlVU0mMDYAtgvlUspGw== dependencies: - "@typescript-eslint/types" "8.10.0" - "@typescript-eslint/visitor-keys" "8.10.0" + "@typescript-eslint/types" "8.2.0" + "@typescript-eslint/visitor-keys" "8.2.0" "@typescript-eslint/scope-manager@8.5.0": version "8.5.0" @@ -1064,13 +1062,13 @@ debug "^4.3.4" ts-api-utils "^1.3.0" -"@typescript-eslint/type-utils@8.10.0": - version "8.10.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.10.0.tgz#99f1d2e21f8c74703e7d9c4a67a87271eaf57597" - integrity sha512-PCpUOpyQSpxBn230yIcK+LeCQaXuxrgCm2Zk1S+PTIRJsEfU6nJ0TtwyH8pIwPK/vJoA+7TZtzyAJSGBz+s/dg== +"@typescript-eslint/type-utils@8.2.0": + version "8.2.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.2.0.tgz#5cd7fef50f492e5a0f508bdd40678861a57c3549" + integrity sha512-g1CfXGFMQdT5S+0PSO0fvGXUaiSkl73U1n9LTK5aRAFnPlJ8dLKkXr4AaLFvPedW8lVDoMgLLE3JN98ZZfsj0w== dependencies: - "@typescript-eslint/typescript-estree" "8.10.0" - "@typescript-eslint/utils" "8.10.0" + "@typescript-eslint/typescript-estree" "8.2.0" + "@typescript-eslint/utils" "8.2.0" debug "^4.3.4" ts-api-utils "^1.3.0" @@ -1079,10 +1077,10 @@ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-7.18.0.tgz#b90a57ccdea71797ffffa0321e744f379ec838c9" integrity sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ== -"@typescript-eslint/types@8.10.0": - version "8.10.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.10.0.tgz#eb29c4bc2ed23489348c297469c76d28c38fb618" - integrity sha512-k/E48uzsfJCRRbGLapdZgrX52csmWJ2rcowwPvOZ8lwPUv3xW6CcFeJAXgx4uJm+Ge4+a4tFOkdYvSpxhRhg1w== +"@typescript-eslint/types@8.2.0": + version "8.2.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.2.0.tgz#dfe9895a2812f7c6bf7af863054c22a67060420c" + integrity sha512-6a9QSK396YqmiBKPkJtxsgZZZVjYQ6wQ/TlI0C65z7vInaETuC6HAHD98AGLC8DyIPqHytvNuS8bBVvNLKyqvQ== "@typescript-eslint/types@8.5.0": version "8.5.0" @@ -1103,15 +1101,15 @@ semver "^7.6.0" ts-api-utils "^1.3.0" -"@typescript-eslint/typescript-estree@8.10.0": - version "8.10.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.10.0.tgz#36cc66e06c5f44d6781f95cb03b132e985273a33" - integrity sha512-3OE0nlcOHaMvQ8Xu5gAfME3/tWVDpb/HxtpUZ1WeOAksZ/h/gwrBzCklaGzwZT97/lBbbxJ16dMA98JMEngW4w== +"@typescript-eslint/typescript-estree@8.2.0": + version "8.2.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.2.0.tgz#fbdb93a1c7ac7f1f96ae2de4fc97cd64c60ae894" + integrity sha512-kiG4EDUT4dImplOsbh47B1QnNmXSoUqOjWDvCJw/o8LgfD0yr7k2uy54D5Wm0j4t71Ge1NkynGhpWdS0dEIAUA== dependencies: - "@typescript-eslint/types" "8.10.0" - "@typescript-eslint/visitor-keys" "8.10.0" + "@typescript-eslint/types" "8.2.0" + "@typescript-eslint/visitor-keys" "8.2.0" debug "^4.3.4" - fast-glob "^3.3.2" + globby "^11.1.0" is-glob "^4.0.3" minimatch "^9.0.4" semver "^7.6.0" @@ -1141,15 +1139,15 @@ "@typescript-eslint/types" "7.18.0" "@typescript-eslint/typescript-estree" "7.18.0" -"@typescript-eslint/utils@8.10.0": - version "8.10.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.10.0.tgz#d78d1ce3ea3d2a88a2593ebfb1c98490131d00bf" - integrity sha512-Oq4uZ7JFr9d1ZunE/QKy5egcDRXT/FrS2z/nlxzPua2VHFtmMvFNDvpq1m/hq0ra+T52aUezfcjGRIB7vNJF9w== +"@typescript-eslint/utils@8.2.0": + version "8.2.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.2.0.tgz#02d442285925f28d520587185f295f932702e733" + integrity sha512-O46eaYKDlV3TvAVDNcoDzd5N550ckSe8G4phko++OCSC1dYIb9LTc3HDGYdWqWIAT5qDUKphO6sd9RrpIJJPfg== dependencies: "@eslint-community/eslint-utils" "^4.4.0" - "@typescript-eslint/scope-manager" "8.10.0" - "@typescript-eslint/types" "8.10.0" - "@typescript-eslint/typescript-estree" "8.10.0" + "@typescript-eslint/scope-manager" "8.2.0" + "@typescript-eslint/types" "8.2.0" + "@typescript-eslint/typescript-estree" "8.2.0" "@typescript-eslint/visitor-keys@7.18.0": version "7.18.0" @@ -1159,12 +1157,12 @@ "@typescript-eslint/types" "7.18.0" eslint-visitor-keys "^3.4.3" -"@typescript-eslint/visitor-keys@8.10.0": - version "8.10.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.10.0.tgz#7ce4c0c3b82140415c9cd9babe09e0000b4e9979" - integrity sha512-k8nekgqwr7FadWk548Lfph6V3r9OVqjzAIVskE7orMZR23cGJjAOVazsZSJW+ElyjfTM4wx/1g88Mi70DDtG9A== +"@typescript-eslint/visitor-keys@8.2.0": + version "8.2.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.2.0.tgz#f6abb3b6508898a117175ddc11f9b9869cc96834" + integrity sha512-sbgsPMW9yLvS7IhCi8IpuK1oBmtbWUNP+hBdwl/I9nzqVsszGnNGti5r9dUtF5RLivHUFFIdRvLiTsPhzSyJ3Q== dependencies: - "@typescript-eslint/types" "8.10.0" + "@typescript-eslint/types" "8.2.0" eslint-visitor-keys "^3.4.3" "@typescript-eslint/visitor-keys@8.5.0": @@ -1215,9 +1213,9 @@ acorn-jsx@^5.3.2: integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== acorn@^8.12.0: - version "8.14.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.0.tgz#063e2c70cac5fb4f6467f0b11152e04c682795b0" - integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA== + version "8.13.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.13.0.tgz#2a30d670818ad16ddd6a35d3842dacec9e5d7ca3" + integrity sha512-8zSiw54Oxrdym50NlZ9sUusyO1Z1ZchgRLWRaK6c86XJFClyCgFKetdowBg5bKxyp/u+CDBJG4Mpp0m3HLZl9w== agent-base@6: version "6.0.2" @@ -1842,7 +1840,7 @@ date-fns@^1.27.2: resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c" integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw== -debug@4, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: +debug@4, debug@^4.3.1, debug@^4.3.2: version "4.3.7" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.7.tgz#87945b4151a011d76d95a198d7111c865c360a52" integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ== @@ -1856,6 +1854,13 @@ debug@^4.1.0, debug@^4.1.1: dependencies: ms "2.1.2" +debug@^4.3.4: + version "4.3.5" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.5.tgz#e83444eceb9fedd4a1da56d671ae2446a01a6e1e" + integrity sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg== + dependencies: + ms "2.1.2" + decompress-response@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" @@ -2645,12 +2650,12 @@ ignore-walk@^6.0.4: dependencies: minimatch "^9.0.0" -ignore@^5.2.0, ignore@^5.3.1: +ignore@^5.2.0: version "5.3.2" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5" integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== -ignore@^5.2.4: +ignore@^5.2.4, ignore@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==