diff --git a/package.json b/package.json index 5761c12ba..32df32b9e 100644 --- a/package.json +++ b/package.json @@ -3,17 +3,19 @@ "type": "module", "scripts": { "build": "nuxt build", - "dev": "NODE_OPTIONS='--max-old-space-size=8192' nuxt dev", + "dev": "nuxt dev", "generate": "nuxt generate", "preview": "nuxt preview", - "content:blog": "find /Users/ejfox/Library/Mobile\\ Documents/iCloud~md~obsidian/Documents/ejfox/ -type f -name '*.md' ! -path '*/drafts/*' -exec rsync -avz --relative {} ./content/blog/ \\; && echo 'Synced files:' && find /Users/ejfox/Library/Mobile\\ Documents/iCloud~md~obsidian/Documents/ejfox/ -type f -name '*.md' ! -path '*/drafts/*' -exec rsync -avz --relative {} ./content/blog/ --dry-run --list-only \\;", + "content:blog": "rsync -avz --delete --exclude='/drafts/' --include='*.md' --exclude='*' /Users/ejfox/Library/Mobile\\ Documents/iCloud~md~obsidian/Documents/ejfox/ ./content/blog/ && echo 'Synced files:' && rsync -avz --delete --exclude='/drafts/' --include='*.md' --exclude='*' /Users/ejfox/Library/Mobile\\ Documents/iCloud~md~obsidian/Documents/ejfox/ ./content/blog/ --dry-run --list-only", + "content:assets": "rsync -avz --delete --exclude='/drafts/' --include='*.{png,mp3,jpg,svg}' /Users/ejfox/Library/Mobile\\ Documents/iCloud~md~obsidian/Documents/ejfox/drafts/assets/ ./*/static/", "content:reading": "rsync -avz --delete --exclude='/drafts/' --include='*.md' --exclude='*' /Users/ejfox/Library/Mobile\\ Documents/iCloud~md~obsidian/Documents/ejfox/reading/ ./content/reading/", - "content:all": "yarn run content:blog && yarn run content:reading && git add \\*.md && git commit -m 'Update content' && git push" + "content:all": "yarn run content:blog && yarn run content:reading && git add \\*.md && git commit -m 'Update content' && git push", + "content:scrapbook": "node scripts/scrapbook/dl_arena.mjs && node scripts/scrapbook/dl_mastodon.mjs && node scripts/scrapbook/dl_pinboard.mjs" }, "devDependencies": { "@nuxt/devtools": "^1.3.9", "@nuxt/image": "^1.7.0", - "@types/node": "^22.2.0", + "@types/node": "^22.3.0", "@unlok-co/nuxt-stripe": "^3.0.0", "nuxt": "^3.12.4" }, @@ -31,16 +33,19 @@ "animejs": "^3.2.2", "are.na": "^0.1.5", "bottleneck": "^2.19.5", + "canvas": "^2.11.2", "cloudinary": "^2.4.0", + "colorthief": "^2.4.0", "crypto-js": "^4.2.0", "d3": "^7.9.0", "d3-voronoi": "^1.1.4", "date-fns": "^3.6.0", "eslint-config-prettier": "^9.1.0", "front-matter": "^4.0.2", + "gray-matter": "^4.0.3", "inquirer": "^10.1.8", "js-md5": "^0.8.3", - "nuxt-gtag": "^2.1.0", + "p-limit": "^6.1.0", "rehype-external-links": "^3.0.0", "remark-emoji": "^5.0.1", "remark-external-links": "^9.0.1", diff --git a/public/images/share/!pinboard-tags.png b/public/images/share/!pinboard-tags.png new file mode 100644 index 000000000..77bca1134 Binary files /dev/null and b/public/images/share/!pinboard-tags.png differ diff --git a/public/images/share/2015-in-review.png b/public/images/share/2015-in-review.png new file mode 100644 index 000000000..6f0b22161 Binary files /dev/null and b/public/images/share/2015-in-review.png differ diff --git a/public/images/share/2016-in-review.png b/public/images/share/2016-in-review.png new file mode 100644 index 000000000..d12553a2c Binary files /dev/null and b/public/images/share/2016-in-review.png differ diff --git a/public/images/share/2017-in-review.png b/public/images/share/2017-in-review.png new file mode 100644 index 000000000..d7d13c18d Binary files /dev/null and b/public/images/share/2017-in-review.png differ diff --git a/public/images/share/2018-in-review.png b/public/images/share/2018-in-review.png new file mode 100644 index 000000000..7b5e757bf Binary files /dev/null and b/public/images/share/2018-in-review.png differ diff --git a/public/images/share/2022-prototyping-toolkit.png b/public/images/share/2022-prototyping-toolkit.png new file mode 100644 index 000000000..d8bf6a7b9 Binary files /dev/null and b/public/images/share/2022-prototyping-toolkit.png differ diff --git a/public/images/share/2023-ny-to-maine.png b/public/images/share/2023-ny-to-maine.png new file mode 100644 index 000000000..47a0a69eb Binary files /dev/null and b/public/images/share/2023-ny-to-maine.png differ diff --git a/public/images/share/2024.png b/public/images/share/2024.png new file mode 100644 index 000000000..70ee3177e Binary files /dev/null and b/public/images/share/2024.png differ diff --git a/public/images/share/8pm-to-midnight-mixes.png b/public/images/share/8pm-to-midnight-mixes.png new file mode 100644 index 000000000..ad67149e7 Binary files /dev/null and b/public/images/share/8pm-to-midnight-mixes.png differ diff --git a/public/images/share/america.png b/public/images/share/america.png new file mode 100644 index 000000000..a41fc9aa6 Binary files /dev/null and b/public/images/share/america.png differ diff --git a/public/images/share/art-setup.png b/public/images/share/art-setup.png new file mode 100644 index 000000000..e4ea397de Binary files /dev/null and b/public/images/share/art-setup.png differ diff --git a/public/images/share/camera-setup.png b/public/images/share/camera-setup.png new file mode 100644 index 000000000..e1ef7e0f8 Binary files /dev/null and b/public/images/share/camera-setup.png differ diff --git a/public/images/share/capitalism-letting-people-die.png b/public/images/share/capitalism-letting-people-die.png new file mode 100644 index 000000000..21de33be9 Binary files /dev/null and b/public/images/share/capitalism-letting-people-die.png differ diff --git a/public/images/share/climate-strike-nyc.png b/public/images/share/climate-strike-nyc.png new file mode 100644 index 000000000..3598c9cf6 Binary files /dev/null and b/public/images/share/climate-strike-nyc.png differ diff --git a/public/images/share/coach-artie-webhooks-cron-and-advanced-reflection.png b/public/images/share/coach-artie-webhooks-cron-and-advanced-reflection.png new file mode 100644 index 000000000..624b140c4 Binary files /dev/null and b/public/images/share/coach-artie-webhooks-cron-and-advanced-reflection.png differ diff --git a/public/images/share/coding-livestreams.png b/public/images/share/coding-livestreams.png new file mode 100644 index 000000000..dccd5092e Binary files /dev/null and b/public/images/share/coding-livestreams.png differ diff --git a/public/images/share/computer-setup-2019.png b/public/images/share/computer-setup-2019.png new file mode 100644 index 000000000..f8352b0ed Binary files /dev/null and b/public/images/share/computer-setup-2019.png differ diff --git a/public/images/share/computer-setup.png b/public/images/share/computer-setup.png new file mode 100644 index 000000000..f57670947 Binary files /dev/null and b/public/images/share/computer-setup.png differ diff --git a/public/images/share/creative-coding.png b/public/images/share/creative-coding.png new file mode 100644 index 000000000..30d619572 Binary files /dev/null and b/public/images/share/creative-coding.png differ diff --git a/public/images/share/crypto-ai-colonization.png b/public/images/share/crypto-ai-colonization.png new file mode 100644 index 000000000..d3c19a4dc Binary files /dev/null and b/public/images/share/crypto-ai-colonization.png differ diff --git a/public/images/share/data-driven-llm-sentences.png b/public/images/share/data-driven-llm-sentences.png new file mode 100644 index 000000000..f55152a9f Binary files /dev/null and b/public/images/share/data-driven-llm-sentences.png differ diff --git a/public/images/share/design-philosophy.png b/public/images/share/design-philosophy.png new file mode 100644 index 000000000..92ce26cdc Binary files /dev/null and b/public/images/share/design-philosophy.png differ diff --git a/public/images/share/election-night-2018.png b/public/images/share/election-night-2018.png new file mode 100644 index 000000000..497553cea Binary files /dev/null and b/public/images/share/election-night-2018.png differ diff --git a/public/images/share/electology-vision.png b/public/images/share/electology-vision.png new file mode 100644 index 000000000..ef09f2000 Binary files /dev/null and b/public/images/share/electology-vision.png differ diff --git a/public/images/share/everyone-should-code-data-literacy.png b/public/images/share/everyone-should-code-data-literacy.png new file mode 100644 index 000000000..5003dc27f Binary files /dev/null and b/public/images/share/everyone-should-code-data-literacy.png differ diff --git a/public/images/share/experiments-with-live-looping-performance.png b/public/images/share/experiments-with-live-looping-performance.png new file mode 100644 index 000000000..a79d52df1 Binary files /dev/null and b/public/images/share/experiments-with-live-looping-performance.png differ diff --git a/public/images/share/film-development.png b/public/images/share/film-development.png new file mode 100644 index 000000000..bf6e26d17 Binary files /dev/null and b/public/images/share/film-development.png differ diff --git a/public/images/share/food.png b/public/images/share/food.png new file mode 100644 index 000000000..d4c214b94 Binary files /dev/null and b/public/images/share/food.png differ diff --git a/public/images/share/garment-dying-experiments.png b/public/images/share/garment-dying-experiments.png new file mode 100644 index 000000000..48d543390 Binary files /dev/null and b/public/images/share/garment-dying-experiments.png differ diff --git a/public/images/share/generative-music-iteration.png b/public/images/share/generative-music-iteration.png new file mode 100644 index 000000000..29ff91354 Binary files /dev/null and b/public/images/share/generative-music-iteration.png differ diff --git a/public/images/share/getting-started-with-embeddings.png b/public/images/share/getting-started-with-embeddings.png new file mode 100644 index 000000000..03f0c536d Binary files /dev/null and b/public/images/share/getting-started-with-embeddings.png differ diff --git a/public/images/share/hacker-culture.png b/public/images/share/hacker-culture.png new file mode 100644 index 000000000..9abfbef44 Binary files /dev/null and b/public/images/share/hacker-culture.png differ diff --git a/public/images/share/hand-built-media-organization.png b/public/images/share/hand-built-media-organization.png new file mode 100644 index 000000000..61edb3a17 Binary files /dev/null and b/public/images/share/hand-built-media-organization.png differ diff --git a/public/images/share/hong-kong-protest-techniques.png b/public/images/share/hong-kong-protest-techniques.png new file mode 100644 index 000000000..4ca60026c Binary files /dev/null and b/public/images/share/hong-kong-protest-techniques.png differ diff --git a/public/images/share/how-i-built-coach-artie.png b/public/images/share/how-i-built-coach-artie.png new file mode 100644 index 000000000..73a1d2d03 Binary files /dev/null and b/public/images/share/how-i-built-coach-artie.png differ diff --git a/public/images/share/how-i-prototype-apps-and-dataviz-quickly-in-2019.png b/public/images/share/how-i-prototype-apps-and-dataviz-quickly-in-2019.png new file mode 100644 index 000000000..97f83246e Binary files /dev/null and b/public/images/share/how-i-prototype-apps-and-dataviz-quickly-in-2019.png differ diff --git a/public/images/share/how-i-use-gpt3.png b/public/images/share/how-i-use-gpt3.png new file mode 100644 index 000000000..9cbc3b2a5 Binary files /dev/null and b/public/images/share/how-i-use-gpt3.png differ diff --git a/public/images/share/how-to-give-credit.png b/public/images/share/how-to-give-credit.png new file mode 100644 index 000000000..ae8ac9d3d Binary files /dev/null and b/public/images/share/how-to-give-credit.png differ diff --git a/public/images/share/how-to-run-a-project.png b/public/images/share/how-to-run-a-project.png new file mode 100644 index 000000000..fbdfd62c3 Binary files /dev/null and b/public/images/share/how-to-run-a-project.png differ diff --git a/public/images/share/introduction-to-eavs-data.png b/public/images/share/introduction-to-eavs-data.png new file mode 100644 index 000000000..d242d17a1 Binary files /dev/null and b/public/images/share/introduction-to-eavs-data.png differ diff --git a/public/images/share/joy-driven-development.png b/public/images/share/joy-driven-development.png new file mode 100644 index 000000000..7434c89b9 Binary files /dev/null and b/public/images/share/joy-driven-development.png differ diff --git a/public/images/share/lack-of-data.png b/public/images/share/lack-of-data.png new file mode 100644 index 000000000..d8c3a8709 Binary files /dev/null and b/public/images/share/lack-of-data.png differ diff --git a/public/images/share/linocut-printing-guide.png b/public/images/share/linocut-printing-guide.png new file mode 100644 index 000000000..42de33293 Binary files /dev/null and b/public/images/share/linocut-printing-guide.png differ diff --git a/public/images/share/livestreaming.png b/public/images/share/livestreaming.png new file mode 100644 index 000000000..aacd4c652 Binary files /dev/null and b/public/images/share/livestreaming.png differ diff --git a/public/images/share/morning-routine-daily-rituals.png b/public/images/share/morning-routine-daily-rituals.png new file mode 100644 index 000000000..8c25a0004 Binary files /dev/null and b/public/images/share/morning-routine-daily-rituals.png differ diff --git a/public/images/share/motorcycle-camping.png b/public/images/share/motorcycle-camping.png new file mode 100644 index 000000000..375a7ec1b Binary files /dev/null and b/public/images/share/motorcycle-camping.png differ diff --git a/public/images/share/movies-to-watch.png b/public/images/share/movies-to-watch.png new file mode 100644 index 000000000..605ab3fff Binary files /dev/null and b/public/images/share/movies-to-watch.png differ diff --git a/public/images/share/my-modern-scrapbook.png b/public/images/share/my-modern-scrapbook.png new file mode 100644 index 000000000..0cc0b5206 Binary files /dev/null and b/public/images/share/my-modern-scrapbook.png differ diff --git a/public/images/share/my-vscode-setup.png b/public/images/share/my-vscode-setup.png new file mode 100644 index 000000000..8a176026e Binary files /dev/null and b/public/images/share/my-vscode-setup.png differ diff --git a/public/images/share/nypd-ccrb-complaint-clusters.png b/public/images/share/nypd-ccrb-complaint-clusters.png new file mode 100644 index 000000000..370728e9a Binary files /dev/null and b/public/images/share/nypd-ccrb-complaint-clusters.png differ diff --git a/public/images/share/online-brigades-gaming-twitter.png b/public/images/share/online-brigades-gaming-twitter.png new file mode 100644 index 000000000..8942b9792 Binary files /dev/null and b/public/images/share/online-brigades-gaming-twitter.png differ diff --git a/public/images/share/photoblog-with-cloudinary-nuxt.png b/public/images/share/photoblog-with-cloudinary-nuxt.png new file mode 100644 index 000000000..5d0656b97 Binary files /dev/null and b/public/images/share/photoblog-with-cloudinary-nuxt.png differ diff --git a/public/images/share/photography-2008-2010.png b/public/images/share/photography-2008-2010.png new file mode 100644 index 000000000..d533b3f57 Binary files /dev/null and b/public/images/share/photography-2008-2010.png differ diff --git a/public/images/share/rules-for-joyful-travel.png b/public/images/share/rules-for-joyful-travel.png new file mode 100644 index 000000000..16ca7a46e Binary files /dev/null and b/public/images/share/rules-for-joyful-travel.png differ diff --git a/public/images/share/selecting-a-cms.png b/public/images/share/selecting-a-cms.png new file mode 100644 index 000000000..e6295e7f8 Binary files /dev/null and b/public/images/share/selecting-a-cms.png differ diff --git a/public/images/share/soapmaking.png b/public/images/share/soapmaking.png new file mode 100644 index 000000000..7d53a2b4c Binary files /dev/null and b/public/images/share/soapmaking.png differ diff --git a/public/images/share/spliff-and-espresso.png b/public/images/share/spliff-and-espresso.png new file mode 100644 index 000000000..7816848a3 Binary files /dev/null and b/public/images/share/spliff-and-espresso.png differ diff --git a/public/images/share/starting-a-studio-introducing-room-302.png b/public/images/share/starting-a-studio-introducing-room-302.png new file mode 100644 index 000000000..0211112cc Binary files /dev/null and b/public/images/share/starting-a-studio-introducing-room-302.png differ diff --git a/public/images/share/step-zero.png b/public/images/share/step-zero.png new file mode 100644 index 000000000..9dfa31666 Binary files /dev/null and b/public/images/share/step-zero.png differ diff --git a/public/images/share/taking-things-for-granted.png b/public/images/share/taking-things-for-granted.png new file mode 100644 index 000000000..796ae2064 Binary files /dev/null and b/public/images/share/taking-things-for-granted.png differ diff --git a/public/images/share/the-art-of-coding.png b/public/images/share/the-art-of-coding.png new file mode 100644 index 000000000..f59528d0f Binary files /dev/null and b/public/images/share/the-art-of-coding.png differ diff --git a/public/images/share/the-internet-was-built-to-be-hacked.png b/public/images/share/the-internet-was-built-to-be-hacked.png new file mode 100644 index 000000000..3529d6238 Binary files /dev/null and b/public/images/share/the-internet-was-built-to-be-hacked.png differ diff --git a/public/images/share/the-magazine-experience-on-the-web.png b/public/images/share/the-magazine-experience-on-the-web.png new file mode 100644 index 000000000..173496294 Binary files /dev/null and b/public/images/share/the-magazine-experience-on-the-web.png differ diff --git a/public/images/share/the-studio.png b/public/images/share/the-studio.png new file mode 100644 index 000000000..3153ecc4c Binary files /dev/null and b/public/images/share/the-studio.png differ diff --git a/public/images/share/things-ive-learned-about-elections.png b/public/images/share/things-ive-learned-about-elections.png new file mode 100644 index 000000000..fc05ad054 Binary files /dev/null and b/public/images/share/things-ive-learned-about-elections.png differ diff --git a/public/images/share/two-reasons.png b/public/images/share/two-reasons.png new file mode 100644 index 000000000..9339d32e2 Binary files /dev/null and b/public/images/share/two-reasons.png differ diff --git a/public/images/share/unsecured-ice-cameras.png b/public/images/share/unsecured-ice-cameras.png new file mode 100644 index 000000000..5de2762f0 Binary files /dev/null and b/public/images/share/unsecured-ice-cameras.png differ diff --git a/public/images/share/video-mixes.png b/public/images/share/video-mixes.png new file mode 100644 index 000000000..84efc3c8b Binary files /dev/null and b/public/images/share/video-mixes.png differ diff --git a/public/images/share/watercolor-sketching-in-nyc.png b/public/images/share/watercolor-sketching-in-nyc.png new file mode 100644 index 000000000..cc3e89f08 Binary files /dev/null and b/public/images/share/watercolor-sketching-in-nyc.png differ diff --git a/public/images/share/week-schedule-and-to-do-list.png b/public/images/share/week-schedule-and-to-do-list.png new file mode 100644 index 000000000..9ec2a7148 Binary files /dev/null and b/public/images/share/week-schedule-and-to-do-list.png differ diff --git a/public/images/share/why-i-love-obsidian.png b/public/images/share/why-i-love-obsidian.png new file mode 100644 index 000000000..e3d54144f Binary files /dev/null and b/public/images/share/why-i-love-obsidian.png differ diff --git a/public/images/share/work-view-life-view.png b/public/images/share/work-view-life-view.png new file mode 100644 index 000000000..003221c1f Binary files /dev/null and b/public/images/share/work-view-life-view.png differ diff --git a/scripts/create_share_images.mjs b/scripts/create_share_images.mjs new file mode 100644 index 000000000..eb3880466 --- /dev/null +++ b/scripts/create_share_images.mjs @@ -0,0 +1,513 @@ +import { readFileSync, readdirSync, existsSync, mkdirSync } from 'fs' +import path from 'path' +import puppeteer from 'puppeteer-core' +import matter from 'gray-matter' +import pLimit from 'p-limit' +import { createCanvas } from 'canvas' +import * as d3 from 'd3' +// import date-fns +import { format } from 'date-fns' + +const limit = pLimit(2) +const imageRegex = /!\[(?:.*?)\]\((.*?\.(?:png|jpg|jpeg|gif|webp|svg))\)/ + +const __dirname = path.dirname(new URL(import.meta.url).pathname) +const sourceDirectory = path.join(__dirname, '../content/blog/') +const destinationDirectory = path.join(__dirname, '../public/images/share/') + +if (!existsSync(destinationDirectory)) { + mkdirSync(destinationDirectory, { recursive: true }) + console.log('Destination directory created:', destinationDirectory) +} + +const customCSS = ` + body { margin: 0; padding: 0; font-family: 'Inter', sans-serif; } + .container { width: 1200px; height: 630px; display: flex; flex-direction: column; justify-content: space-between; padding: 92px; box-sizing: border-box; background-size: cover; background-position: center; color: white; position: relative; } + .overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,0.6); } + .content { position: relative; z-index: 1; height: 100%; display: flex; flex-direction: column; justify-content: space-between; } + .header { display: flex; align-items: center; margin-bottom: 24px; } + .avatar { width: 36px; height: 36px; border-radius: 18px; margin-right: 12px; } + .author { font-size: 18px; font-weight: bold; } + .title { font-size: 52px; font-weight: bold; margin-bottom: 18px; word-wrap: break-word; overflow-wrap: break-word; } + .dek { font-size: 28px; margin-bottom: 16px; word-wrap: break-word; overflow-wrap: break-word; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; } + .footer { display: flex; justify-content: space-between; align-items: flex-start; } + .tags { display: flex; flex-wrap: wrap; max-width: 70%; } + .tag { background-color: rgba(59, 130, 246, 0.5); padding: 4px 8px; border-radius: 4px; margin-right: 8px; margin-bottom: 8px; } + .meta { display: flex; } + .meta-item { display: flex; align-items: center; margin-left: 16px; } + .icon { width: 20px; height: 20px; margin-right: 8px; } +` + +function generateHTMLContent( + frontmatter, + title, + imageUrl, + readTime, + wordCount, + imageCount, + linkCount, + href, +) { + const tags = Array.isArray(frontmatter.tags) + ? frontmatter.tags.slice(0, 5) + : [] + + let publishDate = frontmatter.date + ? new Date(frontmatter.date).toLocaleDateString('en-US', { + year: 'numeric', + month: 'long', + day: 'numeric', + }) + : new Date(frontmatter.modified).toLocaleDateString('en-US', { + year: 'numeric', + month: 'long', + day: 'numeric', + }) + + // if publishDate is undefined, make it an empty string + publishDate = publishDate ? publishDate : '' + return ` + + + + + +
+
+
+
+
+ EJ Fox + EJ Fox +
+

