From 46e27ed75d22330b2355aea934e6358b24710448 Mon Sep 17 00:00:00 2001 From: jiyuujin Date: Sat, 12 Oct 2024 19:48:15 +0900 Subject: [PATCH 1/4] update readme --- apps/web-docs/supabase/db/attendee.md | 2 +- apps/web-docs/supabase/db/job.md | 4 ++-- apps/web-docs/supabase/db/speaker.md | 2 +- apps/web-docs/supabase/db/sponsor.md | 2 +- apps/web-docs/supabase/db/staff.md | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/apps/web-docs/supabase/db/attendee.md b/apps/web-docs/supabase/db/attendee.md index 25e8df01..3947ce9f 100644 --- a/apps/web-docs/supabase/db/attendee.md +++ b/apps/web-docs/supabase/db/attendee.md @@ -20,7 +20,7 @@ | # | type | initial | required | unique | |:----|:----|:----|:----|:----| -| id | uuid | | | ◯ | +| id | uuid | | ◯ | ◯ | | user_id | uuid | | ◯ | ◯ | | image_file_name | uuid | | ◯ | ◯ | | email | varchar(100) | | ◯ | | diff --git a/apps/web-docs/supabase/db/job.md b/apps/web-docs/supabase/db/job.md index 8ad12a74..30db3404 100644 --- a/apps/web-docs/supabase/db/job.md +++ b/apps/web-docs/supabase/db/job.md @@ -14,8 +14,8 @@ | # | type | initial | required | unique | |:----|:----|:----|:----|:----| -| id | uuid | | | | -| sponsor_id | uuid | | ◯ | | +| id | uuid | | ◯ | ◯ | +| sponsor_id | uuid | | ◯ | ◯ | | link_url | varchar(500) | | | | | image_url | varchar(500) | | | | | image_alt | varchar(100) | | | | diff --git a/apps/web-docs/supabase/db/speaker.md b/apps/web-docs/supabase/db/speaker.md index 021e7d22..5057a086 100644 --- a/apps/web-docs/supabase/db/speaker.md +++ b/apps/web-docs/supabase/db/speaker.md @@ -15,7 +15,7 @@ | # | type | initial | required | unique | |:----|:----|:----|:----|:----| -| id | uuid | | | | +| id | uuid | | ◯ | ◯ | | detail_page_id | varchar(40) | | | | | name_ja | varchar(100) | | ◯ | | | name_en | varchar(100) | | ◯ | | diff --git a/apps/web-docs/supabase/db/sponsor.md b/apps/web-docs/supabase/db/sponsor.md index 0eb3e65c..196eebad 100644 --- a/apps/web-docs/supabase/db/sponsor.md +++ b/apps/web-docs/supabase/db/sponsor.md @@ -11,7 +11,7 @@ | # | type | initial | required | unique | |:----|:----|:----|:----|:----| -| id | uuid | | | | +| id | uuid | | ◯ | ◯ | | detail_page_id | varchar(40) | | | | | name | varchar(100) | | ◯ | | | description_ja | varchar(500) | | ◯ | | diff --git a/apps/web-docs/supabase/db/staff.md b/apps/web-docs/supabase/db/staff.md index 7204dba0..df967099 100644 --- a/apps/web-docs/supabase/db/staff.md +++ b/apps/web-docs/supabase/db/staff.md @@ -11,7 +11,7 @@ | # | type | initial | required | unique | |:----|:----|:----|:----|:----| -| id | uuid | | | | +| id | uuid | | ◯ | ◯ | | detail_page_id | varchar(40) | | | | | image_url | varchar(500) | | | | | name | varchar(100) | | ◯ | | From 25a0fe6056bc4f981feb9f1d1f678d409580951c Mon Sep 17 00:00:00 2001 From: jiyuujin Date: Sat, 12 Oct 2024 21:32:09 +0900 Subject: [PATCH 2/4] update peatix readme --- apps/web-docs/index.md | 4 +- apps/web-docs/peatix/csv-usage.md | 195 ------------------ apps/web-docs/rpa/getting-started.md | 17 ++ apps/web-docs/rpa/peatix/csv.md | 282 +++++++++++++++++++++++++++ apps/web-docs/rpa/peatix/json.md | 47 +++++ 5 files changed, 348 insertions(+), 197 deletions(-) delete mode 100644 apps/web-docs/peatix/csv-usage.md create mode 100644 apps/web-docs/rpa/getting-started.md create mode 100644 apps/web-docs/rpa/peatix/csv.md create mode 100644 apps/web-docs/rpa/peatix/json.md diff --git a/apps/web-docs/index.md b/apps/web-docs/index.md index 9d4728f2..003d3851 100644 --- a/apps/web-docs/index.md +++ b/apps/web-docs/index.md @@ -9,8 +9,8 @@ hero: text: CSS link: /css/getting-started - theme: brand - text: Peatix - link: /peatix/csv-usage + text: RPA + link: /rpa/getting-started - theme: brand text: Supabase link: /supabase/getting-started diff --git a/apps/web-docs/peatix/csv-usage.md b/apps/web-docs/peatix/csv-usage.md deleted file mode 100644 index 56e2c575..00000000 --- a/apps/web-docs/peatix/csv-usage.md +++ /dev/null @@ -1,195 +0,0 @@ -# Peatix - -まず、今年はチケット管理に [Peatix](https://peatix.com/) を使います。 - -ちなみに、昨年の Pass Market では、ログイン機構の障壁によりスクレイピングが実現できませんでしたが、今回の Peatix ではそうしたことの払拭される可能性が高く、購入情報の反映に向けた完全自動化も夢では無いと考えています。 - -## 購入情報を取得する - -Peatix の購入情報を取得するため、下記の順に実行することを目指します。 - -- NestJS 内で puppeteer を利用してスクレイピングする -- 購入情報を CSV 形式としてダウンロード、JSON 形式のデータにパースする -- パースして得られたデータを参加者の種別ごとに分けて supabase のデータベースに格納する - -### puppeteer を利用してスクレイピングする - -実際に Peatix の画面で、関連する全てのセレクタを確認しました。 - -```ts -import { Injectable, Logger } from '@nestjs/common' -import { Page } from 'puppeteer' -import { Constants } from '../constnats' -import { EnvService } from '../env/env.service' -import { IPuppeteerService } from '../puppeteer/puppeteer.service' -import { ScraperPage } from '../scraper-page/scraper-page' - -@Injectable() -export class PeatixOrderService extends ScraperPage { - private readonly logger = new Logger(PeatixOrderService.name) - - constructor( - envService: EnvService, - puppeteerService: IPuppeteerService, - ) { - super(envService, puppeteerService) - } - - private async login(page: Page) { - await page.goto(Constants.PEATIX_LOGIN_URL, { - waitUntil: 'domcontentloaded', - }) - await page.type( - Selectors.ORDERS.PEATIX.SEARCH_INPUT_EMAIL, - this.envService.PEATIX_BASIC_EMAIL, - ) - await Promise.all([ - page.waitForNavigation({ waitUntil: 'domcontentloaded' }), - page.click(Selectors.ORDERS.PEATIX.NEXT_EXECUTE), - ]) - - await page.type( - Selectors.ORDERS.PEATIX.SEARCH_INPUT_PASSWORD, - this.envService.PEATIX_BASIC_PASSWORD, - ) - await Promise.all([ - page.waitForNavigation({ waitUntil: 'domcontentloaded' }), - page.click(Selectors.ORDERS.PEATIX.SEARCH_EXECUTE), - ]) - } - - async getOrders() { - const { browser, page } = await this.puppeteerService.generate( - (request) => { - this.handleRequest(request) - }, - ) - - try { - await this.login(page) - - await browser.close() - } catch (e) { - this.logger.error(e) - - await browser.close() - } - } -} -``` - -### イベント URL に get_view_data を付けて fetch する - -puppeteer を利用しなくても、get_view_data を付けた URL に fetch することで、参加者情報を取得できる可能性があります。 - -そうした参加者情報の取得は、イベント URL に get_view_data を付けることで対応できます。 - -- イベント URL: `https://.peatix.com/` -- イベント URL に get_view_data を付けた URL: `https://.peatix.com/get_view_data` - -実際 fetch するため、@nestjs/axios の使える環境を構築します。 - -```ts -import { Injectable, Logger } from '@nestjs/common' -import { HttpService } from '@nestjs/axios' -import { Constants } from '../constnats' -import { EnvService } from '../env/env.service' -import { ScraperPage } from '../scraper-page/scraper-page' - -@Injectable() -export class PeatixOrderService extends ScraperPage { - private readonly logger = new Logger(PeatixOrderService.name) - - constructor( - envService: EnvService, - puppeteerService: IPuppeteerService, - private readonly httpService: HttpService, - ) { - super(envService, puppeteerService) - } - - private async fetchJson() { - return await this.httpService - .axiosRef - .get(`${Constants.PEATIX_DASHBOARD_URL}${this.envService.PEATIX_EVENT_ID}/get_view_data`) - .then((res) => res.data) - .catch((err) => { - throw new Error(err?.response?.data) - }) - } -} -``` - -## 技術スタック - -技術スタックは NestJS の [Commander](https://docs.nestjs.com/recipes/nest-commander) 利用を検討しています。 - -まず、今回は main.ts をはじめ app.module.ts や app.controller.ts、app.service.ts の使用を想定していません。そもそも initial setup で自動的に入るファイル群であり、ごく一般的な NestJS では逆にこれらを使用していくこととなります。 - -その上で、ドメインごとに src 配下を分類させるディレクトリをそれぞれ作成していく設計方針を取りました。 - -::: tip - -FigJam でざっくり絵を描きました。 - -https://www.figma.com/file/mRTYOtFjg3L8ozmjEEhHLh/Vue-Fes-Japan-2024 - -::: - -ファイル構成は下に示す通りとなります。 - -``` -+ -├─ src -│ ├─ after-purchase -| ├- after-purchase.module.ts # 購入後に自動反映される予定のユーザーを対象として、使用が予定されている依存関係を置く -| └- after-purchase.service.ts -│ ├─ env -| ├- env.module.ts # 環境変数を読み込む基盤を置く -| └- env.service.ts -│ ├─ peatix-order -| ├- peatix-order.module.ts # Peatix へのログインを試み、購入情報を取得、Supabase へ整形したデータを挿入する基盤を置く -| └- peatix-order.service.ts -│ ├─ puppeteer -| └- puppeteer.service.ts # スクレイピング処理の基盤を置く -│ ├─ sales-daily -| ├- sales-daily.module.ts # 各日の購入処理で使用が予定されている依存関係を置く -| └- sales-daily.service.ts -│ ├─ unactivated-check -| ├- unactivated-check.module.ts # 自動反映されなかったユーザーを対象として、処理で使用が予定されている依存関係を置く -| └- unactivated-check.service.ts -| └- cmd.ts # 処理の窓口を置く -├─ nest-cli.json -└- package.json -``` - -これら Commander を発火させるため、main.ts とは別のエントリーポイントを作成する必要があります。 - -今回は main.ts と同じ並びに cmd.ts を作成することとします。 - -```ts -import { CommandFactory } from 'nest-commander' -import { AfterPurchaseModule } from './after-purchase/after-purchase.module' - -async function bootstrap() { - await CommandFactory.run(AfterPurchaseModule, [ - 'warn', - 'error', - 'debug', - 'log', - ]) -} -bootstrap() -``` - -## NestJS とはなんぞや - -そもそも NestJS について、深く知りたいという方のためのセクションを設けました。 - -::: tip - -NestJS の構造からたいへん上手くまとまっており、合わせてこちらをご一読いただけますと。 - -[NestJS の基礎概念の図解と要約](https://zenn.dev/morinokami/articles/nestjs-overview) - -::: diff --git a/apps/web-docs/rpa/getting-started.md b/apps/web-docs/rpa/getting-started.md new file mode 100644 index 00000000..d3a802f7 --- /dev/null +++ b/apps/web-docs/rpa/getting-started.md @@ -0,0 +1,17 @@ +# RPA + +NestJS 上で Puppeteer を使用して Web サイトをクロール、cron ジョブを設定することで、購入情報の照合に一役を買いました。昨年お世話になっていたチケットプラットフォーム Pass market では、ログイン処理の自動化が困難と判明、やむを得ず購入情報の照合自動化を諦めているが、今年はそれを実現させる方向で進めました。 + +Puppeteer は Chrome DevTools Protocol (CDP) を介してヘッドレス Chrome または Chromium ブラウザを制御できる便利な API を提供します。 + +## NestJS とはなんぞや + +そもそも NestJS について、深く知りたいという方のためのセクションを設けました。 + +::: tip + +NestJS の構造からたいへん上手くまとまっており、合わせてこちらをご一読いただけますと。 + +[NestJS の基礎概念の図解と要約](https://zenn.dev/morinokami/articles/nestjs-overview) + +::: diff --git a/apps/web-docs/rpa/peatix/csv.md b/apps/web-docs/rpa/peatix/csv.md new file mode 100644 index 00000000..37bad4b6 --- /dev/null +++ b/apps/web-docs/rpa/peatix/csv.md @@ -0,0 +1,282 @@ +# Download CSV + +## Peatix の購入情報を取得する + +Peatix の購入情報を取得するため、下記の順に実行することを目指します。 + +- NestJS 内で puppeteer を利用してスクレイピングする +- 購入情報を CSV 形式としてダウンロード、JSON 形式のデータにパースする +- パースして得られたデータを参加者の種別ごとに分けて supabase のデータベースに格納する + +### NestJS の Commander を利用する + +技術スタックは NestJS の [Commander](https://docs.nestjs.com/recipes/nest-commander) 利用を検討しています。 + +まず、今回は main.ts をはじめ app.module.ts や app.controller.ts、app.service.ts の使用を想定していません。そもそも initial setup で自動的に入るファイル群であり、ごく一般的な NestJS では逆にこれらを使用していくこととなります。 + +その上で、ドメインごとに src 配下を分類させるディレクトリをそれぞれ作成していく設計方針を取りました。 + +::: tip + +FigJam でざっくり絵を描きました。 + +https://www.figma.com/file/mRTYOtFjg3L8ozmjEEhHLh/Vue-Fes-Japan-2024 + +::: + +ファイル構成は下に示す通りとなります。 + +``` ++ +├─ src +│ ├─ after-purchase +| ├- after-purchase.module.ts # 購入後に自動反映される予定のユーザーを対象として、使用が予定されている依存関係を置く +| └- after-purchase.service.ts +│ ├─ env +| ├- env.module.ts # 環境変数を読み込む基盤を置く +| └- env.service.ts +│ ├─ peatix-order +| ├- peatix-order.module.ts # Peatix へのログインを試み、購入情報を取得、Supabase へ整形したデータを挿入する基盤を置く +| └- peatix-order.service.ts +│ ├─ puppeteer +| └- puppeteer.service.ts # スクレイピング処理の基盤を置く +│ ├─ sales-daily +| ├- sales-daily.module.ts # 各日の購入処理で使用が予定されている依存関係を置く +| └- sales-daily.service.ts +│ ├─ unactivated-check +| ├- unactivated-check.module.ts # 自動反映されなかったユーザーを対象として、処理で使用が予定されている依存関係を置く +| └- unactivated-check.service.ts +| └- cmd.ts # 処理の窓口を置く +├─ nest-cli.json +└- package.json +``` + +これら Commander を発火させるため、main.ts とは別のエントリーポイントを作成する必要があります。 + +今回は main.ts と同じ並びに cmd.ts を作成することとします。 + +```ts +import { CommandFactory } from 'nest-commander' +import { AfterPurchaseModule } from './after-purchase/after-purchase.module' + +async function bootstrap() { + await CommandFactory.run(AfterPurchaseModule, [ + 'warn', + 'error', + 'debug', + 'log', + ]) +} +bootstrap() +``` + +### puppeteer を利用してスクレイピングする + +puppeteer の API `launch()` を利用します。 + +```ts{52,54-55,68} +import { Injectable, Logger } from '@nestjs/common' +import puppeteer, { Browser, HTTPRequest, Page, Target } from 'puppeteer' + +interface BrowserAndPage { + browser: Browser; + page: Page; +} + +export const symbol = Symbol('PuppeteerService') + +export interface IPuppeteerService { + generateBrowser(): Promise; + generate( + requestHandler?: (request: HTTPRequest) => void, + ): Promise; +} + +@Injectable() +export class PuppeteerService implements IPuppeteerService { + private readonly logger = new Logger(PuppeteerService.name) + + constructor() {} + + async generateBrowser(): Promise { + const browser = await puppeteer.launch({ + headless: process.env.DEBUG === 'true' ? false : 'new', + devtools: process.env.DEBUG === 'true', + handleSIGTERM: process.env.PROD !== 'true', + handleSIGINT: process.env.PROD !== 'true', + ignoreHTTPSErrors: true, + args: [ + '--no-sandbox', + '--disable-setuid-sandbox', + '--disable-dev-shm-usage', + '--disable-web-security', + '--disable-features=IsolateOrigins', + '--disable-site-isolation-trials', + '--disable-gpu', + '--no-first-run', + '--no-zygote', + '--single-process', + '--user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36', + ], + }) + + return browser + } + + async generate( + requestHandler?: (request: HTTPRequest) => void, + ): Promise { + const browser = await this.generateBrowser() + + const pages = await browser.pages() + const [page] = pages + if (!page) throw new Error('Tab is not created.') + + if (!requestHandler) return { browser, page } + + await Promise.all( + pages.map(async (page) => { + await page.setRequestInterception(true) + page.on('request', requestHandler) + }), + ) + + browser.on('targetcreated', async (target: Target) => { + const page = await target.page() + if (!page) { + return + } + await page.setRequestInterception(true) + page.on('request', requestHandler) + }) + + return { browser, page } + } +} +``` + +実際 Peatix の画面で、関連する全てのセレクタを確認します。 + +- ログインに必要なメールアドレス、パスワードを入力するフィールドの DOM +- ログインのアクションを実行するのに必要なボタンの DOM +- CSV ダウンロードに必要なボタンの DOM + +メールアドレス、パスワードを入力するにはこちらで。 + +![](https://i.imgur.com/Vlxkzvi.png) + +ログインに必要なボタンはこちらで。 + +![](https://i.imgur.com/ZjAZeUo.png) + +CSV ダウンロードに必要なボタンはこちらで。 + +![](https://i.imgur.com/Pek9zJQ.png) + +収集できれば、これで OK。 + +```ts +export const Selectors = { + ORDERS: { + PEATIX: { + SEARCH_INPUT_EMAIL: '#signin-form > ul > li:nth-child(2) > input', + SEARCH_INPUT_PASSWORD: '#password', + NEXT_EXECUTE: '#next-button', + SEARCH_EXECUTE: '#signin-button', + DOWNLOAD_EXECUTE: + '#content-main > div > header > div > a.button.action.button-download.js-download-attendances', + }, + }, +} +``` + +これらのセレクタに、スクレイピングの処理が作成できれば、あとは実際に Peatix 上でスクレイピングする処理を書いていくことになります。 + +```ts +import { Injectable, Logger } from '@nestjs/common' +import { Page } from 'puppeteer' +import { Constants } from '../constnats' +import { EnvService } from '../env/env.service' +import { IPuppeteerService } from '../puppeteer/puppeteer.service' +import { ScraperPage } from '../scraper-page/scraper-page' + +@Injectable() +export class PeatixOrderService extends ScraperPage { + private readonly logger = new Logger(PeatixOrderService.name) + + constructor( + envService: EnvService, + puppeteerService: IPuppeteerService, + ) { + super(envService, puppeteerService) + } + + private async login(page: Page) { + await page.goto(Constants.PEATIX_LOGIN_URL, { + waitUntil: 'domcontentloaded', + }) + await page.type( + Selectors.ORDERS.PEATIX.SEARCH_INPUT_EMAIL, + this.envService.PEATIX_BASIC_EMAIL, + ) + await Promise.all([ + page.waitForNavigation({ waitUntil: 'domcontentloaded' }), + page.click(Selectors.ORDERS.PEATIX.NEXT_EXECUTE), + ]) + + await page.type( + Selectors.ORDERS.PEATIX.SEARCH_INPUT_PASSWORD, + this.envService.PEATIX_BASIC_PASSWORD, + ) + await Promise.all([ + page.waitForNavigation({ waitUntil: 'domcontentloaded' }), + page.click(Selectors.ORDERS.PEATIX.SEARCH_EXECUTE), + ]) + } + + async getOrders() { + const { browser, page } = await this.puppeteerService.generate( + (request) => { + this.handleRequest(request) + }, + ) + + try { + await this.login(page) + + await browser.close() + } catch (e) { + this.logger.error(e) + + await browser.close() + } + } +} +``` + +### CSV 仕様を確認する + +CSV ダウンロードを実行すると、下に記したカラムの基で CSV が生成されます。 + +1. 注文番号 +2. 名前 +3. 表示名 +4. 申込日 +5. チケット名 +6. 枚数 +7. ステータス +8. コンビニ受付番号 +9. チケット番号 +10. 割引コード +11. メールアドレス +12. 全席ランチ付きとなります。ヴィーガン用お弁当をご希望の方は事前にお申し出ください +13. あなたの職種を教えてください +14. あなたの年齢を教えてください +15. あなたの仕事における経験年数を教えてください +16. 開催の様子を写真や動画で撮影し、広報目的に利用します。チケットのお申し込みには、撮影への同意が必要となります +17. 【個人スポンサーチケットの方のみ】クレジットに掲載するお名前をご入力ください +18. 【個人スポンサーチケットの方のみ】特典 T シャツのサイズをお選びください。T シャツは当日会場でのお渡しとなります + +この CSV に入っているということは、全員が「何らかの」チケットを購入しているということを意味しています。 + +ちなみに、このうち申込日、申込日、チケット名がネームカードの照合処理にとって必要な情報になるため、これらの情報をステートとして持っておくことにします。 diff --git a/apps/web-docs/rpa/peatix/json.md b/apps/web-docs/rpa/peatix/json.md new file mode 100644 index 00000000..942a09c4 --- /dev/null +++ b/apps/web-docs/rpa/peatix/json.md @@ -0,0 +1,47 @@ +# Fetch JSON data + +## Peatix API + +公式に API 提供はアナウンスされていません。 + +### イベント URL に get_view_data を付けて fetch する + +puppeteer を利用しなくても、get_view_data を付けた URL に fetch することで、参加者情報を取得できる可能性があります。 + +そうした参加者情報の取得は、イベント URL に get_view_data を付けることで対応できます。 + +- イベント URL: `https://.peatix.com/` +- イベント URL に get_view_data を付けた URL: `https://.peatix.com/get_view_data` + +実際 fetch するため、@nestjs/axios の使える環境を構築します。 + +```ts +import { Injectable, Logger } from '@nestjs/common' +import { HttpService } from '@nestjs/axios' +import { Constants } from '../constnats' +import { EnvService } from '../env/env.service' +import { ScraperPage } from '../scraper-page/scraper-page' + +@Injectable() +export class PeatixOrderService extends ScraperPage { + private readonly logger = new Logger(PeatixOrderService.name) + + constructor( + envService: EnvService, + puppeteerService: IPuppeteerService, + private readonly httpService: HttpService, + ) { + super(envService, puppeteerService) + } + + private async fetchJson() { + return await this.httpService + .axiosRef + .get(`${Constants.PEATIX_DASHBOARD_URL}${this.envService.PEATIX_EVENT_ID}/get_view_data`) + .then((res) => res.data) + .catch((err) => { + throw new Error(err?.response?.data) + }) + } +} +``` From 1c04eb36ed00c8609a7ae47a0cf6b5566456bf0a Mon Sep 17 00:00:00 2001 From: jiyuujin Date: Sat, 12 Oct 2024 21:32:51 +0900 Subject: [PATCH 3/4] fix: peatix url --- apps/web-docs/.vitepress/config.mts | 33 +++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/apps/web-docs/.vitepress/config.mts b/apps/web-docs/.vitepress/config.mts index fd2cd43f..4593848c 100644 --- a/apps/web-docs/.vitepress/config.mts +++ b/apps/web-docs/.vitepress/config.mts @@ -9,7 +9,21 @@ export default defineConfig({ nav: [ { text: 'Top', link: '/' }, { text: 'CSS', link: '/css/getting-started' }, - { text: 'Peatix', link: '/peatix/csv-usage' }, + { + text: 'RPA', + items: [ + { + text: 'Getting Started', + link: '/rpa/getting-started', + }, + { + text: 'Peatix', + items: [ + { text: 'Download CSV', link: '/rpa/peatix/csv' }, + ], + }, + ], + }, { text: 'Supabase', items: [ @@ -36,7 +50,22 @@ export default defineConfig({ text: 'Examples', items: [ { text: 'CSS', link: '/css/getting-started' }, - { text: 'Peatix', link: '/peatix/csv-usage' }, + { + text: 'RPA', + items: [ + { + text: 'Getting Started', + link: '/rpa/getting-started', + }, + { + text: 'Peatix', + items: [ + { text: 'Download CSV', link: '/rpa/peatix/csv' }, + { text: 'Fetch JSON data', link: '/rpa/peatix/json' }, + ], + }, + ], + }, { text: 'Supabase', items: [ From 5c90e5efbc6a15f31e9b8e23d96a458435790a8b Mon Sep 17 00:00:00 2001 From: jiyuujin Date: Sat, 12 Oct 2024 21:33:49 +0900 Subject: [PATCH 4/4] fix: color for vuefes --- apps/web-docs/.vitepress/theme/style.css | 109 +-- apps/web-docs/package.json | 1 + bun.lockb | Bin 1050296 -> 1050328 bytes yarn.lock | 1060 +++++++++++++++------- 4 files changed, 767 insertions(+), 403 deletions(-) diff --git a/apps/web-docs/.vitepress/theme/style.css b/apps/web-docs/.vitepress/theme/style.css index 3ac885ab..827eaf9e 100644 --- a/apps/web-docs/.vitepress/theme/style.css +++ b/apps/web-docs/.vitepress/theme/style.css @@ -1,89 +1,24 @@ +@import '@vuejs-jp/css/base.css'; + /** * Customize default theme styling by overriding CSS variables: * https://github.com/vuejs/vitepress/blob/main/src/client/theme-default/styles/vars.css */ -/** - * Colors - * - * Each colors have exact same color scale system with 3 levels of solid - * colors with different brightness, and 1 soft color. - * - * - `XXX-1`: The most solid color used mainly for colored text. It must - * satisfy the contrast ratio against when used on top of `XXX-soft`. - * - * - `XXX-2`: The color used mainly for hover state of the button. - * - * - `XXX-3`: The color for solid background, such as bg color of the button. - * It must satisfy the contrast ratio with pure white (#ffffff) text on - * top of it. - * - * - `XXX-soft`: The color used for subtle background such as custom container - * or badges. It must satisfy the contrast ratio when putting `XXX-1` colors - * on top of it. - * - * The soft color must be semi transparent alpha channel. This is crucial - * because it allows adding multiple "soft" colors on top of each other - * to create a accent, such as when having inline code block inside - * custom containers. - * - * - `default`: The color used purely for subtle indication without any - * special meanings attched to it such as bg color for menu hover state. - * - * - `brand`: Used for primary brand colors, such as link text, button with - * brand theme, etc. - * - * - `tip`: Used to indicate useful information. The default theme uses the - * brand color for this by default. - * - * - `warning`: Used to indicate warning to the users. Used in custom - * container, badges, etc. - * - * - `danger`: Used to show error, or dangerous message to the users. Used - * in custom container, badges, etc. - * -------------------------------------------------------------------------- */ - -:root { - --vp-c-default-1: var(--vp-c-gray-1); - --vp-c-default-2: var(--vp-c-gray-2); - --vp-c-default-3: var(--vp-c-gray-3); - --vp-c-default-soft: var(--vp-c-gray-soft); - - --vp-c-brand-1: var(--vp-c-indigo-1); - --vp-c-brand-2: var(--vp-c-indigo-2); - --vp-c-brand-3: var(--vp-c-indigo-3); - --vp-c-brand-soft: var(--vp-c-indigo-soft); - - --vp-c-tip-1: var(--vp-c-brand-1); - --vp-c-tip-2: var(--vp-c-brand-2); - --vp-c-tip-3: var(--vp-c-brand-3); - --vp-c-tip-soft: var(--vp-c-brand-soft); - - --vp-c-warning-1: var(--vp-c-yellow-1); - --vp-c-warning-2: var(--vp-c-yellow-2); - --vp-c-warning-3: var(--vp-c-yellow-3); - --vp-c-warning-soft: var(--vp-c-yellow-soft); - - --vp-c-danger-1: var(--vp-c-red-1); - --vp-c-danger-2: var(--vp-c-red-2); - --vp-c-danger-3: var(--vp-c-red-3); - --vp-c-danger-soft: var(--vp-c-red-soft); -} - /** * Component: Button * -------------------------------------------------------------------------- */ :root { --vp-button-brand-border: transparent; - --vp-button-brand-text: var(--vp-c-white); - --vp-button-brand-bg: var(--vp-c-brand-3); + --vp-button-brand-text: var(--color-white); + --vp-button-brand-bg: var(--color-asagi100); --vp-button-brand-hover-border: transparent; - --vp-button-brand-hover-text: var(--vp-c-white); - --vp-button-brand-hover-bg: var(--vp-c-brand-2); + --vp-button-brand-hover-text: var(--color-white); + --vp-button-brand-hover-bg: var(--color-asagi200); --vp-button-brand-active-border: transparent; - --vp-button-brand-active-text: var(--vp-c-white); - --vp-button-brand-active-bg: var(--vp-c-brand-1); + --vp-button-brand-active-text: var(--color-white); + --vp-button-brand-active-bg: var(--color-vue-blue); } /** @@ -94,14 +29,14 @@ --vp-home-hero-name-color: transparent; --vp-home-hero-name-background: -webkit-linear-gradient( 120deg, - #bd34fe 30%, - #41d1ff + var(--color-vue-green200) 30%, + var(--color-vue-green100) ); --vp-home-hero-image-background-image: linear-gradient( -45deg, - #bd34fe 50%, - #47caff 50% + var(--color-vue-green200) 50%, + var(--color-vue-green100) 50% ); --vp-home-hero-image-filter: blur(44px); } @@ -117,23 +52,3 @@ --vp-home-hero-image-filter: blur(68px); } } - -/** - * Component: Custom Block - * -------------------------------------------------------------------------- */ - -:root { - --vp-custom-block-tip-border: transparent; - --vp-custom-block-tip-text: var(--vp-c-text-1); - --vp-custom-block-tip-bg: var(--vp-c-brand-soft); - --vp-custom-block-tip-code-bg: var(--vp-c-brand-soft); -} - -/** - * Component: Algolia - * -------------------------------------------------------------------------- */ - -.DocSearch { - --docsearch-primary-color: var(--vp-c-brand-1) !important; -} - diff --git a/apps/web-docs/package.json b/apps/web-docs/package.json index 6342d3a6..0a844486 100644 --- a/apps/web-docs/package.json +++ b/apps/web-docs/package.json @@ -12,6 +12,7 @@ "textlint-fix": "textlint ./** --fix" }, "devDependencies": { + "@vuejs-jp/css": "workspace:*", "textlint": "14.0.4", "textlint-filter-rule-allowlist": "4.0.0", "textlint-rule-preset-vuejs-jp": "github:vuejs-jp/textlint-rule-preset-vuejs-jp", diff --git a/bun.lockb b/bun.lockb index 2c6cad66ed393fc1c95940b08b65e6d54a570f97..21e8ad0aaebfe411ac77cc964f91e9e889d76016 100755 GIT binary patch delta 77600 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 YuzdWl+y&cbe44bZw0uSGf@RYGACYv-%K!iX diff --git a/yarn.lock b/yarn.lock index 1bcdc4c3..d011c627 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1,6 +1,6 @@ # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. # yarn lockfile v1 -# bun ./bun.lockb --hash: 84670D93B3A78CB9-c8d4b3db69a6dba2-1260FE2017B40583-7580f364f93ec37e +# bun ./bun.lockb --hash: 30F4A39D709B9285-4393c909498c03ae-EE9FA0CE7B887AE7-2345520b18e95dca "@aashutoshrathi/word-wrap@^1.2.3": @@ -169,35 +169,35 @@ resolved "https://registry.npmjs.org/@angular-devkit/core/-/core-17.1.2.tgz" integrity sha512-ku+/W/HMCBacSWFppenr9y6Lx8mDuTuQvn1IkTyBLiJOpWnzgVbx9kHDeaDchGa1PwLlJUBBrv27t3qgJOIDPw== dependencies: - ajv-formats "2.1.1" ajv "8.12.0" - jsonc-parser "3.2.0" - picomatch "3.0.1" rxjs "7.8.1" + picomatch "3.0.1" source-map "0.7.4" + ajv-formats "2.1.1" + jsonc-parser "3.2.0" "@angular-devkit/schematics@17.1.2": version "17.1.2" resolved "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-17.1.2.tgz" integrity sha512-8S9RuM8olFN/gwN+mjbuF1CwHX61f0i59EGXz9tXLnKRUTjsRR+8vVMTAmX0dvVAT5fJTG/T69X+HX7FeumdqA== dependencies: - "@angular-devkit/core" "17.1.2" - jsonc-parser "3.2.0" - magic-string "0.30.5" ora "5.4.1" rxjs "7.8.1" + jsonc-parser "3.2.0" + magic-string "0.30.5" + "@angular-devkit/core" "17.1.2" "@angular-devkit/schematics-cli@17.1.2": version "17.1.2" resolved "https://registry.npmjs.org/@angular-devkit/schematics-cli/-/schematics-cli-17.1.2.tgz" integrity sha512-bvXykYzSST05qFdlgIzUguNOb3z0hCa8HaTwtqdmQo9aFPf+P+/AC56I64t1iTchMjQtf3JrBQhYM25gUdcGbg== dependencies: - "@angular-devkit/core" "17.1.2" - "@angular-devkit/schematics" "17.1.2" - ansi-colors "4.1.3" inquirer "9.2.12" - symbol-observable "4.0.0" + ansi-colors "4.1.3" yargs-parser "21.1.1" + symbol-observable "4.0.0" + "@angular-devkit/core" "17.1.2" + "@angular-devkit/schematics" "17.1.2" "@antfu/install-pkg@^0.1.1": version "0.1.1" @@ -430,6 +430,11 @@ resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz" integrity sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w== +"@babel/helper-plugin-utils@^7.24.8": + version "7.24.8" + resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz" + integrity sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg== + "@babel/helper-remap-async-to-generator@^7.22.20": version "7.22.20" resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz" @@ -588,7 +593,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3": +"@babel/plugin-syntax-class-properties@^7.12.13": version "7.12.13" resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz" integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== @@ -644,7 +649,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.24.0" -"@babel/plugin-syntax-import-meta@^7.10.4", "@babel/plugin-syntax-import-meta@^7.8.3": +"@babel/plugin-syntax-import-attributes@^7.24.7": + version "7.25.6" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.25.6.tgz" + integrity sha512-sXaDXaJN9SNLymBdlWFA+bjzBhFD617ZaFiY13dGt7TVslVvVgA6fkZOP7Ki3IGElC45lwHdOTrCtKZGVAWeLQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.8" + +"@babel/plugin-syntax-import-meta@^7.10.4": version "7.10.4" resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz" integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== @@ -665,7 +677,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.24.0" -"@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@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.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz" integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== @@ -679,7 +691,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-numeric-separator@^7.10.4", "@babel/plugin-syntax-numeric-separator@^7.8.3": +"@babel/plugin-syntax-numeric-separator@^7.10.4": version "7.10.4" resolved "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz" integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== @@ -714,7 +726,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-top-level-await@^7.14.5", "@babel/plugin-syntax-top-level-await@^7.8.3": +"@babel/plugin-syntax-top-level-await@^7.14.5": version "7.14.5" resolved "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz" integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== @@ -1409,27 +1421,27 @@ resolved "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz" integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== -"@docsearch/css@3.6.1", "@docsearch/css@^3.6.0": - version "3.6.1" - resolved "https://registry.npmjs.org/@docsearch/css/-/css-3.6.1.tgz" - integrity sha512-VtVb5DS+0hRIprU2CO6ZQjK2Zg4QU5HrDM1+ix6rT0umsYvFvatMAnf97NHZlVWDaaLlx7GRfR/7FikANiM2Fg== +"@docsearch/css@3.6.2", "@docsearch/css@^3.6.0": + version "3.6.2" + resolved "https://registry.npmjs.org/@docsearch/css/-/css-3.6.2.tgz" + integrity sha512-vKNZepO2j7MrYBTZIGXvlUOIR+v9KRf70FApRgovWrj3GTs1EITz/Xb0AOlm1xsQBp16clVZj1SY/qaOJbQtZw== "@docsearch/js@^3.6.0": - version "3.6.1" - resolved "https://registry.npmjs.org/@docsearch/js/-/js-3.6.1.tgz" - integrity sha512-erI3RRZurDr1xES5hvYJ3Imp7jtrXj6f1xYIzDzxiS7nNBufYWPbJwrmMqWC5g9y165PmxEmN9pklGCdLi0Iqg== + version "3.6.2" + resolved "https://registry.npmjs.org/@docsearch/js/-/js-3.6.2.tgz" + integrity sha512-pS4YZF+VzUogYrkblCucQ0Oy2m8Wggk8Kk7lECmZM60hTbaydSIhJTTiCrmoxtBqV8wxORnOqcqqOfbmkkQEcA== dependencies: - "@docsearch/react" "3.6.1" + "@docsearch/react" "3.6.2" preact "^10.0.0" -"@docsearch/react@3.6.1": - version "3.6.1" - resolved "https://registry.npmjs.org/@docsearch/react/-/react-3.6.1.tgz" - integrity sha512-qXZkEPvybVhSXj0K7U3bXc233tk5e8PfhoZ6MhPOiik/qUQxYC+Dn9DnoS7CxHQQhHfCvTiN0eY9M12oRghEXw== +"@docsearch/react@3.6.2": + version "3.6.2" + resolved "https://registry.npmjs.org/@docsearch/react/-/react-3.6.2.tgz" + integrity sha512-rtZce46OOkVflCQH71IdbXSFK+S8iJZlUF56XBW5rIgx/eG5qoomC7Ag3anZson1bBac/JFQn7XOBfved/IMRA== dependencies: "@algolia/autocomplete-core" "1.9.3" "@algolia/autocomplete-preset-algolia" "1.9.3" - "@docsearch/css" "3.6.1" + "@docsearch/css" "3.6.2" algoliasearch "^4.19.1" "@emotion/use-insertion-effect-with-fallbacks@^1.0.1": @@ -1709,6 +1721,11 @@ resolved "https://registry.npmjs.org/@fal-works/esbuild-plugin-global-externals/-/esbuild-plugin-global-externals-2.1.2.tgz" integrity sha512-cEee/Z+I12mZcFJshKcCqC8tuX5hG3s+d+9nZ3LabqKF1vKdF41B92pJVCBggjAGORAeOzyyDDKrZwIkLffeOQ== +"@fastify/accept-negotiator@^1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@fastify/accept-negotiator/-/accept-negotiator-1.1.0.tgz" + integrity sha512-OIHZrb2ImZ7XG85HXOONLcJWGosv7sIvM2ifAPQVhg9Lv7qdmMBNVaai4QTdyuaqbKM5eO6sLSQOYI7wEQeCJQ== + "@fastify/busboy@^2.0.0": version "2.1.1" resolved "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz" @@ -1752,18 +1769,18 @@ resolved "https://registry.npmjs.org/@graphql-tools/merge/-/merge-9.0.0.tgz" integrity sha512-J7/xqjkGTTwOJmaJQJ2C+VDBDOWJL3lKrHJN4yMaRLAJH3PosB7GiPRaSDZdErs0+F77sH2MKs2haMMkywzx7Q== dependencies: - "@graphql-tools/utils" "^10.0.0" tslib "^2.4.0" + "@graphql-tools/utils" "^10.0.0" "@graphql-tools/schema@10.0.0": version "10.0.0" resolved "https://registry.npmjs.org/@graphql-tools/schema/-/schema-10.0.0.tgz" integrity sha512-kf3qOXMFcMs2f/S8Y3A8fm/2w+GaHAkfr3Gnhh2LOug/JgpY/ywgFVxO3jOeSpSEdoYcDKLcXVjMigNbY4AdQg== dependencies: - "@graphql-tools/merge" "^9.0.0" - "@graphql-tools/utils" "^10.0.0" tslib "^2.4.0" value-or-promise "^1.0.12" + "@graphql-tools/merge" "^9.0.0" + "@graphql-tools/utils" "^10.0.0" "@graphql-tools/utils@10.0.8", "@graphql-tools/utils@^10.0.0": version "10.0.8" @@ -2118,7 +2135,7 @@ "@jridgewell/trace-mapping" "^0.3.18" fast-json-stable-stringify "^2.1.0" -"@jest/types@^29.0.0", "@jest/types@^29.6.3": +"@jest/types@^29.6.3": version "29.6.3" resolved "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz" integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw== @@ -2162,6 +2179,11 @@ resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.15", "@jridgewell/sourcemap-codec@^1.5.0": + version "1.5.0" + resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz" + integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== + "@jridgewell/trace-mapping@0.3.9": version "0.3.9" resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz" @@ -2424,59 +2446,59 @@ resolved "https://registry.npmjs.org/@nestjs/cli/-/cli-10.3.2.tgz" integrity sha512-aWmD1GLluWrbuC4a1Iz/XBk5p74Uj6nIVZj6Ov03JbTfgtWqGFLtXuMetvzMiHxfrHehx/myt2iKAPRhKdZvTg== dependencies: - "@angular-devkit/core" "17.1.2" - "@angular-devkit/schematics" "17.1.2" - "@angular-devkit/schematics-cli" "17.1.2" - "@nestjs/schematics" "^10.0.1" - chalk "4.1.2" - chokidar "3.6.0" - cli-table3 "0.6.3" - commander "4.1.1" - fork-ts-checker-webpack-plugin "9.0.2" - glob "10.3.10" - inquirer "8.2.6" - node-emoji "1.11.0" ora "5.4.1" + glob "10.3.10" + chalk "4.1.2" rimraf "4.4.1" shelljs "0.8.5" - source-map-support "0.5.21" + webpack "5.90.1" + chokidar "3.6.0" + inquirer "8.2.6" + commander "4.1.1" tree-kill "1.2.2" - tsconfig-paths "4.2.0" - tsconfig-paths-webpack-plugin "4.1.0" + cli-table3 "0.6.3" + node-emoji "1.11.0" typescript "5.3.3" - webpack "5.90.1" + tsconfig-paths "4.2.0" + "@nestjs/schematics" "^10.0.1" + source-map-support "0.5.21" + "@angular-devkit/core" "17.1.2" webpack-node-externals "3.0.0" + "@angular-devkit/schematics" "17.1.2" + tsconfig-paths-webpack-plugin "4.1.0" + "@angular-devkit/schematics-cli" "17.1.2" + fork-ts-checker-webpack-plugin "9.0.2" "@nestjs/common@10.3.7", "@nestjs/common@>=10.0.0", "@nestjs/common@^10.0.0", "@nestjs/common@^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0", "@nestjs/common@^8.0.0 || ^9.0.0 || ^10.0.0", "@nestjs/common@^9.3.8 || ^10.0.0": version "10.3.7" resolved "https://registry.npmjs.org/@nestjs/common/-/common-10.3.7.tgz" integrity sha512-gKFtFzcJznrwsRYjtNZoPAvSOPYdNgxbTYoAyLTpoy393cIKgLmJTHu6ReH8/qIB9AaZLdGaFLkx98W/tFWFUw== dependencies: - iterare "1.2.1" - tslib "2.6.2" uid "2.0.2" + tslib "2.6.2" + iterare "1.2.1" "@nestjs/config@3.2.2": version "3.2.2" resolved "https://registry.npmjs.org/@nestjs/config/-/config-3.2.2.tgz" integrity sha512-vGICPOui5vE6kPz1iwQ7oCnp3qWgqxldPmBQ9onkVoKlBtyc83KJCr7CjuVtf4OdovMAVcux1d8Q6jglU2ZphA== dependencies: + uuid "9.0.1" dotenv "16.4.5" - dotenv-expand "10.0.0" lodash "4.17.21" - uuid "9.0.1" + dotenv-expand "10.0.0" "@nestjs/core@10.3.7", "@nestjs/core@>=10.0.0", "@nestjs/core@^10.0.0", "@nestjs/core@^8.0.0 || ^9.0.0 || ^10.0.0", "@nestjs/core@^9.3.8 || ^10.0.0": version "10.3.7" resolved "https://registry.npmjs.org/@nestjs/core/-/core-10.3.7.tgz" integrity sha512-hsdlnfiQ3kgqHL5k7js3CU0PV7hBJVi+LfFMgCkoagRxNMf67z0GFGeOV2jk5d65ssB19qdYsDa1MGVuEaoUpg== dependencies: - "@nuxtjs/opencollective" "0.3.2" - fast-safe-stringify "2.1.1" + uid "2.0.2" + tslib "2.6.2" iterare "1.2.1" path-to-regexp "3.2.0" - tslib "2.6.2" - uid "2.0.2" + fast-safe-stringify "2.1.1" + "@nuxtjs/opencollective" "0.3.2" "@nestjs/graphql@~12.0.11": version "12.0.11" @@ -2503,16 +2525,16 @@ resolved "https://registry.npmjs.org/@nestjs/mapped-types/-/mapped-types-2.0.2.tgz" integrity sha512-V0izw6tWs6fTp9+KiiPUbGHWALy563Frn8X6Bm87ANLRuE46iuBMD5acKBDP5lKL/75QFvrzSJT7HkCbB0jTpg== -"@nestjs/platform-express@10.3.7": +"@nestjs/platform-express@10.3.7", "@nestjs/platform-express@^10.0.0": version "10.3.7" resolved "https://registry.npmjs.org/@nestjs/platform-express/-/platform-express-10.3.7.tgz" integrity sha512-noNJ+PyIxQJLCKfuXz0tcQtlVAynfLIuKy62g70lEZ86UrIqSrZFqvWs/rFUgkbT6J8H7Rmv11hASOnX+7M2rA== dependencies: - body-parser "1.20.2" cors "2.8.5" - express "4.19.2" - multer "1.4.4-lts.1" tslib "2.6.2" + multer "1.4.4-lts.1" + express "4.19.2" + body-parser "1.20.2" "@nestjs/schematics@10.1.1", "@nestjs/schematics@^10.0.1": version "10.1.1" @@ -2763,6 +2785,24 @@ rc9 "^2.1.1" semver "^7.6.0" +"@nuxt/image@1.8.0": + version "1.8.0" + resolved "https://registry.npmjs.org/@nuxt/image/-/image-1.8.0.tgz" + integrity sha512-GBbORch+ZfWJ0KB8PaXABsPjaiEXB4B4plcpAUVNCdzKZi2qQ4beRnEXfAbtAWPUPefj3rgCG7b9AqAe51Qlzw== + dependencies: + "@nuxt/kit" "^3.13.0" + consola "^3.2.3" + defu "^6.1.4" + h3 "^1.12.0" + image-meta "^0.2.1" + node-fetch-native "^1.6.4" + ohash "^1.1.3" + pathe "^1.1.2" + std-env "^3.7.0" + ufo "^1.5.4" + optionalDependencies: + ipx "^2.1.0" + "@nuxt/kit@3.11.1", "@nuxt/kit@^3.10.3", "@nuxt/kit@^3.7.3", "@nuxt/kit@^3.8.2": version "3.11.1" resolved "https://registry.npmjs.org/@nuxt/kit/-/kit-3.11.1.tgz" @@ -2837,6 +2877,32 @@ untyped "^1.4.2" "@nuxt/schema" "3.12.3" +"@nuxt/kit@^3.13.0": + version "3.13.2" + resolved "https://registry.npmjs.org/@nuxt/kit/-/kit-3.13.2.tgz" + integrity sha512-KvRw21zU//wdz25IeE1E5m/aFSzhJloBRAQtv+evcFeZvuroIxpIQuUqhbzuwznaUwpiWbmwlcsp5uOWmi4vwA== + dependencies: + c12 "^1.11.2" + consola "^3.2.3" + defu "^6.1.4" + destr "^2.0.3" + globby "^14.0.2" + hash-sum "^2.0.0" + ignore "^5.3.2" + jiti "^1.21.6" + klona "^2.0.6" + knitwork "^1.1.0" + mlly "^1.7.1" + pathe "^1.1.2" + pkg-types "^1.2.0" + scule "^1.3.0" + semver "^7.6.3" + ufo "^1.5.4" + unctx "^2.3.1" + unimport "^3.12.0" + untyped "^1.4.2" + "@nuxt/schema" "3.13.2" + "@nuxt/schema@3.11.1": version "3.11.1" resolved "https://registry.npmjs.org/@nuxt/schema/-/schema-3.11.1.tgz" @@ -2889,6 +2955,24 @@ unimport "^3.7.2" untyped "^1.4.2" +"@nuxt/schema@3.13.2": + version "3.13.2" + resolved "https://registry.npmjs.org/@nuxt/schema/-/schema-3.13.2.tgz" + integrity sha512-CCZgpm+MkqtOMDEgF9SWgGPBXlQ01hV/6+2reDEpJuqFPGzV8HYKPBcIFvn7/z5ahtgutHLzjP71Na+hYcqSpw== + dependencies: + compatx "^0.1.8" + consola "^3.2.3" + defu "^6.1.4" + hookable "^5.5.3" + pathe "^1.1.2" + pkg-types "^1.2.0" + scule "^1.3.0" + std-env "^3.7.0" + ufo "^1.5.4" + uncrypto "^0.1.3" + unimport "^3.12.0" + untyped "^1.4.2" + "@nuxt/telemetry@^2.5.3": version "2.5.3" resolved "https://registry.npmjs.org/@nuxt/telemetry/-/telemetry-2.5.3.tgz" @@ -3092,17 +3176,24 @@ "@opentelemetry/api" "^1.0.0" "@opentelemetry/context-async-hooks@^1.25.1": - version "1.25.1" - resolved "https://registry.npmjs.org/@opentelemetry/context-async-hooks/-/context-async-hooks-1.25.1.tgz" - integrity sha512-UW/ge9zjvAEmRWVapOP0qyCvPulWU6cQxGxDbWEFfGOj1VBBZAuOqTo3X6yWmDTD3Xe15ysCZChHncr2xFMIfQ== + version "1.26.0" + resolved "https://registry.npmjs.org/@opentelemetry/context-async-hooks/-/context-async-hooks-1.26.0.tgz" + integrity sha512-HedpXXYzzbaoutw6DFLWLDket2FwLkLpil4hGCZ1xYEIMTcivdfwEOISgdbLEWyG3HW52gTq2V9mOVJrONgiwg== -"@opentelemetry/core@1.25.1", "@opentelemetry/core@^1.1.0", "@opentelemetry/core@^1.25.1", "@opentelemetry/core@^1.8.0": +"@opentelemetry/core@1.25.1": version "1.25.1" resolved "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz" integrity sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ== dependencies: "@opentelemetry/semantic-conventions" "1.25.1" +"@opentelemetry/core@1.26.0", "@opentelemetry/core@^1.1.0", "@opentelemetry/core@^1.25.1", "@opentelemetry/core@^1.8.0": + version "1.26.0" + resolved "https://registry.npmjs.org/@opentelemetry/core/-/core-1.26.0.tgz" + integrity sha512-1iKxXXE8415Cdv0yjG3G6hQnB5eVEsJce3QaawX8SjDn0mAS0ZM8fAbZZJD4ajvhC15cePvosSCut404KrIIvQ== + dependencies: + "@opentelemetry/semantic-conventions" "1.27.0" + "@opentelemetry/instrumentation@^0.46.0": version "0.46.0" resolved "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.46.0.tgz" @@ -3119,22 +3210,22 @@ resolved "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.52.1.tgz" integrity sha512-uXJbYU/5/MBHjMp1FqrILLRuiJCs3Ofk0MeRDk8g1S1gD47U8X3JnSwcMO1rtRo1x1a7zKaQHaoYu49p/4eSKw== dependencies: - "@opentelemetry/api-logs" "0.52.1" + semver "^7.5.2" + shimmer "^1.2.1" "@types/shimmer" "^1.0.2" import-in-the-middle "^1.8.1" require-in-the-middle "^7.1.1" - semver "^7.5.2" - shimmer "^1.2.1" + "@opentelemetry/api-logs" "0.52.1" "@opentelemetry/instrumentation-connect@0.38.0": version "0.38.0" resolved "https://registry.npmjs.org/@opentelemetry/instrumentation-connect/-/instrumentation-connect-0.38.0.tgz" integrity sha512-2/nRnx3pjYEmdPIaBwtgtSviTKHWnDZN3R+TkRUnhIVrvBKVcq+I5B2rtd6mr6Fe9cHlZ9Ojcuh7pkNh/xdWWg== dependencies: + "@types/connect" "3.4.36" "@opentelemetry/core" "^1.8.0" "@opentelemetry/instrumentation" "^0.52.0" "@opentelemetry/semantic-conventions" "^1.22.0" - "@types/connect" "3.4.36" "@opentelemetry/instrumentation-express@0.41.0": version "0.41.0" @@ -3175,18 +3266,18 @@ resolved "https://registry.npmjs.org/@opentelemetry/instrumentation-http/-/instrumentation-http-0.52.1.tgz" integrity sha512-dG/aevWhaP+7OLv4BQQSEKMJv8GyeOp3Wxl31NHqE8xo9/fYMfEljiZphUHIfyg4gnZ9swMyWjfOQs5GUQe54Q== dependencies: + semver "^7.5.2" "@opentelemetry/core" "1.25.1" "@opentelemetry/instrumentation" "0.52.1" "@opentelemetry/semantic-conventions" "1.25.1" - semver "^7.5.2" "@opentelemetry/instrumentation-ioredis@0.42.0": version "0.42.0" resolved "https://registry.npmjs.org/@opentelemetry/instrumentation-ioredis/-/instrumentation-ioredis-0.42.0.tgz" integrity sha512-P11H168EKvBB9TUSasNDOGJCSkpT44XgoM6d3gRIWAa9ghLpYhl0uRkS8//MqPzcJVHr3h3RmfXIpiYLjyIZTw== dependencies: - "@opentelemetry/instrumentation" "^0.52.0" "@opentelemetry/redis-common" "^0.36.2" + "@opentelemetry/instrumentation" "^0.52.0" "@opentelemetry/semantic-conventions" "^1.23.0" "@opentelemetry/instrumentation-koa@0.42.0": @@ -3203,8 +3294,8 @@ resolved "https://registry.npmjs.org/@opentelemetry/instrumentation-mongodb/-/instrumentation-mongodb-0.46.0.tgz" integrity sha512-VF/MicZ5UOBiXrqBslzwxhN7TVqzu1/LN/QDpkskqM0Zm0aZ4CVRbUygL8d7lrjLn15x5kGIe8VsSphMfPJzlA== dependencies: - "@opentelemetry/instrumentation" "^0.52.0" "@opentelemetry/sdk-metrics" "^1.9.1" + "@opentelemetry/instrumentation" "^0.52.0" "@opentelemetry/semantic-conventions" "^1.22.0" "@opentelemetry/instrumentation-mongoose@0.40.0": @@ -3221,18 +3312,18 @@ resolved "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql/-/instrumentation-mysql-0.40.0.tgz" integrity sha512-d7ja8yizsOCNMYIJt5PH/fKZXjb/mS48zLROO4BzZTtDfhNCl2UM/9VIomP2qkGIFVouSJrGr/T00EzY7bPtKA== dependencies: + "@types/mysql" "2.15.22" "@opentelemetry/instrumentation" "^0.52.0" "@opentelemetry/semantic-conventions" "^1.22.0" - "@types/mysql" "2.15.22" "@opentelemetry/instrumentation-mysql2@0.40.0": version "0.40.0" resolved "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql2/-/instrumentation-mysql2-0.40.0.tgz" integrity sha512-0xfS1xcqUmY7WE1uWjlmI67Xg3QsSUlNT+AcXHeA4BDUPwZtWqF4ezIwLgpVZfHOnkAEheqGfNSWd1PIu3Wnfg== dependencies: + "@opentelemetry/sql-common" "^0.40.1" "@opentelemetry/instrumentation" "^0.52.0" "@opentelemetry/semantic-conventions" "^1.22.0" - "@opentelemetry/sql-common" "^0.40.1" "@opentelemetry/instrumentation-nestjs-core@0.39.0": version "0.39.0" @@ -3247,19 +3338,19 @@ resolved "https://registry.npmjs.org/@opentelemetry/instrumentation-pg/-/instrumentation-pg-0.43.0.tgz" integrity sha512-og23KLyoxdnAeFs1UWqzSonuCkePUzCX30keSYigIzJe/6WSYA8rnEI5lobcxPEzg+GcU06J7jzokuEHbjVJNw== dependencies: - "@opentelemetry/instrumentation" "^0.52.0" - "@opentelemetry/semantic-conventions" "^1.22.0" - "@opentelemetry/sql-common" "^0.40.1" "@types/pg" "8.6.1" "@types/pg-pool" "2.0.4" + "@opentelemetry/sql-common" "^0.40.1" + "@opentelemetry/instrumentation" "^0.52.0" + "@opentelemetry/semantic-conventions" "^1.22.0" "@opentelemetry/instrumentation-redis-4@0.41.0": version "0.41.0" resolved "https://registry.npmjs.org/@opentelemetry/instrumentation-redis-4/-/instrumentation-redis-4-0.41.0.tgz" integrity sha512-H7IfGTqW2reLXqput4yzAe8YpDC0fmVNal95GHMLOrS89W+qWUKIqxolSh63hJyfmwPSFwXASzj7wpSk8Az+Dg== dependencies: - "@opentelemetry/instrumentation" "^0.52.0" "@opentelemetry/redis-common" "^0.36.2" + "@opentelemetry/instrumentation" "^0.52.0" "@opentelemetry/semantic-conventions" "^1.22.0" "@opentelemetry/redis-common@^0.36.2": @@ -3267,37 +3358,41 @@ resolved "https://registry.npmjs.org/@opentelemetry/redis-common/-/redis-common-0.36.2.tgz" integrity sha512-faYX1N0gpLhej/6nyp6bgRjzAKXn5GOEMYY7YhciSfCoITAktLUtQ36d24QEWNA1/WA1y6qQunCe0OhHRkVl9g== -"@opentelemetry/resources@1.25.1", "@opentelemetry/resources@^1.25.1": - version "1.25.1" - resolved "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.25.1.tgz" - integrity sha512-pkZT+iFYIZsVn6+GzM0kSX+u3MSLCY9md+lIJOoKl/P+gJFfxJte/60Usdp8Ce4rOs8GduUpSPNe1ddGyDT1sQ== +"@opentelemetry/resources@1.26.0", "@opentelemetry/resources@^1.25.1": + version "1.26.0" + resolved "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.26.0.tgz" + integrity sha512-CPNYchBE7MBecCSVy0HKpUISEeJOniWqcHaAHpmasZ3j9o6V3AyBzhRc90jdmemq0HOxDr6ylhUbDhBqqPpeNw== dependencies: - "@opentelemetry/core" "1.25.1" - "@opentelemetry/semantic-conventions" "1.25.1" + "@opentelemetry/core" "1.26.0" + "@opentelemetry/semantic-conventions" "1.27.0" "@opentelemetry/sdk-metrics@^1.9.1": - version "1.25.1" - resolved "https://registry.npmjs.org/@opentelemetry/sdk-metrics/-/sdk-metrics-1.25.1.tgz" - integrity sha512-9Mb7q5ioFL4E4dDrc4wC/A3NTHDat44v4I3p2pLPSxRvqUbDIQyMVr9uK+EU69+HWhlET1VaSrRzwdckWqY15Q== + version "1.26.0" + resolved "https://registry.npmjs.org/@opentelemetry/sdk-metrics/-/sdk-metrics-1.26.0.tgz" + integrity sha512-0SvDXmou/JjzSDOjUmetAAvcKQW6ZrvosU0rkbDGpXvvZN+pQF6JbK/Kd4hNdK4q/22yeruqvukXEJyySTzyTQ== dependencies: - "@opentelemetry/core" "1.25.1" - "@opentelemetry/resources" "1.25.1" - lodash.merge "^4.6.2" + "@opentelemetry/core" "1.26.0" + "@opentelemetry/resources" "1.26.0" "@opentelemetry/sdk-trace-base@^1.22", "@opentelemetry/sdk-trace-base@^1.25.1": - version "1.25.1" - resolved "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.25.1.tgz" - integrity sha512-C8k4hnEbc5FamuZQ92nTOp8X/diCY56XUTnMiv9UTuJitCzaNNHAVsdm5+HLCdI8SLQsLWIrG38tddMxLVoftw== + version "1.26.0" + resolved "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.26.0.tgz" + integrity sha512-olWQldtvbK4v22ymrKLbIcBi9L2SpMO84sCPY54IVsJhP9fRsxJT194C/AVaAuJzLE30EdhhM1VmvVYR7az+cw== dependencies: - "@opentelemetry/core" "1.25.1" - "@opentelemetry/resources" "1.25.1" - "@opentelemetry/semantic-conventions" "1.25.1" + "@opentelemetry/core" "1.26.0" + "@opentelemetry/resources" "1.26.0" + "@opentelemetry/semantic-conventions" "1.27.0" -"@opentelemetry/semantic-conventions@1.25.1", "@opentelemetry/semantic-conventions@^1.17.0", "@opentelemetry/semantic-conventions@^1.22.0", "@opentelemetry/semantic-conventions@^1.23.0", "@opentelemetry/semantic-conventions@^1.25.1": +"@opentelemetry/semantic-conventions@1.25.1": version "1.25.1" resolved "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.25.1.tgz" integrity sha512-ZDjMJJQRlyk8A1KZFCc+bCbsyrn1wTwdNt56F7twdfUfnHUZUq77/WfONCj8p72NZOyP7pNTdUWSTYC3GTbuuQ== +"@opentelemetry/semantic-conventions@1.27.0", "@opentelemetry/semantic-conventions@^1.17.0", "@opentelemetry/semantic-conventions@^1.22.0", "@opentelemetry/semantic-conventions@^1.23.0", "@opentelemetry/semantic-conventions@^1.25.1": + version "1.27.0" + resolved "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.27.0.tgz" + integrity sha512-sAay1RrB+ONOem0OZanAR1ZI/k7yDpnOQSQmTMuGImUQb2y8EbSaCJ94FQluM74xoU03vlb2d2U90hZluL6nQg== + "@opentelemetry/sql-common@^0.40.1": version "0.40.1" resolved "https://registry.npmjs.org/@opentelemetry/sql-common/-/sql-common-0.40.1.tgz" @@ -3430,13 +3525,13 @@ integrity sha512-4IICvy1McAkT/HyNZHIs7sp8ngBX1dmO0TPQ+FWq9ATQMqI8p+Ulm5A3kS2wYDh5HDHHkYrrETOu6rlj64VuTw== dependencies: debug "4.3.4" - extract-zip "2.0.1" - https-proxy-agent "5.0.1" + yargs "17.7.1" + tar-fs "2.1.1" progress "2.0.3" + extract-zip "2.0.1" proxy-from-env "1.1.0" - tar-fs "2.1.1" unbzip2-stream "1.4.3" - yargs "17.7.1" + https-proxy-agent "5.0.1" "@radix-ui/react-compose-refs@1.0.1": version "1.0.1" @@ -3543,6 +3638,15 @@ estree-walker "^2.0.2" picomatch "^2.3.1" +"@rollup/pluginutils@^5.1.2": + version "5.1.2" + resolved "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.2.tgz" + integrity sha512-/FIdS3PyZ39bjZlwqFnWqCOVnW7o963LtKMwQOD0NhQqw22gSr2YY1afu3FxRip4ZCZNsD5jq6Aaz6QV3D/Njw== + dependencies: + "@types/estree" "^1.0.0" + estree-walker "^2.0.2" + picomatch "^2.3.1" + "@rollup/rollup-android-arm-eabi@4.13.0": version "4.13.0" resolved "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.13.0.tgz" @@ -3713,33 +3817,33 @@ resolved "https://registry.npmjs.org/@sentry/node/-/node-8.18.0.tgz" integrity sha512-a+W477bmt28I1DT51xJKmp4Y7hBAdEGqQ2K7gfOn3mRBHoihuhKl2Xe8BMwFH7+v4mAEZEwAZBUOLAC7h+Tjig== dependencies: + "@sentry/core" "8.18.0" + "@sentry/types" "8.18.0" + "@sentry/utils" "8.18.0" "@opentelemetry/api" "^1.9.0" - "@opentelemetry/context-async-hooks" "^1.25.1" "@opentelemetry/core" "^1.25.1" + "@sentry/opentelemetry" "8.18.0" + "@prisma/instrumentation" "5.16.1" + "@opentelemetry/resources" "^1.25.1" + "@opentelemetry/sdk-trace-base" "^1.25.1" "@opentelemetry/instrumentation" "^0.52.1" + "@opentelemetry/instrumentation-pg" "0.43.0" + "@opentelemetry/context-async-hooks" "^1.25.1" + "@opentelemetry/instrumentation-koa" "0.42.0" + "@opentelemetry/instrumentation-hapi" "0.40.0" + "@opentelemetry/instrumentation-http" "0.52.1" + "@opentelemetry/semantic-conventions" "^1.25.1" + "@opentelemetry/instrumentation-mysql" "0.40.0" + "@opentelemetry/instrumentation-mysql2" "0.40.0" "@opentelemetry/instrumentation-connect" "0.38.0" "@opentelemetry/instrumentation-express" "0.41.0" "@opentelemetry/instrumentation-fastify" "0.38.0" "@opentelemetry/instrumentation-graphql" "0.42.0" - "@opentelemetry/instrumentation-hapi" "0.40.0" - "@opentelemetry/instrumentation-http" "0.52.1" "@opentelemetry/instrumentation-ioredis" "0.42.0" - "@opentelemetry/instrumentation-koa" "0.42.0" "@opentelemetry/instrumentation-mongodb" "0.46.0" + "@opentelemetry/instrumentation-redis-4" "0.41.0" "@opentelemetry/instrumentation-mongoose" "0.40.0" - "@opentelemetry/instrumentation-mysql" "0.40.0" - "@opentelemetry/instrumentation-mysql2" "0.40.0" "@opentelemetry/instrumentation-nestjs-core" "0.39.0" - "@opentelemetry/instrumentation-pg" "0.43.0" - "@opentelemetry/instrumentation-redis-4" "0.41.0" - "@opentelemetry/resources" "^1.25.1" - "@opentelemetry/sdk-trace-base" "^1.25.1" - "@opentelemetry/semantic-conventions" "^1.25.1" - "@prisma/instrumentation" "5.16.1" - "@sentry/core" "8.18.0" - "@sentry/opentelemetry" "8.18.0" - "@sentry/types" "8.18.0" - "@sentry/utils" "8.18.0" optionalDependencies: opentelemetry-instrumentation-fetch-node "1.2.3" @@ -4524,10 +4628,10 @@ resolved "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-2.9.5.tgz" integrity sha512-TEHlGwNGGmKPdeMtca1lFTYCedrhTAv3nZVoSjrKQ+wkMmaERuCe57zkC5KSWFzLYkb5FVHW8Hrr+PX1DDwplQ== dependencies: - ws "^8.14.2" - "@types/ws" "^8.5.10" - "@types/phoenix" "^1.5.4" "@supabase/node-fetch" "^2.6.14" + "@types/phoenix" "^1.5.4" + "@types/ws" "^8.5.10" + ws "^8.14.2" "@supabase/storage-js@2.5.5": version "2.5.5" @@ -4554,11 +4658,11 @@ integrity sha512-A+RV50mWNtyKo6M0u4G6AOqEifQD+MoOjZcpRkPMPpEAFgMsc2dt3kBlBlR/MgZizWQgUKhsvrwKk0efc8g6Ug== dependencies: "@supabase/auth-js" "2.64.2" - "@supabase/node-fetch" "2.6.15" - "@supabase/storage-js" "2.5.5" - "@supabase/realtime-js" "2.9.5" "@supabase/functions-js" "2.3.1" + "@supabase/node-fetch" "2.6.15" "@supabase/postgrest-js" "1.15.2" + "@supabase/realtime-js" "2.9.5" + "@supabase/storage-js" "2.5.5" "@textlint-rule/textlint-rule-no-invalid-control-character@^2.0.0": version "2.0.0" @@ -4912,9 +5016,9 @@ integrity sha512-TB/6hBkYQJxsZHSqyeuO1Jt0AB/bW6G7rHt9g7lML7SOF6lbgcHvw/Lr+69iqN0qxgXLhWKScAon73JNnptuDw== "@types/eslint@*": - version "9.6.0" - resolved "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.0.tgz" - integrity sha512-gi6WQJ7cHRgZxtkQEoyHMppPjq9Kxo5Tjn2prSKDSmZrCz8TZ3jSRCeTJm+WoM+oB0WG37bRqLzaaU3q7JypGg== + version "9.6.1" + resolved "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz" + integrity sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag== dependencies: "@types/estree" "*" "@types/json-schema" "*" @@ -5034,9 +5138,9 @@ "@types/istanbul-lib-report" "*" "@types/jest@^29.5.12": - version "29.5.12" - resolved "https://registry.npmjs.org/@types/jest/-/jest-29.5.12.tgz" - integrity sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw== + version "29.5.13" + resolved "https://registry.npmjs.org/@types/jest/-/jest-29.5.13.tgz" + integrity sha512-wd+MVEZCHt23V0/L642O5APvspWply/rGY5BcW4SUETo2UzPU3Z26qr8jC2qxpimI2jjx9h7+2cj2FwIr01bXg== dependencies: expect "^29.0.0" pretty-format "^29.0.0" @@ -5274,9 +5378,9 @@ integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw== "@types/superagent@^8.1.0": - version "8.1.8" - resolved "https://registry.npmjs.org/@types/superagent/-/superagent-8.1.8.tgz" - integrity sha512-nTqHJ2OTa7PFEpLahzSEEeFeqbMpmcN7OeayiOc7v+xk+/vyTKljRe+o4MPqSnPeRCMvtxuLG+5QqluUVQJOnA== + version "8.1.9" + resolved "https://registry.npmjs.org/@types/superagent/-/superagent-8.1.9.tgz" + integrity sha512-pTVjI73witn+9ILmoJdajHGW2jkSaOzhiFYF1Rd3EQ94kymLqB9PjD9ISg7WaALC7+dCHT0FGe9T2LktLq/3GQ== dependencies: form-data "^4.0.0" "@types/node" "*" @@ -5387,9 +5491,9 @@ "@types/node" "*" "@types/yargs@^17.0.8": - version "17.0.32" - resolved "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz" - integrity sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog== + version "17.0.33" + resolved "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz" + integrity sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA== dependencies: "@types/yargs-parser" "*" @@ -6061,11 +6165,11 @@ integrity sha512-0MiMsFma/HqA6g3KLKn+AGpL1kgKhFWszC9U29NfpWK5LE7bjeXxySWJrOJ77hBz+TBrBQ7o4QJqbPbqbs8rJw== "@vue/devtools-api@^7.0.16": - version "7.3.7" - resolved "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-7.3.7.tgz" - integrity sha512-kvjQ6nmsqTp7SrmpwI2G0MgbC4ys0bPsgQirHXJM8y1m7siQ5RnWQUHJVfyUrHNguCySW1cevAdIw87zrPTl9g== + version "7.4.6" + resolved "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-7.4.6.tgz" + integrity sha512-XipBV5k0/IfTr0sNBDTg7OBUCp51cYMMXyPxLXJZ4K/wmUeMqt8cVdr2ZZGOFq+si/jTyCYnNxeKoyev5DOUUA== dependencies: - "@vue/devtools-kit" "^7.3.7" + "@vue/devtools-kit" "^7.4.6" "@vue/devtools-applet@^7.0.25": version "7.0.25" @@ -6103,10 +6207,10 @@ speakingurl "^14.0.1" "@vue/devtools-shared" "^7.0.25" -"@vue/devtools-kit@^7.3.7": - version "7.3.7" - resolved "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-7.3.7.tgz" - integrity sha512-ktHhhjI4CoUrwdSUF5b/MFfjrtAtK8r4vhOkFyRN5Yp9kdXTwsRBYcwarHuP+wFPKf4/KM7DVBj2ELO8SBwdsw== +"@vue/devtools-kit@^7.4.6": + version "7.4.6" + resolved "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-7.4.6.tgz" + integrity sha512-NbYBwPWgEic1AOd9bWExz9weBzFdjiIfov0yRn4DrRfR+EQJCI9dn4I0XS7IxYGdkmUJi8mFW42LLk18WsGqew== dependencies: birpc "^0.2.17" hookable "^5.5.3" @@ -6114,7 +6218,7 @@ perfect-debounce "^1.0.0" speakingurl "^14.0.1" superjson "^2.2.1" - "@vue/devtools-shared" "^7.3.7" + "@vue/devtools-shared" "^7.4.6" "@vue/devtools-shared@^7.0.25": version "7.0.25" @@ -6123,10 +6227,10 @@ dependencies: rfdc "^1.3.1" -"@vue/devtools-shared@^7.3.7": - version "7.3.7" - resolved "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-7.3.7.tgz" - integrity sha512-M9EU1/bWi5GNS/+IZrAhwGOVZmUTN4MH22Hvh35nUZZg9AZP2R2OhfCb+MG4EtAsrUEYlu3R43/SIj3G7EZYtQ== +"@vue/devtools-shared@^7.4.6": + version "7.4.6" + resolved "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-7.4.6.tgz" + integrity sha512-rPeSBzElnHYMB05Cc056BQiJpgocQjY8XVulgni+O9a9Gr9tNXgPteSzFFD+fT/iWMxNuUgGKs9CuW5DZewfIg== dependencies: rfdc "^1.4.1" @@ -6333,6 +6437,7 @@ resolved "workspace:apps/web" devDependencies: "@nuxt/content" "2.12.1" + "@nuxt/image" "1.8.0" "@nuxt/types" "^2.17.3" "@nuxtjs/device" "3.1.1" "@nuxtjs/i18n" "8.2.0" @@ -6367,6 +6472,7 @@ version "workspace:apps/web-docs" resolved "workspace:apps/web-docs" devDependencies: + "@vuejs-jp/css" "packages/css" textlint "14.0.4" textlint-filter-rule-allowlist "4.0.0" textlint-rule-preset-vuejs-jp "github:vuejs-jp/textlint-rule-preset-vuejs-jp" @@ -6639,11 +6745,16 @@ acorn@^7.1.1: resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@8.11.3, "acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8, acorn@^8.10.0, acorn@^8.11.2, acorn@^8.11.3, acorn@^8.4.1, acorn@^8.5.0, acorn@^8.6.0, acorn@^8.7.1, acorn@^8.8.2, acorn@^8.9.0: +acorn@8.11.3, "acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8, acorn@^8.10.0, acorn@^8.11.2, acorn@^8.11.3, acorn@^8.5.0, acorn@^8.6.0, acorn@^8.8.2, acorn@^8.9.0: version "8.11.3" resolved "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz" integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== +acorn@^8, acorn@^8.12.1, acorn@^8.4.1, acorn@^8.7.1, acorn@^8.8.2: + version "8.12.1" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz" + integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg== + acorn-import-assertions@^1.9.0: version "1.9.0" resolved "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz" @@ -7091,7 +7202,7 @@ axios@*, axios@1.6.8, axios@^1.3.1, axios@^1.6.1: form-data "^4.0.0" proxy-from-env "^1.1.0" -b4a@^1.6.4: +b4a@^1.6.4, b4a@^1.6.6: version "1.6.6" resolved "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz" integrity sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg== @@ -7160,22 +7271,25 @@ babel-plugin-polyfill-regenerator@^0.6.1: "@babel/helper-define-polyfill-provider" "^0.6.1" babel-preset-current-node-syntax@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz" - integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== + version "1.1.0" + resolved "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz" + 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" babel-preset-jest@^29.6.3: version "29.6.3" @@ -7212,11 +7326,40 @@ balanced-match@^1.0.0: resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -bare-events@^2.2.0: +bare-events@^2.0.0, bare-events@^2.2.0: version "2.2.1" resolved "https://registry.npmjs.org/bare-events/-/bare-events-2.2.1.tgz" integrity sha512-9GYPpsPFvrWBkelIhOhTWtkeZxVxZOdb3VnFTCzlOo3OjvmTvzLoZFUT8kNFACx0vJej6QPney1Cf9BvzCNE/A== +bare-fs@^2.1.1: + version "2.3.5" + resolved "https://registry.npmjs.org/bare-fs/-/bare-fs-2.3.5.tgz" + integrity sha512-SlE9eTxifPDJrT6YgemQ1WGFleevzwY+XAP1Xqgl56HtcrisC2CHCZ2tq6dBpcH2TnNxwUEUGhweo+lrQtYuiw== + dependencies: + bare-path "^2.0.0" + bare-events "^2.0.0" + bare-stream "^2.0.0" + +bare-os@^2.1.0: + version "2.4.4" + resolved "https://registry.npmjs.org/bare-os/-/bare-os-2.4.4.tgz" + integrity sha512-z3UiI2yi1mK0sXeRdc4O1Kk8aOa/e+FNWZcTiPB/dfTWyLypuE99LibgRaQki914Jq//yAWylcAt+mknKdixRQ== + +bare-path@^2.0.0, bare-path@^2.1.0: + version "2.1.3" + resolved "https://registry.npmjs.org/bare-path/-/bare-path-2.1.3.tgz" + integrity sha512-lh/eITfU8hrj9Ru5quUp0Io1kJWIk1bTjzo7JH1P5dWmQ2EL4hFUlfI8FonAhSlgIfhn63p84CDY/x+PisgcXA== + dependencies: + bare-os "^2.1.0" + +bare-stream@^2.0.0: + version "2.3.0" + resolved "https://registry.npmjs.org/bare-stream/-/bare-stream-2.3.0.tgz" + integrity sha512-pVRWciewGUeCyKEuRxwv06M079r+fRjAQjBEK2P6OYGrO43O+Z0LrPZZEjlc4mB6C2RpZ9AxJ1s7NLEtOHO6eA== + dependencies: + b4a "^1.6.6" + streamx "^2.20.0" + base64-js@^1.3.1: version "1.5.1" resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" @@ -7365,7 +7508,7 @@ browserify-zlib@^0.1.4: node-releases "^2.0.14" update-browserslist-db "^1.0.13" -bs-logger@0.x: +bs-logger@^0.2.6: version "0.2.6" resolved "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz" integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== @@ -7482,6 +7625,24 @@ c12@^1.11.1: pkg-types "^1.1.1" perfect-debounce "^1.0.0" +c12@^1.11.2: + version "1.11.2" + resolved "https://registry.npmjs.org/c12/-/c12-1.11.2.tgz" + integrity sha512-oBs8a4uvSDO9dm8b7OCFW7+dgtVrwmwnrVXYzLm43ta7ep2jCn/0MhoUFygIWtxhyy6+/MG7/agvpY0U1Iemew== + dependencies: + rc9 "^2.1.2" + defu "^6.1.4" + jiti "^1.21.6" + mlly "^1.7.1" + giget "^1.2.3" + ohash "^1.1.3" + pathe "^1.1.2" + dotenv "^16.4.5" + confbox "^0.1.7" + chokidar "^3.6.0" + pkg-types "^1.2.0" + perfect-debounce "^1.0.0" + cac@^6.7.14: version "6.7.14" resolved "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz" @@ -7675,15 +7836,16 @@ chokidar@3.5.3: resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== dependencies: - anymatch "~3.1.2" braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" + anymatch "~3.1.2" optionalDependencies: fsevents "~2.3.2" + dependencies: + readdirp "~3.6.0" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + normalize-path "~3.0.0" chokidar@3.6.0, chokidar@^3.5.1, chokidar@^3.5.2, chokidar@^3.5.3, chokidar@^3.6.0: version "3.6.0" @@ -7757,9 +7919,9 @@ citty@^0.1.5, citty@^0.1.6: consola "^3.2.3" cjs-module-lexer@^1.0.0, cjs-module-lexer@^1.2.2: - version "1.3.1" - resolved "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz" - integrity sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q== + version "1.4.1" + resolved "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.1.tgz" + integrity sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA== clean-stack@^2.0.0: version "2.2.0" @@ -7883,6 +8045,14 @@ collect-v8-coverage@^1.0.0: resolved "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz" integrity sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q== +color@^4.2.3: + version "4.2.3" + resolved "https://registry.npmjs.org/color/-/color-4.2.3.tgz" + integrity sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A== + dependencies: + color-convert "^2.0.1" + color-string "^1.9.0" + color-convert@^1.9.0: version "1.9.3" resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" @@ -7902,11 +8072,19 @@ color-name@1.1.3: resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== -color-name@~1.1.4: +color-name@^1.0.0, color-name@~1.1.4: version "1.1.4" resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +color-string@^1.9.0: + version "1.9.1" + resolved "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz" + integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + color-support@^1.1.2: version "1.1.3" resolved "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz" @@ -7934,7 +8112,7 @@ comma-separated-tokens@^2.0.0: resolved "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz" integrity sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg== -commander@^2.20.0: +commander@^2.20.0, commander@^2.20.3: version "2.20.3" resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== @@ -7974,10 +8152,10 @@ comment-json@4.2.3: resolved "https://registry.npmjs.org/comment-json/-/comment-json-4.2.3.tgz" integrity sha512-SsxdiOf064DWoZLH799Ata6u7iV658A11PlWtZATDlXPpKGJnbJZ5Z24ybixAi+LUUqJ/GKowAejtC5GFUG7Tw== dependencies: - array-timsort "^1.0.3" - core-util-is "^1.0.3" esprima "^4.0.1" + core-util-is "^1.0.3" has-own-prop "^2.0.0" + array-timsort "^1.0.3" repeat-string "^1.6.1" common-tags@^1.8.0: @@ -8160,8 +8338,8 @@ cors@2.8.5: resolved "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz" integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== dependencies: - object-assign "^4" vary "^1" + object-assign "^4" cosmiconfig@8.1.3: version "8.1.3" @@ -8314,6 +8492,11 @@ cssesc@^3.0.0: resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== +cssfilter@0.0.10: + version "0.0.10" + resolved "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz" + integrity sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw== + cssnano@^6.1.2: version "6.1.2" resolved "https://registry.npmjs.org/cssnano/-/cssnano-6.1.2.tgz" @@ -8520,6 +8703,13 @@ decode-named-character-reference@^1.0.0: dependencies: character-entities "^2.0.0" +decompress-response@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz" + integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== + dependencies: + mimic-response "^3.1.0" + dedent@^1.0.0: version "1.5.3" resolved "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz" @@ -8532,6 +8722,11 @@ deep-eql@^4.1.3: dependencies: type-detect "^4.0.0" +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + deep-is@^0.1.3: version "0.1.4" resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" @@ -8682,7 +8877,7 @@ detect-libc@^1.0.3: resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz" integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== -detect-libc@^2.0.0: +detect-libc@^2.0.0, detect-libc@^2.0.2: version "2.0.3" resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz" integrity sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw== @@ -8829,9 +9024,9 @@ doublearray@0.0.2: integrity sha512-aw55FtZzT6AmiamEj2kvmR6BuFqvYgKZUkfQ7teqVRNqD5UE0rw8IeW/3gieHNKQ5sPuDKlljWEn4bzv5+1bHw== dset@^3.1.2: - version "3.1.3" - resolved "https://registry.npmjs.org/dset/-/dset-3.1.3.tgz" - integrity sha512-20TuZZHCEZ2O71q9/+8BwKwZ0QtD9D8ObhrihJPr+vLLYlSuAU3/zL4cSlgbfeoGHTjCSJBa7NGcrF9/Bx/WJQ== + version "3.1.4" + resolved "https://registry.npmjs.org/dset/-/dset-3.1.4.tgz" + integrity sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA== duplexer@^0.1.2, duplexer@~0.1.1: version "0.1.2" @@ -9624,6 +9819,11 @@ exit@^0.1.2: resolved "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz" integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== +expand-template@^2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz" + integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== + expand-tilde@^2.0.0, expand-tilde@^2.0.2: version "2.0.2" resolved "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz" @@ -9689,37 +9889,37 @@ express@4.19.2: resolved "https://registry.npmjs.org/express/-/express-4.19.2.tgz" integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q== dependencies: - accepts "~1.3.8" - array-flatten "1.1.1" - body-parser "1.20.2" - content-disposition "0.5.4" - content-type "~1.0.4" - cookie "0.6.0" - cookie-signature "1.0.6" - debug "2.6.9" + qs "6.11.0" depd "2.0.0" - encodeurl "~1.0.2" - escape-html "~1.0.3" etag "~1.8.1" - finalhandler "1.2.0" + send "0.18.0" + vary "~1.1.2" + debug "2.6.9" fresh "0.5.2" - http-errors "2.0.0" - merge-descriptors "1.0.1" + cookie "0.6.0" + accepts "~1.3.8" methods "~1.1.2" - on-finished "2.4.1" + type-is "~1.6.18" parseurl "~1.3.3" - path-to-regexp "0.1.7" + statuses "2.0.1" + encodeurl "~1.0.2" proxy-addr "~2.0.7" - qs "6.11.0" - range-parser "~1.2.1" + body-parser "1.20.2" + escape-html "~1.0.3" + http-errors "2.0.0" + on-finished "2.4.1" safe-buffer "5.2.1" - send "0.18.0" + utils-merge "1.0.1" + content-type "~1.0.4" + finalhandler "1.2.0" + range-parser "~1.2.1" serve-static "1.15.0" + array-flatten "1.1.1" + path-to-regexp "0.1.7" setprototypeof "1.2.0" - statuses "2.0.1" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" + cookie-signature "1.0.6" + merge-descriptors "1.0.1" + content-disposition "0.5.4" ext@^1.7.0: version "1.7.0" @@ -9786,7 +9986,7 @@ fast-equals@^4.0.3: resolved "https://registry.npmjs.org/fast-equals/-/fast-equals-4.0.3.tgz" integrity sha512-G3BSX9cfKttjr+2o1O22tYMLq0DPluZnYtq1rXumE1SpL/F/SLIfHx08WYQoWSIpeMYf8sRbJ8++71+v6Pnxfg== -fast-fifo@^1.1.0, fast-fifo@^1.2.0: +fast-fifo@^1.1.0, fast-fifo@^1.2.0, fast-fifo@^1.3.2: version "1.3.2" resolved "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz" integrity sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ== @@ -10383,6 +10583,11 @@ git-url-parse@^13.1.1: dependencies: git-up "^7.0.0" +github-from-package@0.0.0: + version "0.0.0" + resolved "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz" + integrity sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw== + github-slugger@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz" @@ -10606,14 +10811,30 @@ h3@^1.10.2, h3@^1.11.1: resolved "https://registry.npmjs.org/h3/-/h3-1.11.1.tgz" integrity sha512-AbaH6IDnZN6nmbnJOH72y3c5Wwh9P97soSVdGSBbcDACRdkC0FEWf25pzx4f/NuOCK6quHmW18yF2Wx+G4Zi1A== dependencies: - cookie-es "^1.0.0" - crossws "^0.2.2" + cookie-es "^1.0.0" + crossws "^0.2.2" + defu "^6.1.4" + destr "^2.0.3" + iron-webcrypto "^1.0.0" + ohash "^1.1.3" + radix3 "^1.1.0" + ufo "^1.4.0" + uncrypto "^0.1.3" + unenv "^1.9.0" + +h3@^1.10.0, h3@^1.12.0: + version "1.12.0" + resolved "https://registry.npmjs.org/h3/-/h3-1.12.0.tgz" + integrity sha512-Zi/CcNeWBXDrFNlV0hUBJQR9F7a96RjMeAZweW/ZWkR9fuXrMcvKnSA63f/zZ9l0GgQOZDVHGvXivNN9PWOwhA== + dependencies: + cookie-es "^1.1.0" + crossws "^0.2.4" defu "^6.1.4" destr "^2.0.3" - iron-webcrypto "^1.0.0" + iron-webcrypto "^1.1.1" ohash "^1.1.3" - radix3 "^1.1.0" - ufo "^1.4.0" + radix3 "^1.1.2" + ufo "^1.5.3" uncrypto "^0.1.3" unenv "^1.9.0" @@ -10937,6 +11158,11 @@ ignore@^5.2.0, ignore@^5.2.4, ignore@^5.3.1: resolved "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz" integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== +ignore@^5.3.2: + version "5.3.2" + resolved "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz" + integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== + ignore-walk@^6.0.4: version "6.0.4" resolved "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.4.tgz" @@ -10949,6 +11175,11 @@ image-meta@^0.2.0: resolved "https://registry.npmjs.org/image-meta/-/image-meta-0.2.0.tgz" integrity sha512-ZBGjl0ZMEMeOC3Ns0wUF/5UdUmr3qQhBSCniT0LxOgGGIRHiNFOkMtIHB7EOznRU47V2AxPgiVP+s+0/UCU0Hg== +image-meta@^0.2.0, image-meta@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/image-meta/-/image-meta-0.2.1.tgz" + integrity sha512-K6acvFaelNxx8wc2VjbIzXKDVB0Khs0QT35U6NkGfTdCmjLNcO2945m7RFNR9/RPVFm48hq7QPzK8uGH18HCGw== + import-fresh@^3.2.1, import-fresh@^3.3.0: version "3.3.0" resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" @@ -10968,9 +11199,9 @@ import-in-the-middle@1.7.1: module-details-from-path "^1.0.3" import-in-the-middle@^1.8.1: - version "1.10.0" - resolved "https://registry.npmjs.org/import-in-the-middle/-/import-in-the-middle-1.10.0.tgz" - integrity sha512-Z1jumVdF2GwnnYfM0a/y2ts7mZbwFMgt5rRuVmLgobgahC6iKgN5MBuXjzfTIOUpq5LSU10vJIPpVKe0X89fIw== + version "1.11.1" + resolved "https://registry.npmjs.org/import-in-the-middle/-/import-in-the-middle-1.11.1.tgz" + integrity sha512-lGdg70ECFGv/OHQXL/IPhcxkFPeQ7YA4zborlA54XHVr58oM50QNxItRiayHMqj1MspC5Y9zaHf+QHod/gq7Ug== dependencies: acorn "^8.8.2" acorn-import-attributes "^1.9.5" @@ -11008,7 +11239,7 @@ inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, i resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -ini@^1.3.4, ini@^1.3.5: +ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: version "1.3.8" resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== @@ -11028,42 +11259,42 @@ inquirer@8.2.6: resolved "https://registry.npmjs.org/inquirer/-/inquirer-8.2.6.tgz" integrity sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg== dependencies: - ansi-escapes "^4.2.1" - chalk "^4.1.1" - cli-cursor "^3.1.0" - cli-width "^3.0.0" - external-editor "^3.0.3" - figures "^3.0.0" - lodash "^4.17.21" - mute-stream "0.0.8" ora "^5.4.1" - run-async "^2.4.0" rxjs "^7.5.5" - string-width "^4.1.0" - strip-ansi "^6.0.0" + chalk "^4.1.1" + lodash "^4.17.21" + figures "^3.0.0" through "^2.3.6" + cli-width "^3.0.0" + run-async "^2.4.0" wrap-ansi "^6.0.1" + cli-cursor "^3.1.0" + strip-ansi "^6.0.0" + mute-stream "0.0.8" + ansi-escapes "^4.2.1" + string-width "^4.1.0" + external-editor "^3.0.3" inquirer@9.2.12: version "9.2.12" resolved "https://registry.npmjs.org/inquirer/-/inquirer-9.2.12.tgz" integrity sha512-mg3Fh9g2zfuVWJn6lhST0O7x4n03k7G8Tx5nvikJkbq8/CK47WDVm+UznF0G6s5Zi0KcyUisr6DU8T67N5U+1Q== dependencies: - "@ljharb/through" "^2.3.11" - ansi-escapes "^4.3.2" + ora "^5.4.1" + rxjs "^7.8.1" chalk "^5.3.0" - cli-cursor "^3.1.0" - cli-width "^4.1.0" - external-editor "^3.1.0" - figures "^5.0.0" lodash "^4.17.21" - mute-stream "1.0.0" - ora "^5.4.1" + figures "^5.0.0" + cli-width "^4.1.0" run-async "^3.0.0" - rxjs "^7.8.1" - string-width "^4.2.3" - strip-ansi "^6.0.1" wrap-ansi "^6.2.0" + cli-cursor "^3.1.0" + strip-ansi "^6.0.1" + mute-stream "1.0.0" + ansi-escapes "^4.3.2" + string-width "^4.2.3" + "@ljharb/through" "^2.3.11" + external-editor "^3.1.0" internal-slot@^1.0.7: version "1.0.7" @@ -11117,11 +11348,38 @@ ipaddr.js@1.9.1: resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== +ipx@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/ipx/-/ipx-2.1.0.tgz" + integrity sha512-AVnPGXJ8L41vjd11Z4akIF2yd14636Klxul3tBySxHA6PKfCOQPxBDkCFK5zcWh0z/keR6toh1eg8qzdBVUgdA== + dependencies: + "@fastify/accept-negotiator" "^1.1.0" + citty "^0.1.5" + consola "^3.2.3" + defu "^6.1.4" + destr "^2.0.2" + etag "^1.8.1" + h3 "^1.10.0" + image-meta "^0.2.0" + listhen "^1.5.6" + ofetch "^1.3.3" + pathe "^1.1.2" + sharp "^0.32.6" + svgo "^3.2.0" + ufo "^1.3.2" + unstorage "^1.10.1" + xss "^1.0.14" + iron-webcrypto@^1.0.0: version "1.1.0" resolved "https://registry.npmjs.org/iron-webcrypto/-/iron-webcrypto-1.1.0.tgz" integrity sha512-5vgYsCakNlaQub1orZK5QmNYhwYtcllTkZBp5sfIaCqY93Cf6l+v2rtE+E4TMbcfjxDMCdrO8wmp7+ZvhDECLA== +iron-webcrypto@^1.1.1: + version "1.2.1" + resolved "https://registry.npmjs.org/iron-webcrypto/-/iron-webcrypto-1.2.1.tgz" + integrity sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg== + is-absolute-url@^4.0.0: version "4.0.1" resolved "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-4.0.1.tgz" @@ -11181,6 +11439,11 @@ is-arrayish@^0.2.1: resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + is-bigint@^1.0.1: version "1.0.4" resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz" @@ -12419,7 +12682,7 @@ lines-and-columns@^1.1.6: resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== -listhen@^1.7.2: +listhen@^1.5.6, listhen@^1.7.2: version "1.7.2" resolved "https://registry.npmjs.org/listhen/-/listhen-1.7.2.tgz" integrity sha512-7/HamOm5YD9Wb7CFgAZkKgVPA96WwhcTQoqtm2VTZGVbVVn3IWKRBTgrU7cchA3Q8k9iCsG8Osoi9GX4JsGM9g== @@ -12546,7 +12809,7 @@ lodash.isarguments@^3.1.0: resolved "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz" integrity sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg== -lodash.memoize@4.x, lodash.memoize@^4.1.2: +lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz" integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== @@ -12687,6 +12950,13 @@ magic-string@^0.30.10, magic-string@^0.30.4: dependencies: "@jridgewell/sourcemap-codec" "^1.4.15" +magic-string@^0.30.11: + version "0.30.11" + resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.30.11.tgz" + integrity sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A== + dependencies: + "@jridgewell/sourcemap-codec" "^1.5.0" + magic-string-ast@^0.3.0: version "0.3.0" resolved "https://registry.npmjs.org/magic-string-ast/-/magic-string-ast-0.3.0.tgz" @@ -12725,7 +12995,7 @@ make-dir@^4.0.0: dependencies: semver "^7.5.3" -make-error@1.x, make-error@^1.1.1: +make-error@^1.1.1, make-error@^1.3.6: version "1.3.6" resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== @@ -13537,6 +13807,11 @@ mimic-fn@^4.0.0: resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz" integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== +mimic-response@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz" + integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== + minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" @@ -13565,7 +13840,7 @@ minimatch@9.0.3, minimatch@^9.0.0, minimatch@^9.0.1, minimatch@^9.0.3: dependencies: brace-expansion "^2.0.1" -minimist@^1.2.5, minimist@^1.2.6, minimist@^1.2.8: +minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5, minimist@^1.2.6, minimist@^1.2.8: version "1.2.8" resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== @@ -13679,7 +13954,7 @@ mkdirp@^1.0.3: resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -mkdirp-classic@^0.5.2: +mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: version "0.5.3" resolved "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz" integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== @@ -13793,6 +14068,11 @@ nanoid@^4.0.2: resolved "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz" integrity sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw== +napi-build-utils@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz" + integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== + napi-wasm@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/napi-wasm/-/napi-wasm-1.1.0.tgz" @@ -13818,11 +14098,11 @@ nest-commander@3.12.5: resolved "https://registry.npmjs.org/nest-commander/-/nest-commander-3.12.5.tgz" integrity sha512-UDzUvCG59ma84/7uUUWGltXr7gGtG3smr7ILg+Guia5wFzQNhxNLtlqapzI3woFr5kuuWtVcLRL/4+diLefZrA== dependencies: - "@fig/complete-commander" "^3.0.0" - "@golevelup/nestjs-discovery" "4.0.0" + inquirer "8.2.6" commander "11.1.0" cosmiconfig "8.3.6" - inquirer "8.2.6" + "@fig/complete-commander" "^3.0.0" + "@golevelup/nestjs-discovery" "4.0.0" next-tick@1, next-tick@^1.1.0: version "1.1.0" @@ -13902,11 +14182,23 @@ nitropack@^2.9.6: unstorage "^1.10.2" unwasm "^0.3.9" +node-abi@^3.3.0: + version "3.68.0" + resolved "https://registry.npmjs.org/node-abi/-/node-abi-3.68.0.tgz" + integrity sha512-7vbj10trelExNjFSBm5kTvZXXa7pZyKWx9RCKIyqe6I9Ev3IzGpQoqBP3a+cOdxY+pWj6VkP28n/2wWysBHD/A== + dependencies: + semver "^7.3.5" + node-abort-controller@^3.0.1: version "3.1.1" resolved "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz" integrity sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ== +node-addon-api@^6.1.0: + version "6.1.0" + resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz" + integrity sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA== + node-addon-api@^7.0.0: version "7.1.0" resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.0.tgz" @@ -14267,7 +14559,7 @@ ofetch@^1.3.3: node-fetch-native "^1.4.0" ufo "^1.3.0" -ofetch@^1.3.4: +ofetch@^1.3.3, ofetch@^1.3.4: version "1.3.4" resolved "https://registry.npmjs.org/ofetch/-/ofetch-1.3.4.tgz" integrity sha512-KLIET85ik3vhEfS+3fDlc/BAZiAp+43QEC/yCo5zkNoY2YaKvNkOaFr/6wCFgFH1kuYQM5pMNi0Tg8koiIemtw== @@ -14732,9 +15024,9 @@ pg-int8@1.0.1: integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw== pg-protocol@*: - version "1.6.1" - resolved "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.1.tgz" - integrity sha512-jPIlvgoD63hrEuihvIg+tJhoGjUsLPn6poJY9N5CnlPd91c2T18T/9zBtLxZSb1EhYxBRoZJtzScCaWlYLtktg== + version "1.7.0" + resolved "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.7.0.tgz" + integrity sha512-hTK/mE36i8fDDhgDFjy6xNOG+LCorxLG3WO17tku+ij6sVHXh1jQUJ8hYAnRhNla4QVD2H8er/FOjc/+EgC6yQ== pg-types@^2.2.0: version "2.2.0" @@ -14841,6 +15133,15 @@ pkg-types@^1.1.1, pkg-types@^1.1.2: mlly "^1.7.1" pathe "^1.1.2" +pkg-types@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/pkg-types/-/pkg-types-1.2.0.tgz" + integrity sha512-+ifYuSSqOQ8CqP4MbZA5hDpb97n3E8SVWdJe+Wms9kj745lmd3b7EZJiqvmLwAlmRfjrI7Hi5z3kdBJ93lFNPA== + dependencies: + confbox "^0.1.7" + mlly "^1.7.1" + pathe "^1.1.2" + pluralize@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/pluralize/-/pluralize-2.0.0.tgz" @@ -15123,9 +15424,27 @@ postgres-interval@^1.1.0: xtend "^4.0.0" preact@^10.0.0: - version "10.23.1" - resolved "https://registry.npmjs.org/preact/-/preact-10.23.1.tgz" - integrity sha512-O5UdRsNh4vdZaTieWe3XOgSpdMAmkIYBCT3VhQDlKrzyCm8lUYsk0fmVEvoQQifoOjFRTaHZO69ylrzTW2BH+A== + version "10.24.1" + resolved "https://registry.npmjs.org/preact/-/preact-10.24.1.tgz" + integrity sha512-PnBAwFI3Yjxxcxw75n6VId/5TFxNW/81zexzWD9jn1+eSrOP84NdsS38H5IkF/UH3frqRPT+MvuCoVHjTDTnDw== + +prebuild-install@^7.1.1: + version "7.1.2" + resolved "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.2.tgz" + integrity sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ== + dependencies: + detect-libc "^2.0.0" + expand-template "^2.0.3" + github-from-package "0.0.0" + minimist "^1.2.3" + mkdirp-classic "^0.5.3" + napi-build-utils "^1.0.1" + node-abi "^3.3.0" + pump "^3.0.0" + rc "^1.2.7" + simple-get "^4.0.0" + tar-fs "^2.0.0" + tunnel-agent "^0.6.0" prelude-ls@^1.2.1: version "1.2.1" @@ -15401,11 +15720,11 @@ puppeteer@19.9.1: resolved "https://registry.npmjs.org/puppeteer/-/puppeteer-19.9.1.tgz" integrity sha512-Ii8yZySNdpPzeKAK6ROFQ+gAi04igoZ0cPsBE1LW9fmzkqQTqbJpEGhJ/5gBS8oVqkQ2CNFA4BskJl75zaWWgA== dependencies: - cosmiconfig "8.1.3" - https-proxy-agent "5.0.1" progress "2.0.3" + cosmiconfig "8.1.3" proxy-from-env "1.1.0" puppeteer-core "19.9.1" + https-proxy-agent "5.0.1" "@puppeteer/browsers" "0.4.1" puppeteer-core@19.9.1: @@ -15413,16 +15732,16 @@ puppeteer-core@19.9.1: resolved "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-19.9.1.tgz" integrity sha512-46JGqhqTgYO5DuUMRGUiMCKM/86uHMsMCK7Fw7cbY/p+eCKLIPGVyQyI/E0UcGYa0+OH3dz0ResaDdHxqCgDDw== dependencies: - chromium-bidi "0.4.6" - cross-fetch "3.1.5" + ws "8.13.0" debug "4.3.4" - devtools-protocol "0.0.1107588" + tar-fs "2.1.1" + cross-fetch "3.1.5" extract-zip "2.0.1" - https-proxy-agent "5.0.1" + chromium-bidi "0.4.6" proxy-from-env "1.1.0" - tar-fs "2.1.1" unbzip2-stream "1.4.3" - ws "8.13.0" + devtools-protocol "0.0.1107588" + https-proxy-agent "5.0.1" "@puppeteer/browsers" "0.4.1" pure-rand@^6.0.0: @@ -15503,6 +15822,16 @@ raw-body@2.5.2: iconv-lite "0.4.24" unpipe "1.0.0" +rc@^1.2.7: + version "1.2.8" + resolved "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + rc-config-loader@^4.1.3: version "4.1.3" resolved "https://registry.npmjs.org/rc-config-loader/-/rc-config-loader-4.1.3.tgz" @@ -16212,9 +16541,9 @@ scule@^1.0.0, scule@^1.1.1, scule@^1.2.0, scule@^1.3.0: integrity sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g== "search-insights@>= 1 < 3": - version "2.15.0" - resolved "https://registry.npmjs.org/search-insights/-/search-insights-2.15.0.tgz" - integrity sha512-ch2sPCUDD4sbPQdknVl9ALSi9H7VyoeVbsxznYz6QV55jJ8CI3EtwpO1i84keN4+hF5IeHWIeGvc08530JkVXQ== + version "2.17.2" + resolved "https://registry.npmjs.org/search-insights/-/search-insights-2.17.2.tgz" + integrity sha512-zFNpOpUO+tY2D85KrxJ+aqwnIfdEGi06UH2+xEb+Bp9Mwznmauqc9djbnBibJO5mpfUPPa8st6Sx65+vbeO45g== "semver@2 || 3 || 4 || 5", semver@^5.6.0: version "5.7.2" @@ -16233,11 +16562,16 @@ semver@^7.0.0, semver@^7.1.1, semver@^7.3.4, semver@^7.3.5, semver@^7.3.6, semve dependencies: lru-cache "^6.0.0" -semver@^7.3.4, semver@^7.3.5, semver@^7.3.8, semver@^7.5.2, semver@^7.5.3, semver@^7.5.4, semver@^7.6.2: +semver@^7.6.2: version "7.6.2" resolved "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz" integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w== +semver@^7.3.4, semver@^7.3.5, semver@^7.3.8, semver@^7.5.2, semver@^7.5.3, semver@^7.5.4, semver@^7.6.3: + version "7.6.3" + resolved "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz" + integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== + send@0.18.0: version "0.18.0" resolved "https://registry.npmjs.org/send/-/send-0.18.0.tgz" @@ -16320,6 +16654,20 @@ shallow-clone@^3.0.0: dependencies: kind-of "^6.0.2" +sharp@^0.32.6: + version "0.32.6" + resolved "https://registry.npmjs.org/sharp/-/sharp-0.32.6.tgz" + integrity sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w== + dependencies: + color "^4.2.3" + semver "^7.5.4" + tar-fs "^3.0.4" + simple-get "^4.0.1" + detect-libc "^2.0.2" + tunnel-agent "^0.6.0" + node-addon-api "^6.1.0" + prebuild-install "^7.1.1" + shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" @@ -16343,8 +16691,8 @@ shelljs@0.8.5: integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow== dependencies: glob "^7.0.0" - interpret "^1.0.0" rechoir "^0.6.2" + interpret "^1.0.0" shiki@1.10.1, shiki@^1.1.7, shiki@^1.2.0: version "1.10.1" @@ -16395,6 +16743,20 @@ sigstore@^2.2.0: "@sigstore/tuf" "^2.3.1" "@sigstore/verify" "^1.1.0" +simple-concat@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz" + integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== + +simple-get@^4.0.0, simple-get@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz" + integrity sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA== + dependencies: + decompress-response "^6.0.0" + once "^1.3.1" + simple-concat "^1.0.0" + simple-git@^3.23.0: version "3.23.0" resolved "https://registry.npmjs.org/simple-git/-/simple-git-3.23.0.tgz" @@ -16404,6 +16766,13 @@ simple-git@^3.23.0: "@kwsites/promise-deferred" "^1.1.1" debug "^4.3.4" +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz" + integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== + dependencies: + is-arrayish "^0.3.1" + sirv@^2.0.4: version "2.0.4" resolved "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz" @@ -16699,6 +17068,17 @@ streamx@^2.15.0: optionalDependencies: bare-events "^2.2.0" +streamx@^2.20.0: + version "2.20.1" + resolved "https://registry.npmjs.org/streamx/-/streamx-2.20.1.tgz" + integrity sha512-uTa0mU6WUC65iUvzKH4X9hEdvSW7rbPxPtwfWiLMSj3qTdQbAiUboZTxauKfpFuGIGa1C2BYijZ7wgdUXICJhA== + dependencies: + fast-fifo "^1.3.2" + queue-tick "^1.0.1" + text-decoder "^1.1.0" + optionalDependencies: + bare-events "^2.2.0" + strict-event-emitter@^0.5.1: version "0.5.1" resolved "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.5.1.tgz" @@ -16821,6 +17201,11 @@ strip-final-newline@^3.0.0: resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz" integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== + strip-json-comments@^3.0.1, strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" @@ -16891,16 +17276,16 @@ superagent@^8.1.2: resolved "https://registry.npmjs.org/superagent/-/superagent-8.1.2.tgz" integrity sha512-6WTxW1EB6yCxV5VFOIPQruWGHqc3yI7hEmZK6h+pyk69Lk/Ut7rLUY6W/ONF2MjBuGjvmMiIpsrVJ2vjrHlslA== dependencies: - component-emitter "^1.3.0" - cookiejar "^2.1.4" + qs "^6.11.0" + mime "2.6.0" debug "^4.3.4" - fast-safe-stringify "^2.1.1" + semver "^7.3.8" + methods "^1.1.2" + cookiejar "^2.1.4" form-data "^4.0.0" formidable "^2.1.2" - methods "^1.1.2" - mime "2.6.0" - qs "^6.11.0" - semver "^7.3.8" + component-emitter "^1.3.0" + fast-safe-stringify "^2.1.1" superjson@^2.2.1: version "2.2.1" @@ -17014,7 +17399,7 @@ tar@^6.1.11, tar@^6.1.2, tar@^6.2.0: mkdirp "^1.0.3" yallist "^4.0.0" -tar-fs@2.1.1, tar-fs@^2.1.1: +tar-fs@2.1.1, tar-fs@^2.0.0, tar-fs@^2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz" integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== @@ -17024,6 +17409,17 @@ tar-fs@2.1.1, tar-fs@^2.1.1: pump "^3.0.0" tar-stream "^2.1.4" +tar-fs@^3.0.4: + version "3.0.6" + resolved "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.6.tgz" + integrity sha512-iokBDQQkUyeXhgPYaZxmczGPhnhXZ0CmrqI+MOb/WFGS9DW5wnfrLgtjUJBvz50vQ3qfRwJ62QVoCFu8mPVu5w== + dependencies: + pump "^3.0.0" + tar-stream "^3.1.5" + optionalDependencies: + bare-fs "^2.1.1" + bare-path "^2.1.0" + tar-stream@^2.1.4: version "2.2.0" resolved "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz" @@ -17035,7 +17431,7 @@ tar-stream@^2.1.4: inherits "^2.0.3" readable-stream "^3.1.1" -tar-stream@^3.0.0: +tar-stream@^3.0.0, tar-stream@^3.1.5: version "3.1.7" resolved "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz" integrity sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ== @@ -17113,6 +17509,13 @@ test-exclude@^6.0.0: minimatch "^3.0.4" "@istanbuljs/schema" "^0.1.2" +text-decoder@^1.1.0: + version "1.2.0" + resolved "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.0.tgz" + integrity sha512-n1yg1mOj9DNpk3NeZOx7T6jchTbyJS3i3cucbNN6FcdPriMZx7NsgrGpWWdWZZGxD7ES1XB+3uoqHMgOKaN+fg== + dependencies: + b4a "^1.6.4" + text-table@^0.2.0: version "0.2.0" resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" @@ -17512,19 +17915,19 @@ ts-interface-checker@^0.1.9: integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== ts-jest@^29.1.2: - version "29.2.3" - resolved "https://registry.npmjs.org/ts-jest/-/ts-jest-29.2.3.tgz" - integrity sha512-yCcfVdiBFngVz9/keHin9EnsrQtQtEu3nRykNy9RVp+FiPFFbPJ3Sg6Qg4+TkmH0vMP5qsTKgXSsk80HRwvdgQ== + version "29.2.5" + resolved "https://registry.npmjs.org/ts-jest/-/ts-jest-29.2.5.tgz" + integrity sha512-KD8zB2aAZrcKIdGk4OwpJggeLcH1FgrICqDSROWqlnJXGCXK4Mn6FcdK2B6670Xr73lHMG1kHw8R87A0ecZ+vA== dependencies: - bs-logger "0.x" + bs-logger "^0.2.6" ejs "^3.1.10" - fast-json-stable-stringify "2.x" + fast-json-stable-stringify "^2.1.0" jest-util "^29.0.0" json5 "^2.2.3" - lodash.memoize "4.x" - make-error "1.x" - semver "^7.5.3" - yargs-parser "^21.0.1" + lodash.memoize "^4.1.2" + make-error "^1.3.6" + semver "^7.6.3" + yargs-parser "^21.1.1" ts-loader@9.5.1: version "9.5.1" @@ -17547,19 +17950,19 @@ ts-node@>=9.0.0, ts-node@^10.9.2: resolved "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz" integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== dependencies: - "@cspotcode/source-map-support" "^0.8.0" + yn "3.1.1" + arg "^4.1.0" + diff "^4.0.1" + acorn "^8.4.1" + acorn-walk "^8.1.1" + make-error "^1.1.1" + create-require "^1.1.0" "@tsconfig/node10" "^1.0.7" "@tsconfig/node12" "^1.0.7" "@tsconfig/node14" "^1.0.0" "@tsconfig/node16" "^1.0.2" - acorn "^8.4.1" - acorn-walk "^8.1.1" - arg "^4.1.0" - create-require "^1.1.0" - diff "^4.0.1" - make-error "^1.1.1" v8-compile-cache-lib "^3.0.1" - yn "3.1.1" + "@cspotcode/source-map-support" "^0.8.0" ts-pattern@5.0.8: version "5.0.8" @@ -17586,8 +17989,8 @@ tsconfig-paths-webpack-plugin@4.1.0: integrity sha512-xWFISjviPydmtmgeUAuXp4N1fky+VCtfhOkDUFIv5ea7p4wuTomI4QTrXvFBX2S4jZsmyTSrStQl+E+4w+RzxA== dependencies: chalk "^4.1.0" - enhanced-resolve "^5.7.0" tsconfig-paths "^4.1.2" + enhanced-resolve "^5.7.0" tslib@^1.13.0: version "1.14.1" @@ -17808,6 +18211,11 @@ ufo@^1.3.1, ufo@^1.4.0, ufo@^1.5.3: resolved "https://registry.npmjs.org/ufo/-/ufo-1.5.3.tgz" integrity sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw== +ufo@^1.3.2, ufo@^1.5.3, ufo@^1.5.4: + version "1.5.4" + resolved "https://registry.npmjs.org/ufo/-/ufo-1.5.4.tgz" + integrity sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ== + uglify-js@^3.1.4: version "3.17.4" resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz" @@ -18020,6 +18428,25 @@ unimport@^3.7.2: strip-literal "^2.1.0" unplugin "^1.10.1" +unimport@^3.12.0: + version "3.13.1" + resolved "https://registry.npmjs.org/unimport/-/unimport-3.13.1.tgz" + integrity sha512-nNrVzcs93yrZQOW77qnyOVHtb68LegvhYFwxFMfuuWScmwQmyVCG/NBuN8tYsaGzgQUVYv34E/af+Cc9u4og4A== + dependencies: + "@rollup/pluginutils" "^5.1.2" + acorn "^8.12.1" + escape-string-regexp "^5.0.0" + estree-walker "^3.0.3" + fast-glob "^3.3.2" + local-pkg "^0.5.0" + magic-string "^0.30.11" + mlly "^1.7.1" + pathe "^1.1.2" + pkg-types "^1.2.0" + scule "^1.3.0" + strip-literal "^2.1.0" + unplugin "^1.14.1" + unique-concat@^0.2.2: version "0.2.2" resolved "https://registry.npmjs.org/unique-concat/-/unique-concat-0.2.2.tgz" @@ -18229,6 +18656,14 @@ unplugin@^1.1.0, unplugin@^1.10.0, unplugin@^1.10.1, unplugin@^1.5.0: webpack-sources "^3.2.3" webpack-virtual-modules "^0.6.1" +unplugin@^1.14.1: + version "1.14.1" + resolved "https://registry.npmjs.org/unplugin/-/unplugin-1.14.1.tgz" + integrity sha512-lBlHbfSFPToDYp9pjXlUEFVxYLaue9f9T1HC+4OHlmj+HnMDdz9oZY+erXfoCe/5V/7gKUSY2jpXPb9S7f0f/w== + dependencies: + acorn "^8.12.1" + webpack-virtual-modules "^0.6.2" + unplugin-vue-router@^0.7.0: version "0.7.0" resolved "https://registry.npmjs.org/unplugin-vue-router/-/unplugin-vue-router-0.7.0.tgz" @@ -18869,30 +19304,30 @@ webpack@5.90.1, webpack@^5.0.0, webpack@^5.1.0, webpack@^5.11.0: resolved "https://registry.npmjs.org/webpack/-/webpack-5.90.1.tgz" integrity sha512-SstPdlAC5IvgFnhiRok8hqJo/+ArAbNv7rhU4fnWGHNVfN59HSQFaxZDSAL3IFG2YmqxuRs+IU33milSxbPlog== dependencies: - "@types/eslint-scope" "^3.7.3" - "@types/estree" "^1.0.5" - "@webassemblyjs/ast" "^1.11.5" - "@webassemblyjs/wasm-edit" "^1.11.5" - "@webassemblyjs/wasm-parser" "^1.11.5" acorn "^8.7.1" - acorn-import-assertions "^1.9.0" - browserslist "^4.21.10" - chrome-trace-event "^1.0.2" - enhanced-resolve "^5.15.0" - es-module-lexer "^1.2.1" - eslint-scope "5.1.1" events "^3.2.0" - glob-to-regexp "^0.4.1" - graceful-fs "^4.2.9" - json-parse-even-better-errors "^2.3.1" - loader-runner "^4.2.0" - mime-types "^2.1.27" - neo-async "^2.6.2" - schema-utils "^3.2.0" tapable "^2.1.1" - terser-webpack-plugin "^5.3.10" + neo-async "^2.6.2" watchpack "^2.4.0" + mime-types "^2.1.27" + graceful-fs "^4.2.9" + browserslist "^4.21.10" + eslint-scope "5.1.1" + schema-utils "^3.2.0" + "@types/estree" "^1.0.5" + loader-runner "^4.2.0" + glob-to-regexp "^0.4.1" + es-module-lexer "^1.2.1" webpack-sources "^3.2.3" + enhanced-resolve "^5.15.0" + "@webassemblyjs/ast" "^1.11.5" + chrome-trace-event "^1.0.2" + "@types/eslint-scope" "^3.7.3" + terser-webpack-plugin "^5.3.10" + acorn-import-assertions "^1.9.0" + "@webassemblyjs/wasm-edit" "^1.11.5" + "@webassemblyjs/wasm-parser" "^1.11.5" + json-parse-even-better-errors "^2.3.1" webpack-node-externals@3.0.0: version "3.0.0" @@ -18909,6 +19344,11 @@ webpack-virtual-modules@^0.6.1: resolved "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.1.tgz" integrity sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg== +webpack-virtual-modules@^0.6.2: + version "0.6.2" + resolved "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz" + integrity sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ== + whatwg-mimetype@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz" @@ -19098,6 +19538,14 @@ xmlhttprequest-ssl@~2.0.0: resolved "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz" integrity sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A== +xss@^1.0.14: + version "1.0.15" + resolved "https://registry.npmjs.org/xss/-/xss-1.0.15.tgz" + integrity sha512-FVdlVVC67WOIPvfOwhoMETV72f6GbW7aOabBC3WxN/oUdoEMDyLz4OgRv5/gck2ZeNqEQu+Tb0kloovXOfpYVg== + dependencies: + commander "^2.20.3" + cssfilter "0.0.10" + xtend@^4.0.0, xtend@~4.0.1: version "4.0.2" resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" @@ -19158,7 +19606,7 @@ yargs@^17.3.1, yargs@^17.5.1: y18n "^5.0.5" yargs-parser "^21.1.1" -yargs-parser@21.1.1, yargs-parser@^21.0.1, yargs-parser@^21.1.1: +yargs-parser@21.1.1, yargs-parser@^21.1.1: version "21.1.1" resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz" integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==