${title}

+

${frontmatter.dek || ''}

+
+ +
+
+ + + ` +} + +function formatDate(date) { + if (!date) { + return '' + } + // use date-fns + format(date, 'MMMM dd, yyyy') +} + +// use d3 to format numbers +function formatNumber(number) { + const formatter = d3.format(',') + return formatter(number) +} + +function countLinks(content) { + const linkRegex = /\[(?!!\[).*?\]\(.*?\)/g + const matches = content.match(linkRegex) + return matches ? matches.length : 0 +} + +// function generateBackgroundArt({ +// wordCount, +// readTime, +// imageCount, +// linkCount, +// text, +// }) { +// // set sane defaults for the arguments +// wordCount = wordCount || 500 +// readTime = readTime || 2 +// imageCount = imageCount || 3 +// linkCount = linkCount || 2 + +// const canvasWidth = 1200 +// const canvasHeight = 630 +// const padding = 24 // Padding from the edges +// const canvas = createCanvas(canvasWidth, canvasHeight) +// const ctx = canvas.getContext('2d') + +// // Background color +// ctx.fillStyle = 'rgb(50, 50, 50)' +// ctx.fillRect(0, 0, canvasWidth, canvasHeight) + +// // Process text to extract sentences, code blocks, images, and links +// const sentences = text.split(/(?/g) || [] +// const regularLinks = text.match(/\[.*?\]\(.*?\)/g) || [] // Match regular links + +// // Combine all elements into a single array, keeping their original order +// const combinedText = text +// .replace(/```[\s\S]*?```/g, '###CODE###') +// .replace(/!\[.*?\]\(.*?\)/g, '###IMAGE###') +// .replace(/\[.*?\]\(.*?\)/g, '###LINK###') + +// // split the text into sentences +// .split(/(? { +// if (fragment.includes('###CODE###')) { +// return { type: 'triangle', content: codeBlocks.shift() } +// } else if (fragment.includes('###IMAGE###')) { +// return { type: 'square', content: imageLinks.shift() } +// } else if (fragment.includes('###LINK###')) { +// return { type: 'stroked-circle', content: regularLinks.shift() } +// } else { +// return { type: 'circle', content: fragment } +// } +// }) + +// // Grid calculation +// const gridColumns = 32 // Number of elements per row (adjust as needed) +// const gridRows = Math.ceil(elements.length / gridColumns) +// const xSpacing = (canvasWidth - padding * 2) / gridColumns +// const ySpacing = (canvasHeight - padding * 2) / gridRows + +// const minSize = 4 +// const maxSize = 32 +// const sizeScale = d3.scaleSqrt().domain([0, 500]).range([minSize, maxSize]) + +// elements.forEach((element, i) => { +// // Calculate grid position with padding +// const x = padding + (i % gridColumns) * xSpacing + xSpacing / 2 +// const y = padding + Math.floor(i / gridColumns) * ySpacing + ySpacing / 2 + +// // Determine size based on content length (adjust the multiplier as needed) + +// const contentLength = element.content.length +// // const size = Math.min(maxSize, Math.max(minSize, contentLength * 0.5)) +// // we wanna use a d3 linear scale instead of a simple multiplication +// // const size = sizeScale(contentLength) +// // we need to make sure it does not exceed maxSize +// const size = Math.min(sizeScale(contentLength), maxSize) + +// const sizeTriangle = 24 +// const sizeSquare = 24 +// // Draw shape based on type +// ctx.fillStyle = 'rgba(250,250,250, 0.8)' +// ctx.strokeStyle = 'rgba(250,250,250, 0.92)' + +// switch (element.type) { +// case 'circle': +// ctx.beginPath() +// ctx.arc(x, y, size, 0, Math.PI * 2) +// ctx.fill() +// break +// case 'triangle': +// ctx.beginPath() +// ctx.moveTo(x, y - sizeTriangle) +// ctx.lineTo(x - sizeTriangle, y + sizeTriangle) +// ctx.lineTo(x + sizeTriangle, y + sizeTriangle) +// ctx.closePath() +// ctx.fill() +// break +// case 'square': +// // ctx.fillStyle = 'red' // Different color for images +// ctx.beginPath() +// ctx.rect(x - sizeSquare / 2, y - sizeSquare / 2, sizeSquare, sizeSquare) +// ctx.fill() +// break +// case 'stroked-circle': +// // ctx.strokeStyle = 'red' // Different color for links +// ctx.beginPath() +// ctx.arc(x, y, size, 0, Math.PI * 2) +// ctx.stroke() +// break +// } +// }) + +// return canvas.toDataURL() +// } + +function generateBackgroundArt({ + wordCount, + readTime, + imageCount, + linkCount, + text, +}) { + const canvasWidth = 1200 + const canvasHeight = 630 + const canvas = createCanvas(canvasWidth, canvasHeight) + const ctx = canvas.getContext('2d') + + // Set background + ctx.fillStyle = 'rgb(30, 30, 30)' + ctx.fillRect(0, 0, canvasWidth, canvasHeight) + + const elements = processText(text) + const totalLength = elements.reduce((sum, el) => sum + el.content.length, 0) + const baselineY = canvasHeight / 2 + const maxAmplitude = canvasHeight //* 0.75 + + let x = 0 + ctx.beginPath() + ctx.moveTo(0, baselineY) + ctx.strokeStyle = 'rgba(255, 255, 255, 0.7)' + ctx.lineWidth = 1.5 + + const drawSinWave = (startX, width, amplitude, frequency) => { + const points = 100 + for (let i = 0; i <= points; i++) { + const x = startX + (i / points) * width + const y = + baselineY + Math.sin((i / points) * Math.PI * 2 * frequency) * amplitude + ctx.lineTo(x, y) + } + } + + const drawTriWave = (startX, width, amplitude, frequency) => { + const points = 100 + for (let i = 0; i <= points; i++) { + const x = startX + (i / points) * width + const y = + baselineY + Math.sin((i / points) * Math.PI * 2 * frequency) * amplitude + ctx.lineTo(x, y) + } + } + + const drawCodeSquiggle = (startX, width, amplitude) => { + const points = 200 + for (let i = 0; i <= points; i++) { + const x = startX + (i / points) * width + const y = baselineY + Math.sin((i / points) * Math.PI * 20) * amplitude + ctx.lineTo(x, y) + } + } + + elements.forEach((element) => { + const elementWidth = (element.content.length / totalLength) * canvasWidth + + switch (element.type) { + case 'header': + // drawSinWave(x, elementWidth, maxAmplitude * 0.4, 1) + // just draw a straight line for headers + ctx.lineTo(x + elementWidth, baselineY) + break + case 'paragraph': + drawSinWave(x, elementWidth, maxAmplitude * 0.15, 2) + break + case 'code': + drawCodeSquiggle(x, elementWidth, maxAmplitude * 0.1) + break + case 'image': + drawTriWave(x, elementWidth, maxAmplitude * 0.01, 0.5) + break + default: + // For images, links, and any other types, just continue the last wave + ctx.lineTo(x + elementWidth, ctx.lastPathY || baselineY) + break + } + + x += elementWidth + }) + + ctx.stroke() + + // Add start and end markers + ctx.fillStyle = 'white' + ctx.beginPath() + ctx.arc(0, baselineY, 5, 0, Math.PI * 2) + ctx.fill() + ctx.beginPath() + ctx.arc(canvasWidth, baselineY, 5, 0, Math.PI * 2) + ctx.fill() + + return canvas.toDataURL() +} + +function processText(text) { + const sentences = text.split(/(? { + if (sentence.startsWith('#')) { + elements.push({ type: 'header', content: sentence }) + } else { + elements.push({ type: 'paragraph', content: sentence }) + } + }) + + codeBlocks.forEach((block) => { + elements.push({ type: 'code', content: block }) + }) + + imageLinks.forEach((link) => { + elements.push({ type: 'image', content: link }) + }) + + regularLinks.forEach((link) => { + elements.push({ type: 'link', content: link }) + }) + + return elements.sort( + (a, b) => text.indexOf(a.content) - text.indexOf(b.content), + ) +} + +async function generateShareImage( + frontmatter, + body, + destinationFilePath, + fileName, +) { + const title = getTitle(body) + const wordCount = body.split(/\s+/).length + const readTime = calculateReadTime(body) + const imageCount = countImages(body) + const linkCount = countLinks(body) + const imageUrl = + extractFirstImageUrl(body) || + generateBackgroundArt({ + wordCount, + readTime, + imageCount, + linkCount, + text: body, + }) + + const nameSlug = fileName.replace('.md', '') + + // the href is made from the filename slug + // we don't get it in the frontmatter slug + const href = `https://ejfox.com/blog/${nameSlug}` + + const htmlContent = generateHTMLContent( + frontmatter, + title, + imageUrl, + readTime, + wordCount, + imageCount, + linkCount, + href, + ) + + const browser = await puppeteer.launch({ + executablePath: + '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome', + headless: true, + }) + + try { + const page = await browser.newPage() + await page.setViewport({ width: 1200, height: 630 }) + + await page.setContent(htmlContent) + await page.evaluate((css) => { + const style = document.createElement('style') + style.textContent = css + document.head.appendChild(style) + }, customCSS) + + await page.waitForSelector('.container') + + await page.screenshot({ path: destinationFilePath, type: 'png' }) + } finally { + await browser.close() + } +} + +function getTitle(contentString) { + const titleRegex = /\n#+\s(.*)\n/ + const match = contentString.match(titleRegex) + return match ? match[1] : 'Untitled' +} + +function calculateReadTime(content) { + const wordsPerMinute = 200 + const wordCount = content.split(/\s+/).length + return Math.ceil(wordCount / wordsPerMinute) +} + +function countImages(content) { + const matches = content.match(imageRegex) + return matches ? matches.length : 0 +} + +function extractFirstImageUrl(content) { + const match = content.match(imageRegex) + return match ? match[1] : null +} + +async function processFile(fileName) { + try { + const sourceFilePath = path.join(sourceDirectory, fileName) + const fileContents = readFileSync(sourceFilePath, 'utf8') + const { data: frontmatter, content } = matter(fileContents) + + const destinationFilePath = path.join( + destinationDirectory, + fileName.replace('.md', '.png'), + ) + + await limit(() => + generateShareImage(frontmatter, content, destinationFilePath, fileName), + ) + console.log(`Successfully processed ${fileName}`) + } catch (error) { + console.error(`Error processing file ${fileName}:`, error) + } +} + +async function processFiles() { + const files = readdirSync(sourceDirectory) + for (const file of files) { + if (file.endsWith('.md')) { + if ( + !process.argv.includes('--file') || + file === process.argv[process.argv.indexOf('--file') + 1] + ) { + await processFile(file) + } + } + } +} + +// Main execution +if (process.argv.includes('--file')) { + const fileName = process.argv[process.argv.indexOf('--file') + 1] + processFile(fileName) +} else { + processFiles() +} diff --git a/yarn.lock b/yarn.lock index 6ed72902d..39e878332 100644 --- a/yarn.lock +++ b/yarn.lock @@ -249,13 +249,20 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-class-properties@^7.8.3": +"@babel/plugin-syntax-class-properties@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== dependencies: "@babel/helper-plugin-utils" "^7.12.13" +"@babel/plugin-syntax-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" + integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-decorators@^7.24.7": version "7.24.7" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.24.7.tgz#e4f8a0a8778ccec669611cd5aed1ed8e6e3a6fcf" @@ -263,14 +270,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-syntax-import-attributes@^7.22.5": +"@babel/plugin-syntax-import-attributes@^7.22.5", "@babel/plugin-syntax-import-attributes@^7.24.7": version "7.24.7" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz#b4f9ea95a79e6912480c4b626739f86a076624ca" integrity sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A== dependencies: "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-syntax-import-meta@^7.10.4", "@babel/plugin-syntax-import-meta@^7.8.3": +"@babel/plugin-syntax-import-meta@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== @@ -291,7 +298,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-syntax-logical-assignment-operators@^7.8.3": +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== @@ -305,7 +312,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-numeric-separator@^7.8.3": +"@babel/plugin-syntax-numeric-separator@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== @@ -333,7 +340,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-top-level-await@^7.8.3": +"@babel/plugin-syntax-private-property-in-object@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" + integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-top-level-await@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== @@ -824,9 +838,9 @@ "@iconify/types" "*" "@iconify/collections@^1.0.443": - version "1.0.448" - resolved "https://registry.yarnpkg.com/@iconify/collections/-/collections-1.0.448.tgz#c200885be64c8ea5e302d4959266c0e02f1bc494" - integrity sha512-JugNIZZRQVtPHkGcex1/xzI4rAbznaiwZsvGeu+YaFMOeDi2oxwTWD0OLL62EPgUvJ+H9PKg4i36ZqsYcma5bQ== + version "1.0.449" + resolved "https://registry.yarnpkg.com/@iconify/collections/-/collections-1.0.449.tgz#487adfcf71e125d7b48c2f4748a4046083b93044" + integrity sha512-qkAj2Qcsjqwh4H3vdgTQ+SGbbfvAxZXPDM8KG0gUtGFORAKuSES6UVoEuIPdT5rxtJaJw+Km/ucdJ+eCSmO8Xw== dependencies: "@iconify/types" "*" @@ -1177,7 +1191,12 @@ resolved "https://registry.yarnpkg.com/@kwsites/promise-deferred/-/promise-deferred-1.1.1.tgz#8ace5259254426ccef57f3175bc64ed7095ed919" integrity sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw== -"@mapbox/node-pre-gyp@^1.0.5": +"@lokesh.dhakar/quantize@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@lokesh.dhakar/quantize/-/quantize-1.3.0.tgz#04476889953aca94614fbc79e9a43adc7979179a" + integrity sha512-4KBSyaMj65d8A+2vnzLxtHFu4OmBU4IKO0yLxZ171Itdf9jGV4w+WbG7VsKts2jUdRkFSzsZqpZOz6hTB3qGAw== + +"@mapbox/node-pre-gyp@^1.0.0", "@mapbox/node-pre-gyp@^1.0.5": version "1.0.11" resolved "https://registry.yarnpkg.com/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz#417db42b7f5323d79e93b34a6d7a2a12c0df43fa" integrity sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ== @@ -2028,17 +2047,17 @@ lodash.merge "^4.6.2" postcss-selector-parser "6.0.10" -"@tanstack/virtual-core@3.8.6": - version "3.8.6" - resolved "https://registry.yarnpkg.com/@tanstack/virtual-core/-/virtual-core-3.8.6.tgz#ccecf84099a9a0e9732b4f17bf021b82f215d15e" - integrity sha512-UJeU4SBrx3hqULNzJ3oC0kgJ5miIAg+FwomxMTlQNxob6ppTInifANHd9ukETvzdzxr6zt3CjQ0rttQpVjbt6Q== +"@tanstack/virtual-core@3.9.0": + version "3.9.0" + resolved "https://registry.yarnpkg.com/@tanstack/virtual-core/-/virtual-core-3.9.0.tgz#60db41fe8a19bb1a21873d86d8731416391e838a" + integrity sha512-Saga7/QRGej/IDCVP5BgJ1oDqlDT2d9rQyoflS3fgMS8ntJ8JGw/LBqK2GorHa06+VrNFc0tGz65XQHJQJetFQ== "@tanstack/vue-virtual@^3.0.0-beta.60": - version "3.8.6" - resolved "https://registry.yarnpkg.com/@tanstack/vue-virtual/-/vue-virtual-3.8.6.tgz#c37a11ee8a03f04eaeaca7523eaa3963098e0728" - integrity sha512-nWwmlFuxChPM6bWEwKOyBBYVrQmvSKSArXhbvX2IyVTpuif9UZiBEvIXnftpCEGRvAGSe7lE1coXHk8g2qmwtQ== + version "3.9.0" + resolved "https://registry.yarnpkg.com/@tanstack/vue-virtual/-/vue-virtual-3.9.0.tgz#23e141aae10218f430fcd15f0b3891ac31300930" + integrity sha512-MVJhQh57OR3wg2pWL/25IN1/nITFNnpFaz4gOvRCqnxhsH0WRePBBKvixOaFTgiyYfmrjFbb4d0nRMTvsjZZdQ== dependencies: - "@tanstack/virtual-core" "3.8.6" + "@tanstack/virtual-core" "3.9.0" "@tootallnate/quickjs-emscripten@^0.23.0": version "0.23.0" @@ -3612,12 +3631,12 @@ "@types/node" "*" form-data "^4.0.0" -"@types/node@*", "@types/node@>=8.1.0", "@types/node@^22.1.0", "@types/node@^22.2.0": - version "22.2.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-22.2.0.tgz#7cf046a99f0ba4d628ad3088cb21f790df9b0c5b" - integrity sha512-bm6EG6/pCpkxDf/0gDNDdtDILMOHgaQBVOJGdwsqClnxA3xL6jtMv76rLBc006RVMWbmaf0xbmom4Z/5o2nRkQ== +"@types/node@*", "@types/node@>=8.1.0", "@types/node@^22.1.0", "@types/node@^22.3.0": + version "22.3.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.3.0.tgz#7f8da0e2b72c27c4f9bd3cb5ef805209d04d4f9e" + integrity sha512-nrWpWVaDZuaVc5X84xJ0vNrLvomM205oQyLsRt7OHNZbSHslcWsvgFR7O7hire2ZonjLrWBbedmotmIlJDVd6g== dependencies: - undici-types "~6.13.0" + undici-types "~6.18.2" "@types/node@^18.11.18": version "18.19.44" @@ -4084,6 +4103,16 @@ agentkeepalive@^4.2.1: dependencies: humanize-ms "^1.2.1" +ajv@^6.12.3: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + animejs@^3.2.2: version "3.2.2" resolved "https://registry.yarnpkg.com/animejs/-/animejs-3.2.2.tgz#59be98c58834339d5847f4a70ddba74ac75b6afc" @@ -4212,6 +4241,18 @@ argparse@^2.0.1: resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== +asn1@~0.2.3: + version "0.2.6" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" + integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== + ast-kit@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/ast-kit/-/ast-kit-1.0.1.tgz#647c64d997f3d85ccbeb221a4cd409549d7da5ca" @@ -4227,7 +4268,7 @@ ast-types@^0.13.4: dependencies: tslib "^2.0.1" -ast-walker-scope@^0.6.1: +ast-walker-scope@^0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/ast-walker-scope/-/ast-walker-scope-0.6.2.tgz#b827e8949c129802f76fe0f142e95fd7efda57dc" integrity sha512-1UWOyC50xI3QZkRuDj6PqDtpm1oHWtYs+NQGwqL/2R11eN3Q81PHAHPM0SWW3BNQm53UDwS//Jv8L4CCVLM1bQ== @@ -4274,6 +4315,16 @@ autoprefixer@^10.4.19: picocolors "^1.0.1" postcss-value-parser "^4.2.0" +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== + +aws4@^1.8.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.13.1.tgz#bb5f8b8a20739f6ae1caeaf7eea2c7913df8048e" + integrity sha512-u5w79Rd7SU4JaIlA/zFqG+gOiuq25q5VLyZ8E+ijJeILuTxVzZgp2CaGw/UTw6pXYN9XMO9yiqj/nEHmhTG5CA== + axios@^0.18.1: version "0.18.1" resolved "https://registry.yarnpkg.com/axios/-/axios-0.18.1.tgz#ff3f0de2e7b5d180e757ad98000f1081b87bcea3" @@ -4299,22 +4350,25 @@ babel-plugin-istanbul@^6.1.1: test-exclude "^6.0.0" babel-preset-current-node-syntax@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" - integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== + version "1.1.0" + resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz#9a929eafece419612ef4ae4f60b1862ebad8ef30" + integrity sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw== dependencies: "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-bigint" "^7.8.3" - "@babel/plugin-syntax-class-properties" "^7.8.3" - "@babel/plugin-syntax-import-meta" "^7.8.3" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-import-attributes" "^7.24.7" + "@babel/plugin-syntax-import-meta" "^7.10.4" "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" "@babel/plugin-syntax-object-rest-spread" "^7.8.3" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-top-level-await" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" bail@^2.0.0: version "2.0.2" @@ -4369,6 +4423,13 @@ basic-ftp@^5.0.2: resolved "https://registry.yarnpkg.com/basic-ftp/-/basic-ftp-5.0.5.tgz#14a474f5fffecca1f4f406f1c26b18f800225ac0" integrity sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg== +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== + dependencies: + tweetnacl "^0.14.3" + binary-extensions@^2.0.0: version "2.3.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" @@ -4569,6 +4630,20 @@ caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001646: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001651.tgz#52de59529e8b02b1aedcaaf5c05d9e23c0c28138" integrity sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg== +canvas@^2.11.2: + version "2.11.2" + resolved "https://registry.yarnpkg.com/canvas/-/canvas-2.11.2.tgz#553d87b1e0228c7ac0fc72887c3adbac4abbd860" + integrity sha512-ItanGBMrmRV7Py2Z+Xhs7cT+FNt5K0vPL4p9EZ/UX/Mu7hFbkxSjKF2KVtPwX7UYWp7dRKnrTvReflgrItJbdw== + dependencies: + "@mapbox/node-pre-gyp" "^1.0.0" + nan "^2.17.0" + simple-get "^3.0.3" + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== + ccount@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/ccount/-/ccount-2.0.1.tgz#17a3bf82302e0870d6da43a01311a8bc02a3ecf5" @@ -4808,7 +4883,15 @@ colord@^2.9.3: resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== -combined-stream@^1.0.8: +colorthief@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/colorthief/-/colorthief-2.4.0.tgz#74e6edd142695655bd5f52c7f8116b125ea2b2bd" + integrity sha512-0U48RGNRo5fVO+yusBwgp+d3augWSorXabnqXUu9SabEhCpCgZJEUjUTTI41OOBBYuMMxawa3177POT6qLfLeQ== + dependencies: + "@lokesh.dhakar/quantize" "^1.3.0" + get-pixels "^3.3.2" + +combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== @@ -4938,6 +5021,11 @@ copy-anything@^3.0.2: dependencies: is-what "^4.1.8" +core-util-is@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== + core-util-is@~1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" @@ -5122,6 +5210,13 @@ csstype@^3.1.3: resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== +cwise-compiler@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/cwise-compiler/-/cwise-compiler-1.1.3.tgz#f4d667410e850d3a313a7d2db7b1e505bb034cc5" + integrity sha512-WXlK/m+Di8DMMcCjcWr4i+XzcQra9eCdXIJrgh4TUgh0pIS/yJduLxS9JgefsHJ/YVLdgPtXm9r62W92MvanEQ== + dependencies: + uniq "^1.0.0" + cytoscape-cose-bilkent@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/cytoscape-cose-bilkent/-/cytoscape-cose-bilkent-4.1.0.tgz#762fa121df9930ffeb51a495d87917c570ac209b" @@ -5435,6 +5530,18 @@ dagre-d3-es@7.0.10: d3 "^7.8.2" lodash-es "^4.17.21" +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== + dependencies: + assert-plus "^1.0.0" + +data-uri-to-buffer@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-0.0.3.tgz#18ae979a6a0ca994b0625853916d2662bbae0b1a" + integrity sha512-Cp+jOa8QJef5nXS5hU7M1DWzXPEIoVR3kbV0dQuVGwROZg8bGf1DcCnkmajBTnvghTtSNMUdRrPjgaT6ZQucbw== + data-uri-to-buffer@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz#8a58bb67384b261a38ef18bea1810cb01badd28b" @@ -5497,6 +5604,13 @@ decode-named-character-reference@^1.0.0: dependencies: character-entities "^2.0.0" +decompress-response@^4.2.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-4.2.1.tgz#414023cc7a302da25ce2ec82d0d5238ccafd8986" + integrity sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw== + dependencies: + mimic-response "^2.0.0" + decompress-response@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" @@ -5726,15 +5840,23 @@ eastasianwidth@^0.2.0: resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== electron-to-chromium@^1.5.4: - version "1.5.6" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.6.tgz#c81d9938b5a877314ad370feb73b4e5409b36abd" - integrity sha512-jwXWsM5RPf6j9dPYzaorcBSUg6AiqocPEyMpkchkvntaH9HGfOOMZwxMJjDY/XEs3T5dM7uyH1VhRMkqUU9qVw== + version "1.5.7" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.7.tgz#425d2a7f76ecfa564fdca1040d11fb1979851f3c" + integrity sha512-6FTNWIWMxMy/ZY6799nBlPtF1DFDQ6VQJ7yyDP27SJNt5lwtQ5ufqVvHylb3fdQefvRcgA3fKcFMJi9OLwBRNw== elkjs@^0.9.0: version "0.9.3" @@ -6080,7 +6202,14 @@ expect@^29.7.0: jest-message-util "^29.7.0" jest-util "^29.7.0" -extend@^3.0.0: +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug== + dependencies: + is-extendable "^0.1.0" + +extend@^3.0.0, extend@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== @@ -6115,7 +6244,17 @@ extract-zip@2.0.1: optionalDependencies: "@types/yauzl" "^2.9.1" -fast-deep-equal@^3.1.3: +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== + +extsprintf@^1.2.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" + integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== @@ -6136,7 +6275,7 @@ fast-glob@^3.2.7, fast-glob@^3.3.0, fast-glob@^3.3.2: merge2 "^1.3.0" micromatch "^4.0.4" -fast-json-stable-stringify@^2.1.0: +fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== @@ -6227,6 +6366,11 @@ foreground-child@^3.1.0: cross-spawn "^7.0.0" signal-exit "^4.0.1" +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== + form-data-encoder@1.7.2: version "1.7.2" resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-1.7.2.tgz#1f1ae3dccf58ed4690b86d87e4f57c654fbab040" @@ -6241,6 +6385,15 @@ form-data@^4.0.0: combined-stream "^1.0.8" mime-types "^2.1.12" +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + formdata-node@^4.3.2: version "4.4.1" resolved "https://registry.yarnpkg.com/formdata-node/-/formdata-node-4.4.1.tgz#23f6a5cb9cb55315912cbec4ff7b0f59bbd191e2" @@ -6384,6 +6537,23 @@ get-package-type@^0.1.0: resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== +get-pixels@^3.3.2: + version "3.3.3" + resolved "https://registry.yarnpkg.com/get-pixels/-/get-pixels-3.3.3.tgz#71e2dfd4befb810b5478a61c6354800976ce01c7" + integrity sha512-5kyGBn90i9tSMUVHTqkgCHsoWoR+/lGbl4yC83Gefyr0HLIhgSWEx/2F/3YgsZ7UpYNuM6pDhDK7zebrUJ5nXg== + dependencies: + data-uri-to-buffer "0.0.3" + jpeg-js "^0.4.1" + mime-types "^2.0.1" + ndarray "^1.0.13" + ndarray-pack "^1.1.1" + node-bitmap "0.0.1" + omggif "^1.0.5" + parse-data-uri "^0.2.0" + pngjs "^3.3.3" + request "^2.44.0" + through "^2.3.4" + get-port-please@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/get-port-please/-/get-port-please-3.1.2.tgz#502795e56217128e4183025c89a48c71652f4e49" @@ -6416,6 +6586,13 @@ get-uri@^6.0.1: debug "^4.3.4" fs-extra "^11.2.0" +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== + dependencies: + assert-plus "^1.0.0" + giget@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/giget/-/giget-1.2.3.tgz#ef6845d1140e89adad595f7f3bb60aa31c672cb6" @@ -6555,6 +6732,16 @@ graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.9: resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== +gray-matter@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/gray-matter/-/gray-matter-4.0.3.tgz#e893c064825de73ea1f5f7d88c7a9f7274288798" + integrity sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q== + dependencies: + js-yaml "^3.13.1" + kind-of "^6.0.2" + section-matter "^1.0.0" + strip-bom-string "^1.0.0" + gzip-size@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-7.0.0.tgz#9f9644251f15bc78460fccef4055ae5a5562ac60" @@ -6578,6 +6765,19 @@ h3@^1.10.0, h3@^1.10.2, h3@^1.11.1, h3@^1.12.0: uncrypto "^0.1.3" unenv "^1.9.0" +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== + +har-validator@~5.1.3: + version "5.1.5" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" + integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== + dependencies: + ajv "^6.12.3" + har-schema "^2.0.0" + has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" @@ -6825,6 +7025,15 @@ http-shutdown@^1.2.2: resolved "https://registry.yarnpkg.com/http-shutdown/-/http-shutdown-1.2.2.tgz#41bc78fc767637c4c95179bc492f312c0ae64c5f" integrity sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw== +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ== + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + https-proxy-agent@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" @@ -6995,6 +7204,11 @@ ioredis@^5.4.1: redis-parser "^3.0.0" standard-as-callback "^2.1.0" +iota-array@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/iota-array/-/iota-array-1.0.0.tgz#81ef57fe5d05814cd58c2483632a99c30a0e8087" + integrity sha512-pZ2xT+LOHckCatGQ3DcG/a+QuEqvoxqkiL7tvE8nn3uuu+f6i1TtpB5/FtWFbxUuVr5PZCx8KskuGatbJDXOWA== + ip-address@^9.0.5: version "9.0.5" resolved "https://registry.yarnpkg.com/ip-address/-/ip-address-9.0.5.tgz#117a960819b08780c3bd1f14ef3c1cc1d3f3ea5a" @@ -7078,6 +7292,11 @@ is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" +is-buffer@^1.0.2: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + is-buffer@^2.0.0, is-buffer@^2.0.2: version "2.0.5" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" @@ -7117,6 +7336,11 @@ is-docker@^3.0.0: resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200" integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== +is-extendable@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== + is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" @@ -7215,6 +7439,11 @@ is-stream@^3.0.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== + is-what@^4.1.8: version "4.1.16" resolved "https://registry.yarnpkg.com/is-what/-/is-what-4.1.16.tgz#1ad860a19da8b4895ad5495da3182ce2acdd7a6f" @@ -7251,6 +7480,11 @@ isexe@^2.0.0: resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== + istanbul-lib-coverage@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz#2d166c4b0644d43a39f04bf6c2edd1e585f31756" @@ -7402,6 +7636,11 @@ jiti@^1.21.0, jiti@^1.21.6: resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.6.tgz#6c7f7398dd4b3142767f9a168af2f317a428d268" integrity sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w== +jpeg-js@^0.4.1: + version "0.4.4" + resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.4.4.tgz#a9f1c6f1f9f0fa80cdb3484ed9635054d28936aa" + integrity sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg== + js-md5@^0.8.3: version "0.8.3" resolved "https://registry.yarnpkg.com/js-md5/-/js-md5-0.8.3.tgz#921bab7efa95bfc9d62b87ee08a57f8fe4305b69" @@ -7437,6 +7676,11 @@ jsbn@1.1.0: resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-1.1.0.tgz#b01307cb29b618a1ed26ec79e911f803c4da0040" integrity sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A== +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== + jsesc@^2.5.1: version "2.5.2" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" @@ -7447,6 +7691,21 @@ json-parse-even-better-errors@^2.3.0: resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" + integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== + +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== + json5@^2.2.3: version "2.2.3" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" @@ -7461,6 +7720,16 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" +jsprim@^1.2.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" + integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.4.0" + verror "1.10.0" + jsts@2.7.1: version "2.7.1" resolved "https://registry.yarnpkg.com/jsts/-/jsts-2.7.1.tgz#a921c0cc9eefeef588bd53e952e0a7782d812d52" @@ -7485,6 +7754,11 @@ khroma@^2.0.0: resolved "https://registry.yarnpkg.com/khroma/-/khroma-2.1.0.tgz#45f2ce94ce231a437cf5b63c2e886e6eb42bbbb1" integrity sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw== +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + kleur@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" @@ -8534,7 +8808,7 @@ mime-types@2.1.13: dependencies: mime-db "~1.25.0" -mime-types@^2.1.12, mime-types@^2.1.18, mime-types@~2.1.24, mime-types@~2.1.34: +mime-types@^2.0.1, mime-types@^2.1.12, mime-types@^2.1.18, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== @@ -8566,6 +8840,11 @@ mimic-fn@^4.0.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== +mimic-response@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43" + integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA== + mimic-response@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" @@ -8723,6 +9002,11 @@ mz@^2.7.0: object-assign "^4.0.1" thenify-all "^1.0.0" +nan@^2.17.0: + version "2.20.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.20.0.tgz#08c5ea813dd54ed16e5bd6505bf42af4f7838ca3" + integrity sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw== + nanoid@^3.3.4, nanoid@^3.3.7: version "3.3.7" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" @@ -8748,6 +9032,22 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== +ndarray-pack@^1.1.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ndarray-pack/-/ndarray-pack-1.2.1.tgz#8caebeaaa24d5ecf70ff86020637977da8ee585a" + integrity sha512-51cECUJMT0rUZNQa09EoKsnFeDL4x2dHRT0VR5U2H5ZgEcm95ZDWcMA5JShroXjHOejmAD/fg8+H+OvUnVXz2g== + dependencies: + cwise-compiler "^1.1.2" + ndarray "^1.0.13" + +ndarray@^1.0.13: + version "1.0.19" + resolved "https://registry.yarnpkg.com/ndarray/-/ndarray-1.0.19.tgz#6785b5f5dfa58b83e31ae5b2a058cfd1ab3f694e" + integrity sha512-B4JHA4vdyZU30ELBw3g7/p9bZupyew5a7tX1Y/gGeF2hafrPaQZhgrGQfsvgfYbgdFZjYwuEcnaobeM/WMW+HQ== + dependencies: + iota-array "^1.0.0" + is-buffer "^1.0.2" + negotiator@0.6.3: version "0.6.3" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" @@ -8847,6 +9147,11 @@ node-addon-api@^7.0.0: resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-7.1.1.tgz#1aba6693b0f255258a049d621329329322aad558" integrity sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ== +node-bitmap@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/node-bitmap/-/node-bitmap-0.0.1.tgz#180eac7003e0c707618ef31368f62f84b2a69091" + integrity sha512-Jx5lPaaLdIaOsj2mVLWMWulXF6GQVdyLvNSxmiYCvZ8Ma2hfKX0POoR2kgKOqz+oFsRreq0yYZjQ2wjE9VNzCA== + node-domexception@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" @@ -8954,16 +9259,6 @@ nuxi@^3.12.0: optionalDependencies: fsevents "~2.3.3" -nuxt-gtag@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/nuxt-gtag/-/nuxt-gtag-2.1.0.tgz#c300f1780b090c41b5543fde0c5a64ae99404469" - integrity sha512-06ES+hgMs5l98bHmsLyltbJXfVr1LAkm/5gwcncdNkz96+D0fVA+RhecIp06iDQXF+YPBE2xAgB4G5PnUn8drA== - dependencies: - "@nuxt/kit" "^3.12.3" - defu "^6.1.4" - pathe "^1.1.2" - ufo "^1.5.3" - nuxt@^3.12.4: version "3.12.4" resolved "https://registry.yarnpkg.com/nuxt/-/nuxt-3.12.4.tgz#d1c2aa26aa90aefb8ac08bd9a5648851e4db91af" @@ -9041,6 +9336,11 @@ nypm@^0.3.8, nypm@^0.3.9: pkg-types "^1.1.1" ufo "^1.5.3" +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + object-assign@^4.0.1, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" @@ -9070,6 +9370,11 @@ ohash@^1.1.3: resolved "https://registry.yarnpkg.com/ohash/-/ohash-1.1.3.tgz#f12c3c50bfe7271ce3fd1097d42568122ccdcf07" integrity sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw== +omggif@^1.0.5: + version "1.0.10" + resolved "https://registry.yarnpkg.com/omggif/-/omggif-1.0.10.tgz#ddaaf90d4a42f532e9e7cb3a95ecdd47f17c7b19" + integrity sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw== + on-finished@2.4.1, on-finished@^2.3.0: version "2.4.1" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" @@ -9131,9 +9436,9 @@ open@^8.4.0: is-wsl "^2.2.0" openai@^4.28.0: - version "4.55.5" - resolved "https://registry.yarnpkg.com/openai/-/openai-4.55.5.tgz#dccd7fd42ee76a4135498494d5161dc9f9a44aa4" - integrity sha512-9OkMAMljFv1LxUFf5HLm/pw7zFd4yMgW+lKOYF80RBwuGWU+ZKF5BQGll+TEGAHu23YMeT8t6VSxI27c/DRAOA== + version "4.55.7" + resolved "https://registry.yarnpkg.com/openai/-/openai-4.55.7.tgz#2bba4ae9224ad205c0d087d1412fe95421397dff" + integrity sha512-I2dpHTINt0Zk+Wlns6KzkKu77MmNW3VfIIQf5qYziEUI6t7WciG1zTobfKqdPzBmZi3TTM+3DtjPumxQdcvzwA== dependencies: "@types/node" "^18.11.18" "@types/node-fetch" "^2.6.4" @@ -9174,6 +9479,13 @@ p-limit@^3.0.2: dependencies: yocto-queue "^0.1.0" +p-limit@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-6.1.0.tgz#d91f9364d3fdff89b0a45c70d04ad4e0df30a0e8" + integrity sha512-H0jc0q1vOzlEk0TqAKXKZxdl7kX3OFUzCnNVUnq5Pc3DGo0kpeaMuPqxQn235HibwBEb0/pm9dgKTjXy66fBkg== + dependencies: + yocto-queue "^1.1.1" + p-locate@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" @@ -9227,6 +9539,13 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" +parse-data-uri@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/parse-data-uri/-/parse-data-uri-0.2.0.tgz#bf04d851dd5c87b0ab238e5d01ace494b604b4c9" + integrity sha512-uOtts8NqDcaCt1rIsO3VFDRsAfgE4c6osG4d9z3l4dCBlxYFzni6Di/oNU270SDrjkfZuUvLZx1rxMyqh46Y9w== + dependencies: + data-uri-to-buffer "0.0.3" + parse-entities@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-2.0.0.tgz#53c6eb5b9314a1f4ec99fa0fdf7ce01ecda0cbe8" @@ -9360,6 +9679,11 @@ perfect-debounce@^1.0.0: resolved "https://registry.yarnpkg.com/perfect-debounce/-/perfect-debounce-1.0.0.tgz#9c2e8bc30b169cc984a58b7d5b28049839591d2a" integrity sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA== +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== + picocolors@^1.0.0, picocolors@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1" @@ -9394,6 +9718,11 @@ playwright-core@^1.0.0: resolved "https://registry.yarnpkg.com/playwright-core/-/playwright-core-1.46.0.tgz#2336ac453a943abf0dc95a76c117f9d3ebd390eb" integrity sha512-9Y/d5UIwuJk8t3+lhmMSAJyNP1BUC/DqP3cQJDQQL/oWqAiuPTLgy7Q5dzglmTLwcBRdetzgNM/gni7ckfTr6A== +pngjs@^3.3.3: + version "3.4.0" + resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f" + integrity sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w== + point-in-polygon-hao@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/point-in-polygon-hao/-/point-in-polygon-hao-1.1.0.tgz#37f5f4fbe14e89fa8a3bb7f67c9158079d2ede7c" @@ -9784,6 +10113,11 @@ proxy-from-env@^1.1.0: resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== +psl@^1.1.28: + version "1.9.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" + integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== + pump@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" @@ -9792,6 +10126,11 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" +punycode@^2.1.0, punycode@^2.1.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== + puppeteer-core@20.9.0: version "20.9.0" resolved "https://registry.yarnpkg.com/puppeteer-core/-/puppeteer-core-20.9.0.tgz#6f4b420001b64419deab38d398a4d9cd071040e6" @@ -9825,6 +10164,11 @@ qs@^6.11.0, qs@^6.5.1: dependencies: side-channel "^1.0.6" +qs@~6.5.2: + version "6.5.3" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" + integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== + queue-microtask@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" @@ -10169,6 +10513,32 @@ replace-in-file@^6.1.0: glob "^7.2.0" yargs "^17.2.1" +request@^2.44.0: + version "2.88.2" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -10327,7 +10697,7 @@ sade@^1.7.3: dependencies: mri "^1.1.0" -safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.2.0: +safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== @@ -10337,7 +10707,7 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== @@ -10347,6 +10717,14 @@ scule@^1.2.0, scule@^1.3.0: resolved "https://registry.yarnpkg.com/scule/-/scule-1.3.0.tgz#6efbd22fd0bb801bdcc585c89266a7d2daa8fbd3" integrity sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g== +section-matter@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/section-matter/-/section-matter-1.0.0.tgz#e9041953506780ec01d59f292a19c7b850b84167" + integrity sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA== + dependencies: + extend-shallow "^2.0.1" + kind-of "^6.0.0" + semver@^6.0.0, semver@^6.3.0, semver@^6.3.1: version "6.3.1" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" @@ -10491,6 +10869,15 @@ simple-concat@^1.0.0: resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== +simple-get@^3.0.3: + version "3.1.1" + resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-3.1.1.tgz#cc7ba77cfbe761036fbfce3d021af25fc5584d55" + integrity sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA== + dependencies: + decompress-response "^4.2.0" + once "^1.3.1" + simple-concat "^1.0.0" + simple-get@^4.0.0, simple-get@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-4.0.1.tgz#4a39db549287c979d352112fa03fd99fd6bc3543" @@ -10655,6 +11042,21 @@ sprintf-js@~1.0.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== +sshpk@^1.7.0: + version "1.18.0" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.18.0.tgz#1663e55cddf4d688b86a46b77f0d5fe363aba028" + integrity sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + stack-utils@^2.0.3: version "2.0.6" resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f" @@ -10693,16 +11095,7 @@ streamx@^2.15.0, streamx@^2.18.0: optionalDependencies: bare-events "^2.2.0" -"string-width-cjs@npm:string-width@^4.2.0": - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -10742,14 +11135,7 @@ stringify-entities@^4.0.3: character-entities-html4 "^2.0.0" character-entities-legacy "^3.0.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -10763,6 +11149,11 @@ strip-ansi@^7.0.1: dependencies: ansi-regex "^6.0.1" +strip-bom-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92" + integrity sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g== + strip-final-newline@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" @@ -10915,9 +11306,9 @@ tailwind-merge@^2.4.0: integrity sha512-kjEBm+pvD+6eAwzJL2Bi+02/9LFLal1Gs61+QB7HvTfQQ0aXwC5LGT8PEt1gS0CWKktKe6ysPTAy3cBC5MeiIg== tailwindcss@^3.4.7, tailwindcss@~3.4.4: - version "3.4.9" - resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.4.9.tgz#9e04cddce1924d530df62af37d3520f0e2a9d85e" - integrity sha512-1SEOvRr6sSdV5IDf9iC+NU4dhwdqzF4zKKq3sAbasUWHEM6lsMhX+eNN5gkPx1BvLFEnZQEUFbXnGj8Qlp83Pg== + version "3.4.10" + resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.4.10.tgz#70442d9aeb78758d1f911af29af8255ecdb8ffef" + integrity sha512-KWZkVPm7yJRhdu4SRSl9d4AK2wM3a50UsvgHZO7xY77NQr2V+fIrEuoDGQcbvswWvFGbS2f6e+jC/6WJm1Dl0w== dependencies: "@alloc/quick-lru" "^5.2.0" arg "^5.0.2" @@ -11010,9 +11401,9 @@ tar@^6.1.11, tar@^6.2.0: yallist "^4.0.0" terser@^5.17.4: - version "5.31.5" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.31.5.tgz#e48b7c65f32d2808e7dad803e4586a0bc3829b87" - integrity sha512-YPmas0L0rE1UyLL/llTWA0SiDOqIcAQYLeUj7cJYzXHlRTAnMSg9pPe4VJ5PlKvTrPQsdVFuiRiwyeNlYgwh2Q== + version "5.31.6" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.31.6.tgz#c63858a0f0703988d0266a82fcbf2d7ba76422b1" + integrity sha512-PQ4DAriWzKj+qgehQ7LK5bQqCFNMmlhjR2PFFLuqGCpuCAauxemVBWwWOxo3UIwWQx8+Pr61Df++r76wDmkQBg== dependencies: "@jridgewell/source-map" "^0.3.3" acorn "^8.8.2" @@ -11049,7 +11440,7 @@ thenify-all@^1.0.0: dependencies: any-promise "^1.0.0" -through@^2.3.6, through@^2.3.8: +through@^2.3.4, through@^2.3.6, through@^2.3.8: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== @@ -11117,6 +11508,14 @@ totalist@^3.0.0: resolved "https://registry.yarnpkg.com/totalist/-/totalist-3.0.1.tgz#ba3a3d600c915b1a97872348f79c127475f6acf8" integrity sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ== +tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + tr46@~0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" @@ -11169,6 +11568,11 @@ tunnel-agent@^0.6.0: dependencies: safe-buffer "^5.0.1" +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== + type-detect@4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" @@ -11230,10 +11634,10 @@ undici-types@~5.26.4: resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== -undici-types@~6.13.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.13.0.tgz#e3e79220ab8c81ed1496b5812471afd7cf075ea5" - integrity sha512-xtFJHudx8S2DSoujjMd1WeWvn7KKWFRESZTMeL1RptAYERu29D6jphMjjY+vn96jvN3kVPDNxU/E13VTaXj6jg== +undici-types@~6.18.2: + version "6.18.2" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.18.2.tgz#8b678cf939d4fc9ec56be3c68ed69c619dee28b0" + integrity sha512-5ruQbENj95yDYJNS3TvcaxPMshV7aizdv/hWYjGIKoANWKjhWNBsr2YEuYZKodQulB1b8l7ILOuDQep3afowQQ== undici@^5.28.4: version "5.28.4" @@ -11330,6 +11734,11 @@ unimport@^3.7.2, unimport@^3.9.0: strip-literal "^2.1.0" unplugin "^1.12.0" +uniq@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + integrity sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA== + unist-builder@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/unist-builder/-/unist-builder-4.0.0.tgz#817b326c015a6f9f5e92bb55b8e8bc5e578fe243" @@ -11437,18 +11846,19 @@ universalify@^2.0.0: integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== unplugin-vue-router@^0.10.0: - version "0.10.3" - resolved "https://registry.yarnpkg.com/unplugin-vue-router/-/unplugin-vue-router-0.10.3.tgz#ddc324f6ec2c9cf24f9b253163c42e077d333b67" - integrity sha512-qyR3etefMT2U6gBz8li6vFhIdGMib1wCZ7iqwYNEk22qBvx7i/LmFTrNsDpNpPpwXlfM6xOITd6yfVo9pPQklw== + version "0.10.4" + resolved "https://registry.yarnpkg.com/unplugin-vue-router/-/unplugin-vue-router-0.10.4.tgz#4bc00d0dfe92fefff46e4edbf238b47f16de9899" + integrity sha512-PXnUnX/MPCI/YaxmfYxE1JVc/5n7QGLGWJtIB8aI1hsQA/A14T+39d+wHxDnWzFJd5VXsGusV3G/RREdocbYGQ== dependencies: "@babel/types" "^7.25.2" "@rollup/pluginutils" "^5.1.0" "@vue-macros/common" "^1.12.2" - ast-walker-scope "^0.6.1" + ast-walker-scope "^0.6.2" chokidar "^3.6.0" fast-glob "^3.3.2" json5 "^2.2.3" local-pkg "^0.5.0" + magic-string "^0.30.11" mlly "^1.7.1" pathe "^1.1.2" scule "^1.3.0" @@ -11528,6 +11938,13 @@ uqr@^0.1.2: resolved "https://registry.yarnpkg.com/uqr/-/uqr-0.1.2.tgz#5c6cd5dcff9581f9bb35b982cb89e2c483a41d7d" integrity sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA== +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + urlpattern-polyfill@8.0.2: version "8.0.2" resolved "https://registry.yarnpkg.com/urlpattern-polyfill/-/urlpattern-polyfill-8.0.2.tgz#99f096e35eff8bf4b5a2aa7d58a1523d6ebc7ce5" @@ -11543,6 +11960,11 @@ uuid@^10.0.0: resolved "https://registry.yarnpkg.com/uuid/-/uuid-10.0.0.tgz#5a95aa454e6e002725c79055fd42aaba30ca6294" integrity sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ== +uuid@^3.3.2: + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + uuid@^9.0.0: version "9.0.1" resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" @@ -11563,6 +11985,15 @@ vary@^1.1.2: resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + vfile-location@^5.0.0: version "5.0.3" resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-5.0.3.tgz#cb9eacd20f2b6426d19451e0eafa3d0a846225c3" @@ -11847,7 +12278,7 @@ wide-align@^1.1.2: dependencies: string-width "^1.0.2 || 2 || 3 || 4" -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -11865,15 +12296,6 @@ wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - wrap-ansi@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" @@ -11998,6 +12420,11 @@ yocto-queue@^0.1.0: resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== +yocto-queue@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.1.1.tgz#fef65ce3ac9f8a32ceac5a634f74e17e5b232110" + integrity sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g== + yoctocolors-cjs@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz#f4b905a840a37506813a7acaa28febe97767a242"